Skip to content

Commit

Permalink
Density, bullet, and other miscellaneous fixes (#2404)
Browse files Browse the repository at this point in the history
Some quick fixes

fix

adds status flags to nosferatu bats

nobody changes

some improvment
  • Loading branch information
Coxswain-Navigator authored Sep 7, 2024
1 parent 5a10eda commit 79991f0
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
"Silky",
)
var/list/longbeard = list("Beard (Very Long)")
var/solo_punish = FALSE

//Breach Variables
var/whip_attack_cooldown
Expand Down Expand Up @@ -162,9 +163,12 @@
continue
potentialmarked += L
if(LAZYLEN(potentialmarked)) //It's fine if no one got picked. Probably.
solo_punish = FALSE
if(LAZYLEN(potentialmarked) < 2)
solo_punish = TRUE
ReflectChosen(pick(potentialmarked))
if(!IsContained())
to_chat(chosen, span_warning("You feel uneasy..."))
to_chat(chosen, span_warning("You feel the mirror's gaze upon you..."))
else
ReflectChosen(null)

Expand Down Expand Up @@ -206,12 +210,19 @@
adjusted_chance -= (100 - brainpower) * 0.5
return adjusted_chance

/mob/living/simple_animal/hostile/abnormality/nobody_is/AttemptWork(mob/living/carbon/human/user, work_type)
if(solo_punish)
work_damage_amount = 22
return ..()
work_damage_amount = initial(work_damage_amount)
return ..()

/mob/living/simple_animal/hostile/abnormality/nobody_is/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time)
if(Finisher(user)) //Checks if they are the chosen, and disguises as them if they are.
return
if(!solo_punish)
if(Finisher(user)) //Checks if they are the chosen, and disguises as them if they are.
return
else if(get_attribute_level(user, JUSTICE_ATTRIBUTE) < 80)
datum_reference.qliphoth_change(-1)
return

/mob/living/simple_animal/hostile/abnormality/nobody_is/FailureEffect(mob/living/carbon/human/user, work_type, pe)
. = ..()
Expand Down Expand Up @@ -562,7 +573,7 @@
grab_victim.deal_damage(strangle_damage, BLACK_DAMAGE)
else //Apply ramping damage
playsound(get_turf(src), 'sound/effects/wounds/crackandbleed.ogg', 200, 0, 7)
grab_victim.deal_damage((strangle_damage * count), BLACK_DAMAGE)
grab_victim.deal_damage((strangle_damage * (3 - count)), BLACK_DAMAGE)
count += 1
if(grab_victim.sanity_lost) //This should prevent weird things like panics running away halfway through
grab_victim.Stun(10) //Immobilize does not stop AI controllers from moving, for some reason.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@
maxHealth = 125
health = 125
density = FALSE
status_flags = MUST_HIT_PROJECTILE // Allows projectiles to hit non-dense mob
damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 0.7, BLACK_DAMAGE = 0.5, PALE_DAMAGE = 2)
del_on_death = FALSE
ranged = TRUE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@
observation_prompt = "This abnormality has a notorious reputation for being particularly dry to work with. <br>It's hard to tell what it's thinking or what work it prefers. <br>\
What type of work will you attempt?"
observation_choices = list(ABNORMALITY_WORK_INSTINCT, ABNORMALITY_WORK_INSIGHT, ABNORMALITY_WORK_ATTACHMENT, ABNORMALITY_WORK_REPRESSION)
correct_choices = list() //Matches Red Queen's real preferred work
correct_choices = list(ABNORMALITY_WORK_INSTINCT) // Matches Red Queen's real preferred work. This default is set to stop warnings
observation_success_message = "You are granted an audience with the red queen. <br>Today, you were able to to satisfy her unpredictable whims"
observation_fail_message = "You narrowly dodge the card-guillotine coming for your neck, that was close, let's try something else."

var/liked

/mob/living/simple_animal/hostile/abnormality/red_queen/Initialize(mapload)
Expand All @@ -42,6 +41,7 @@

/mob/living/simple_animal/hostile/abnormality/red_queen/PostSpawn()
. = ..()
correct_choices = list()
correct_choices += liked

