71 lines
2.2 KiB
Plaintext
71 lines
2.2 KiB
Plaintext
GLOBAL_LIST_EMPTY(dead_players_during_shift)
|
|
/mob/living/carbon/human/gib_animation()
|
|
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-h")
|
|
|
|
/mob/living/carbon/human/dust_animation()
|
|
new /obj/effect/temp_visual/dust_animation(loc, "dust-h")
|
|
|
|
/mob/living/carbon/human/spawn_gibs(with_bodyparts, atom/loc_override)
|
|
var/location = loc_override ? loc_override.drop_location() : drop_location()
|
|
if(dna?.species?.gib_types)
|
|
var/blood_dna = get_blood_dna_list()
|
|
var/datum/species/S = dna.species
|
|
var/length = length(S.gib_types)
|
|
if(length)
|
|
var/path = (with_bodyparts && length > 1) ? S.gib_types[2] : S.gib_types[1]
|
|
new path(location, src, get_static_viruses())
|
|
else
|
|
new S.gib_types(location, src, get_static_viruses(), blood_dna)
|
|
else
|
|
if(with_bodyparts)
|
|
new /obj/effect/gibspawner/human(location, src, get_static_viruses())
|
|
else
|
|
new /obj/effect/gibspawner/human/bodypartless(location, src, get_static_viruses())
|
|
|
|
/mob/living/carbon/human/spawn_dust(just_ash = FALSE)
|
|
if(just_ash)
|
|
new /obj/effect/decal/cleanable/ash(loc)
|
|
else
|
|
new /obj/effect/decal/remains/human(loc)
|
|
|
|
/mob/living/carbon/human/death(gibbed)
|
|
if(stat == DEAD)
|
|
return
|
|
stop_sound_channel(CHANNEL_HEARTBEAT)
|
|
var/obj/item/organ/heart/H = getorganslot(ORGAN_SLOT_HEART)
|
|
if(H)
|
|
H.beat = BEAT_NONE
|
|
|
|
. = ..()
|
|
|
|
dizziness = 0
|
|
jitteriness = 0
|
|
if(client && !suiciding && !(client in GLOB.dead_players_during_shift))
|
|
GLOB.dead_players_during_shift += client
|
|
GLOB.deaths_during_shift++
|
|
|
|
if(!QDELETED(dna)) //The gibbed param is bit redundant here since dna won't exist at this point if they got deleted.
|
|
dna.species.spec_death(gibbed, src)
|
|
|
|
if(SSticker.HasRoundStarted())
|
|
SSblackbox.ReportDeath(src)
|
|
if(is_devil(src))
|
|
INVOKE_ASYNC(is_devil(src), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src)
|
|
|
|
/mob/living/carbon/human/proc/makeSkeleton()
|
|
ADD_TRAIT(src, TRAIT_DISFIGURED, TRAIT_GENERIC)
|
|
set_species(/datum/species/skeleton)
|
|
return TRUE
|
|
|
|
|
|
/mob/living/carbon/proc/Drain()
|
|
become_husk(CHANGELING_DRAIN)
|
|
ADD_TRAIT(src, TRAIT_NOCLONE, CHANGELING_DRAIN)
|
|
blood_volume = 0
|
|
return TRUE
|
|
|
|
/mob/living/carbon/proc/makeUncloneable()
|
|
ADD_TRAIT(src, TRAIT_NOCLONE, MADE_UNCLONEABLE)
|
|
blood_volume = 0
|
|
return TRUE
|