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
literal 0
HcmV?d00001
From 90664c933173a47981b759b5409bcbe95860b0bb Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Wed, 17 Jun 2020 15:44:04 -0400
Subject: [PATCH 07/54] Oops
---
code/game/objects/structures/morgue.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index a56664f0fe4..1ea1c277af8 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -456,8 +456,8 @@
/obj/machinery/crema_switch
desc = "Burn baby burn!"
name = "crematorium igniter"
- icon = 'icons/obj/objects.dmi'
- icon_state = "launcherbtt"
+ icon = 'icons/obj/power.dmi'
+ icon_state = "crema_switch"
anchored = 1.0
req_access = list(ACCESS_CREMATORIUM)
var/on = 0
From 4b31a7f8ed54e679376a99e4ae824a0e5701fe1b Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Wed, 17 Jun 2020 16:34:25 -0400
Subject: [PATCH 08/54] cyberiad map edit
---
_maps/map_files/cyberiad/cyberiad.dmm | 44 +++++++++++++++++++++++----
1 file changed, 38 insertions(+), 6 deletions(-)
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 36dbb929ff9..1ab2797aab8 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -49915,7 +49915,7 @@
pixel_y = 25;
req_access_txt = "28"
},
-/obj/machinery/light_switch{
+/obj/machinery/ticket_machine_button{
pixel_x = -4;
pixel_y = 36
},
@@ -49947,6 +49947,10 @@
pixel_x = 0;
pixel_y = 30
},
+/obj/machinery/light_switch{
+ pixel_x = 10;
+ pixel_y = 34
+ },
/turf/simulated/floor/plasteel,
/area/crew_quarters/heads)
"bOD" = (
@@ -57320,11 +57324,9 @@
})
"caw" = (
/obj/structure/disposalpipe/segment,
-/obj/machinery/status_display{
- density = 0;
+/obj/machinery/ticket_machine{
layer = 4;
- pixel_x = 32;
- pixel_y = 0
+ pixel_x = 32
},
/turf/simulated/floor/plasteel{
dir = 4;
@@ -96498,6 +96500,36 @@
},
/turf/simulated/shuttle/floor4/vox,
/area/shuttle/vox)
+"mYt" = (
+/obj/machinery/computer/secure_data,
+/obj/machinery/flasher_button{
+ id = "hopflash";
+ pixel_x = 6;
+ pixel_y = 36
+ },
+/obj/machinery/door_control{
+ id = "hopqueue";
+ name = "Queue Privacy Shutters Control";
+ pixel_x = -4;
+ pixel_y = 25;
+ req_access_txt = "28"
+ },
+/obj/machinery/door_control{
+ id = "hop";
+ name = "Privacy Shutters Control";
+ pixel_x = 6;
+ pixel_y = 25;
+ req_access_txt = "28"
+ },
+/obj/machinery/light_switch{
+ pixel_x = -4;
+ pixel_y = 36
+ },
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "blue"
+ },
+/area/space)
"nMi" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
dir = 9
@@ -109230,7 +109262,7 @@ cgA
cil
bPI
bYv
-aaa
+mYt
aaa
aaa
aaa
From b74a284e91d75ffa88498cb6a8986bf94743cff6 Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Wed, 17 Jun 2020 16:52:54 -0400
Subject: [PATCH 09/54] Fixes map edit
---
_maps/map_files/cyberiad/cyberiad.dmm | 31 +--------------------------
1 file changed, 1 insertion(+), 30 deletions(-)
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 1ab2797aab8..3c0cb5e7f5b 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -96500,36 +96500,7 @@
},
/turf/simulated/shuttle/floor4/vox,
/area/shuttle/vox)
-"mYt" = (
-/obj/machinery/computer/secure_data,
-/obj/machinery/flasher_button{
- id = "hopflash";
- pixel_x = 6;
- pixel_y = 36
},
-/obj/machinery/door_control{
- id = "hopqueue";
- name = "Queue Privacy Shutters Control";
- pixel_x = -4;
- pixel_y = 25;
- req_access_txt = "28"
- },
-/obj/machinery/door_control{
- id = "hop";
- name = "Privacy Shutters Control";
- pixel_x = 6;
- pixel_y = 25;
- req_access_txt = "28"
- },
-/obj/machinery/light_switch{
- pixel_x = -4;
- pixel_y = 36
- },
-/turf/simulated/floor/plasteel{
- dir = 9;
- icon_state = "blue"
- },
-/area/space)
"nMi" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
dir = 9
@@ -109262,7 +109233,7 @@ cgA
cil
bPI
bYv
-mYt
+aaa
aaa
aaa
aaa
From 0f919f98f876d30d3cbcbbab9ce80602a4dac5ee Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Wed, 17 Jun 2020 16:53:15 -0400
Subject: [PATCH 10/54] What
---
_maps/map_files/cyberiad/cyberiad.dmm | 1 -
1 file changed, 1 deletion(-)
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 3c0cb5e7f5b..80c5da54103 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -96500,7 +96500,6 @@
},
/turf/simulated/shuttle/floor4/vox,
/area/shuttle/vox)
- },
"nMi" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
dir = 9
From 46a9f31a941b8f15498532002c3c15dbc76f9b2c Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Wed, 17 Jun 2020 17:14:35 -0400
Subject: [PATCH 11/54] Requested fixes
---
code/modules/paperwork/ticketmachine.dm | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index f758f49be89..27bba1d2ca5 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -18,7 +18,7 @@
var/cooldown = 50
var/ready = TRUE
var/list/ticket_holders = list()
- var/list/obj/item/ticket_machine_ticket/tickets = list()
+ var/list/tickets = list()
var/id = 1
/obj/machinery/ticket_machine/emag_act(mob/user) //Emag the ticket machine to dispense burning tickets, as well as randomize its number to destroy the HoP's mind.
@@ -35,7 +35,7 @@
tickets.Cut()
update_icon()
-/obj/machinery/ticket_machine/Initialize()
+/obj/machinery/ticket_machine/Initialize(mapload)
. = ..()
update_icon()
@@ -100,7 +100,6 @@
maptext = "[current_number]" //Finally, apply the maptext
/obj/machinery/ticket_machine/attackby(obj/item/I, mob/user, params)
- ..()
if(istype(I, /obj/item/hand_labeler_refill))
if(!(ticket_number >= max_number))
to_chat(user, "[src] refuses [I]! There [max_number-ticket_number==1 ? "is" : "are"] still [max_number-ticket_number] ticket\s left!")
@@ -119,6 +118,8 @@
max_number = initial(max_number)
update_icon()
return
+ else
+ return ..()
/obj/machinery/ticket_machine/proc/reset_cooldown()
ready = TRUE
@@ -151,10 +152,9 @@
ready = FALSE
addtimer(CALLBACK(src, .proc/reset_cooldown), cooldown)//Small cooldown to prevent piles of flaming tickets
theirticket.fire_act()
- user.drop_item(theirticket)
+ user.drop_item()
user.adjust_fire_stacks(1)
user.IgniteMob()
- return
/obj/item/ticket_machine_ticket
name = "Ticket"
@@ -178,10 +178,10 @@
/obj/item/ticket_machine_ticket/attackby(obj/item/P, mob/living/carbon/human/user, params) //Stolen from papercode
..()
if(is_hot(P))
- if(HAS_TRAIT(user, CLUMSY) && prob(10))
+ if((CLUMSY in user.mutations) && prob(10))
user.visible_message("[user] accidentally ignites [user.p_them()]self!", \
"You miss the paper and accidentally light yourself on fire!")
- user.drop_item(P)
+ user.drop_item()
user.adjust_fire_stacks(1)
user.IgniteMob()
return
From ce6ec717bcb1dc888e34cc5b45e39cedcbdc79c4 Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Wed, 17 Jun 2020 17:28:05 -0400
Subject: [PATCH 12/54] Revenge of the typecasting
---
code/modules/paperwork/ticketmachine.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index 27bba1d2ca5..ab6e8da01d4 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -18,7 +18,7 @@
var/cooldown = 50
var/ready = TRUE
var/list/ticket_holders = list()
- var/list/tickets = list()
+ var/list/obj/item/ticket_machine_ticket/tickets = list()
var/id = 1
/obj/machinery/ticket_machine/emag_act(mob/user) //Emag the ticket machine to dispense burning tickets, as well as randomize its number to destroy the HoP's mind.
From 9338a9d0c549ac8a39fb49d0aa3bfd252754ac2c Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Thu, 18 Jun 2020 12:24:23 -0400
Subject: [PATCH 13/54] Requested fixes
---
code/modules/paperwork/ticketmachine.dm | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index ab6e8da01d4..9a4c306d85f 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -18,19 +18,23 @@
var/cooldown = 50
var/ready = TRUE
var/list/ticket_holders = list()
- var/list/obj/item/ticket_machine_ticket/tickets = list()
+ var/list/tickets = list()
var/id = 1
+/obj/machinery/ticket_machine/Destroy()
+ ticket_holders.Cut()
+ ..()
+
/obj/machinery/ticket_machine/emag_act(mob/user) //Emag the ticket machine to dispense burning tickets, as well as randomize its number to destroy the HoP's mind.
if(emagged)
return
to_chat(user, "You overload [src]'s bureaucratic logic circuitry to its MAXIMUM setting.")
- ticket_number = rand(0,max_number)
+ ticket_number = rand(0, max_number)
current_number = ticket_number
emagged = TRUE
- if(tickets.len)
+ if(length(tickets))
for(var/obj/item/ticket_machine_ticket/ticket in tickets)
- ticket.audible_message("\the [ticket] disperses!")
+ ticket.visible_message("\the [ticket] disperses!")
qdel(ticket)
tickets.Cut()
update_icon()
@@ -43,14 +47,16 @@
if(current_number > ticket_number)
return
if(current_number && !(emagged) && tickets[current_number])
- tickets[current_number].audible_message("\the [tickets[current_number]] disperses!")
+ var/obj/item/ticket_machine_ticket/ticket = tickets[current_number]
+ ticket.audible_message("\the [tickets[current_number]] vibrates!")
qdel(tickets[current_number])
if(current_number < ticket_number)
current_number ++ //Increment the one we're serving.
playsound(src, 'sound/misc/announce_dig.ogg', 50, FALSE)
atom_say("Now serving ticket #[current_number]!")
if(!(emagged) && tickets[current_number])
- tickets[current_number].audible_message("\the [tickets[current_number]] vibrates!")
+ var/obj/item/ticket_machine_ticket/ticket = tickets[current_number]
+ ticket.audible_message("\the [tickets[current_number]] vibrates!")
update_icon() //Update our icon here rather than when they take a ticket to show the current ticket number being served
/obj/machinery/ticket_machine_button
@@ -68,7 +74,7 @@
/obj/machinery/ticket_machine_button/attack_hand(mob/user)
if(allowed(usr) || user.can_advanced_admin_interact())
- for(var/obj/machinery/ticket_machine/M in world)
+ for(var/obj/machinery/ticket_machine/M in GLOB.machines)
if(M.id == id)
if(cooldown)
return
@@ -107,12 +113,13 @@
to_chat(user, "You start to refill [src]'s ticket holder (doing this will reset its ticket count!).")
if(do_after(user, 30, target = src))
to_chat(user, "You insert [I] into [src] as it whirs nondescriptly.")
+ user.drop_item()
qdel(I)
ticket_number = 0
current_number = 0
- if(tickets.len)
+ if(length(tickets))
for(var/obj/item/ticket_machine_ticket/ticket in tickets)
- ticket.audible_message("\the [ticket] disperses!")
+ ticket.visible_message("\the [ticket] disperses!")
qdel(ticket)
tickets.Cut()
max_number = initial(max_number)
From db9bd3d0710ba55426f7bd7bc43879e4dae3d355 Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Thu, 18 Jun 2020 12:37:10 -0400
Subject: [PATCH 14/54] Fix
---
code/modules/paperwork/ticketmachine.dm | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index 9a4c306d85f..4895639bc81 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -22,8 +22,13 @@
var/id = 1
/obj/machinery/ticket_machine/Destroy()
+ if(length(tickets))
+ for(var/obj/item/ticket_machine_ticket/ticket in tickets)
+ ticket.visible_message("\the [ticket] disperses!")
+ qdel(ticket)
+ tickets.Cut()
ticket_holders.Cut()
- ..()
+ return ..()
/obj/machinery/ticket_machine/emag_act(mob/user) //Emag the ticket machine to dispense burning tickets, as well as randomize its number to destroy the HoP's mind.
if(emagged)
From 69e7ada387f0864668abc8ffc324ebb1bbedd468 Mon Sep 17 00:00:00 2001
From: ZomgPonies
Date: Thu, 18 Jun 2020 12:57:07 -0400
Subject: [PATCH 15/54] Map and icon fixes
---
_maps/map_files/cyberiad/cyberiad.dmm | 20 +++++++++++++-------
code/modules/paperwork/ticketmachine.dm | 4 ++--
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 80c5da54103..3909332ffa6 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -49915,10 +49915,14 @@
pixel_y = 25;
req_access_txt = "28"
},
-/obj/machinery/ticket_machine_button{
+/obj/machinery/light_switch{
pixel_x = -4;
pixel_y = 36
},
+/obj/machinery/ticket_machine_button{
+ pixel_x = -22;
+ pixel_y = 4
+ },
/turf/simulated/floor/plasteel{
dir = 9;
icon_state = "blue"
@@ -49947,10 +49951,6 @@
pixel_x = 0;
pixel_y = 30
},
-/obj/machinery/light_switch{
- pixel_x = 10;
- pixel_y = 34
- },
/turf/simulated/floor/plasteel,
/area/crew_quarters/heads)
"bOD" = (
@@ -55015,6 +55015,10 @@
icon_state = "4";
dir = 4
},
+/obj/machinery/ticket_machine{
+ layer = 4;
+ pixel_y = 32
+ },
/turf/simulated/floor/plasteel,
/area/hallway/primary/central/sw)
"bWT" = (
@@ -57324,9 +57328,11 @@
})
"caw" = (
/obj/structure/disposalpipe/segment,
-/obj/machinery/ticket_machine{
+/obj/machinery/status_display{
+ density = 0;
layer = 4;
- pixel_x = 32
+ pixel_x = 32;
+ pixel_y = 0
},
/turf/simulated/floor/plasteel{
dir = 4;
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index 4895639bc81..7af0a038006 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -67,8 +67,8 @@
/obj/machinery/ticket_machine_button
name = "increment ticket counter"
desc = "Use this button after you've served someone to tell the next person to come forward."
- icon = 'icons/obj/power.dmi'
- icon_state = "crema_switch"
+ icon = 'icons/obj/objects.dmi'
+ icon_state = "launcherbtt"
req_access = list()
var/id = 1
var/cooldown = FALSE
From 8e8d3dbe939bdfa60ec91a6d43050fd3188efa00 Mon Sep 17 00:00:00 2001
From: farie82
Date: Wed, 24 Jun 2020 12:13:34 +0200
Subject: [PATCH 16/54] Update mind.dm
---
code/datums/mind.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index c0bacbbd90e..9fc7cd0e302 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -547,7 +547,7 @@
possible_targets = sortAtom(possible_targets)
var/new_target
- if(LAZYLEN(possible_targets) > 0)
+ if(length(possible_targets) > 0)
if(alert(usr, "Do you want to pick the objective yourself? No will randomise it", "Pick objective", "Yes", "No") == "Yes")
possible_targets += "Free objective"
new_target = input("Select target:", "Objective target", def_target) as null|anything in possible_targets
From e5dc7e5591a95c17a95737a71cd67a0984b02d68 Mon Sep 17 00:00:00 2001
From: mochi
Date: Fri, 26 Jun 2020 14:48:41 +0200
Subject: [PATCH 17/54] Fix off-center observer HUD
---
code/_onclick/hud/_defines.dm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index 58e82733abe..56275c50274 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -161,10 +161,10 @@
#define ui_bot_pull "EAST-2:26,SOUTH:7"
//Ghosts
-#define ui_ghost_jumptomob "SOUTH:6,CENTER-2:24"
-#define ui_ghost_orbit "SOUTH:6,CENTER-1:24"
-#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:24"
-#define ui_ghost_teleport "SOUTH:6,CENTER+1:24"
+#define ui_ghost_jumptomob "SOUTH:6,CENTER-2:17"
+#define ui_ghost_orbit "SOUTH:6,CENTER-1:17"
+#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:17"
+#define ui_ghost_teleport "SOUTH:6,CENTER+1:17"
//HUD styles. Please ensure HUD_VERSIONS is the same as the maximum index. Index order defines how they are cycled in F12.
#define HUD_STYLE_STANDARD 1
From 73b577c516756338f75710891b87baee9046553f Mon Sep 17 00:00:00 2001
From: mochi
Date: Fri, 26 Jun 2020 20:11:39 +0200
Subject: [PATCH 18/54] Add mob spawner and pAI button in toggleable list,
re-center
---
code/_onclick/hud/_defines.dm | 11 +++---
code/_onclick/hud/ghost.dm | 62 ++++++++++++++++++++++++++++++++++
icons/mob/screen_ghost.dmi | Bin 20940 -> 23609 bytes
3 files changed, 69 insertions(+), 4 deletions(-)
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index 56275c50274..93786e50c76 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -161,10 +161,13 @@
#define ui_bot_pull "EAST-2:26,SOUTH:7"
//Ghosts
-#define ui_ghost_jumptomob "SOUTH:6,CENTER-2:17"
-#define ui_ghost_orbit "SOUTH:6,CENTER-1:17"
-#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:17"
-#define ui_ghost_teleport "SOUTH:6,CENTER+1:17"
+#define ui_ghost_jumptomob "SOUTH:6,CENTER-2:1"
+#define ui_ghost_orbit "SOUTH:6,CENTER-1:1"
+#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:1"
+#define ui_ghost_teleport "SOUTH:6,CENTER+1:1"
+#define ui_ghost_respawn_list "SOUTH:6,CENTER+2:1"
+#define ui_ghost_respawn_mob "SOUTH:6+1,CENTER+2:1"
+#define ui_ghost_respawn_pai "SOUTH:6+2,CENTER+2:1"
//HUD styles. Please ensure HUD_VERSIONS is the same as the maximum index. Index order defines how they are cycled in F12.
#define HUD_STYLE_STANDARD 1
diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm
index 600c1105e8e..a291120fb85 100644
--- a/code/_onclick/hud/ghost.dm
+++ b/code/_onclick/hud/ghost.dm
@@ -40,6 +40,52 @@
var/mob/dead/observer/G = usr
G.dead_tele()
+/obj/screen/ghost/respawn_list
+ name = "Ghost spawns"
+ icon = 'icons/mob/screen_midnight.dmi'
+ icon_state = "template"
+
+/obj/screen/ghost/respawn_list/Initialize(mapload)
+ . = ..()
+ update_hidden_state()
+
+/obj/screen/ghost/respawn_list/Click()
+ var/client/C = hud.mymob.client
+ hud.inventory_shown = !hud.inventory_shown
+ if(hud.inventory_shown)
+ C.screen += hud.toggleable_inventory
+ else
+ C.screen -= hud.toggleable_inventory
+ update_hidden_state()
+
+/obj/screen/ghost/respawn_list/proc/update_hidden_state()
+ var/matrix/M = matrix(transform)
+ M.Turn(-90)
+
+ overlays.Cut()
+ var/image/img = image('icons/mob/actions/actions.dmi', src, (hud && hud.inventory_shown) ? "hide" : "show")
+ img.transform = M
+ overlays += img
+
+/obj/screen/ghost/respawn_mob
+ name = "Mob spawners"
+ icon_state = "mob_spawner"
+
+/obj/screen/ghost/respawn_mob/Click()
+ var/mob/dead/observer/G = usr
+ G.open_spawners_menu()
+
+/obj/screen/ghost/respawn_pai
+ name = "Configure pAI"
+ icon_state = "pai"
+
+/obj/screen/ghost/respawn_pai/Click()
+ var/mob/dead/observer/G = usr
+ GLOB.paiController.recruitWindow(G)
+
+/datum/hud/ghost
+ inventory_shown = FALSE
+
/datum/hud/ghost/New(mob/owner)
..()
var/obj/screen/using
@@ -59,6 +105,22 @@
using = new /obj/screen/ghost/teleport()
using.screen_loc = ui_ghost_teleport
static_inventory += using
+ static_inventory += using
+
+ using = new /obj/screen/ghost/respawn_list()
+ using.screen_loc = ui_ghost_respawn_list
+ static_inventory += using
+
+ using = new /obj/screen/ghost/respawn_mob()
+ using.screen_loc = ui_ghost_respawn_mob
+ toggleable_inventory += using
+
+ using = new /obj/screen/ghost/respawn_pai()
+ using.screen_loc = ui_ghost_respawn_pai
+ toggleable_inventory += using
+
+ for(var/obj/screen/S in (static_inventory + toggleable_inventory))
+ S.hud = src
/datum/hud/ghost/show_hud()
mymob.client.screen = list()
diff --git a/icons/mob/screen_ghost.dmi b/icons/mob/screen_ghost.dmi
index 6519d00aa978e24b65fe47dc5cde86aa5b0d3780..e0e85a6939c4d96ed45c08b9e6f76e51af20d89f 100644
GIT binary patch
literal 23609
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