Merge pull request #35072 from ChuckTheSheep/Morgue-and-Crematorium-Directional-Sprites-+-fixes

Morgue and Crematorium Directional Sprites + Number of related fixes (Retrying #35068)
This commit is contained in:
vuonojenmustaturska
2018-01-29 18:23:29 +02:00
committed by GitHub
4 changed files with 30 additions and 16 deletions
@@ -21,7 +21,8 @@
diseases_to_add += D
if(LAZYLEN(diseases_to_add))
AddComponent(/datum/component/infective, diseases_to_add)
. = ..()
return//. = ..()//cleanable stuff sometimes needs to be in objs
/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C)
if(mergeable_decal)
+21 -9
View File
@@ -24,7 +24,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
var/obj/structure/tray/connected = null
var/locked = FALSE
var/opendir = SOUTH
dir = SOUTH
var/message_cooldown
var/breakout_time = 600
@@ -115,12 +115,15 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
/obj/structure/bodycontainer/proc/open()
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
var/turf/T = get_step(src, opendir)
playsound(src, 'sound/effects/roll.ogg', 5, 1)
var/turf/T = get_step(src, dir)
connected.dir=dir
for(var/atom/movable/AM in src)
AM.forceMove(T)
update_icon()
/obj/structure/bodycontainer/proc/close()
playsound(src, 'sound/effects/roll.ogg', 5, 1)
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
for(var/atom/movable/AM in connected.loc)
if(!AM.anchored || AM == connected)
@@ -137,7 +140,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
name = "morgue"
desc = "Used to keep bodies in until someone fetches them."
icon_state = "morgue1"
opendir = EAST
dir = EAST
/obj/structure/bodycontainer/morgue/New()
connected = new/obj/structure/tray/m_tray(src)
@@ -156,11 +159,14 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
if(!length(compiled)) // No mobs?
icon_state = "morgue3"
return
for(var/mob/living/M in compiled)
if(M.client && !M.suiciding)
var/mob/living/mob_occupant = get_mob_or_brainmob(M)
if(!mob_occupant.suiciding && !(mob_occupant.has_trait(TRAIT_NOCLONE)) && !mob_occupant.hellbound)
icon_state = "morgue4" // Cloneable
break
/obj/item/paper/guides/jobs/medical/morgue
name = "morgue memo"
info = "<font size='2'>Since this station's medbay never seems to fail to be staffed by the mindless monkeys meant for genetics experiments, I'm leaving a reminder here for anyone handling the pile of cadavers the quacks are sure to leave.</font><BR><BR><font size='4'><font color=red>Red lights mean there's a plain ol' dead body inside.</font><BR><BR><font color=orange>Yellow lights mean there's non-body objects inside.</font><BR><font size='2'>Probably stuff pried off a corpse someone grabbed, or if you're lucky it's stashed booze.</font><BR><BR><font color=green>Green lights mean the morgue system detects the body may be able to be cloned.</font></font><BR><font size='2'>I don't know how that works, but keep it away from the kitchen and go yell at the geneticists.</font><BR><BR>- CentCom medical inspector"
@@ -173,7 +179,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
name = "crematorium"
desc = "A human incinerator. Works well on barbeque nights."
icon_state = "crema1"
opendir = SOUTH
dir = SOUTH
var/id = 1
/obj/structure/bodycontainer/crematorium/attack_robot(mob/user) //Borgs can't use crematoriums without help
@@ -235,12 +241,18 @@ GLOBAL_LIST_EMPTY(crematoriums)
M.ghostize()
qdel(M)
for(var/obj/O in conts) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up
if(O != connected) //Creamtorium does not burn hot enough to destroy the tray
qdel(O)
var/ash_check = FALSE
for(var/obj/O in conts) //conts defined above, ignores crematorium and tray
if(istype(O,/obj/effect/decal/cleanable/ash)) ash_check = TRUE//creates the illusion of ash piling up
qdel(O)
var/obj/effect/decal/cleanable/ash/a
if(ash_check) a=new/obj/effect/decal/cleanable/ash/large(src)//cont. illusion of more ash
else a=new/obj/effect/decal/cleanable/ash(src)
a.layer = connected.layer//Makes the ash the same layer as the tray.
new /obj/effect/decal/cleanable/ash(src)
sleep(30)
if(!QDELETED(src))
locked = FALSE
update_icon()
@@ -43,12 +43,13 @@
/mob/living/simple_animal/mouse/death(gibbed, toast)
if(!ckey)
..(1)
var/obj/item/reagent_containers/food/snacks/deadmouse/M = new(loc)
M.icon_state = icon_dead
M.name = name
if(toast)
M.add_atom_colour("#3A3A3A", FIXED_COLOUR_PRIORITY)
M.desc = "It's toast."
if(!gibbed)
var/obj/item/reagent_containers/food/snacks/deadmouse/M = new(loc)
M.icon_state = icon_dead
M.name = name
if(toast)
M.add_atom_colour("#3A3A3A", FIXED_COLOUR_PRIORITY)
M.desc = "It's toast."
qdel(src)
else
..(gibbed)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 66 KiB