Files
CHOMPStation2/code/modules/mob/death.dm
Repede 7f1a6d6cc7 Fuck this shit
Merge branch 'release' of https://github.com/VOREStation/VOREStation

# Conflicts:
#	code/controllers/autotransfer.dm
#	code/controllers/subsystems/inactivity.dm
#	code/game/area/Away Mission areas.dm
#	code/game/area/Space Station 13 areas.dm
#	code/game/jobs/job/captain.dm
#	code/game/jobs/job/civilian.dm
#	code/game/jobs/job/security.dm
#	code/game/jobs/jobs.dm
#	code/game/machinery/air_alarm.dm
#	code/game/machinery/suit_storage_unit.dm
#	code/game/machinery/suit_storage_unit_vr.dm
#	code/game/mecha/combat/gorilla.dm
#	code/game/turfs/simulated/dungeon/wall.dm
#	code/game/turfs/simulated/wall_types.dm
#	code/modules/client/preference_setup/loadout/loadout_utility_vr.dm
#	code/modules/clothing/glasses/glasses.dm
#	code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm
#	code/modules/clothing/spacesuits/void/void_vr.dm
#	code/modules/clothing/under/accessories/holster.dm
#	code/modules/mob/language/station_vr.dm
#	code/modules/mob/living/carbon/human/emote_vr.dm
#	code/modules/mob/living/carbon/human/species/station/station_vr.dm
#	code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
#	code/modules/mob/new_player/sprite_accessories_vr.dm
#	code/modules/power/apc.dm
#	code/modules/power/lighting.dm
#	code/modules/resleeving/machines.dm
#	config/jobwhitelist.txt
#	icons/mob/species/seromi/head.dmi
#	icons/mob/species/seromi/suit.dmi
#	icons/mob/species/vulpkanin/helmet.dmi
#	icons/mob/species/vulpkanin/suit.dmi
#	maps/tether/submaps/_tether_submaps.dm
#	maps/tether/tether_areas2.dm
#	maps/tether/tether_defines.dm
#	maps/tether/tether_shuttles.dm
#	nano/templates/apc.tmpl
#	vorestation.dme
2020-04-04 14:37:55 -04:00

116 lines
2.8 KiB
Plaintext

//This is the proc for gibbing a mob. Cannot gib ghosts.
//added different sort of gibs and animations. N
/mob/proc/gib(anim="gibbed-m", do_gibs, gib_file = 'icons/mob/mob.dmi')
death(1)
transforming = 1
canmove = 0
icon = null
invisibility = 101
update_canmove()
dead_mob_list -= src
var/atom/movable/overlay/animation = null
animation = new(loc)
animation.icon_state = "blank"
animation.icon = gib_file
animation.master = src
flick(anim, animation)
if(do_gibs) gibs(loc, dna)
spawn(15)
if(animation) qdel(animation)
if(src) qdel(src)
//This is the proc for turning a mob into ash. Mostly a copy of gib code (above).
//Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here.
//Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N
/mob/proc/dust(anim="dust-m",remains=/obj/effect/decal/cleanable/ash)
death(1)
var/atom/movable/overlay/animation = null
transforming = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'icons/mob/mob.dmi'
animation.master = src
flick(anim, animation)
new remains(loc)
dead_mob_list -= src
spawn(15)
if(animation) qdel(animation)
if(src) qdel(src)
/mob/proc/ash(anim="dust-m")
death(1)
var/atom/movable/overlay/animation = null
transforming = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'icons/mob/mob.dmi'
animation.master = src
flick(anim, animation)
dead_mob_list -= src
spawn(15)
if(animation) qdel(animation)
if(src) qdel(src)
/mob/proc/death(gibbed,deathmessage="seizes up and falls limp...")
if(stat == DEAD)
return 0
if(src.loc && istype(loc,/obj/belly) || istype(loc,/obj/item/device/dogborg/sleeper)) deathmessage = "no message" //VOREStation Add - Prevents death messages from inside mobs
facing_dir = null
if(!gibbed && deathmessage != "no message") // This is gross, but reliable. Only brains use it.
src.visible_message("<b>\The [src.name]</b> [deathmessage]")
set_stat(DEAD)
update_canmove()
dizziness = 0
jitteriness = 0
layer = MOB_LAYER
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_TWO
drop_r_hand()
drop_l_hand()
if(healths)
healths.overlays = null // This is specific to humans but the relevant code is here; shouldn't mess with other mobs.
healths.icon_state = "health6"
timeofdeath = world.time
if(mind) mind.store_memory("Time of death: [stationtime2text()]", 0)
living_mob_list -= src
dead_mob_list |= src
updateicon()
handle_regular_hud_updates()
handle_vision()
if(ticker && ticker.mode)
ticker.mode.check_win()
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
R.on_mob_death(src)
return 1