/mob/living/carbon/human/gib(animation = FALSE, meat = TRUE) ASSERT(species) species.gib(src, animation, meat) /* This will be called if the species datum has not overwritten /datum/species/gib() */ /mob/living/carbon/human/proc/default_gib(animation, meat) death(1) handle_body_destroyed() for(var/datum/organ/external/E in src.organs) if(istype(E, /datum/organ/external/chest) || istype(E, /datum/organ/external/groin)) //Really bad stuff happens when either get removed continue //Only make the limb drop if it's not too damaged if(prob(100 - E.get_damage())) //Override the current limb status and don't cause an explosion E.droplimb(1, 1) for(var/datum/organ/external/cosmetic_organ in cosmetic_organs) cosmetic_organ.droplimb(TRUE, TRUE) var/gib_radius = 0 if(reagents.has_reagent(LUBE)) gib_radius = 6 //Your insides are all lubed, so gibs travel much further anim(target = src, a_icon = 'icons/mob/mob.dmi', flick_anim = "gibbed-h", sleeptime = 15) hgibs(loc, virus2, dna, species.flesh_color, species.blood_color, gib_radius) spawn() qdel(src) /mob/living/carbon/human/dust(var/drop_everything = FALSE) ASSERT(species) species.dust(src, drop_everything) /* This will be called if the species datum has not overwritten /datum/species/dust() */ /mob/living/carbon/human/proc/default_dust(drop_everything) death(1) handle_body_destroyed() if(istype(src, /mob/living/carbon/human/manifested)) anim(target = src, a_icon = 'icons/mob/mob.dmi', flick_anim = "dust-hm", sleeptime = 15) else anim(target = src, a_icon = 'icons/mob/mob.dmi', flick_anim = "dust-h", sleeptime = 15) var/datum/organ/external/head_organ = get_organ(LIMB_HEAD) if(head_organ.status & ORGAN_DESTROYED) new /obj/effect/decal/remains/human/noskull(loc) else new /obj/effect/decal/remains/human(loc) if(drop_everything) drop_all() spawn() qdel(src) /mob/living/carbon/human/proc/handle_body_destroyed() monkeyizing = TRUE canmove = 0 icon = null invisibility = 101 dropBorers(1) /mob/living/carbon/human/Destroy() infected_contact_mobs -= src if (pathogen) for (var/mob/L in science_goggles_wearers) if (L.client) L.client.images -= pathogen pathogen = null if(client && iscultist(src) && (timeofdeath == 0 || timeofdeath >= world.time - DEATH_SHADEOUT_TIMER)) var/turf/T = get_turf(src) if (T) var/mob/living/simple_animal/shade/shade = new (T) playsound(T, 'sound/hallucinations/growl1.ogg', 50, 1) shade.name = "[real_name] the Shade" shade.real_name = "[real_name]" mind.transfer_to(shade) update_faction_icons() to_chat(shade, "Dark energies rip your dying body appart, anchoring your soul inside the form of a Shade. You retain your memories, and devotion to the cult.") if(species) QDEL_NULL(species) if(vessel) QDEL_NULL(vessel) my_appearance = null ..() for(var/obj/abstract/Overlays/O in obj_overlays) qdel(O) obj_overlays = null /mob/living/carbon/human/death(gibbed) if((status_flags & BUDDHAMODE) || stat == DEAD) return if(healths) healths.icon_state = "health7" dizziness = 0 remove_jitter() //If we have brain worms, dump 'em. var/mob/living/simple_animal/borer/B=has_brain_worms() if(B && B.controlling) to_chat(src, "Your host has died. You reluctantly release control.") to_chat(B.host_brain, "Just before your body passes, you feel a brief return of sensation. You are now in control... And dead.") do_release_control(0) //Check for heist mode kill count. //if(ticker.mode && ( istype( ticker.mode,/datum/game_mode/heist) ) ) //Check for last assailant's mutantrace. /*if( LAssailant && ( istype( LAssailant,/mob/living/carbon/human ) ) ) var/mob/living/carbon/human/V = LAssailant if (V.dna && (V.dna.mutantrace == "vox")) */ //Not currently feasible due to terrible LAssailant tracking. // to_chat(world, "Vox kills: [vox_kills]") //vox_kills++ //Bad vox. Shouldn't be killing humans. if(ishuman(LAssailant)) var/mob/living/carbon/human/A=LAssailant if(A.mind) A.mind.kills += "[name] ([ckey])" if(!gibbed) update_canmove() stat = DEAD tod = worldtime2text() if(mind) mind.store_memory("Time of death: [tod]", 0) if(!(mind && mind.suiciding)) //Cowards don't count score.deadcrew++ if (dorfpod) dorfpod.scan_body(src) if(ticker && ticker.mode) sql_report_death(src) species.handle_death(src, gibbed) if(become_zombie) spawn(20 SECONDS) if(!gcDestroyed) zombify() return ..(gibbed) /mob/living/carbon/human/proc/makeSkeleton() if(M_SKELETON in src.mutations) return if(my_appearance.f_style) my_appearance.f_style = "Shaved" if(my_appearance.h_style) my_appearance.h_style = "Bald" update_hair(0) mutations.Add(M_SKELETON) var/datum/organ/external/head/head_organ = get_organ(LIMB_HEAD) head_organ.disfigure("burn") update_body(0) update_mutantrace() return /mob/living/carbon/human/proc/ChangeToHusk() if(M_HUSK in mutations) return if(my_appearance.f_style) my_appearance.f_style = "Shaved" //We only change the icon_state of the hair datum, so it doesn't mess up their UI/UE if(my_appearance.h_style) my_appearance.h_style = "Bald" update_hair(0) mutations.Add(M_HUSK) var/datum/organ/external/head/head_organ = get_organ(LIMB_HEAD) head_organ.disfigure("brute") update_body(0) update_mutantrace() vessel.remove_reagent(BLOOD,vessel.get_reagent_amount(BLOOD)) return