From d25ba20e326ed45b7a271c99038c7853230c4f7d Mon Sep 17 00:00:00 2001
From: Luc <89928798+lewcc@users.noreply.github.com>
Date: Fri, 10 May 2024 15:35:58 -0400
Subject: [PATCH] Moves pre-round observers to the wizden (#25330)
* let's see if people like this
* Update code/game/objects/effects/landmarks.dm
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>
* Update code/game/objects/effects/landmarks.dm
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>
---------
Signed-off-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
---
_maps/map_files/generic/centcomm.dmm | 6 ++++++
code/_globalvars/mapping_vars.dm | 1 +
code/game/objects/effects/landmarks.dm | 9 ++++++++-
code/modules/mob/new_player/new_player.dm | 9 +++++++--
4 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm
index a5a7a216fc8..f21ccb4e85c 100644
--- a/_maps/map_files/generic/centcomm.dmm
+++ b/_maps/map_files/generic/centcomm.dmm
@@ -725,6 +725,7 @@
dir = 6;
color = "#63009c"
},
+/obj/effect/landmark/spawner/roundstart_observer,
/turf/simulated/floor/wood,
/area/wizard_station)
"cO" = (
@@ -1369,6 +1370,7 @@
dir = 4;
color = "#63009c"
},
+/obj/effect/landmark/spawner/roundstart_observer,
/turf/simulated/floor/wood,
/area/wizard_station)
"fp" = (
@@ -1432,6 +1434,7 @@
/obj/structure/chair/sofa/right{
color = "#63009c"
},
+/obj/effect/landmark/spawner/roundstart_observer,
/turf/simulated/floor/wood,
/area/wizard_station)
"fx" = (
@@ -8159,6 +8162,7 @@
name = "wizard council throne";
dir = 1
},
+/obj/effect/landmark/spawner/roundstart_observer,
/turf/simulated/floor/carpet/red,
/area/wizard_station)
"CY" = (
@@ -12077,6 +12081,7 @@
/obj/structure/chair/sofa{
color = "#63009c"
},
+/obj/effect/landmark/spawner/roundstart_observer,
/turf/simulated/floor/wood,
/area/wizard_station)
"Qm" = (
@@ -14263,6 +14268,7 @@
/obj/structure/chair/comfy/purp{
name = "wizard council throne"
},
+/obj/effect/landmark/spawner/roundstart_observer,
/turf/simulated/floor/carpet/red,
/area/wizard_station)
"Yp" = (
diff --git a/code/_globalvars/mapping_vars.dm b/code/_globalvars/mapping_vars.dm
index 1aa65439ad0..cff1c4251b6 100644
--- a/code/_globalvars/mapping_vars.dm
+++ b/code/_globalvars/mapping_vars.dm
@@ -38,6 +38,7 @@ GLOBAL_LIST_EMPTY(nukedisc_respawn)
GLOBAL_LIST_EMPTY(ninjastart)
GLOBAL_LIST_EMPTY(carplist) //list of all carp-spawn landmarks
GLOBAL_LIST_EMPTY(syndicateofficer)
+GLOBAL_LIST_EMPTY(roundstart_observer_start)
//List of preloaded templates
GLOBAL_LIST_EMPTY(map_templates)
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index a977b08c726..a87d2909654 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -235,6 +235,14 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
/obj/effect/landmark/spawner/nuke_code
name = "nukecode"
+/obj/effect/landmark/spawner/roundstart_observer
+ name = "Roundstart Observer"
+ icon_state = "spooky"
+
+/obj/effect/landmark/spawner/roundstart_observer/Initialize(mapload)
+ spawner_list = GLOB.roundstart_observer_start
+ return ..()
+
/obj/effect/landmark/Destroy()
GLOB.landmarks_list -= src
..()
@@ -414,7 +422,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
name = "Warden"
icon_state = "Warden"
-
/obj/effect/landmark/start/set_tag()
tag = "start*[name]"
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index f1b21c4e32d..9e354111a88 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -185,9 +185,14 @@
to_chat(src, "As you observed [period_human_readable], you can freely toggle antag-hud without losing respawnability.")
observer.started_as_observer = 1
close_spawn_windows()
- var/obj/O = locate("landmark*Observer-Start")
+ var/obj/spawn_point
+ if(SSticker.current_state < GAME_STATE_PLAYING)
+ spawn_point = pick(GLOB.roundstart_observer_start)
+ else
+ spawn_point = locate("landmark*Observer-Start")
+
to_chat(src, "Now teleporting.")
- observer.forceMove(O.loc)
+ observer.forceMove(get_turf(spawn_point))
observer.timeofdeath = world.time // Set the time of death so that the respawn timer works correctly.
client.prefs.active_character.update_preview_icon(1)
observer.icon = client.prefs.active_character.preview_icon