Files
Bubberstation/code/modules/mob/dead/observer/observer.dm.bak

171 lines
4.5 KiB
Plaintext

/mob/observer/New(mob/corpse)
set invisibility = 10
..()
if(corpse)
src.corpse = corpse
src.loc = get_turf(corpse.loc)
src.real_name = corpse.real_name
src.name = corpse.real_name
src.sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS
src.see_invisible = 10
src.see_in_dark = 100
src.verbs += /mob/observer/proc/dead_tele
src.verbs += /mob/observer/proc/reenter_corpse
/mob/proc/ghostize()
set name = "Ghost"
set desc = "You cannot be revived as a ghost"
if(src.client)
src.client.mob = new/mob/observer(src)
return
/mob/observer/Move(NewLoc, direct)
if(NewLoc)
src.loc = NewLoc
return
if((direct & NORTH) && src.y < world.maxy)
src.y++
if((direct & SOUTH) && src.y > 1)
src.y--
if((direct & EAST) && src.x < world.maxx)
src.x++
if((direct & WEST) && src.x > 1)
src.x--
/mob/observer/examine()
if(usr) usr << src.desc
/mob/observer/can_use_hands() return 0
/mob/observer/is_active() return 0
/mob/observer/Stat()
..()
statpanel("Status")
if (src.client.statpanel == "Status")
if(ticker && ticker.mode)
if (ticker.timeleft)
stat(null, "ETA-[ticker.timeleft / 600 % 60]:[ticker.timeleft / 100 % 6][ticker.timeleft / 100 % 10]")
if(ticker.mode.name == "Corporate Restructuring" && ticker.target)
var/icon = ticker.target.name
var/icon2 = ticker.target.real_name
var/area = get_area(ticker.target)
stat(null, text("Target: [icon2] (as [icon]) is in [area]"))
if(ticker.mode.name == "AI malfunction" && ticker.processing)
stat(null, text("Time until all [station_name()]'s systems are taken over: [(ticker.AIwin - ticker.AItime) / 600 % 60]:[(ticker.AIwin - ticker.AItime) / 100 % 6][(ticker.AIwin - ticker.AItime) / 10 % 10]"))
if (ticker.mode.name == "ctf")
stat(null, text("Red Team - [ticker.red_score]"))
stat(null, text("Green Team - [ticker.green_score]"))
/mob/observer/proc/reenter_corpse()
set category = "Special Verbs"
set name = "Re-enter Corpse"
if(!corpse)
alert("You don't have a corpse!")
return
if(corpse.stat == 2)
alert("Your body is dead!")
return
if(src.client && src.client.holder && src.client.holder.state == 2)
var/rank = src.client.holder.rank
src.client.clear_admin_verbs()
src.client.holder.state = 1
src.client.update_admins(rank)
src.client.mob = corpse
del(src)
/mob/observer/proc/dead_tele()
set category = "Special Verbs"
set name = "Teleport"
set desc= "Teleport"
if((usr.stat != 2) || !istype(usr, /mob/observer))
usr << "Not when you're not dead!"
return
var/A
usr.verbs -= /mob/observer/proc/dead_tele
spawn(50)
usr.verbs += /mob/observer/proc/dead_tele
A = input("Area to jump to", "BOOYEA", A) in list("Engine","Hallways","Toxins","Storage","Maintenance","Crew Quarters","Medical","Security","Chapel","Bridge")
switch (A)
if ("Engine")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/engine) && !istype(B, /area/engine/combustion) && !istype(B, /area/engine/engine_walls))
L += B
A = pick(L)
if ("Hallways")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/hallway))
L += B
A = pick(L)
if ("Toxins")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/toxins) && !istype(B, /area/toxins/test_chamber))
L += B
A = pick(L)
if ("Storage")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/storage))
L += B
A = pick(L)
if ("Maintenance")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/maintenance))
L += B
A = pick(L)
if ("Crew Quarters")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/crew_quarters))
L += B
A = pick(L)
if ("Medical")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/medical))
L += B
A = pick(L)
if ("Security")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/security))
L += B
A = pick(L)
if ("Chapel")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/chapel))
L += B
A = pick(L)
if ("Bridge")
var/list/L = list()
for(var/area/B in world)
if(istype(B, /area/bridge))
L += B
A = pick(L)
var/list/L = list()
for(var/turf/T in A)
if(!T.density)
var/clear = 1
for(var/obj/O in T)
if(O.density)
clear = 0
break
if(clear)
L+=T
usr.loc = pick(L)