/mob/living/simple_animal/hostile/abnormality/red_queen/PostWorkEffect(mob/living/carbon/human/user, work_type, pe)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@
faction = list("hostile")
is_flying_animal = TRUE
density = FALSE
status_flags = MUST_HIT_PROJECTILE // Lets them be shot
speak_emote = list("screeches")
attack_verb_continuous = "bites"
attack_verb_simple = "bite"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ It has now been over four months. Now we get her for real. -Coxswain
faction = list("redhood") // I'LL FUCKIN FIGHT YOU TOO, MATE
can_breach = TRUE
start_qliphoth = 3
density = FALSE //Prevents red from getting stuck unable to reach her target
density = FALSE // Prevents red from getting stuck unable to reach her target
status_flags = MUST_HIT_PROJECTILE // Allows projectiles to hit even though she's not dense.
ego_list = list(
/datum/ego_datum/weapon/crimson,
/datum/ego_datum/weapon/crimson/gun,
Expand Down
25 changes: 16 additions & 9 deletions code/modules/mob/living/simple_animal/hostile/ordeal/gold/dusk.dm
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@

/mob/living/simple_animal/hostile/ordeal/centipede_corrosion/proc/Pulse()//Periodic weak AOE attack, gain charge constantly
pulse_cooldown = world.time + pulse_cooldown_time
playsound(get_turf(src), 'sound/weapons/fixer/generic/energy2.ogg', 10, FALSE, 3)
AdjustCharge(1)
if(charge_level < 5 || broken)
return
playsound(get_turf(src), 'sound/weapons/fixer/generic/energy2.ogg', 10, FALSE, 3)
var/turf/orgin = get_turf(src)
var/list/all_turfs = RANGE_TURFS(5, orgin)
for(var/i = 0 to 2)
Expand All @@ -82,12 +82,11 @@
new /obj/effect/temp_visual/smash_effect(T)
HurtInTurf(T, list(), 5, BLACK_DAMAGE, check_faction = TRUE, hurt_mechs = TRUE)
for(var/mob/living/simple_animal/hostile/ordeal/thunderbird_corrosion/TB in T)
if(TB.charged)
if(TB.charge_level >= TB.charge_level_cap)
continue
TB.charged = TRUE
TB.AdjustCharge(4)
playsound(get_turf(TB), 'sound/weapons/fixer/generic/energy3.ogg', 75, FALSE, 3)
TB.visible_message(span_warning("[TB] absorbs the arcing electricity!"))
new /obj/effect/temp_visual/healing/no_dam(get_turf(TB))

/mob/living/simple_animal/hostile/ordeal/centipede_corrosion/proc/AdjustCharge(addition)
if(addition > 0 && charge_level < charge_level_cap)
Expand Down Expand Up @@ -171,16 +170,24 @@
ranged = TRUE
projectiletype = /obj/projectile/thunder_tomahawk
projectilesound = 'sound/abnormalities/thunderbird/tbird_peck.ogg'
var/charged = FALSE
var/list/spawned_mobs = list()
var/datum/beam/current_beam = null
var/recharge_cooldown
var/recharge_cooldown_time = 10 SECONDS
var/charge_level = 0
var/charge_level_cap = 20

/mob/living/simple_animal/hostile/ordeal/thunderbird_corrosion/proc/AdjustCharge(addition)
if(addition > 0 && charge_level < charge_level_cap)
new /obj/effect/temp_visual/healing/charge(get_turf(src))
charge_level = clamp(charge_level + addition, 0, charge_level_cap)

/mob/living/simple_animal/hostile/ordeal/thunderbird_corrosion/proc/Recharge(atom/A)
/mob/living/simple_animal/hostile/ordeal/thunderbird_corrosion/proc/Recharge(atom/A) // Recharging the centipede
if(recharge_cooldown >= world.time)
return FALSE
if(charge_level < 10)
return FALSE
AdjustCharge(-10)
recharge_cooldown = world.time + recharge_cooldown_time
current_beam = Beam(A, icon_state="lightning[rand(1,12)]", time = 3 SECONDS)

Expand All @@ -189,11 +196,11 @@
if(!isliving(target))
return
var/mob/living/L = target
if(charged)
L.deal_damage(15, BLACK_DAMAGE)
if(charge_level) // We deal up to 20 more damage, 1 for every point of charge.
L.deal_damage(charge_level, BLACK_DAMAGE)
playsound(get_turf(src), 'sound/weapons/fixer/generic/energyfinisher1.ogg', 75, 1)
to_chat(L,span_danger("The [src] unleashes its charge!"))
charged = FALSE
AdjustCharge(-charge_level)
if(!ishuman(target))
return
var/mob/living/carbon/human/H = target
Expand Down
3 changes: 2 additions & 1 deletion code/modules/paperwork/records/info/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,8 @@
"When an employee whose Justice was lower than Level 4 completed the work, the Qliphoth Counter decreased.",
"When the work result was Bad, the Qliphoth Counter lowered.",
"An employee in the facility will be reflected upon the mirror on the face of Nobody Is.",
"When the selected employee completed work, they were assimilated into the abnormality.")
"When only one employee with the clearance to work on abnormalities was present in the facility, work damage increased.",
"Otherwise, when the selected employee completed work, they were assimilated into the abnormality.",)
abno_breach_damage_count = "Extreme" // Once it transforms its over
abno_resistances = list(
RED_DAMAGE = "Endured/Endured/Resistant",
Expand Down

0 comments on commit 79991f0

Please sign in to comment.