mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-29 03:21:42 +00:00
Calls the final HUD update later (higher, in mob/death) since stat was not yet DEAD (2) when it was called before. Also makes all mobs update the HUDs all life() ticks, so people who have ghosted and left a body have correct HUD readings. If this affects performance, sorry? ... It really shouldn't. Only carbons should have real HUDs to update. The rest are tiny little procs.
95 lines
2.0 KiB
Plaintext
95 lines
2.0 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)
|
|
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 = 'icons/mob/mob.dmi'
|
|
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/death(gibbed,deathmessage="seizes up and falls limp...")
|
|
|
|
if(stat == DEAD)
|
|
return 0
|
|
|
|
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]")
|
|
|
|
stat = DEAD
|
|
|
|
update_canmove()
|
|
|
|
dizziness = 0
|
|
jitteriness = 0
|
|
|
|
layer = MOB_LAYER
|
|
|
|
if(blind && client)
|
|
blind.layer = 0
|
|
|
|
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.icon_state = "health6"
|
|
|
|
timeofdeath = world.time
|
|
if(mind) mind.store_memory("Time of death: [worldtime2text()]", 0)
|
|
living_mob_list -= src
|
|
dead_mob_list |= src
|
|
|
|
updateicon()
|
|
handle_regular_hud_updates()
|
|
|
|
if(ticker && ticker.mode)
|
|
ticker.mode.check_win()
|
|
|
|
|
|
return 1
|