Morgue indicator changes

- Fixed indicator not updating when clients log in/out
- Indicator added for when ghost can be cloned but not inside corpse
- Morgue now has a sprite for when a note is added to it
This commit is contained in:
Artorp
2015-02-06 15:07:15 +01:00
parent dd14ad55d6
commit c616b42f67
4 changed files with 55 additions and 1 deletions
+12
View File
@@ -32,8 +32,18 @@
if(M==null) M = locate() in B
if(M)
var/ghost_can_reenter_corpse = null
if (M.mind)
for(var/mob/dead/observer/G in player_list) //Does the corpse have a ghost?
if (G.mind == M.mind)
if (G.client && G.can_reenter_corpse)
ghost_can_reenter_corpse = 1
break
if(M.client)
src.icon_state = "morgue3"
else if(M.mind && ghost_can_reenter_corpse) //There is a ghost and it is connected to the server
src.icon_state = "morgue5"
else
src.icon_state = "morgue2"
@@ -110,8 +120,10 @@
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
if (t)
src.name = text("Morgue- '[]'", t)
src.overlays += image(src.icon, "morgue_label")
else
src.name = "Morgue"
src.overlays.Cut()
src.add_fingerprint(user)
return
+22 -1
View File
@@ -57,4 +57,25 @@
client.verbs |= H.species.abilities
CallHook("Login", list("client" = src.client, "mob" = src))
//Update morgues on login/logout
if (stat == DEAD)
var/obj/structure/morgue/Morgue = null
var/mob/living/carbon/human/C = null
if (istype(src,/mob/dead/observer)) //We're a ghost, let's find our corpse
var/mob/dead/observer/G = src
if (G.can_reenter_corpse && G.mind.current)
C = G.mind.current
else if (istype(src,/mob/living/carbon/human)) //Aliens can't be cloned
C = src
if (C) //We found our corpse, is it inside a morgue?
if (istype(C.loc,/obj/structure/morgue))
Morgue = C.loc
else if (istype(C.loc,/obj/structure/closet/body_bag))
var/obj/structure/closet/body_bag/B = C.loc
if (istype(B.loc,/obj/structure/morgue))
Morgue = B.loc
if (Morgue)
Morgue.update()
+21
View File
@@ -10,5 +10,26 @@
if(admins_number == 0) //Apparently the admin logging out is no longer an admin at this point, so we have to check this towards 0 and not towards 1. Awell.
send2adminirc("[key_name(src)] logged out - no more admins online.")
..()
//Update morgues on login/logout
if (stat == DEAD)
var/obj/structure/morgue/Morgue = null
var/mob/living/carbon/human/C = null
if (istype(src,/mob/dead/observer)) //We're a ghost, let's find our corpse
var/mob/dead/observer/G = src
if (G.can_reenter_corpse && G.mind.current)
C = G.mind.current
else if (istype(src,/mob/living/carbon/human)) //Aliens can't be cloned
C = src
if (C) //We found our corpse, is it inside a morgue?
if (istype(C.loc,/obj/structure/morgue))
Morgue = C.loc
else if (istype(C.loc,/obj/structure/closet/body_bag))
var/obj/structure/closet/body_bag/B = C.loc
if (istype(B.loc,/obj/structure/morgue))
Morgue = B.loc
if (Morgue)
Morgue.update()
return 1