diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index 8831f8aa401..01a84fdf5d9 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -43,7 +43,7 @@ mob/check_airflow_movable(n) return 0 return 1 -mob/dead/observer/check_airflow_movable() +mob/observer/check_airflow_movable() return 0 mob/living/silicon/check_airflow_movable() @@ -247,6 +247,6 @@ zone/proc/movables() . = list() for(var/turf/T in contents) for(var/atom/movable/A in T) - if(!A.simulated || A.anchored || istype(A, /obj/effect) || istype(A, /mob/eye)) + if(!A.simulated || A.anchored || istype(A, /obj/effect) || istype(A, /mob/observer)) continue . += A diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index 79b3aa65407..3964ddeebaa 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -244,7 +244,7 @@ var/turf/ear = get_turf(M) if(ear) // Ghostship is magic: Ghosts can hear radio chatter from anywhere - if(speaker_coverage[ear] || (istype(M, /mob/dead/observer) && (M.client) && (M.client.prefs.toggles & CHAT_GHOSTRADIO))) + if(speaker_coverage[ear] || (istype(M, /mob/observer/dead) && (M.client) && (M.client.prefs.toggles & CHAT_GHOSTRADIO))) . |= M // Since we're already looping through mobs, why bother using |= ? This only slows things down. return . @@ -323,7 +323,7 @@ proc/isInSight(var/atom/A, var/atom/B) var/list/candidates = list() //List of candidate KEYS to assume control of the new larva ~Carn var/i = 0 while(candidates.len <= 0 && i < 5) - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(((G.client.inactivity/10)/60) <= buffer + i) // the most active players are more likely to become an alien if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) candidates += G.key @@ -337,7 +337,7 @@ proc/isInSight(var/atom/A, var/atom/B) var/list/candidates = list() //List of candidate KEYS to assume control of the new larva ~Carn var/i = 0 while(candidates.len <= 0 && i < 5) - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.client.prefs.be_special & BE_ALIEN) if(((G.client.inactivity/10)/60) <= ALIEN_SELECT_AFK_BUFFER + i) // the most active players are more likely to become an alien if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index bd6f014e0b5..8057d65f969 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -462,7 +462,7 @@ Turf and target are seperate in case you want to teleport some distance from a t if (M.real_name && M.real_name != M.name) name += " \[[M.real_name]\]" if (M.stat == 2) - if(istype(M, /mob/dead/observer/)) + if(istype(M, /mob/observer/dead/)) name += " \[ghost\]" else name += " \[dead\]" @@ -474,7 +474,7 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/sortmobs() var/list/moblist = list() var/list/sortmob = sortAtom(mob_list) - for(var/mob/eye/M in sortmob) + for(var/mob/observer/eye/M in sortmob) moblist.Add(M) for(var/mob/living/silicon/ai/M in sortmob) moblist.Add(M) @@ -488,7 +488,7 @@ Turf and target are seperate in case you want to teleport some distance from a t moblist.Add(M) for(var/mob/living/carbon/alien/M in sortmob) moblist.Add(M) - for(var/mob/dead/observer/M in sortmob) + for(var/mob/observer/dead/M in sortmob) moblist.Add(M) for(var/mob/new_player/M in sortmob) moblist.Add(M) @@ -861,7 +861,7 @@ proc/GaussRandRound(var/sigma,var/roundto) if(!istype(O,/obj)) continue O.loc = X for(var/mob/M in T) - if(!istype(M,/mob) || istype(M, /mob/eye)) continue // If we need to check for more mobs, I'll add a variable + if(!istype(M,/mob) || istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable M.loc = X // var/area/AR = X.loc @@ -995,7 +995,7 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0) for(var/mob/M in T) - if(!istype(M,/mob) || istype(M, /mob/eye)) continue // If we need to check for more mobs, I'll add a variable + if(!istype(M,/mob) || istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable mobs += M for(var/mob/M in mobs) diff --git a/code/_macros.dm b/code/_macros.dm index b6ddf4f12ca..7e8d581b90f 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -13,7 +13,7 @@ #define iscorgi(A) istype(A, /mob/living/simple_animal/corgi) -#define isEye(A) istype(A, /mob/eye) +#define isEye(A) istype(A, /mob/observer/eye) #define ishuman(A) istype(A, /mob/living/carbon/human) @@ -23,7 +23,7 @@ #define isnewplayer(A) istype(A, /mob/new_player) -#define isobserver(A) istype(A, /mob/dead/observer) +#define isobserver(A) istype(A, /mob/observer/dead) #define isorgan(A) istype(A, /obj/item/organ/external) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index d1c0b7b5052..5f18c2d9b87 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -1,5 +1,5 @@ /client/var/inquisitive_ghost = 1 -/mob/dead/observer/verb/toggle_inquisition() // warning: unexpected inquisition +/mob/observer/dead/verb/toggle_inquisition() // warning: unexpected inquisition set name = "Toggle Inquisitiveness" set desc = "Sets whether your ghost examines everything on click by default" set category = "Ghost" @@ -10,7 +10,7 @@ else src << "You will no longer examine things you click on." -/mob/dead/observer/DblClickOn(var/atom/A, var/params) +/mob/observer/dead/DblClickOn(var/atom/A, var/params) if(client.buildmode) build_click(src, client.buildmode, params, A) return @@ -28,7 +28,7 @@ following = null forceMove(get_turf(A)) -/mob/dead/observer/ClickOn(var/atom/A, var/params) +/mob/observer/dead/ClickOn(var/atom/A, var/params) if(client.buildmode) build_click(src, client.buildmode, params, A) return @@ -39,7 +39,7 @@ A.attack_ghost(src) // Oh by the way this didn't work with old click code which is why clicking shit didn't spam you -/atom/proc/attack_ghost(mob/dead/observer/user as mob) +/atom/proc/attack_ghost(mob/observer/dead/user as mob) if(user.client && user.client.inquisitive_ghost) user.examinate(src) return diff --git a/code/controllers/Processes/inactivity.dm b/code/controllers/Processes/inactivity.dm index cd01e24829a..e61c2d4dc11 100644 --- a/code/controllers/Processes/inactivity.dm +++ b/code/controllers/Processes/inactivity.dm @@ -6,7 +6,7 @@ if(config.kick_inactive) for(var/client/C in clients) if(!C.holder && C.is_afk(config.kick_inactive MINUTES)) - if(!istype(C.mob, /mob/dead)) + if(!istype(C.mob, /mob/observer/dead)) log_access("AFK: [key_name(C)]") C << "You have been inactive for more than [config.kick_inactive] minute\s and have been disconnected." del(C) // Don't qdel, cannot override finalize_qdel behaviour for clients. diff --git a/code/defines/procs/hud.dm b/code/defines/procs/hud.dm index e5560e5ce05..78fdb6dc7bb 100644 --- a/code/defines/procs/hud.dm +++ b/code/defines/procs/hud.dm @@ -72,7 +72,7 @@ mob/proc/handle_regular_hud_updates() //Used in the life.dm of mobs that can use mob/proc/in_view(var/turf/T) return view(T) -/mob/eye/in_view(var/turf/T) +/mob/observer/eye/in_view(var/turf/T) var/list/viewed = new for(var/mob/living/carbon/human/H in mob_list) if(get_dist(H, T) <= 7) diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index 4b7d2b7db66..e9d5ef71b5e 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -94,7 +94,7 @@ // Prune restricted status. Broke it up for readability. // Note that this is done before jobs are handed out. for(var/datum/mind/player in ticker.mode.get_players_for_role(role_type, id)) - if(ghosts_only && !istype(player.current, /mob/dead)) + if(ghosts_only && !istype(player.current, /mob/observer/dead)) log_debug("[key_name(player)] is not eligible to become a [role_text]: Only ghosts may join as this role!") else if(player.special_role) log_debug("[key_name(player)] is not eligible to become a [role_text]: They already have a special role ([player.special_role])!") @@ -126,7 +126,7 @@ return 0 player.current << "You have been selected this round as an antagonist!" message_admins("[uppertext(ticker.mode.name)]: Selected [player] as a [role_text].") - if(istype(player.current, /mob/dead)) + if(istype(player.current, /mob/observer/dead)) create_default(player.current) else add_antagonist(player,0,0,0,1,1) diff --git a/code/game/antagonist/antagonist_add.dm b/code/game/antagonist/antagonist_add.dm index 1598aacfe80..9f594f9b637 100644 --- a/code/game/antagonist/antagonist_add.dm +++ b/code/game/antagonist/antagonist_add.dm @@ -8,7 +8,7 @@ player.assigned_role = role_text player.special_role = role_text - if(istype(player.current, /mob/dead)) + if(istype(player.current, /mob/observer/dead)) create_default(player.current) else create_antagonist(player, move_to_spawn, do_not_announce, preserve_appearance) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 29d519355e8..b37342ced52 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -159,7 +159,7 @@ || locate(/obj/machinery/computer/cloning, get_step(src, WEST))) if(!M.client && M.mind) - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/observer/dead/ghost in player_list) if(ghost.mind == M.mind) ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be resurrected/cloned! (Verbs -> Ghost -> Re-enter corpse)" break diff --git a/code/game/gamemodes/cult/cultify/mob.dm b/code/game/gamemodes/cult/cultify/mob.dm index 154078de3d6..14bb380a194 100644 --- a/code/game/gamemodes/cult/cultify/mob.dm +++ b/code/game/gamemodes/cult/cultify/mob.dm @@ -6,7 +6,7 @@ /mob/proc/cultify() return -/mob/dead/cultify() +/mob/observer/dead/cultify() if(icon_state != "ghost-narsie") icon = 'icons/mob/mob.dmi' icon_state = "ghost-narsie" @@ -21,7 +21,7 @@ C << "The Geometer of Blood is overjoyed to be reunited with its followers, and accepts your body in sacrifice. As reward, you have been gifted with the shell of an Harvester.
Your tendrils can use and draw runes without need for a tome, your eyes can see beings through walls, and your mind can open any door. Use these assets to serve Nar-Sie and bring him any remaining living human in the world.
You can teleport yourself back to Nar-Sie along with any being under yourself at any time using your \"Harvest\" spell.
" dust() else if(client) - var/mob/dead/G = (ghostize()) + var/mob/observer/dead/G = (ghostize()) G.icon = 'icons/mob/mob.dmi' G.icon_state = "ghost-narsie" G.overlays = 0 diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm index a3248a07e5b..f746e702977 100644 --- a/code/game/gamemodes/cult/narsie.dm +++ b/code/game/gamemodes/cult/narsie.dm @@ -298,7 +298,7 @@ var/global/list/narsie_list = list() acquire(pick(cultists)) return //no living cultists, pick a living human instead. - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/observer/dead/ghost in player_list) if(!ghost.client) continue var/turf/pos = get_turf(ghost) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index d8c41eea427..569d034cade 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -343,8 +343,8 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa"," user.attack_log += text("\[[time_stamp()]\] Used [name] on [M.name] ([M.ckey])") msg_admin_attack("[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey]) (JMP)") - if(istype(M,/mob/dead)) - var/mob/dead/D = M + if(istype(M,/mob/observer/dead)) + var/mob/observer/dead/D = M D.manifest(user) return if(!istype(M)) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 7824debd8b8..88d850283cd 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -342,8 +342,8 @@ var/list/sacrificed = list() usr << "The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used." return fizzle() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in loc) + var/mob/observer/dead/ghost + for(var/mob/observer/dead/O in loc) if(!O.client) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue ghost = O @@ -437,8 +437,8 @@ var/list/sacrificed = list() src = null if(usr.loc!=this_rune.loc) return this_rune.fizzle() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in this_rune.loc) + var/mob/observer/dead/ghost + for(var/mob/observer/dead/O in this_rune.loc) if(!O.client) continue if(!O.MayRespawn()) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue diff --git a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm index 2f12370f586..c25e3c55674 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm @@ -112,7 +112,7 @@ /turf/unsimulated/wall/supermatter/proc/Consume(var/mob/living/user) - if(istype(user,/mob/dead/observer)) + if(istype(user,/mob/observer)) return qdel(user) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 073383ac203..59327bd65e0 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -537,7 +537,7 @@ proc/display_roundstart_logout_report() continue //Dead continue //Happy connected client - for(var/mob/dead/observer/D in mob_list) + for(var/mob/observer/dead/D in mob_list) if(D.mind && (D.mind.original == L || D.mind.current == L)) if(L.stat == DEAD) if(L.suiciding) //Suicider diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index b112fae4a00..54524e3cf8d 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -387,8 +387,8 @@ var/global/datum/controller/gameticker/ticker else Player << "You missed the crew transfer after the events on [station_name()] as [Player.real_name]." else - if(istype(Player,/mob/dead/observer)) - var/mob/dead/observer/O = Player + if(istype(Player,/mob/observer/dead)) + var/mob/observer/dead/O = Player if(!O.started_as_observer) Player << "You did not survive the events on [station_name()]..." else diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm index e2a0aed826a..5f0860606b6 100644 --- a/code/game/machinery/atmoalter/meter.dm +++ b/code/game/machinery/atmoalter/meter.dm @@ -68,7 +68,7 @@ /obj/machinery/meter/examine(mob/user) var/t = "A gas flow meter. " - if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead))) + if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/observer/dead))) t += "You are too far away to read it." else if(stat & (NOPOWER|BROKEN)) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 7d77de761f8..a06b22927db 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -87,7 +87,7 @@ if(ckey(clonemind.key) != R.ckey) return 0 else - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.ckey == R.ckey) if(G.can_reenter_corpse) break diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 6a61a082b98..b64f5923c83 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -298,7 +298,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept continue // Ghosts hearing all radio chat don't want to hear syndicate intercepts, they're duplicates - if(data == 3 && istype(R, /mob/dead/observer) && R.client && R.client.prefs && (R.client.prefs.toggles & CHAT_GHOSTRADIO)) + if(data == 3 && istype(R, /mob/observer/dead) && R.client && R.client.prefs && (R.client.prefs.toggles & CHAT_GHOSTRADIO)) continue // --- Check for compression --- diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index d5d03749bee..b107dcc42d9 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -85,7 +85,7 @@ if(..()) return /* Ghosts can't use this one because it's a direct selection */ - if(istype(user, /mob/dead/observer)) return + if(istype(user, /mob/observer/dead)) return var/list/L = list() var/list/areaindex = list() diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 59a71ddaa82..fa521c104a1 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -13,7 +13,7 @@ ..() if(!H) return - if(istype(H, /mob/dead/observer) && !affect_ghosts) + if(istype(H, /mob/observer) && !affect_ghosts) return Trigger(H) diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm index 4e552cc513e..2906cb756df 100644 --- a/code/game/objects/items/devices/communicator/communicator.dm +++ b/code/game/objects/items/devices/communicator/communicator.dm @@ -109,7 +109,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() if(!comm || !comm.exonet || !comm.exonet.address || comm.exonet.address == src.exonet.address) //Don't add addressless devices, and don't add ourselves. continue src.known_devices |= comm - for(var/mob/dead/observer/O in dead_mob_list) + for(var/mob/observer/dead/O in dead_mob_list) if(!O.client || O.client.prefs.communicator_visibility == 0) continue src.known_devices |= O @@ -157,13 +157,13 @@ var/global/list/obj/item/device/communicator/all_communicators = list() populate_known_devices() //Update the devices so ghosts can see the list on NanoUI. ..() -/mob/dead/observer +/mob/observer/dead var/datum/exonet_protocol/exonet = null // Proc: New() // Parameters: None // Description: Gives ghosts an exonet address based on their key and ghost name. -/mob/dead/observer/New() +/mob/observer/dead/New() . = ..() spawn(20) exonet = new(src) @@ -175,7 +175,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() // Proc: Destroy() // Parameters: None // Description: Removes the ghost's address and nulls the exonet datum, to allow qdel()ing. -/mob/dead/observer/Destroy() +/mob/observer/dead/Destroy() . = ..() if(exonet) exonet.remove_address() @@ -200,7 +200,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() communicators[++communicators.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address) //Now for ghosts who we pretend have communicators. - for(var/mob/dead/observer/O in known_devices) + for(var/mob/observer/dead/O in known_devices) if(O.client && O.client.prefs.communicator_visibility == 1 && O.exonet) communicators[++communicators.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address) @@ -210,7 +210,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() invites[++invites.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address) //Ghosts we invited. - for(var/mob/dead/observer/O in voice_invites) + for(var/mob/observer/dead/O in voice_invites) if(O.exonet && O.client) invites[++invites.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address) @@ -220,7 +220,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() requests[++requests.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address) //Ghosts that want to talk to us. - for(var/mob/dead/observer/O in voice_requests) + for(var/mob/observer/dead/O in voice_requests) if(O.exonet && O.client) requests[++requests.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address) @@ -342,7 +342,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() // Proc: receive_exonet_message() // Parameters: 3 (origin atom - the source of the message's holder, origin_address - where the message came from, message - the message received) // Description: Handles voice requests and invite messages originating from both real communicators and ghosts. Also includes a ping response. -/mob/dead/observer/receive_exonet_message(origin_atom, origin_address, message) +/mob/observer/dead/receive_exonet_message(origin_atom, origin_address, message) if(message == "voice") if(istype(origin_atom, /obj/item/device/communicator)) var/obj/item/device/communicator/comm = origin_atom @@ -600,7 +600,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() // Verb: join_as_voice() // Parameters: None // Description: Allows ghosts to call communicators, if they meet all the requirements. -/mob/dead/verb/join_as_voice() +/mob/observer/dead/verb/join_as_voice() set category = "Ghost" set name = "Call Communicator" set desc = "If there is a communicator available, send a request to speak through it. This will reset your respawn timer, if someone picks up." @@ -643,7 +643,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() var/choice = input(src,"Send a voice request to whom?") as null|anything in choices if(choice) var/obj/item/device/communicator/chosen_communicator = choice - var/mob/dead/observer/O = src + var/mob/observer/dead/O = src if(O.exonet) O.exonet.send_message(chosen_communicator.exonet.address, "voice") diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index da191370438..e1332dda1e2 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -156,7 +156,7 @@ var/global/list/default_medbay_channels = list( var/obj/item/weapon/card/id/I = GetIdCard() return has_access(list(), req_one_accesses, I ? I.GetAccess() : list()) -/mob/dead/observer/has_internal_radio_channel_access(var/list/req_one_accesses) +/mob/observer/dead/has_internal_radio_channel_access(var/list/req_one_accesses) return can_admin_interact() /obj/item/device/radio/proc/text_wires() diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 7cccb0eb106..11c312048db 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -185,7 +185,7 @@ if(!M.brainmob.key) var/ghost_can_reenter = 0 if(M.brainmob.mind) - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.can_reenter_corpse && G.mind == M.brainmob.mind) ghost_can_reenter = 1 break diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index ccd6ab0adb4..a13df854cbd 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -67,7 +67,7 @@ return 0 if(!R.key) - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/observer/dead/ghost in player_list) if(ghost.mind && ghost.mind.current == R) R.key = ghost.key diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 7a536cd6cac..fd7fbe1b9b2 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -46,7 +46,7 @@ client/verb/JoinResponseTeam() usr << "You cannot join the response team at this time." return - if(istype(usr,/mob/dead/observer) || istype(usr,/mob/new_player)) + if(istype(usr,/mob/observer/dead) || istype(usr,/mob/new_player)) if(!send_emergency_team) usr << "No emergency response team is currently being sent." return diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 39c2587fe40..c8dfc8deddc 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -18,7 +18,7 @@ entry += " - Unconscious" if(DEAD) if(isobserver(C.mob)) - var/mob/dead/observer/O = C.mob + var/mob/observer/dead/O = C.mob if(O.started_as_observer) entry += " - Observing" else diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index be3b6e01360..a3e6a5032d3 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1251,7 +1251,7 @@ proc/admin_notice(var/message, var/rights) //Returns 1 to let the dragdrop code know we are trapping this event //Returns 0 if we don't plan to trap the event -/datum/admins/proc/cmd_ghost_drag(var/mob/dead/observer/frommob, var/mob/living/tomob) +/datum/admins/proc/cmd_ghost_drag(var/mob/observer/dead/frommob, var/mob/living/tomob) if(!istype(frommob)) return //Extra sanity check to make sure only observers are shoved into things diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 39e6be78f97..228030f157c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -400,9 +400,9 @@ var/list/admin_verbs_mentor = list( set category = "Admin" set name = "Aghost" if(!holder) return - if(istype(mob,/mob/dead/observer)) + if(istype(mob,/mob/observer/dead)) //re-enter - var/mob/dead/observer/ghost = mob + var/mob/observer/dead/ghost = mob if(!is_mentor(usr.client)) ghost.can_reenter_corpse = 1 if(ghost.can_reenter_corpse) @@ -418,7 +418,7 @@ var/list/admin_verbs_mentor = list( else //ghostize var/mob/body = mob - var/mob/dead/observer/ghost = body.ghostize(1) + var/mob/observer/dead/ghost = body.ghostize(1) ghost.admin_ghosted = 1 if(body) body.teleop = ghost diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 4bc82981933..5b618156876 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -262,7 +262,7 @@ message_admins("\blue [key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]", 1) switch(href_list["simplemake"]) - if("observer") M.change_mob_type( /mob/dead/observer , null, null, delmob ) + if("observer") M.change_mob_type( /mob/observer/dead , null, null, delmob ) if("larva") M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob ) if("nymph") M.change_mob_type( /mob/living/carbon/alien/diona , null, null, delmob ) if("human") M.change_mob_type( /mob/living/carbon/human , null, null, delmob, href_list["species"]) @@ -1917,7 +1917,7 @@ mob/living/silicon/ai/can_centcom_reply() if(client && eyeobj) return "|EYE" -/mob/dead/observer/extra_admin_link(var/source) +/mob/observer/dead/extra_admin_link(var/source) if(mind && mind.current) return "|BDY" diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index e579ca15444..e57720bb62d 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -1,7 +1,7 @@ /mob/proc/on_mob_jump() return -/mob/dead/observer/on_mob_jump() +/mob/observer/dead/on_mob_jump() following = null /client/proc/Jump(var/area/A in return_sorted_areas()) diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 61050526d51..f031bc2835c 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -21,7 +21,7 @@ if(T.mob) if(istype(T.mob, /mob/new_player)) targets["(New Player) - [T]"] = T - else if(istype(T.mob, /mob/dead/observer)) + else if(istype(T.mob, /mob/observer/dead)) targets["[T.mob.name](Ghost) - [T]"] = T else targets["[T.mob.real_name](as [T.mob.name]) - [T]"] = T diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 6522c5e1a46..68df86c56bf 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -85,7 +85,7 @@ var/mob/choice = input("Choose a player to play the pAI", "Spawn pAI") in available if(!choice) return 0 - if(!istype(choice, /mob/dead/observer)) + if(!istype(choice, /mob/observer/dead)) var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank them out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No") if(confirm != "Yes") return 0 @@ -214,7 +214,7 @@ set name = "Del-All" // to prevent REALLY stupid deletions - var/blocked = list(/obj, /mob, /mob/living, /mob/living/carbon, /mob/living/carbon/human, /mob/dead, /mob/dead/observer, /mob/living/silicon, /mob/living/silicon/robot, /mob/living/silicon/ai) + var/blocked = list(/obj, /mob, /mob/living, /mob/living/carbon, /mob/living/carbon/human, /mob/observer/dead, /mob/living/silicon, /mob/living/silicon/robot, /mob/living/silicon/ai) var/hsbitem = input(usr, "Choose an object to delete.", "Delete:") as null|anything in typesof(/obj) + typesof(/mob) - blocked if(hsbitem) for(var/atom/O in world) @@ -282,7 +282,7 @@ if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes") return else - var/mob/dead/observer/ghost = new/mob/dead/observer(M,1) + var/mob/observer/dead/ghost = new/mob/observer/dead(M,1) ghost.ckey = M.ckey message_admins("\blue [key_name_admin(usr)] assumed direct control of [M].", 1) log_admin("[key_name(usr)] assumed direct control of [M].") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 194085977fd..0c6a0f16078 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -236,7 +236,7 @@ Ccomp's first proc. var/list/ghosts = list() var/list/sortmob = sortAtom(mob_list) // get the mob list. /var/any=0 - for(var/mob/dead/observer/M in sortmob) + for(var/mob/observer/dead/M in sortmob) mobs.Add(M) //filter it where it's only ghosts any = 1 //if no ghosts show up, any will just be 0 if(!any) @@ -266,7 +266,7 @@ Ccomp's first proc. src << "Hrm, appears you didn't select a ghost" // Sanity check, if no ghosts in the list we don't want to edit a null variable and cause a runtime error. return - var/mob/dead/observer/G = ghosts[target] + var/mob/observer/dead/G = ghosts[target] if(G.has_enabled_antagHUD && config.antag_hud_restricted) var/response = alert(src, "Are you sure you wish to allow this individual to play?","Ghost has used AntagHUD","Yes","No") if(response == "No") return @@ -291,9 +291,9 @@ Ccomp's first proc. src << "Only administrators may use this command." var/action="" if(config.antag_hud_allowed) - for(var/mob/dead/observer/g in get_ghosts()) + for(var/mob/observer/dead/g in get_ghosts()) if(!g.client.holder) //Remove the verb from non-admin ghosts - g.verbs -= /mob/dead/observer/verb/toggle_antagHUD + g.verbs -= /mob/observer/dead/verb/toggle_antagHUD if(g.antagHUD) g.antagHUD = 0 // Disable it on those that have it enabled g.has_enabled_antagHUD = 2 // We'll allow them to respawn @@ -302,9 +302,9 @@ Ccomp's first proc. src << "\red AntagHUD usage has been disabled" action = "disabled" else - for(var/mob/dead/observer/g in get_ghosts()) + for(var/mob/observer/dead/g in get_ghosts()) if(!g.client.holder) // Add the verb back for all non-admin ghosts - g.verbs += /mob/dead/observer/verb/toggle_antagHUD + g.verbs += /mob/observer/dead/verb/toggle_antagHUD g << "\blue The Administrator has enabled AntagHUD " // Notify all observers they can now use AntagHUD config.antag_hud_allowed = 1 action = "enabled" @@ -324,13 +324,13 @@ Ccomp's first proc. src << "Only administrators may use this command." var/action="" if(config.antag_hud_restricted) - for(var/mob/dead/observer/g in get_ghosts()) + for(var/mob/observer/dead/g in get_ghosts()) g << "\blue The administrator has lifted restrictions on joining the round if you use AntagHUD" action = "lifted restrictions" config.antag_hud_restricted = 0 src << "\blue AntagHUD restrictions have been lifted" else - for(var/mob/dead/observer/g in get_ghosts()) + for(var/mob/observer/dead/g in get_ghosts()) g << "\red The administrator has placed restrictions on joining the round if you use AntagHUD" g << "\red Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions " g.antagHUD = 0 @@ -358,8 +358,8 @@ Traitors and the like can also be revived with the previous role mostly intact. if(!input) return - var/mob/dead/observer/G_found - for(var/mob/dead/observer/G in player_list) + var/mob/observer/dead/G_found + for(var/mob/observer/dead/G in player_list) if(G.ckey == input) G_found = G break @@ -627,7 +627,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] has gibbed [key_name(M)]") message_admins("[key_name_admin(usr)] has gibbed [key_name_admin(M)]", 1) - if(istype(M, /mob/dead/observer)) + if(istype(M, /mob/observer/dead)) gibs(M.loc) return @@ -640,7 +640,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm == "Yes") - if (istype(mob, /mob/dead/observer)) // so they don't spam gibs everywhere + if (istype(mob, /mob/observer/dead)) // so they don't spam gibs everywhere return else mob.gib() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6731af49896..88ef03dda2d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -659,7 +659,7 @@ /obj/item/clothing/under/proc/set_sensors(mob/usr as mob) var/mob/M = usr - if (istype(M, /mob/dead/)) return + if (istype(M, /mob/observer)) return if (usr.stat || usr.restrained()) return if(has_sensor >= 2) usr << "The controls are locked." diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index f4cd0dbbc87..214f63c2237 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -129,7 +129,7 @@ item_state = "s-ninja" flags_inv = HIDEFACE body_parts_covered = 0 - var/mob/eye/aiEye/eye + var/mob/observer/eye/aiEye/eye /obj/item/clothing/mask/ai/New() eye = new(src) diff --git a/code/modules/ghosttrap/trap.dm b/code/modules/ghosttrap/trap.dm index 97fa843ce1f..a3de9fe1450 100644 --- a/code/modules/ghosttrap/trap.dm +++ b/code/modules/ghosttrap/trap.dm @@ -22,7 +22,7 @@ proc/populate_ghost_traps() var/ghost_trap_role = "Positronic Brain" // Check for bans, proper atom types, etc. -/datum/ghosttrap/proc/assess_candidate(var/mob/dead/observer/candidate) +/datum/ghosttrap/proc/assess_candidate(var/mob/observer/dead/candidate) if(!istype(candidate) || !candidate.client || !candidate.ckey) return 0 if(!candidate.MayRespawn()) @@ -39,7 +39,7 @@ proc/populate_ghost_traps() /datum/ghosttrap/proc/request_player(var/mob/target, var/request_string) if(!target) return - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(!O.MayRespawn()) continue if(islist(ban_checks)) @@ -56,7 +56,7 @@ proc/populate_ghost_traps() if(..()) return 1 if(href_list["candidate"] && href_list["target"]) - var/mob/dead/observer/candidate = locate(href_list["candidate"]) // BYOND magic. + var/mob/observer/dead/candidate = locate(href_list["candidate"]) // BYOND magic. var/mob/target = locate(href_list["target"]) // So much BYOND magic. if(!target || !candidate) return diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 36d0101e1eb..d49680bd416 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -129,7 +129,7 @@ return 1 return ..() -/obj/machinery/portable_atmospherics/hydroponics/attack_ghost(var/mob/dead/observer/user) +/obj/machinery/portable_atmospherics/hydroponics/attack_ghost(var/mob/observer/dead/user) if(!(harvest && seed && seed.has_mob_product)) return diff --git a/code/modules/mob/dead/death.dm b/code/modules/mob/dead/death.dm index 48a04a834c7..1be552886b0 100644 --- a/code/modules/mob/dead/death.dm +++ b/code/modules/mob/dead/death.dm @@ -1,5 +1,5 @@ -/mob/dead/dust() //ghosts can't be vaporised. +/mob/observer/dust() //ghosts can't be vaporised. return -/mob/dead/gib() //ghosts can't be gibbed. +/mob/observer/gib() //ghosts can't be gibbed. return diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm index bf9b607a38d..73605d1328d 100644 --- a/code/modules/mob/dead/observer/login.dm +++ b/code/modules/mob/dead/observer/login.dm @@ -1,4 +1,4 @@ -/mob/dead/observer/Login() +/mob/observer/dead/Login() ..() if (ghostimage) ghostimage.icon_state = src.icon_state diff --git a/code/modules/mob/dead/observer/logout.dm b/code/modules/mob/dead/observer/logout.dm index 11c6c3c834c..573c44f4684 100644 --- a/code/modules/mob/dead/observer/logout.dm +++ b/code/modules/mob/dead/observer/logout.dm @@ -1,4 +1,4 @@ -/mob/dead/observer/Logout() +/mob/observer/dead/Logout() ..() spawn(0) if(src && !key) //we've transferred to another mob. This ghost should be deleted. diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 714b001f691..68c631101d3 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -1,14 +1,18 @@ var/global/list/image/ghost_darkness_images = list() //this is a list of images for things ghosts should still be able to see when they toggle darkness var/global/list/image/ghost_sightless_images = list() //this is a list of images for things ghosts should still be able to see even without ghost sight -/mob/dead/observer +/mob/observer + name = "observer" + desc = "This shouldn't appear" + density = 0 + +/mob/observer/dead name = "ghost" desc = "It's a g-g-g-g-ghooooost!" //jinkies! icon = 'icons/mob/mob.dmi' icon_state = "ghost" layer = 4 stat = DEAD - density = 0 canmove = 0 blinded = 0 anchored = 1 // don't get pushed around @@ -31,11 +35,11 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images var/seedarkness = 1 incorporeal_move = 1 -/mob/dead/observer/New(mob/body) +/mob/observer/dead/New(mob/body) sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF see_invisible = SEE_INVISIBLE_OBSERVER see_in_dark = 100 - verbs += /mob/dead/observer/proc/dead_tele + verbs += /mob/observer/dead/proc/dead_tele stat = DEAD @@ -81,7 +85,7 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images real_name = name ..() -/mob/dead/observer/Destroy() +/mob/observer/dead/Destroy() if (ghostimage) ghost_darkness_images -= ghostimage qdel(ghostimage) @@ -89,7 +93,7 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images updateallghostimages() ..() -/mob/dead/observer/Topic(href, href_list) +/mob/observer/dead/Topic(href, href_list) if (href_list["track"]) var/mob/target = locate(href_list["track"]) in mob_list if(target) @@ -97,19 +101,19 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images -/mob/dead/attackby(obj/item/W, mob/user) +/mob/observer/dead/attackby(obj/item/W, mob/user) if(istype(W,/obj/item/weapon/book/tome)) - var/mob/dead/M = src + var/mob/observer/dead/M = src M.manifest(user) -/mob/dead/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) +/mob/observer/dead/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) return 1 /* Transfer_mind is there to check if mob is being deleted/not going to have a body. Works together with spawning an observer, noted above. */ -/mob/dead/observer/Life() +/mob/observer/dead/Life() ..() if(!loc) return if(!client) return 0 @@ -131,13 +135,13 @@ Works together with spawning an observer, noted above. process_medHUD(src) -/mob/dead/proc/process_medHUD(var/mob/M) +/mob/observer/dead/proc/process_medHUD(var/mob/M) var/client/C = M.client for(var/mob/living/carbon/human/patient in oview(M, 14)) C.images += patient.hud_list[HEALTH_HUD] C.images += patient.hud_list[STATUS_HUD_OOC] -/mob/dead/proc/assess_targets(list/target_list, mob/dead/observer/U) +/mob/observer/dead/proc/assess_targets(list/target_list, mob/observer/dead/U) var/client/C = U.client for(var/mob/living/carbon/human/target in target_list) C.images += target.hud_list[SPECIALROLE_HUD] @@ -147,14 +151,14 @@ Works together with spawning an observer, noted above. /mob/proc/ghostize(var/can_reenter_corpse = 1) if(key) - var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. + var/mob/observer/dead/ghost = new(src) //Transfer safety to observer spawning proc. ghost.can_reenter_corpse = can_reenter_corpse ghost.timeofdeath = src.timeofdeath //BS12 EDIT ghost.key = key if(ghost.client) ghost.client.time_died_as_mouse = ghost.timeofdeath if(ghost.client && !ghost.client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. - ghost.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! + ghost.verbs -= /mob/observer/dead/verb/toggle_antagHUD // Poor guys, don't know what they are missing! return ghost /* @@ -183,14 +187,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/turf/location = get_turf(src) message_admins("[key_name_admin(usr)] has ghosted. (JMP)") log_game("[key_name_admin(usr)] has ghosted.") - var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 + var/mob/observer/dead/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly. announce_ghost_joinleave(ghost) -/mob/dead/observer/can_use_hands() return 0 -/mob/dead/observer/is_active() return 0 +/mob/observer/dead/can_use_hands() return 0 +/mob/observer/dead/is_active() return 0 -/mob/dead/observer/Stat() +/mob/observer/dead/Stat() ..() if(statpanel("Status")) if(emergency_shuttle) @@ -198,7 +202,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(eta_status) stat(null, eta_status) -/mob/dead/observer/verb/reenter_corpse() +/mob/observer/dead/verb/reenter_corpse() set category = "Ghost" set name = "Re-enter Corpse" if(!client) return @@ -224,7 +228,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp announce_ghost_joinleave(mind, 0, "They now occupy their body again.") return 1 -/mob/dead/observer/verb/toggle_medHUD() +/mob/observer/dead/verb/toggle_medHUD() set category = "Ghost" set name = "Toggle MedicHUD" set desc = "Toggles Medical HUD allowing you to see how everyone is doing" @@ -237,7 +241,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp medHUD = 1 src << "\blue Medical HUD Enabled" -/mob/dead/observer/verb/toggle_antagHUD() +/mob/observer/dead/verb/toggle_antagHUD() set category = "Ghost" set name = "Toggle AntagHUD" set desc = "Toggles AntagHUD allowing you to see who is the antagonist" @@ -248,7 +252,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!config.antag_hud_allowed && (!client.holder || mentor)) src << "\red Admins have disabled this for this round." return - var/mob/dead/observer/M = src + var/mob/observer/dead/M = src if(jobban_isbanned(M, "AntagHUD")) src << "\red You have been banned from using this feature" return @@ -265,16 +269,16 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp M.antagHUD = 1 src << "\blue AntagHUD Enabled" -/mob/dead/observer/proc/dead_tele(A in ghostteleportlocs) +/mob/observer/dead/proc/dead_tele(A in ghostteleportlocs) set category = "Ghost" set name = "Teleport" set desc= "Teleport to a location" - if(!istype(usr, /mob/dead/observer)) + if(!istype(usr, /mob/observer/dead)) usr << "Not when you're not dead!" return - usr.verbs -= /mob/dead/observer/proc/dead_tele + usr.verbs -= /mob/observer/dead/proc/dead_tele spawn(30) - usr.verbs += /mob/dead/observer/proc/dead_tele + usr.verbs += /mob/observer/dead/proc/dead_tele var/area/thearea = ghostteleportlocs[A] if(!thearea) return @@ -300,7 +304,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp usr.forceMove(pick(L)) following = null -/mob/dead/observer/verb/follow(input in getmobs()) +/mob/observer/dead/verb/follow(input in getmobs()) set category = "Ghost" set name = "Follow" // "Haunt" set desc = "Follow and haunt a mob." @@ -310,7 +314,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ManualFollow(target) // This is the ghost's follow verb with an argument -/mob/dead/observer/proc/ManualFollow(var/atom/movable/target) +/mob/observer/dead/proc/ManualFollow(var/atom/movable/target) if(!target) return @@ -340,7 +344,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/proc/update_following() . = get_turf(src) - for(var/mob/dead/observer/M in following_mobs) + for(var/mob/observer/dead/M in following_mobs) if(M.following != src) following_mobs -= M else @@ -351,12 +355,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/list/following_mobs = list() /mob/Destroy() - for(var/mob/dead/observer/M in following_mobs) + for(var/mob/observer/dead/M in following_mobs) M.following = null following_mobs = null return ..() -/mob/dead/observer/Destroy() +/mob/observer/dead/Destroy() if(ismob(following)) var/mob/M = following M.following_mobs -= src @@ -376,18 +380,18 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/proc/check_holy(var/turf/T) return 0 -/mob/dead/observer/check_holy(var/turf/T) +/mob/observer/dead/check_holy(var/turf/T) if(check_rights(R_ADMIN|R_FUN, 0, src)) return 0 return (T && T.holy) && (invisibility <= SEE_INVISIBLE_LIVING || (mind in cult.current_antagonists)) -/mob/dead/observer/verb/jumptomob(target in getmobs()) //Moves the ghost instead of just changing the ghosts's eye -Nodrak +/mob/observer/dead/verb/jumptomob(target in getmobs()) //Moves the ghost instead of just changing the ghosts's eye -Nodrak set category = "Ghost" set name = "Jump to Mob" set desc = "Teleport to a mob" - if(istype(usr, /mob/dead/observer)) //Make sure they're an observer! + if(istype(usr, /mob/observer/dead)) //Make sure they're an observer! if (!target)//Make sure we actually have a target return @@ -401,7 +405,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp else src << "This mob is not located in the game world." /* -/mob/dead/observer/verb/boo() +/mob/observer/dead/verb/boo() set category = "Ghost" set name = "Boo!" set desc= "Scare your crew members because of boredom!" @@ -416,22 +420,22 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return */ -/mob/dead/observer/memory() +/mob/observer/dead/memory() set hidden = 1 src << "\red You are dead! You have no mind to store memory!" -/mob/dead/observer/add_memory() +/mob/observer/dead/add_memory() set hidden = 1 src << "\red You are dead! You have no mind to store memory!" -/mob/dead/observer/Post_Incorpmove() +/mob/observer/dead/Post_Incorpmove() following = null -/mob/dead/observer/verb/analyze_air() +/mob/observer/dead/verb/analyze_air() set name = "Analyze Air" set category = "Ghost" - if(!istype(usr, /mob/dead/observer)) return + if(!istype(usr, /mob/observer/dead)) return // Shamelessly copied from the Gas Analyzers if (!( istype(usr.loc, /turf) )) @@ -453,7 +457,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp src << "\blue Temperature: [round(environment.temperature-T0C,0.1)]°C ([round(environment.temperature,0.1)]K)" src << "\blue Heat Capacity: [round(environment.heat_capacity(),0.1)]" -/mob/dead/observer/verb/become_mouse() +/mob/observer/dead/verb/become_mouse() set name = "Become mouse" set category = "Ghost" @@ -500,7 +504,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp host.ckey = src.ckey host << "You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent." -/mob/dead/observer/verb/view_manfiest() +/mob/observer/dead/verb/view_manfiest() set name = "Show Crew Manifest" set category = "Ghost" @@ -511,7 +515,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp src << browse(dat, "window=manifest;size=370x420;can_close=1") //This is called when a ghost is drag clicked to something. -/mob/dead/observer/MouseDrop(atom/over) +/mob/observer/dead/MouseDrop(atom/over) if(!usr || !over) return if (isobserver(usr) && usr.client && usr.client.holder && isliving(over)) if (usr.client.holder.cmd_ghost_drag(src,over)) @@ -520,7 +524,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return ..() //Used for drawing on walls with blood puddles as a spooky ghost. -/mob/dead/verb/bloody_doodle() +/mob/observer/dead/verb/bloody_doodle() set category = "Ghost" set name = "Write in blood" @@ -594,17 +598,17 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp W.add_hiddenprint(src) W.visible_message("\red Invisible fingers crudely paint something in blood on [T]...") -/mob/dead/observer/pointed(atom/A as mob|obj|turf in view()) +/mob/observer/dead/pointed(atom/A as mob|obj|turf in view()) if(!..()) return 0 usr.visible_message("[src] points to [A]") return 1 -/mob/dead/proc/manifest(mob/user) +/mob/observer/dead/proc/manifest(mob/user) var/is_manifest = 0 if(!is_manifest) is_manifest = 1 - verbs += /mob/dead/proc/toggle_visibility + verbs += /mob/observer/dead/proc/toggle_visibility if(src.invisibility != 0) user.visible_message( \ @@ -618,7 +622,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp "You get the feeling that the ghost can't become any more visible." \ ) -/mob/dead/proc/toggle_icon(var/icon) +/mob/observer/dead/proc/toggle_icon(var/icon) if(!client) return @@ -632,7 +636,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/image/J = image('icons/mob/mob.dmi', loc = src, icon_state = icon) client.images += J -/mob/dead/proc/toggle_visibility(var/forced = 0) +/mob/observer/dead/proc/toggle_visibility(var/forced = 0) set category = "Ghost" set name = "Toggle Visibility" set desc = "Allows you to turn (in)visible (almost) at will." @@ -652,7 +656,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp // Give the ghost a cult icon which should be visible only to itself toggle_icon("cult") -/mob/dead/observer/verb/toggle_anonsay() +/mob/observer/dead/verb/toggle_anonsay() set category = "Ghost" set name = "Toggle Anonymous Chat" set desc = "Toggles showing your key in dead chat." @@ -663,13 +667,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp else src << "Your key will be publicly visible again." -/mob/dead/observer/canface() +/mob/observer/dead/canface() return 1 -/mob/dead/observer/proc/can_admin_interact() +/mob/observer/dead/proc/can_admin_interact() return check_rights(R_ADMIN, 0, src) -/mob/dead/observer/verb/toggle_ghostsee() +/mob/observer/dead/verb/toggle_ghostsee() set name = "Toggle Ghost Vision" set desc = "Toggles your ability to see things only ghosts can see, like other ghosts" set category = "Ghost" @@ -677,13 +681,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp updateghostsight() usr << "You [(ghostvision?"now":"no longer")] have ghost vision." -/mob/dead/observer/verb/toggle_darkness() +/mob/observer/dead/verb/toggle_darkness() set name = "Toggle Darkness" set category = "Ghost" seedarkness = !(seedarkness) updateghostsight() -/mob/dead/observer/proc/updateghostsight() +/mob/observer/dead/proc/updateghostsight() if (!seedarkness) see_invisible = SEE_INVISIBLE_NOLIGHTING else @@ -693,10 +697,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp updateghostimages() /proc/updateallghostimages() - for (var/mob/dead/observer/O in player_list) + for (var/mob/observer/dead/O in player_list) O.updateghostimages() -/mob/dead/observer/proc/updateghostimages() +/mob/observer/dead/proc/updateghostimages() if (!client) return if (seedarkness || !ghostvision) @@ -709,7 +713,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if (ghostimage) client.images -= ghostimage //remove ourself -mob/dead/observer/MayRespawn(var/feedback = 0) +mob/observer/dead/MayRespawn(var/feedback = 0) if(!client) return 0 if(mind && mind.current && mind.current.stat != DEAD && can_reenter_corpse) @@ -729,7 +733,7 @@ mob/dead/observer/MayRespawn(var/feedback = 0) if(client && eyeobj) return "|eye" -/mob/dead/observer/extra_ghost_link(var/atom/ghost) +/mob/observer/dead/extra_ghost_link(var/atom/ghost) if(mind && mind.current) return "|body" diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 6f7d99c6160..9dfd3deb44c 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -1,4 +1,4 @@ -/mob/dead/observer/say(var/message) +/mob/observer/dead/say(var/message) message = sanitize(message) if (!message) @@ -17,7 +17,7 @@ . = src.say_dead(message) -/mob/dead/observer/emote(var/act, var/type, var/message) +/mob/observer/dead/emote(var/act, var/type, var/message) //message = sanitize(message) - already sanitized in verb/me_verb() if(!message) diff --git a/code/modules/mob/freelook/ai/eye.dm b/code/modules/mob/freelook/ai/eye.dm index c1cba6f9b1e..7b0cbde24e0 100644 --- a/code/modules/mob/freelook/ai/eye.dm +++ b/code/modules/mob/freelook/ai/eye.dm @@ -3,15 +3,15 @@ // A mob that the AI controls to look around the station with. // It streams chunks as it moves around, which will show it what the AI can and cannot see. -/mob/eye/aiEye +/mob/observer/eye/aiEye name = "Inactive AI Eye" icon_state = "AI-eye" -/mob/eye/aiEye/New() +/mob/observer/eye/aiEye/New() ..() visualnet = cameranet -/mob/eye/aiEye/setLoc(var/T, var/cancel_tracking = 1) +/mob/observer/eye/aiEye/setLoc(var/T, var/cancel_tracking = 1) if(..()) var/mob/living/silicon/ai/ai = owner if(cancel_tracking) @@ -43,7 +43,7 @@ /mob/living/silicon/ai/proc/create_eyeobj(var/newloc) if(eyeobj) destroy_eyeobj() if(!newloc) newloc = src.loc - eyeobj = PoolOrNew(/mob/eye/aiEye, newloc) + eyeobj = PoolOrNew(/mob/observer/eye/aiEye, newloc) eyeobj.owner = src eyeobj.name = "[src.name] (AI Eye)" // Give it a name if(client) client.eye = eyeobj diff --git a/code/modules/mob/freelook/chunk.dm b/code/modules/mob/freelook/chunk.dm index 9b6b562df33..626a79e28fb 100644 --- a/code/modules/mob/freelook/chunk.dm +++ b/code/modules/mob/freelook/chunk.dm @@ -25,7 +25,7 @@ // Add an eye to the chunk, then update if changed. -/datum/chunk/proc/add(mob/eye/eye) +/datum/chunk/proc/add(mob/observer/eye/eye) if(!eye.owner) return eye.visibleChunks += src @@ -38,7 +38,7 @@ // Remove an eye from the chunk, then update if changed. -/datum/chunk/proc/remove(mob/eye/eye) +/datum/chunk/proc/remove(mob/observer/eye/eye) if(!eye.owner) return eye.visibleChunks -= src @@ -91,7 +91,7 @@ if(t.obfuscations[obfuscation.type]) obscured -= t.obfuscations[obfuscation.type] for(var/eye in seenby) - var/mob/eye/m = eye + var/mob/observer/eye/m = eye if(!m || !m.owner) continue if(m.owner.client) @@ -105,7 +105,7 @@ obscured += t.obfuscations[obfuscation.type] for(var/eye in seenby) - var/mob/eye/m = eye + var/mob/observer/eye/m = eye if(!m || !m.owner) seenby -= m continue diff --git a/code/modules/mob/freelook/eye.dm b/code/modules/mob/freelook/eye.dm index 437b2979dcc..0c38ad8033c 100644 --- a/code/modules/mob/freelook/eye.dm +++ b/code/modules/mob/freelook/eye.dm @@ -3,12 +3,11 @@ // A mob that another mob controls to look around the station with. // It streams chunks as it moves around, which will show it what the controller can and cannot see. -/mob/eye +/mob/observer/eye name = "Eye" icon = 'icons/mob/eye.dmi' icon_state = "default-eye" alpha = 127 - density = 0 var/sprint = 10 var/cooldown = 0 @@ -25,14 +24,14 @@ var/ghostimage = null var/datum/visualnet/visualnet -/mob/eye/New() +/mob/observer/eye/New() ghostimage = image(src.icon,src,src.icon_state) ghost_darkness_images |= ghostimage //so ghosts can see the eye when they disable darkness ghost_sightless_images |= ghostimage //so ghosts can see the eye when they disable ghost sight updateallghostimages() ..() -mob/eye/Destroy() +mob/observer/eye/Destroy() if (ghostimage) ghost_darkness_images -= ghostimage ghost_sightless_images -= ghostimage @@ -41,30 +40,30 @@ mob/eye/Destroy() updateallghostimages() ..() -/mob/eye/Move(n, direct) +/mob/observer/eye/Move(n, direct) if(owner == src) return EyeMove(n, direct) return 0 -/mob/eye/airflow_hit(atom/A) +/mob/observer/eye/airflow_hit(atom/A) airflow_speed = 0 airflow_dest = null -/mob/eye/examinate() +/mob/observer/eye/examinate() set popup_menu = 0 set src = usr.contents return 0 -/mob/eye/pointed() +/mob/observer/eye/pointed() set popup_menu = 0 set src = usr.contents return 0 -/mob/eye/examine(mob/user) +/mob/observer/eye/examine(mob/user) // Use this when setting the eye's location. // It will also stream the chunk that the new loc is in. -/mob/eye/proc/setLoc(var/T) +/mob/observer/eye/proc/setLoc(var/T) if(owner) T = get_turf(T) if(T != loc) @@ -82,13 +81,13 @@ mob/eye/Destroy() return 1 return 0 -/mob/eye/proc/getLoc() +/mob/observer/eye/proc/getLoc() if(owner) if(!isturf(owner.loc) || !owner.client) return return loc /mob - var/mob/eye/eyeobj + var/mob/observer/eye/eyeobj /mob/proc/EyeMove(n, direct) if(!eyeobj) @@ -96,7 +95,7 @@ mob/eye/Destroy() return eyeobj.EyeMove(n, direct) -/mob/eye/EyeMove(n, direct) +/mob/observer/eye/EyeMove(n, direct) var/initial = initial(sprint) var/max_sprint = 50 diff --git a/code/modules/mob/freelook/life.dm b/code/modules/mob/freelook/life.dm index 1d1248e872e..f3994f9a7e6 100644 --- a/code/modules/mob/freelook/life.dm +++ b/code/modules/mob/freelook/life.dm @@ -1,4 +1,4 @@ -/mob/eye/Life() +/mob/observer/eye/Life() ..() // If we lost our client, reset the list of visible chunks so they update properly on return if(owner == src && !client) diff --git a/code/modules/mob/freelook/mask/eye.dm b/code/modules/mob/freelook/mask/eye.dm index a0a99603223..b3abb922abd 100644 --- a/code/modules/mob/freelook/mask/eye.dm +++ b/code/modules/mob/freelook/mask/eye.dm @@ -3,11 +3,11 @@ // A mob that a cultists controls to look around the station with. // It streams chunks as it moves around, which will show it what the cultist can and cannot see. -/mob/eye/maskEye +/mob/observer/eye/maskEye name = "Eye of Nar-Sie" acceleration = 0 owner_follows_eye = 1 -/mob/eye/maskEye/New() +/mob/observer/eye/maskEye/New() ..() visualnet = cultnet diff --git a/code/modules/mob/freelook/visualnet.dm b/code/modules/mob/freelook/visualnet.dm index 38cb5bb3d2a..24ad252eda1 100644 --- a/code/modules/mob/freelook/visualnet.dm +++ b/code/modules/mob/freelook/visualnet.dm @@ -36,7 +36,7 @@ // Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set. -/datum/visualnet/proc/visibility(mob/eye/eye) +/datum/visualnet/proc/visibility(mob/observer/eye/eye) // 0xf = 15 var/x1 = max(0, eye.x - 16) & ~0xf var/y1 = max(0, eye.y - 16) & ~0xf diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index f925c32b790..56a9c800822 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -4,14 +4,14 @@ if(!client) return - if(speaker && !speaker.client && istype(src,/mob/dead/observer) && client.prefs.toggles & CHAT_GHOSTEARS && !speaker in view(src)) + if(speaker && !speaker.client && istype(src,/mob/observer/dead) && client.prefs.toggles & CHAT_GHOSTEARS && !speaker in view(src)) //Does the speaker have a client? It's either random stuff that observers won't care about (Experiment 97B says, 'EHEHEHEHEHEHEHE') //Or someone snoring. So we make it where they won't hear it. return //make sure the air can transmit speech - hearer's side var/turf/T = get_turf(src) - if ((T) && (!(istype(src, /mob/dead/observer)))) //Ghosts can hear even in vacuum. + if ((T) && (!(istype(src, /mob/observer/dead)))) //Ghosts can hear even in vacuum. var/datum/gas_mixture/environment = T.return_air() var/pressure = (environment)? environment.return_pressure() : 0 if(pressure < SOUND_MINIMUM_PRESSURE && get_dist(speaker, src) > 1) @@ -50,7 +50,7 @@ message = "[message]" var/track = null - if(istype(src, /mob/dead/observer)) + if(istype(src, /mob/observer/dead)) if(italics && client.prefs.toggles & CHAT_GHOSTRADIO) return if(speaker_name != speaker.real_name && speaker.real_name) @@ -177,7 +177,7 @@ else track = "[speaker_name] ([jobname])" - if(istype(src, /mob/dead/observer)) + if(istype(src, /mob/observer/dead)) if(speaker_name != speaker.real_name && !isAI(speaker)) //Announce computer and various stuff that broadcasts doesn't use it's real name but AI's can't pretend to be other mobs. speaker_name = "[speaker.real_name] ([speaker_name])" track = "[speaker_name] ([ghost_follow_link(speaker, src)])" @@ -199,7 +199,7 @@ /mob/proc/on_hear_radio(part_a, speaker_name, track, part_b, formatted) src << "[part_a][speaker_name][part_b][formatted]" -/mob/dead/observer/on_hear_radio(part_a, speaker_name, track, part_b, formatted) +/mob/observer/dead/on_hear_radio(part_a, speaker_name, track, part_b, formatted) src << "[part_a][track][part_b][formatted]" /mob/living/silicon/on_hear_radio(part_a, speaker_name, track, part_b, formatted) diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index c8474871a75..cc0a1d2016e 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -114,7 +114,7 @@ /mob/new_player/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message) return -/mob/dead/observer/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message) +/mob/observer/dead/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message) if(speaker.name == speaker_name || antagHUD) src << "[language.name], [speaker_name] ([ghost_follow_link(speaker, src)]) [message]" else diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index ada10417536..c065cbdc54d 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -23,7 +23,7 @@ spawn(600) reset_search() /obj/item/device/mmi/digital/posibrain/proc/request_player() - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(!O.MayRespawn()) continue if(jobban_isbanned(O, "AI") && jobban_isbanned(O, "Cyborg")) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f22aecce453..0abdc6ef9ad 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -210,7 +210,7 @@ msg += "[T.He] [T.is] small halfling!\n" var/distance = get_dist(usr,src) - if(istype(usr, /mob/dead/observer) || usr.stat == 2) // ghosts can see anything + if(istype(usr, /mob/observer/dead) || usr.stat == 2) // ghosts can see anything distance = 1 if (src.stat) msg += "[T.He] [T.is]n't responding to anything around [T.him] and seems to be asleep.\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 014d15a0c4a..37034b29ca1 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -842,7 +842,7 @@ target.show_message("\blue You hear a voice that seems to echo around the room: [say]") usr.show_message("\blue You project your mind into [target.real_name]: [say]") log_say("[key_name(usr)] sent a telepathic message to [key_name(target)]: [say]") - for(var/mob/dead/observer/G in world) + for(var/mob/observer/dead/G in world) G.show_message("Telepathic message from [src] to [target]: [say]") /mob/living/carbon/human/proc/remoteobserve() diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 62132a6a0ee..48b668a5015 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -71,7 +71,7 @@ var/mob/M = targets[target] - if(istype(M, /mob/dead/observer) || M.stat == DEAD) + if(istype(M, /mob/observer/dead) || M.stat == DEAD) src << "Not even a [src.species.name] can speak to the dead." return diff --git a/code/modules/mob/living/carbon/metroid/items.dm b/code/modules/mob/living/carbon/metroid/items.dm index 0080e0a0fc4..15455f375e8 100644 --- a/code/modules/mob/living/carbon/metroid/items.dm +++ b/code/modules/mob/living/carbon/metroid/items.dm @@ -244,8 +244,8 @@ processing_objects.Add(src) process() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in src.loc) + var/mob/observer/dead/ghost + for(var/mob/observer/dead/O in src.loc) if(!O.client) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue ghost = O @@ -256,8 +256,8 @@ icon_state = "golem" attack_hand(mob/living/user as mob) - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in src.loc) + var/mob/observer/dead/ghost + for(var/mob/observer/dead/O in src.loc) if(!O.client) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue ghost = O @@ -273,7 +273,7 @@ proc/announce_to_ghosts() - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.client) var/area/A = get_area(src) if(A) diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index 58433a0b285..d00ba6d8d75 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -39,6 +39,6 @@ /mob/proc/showLaws(var/mob/living/silicon/S) return -/mob/dead/observer/showLaws(var/mob/living/silicon/S) +/mob/observer/dead/showLaws(var/mob/living/silicon/S) if(antagHUD || is_admin(src)) S.laws.show_laws(src) diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm index 91a10bf3e50..ba6a4353bcf 100644 --- a/code/modules/mob/living/silicon/pai/recruit.dm +++ b/code/modules/mob/living/silicon/pai/recruit.dm @@ -233,7 +233,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates for(var/datum/paiCandidate/c in paiController.pai_candidates) if(c.ready) var/found = 0 - for(var/mob/dead/observer/o in player_list) + for(var/mob/observer/dead/o in player_list) if(o.key == c.key && o.MayRespawn()) found = 1 if(found) @@ -346,7 +346,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates /datum/paiController/proc/requestRecruits(var/mob/user) inquirer = user - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(!O.MayRespawn()) continue if(jobban_isbanned(O, "pAI")) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 5356ca9b21b..8c0ec04900e 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -278,7 +278,7 @@ var/list/mob_hat_cache = list() //Reboot procs. /mob/living/silicon/robot/drone/proc/request_player() - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(jobban_isbanned(O, "Cyborg")) continue if(O.client) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index da1f91e4a35..3f4f43fddc9 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -59,7 +59,7 @@ /obj/machinery/drone_fabricator/examine(mob/user) ..(user) - if(produce_drones && drone_progress >= 100 && istype(user,/mob/dead) && config.allow_drone_spawn && count_drones() < config.max_maint_drones) + if(produce_drones && drone_progress >= 100 && istype(user,/mob/observer/dead) && config.allow_drone_spawn && count_drones() < config.max_maint_drones) user << "
A drone is prepared. Select 'Join As Drone' from the Ghost tab to spawn as a maintenance drone." /obj/machinery/drone_fabricator/proc/create_drone(var/client/player) @@ -70,7 +70,7 @@ if(!produce_drones || !config.allow_drone_spawn || count_drones() >= config.max_maint_drones) return - if(!player || !istype(player.mob,/mob/dead)) + if(!player || !istype(player.mob,/mob/observer/dead)) return announce_ghost_joinleave(player, 0, "They have taken control over a maintenance drone.") @@ -85,7 +85,7 @@ drone_progress = 0 -/mob/dead/verb/join_as_drone() +/mob/observer/dead/verb/join_as_drone() set category = "Ghost" set name = "Join As Drone" diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm index ba09c9e5d6c..f59f6444e04 100644 --- a/code/modules/mob/living/simple_animal/borer/borer.dm +++ b/code/modules/mob/living/simple_animal/borer/borer.dm @@ -173,7 +173,7 @@ //Procs for grabbing players. /mob/living/simple_animal/borer/proc/request_player() - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(jobban_isbanned(O, "Borer")) continue if(O.client) diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index c4a238f8709..6e827565f78 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -57,7 +57,7 @@ handle_movement_target() if(prob(2)) //spooky - var/mob/dead/observer/spook = locate() in range(src,5) + var/mob/observer/dead/spook = locate() in range(src,5) if(spook) var/turf/T = spook.loc var/list/visible = list() diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index a69c288837e..db6eb8f4b7f 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -61,7 +61,7 @@ if(!B.brainmob.key) var/ghost_can_reenter = 0 if(B.brainmob.mind) - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.can_reenter_corpse && G.mind == B.brainmob.mind) ghost_can_reenter = 1 break diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 2b548c64fcd..abcaf66ae61 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -388,8 +388,8 @@ return else var/deathtime = world.time - src.timeofdeath - if(istype(src,/mob/dead/observer)) - var/mob/dead/observer/G = src + if(istype(src,/mob/observer/dead)) + var/mob/observer/dead/G = src if(G.has_enabled_antagHUD == 1 && config.antag_hud_restricted) usr << "\blue Upon using the antagHUD you forfeighted the ability to join the round." return diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index e351f082898..871215a519b 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -266,7 +266,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp var/atom/oldeye=M.client.eye var/aiEyeFlag = 0 - if(istype(oldeye, /mob/eye/aiEye)) + if(istype(oldeye, /mob/observer/eye/aiEye)) aiEyeFlag = 1 var/x @@ -399,8 +399,8 @@ proc/is_blind(A) follow = "([ghost_follow_link(subject, M)]) " if(M.stat != DEAD && M.client.holder) follow = "([admin_jump_link(subject, M.client.holder)]) " - var/mob/dead/observer/DM - if(istype(subject, /mob/dead/observer)) + var/mob/observer/dead/DM + if(istype(subject, /mob/observer/dead)) DM = subject if(M.client.holder) // What admins see lname = "[keyname][(DM && DM.anonsay) ? "*" : (DM ? "" : "^")] ([name])" diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 26b83e30bb9..80a3eb55533 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -105,7 +105,7 @@ if(alert(src,"Are you sure you wish to observe? You will have to wait 15 minutes before being able to respawn!","Player Setup","Yes","No") == "Yes") if(!client) return 1 - var/mob/dead/observer/observer = new() + var/mob/observer/dead/observer = new() spawning = 1 src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo @@ -131,7 +131,7 @@ observer.real_name = client.prefs.real_name observer.name = observer.real_name if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. - observer.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! + observer.verbs -= /mob/observer/dead/verb/toggle_antagHUD // Poor guys, don't know what they are missing! observer.key = key qdel(src) diff --git a/code/modules/nano/interaction/default.dm b/code/modules/nano/interaction/default.dm index e682ea55288..157e0e9de15 100644 --- a/code/modules/nano/interaction/default.dm +++ b/code/modules/nano/interaction/default.dm @@ -9,7 +9,7 @@ /mob/proc/default_can_use_topic(var/src_object) return STATUS_CLOSE // By default no mob can do anything with NanoUI -/mob/dead/observer/default_can_use_topic(var/src_object) +/mob/observer/dead/default_can_use_topic(var/src_object) if(can_admin_interact()) return STATUS_INTERACTIVE // Admins are more equal if(!client || get_dist(src_object, src) > client.view) // Preventing ghosts from having a million windows open by limiting to objects in range diff --git a/code/modules/nano/interaction/physical.dm b/code/modules/nano/interaction/physical.dm index 36f9a209712..05710084817 100644 --- a/code/modules/nano/interaction/physical.dm +++ b/code/modules/nano/interaction/physical.dm @@ -8,7 +8,7 @@ /mob/proc/check_physical_distance(var/src_object) return STATUS_CLOSE -/mob/dead/observer/check_physical_distance(var/src_object) +/mob/observer/dead/check_physical_distance(var/src_object) return default_can_use_topic(src_object) /mob/living/check_physical_distance(var/src_object) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 65a740c0686..e3452512d1b 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -121,7 +121,7 @@ /obj/item/organ/external/examine() ..() - if(in_range(usr, src) || istype(usr, /mob/dead/observer)) + if(in_range(usr, src) || istype(usr, /mob/observer/dead)) for(var/obj/item/I in contents) if(istype(I, /obj/item/organ)) continue diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 2253e049a5a..891fd809fe4 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -147,7 +147,7 @@ if(P && (P.loc == src) && istype(P, /obj/item/weapon/paper) ) - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/observer/dead) || istype(usr, /mob/living/silicon))) usr << browse("[P.name][stars(P.info)][P.stamps]", "window=[P.name]") onclose(usr, "[P.name]") else diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 8289b291adb..cfb662a3409 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -102,7 +102,7 @@ else if(href_list["read"]) var/obj/item/weapon/paper/P = locate(href_list["read"]) if(P && (P.loc == src) && istype(P)) - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/observer/dead) || istype(usr, /mob/living/silicon))) usr << browse("[P.name][stars(P.info)][P.stamps]", "window=[P.name]") onclose(usr, "[P.name]") else diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 9cb37d98a91..cc8feae5b21 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -73,14 +73,14 @@ /obj/item/weapon/paper/examine(mob/user) ..() - if(in_range(user, src) || istype(user, /mob/dead/observer)) + if(in_range(user, src) || istype(user, /mob/observer/dead)) show_content(usr) else user << "You have to go closer if you want to read it." return /obj/item/weapon/paper/proc/show_content(var/mob/user, var/forceshow=0) - if(!(istype(user, /mob/living/carbon/human) || istype(user, /mob/dead/observer) || istype(user, /mob/living/silicon)) && !forceshow) + if(!(istype(user, /mob/living/carbon/human) || istype(user, /mob/observer/dead) || istype(user, /mob/living/silicon)) && !forceshow) user << browse("[name][stars(info)][stamps]", "window=[name]") onclose(user, "[name]") else diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index db7a0882160..53110bed0fa 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -122,7 +122,7 @@ if(istype(pages[page], /obj/item/weapon/paper)) var/obj/item/weapon/paper/P = W - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/observer/dead) || istype(usr, /mob/living/silicon))) dat+= "[P.name][stars(P.info)][P.stamps]" else dat+= "[P.name][P.info][P.stamps]" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 128cc625602..1d19b0fd6b4 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -866,7 +866,7 @@ if(locked && !issilicon(usr) ) if(isobserver(usr) ) - var/mob/dead/observer/O = usr //Added to allow admin nanoUI interactions. + var/mob/observer/dead/O = usr //Added to allow admin nanoUI interactions. if(!O.can_admin_interact() ) //NanoUI /should/ make this not needed, but better safe than sorry. usr << "Try as you might, your ghostly fingers can't press the buttons." return 1 diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm index 23774d526ed..d244c4eeaa9 100644 --- a/code/modules/power/singularity/act.dm +++ b/code/modules/power/singularity/act.dm @@ -134,10 +134,7 @@ /atom/proc/singuloCanEat() return 1 -/mob/dead/singuloCanEat() - return 0 - -/mob/eye/singuloCanEat() +/mob/observer/singuloCanEat() return 0 /mob/new_player/singuloCanEat() diff --git a/code/modules/random_map/drop/droppod.dm b/code/modules/random_map/drop/droppod.dm index 625568bbf14..da346d2eb71 100644 --- a/code/modules/random_map/drop/droppod.dm +++ b/code/modules/random_map/drop/droppod.dm @@ -112,7 +112,7 @@ // Splatter anything under us that survived the explosion. if(value != SD_EMPTY_TILE && T.contents.len) for(var/atom/movable/AM in T) - if(AM.simulated && !istype(AM, /mob/dead)) + if(AM.simulated && !istype(AM, /mob/observer)) qdel(AM) // Also spawn doors and loot. @@ -173,7 +173,7 @@ else var/list/candidates = list() for(var/client/player in clients) - if(player.mob && istype(player.mob, /mob/dead/observer)) + if(player.mob && istype(player.mob, /mob/observer/dead)) candidates |= player if(!candidates.len) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm index 2e8c8990d0e..c3cb7b4d2b4 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm @@ -66,7 +66,7 @@ O.color = color /datum/reagent/paint/touch_mob(var/mob/M) - if(istype(M) && !istype(M, /mob/dead)) //painting ghosts: not allowed + if(istype(M) && !istype(M, /mob/observer)) //painting ghosts: not allowed M.color = color //maybe someday change this to paint only clothes and exposed body parts for human mobs. /datum/reagent/paint/get_data() diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm index 16cc1376544..822bc8da7cf 100644 --- a/code/modules/spells/spellbook.dm +++ b/code/modules/spells/spellbook.dm @@ -361,7 +361,7 @@ for(var/V in stored_swap.mind.special_verbs) stored_swap.verbs -= V - var/mob/dead/observer/ghost = stored_swap.ghostize(0) + var/mob/observer/dead/ghost = stored_swap.ghostize(0) ghost.spell_list = stored_swap.spell_list user.mind.transfer_to(stored_swap) diff --git a/code/modules/spells/targeted/mind_transfer.dm b/code/modules/spells/targeted/mind_transfer.dm index 1f20e6afbf8..375328016fe 100644 --- a/code/modules/spells/targeted/mind_transfer.dm +++ b/code/modules/spells/targeted/mind_transfer.dm @@ -47,7 +47,7 @@ for(var/V in victim.mind.special_verbs) victim.verbs -= V - var/mob/dead/observer/ghost = victim.ghostize(0) + var/mob/observer/dead/ghost = victim.ghostize(0) ghost.spell_list += victim.spell_list//If they have spells, transfer them. Now we basically have a backup mob. caster.mind.transfer_to(victim)