Skip to content

Commit

Permalink
Megafauna no longer gib bodies (#9807)
Browse files Browse the repository at this point in the history
* no gib

* blood drunk doesn't gib anymore

* drake no longer gibs
  • Loading branch information
mystery3525 authored Nov 6, 2023
1 parent 0b6cc36 commit 2bb4dd2
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 78 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -152,15 +152,6 @@ Difficulty: Medium
if(isliving(target))
var/mob/living/L = target
if(L.stat == DEAD)
visible_message("<span class='danger'>[src] butchers [L]!</span>",
"<span class='userdanger'>You butcher [L], restoring your health!</span>")
if(!is_station_level(z) || client) //NPC monsters won't heal while on station
if(guidance)
adjustHealth(-L.maxHealth)
else
adjustHealth(-(L.maxHealth * 0.5))
L.investigate_log("has been gibbed by [src].", INVESTIGATE_DEATHS)
L.gib()
return TRUE
changeNext_move(CLICK_CD_MELEE)
miner_saw.melee_attack_chain(src, target)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,14 +259,15 @@ Difficulty: Hard
new /obj/effect/temp_visual/bubblegum_hands/leftthumb(T)
SLEEP_CHECK_DEATH(6)
for(var/mob/living/L in T)
if(!faction_check_mob(L))
if(L.stat != CONSCIOUS)
to_chat(L, "<span class='userdanger'>[src] drags you through the blood!</span>")
playsound(T, 'sound/magic/enter_blood.ogg', 100, 1, -1)
var/turf/targetturf = get_step(src, dir)
L.forceMove(targetturf)
playsound(targetturf, 'sound/magic/exit_blood.ogg', 100, 1, -1)
addtimer(CALLBACK(src, PROC_REF(devour), L), 2)
if(faction_check_mob(L))
continue
if(L.stat == CONSCIOUS || L.stat == DEAD)
continue
to_chat(L, "<span class='userdanger'>[src] drags you through the blood!</span>")
playsound(T, 'sound/magic/enter_blood.ogg', 100, 1, -1)
var/turf/targetturf = get_step(src, dir)
L.forceMove(targetturf)
playsound(targetturf, 'sound/magic/exit_blood.ogg', 100, 1, -1)
SLEEP_CHECK_DEATH(1)

/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_warp()
Expand Down Expand Up @@ -384,13 +385,6 @@ Difficulty: Hard
if(useoriginal)
charge(chargeat, delay, chargepast)

/mob/living/simple_animal/hostile/megafauna/bubblegum/devour(mob/living/L)
var/turf/death_turf = get_turf(L)
. = ..()
if(. && death_turf)
for(var/i in 1 to 3)
new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter(death_turf)

/mob/living/simple_animal/hostile/megafauna/bubblegum/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE)
. = ..()
if(. > 0 && prob(25))
Expand Down
23 changes: 10 additions & 13 deletions code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
Original file line number Diff line number Diff line change
Expand Up @@ -351,19 +351,16 @@ Difficulty: Medium
icon_state = "dragon"
playsound(loc, 'sound/effects/meteorimpact.ogg', 200, 1)
for(var/mob/living/L in orange(1, src))
if(L.stat)
visible_message("<span class='warning'>[src] slams down on [L], crushing [L.p_them()]!</span>")
L.investigate_log("has been gibbed by lava swoop.", INVESTIGATE_DEATHS)
L.gib()
else
L.adjustBruteLoss(75)
if(L && !QDELETED(L)) // Some mobs are deleted on death
var/throw_dir = get_dir(src, L)
if(L.loc == loc)
throw_dir = pick(GLOB.alldirs)
var/throwtarget = get_edge_target_turf(src, throw_dir)
L.throw_at(throwtarget, 3)
visible_message("<span class='warning'>[L] is thrown clear of [src]!</span>")
if(L.stat == DEAD)
continue
L.adjustBruteLoss(75)
if(L && !QDELETED(L)) // Some mobs are deleted on death
var/throw_dir = get_dir(src, L)
if(L.loc == loc)
throw_dir = pick(GLOB.alldirs)
var/throwtarget = get_edge_target_turf(src, throw_dir)
L.throw_at(throwtarget, 3)
visible_message("<span class='warning'>[L] is thrown clear of [src]!</span>")
for(var/obj/mecha/M in orange(1, src))
M.take_damage(75, BRUTE, MELEE, 1)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -432,22 +432,21 @@ Difficulty: Hard
did_reset = FALSE

/mob/living/simple_animal/hostile/megafauna/hierophant/AttackingTarget()
if(!blinking)
if(target && isliving(target))
var/mob/living/L = target
if(L.stat != DEAD)
if(ranged_cooldown <= world.time)
calculate_rage()
ranged_cooldown = world.time + max(5, ranged_cooldown_time - anger_modifier * 0.75)
INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src))
else
burst_range = 3
INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src), 0.25) //melee attacks on living mobs cause it to release a fast burst if on cooldown
OpenFire()
else
devour(L)
else
return ..()
if(blinking)
return
if(!target || !isliving(target))
return ..()
var/mob/living/L = target
if(L.stat == DEAD)
return
if(ranged_cooldown <= world.time)
calculate_rage()
ranged_cooldown = world.time + max(5, ranged_cooldown_time - anger_modifier * 0.75)
INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src))
else
burst_range = 3
INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src), 0.25) //melee attacks on living mobs cause it to release a fast burst if on cooldown
OpenFire()

/mob/living/simple_animal/hostile/megafauna/hierophant/DestroySurroundings()
if(!blinking)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,31 +104,15 @@
if(recovery_time >= world.time)
return
. = ..()
if(. && isliving(target))
var/mob/living/L = target
if(L.stat != DEAD)
if(!client && ranged && ranged_cooldown <= world.time)
OpenFire()

if(L.health <= HEALTH_THRESHOLD_DEAD && HAS_TRAIT(L, TRAIT_NODEATH)) //Nope, it still gibs yall
devour(L)
else
devour(L)

/mob/living/simple_animal/hostile/megafauna/proc/devour(mob/living/L)
if(!L)
return FALSE
visible_message(
"<span class='danger'>[src] devours [L]!</span>",
"<span class='userdanger'>You feast on [L], restoring your health!</span>")
if(!is_station_level(z) || client) //NPC monsters won't heal while on station
adjustBruteLoss(-L.maxHealth/2)
for(var/obj/item/W in L)
if(!L.dropItemToGround(W))
qdel(W)
L.investigate_log("has been devoured by [src].", INVESTIGATE_DEATHS)
L.gib()
return TRUE
if(!. || !isliving(target))
return

var/mob/living/L = target
if(L.stat == DEAD)
return

if(!client && ranged && ranged_cooldown <= world.time)
OpenFire()

/mob/living/simple_animal/hostile/megafauna/ex_act(severity, target)
switch (severity)
Expand Down

0 comments on commit 2bb4dd2

Please sign in to comment.