* combat refactoring * i hate this * mobility flags part 2 time xd * whew * stuff * a * ok * changes * Wew * k * add flags * FUCKYOUVORE * fixes * typo * no using this in hard stamcrit * update icon * woopsy * . = ..() * sigh * Update living_combat.dm * wew * wups * fix * i hate you * wrong button * k * ok * bet * k * Update code/modules/mob/living/living_combat.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> * Update code/modules/mob/living/living_combat.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> * Update code/modules/mob/living/living_combat.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> * early returns * skreee * agony * k * k * k * k * wack * compile * wack Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
72 lines
2.1 KiB
Plaintext
72 lines
2.1 KiB
Plaintext
/mob/living/carbon/death(gibbed)
|
|
if(stat == DEAD)
|
|
return
|
|
|
|
silent = FALSE
|
|
losebreath = 0
|
|
|
|
if(!gibbed)
|
|
emote("deathgasp")
|
|
|
|
disable_intentional_combat_mode(TRUE, FALSE)
|
|
|
|
. = ..()
|
|
|
|
for(var/T in get_traumas())
|
|
var/datum/brain_trauma/BT = T
|
|
BT.on_death()
|
|
|
|
if(SSticker.mode)
|
|
SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now
|
|
|
|
/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts)
|
|
var/atom/Tsec = drop_location()
|
|
for(var/mob/M in src)
|
|
if(M in stomach_contents)
|
|
stomach_contents.Remove(M)
|
|
M.forceMove(Tsec)
|
|
visible_message("<span class='danger'>[M] bursts out of [src]!</span>")
|
|
..()
|
|
|
|
/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts)
|
|
var/atom/Tsec = drop_location()
|
|
if(!no_bodyparts)
|
|
if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop.
|
|
for(var/X in internal_organs)
|
|
if(no_brain || !istype(X, /obj/item/organ/brain))
|
|
qdel(X)
|
|
else //we're going to drop all bodyparts except chest, so the only organs that needs spilling are those inside it.
|
|
for(var/X in internal_organs)
|
|
var/obj/item/organ/O = X
|
|
if(no_brain && istype(O, /obj/item/organ/brain))
|
|
qdel(O) //so the brain isn't transfered to the head when the head drops.
|
|
continue
|
|
var/org_zone = check_zone(O.zone) //both groin and chest organs.
|
|
if(org_zone == BODY_ZONE_CHEST)
|
|
O.Remove()
|
|
O.forceMove(Tsec)
|
|
O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
|
|
else
|
|
for(var/X in internal_organs)
|
|
var/obj/item/organ/I = X
|
|
if(no_brain && istype(I, /obj/item/organ/brain))
|
|
qdel(I)
|
|
continue
|
|
if(no_organs && !istype(I, /obj/item/organ/brain))
|
|
qdel(I)
|
|
continue
|
|
I.Remove()
|
|
I.forceMove(Tsec)
|
|
I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
|
|
|
|
|
|
/mob/living/carbon/spread_bodyparts()
|
|
for(var/X in bodyparts)
|
|
var/obj/item/bodypart/BP = X
|
|
BP.drop_limb()
|
|
BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
|
|
|
|
/mob/living/carbon/ghostize(can_reenter_corpse = TRUE, special = FALSE, penalize = FALSE, voluntary = FALSE)
|
|
disable_intentional_combat_mode(TRUE, FALSE)
|
|
return ..()
|