diff --git a/aurorastation.dme b/aurorastation.dme
index 297599441b0..6225f16ea0b 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -100,6 +100,7 @@
#include "code\__DEFINES\ruin_tags.dm"
#include "code\__DEFINES\rust_g.dm"
#include "code\__DEFINES\rust_g_debug.dm"
+#include "code\__DEFINES\rust_g_overrides.dm"
#include "code\__DEFINES\ship_weapons.dm"
#include "code\__DEFINES\shuttle.dm"
#include "code\__DEFINES\singletons.dm"
@@ -134,6 +135,7 @@
#include "code\__DEFINES\dcs\signals.dm"
#include "code\__DEFINES\dcs\signals\signals_datum.dm"
#include "code\__DEFINES\dcs\signals\signals_global.dm"
+#include "code\__DEFINES\dcs\signals\signals_lore_radio.dm"
#include "code\__DEFINES\dcs\signals\signals_record.dm"
#include "code\__DEFINES\dcs\signals\signals_spatial_grid.dm"
#include "code\__DEFINES\dcs\signals\signals_subsystem.dm"
@@ -165,6 +167,7 @@
#include "code\__HELPERS\overlay.dm"
#include "code\__HELPERS\overmap.dm"
#include "code\__HELPERS\qdel.dm"
+#include "code\__HELPERS\ref.dm"
#include "code\__HELPERS\sanitize_values.dm"
#include "code\__HELPERS\shell.dm"
#include "code\__HELPERS\smart_token_bucket.dm"
@@ -1012,6 +1015,7 @@
#include "code\game\objects\items\ipc_overloaders.dm"
#include "code\game\objects\items\items_icon.dm"
#include "code\game\objects\items\knitting.dm"
+#include "code\game\objects\items\lore_radio.dm"
#include "code\game\objects\items\paintkit.dm"
#include "code\game\objects\items\recharger_backpack.dm"
#include "code\game\objects\items\shooting_range.dm"
@@ -1608,11 +1612,11 @@
#include "code\modules\background\religion\unathi.dm"
#include "code\modules\background\religion\vaurca.dm"
#include "code\modules\background\space_sectors\badlands.dm"
-#include "code\modules\background\space_sectors\coalition.dm"
#include "code\modules\background\space_sectors\generic_sectors.dm"
#include "code\modules\background\space_sectors\space_sector.dm"
#include "code\modules\background\space_sectors\tauceti.dm"
#include "code\modules\background\space_sectors\void.dm"
+#include "code\modules\background\space_sectors\coalition\coalition.dm"
#include "code\modules\balloon_alert\balloon_alert.dm"
#include "code\modules\battlemonsters\datum_core.dm"
#include "code\modules\battlemonsters\datum_elements.dm"
@@ -1877,6 +1881,7 @@
#include "code\modules\clothing\under\accessories\lockets.dm"
#include "code\modules\clothing\under\accessories\medal.dm"
#include "code\modules\clothing\under\accessories\necklace.dm"
+#include "code\modules\clothing\under\accessories\religious.dm"
#include "code\modules\clothing\under\accessories\shirts.dm"
#include "code\modules\clothing\under\accessories\storage.dm"
#include "code\modules\clothing\under\accessories\temperature.dm"
@@ -2864,7 +2869,8 @@
#include "code\modules\overmap\exoplanets\decor\flora\jungle.dm"
#include "code\modules\overmap\exoplanets\decor\flora\konyang.dm"
#include "code\modules\overmap\exoplanets\decor\flora\marsh.dm"
-#include "code\modules\overmap\exoplanets\decor\flora\potted.dm"
+#include "code\modules\overmap\exoplanets\decor\flora\potted_big.dm"
+#include "code\modules\overmap\exoplanets\decor\flora\potted_small.dm"
#include "code\modules\overmap\exoplanets\decor\flora\snow.dm"
#include "code\modules\overmap\exoplanets\decor\objs\clearing.dm"
#include "code\modules\overmap\exoplanets\decor\objs\monolith.dm"
@@ -3466,6 +3472,7 @@
#include "code\modules\tgui\states\deep_inventory.dm"
#include "code\modules\tgui\states\default.dm"
#include "code\modules\tgui\states\hands.dm"
+#include "code\modules\tgui\states\heavy_vehicle.dm"
#include "code\modules\tgui\states\human_adjacent.dm"
#include "code\modules\tgui\states\human_adjacent_loc.dm"
#include "code\modules\tgui\states\inventory.dm"
@@ -3546,6 +3553,7 @@
#include "code\unit_tests\species_tests.dm"
#include "code\unit_tests\sql_tests.dm"
#include "code\unit_tests\ss_test.dm"
+#include "code\unit_tests\stairs_type.dm"
#include "code\unit_tests\subsystem_init.dm"
#include "code\unit_tests\timer_sanity.dm"
#include "code\unit_tests\unit_test.dm"
diff --git a/code/__DEFINES/_flags.dm b/code/__DEFINES/_flags.dm
index 66b392d7753..cdcaaf21c3d 100644
--- a/code/__DEFINES/_flags.dm
+++ b/code/__DEFINES/_flags.dm
@@ -3,5 +3,8 @@
GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768))
+// for /datum/var/datum_flags
+#define DF_USE_TAG (1<<0)
+
///Whether /atom/Initialize() has already run for the object
#define INITIALIZED_1 (1<<5)
diff --git a/code/__DEFINES/dcs/signals/signals_lore_radio.dm b/code/__DEFINES/dcs/signals/signals_lore_radio.dm
new file mode 100644
index 00000000000..bb2b5670b81
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_lore_radio.dm
@@ -0,0 +1,4 @@
+// Signals related to lore radios, also known as analog radios
+// Sent from space_sector.dm
+
+#define COMSIG_GLOB_LORE_RADIO_BROADCAST "!lore_radio_broadcast"
diff --git a/code/__DEFINES/global.dm b/code/__DEFINES/global.dm
index 4f3c913b040..9443eda8f86 100644
--- a/code/__DEFINES/global.dm
+++ b/code/__DEFINES/global.dm
@@ -65,6 +65,8 @@ GLOBAL_LIST_EMPTY(reg_dna)
GLOBAL_DATUM(newplayer_start, /turf)
+GLOBAL_DATUM(lobby_mobs_location, /turf)
+
//Spawnpoints.
GLOBAL_LIST_EMPTY(latejoin)
GLOBAL_LIST_EMPTY(latejoin_gateway)
diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index 5daa3c63ab8..4ae3cf33702 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -8,7 +8,6 @@
#define CONSULAR_ROLE /datum/job/consular
#define JOURNALIST_ROLE /datum/job/journalist
#define CHAPLAIN_ROLE /datum/job/chaplain
-#define ASSISTANT_ROLE /datum/job/assistant
//Event Roles
//Used for generic department jobs for off-ship events
@@ -48,4 +47,4 @@
#define ZENG_ROLES list(SCIENCE_ROLES, MEDICAL_ROLES, CIVILIAN_ROLES, REPRESENTATIVE_ROLE)
#define HEPH_ROLES list(OPERATIONS_ROLES, ENGINEERING_ROLES, CIVILIAN_ROLES, REPRESENTATIVE_ROLE)
#define ORION_ROLES list(OPERATIONS_ROLES, CIVILIAN_ROLES, REPRESENTATIVE_ROLE, SERVICE_ROLES)
-#define INDEP_ROLES list(NON_CREW_CIVILIAN_ROLES, CONSULAR_ROLE, CHAPLAIN_ROLE, OFF_DUTY_CREW_MEMBER_ROLE, JOURNALIST_ROLE, ASSISTANT_ROLE)
+#define INDEP_ROLES list(NON_CREW_CIVILIAN_ROLES, CONSULAR_ROLE, CHAPLAIN_ROLE, OFF_DUTY_CREW_MEMBER_ROLE, JOURNALIST_ROLE)
diff --git a/code/__DEFINES/rust_g_overrides.dm b/code/__DEFINES/rust_g_overrides.dm
new file mode 100644
index 00000000000..57de7d96acd
--- /dev/null
+++ b/code/__DEFINES/rust_g_overrides.dm
@@ -0,0 +1,3 @@
+// RUSTG_OVERRIDE_BUILTINS is not used since the file APIs don't work well over Linux.
+#define url_encode(text) rustg_url_encode("[text]")
+#define url_decode(text) rustg_url_decode("[text]")
diff --git a/code/__DEFINES/subsystem-priority.dm b/code/__DEFINES/subsystem-priority.dm
index 25690cfd3aa..1e7ac02b016 100644
--- a/code/__DEFINES/subsystem-priority.dm
+++ b/code/__DEFINES/subsystem-priority.dm
@@ -4,37 +4,13 @@
THAT ARE PRESENT THERE
*/
-#define SS_INIT_PERSISTENT_CONFIG 26
-#define SS_INIT_MISC_FIRST 25
-#define SS_INIT_SEEDS 24 // Plant controller setup.
-#define SS_INIT_MAPLOAD 22 // DMM parsing and load. Unless you know what you're doing, make sure this remains first.
-#define SS_INIT_JOBS 21
-#define SS_INIT_MAPFINALIZE 20 // Asteroid generation.
-#define SS_INIT_PARALLAX 19 // Parallax image cache generation. Must run before ghosts are able to join
-#define SS_INIT_ATOMS 17 // World initialization. Will trigger lighting updates. Observers can join after this loads.
-#define SS_INIT_ASSETS 16 // Assets subsystem setup.
-#define SS_INIT_POWER 15 // Initial powernet build.
-#define SS_INIT_ECONOMY 14 // Cargo needs economy set up
#define SS_INIT_CARGO 13 // Random warehouse generation. Runs after SSatoms because it assumes objects are initialized when it runs.
#define SS_INIT_PIPENET 12 // Initial pipenet build.
-#define SS_INIT_MACHINERY 11 // Machinery prune and powernet build.
-#define SS_INIT_AIR 10 // Air setup and pre-bake.
#define SS_INIT_NIGHT 9 // Nightmode controller. Will trigger lighting updates.
-#define SS_INIT_SMOOTHING 8 // Object icon smoothing. Creates overlays.
-#define SS_INIT_ICON_UPDATE 7 // Icon update queue flush. Should run before overlays.
#define SS_INIT_AO 6 // Wall AO neighbour build.
-#define SS_INIT_OVERLAY 5 // Overlay flush.
-#define SS_INIT_AWAY_MAPS 4 // Note: away maps (ruins, exoplanets, ...) must initialize before ghost roles in order for their spawnpoints to work.
-#define SS_INIT_GHOSTROLES 3 // Ghost roles must initialize before SS_INIT_MISC due to some roles (matriarch drones) relying on the assumption that this SS is initialized.
-#define SS_INIT_MISC 2 // Subsystems without an explicitly set initialization order start here.
#define SS_INIT_SUNLIGHT 1 // Sunlight setup. Creates lots of lighting & SSzcopy updates.
-#define SS_INIT_LIGHTING 0 // Generation of lighting overlays and pre-bake. May cause openturf updates, should initialize before SSzcopy.
-#define SS_INIT_ZCOPY -1 // Z-mimic flush. Should run after SSoverlay & SSicon_smooth so it copies the smoothed sprites.
#define SS_INIT_XENOARCH -2 // Xenoarch is this far below because it can infinite loop if placed in SS_INIT_MISC as it was before, due to some subsystems spawning stuff there.
#define SS_INIT_HOLOMAP -4 // Minimap subsystem. Should be initialized after all maps, away sites, ships, planets, etc.
-#define SS_INIT_LOBBY -5 // Lobby timer starts here. The lobby timer won't actually start going down until the MC starts ticking, so you probably want this last
-#define SS_INIT_PING -6 // Pinger for the clients
-#define SS_INIT_CHAT -7 // To ensure chat remains smooth during init.
// Something to remember when setting priorities: SS_TICKER runs before Normal, which runs before SS_BACKGROUND.
// Each group has its own priority bracket.
@@ -58,14 +34,11 @@
#define SS_PRIORITY_TICKER 100 // Gameticker.
//#define FIRE_PRIORITY_DEFAULT 50 // This is defined somewhere else.
#define SS_PRIORITY_MOB 40 // Mob Life().
-#define SS_PRIORITY_ASSET 40 // Asset loading subsystem - not to be confused with SSassets.
#define SS_PRIORITY_AIR 40 // ZAS processing.
-#define SS_PRIORITY_CHAT 30 // Chat
#define SS_PRIORITY_STATPANELS 25 // Statpanels.
#define SS_PRIORITY_LIGHTING 25 // Queued lighting engine updates.
#define SS_PRIORITY_MACHINERY 25 // Machinery + powernet ticks.
#define SS_PRIORITY_NANOUI 25 // UI updates.
-#define SS_PRIORITY_VOTE 20
#define SS_PRIORITY_ELECTRONICS 20 // Integrated Electronics processing.
#define SS_PRIORITY_CALAMITY 20 // Singularity, Tesla, Nar'sie, blob, etc.
#define SS_PRIORITY_EVENT 20
@@ -77,7 +50,6 @@
#define SS_PRIORITY_CHEMISTRY 10 // Multi-tick chemical reactions.
#define SS_PRIORITY_SHUTTLE 10 // Shuttle movement.
#define SS_PRIORITY_AIRFLOW 10 // Handles object movement due to ZAS airflow.
-#define SS_PRIORITY_PING 10
#define SS_PRIORITY_ZCOPY 10 // Z-mimic icon generation/updates.
#define SS_PRIORITY_ARRIVALS 10 // Centcomm arrivals shuttle auto-launch. Usually asleep.
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 97b58df60e5..05dcce4f866 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -196,18 +196,47 @@
// Subsystems shutdown in the reverse of the order they initialize in
// The numbers just define the ordering, they are meaningless otherwise.
+#define INIT_ORDER_PERSISTENT_CONFIGURATION 101 //Aurora snowflake conflg handling
#define INIT_ORDER_PROFILER 101
#define INIT_ORDER_GARBAGE 99
+#define INIT_ORDER_DISCORD 78
+#define INIT_ORDER_JOBS 65 // Must init before atoms, to set up properly the dynamic job lists.
+#define INIT_ORDER_TICKER 55
+#define INIT_ORDER_SEEDS 52 // More aurora snowflake, needs to load before the atoms init as it generates images for seeds that are used
+#define INIT_ORDER_MISC_FIRST 51 //Another aurora snowflake system? Who would have guessed... Anyways, need to load before mapping or global HUDs are not ready when atoms request them
+#define INIT_ORDER_MAPPING 50 //This is the ATLAS subsystem
+#define INIT_ORDER_PARALLAX 49 // Parallax image cache generation. Must run before ghosts are able to join. Another aurora snowflake code, run after mapping or it runtimes
+#define INIT_ORDER_EARLY_ASSETS 48
#define INIT_ORDER_SPATIAL_GRID 43
+#define INIT_ORDER_ECONOMY 40
+#define INIT_ORDER_MAPFINALIZE 31 //Asteroid generation, another aurora snowflake, must run before the atoms init
+#define INIT_ORDER_ATOMS 30
+#define INIT_ORDER_MACHINES 20
+#define INIT_ORDER_DEFAULT 0
+#define INIT_ORDER_AIR -1
+#define INIT_ORDER_AWAY_MAPS -2 //Loading away sites and exoplanets, should start after air, must initialize before ghost roles in order for their spawnpoints to work
+#define INIT_ORDER_GHOSTROLES -2.1 //Ghost roles must initialize before SS_INIT_MISC due to some roles (matriarch drones) relying on the assumption that this SS is initialized.
+#define INIT_ORDER_MISC -2.2 //Aurora snowflake, Subsystems without an explicitly set initialization order start here
#define INIT_ORDER_CODEX -3 // Codex subsystem. Should be initialized after chemistry and cooking recipes.
+#define INIT_ORDER_VOTE -4
+#define INIT_ORDER_ASSETS -5
+#define INIT_ORDER_ICON_UPDATE -5.5 //Yet another aurora snowflake, Icon update queue flush. Should run before overlays, probably before smoothing the icon too
+#define INIT_ORDER_ICON_SMOOTHING -6
+#define INIT_ORDER_OVERLAY -7
+#define INIT_ORDER_LIGHTING -20
+#define INIT_ORDER_ZCOPY -21 //Aurora snowflake, Z-mimic flush. Should run after SSoverlay & SSicon_smooth so it copies the smoothed sprites.
#define INIT_ORDER_STATPANELS -97
+#define INIT_ORDER_CHAT -100 //Should be last to ensure chat remains smooth during init.
// Subsystem fire priority, from lowest to highest priority
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
+#define FIRE_PRIORITY_PING 10
#define FIRE_PRIORITY_GARBAGE 15
+#define FIRE_PRIORITY_ASSETS 20
#define FIRE_PRIORITY_DEFAULT 50
#define FIRE_PRIORITY_STATPANEL 390
+#define FIRE_PRIORITY_CHAT 400
/* AURORA SHIT */
diff --git a/code/__HELPERS/ref.dm b/code/__HELPERS/ref.dm
new file mode 100644
index 00000000000..365df03dc88
--- /dev/null
+++ b/code/__HELPERS/ref.dm
@@ -0,0 +1,15 @@
+/**
+ * \ref behaviour got changed in 512 so this is necesary to replicate old behaviour.
+ * If it ever becomes necesary to get a more performant REF(), this lies here in wait
+ * #define REF(thing) (thing && isdatum(thing) && (thing:datum_flags & DF_USE_TAG) && thing:tag ? "[thing:tag]" : text_ref(thing))
+**/
+/proc/REF(input)
+ if(isdatum(input))
+ var/datum/thing = input
+ if(thing.datum_flags & DF_USE_TAG)
+ if(!thing.tag)
+ stack_trace("A ref was requested of an object with DF_USE_TAG set but no tag: [thing]")
+ thing.datum_flags &= ~DF_USE_TAG
+ else
+ return "\[[url_encode(thing.tag)]\]"
+ return text_ref(input)
diff --git a/code/_onclick/hud/borer_hud.dm b/code/_onclick/hud/borer_hud.dm
index 94dacd194e4..3ed2796680c 100644
--- a/code/_onclick/hud/borer_hud.dm
+++ b/code/_onclick/hud/borer_hud.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_animal/borer/instantiate_hud(var/datum/hud/HUD)
+/mob/living/simple_animal/borer/instantiate_hud(datum/hud/HUD)
HUD.borer_hud()
/datum/hud/proc/borer_hud()
diff --git a/code/_onclick/hud/captive_brain_hud.dm b/code/_onclick/hud/captive_brain_hud.dm
index 1f8922d74ce..60148589c21 100644
--- a/code/_onclick/hud/captive_brain_hud.dm
+++ b/code/_onclick/hud/captive_brain_hud.dm
@@ -1,4 +1,4 @@
-/mob/living/captive_brain/instantiate_hud(var/datum/hud/HUD)
+/mob/living/captive_brain/instantiate_hud(datum/hud/HUD)
HUD.captive_brain_hud()
/datum/hud/proc/captive_brain_hud()
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 64a20ad5629..1a2fc6eff37 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -119,12 +119,23 @@ var/list/global_huds
*/
/datum/hud
+ ///The mob that possesses the HUD
var/mob/mymob
- var/hud_shown = 1 //Used for the HUD toggle (F12)
- var/inventory_shown = 1 //the inventory
- var/show_intent_icons = 0
- var/hotkey_ui_hidden = 0 //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
+ ///Boolean, if the HUD is shown, used for the HUD toggle (F12)
+ var/hud_shown = TRUE
+
+ ///Boolean, if the inventory is shows
+ var/inventory_shown = TRUE
+
+ ///Boolean, if the intent icons are shown
+ var/show_intent_icons = FALSE
+
+ ///Boolean, this is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
+ var/hotkey_ui_hidden = FALSE
+
+ ///Boolean, if the action buttons are hidden
+ var/action_buttons_hidden = FALSE
var/obj/screen/lingchemdisplay
var/obj/screen/instability_display //Technomancer.
@@ -141,7 +152,6 @@ var/list/global_huds
var/list/obj/screen/hotkeybuttons
var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle
- var/action_buttons_hidden = 0
/datum/hud/New(mob/owner)
mymob = owner
@@ -169,7 +179,9 @@ var/list/global_huds
. = ..()
/datum/hud/proc/hidden_inventory_update()
- if(!mymob) return
+ if(!mymob)
+ return
+
if(ishuman(mymob))
var/mob/living/carbon/human/H = mymob
for(var/gear_slot in H.species.hud.gear)
@@ -289,16 +301,30 @@ var/list/global_huds
H.r_store.screen_loc = null
+/**
+ * Instantiate an HUD to the current mob that own is
+ */
/datum/hud/proc/instantiate()
- if(!ismob(mymob)) return 0
- if(!mymob.client) return 0
+ SHOULD_NOT_SLEEP(TRUE)
+ SHOULD_CALL_PARENT(FALSE)
+
+ if(!ismob(mymob))
+ stack_trace("HUD instantiation called on an HUD without a mob!")
+ return FALSE
+
+ if(!(mymob.client))
+ return FALSE
+
var/ui_style = ui_style2icon(mymob.client.prefs.UI_style)
var/ui_color = mymob.client.prefs.UI_style_color
var/ui_alpha = mymob.client.prefs.UI_style_alpha
mymob.instantiate_hud(src, ui_style, ui_color, ui_alpha)
-/mob/proc/instantiate_hud(var/datum/hud/HUD, var/ui_style, var/ui_color, var/ui_alpha)
+/mob/proc/instantiate_hud(datum/hud/HUD, ui_style, ui_color, ui_alpha)
+ SHOULD_NOT_SLEEP(TRUE)
+ SHOULD_CALL_PARENT(FALSE)
+
return
//Triggered when F12 is pressed (Unless someone changed something in the DMF)
@@ -307,16 +333,19 @@ var/list/global_huds
set hidden = 1
if(!hud_used)
- to_chat(usr, "This mob type does not use a HUD.")
+ to_chat(usr, SPAN_WARNING("This mob type does not use a HUD."))
return
if(!ishuman(src))
- to_chat(usr, "Inventory hiding is currently only supported for human mobs, sorry.")
+ to_chat(usr, SPAN_WARNING("Inventory hiding is currently only supported for human mobs."))
+ return
+
+ if(!client)
return
- if(!client) return
if(client.view != world.view)
return
+
if(hud_used.hud_shown)
hud_used.hud_shown = 0
if(src.hud_used.adding)
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index fc2bea2a221..864a28e0b63 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/human/instantiate_hud(var/datum/hud/HUD, var/ui_style, var/ui_color, var/ui_alpha)
+/mob/living/carbon/human/instantiate_hud(datum/hud/HUD, ui_style, ui_color, ui_alpha)
HUD.human_hud(ui_style, ui_color, ui_alpha, src)
/datum/hud/proc/human_hud(var/ui_style='icons/mob/screen/white.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255, var/mob/living/carbon/human/target)
diff --git a/code/_onclick/hud/morph.dm b/code/_onclick/hud/morph.dm
index 5575d74e6be..61203779f2a 100644
--- a/code/_onclick/hud/morph.dm
+++ b/code/_onclick/hud/morph.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_animal/hostile/morph/instantiate_hud(var/datum/hud/HUD)
+/mob/living/simple_animal/hostile/morph/instantiate_hud(datum/hud/HUD)
HUD.morph_hud()
/datum/hud/proc/morph_hud()
diff --git a/code/_onclick/hud/nymph_hud.dm b/code/_onclick/hud/nymph_hud.dm
index a45dd59e4a7..d2c97f00fc1 100644
--- a/code/_onclick/hud/nymph_hud.dm
+++ b/code/_onclick/hud/nymph_hud.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/alien/instantiate_hud(var/datum/hud/HUD)
+/mob/living/carbon/alien/instantiate_hud(datum/hud/HUD)
HUD.nymph_hud()
/datum/hud/proc/nymph_hud()
diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm
index 78f53f47d43..ec8eb462ef6 100644
--- a/code/_onclick/hud/other_mobs.dm
+++ b/code/_onclick/hud/other_mobs.dm
@@ -2,16 +2,16 @@
/datum/hud/proc/unplayer_hud()
return
-/mob/abstract/observer/instantiate_hud(var/datum/hud/HUD)
+/mob/abstract/observer/instantiate_hud(datum/hud/HUD)
HUD.ghost_hud()
/datum/hud/proc/ghost_hud()
return
-/mob/living/carbon/brain/instantiate_hud(var/datum/hud/HUD)
+/mob/living/carbon/brain/instantiate_hud(datum/hud/HUD)
return
-/mob/living/silicon/ai/instantiate_hud(var/datum/hud/HUD)
+/mob/living/silicon/ai/instantiate_hud(datum/hud/HUD)
HUD.ai_hud()
/datum/hud/proc/blob_hud(ui_style = 'icons/mob/screen/midnight.dmi')
@@ -32,7 +32,7 @@
mymob.client.screen += list(blobpwrdisplay, blobhealthdisplay)
-/mob/living/carbon/slime/instantiate_hud(var/datum/hud/HUD)
+/mob/living/carbon/slime/instantiate_hud(datum/hud/HUD)
HUD.slime_hud()
/datum/hud/proc/slime_hud(ui_style = 'icons/mob/screen/midnight.dmi')
@@ -103,7 +103,7 @@
return
-/mob/living/simple_animal/construct/instantiate_hud(var/datum/hud/HUD)
+/mob/living/simple_animal/construct/instantiate_hud(datum/hud/HUD)
HUD.construct_hud()
/datum/hud/proc/construct_hud()
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index e2883576e04..c3eb5d39cba 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -1,6 +1,6 @@
var/obj/screen/robot_inventory
-/mob/living/silicon/robot/instantiate_hud(var/datum/hud/HUD)
+/mob/living/silicon/robot/instantiate_hud(datum/hud/HUD)
HUD.robot_hud()
/datum/hud/proc/robot_hud()
diff --git a/code/controllers/master/subsystem.dm b/code/controllers/master/subsystem.dm
index e51ab044d81..81251ef06ca 100644
--- a/code/controllers/master/subsystem.dm
+++ b/code/controllers/master/subsystem.dm
@@ -7,7 +7,7 @@
name = "fire coderbus"
/// Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.
- var/init_order = SS_INIT_MISC
+ var/init_order = INIT_ORDER_DEFAULT
/// Time to wait (in deciseconds) between each call to fire(). Must be a positive integer.
var/wait = 20
diff --git a/code/controllers/subsystems/air.dm b/code/controllers/subsystems/air.dm
index a362f2b6720..402b1e8371e 100644
--- a/code/controllers/subsystems/air.dm
+++ b/code/controllers/subsystems/air.dm
@@ -64,7 +64,7 @@ Class Procs:
SUBSYSTEM_DEF(air)
name = "Air"
priority = SS_PRIORITY_AIR
- init_order = SS_INIT_AIR
+ init_order = INIT_ORDER_AIR
flags = SS_POST_FIRE_TIMING
runlevels = RUNLEVELS_PLAYING
diff --git a/code/controllers/subsystems/alarm.dm b/code/controllers/subsystems/alarm.dm
index 5c510f64c57..fc267e44357 100644
--- a/code/controllers/subsystems/alarm.dm
+++ b/code/controllers/subsystems/alarm.dm
@@ -6,7 +6,7 @@
SUBSYSTEM_DEF(alarm)
name = "Alarms"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
priority = SS_PRIORITY_ALARMS
runlevels = RUNLEVELS_PLAYING
diff --git a/code/controllers/subsystems/asset_loading.dm b/code/controllers/subsystems/asset_loading.dm
index dc7e1ba3734..2d2939de4b2 100644
--- a/code/controllers/subsystems/asset_loading.dm
+++ b/code/controllers/subsystems/asset_loading.dm
@@ -3,7 +3,7 @@
/// So this just serves to remove the requirement to load assets fully during init
SUBSYSTEM_DEF(asset_loading)
name = "Asset Loading"
- priority = SS_PRIORITY_ASSET
+ priority = FIRE_PRIORITY_ASSETS
flags = SS_NO_INIT
runlevels = RUNLEVEL_LOBBY|RUNLEVELS_DEFAULT
var/list/datum/asset/generate_queue = list()
diff --git a/code/controllers/subsystems/assets.dm b/code/controllers/subsystems/assets.dm
index d8f6095a339..70c49640a90 100644
--- a/code/controllers/subsystems/assets.dm
+++ b/code/controllers/subsystems/assets.dm
@@ -1,27 +1,27 @@
SUBSYSTEM_DEF(assets)
name = "Assets"
- init_order = SS_INIT_ASSETS
+ init_order = INIT_ORDER_ASSETS
flags = SS_NO_FIRE
- runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
var/list/datum/asset_cache_item/cache = list()
var/list/preload = list()
var/datum/asset_transport/transport = new()
-/datum/controller/subsystem/assets/Initialize()
+/datum/controller/subsystem/assets/OnConfigLoad()
var/newtransporttype = /datum/asset_transport
switch (GLOB.config.asset_transport)
if ("webroot")
newtransporttype = /datum/asset_transport/webroot
if (newtransporttype == transport.type)
- return SS_INIT_SUCCESS
+ return
var/datum/asset_transport/newtransport = new newtransporttype ()
if (newtransport.validate_config())
transport = newtransport
-
transport.Load()
+
+/datum/controller/subsystem/assets/Initialize()
for(var/type in typesof(/datum/asset))
var/datum/asset/A = type
if (type != initial(A._abstract))
diff --git a/code/controllers/subsystems/battle_monsters.dm b/code/controllers/subsystems/battle_monsters.dm
index a8494b2860c..a9914ecae16 100644
--- a/code/controllers/subsystems/battle_monsters.dm
+++ b/code/controllers/subsystems/battle_monsters.dm
@@ -6,7 +6,7 @@
SUBSYSTEM_DEF(battle_monsters)
name = "Battle Monsters"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
var/list/monster_elements
diff --git a/code/controllers/subsystems/chat.dm b/code/controllers/subsystems/chat.dm
index f4219b98b1d..d76ce698d6f 100644
--- a/code/controllers/subsystems/chat.dm
+++ b/code/controllers/subsystems/chat.dm
@@ -9,8 +9,8 @@ SUBSYSTEM_DEF(chat)
name = "Chat"
flags = SS_TICKER | SS_NO_INIT
wait = 1
- priority = SS_PRIORITY_CHAT
- init_order = SS_INIT_CHAT
+ priority = FIRE_PRIORITY_CHAT
+ init_order = INIT_ORDER_CHAT
var/list/payload_by_client = list()
diff --git a/code/controllers/subsystems/chemistry.dm b/code/controllers/subsystems/chemistry.dm
index 4b347f09563..3dbcb08ff52 100644
--- a/code/controllers/subsystems/chemistry.dm
+++ b/code/controllers/subsystems/chemistry.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(chemistry)
name = "Chemistry"
priority = SS_PRIORITY_CHEMISTRY
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
runlevels = RUNLEVELS_PLAYING
init_stage = INITSTAGE_EARLY
diff --git a/code/controllers/subsystems/discord.dm b/code/controllers/subsystems/discord.dm
index fe31ee3654b..2190767bc8f 100644
--- a/code/controllers/subsystems/discord.dm
+++ b/code/controllers/subsystems/discord.dm
@@ -16,7 +16,7 @@
SUBSYSTEM_DEF(discord)
name = "Discord"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_DISCORD
flags = SS_NO_FIRE | SS_NO_DISPLAY
var/list/channels_to_group = list() // Group flag -> list of channel datums map.
diff --git a/code/controllers/subsystems/documents.dm b/code/controllers/subsystems/documents.dm
index da497a10ed9..18892849291 100644
--- a/code/controllers/subsystems/documents.dm
+++ b/code/controllers/subsystems/documents.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(docs)
name = "Documents"
wait = 30 SECONDS
flags = SS_NO_FIRE
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
var/total_docs = 0
var/list/docs = list()
diff --git a/code/controllers/subsystems/economy.dm b/code/controllers/subsystems/economy.dm
index 627af979c19..2b49f579e95 100644
--- a/code/controllers/subsystems/economy.dm
+++ b/code/controllers/subsystems/economy.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(economy)
name = "Economy"
wait = 30 SECONDS
flags = SS_NO_FIRE
- init_order = SS_INIT_ECONOMY
+ init_order = INIT_ORDER_ECONOMY
var/datum/money_account/station_account
var/list/department_accounts = list()
var/list/all_money_accounts = list()
diff --git a/code/controllers/subsystems/fail2topic.dm b/code/controllers/subsystems/fail2topic.dm
index 32d13282bde..e1e0f9769fb 100644
--- a/code/controllers/subsystems/fail2topic.dm
+++ b/code/controllers/subsystems/fail2topic.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(fail2topic)
name = "Fail2Topic"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_BACKGROUND
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY | RUNLEVEL_INIT
diff --git a/code/controllers/subsystems/ghostroles.dm b/code/controllers/subsystems/ghostroles.dm
index 793d6b7d2cf..9af6bde3f65 100644
--- a/code/controllers/subsystems/ghostroles.dm
+++ b/code/controllers/subsystems/ghostroles.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(ghostroles)
name = "Ghost Roles"
flags = SS_NO_FIRE
- init_order = SS_INIT_GHOSTROLES
+ init_order = INIT_ORDER_GHOSTROLES
var/list/spawnpoints = list() //List of the available spawnpoints by spawnpoint type
// -> type 1 -> spawnpoint 1
@@ -100,7 +100,7 @@ SUBSYSTEM_DEF(ghostroles)
return get_turf(P)
/datum/controller/subsystem/ghostroles/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/controller/subsystem/ghostroles/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
diff --git a/code/controllers/subsystems/icon_cache.dm b/code/controllers/subsystems/icon_cache.dm
index 8fc73db376f..e2289dcb4e2 100644
--- a/code/controllers/subsystems/icon_cache.dm
+++ b/code/controllers/subsystems/icon_cache.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(icon_cache)
name = "Icon Cache"
flags = SS_NO_FIRE
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
// Cached bloody overlays, key is object type.
var/list/bloody_cache = list()
diff --git a/code/controllers/subsystems/icon_smooth.dm b/code/controllers/subsystems/icon_smooth.dm
index 43e2e3fc689..e548dba08cc 100644
--- a/code/controllers/subsystems/icon_smooth.dm
+++ b/code/controllers/subsystems/icon_smooth.dm
@@ -17,7 +17,7 @@
SUBSYSTEM_DEF(icon_smooth)
name = "Icon Smoothing"
- init_order = SS_INIT_SMOOTHING
+ init_order = INIT_ORDER_ICON_SMOOTHING
wait = 1
priority = SS_PRIORITY_SMOOTHING
flags = SS_TICKER
diff --git a/code/controllers/subsystems/icon_updates.dm b/code/controllers/subsystems/icon_updates.dm
index 8af3dbced20..6bc56161f48 100644
--- a/code/controllers/subsystems/icon_updates.dm
+++ b/code/controllers/subsystems/icon_updates.dm
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(icon_update)
wait = 1 // ticks
flags = SS_TICKER
priority = SS_PRIORITY_ICON_UPDATE
- init_order = SS_INIT_ICON_UPDATE
+ init_order = INIT_ORDER_ICON_UPDATE
/**
* Associative list of atoms -> callback params
diff --git a/code/controllers/subsystems/initialization/atlas.dm b/code/controllers/subsystems/initialization/atlas.dm
index 2e29c597a83..ae14bc986a3 100644
--- a/code/controllers/subsystems/initialization/atlas.dm
+++ b/code/controllers/subsystems/initialization/atlas.dm
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(atlas)
name = "Atlas"
flags = SS_NO_FIRE
- init_order = SS_INIT_MAPLOAD
+ init_order = INIT_ORDER_MAPPING
init_stage = INITSTAGE_EARLY
// Whatever map is currently loaded. Null until SSatlas Initialize() starts.
@@ -210,6 +210,8 @@ SUBSYSTEM_DEF(atlas)
else
current_sector = selected_sector
+ current_sector.setup_current_sector()
+
return SS_INIT_SUCCESS
/datum/controller/subsystem/atlas/proc/load_map_directory(directory, overwrite_default_z = FALSE)
diff --git a/code/controllers/subsystems/initialization/atoms.dm b/code/controllers/subsystems/initialization/atoms.dm
index 7ac876a252d..a3f8a0c2b45 100644
--- a/code/controllers/subsystems/initialization/atoms.dm
+++ b/code/controllers/subsystems/initialization/atoms.dm
@@ -1,7 +1,7 @@
#define SUBSYSTEM_INIT_SOURCE "subsystem init"
SUBSYSTEM_DEF(atoms)
name = "Atoms"
- init_order = SS_INIT_ATOMS
+ init_order = INIT_ORDER_ATOMS
flags = SS_NO_FIRE
/// A stack of list(source, desired initialized state)
diff --git a/code/controllers/subsystems/initialization/map_finalization.dm b/code/controllers/subsystems/initialization/map_finalization.dm
index c5c854ac138..619921acabf 100644
--- a/code/controllers/subsystems/initialization/map_finalization.dm
+++ b/code/controllers/subsystems/initialization/map_finalization.dm
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(finalize)
name = "Map Finalization"
flags = SS_NO_FIRE | SS_NO_DISPLAY
- init_order = SS_INIT_MAPFINALIZE
+ init_order = INIT_ORDER_MAPFINALIZE
var/dmm_suite/maploader
var/datum/away_mission/selected_mission
diff --git a/code/controllers/subsystems/initialization/misc_early.dm b/code/controllers/subsystems/initialization/misc_early.dm
index 37b524e67be..84af95b973a 100644
--- a/code/controllers/subsystems/initialization/misc_early.dm
+++ b/code/controllers/subsystems/initialization/misc_early.dm
@@ -3,7 +3,7 @@
SUBSYSTEM_DEF(misc_early)
name = "Early Miscellaneous Init"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE | SS_NO_DISPLAY
/datum/controller/subsystem/misc_early/Initialize(timeofday)
diff --git a/code/controllers/subsystems/initialization/misc_late.dm b/code/controllers/subsystems/initialization/misc_late.dm
index 3c4f51ff763..12e1a4fc810 100644
--- a/code/controllers/subsystems/initialization/misc_late.dm
+++ b/code/controllers/subsystems/initialization/misc_late.dm
@@ -2,7 +2,7 @@
SUBSYSTEM_DEF(misc_late)
name = "Late Miscellaneous Init"
- init_order = SS_INIT_MISC
+ init_order = INIT_ORDER_MISC
flags = SS_NO_FIRE | SS_NO_DISPLAY
/// this is a list of things that fire when late misc init is called
diff --git a/code/controllers/subsystems/initialization/persistent_configuration.dm b/code/controllers/subsystems/initialization/persistent_configuration.dm
index b331bab012a..7a9068690ac 100644
--- a/code/controllers/subsystems/initialization/persistent_configuration.dm
+++ b/code/controllers/subsystems/initialization/persistent_configuration.dm
@@ -1,6 +1,7 @@
SUBSYSTEM_DEF(persistent_configuration)
name = "Persistent Configuration"
- init_order = SS_INIT_PERSISTENT_CONFIG
+ init_order = INIT_ORDER_PERSISTENT_CONFIGURATION
+ init_stage = INITSTAGE_EARLY
flags = SS_NO_FIRE
// Config options go here. Make sure to give them sane default values!
diff --git a/code/controllers/subsystems/ipintel.dm b/code/controllers/subsystems/ipintel.dm
index 480f9931370..47b88153f48 100644
--- a/code/controllers/subsystems/ipintel.dm
+++ b/code/controllers/subsystems/ipintel.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(ipintel)
name = "XKeyScore"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
var/enabled = FALSE //disable at round start to avoid checking reconnects
var/throttle = 0
diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm
index a746e1b7d94..0676e7a3438 100644
--- a/code/controllers/subsystems/job.dm
+++ b/code/controllers/subsystems/job.dm
@@ -4,7 +4,7 @@ SUBSYSTEM_DEF(jobs)
// Subsystem stuff.
name = "Jobs"
flags = SS_NO_FIRE
- init_order = SS_INIT_JOBS
+ init_order = INIT_ORDER_JOBS
// Vars.
var/list/datum/job/occupations = list()
diff --git a/code/controllers/subsystems/lighting.dm b/code/controllers/subsystems/lighting.dm
index 42b462d64a6..f8aa2f73890 100644
--- a/code/controllers/subsystems/lighting.dm
+++ b/code/controllers/subsystems/lighting.dm
@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(lighting)
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
priority = SS_PRIORITY_LIGHTING
- init_order = SS_INIT_LIGHTING
+ init_order = INIT_ORDER_LIGHTING
var/total_lighting_overlays = 0
var/total_lighting_sources = 0
diff --git a/code/controllers/subsystems/machinery.dm b/code/controllers/subsystems/machinery.dm
index 9342f1c53ed..9ec5eeb53f8 100644
--- a/code/controllers/subsystems/machinery.dm
+++ b/code/controllers/subsystems/machinery.dm
@@ -36,7 +36,7 @@ if(Datum.isprocessing) {\
SUBSYSTEM_DEF(machinery)
name = "Machinery"
priority = SS_PRIORITY_MACHINERY
- init_order = SS_INIT_MACHINERY
+ init_order = INIT_ORDER_MACHINES
flags = SS_POST_FIRE_TIMING
wait = 2 SECONDS
diff --git a/code/controllers/subsystems/mapping.dm b/code/controllers/subsystems/mapping.dm
index 3caae18e45f..9a87b21fcf9 100644
--- a/code/controllers/subsystems/mapping.dm
+++ b/code/controllers/subsystems/mapping.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(mapping)
name = "Mapping"
- init_order = SS_INIT_AWAY_MAPS
+ init_order = INIT_ORDER_AWAY_MAPS
flags = SS_NO_FIRE
var/list/map_templates = list()
diff --git a/code/controllers/subsystems/materials.dm b/code/controllers/subsystems/materials.dm
index b4dc080ec32..aa6aabd1271 100644
--- a/code/controllers/subsystems/materials.dm
+++ b/code/controllers/subsystems/materials.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(materials)
name = "Materials"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
var/list/materials
diff --git a/code/controllers/subsystems/mob.dm b/code/controllers/subsystems/mob.dm
index 6a1e50e7a1e..8b016fcbb29 100644
--- a/code/controllers/subsystems/mob.dm
+++ b/code/controllers/subsystems/mob.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(mobs)
name = "Mobs - Life"
- init_order = SS_INIT_MISC // doesn't really matter when we init
+ init_order = INIT_ORDER_MISC // doesn't really matter when we init
priority = SS_PRIORITY_MOB
runlevels = RUNLEVELS_PLAYING
diff --git a/code/controllers/subsystems/overlays.dm b/code/controllers/subsystems/overlays.dm
index e7f605e0832..760861a1860 100644
--- a/code/controllers/subsystems/overlays.dm
+++ b/code/controllers/subsystems/overlays.dm
@@ -4,7 +4,7 @@ SUBSYSTEM_DEF(overlays)
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
wait = 1
priority = SS_PRIORITY_OVERLAY
- init_order = SS_INIT_OVERLAY
+ init_order = INIT_ORDER_OVERLAY
var/list/processing = list()
diff --git a/code/controllers/subsystems/pai.dm b/code/controllers/subsystems/pai.dm
index add006fd254..94ddfc25182 100644
--- a/code/controllers/subsystems/pai.dm
+++ b/code/controllers/subsystems/pai.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(pai)
name = "pAI"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE | SS_NO_INIT
var/list/pai_software_by_key
@@ -22,7 +22,7 @@ SUBSYSTEM_DEF(pai)
default_pai_software = SSpai.default_pai_software
/datum/controller/subsystem/pai/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/controller/subsystem/pai/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
diff --git a/code/controllers/subsystems/ping.dm b/code/controllers/subsystems/ping.dm
index c4c3b56fd55..73db9940f2d 100644
--- a/code/controllers/subsystems/ping.dm
+++ b/code/controllers/subsystems/ping.dm
@@ -1,12 +1,10 @@
SUBSYSTEM_DEF(ping)
name = "Ping"
- priority = SS_PRIORITY_PING
- init_order = SS_INIT_PING
+ priority = FIRE_PRIORITY_PING
+ init_stage = INITSTAGE_EARLY
wait = 4 SECONDS
flags = SS_NO_INIT
- runlevels = RUNLEVEL_INIT | RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME
- init_stage = INITSTAGE_EARLY
-
+ runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/list/currentrun = list()
/datum/controller/subsystem/ping/stat_entry(msg)
diff --git a/code/controllers/subsystems/plants.dm b/code/controllers/subsystems/plants.dm
index 286fdb2e7ab..5642d2b221a 100644
--- a/code/controllers/subsystems/plants.dm
+++ b/code/controllers/subsystems/plants.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(plants)
name = "Seeds & Plants"
flags = 0 // Override parent's flags.
wait = 75
- init_order = SS_INIT_SEEDS
+ init_order = INIT_ORDER_SEEDS
priority = SS_PRIORITY_PLANTS
runlevels = RUNLEVELS_PLAYING
diff --git a/code/controllers/subsystems/processing/dcs.dm b/code/controllers/subsystems/processing/dcs.dm
index 0b4f2ef4d12..51cb8b0c4ae 100644
--- a/code/controllers/subsystems/processing/dcs.dm
+++ b/code/controllers/subsystems/processing/dcs.dm
@@ -22,8 +22,6 @@ PROCESSING_SUBSYSTEM_DEF(dcs)
return
. = elements_by_type[element_id] = new eletype
-///Temporary compatibility to not rewrite the proc, it is being ported already in another PR
-#define REF(k) ref(##k)
/****
* Generates an id for bespoke elements when given the argument list
* Generating the id here is a bit complex because we need to support named arguments
@@ -66,4 +64,3 @@ PROCESSING_SUBSYSTEM_DEF(dcs)
named_arguments = sortList(named_arguments)
fullid += named_arguments
return list2params(fullid)
-#undef REF
diff --git a/code/controllers/subsystems/processing/electronics.dm b/code/controllers/subsystems/processing/electronics.dm
index 629d1f7394d..c09b0704d05 100644
--- a/code/controllers/subsystems/processing/electronics.dm
+++ b/code/controllers/subsystems/processing/electronics.dm
@@ -6,7 +6,7 @@ PROCESSING_SUBSYSTEM_DEF(electronics)
wait = 2 SECONDS
priority = SS_PRIORITY_ELECTRONICS
flags = SS_KEEP_TIMING
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
var/list/all_integrated_circuits = list()
var/list/printer_recipe_list = list()
diff --git a/code/controllers/subsystems/processing/ntsl2.dm b/code/controllers/subsystems/processing/ntsl2.dm
index a9f17ae11d5..7516c1d5e52 100644
--- a/code/controllers/subsystems/processing/ntsl2.dm
+++ b/code/controllers/subsystems/processing/ntsl2.dm
@@ -4,7 +4,7 @@ NTSL2 deamon management subsystem, responsible for handling events from deamon a
PROCESSING_SUBSYSTEM_DEF(ntsl2)
name = "NTSL2"
flags = 0
- init_order = SS_INIT_MISC
+ init_order = INIT_ORDER_MISC
// priority = SS_PRIORITY_PROCESSING
var/connected = FALSE
var/list/programs = list()
diff --git a/code/controllers/subsystems/processing/shuttle.dm b/code/controllers/subsystems/processing/shuttle.dm
index 65c879ed724..52f2d16ba84 100644
--- a/code/controllers/subsystems/processing/shuttle.dm
+++ b/code/controllers/subsystems/processing/shuttle.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(shuttle)
name = "Shuttle"
wait = 2 SECONDS
priority = SS_PRIORITY_SHUTTLE
- init_order = SS_INIT_MISC //Should be initialized after all maploading is over and atoms are initialized, to ensure that landmarks have been initialized.
+ init_order = INIT_ORDER_MISC //Should be initialized after all maploading is over and atoms are initialized, to ensure that landmarks have been initialized.
var/overmap_halted = FALSE //Whether ships can move on the overmap; used for adminbus.
var/list/ships = list() //List of all ships.
diff --git a/code/controllers/subsystems/records.dm b/code/controllers/subsystems/records.dm
index 3a646e60559..cc0c6ac53b8 100644
--- a/code/controllers/subsystems/records.dm
+++ b/code/controllers/subsystems/records.dm
@@ -188,7 +188,7 @@ SUBSYSTEM_DEF(records)
update_static_data_for_all_viewers()
/datum/controller/subsystem/records/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/controller/subsystem/records/ui_status(mob/user, datum/ui_state/state)
return (isnewplayer(user) || isobserver(user) || issilicon(user)) ? UI_INTERACTIVE : UI_CLOSE
diff --git a/code/controllers/subsystems/skybox.dm b/code/controllers/subsystems/skybox.dm
index 53380d2f025..16c5c7e6e1e 100644
--- a/code/controllers/subsystems/skybox.dm
+++ b/code/controllers/subsystems/skybox.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(skybox)
name = "Space skybox"
- init_order = SS_INIT_PARALLAX
+ init_order = INIT_ORDER_PARALLAX
flags = SS_NO_FIRE
var/background_color
var/skybox_icon = 'icons/skybox/skybox.dmi' //Path to our background. Lets us use anything we damn well please. Skyboxes need to be 736x736
diff --git a/code/controllers/subsystems/statpanel.dm b/code/controllers/subsystems/statpanel.dm
index 5dfe51087fb..49d9827488c 100644
--- a/code/controllers/subsystems/statpanel.dm
+++ b/code/controllers/subsystems/statpanel.dm
@@ -125,7 +125,7 @@ SUBSYSTEM_DEF(statpanels)
/datum/controller/subsystem/statpanels/proc/set_SDQL2_tab(client/target)
var/list/sdql2A = list()
- sdql2A[++sdql2A.len] = list("", "Access Global SDQL2 List", ref(GLOB.sdql2_vv_statobj))
+ sdql2A[++sdql2A.len] = list("", "Access Global SDQL2 List", REF(GLOB.sdql2_vv_statobj))
var/list/sdql2B = list()
for(var/datum/sdql2_query/query as anything in GLOB.sdql2_queries)
sdql2B = query.generate_stat()
@@ -219,7 +219,7 @@ SUBSYSTEM_DEF(statpanels)
continue
// We already have it. Success!
if(existing_image)
- turf_items[++turf_items.len] = list("[turf_item.name]", ref(turf_item), existing_image)
+ turf_items[++turf_items.len] = list("[turf_item.name]", REF(turf_item), existing_image)
continue
// Now, we're gonna queue image generation out of those refs
to_make += turf_item
diff --git a/code/controllers/subsystems/stickyban.dm b/code/controllers/subsystems/stickyban.dm
index 71ded5ce28e..82388bc0291 100644
--- a/code/controllers/subsystems/stickyban.dm
+++ b/code/controllers/subsystems/stickyban.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(stickyban)
name = "PRISM"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
var/list/cache = list()
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 170b868d1be..74966e91c06 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -12,7 +12,7 @@ var/datum/controller/subsystem/ticker/SSticker
priority = SS_PRIORITY_TICKER
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
- init_order = SS_INIT_LOBBY
+ init_order = INIT_ORDER_TICKER
wait = 1 SECOND
@@ -49,11 +49,11 @@ var/datum/controller/subsystem/ticker/SSticker
//Now we have a general cinematic centrally held within the gameticker....far more efficient!
var/obj/screen/cinematic = null
- var/list/possible_lobby_tracks = list(
- 'sound/music/space.ogg',
- 'sound/music/traitor.ogg',
- 'sound/music/title2.ogg',
- 'sound/music/clouds.s3m'
+ var/list/default_lobby_tracks = list(
+ 'sound/music/lobby/space.ogg',
+ 'sound/music/lobby/traitor.ogg',
+ 'sound/music/lobby/title2.ogg',
+ 'sound/music/lobby/clouds.s3m'
)
var/lobby_ready = FALSE
@@ -417,8 +417,11 @@ var/datum/controller/subsystem/ticker/SSticker
/datum/controller/subsystem/ticker/proc/pregame()
set waitfor = FALSE
sleep(1) // Sleep so the MC has a chance to update its init time.
- if (!login_music)
- login_music = pick(possible_lobby_tracks)
+ if(!login_music)
+ if(SSatlas.current_sector && SSatlas.current_sector.lobby_tracks)
+ login_music = pick(SSatlas.current_sector.lobby_tracks)
+ else
+ login_music = pick(default_lobby_tracks)
if (is_revote)
pregame_timeleft = LOBBY_TIME
diff --git a/code/controllers/subsystems/virtual_reality.dm b/code/controllers/subsystems/virtual_reality.dm
index 3d67be494d9..33dd447bbba 100644
--- a/code/controllers/subsystems/virtual_reality.dm
+++ b/code/controllers/subsystems/virtual_reality.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(virtualreality)
name = "Virtual Reality"
- init_order = SS_INIT_MISC_FIRST
+ init_order = INIT_ORDER_MISC_FIRST
flags = SS_NO_FIRE
// MECHA
diff --git a/code/controllers/subsystems/vote.dm b/code/controllers/subsystems/vote.dm
index 2aeab72dde9..321b0828285 100644
--- a/code/controllers/subsystems/vote.dm
+++ b/code/controllers/subsystems/vote.dm
@@ -1,9 +1,9 @@
SUBSYSTEM_DEF(vote)
name = "Voting"
wait = 1 SECOND
- flags = SS_KEEP_TIMING | SS_KEEP_TIMING
- runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
- priority = SS_PRIORITY_VOTE
+ flags = SS_KEEP_TIMING
+ init_order = INIT_ORDER_VOTE
+ runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/next_transfer_time
@@ -326,7 +326,7 @@ SUBSYSTEM_DEF(vote)
)
/datum/controller/subsystem/vote/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/controller/subsystem/vote/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
diff --git a/code/controllers/subsystems/zcopy.dm b/code/controllers/subsystems/zcopy.dm
index b2e242fceb4..3670eea3209 100644
--- a/code/controllers/subsystems/zcopy.dm
+++ b/code/controllers/subsystems/zcopy.dm
@@ -1,7 +1,7 @@
SUBSYSTEM_DEF(zcopy)
name = "Z-Copy"
wait = 1
- init_order = SS_INIT_ZCOPY
+ init_order = INIT_ORDER_ZCOPY
priority = SS_PRIORITY_ZCOPY
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
diff --git a/code/datums/components/local_network.dm b/code/datums/components/local_network.dm
index 94514ad7c37..fdce8aa8a49 100644
--- a/code/datums/components/local_network.dm
+++ b/code/datums/components/local_network.dm
@@ -54,7 +54,7 @@
/datum/component/local_network_member/proc/get_new_tag(mob/user)
var/new_ident = input(user, "Enter a new ident tag.", "[parent]", id_tag) as null|text
- if(new_ident && parent && user.Adjacent(parent) && CanInteract(user, physical_state))
+ if(new_ident && parent && user.Adjacent(parent) && CanInteract(user, GLOB.physical_state))
return set_tag(user, new_ident)
//
diff --git a/code/datums/datum.dm b/code/datums/datum.dm
index eb0e9e9a28e..9b63cd80c89 100644
--- a/code/datums/datum.dm
+++ b/code/datums/datum.dm
@@ -24,6 +24,9 @@
/// Set to true when a signal has been registered
var/signal_enabled = FALSE
+ /// Datum level flags
+ var/datum_flags = NONE
+
/// A weak reference to another datum
var/datum/weakref/weak_reference
@@ -48,6 +51,7 @@
//SHOULD_NOT_SLEEP(TRUE) //Soon my friend, soon...
tag = null
+ datum_flags &= ~DF_USE_TAG //In case something tries to REF us
weak_reference = null //ensure prompt GCing of weakref.
if(active_timers)
@@ -138,6 +142,12 @@
vars[var_name] = var_value
return TRUE
+///Generate a tag for this /datum, if it implements one
+///Should be called as early as possible, best would be in New, to avoid weakref mistargets
+///Really just don't use this, you don't need it, global lists will do just fine MOST of the time
+///We really only use it for mobs to make id'ing people easier
+/datum/proc/GenerateTag()
+ datum_flags |= DF_USE_TAG
/// Return text from this proc to provide extra context to hard deletes that happen to it
/// Optional, you should use this for cases where replication is difficult and extra context is required
diff --git a/code/datums/late_choices.dm b/code/datums/late_choices.dm
index d50ef425d1f..6c23f9bf353 100755
--- a/code/datums/late_choices.dm
+++ b/code/datums/late_choices.dm
@@ -17,7 +17,7 @@
return ..()
/datum/late_choices/ui_state(mob/user)
- return new_player_state
+ return GLOB.new_player_state
/datum/late_choices/ui_status(mob/user, datum/ui_state/state)
return isnewplayer(user) ? UI_INTERACTIVE : UI_CLOSE
diff --git a/code/datums/tgui_module.dm b/code/datums/tgui_module.dm
index 4c0cc44fda0..88afcf8c18e 100644
--- a/code/datums/tgui_module.dm
+++ b/code/datums/tgui_module.dm
@@ -1,11 +1,11 @@
/datum/tgui_module/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/tgui_module/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
/datum/tgui_module/moderator/ui_state(mob/user)
- return moderator_state
+ return GLOB.moderator_state
/datum/tgui_module/admin/ui_state(mob/user)
- return admin_state
+ return GLOB.admin_state
diff --git a/code/datums/uplink/uplink_items.dm b/code/datums/uplink/uplink_items.dm
index 5f462db5363..ea058a20189 100644
--- a/code/datums/uplink/uplink_items.dm
+++ b/code/datums/uplink/uplink_items.dm
@@ -54,7 +54,7 @@ var/datum/uplink/uplink
if(!can_buy_telecrystals && !can_buy_bluecrystals)
return
- if(U.CanUseTopic(user, inventory_state) != STATUS_INTERACTIVE)
+ if(U.CanUseTopic(user, GLOB.inventory_state) != STATUS_INTERACTIVE)
return
var/goods = get_goods(U, get_turf(user), user, extra_args)
diff --git a/code/datums/weakrefs.dm b/code/datums/weakrefs.dm
index 911623ff4c2..490d3bfbfeb 100644
--- a/code/datums/weakrefs.dm
+++ b/code/datums/weakrefs.dm
@@ -56,7 +56,7 @@
var/reference
/datum/weakref/New(datum/thing)
- reference = text_ref(thing)
+ reference = REF(thing)
/datum/weakref/Destroy(force)
var/datum/target = resolve()
diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm
index d447f453943..f0724be4383 100644
--- a/code/datums/wires/wires.dm
+++ b/code/datums/wires/wires.dm
@@ -277,7 +277,7 @@ var/global/list/wire_name_directory = list()
return UI_CLOSE
/datum/wires/ui_state(mob/user)
- return physical_state
+ return GLOB.physical_state
/datum/wires/ui_interact(mob/user, datum/tgui/ui)
diff --git a/code/game/antagonist/antagonist_print.dm b/code/game/antagonist/antagonist_print.dm
index 28f82c1735e..cf3eb9a962e 100644
--- a/code/game/antagonist/antagonist_print.dm
+++ b/code/game/antagonist/antagonist_print.dm
@@ -74,7 +74,7 @@
// they are either imprisoned, or handcuffed in an area that can't be considered a hideout
text += "apprehended"
else if(isNotStationLevel(M.z))
- text += "fled the station"
+ text += "fled the [SSatlas.current_map.station_type]"
else
text += "survived"
if(M.stat == UNCONSCIOUS)
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 37b3e2ab123..8111b3f4a83 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -639,7 +639,7 @@ pixel_x = 10;
ui_interact(user)
wires.interact(user)
-/obj/machinery/alarm/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/ui_state/state = default_state)
+/obj/machinery/alarm/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/ui_state/state = GLOB.default_state)
var/data = list()
var/remote_connection = 0
var/remote_access = 0
diff --git a/code/game/machinery/autolathe/autolathe.dm b/code/game/machinery/autolathe/autolathe.dm
index 103e78babb4..6305db6669c 100644
--- a/code/game/machinery/autolathe/autolathe.dm
+++ b/code/game/machinery/autolathe/autolathe.dm
@@ -43,15 +43,6 @@
/obj/item/stock_parts/console_screen
)
-/obj/machinery/autolathe/mounted
- name = "\improper mounted autolathe"
- density = FALSE
- anchored = FALSE
- idle_power_usage = FALSE
- active_power_usage = FALSE
- interact_offline = TRUE
- does_flick = FALSE
-
/obj/machinery/autolathe/Initialize()
..()
wires = new(src)
@@ -381,6 +372,18 @@
user.remove_from_mob(O)
qdel(O)
+/obj/machinery/autolathe/mounted
+ name = "\improper mounted autolathe"
+ density = FALSE
+ anchored = FALSE
+ idle_power_usage = FALSE
+ active_power_usage = FALSE
+ interact_offline = TRUE
+ does_flick = FALSE
+
+/obj/machinery/autolathe/mounted/ui_state(mob/user)
+ return GLOB.heavy_vehicle_state
+
/// Queue items are needed so that the queue knows exactly what it's doing.
/datum/autolathe_queue_item
/// The recipe singleton. We need to know exactly what we're making.
diff --git a/code/game/machinery/body_scanner.dm b/code/game/machinery/body_scanner.dm
index 504b7975ef8..06db8086692 100644
--- a/code/game/machinery/body_scanner.dm
+++ b/code/game/machinery/body_scanner.dm
@@ -878,7 +878,7 @@
return ..()
/obj/machinery/body_scanconsole/embedded/ui_state(mob/user)
- return human_adjacent_loc_state
+ return GLOB.human_adjacent_loc_state
/obj/machinery/body_scanconsole/embedded/get_connected()
if(monitor_console)
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index 4a67b86f8a3..36ce7323ae2 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -159,7 +159,7 @@
..()
queue_icon_update()
-/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/ui_state/state = default_state)
+/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/ui_state/state = GLOB.default_state)
var/data[0]
data["alertLevel"] = get_security_level()
data["time"] = src.time
@@ -294,7 +294,7 @@ Just a object used in constructing fire alarms
A.partyreset()
return
-/obj/machinery/firealarm/partyalarm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/ui_state/state = default_state)
+/obj/machinery/firealarm/partyalarm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/ui_state/state = GLOB.default_state)
var/data[0]
data["alertLevel"] = get_security_level()
data["time"] = src.time
diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm
index 63f4fdd88a6..e6b0e77c0eb 100644
--- a/code/game/machinery/jukebox.dm
+++ b/code/game/machinery/jukebox.dm
@@ -24,13 +24,13 @@
var/datum/track/current_track
var/list/datum/track/tracks = list(
new/datum/track("Beyond", 'sound/music/ambispace.ogg'),
- new/datum/track("Clouds of Fire", 'sound/music/clouds.s3m'),
- new/datum/track("D`Bert", 'sound/music/title2.ogg'),
+ new/datum/track("Clouds of Fire", 'sound/music/lobby/clouds.s3m'),
+ new/datum/track("D`Bert", 'sound/music/lobby/title2.ogg'),
new/datum/track("D`Fort", 'sound/music/song_game.ogg'),
new/datum/track("Floating", 'sound/music/main.ogg'),
- new/datum/track("Endless Space", 'sound/music/space.ogg'),
+ new/datum/track("Endless Space", 'sound/music/lobby/space.ogg'),
new/datum/track("Scratch", 'sound/music/title1.ogg'),
- new/datum/track("Suspenseful", 'sound/music/traitor.ogg'),
+ new/datum/track("Suspenseful", 'sound/music/lobby/traitor.ogg'),
new/datum/track("Thunderdome", 'sound/music/THUNDERDOME.ogg'),
new/datum/track("Velvet Rose", 'sound/music/velvet_rose.ogg')
)
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 11bab113388..efad76f1966 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -145,6 +145,7 @@
src.ads_list += text2list(src.product_ads, ";")
add_screen_overlay()
+ build_products()
build_inventory()
power_change()
@@ -168,6 +169,15 @@
add_overlay(screen_overlays["[icon_state]-[deny ? "deny" : "screen"]"])
reset_light()
+/**
+ * Build src.products
+ *
+ * To be overriden if building the products list is dynamic at runtime or needs any complex logic
+ */
+/obj/machinery/vending/proc/build_products()
+ SHOULD_NOT_SLEEP(TRUE)
+ return
+
/**
* Build src.product_records from the products lists
*
@@ -719,6 +729,7 @@
var/vending_usr_dir = get_dir(src, user)
var/obj/vended = new R.product_path(get_step(src, vending_usr_dir))
+ vended_product_post(vended)
if(Adjacent(user))
user.put_in_hands(vended)
src.status_message = ""
@@ -735,6 +746,12 @@
if(1)
use_power_oneoff(RC.reagents.set_temperature(heating_temperature))
+/// To be overriden if vended out products need any post-processing, setting its vars.
+/// Called by `vend_product`.
+/// `vended` is the item that is being vended out.
+/obj/machinery/vending/proc/vended_product_post(var/obj/vended)
+ return
+
/obj/machinery/vending/proc/stock(var/datum/data/vending_product/R, var/mob/user)
to_chat(user, "You insert \the [R.product_name] in the product receptor.")
diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm
index d54374d1f7e..b2a473ea9f0 100644
--- a/code/game/machinery/vending_types.dm
+++ b/code/game/machinery/vending_types.dm
@@ -1638,3 +1638,50 @@
/obj/item/reagent_containers/food/drinks/bottle/wine = 50,
/obj/item/reagent_containers/food/drinks/bottle/champagne = 100
)
+
+/obj/machinery/vending/rental_bikes
+ name = "\improper Rental Bikes self-service vendor"
+ desc = "Rent-a-bike, for a day!"
+ icon_state = "rent-a-bike"
+ icon_vend = "rent-a-bike-vend"
+ vend_id = "rent-a-bike"
+ products = list(
+ /obj/item/key/bike/moped = 0, // filled from the key data lists
+ /obj/item/key/bike/sport = 0,
+ )
+ prices = list(
+ /obj/item/key/bike/moped = 50,
+ /obj/item/key/bike/sport = 200,
+ )
+ restock_items = FALSE
+ random_itemcount = FALSE
+ light_color = COLOR_BABY_BLUE
+
+ /// List of strings.
+ /// Vended out keys will be filled with these key data (== bike reg plates) strings.
+ /// Also based on this list is filled the products assoc list.
+ var/list/key_data_mopeds = list()
+
+ /// Same as the list for mopeds, except for sports bikes.
+ var/list/key_data_sports = list()
+
+/obj/machinery/vending/rental_bikes/build_products()
+ products[/obj/item/key/bike/moped] = length(key_data_mopeds)
+ products[/obj/item/key/bike/sport] = length(key_data_sports)
+
+/obj/machinery/vending/rental_bikes/vended_product_post(var/obj/vended)
+ var/obj/item/key/key = vended
+ if(!istype(key))
+ return
+
+ // expires the next day
+ var/rental_expiry = "[GLOB.game_year]-[time2text(world.realtime + 1 DAY, "MM-DD")] [worldtime2text()]"
+ key.desc += " Property of Idris Incorporated. Rental expires on [rental_expiry]. Return fully charged."
+
+ if(key_data_mopeds && istype(key, /obj/item/key/bike/moped))
+ key.key_data = key_data_mopeds[1]
+ key_data_mopeds.Cut(1,2)
+ else if(key_data_sports && istype(key, /obj/item/key/bike/sport))
+ key.key_data = key_data_sports[1]
+ key_data_sports.Cut(1,2)
+
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index fe94701c8e9..92663795bee 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -108,6 +108,26 @@
return 1
+/obj/effect/landmark/lobby_mobs_location
+ name = "lobby_mobs_location"
+ anchored = TRUE
+ invisibility = 101
+
+INITIALIZE_IMMEDIATE(/obj/effect/landmark/lobby_mobs_location)
+
+/obj/effect/landmark/lobby_mobs_location/Initialize()
+ ..()
+
+ if(GLOB.lobby_mobs_location)
+ crash_with("There must be one, and only one, /obj/effect/landmark/lobby_mobs_location effect in any single server session!")
+
+ else
+ GLOB.lobby_mobs_location = get_turf(src)
+ ASSERT(istype(GLOB.lobby_mobs_location, /turf))
+
+ return INITIALIZE_HINT_QDEL
+
+
//Costume spawner landmarks
/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears
diff --git a/code/game/objects/items/devices/lighting/hull_beacon.dm b/code/game/objects/items/devices/lighting/hull_beacon.dm
index b9b76ebb733..8561bf3a1ce 100644
--- a/code/game/objects/items/devices/lighting/hull_beacon.dm
+++ b/code/game/objects/items/devices/lighting/hull_beacon.dm
@@ -9,14 +9,14 @@
/obj/item/hullbeacon/red
name = "red hull beacon"
- desc = "A light-emitting red hull beacon."
- icon_state = "beacon_green_on"
+ desc = "A red, light-emitting hull beacon."
+ icon_state = "beacon_red_on"
light_color = LIGHT_COLOR_RED
light_range = 3
/obj/item/hullbeacon/green
name = "green hull beacon"
- desc = "A light-emitting green hull beacon."
- icon_state = "beacon_red_on"
+ desc = "A green, light-emitting hull beacon."
+ icon_state = "beacon_green_on"
light_color = LIGHT_COLOR_GREEN
light_range = 3
diff --git a/code/game/objects/items/devices/tvcamera.dm b/code/game/objects/items/devices/tvcamera.dm
index f52ab445e50..b08bd5e55f5 100644
--- a/code/game/objects/items/devices/tvcamera.dm
+++ b/code/game/objects/items/devices/tvcamera.dm
@@ -42,7 +42,7 @@
popup.set_content(jointext(dat,null))
popup.open()
-/obj/item/device/tvcamera/Topic(bred, href_list, state = physical_state)
+/obj/item/device/tvcamera/Topic(bred, href_list, state = GLOB.physical_state)
if(..())
return 1
if(href_list["channel"])
diff --git a/code/game/objects/items/lore_radio.dm b/code/game/objects/items/lore_radio.dm
new file mode 100644
index 00000000000..4857b308be4
--- /dev/null
+++ b/code/game/objects/items/lore_radio.dm
@@ -0,0 +1,64 @@
+/obj/item/lore_radio
+ name = "analog radio"
+ desc = "A portable radio capable of receiving radio waves from nearby space systems."
+ icon = 'icons/obj/radio.dmi'
+ icon_state = "radio"
+ w_class = ITEMSIZE_SMALL
+
+ var/receiving = FALSE
+ var/current_station = null
+ var/starts_on = FALSE //so you can map it and have it broadcast without anyone turning it on
+
+/obj/item/lore_radio/Initialize()
+ . = ..()
+ if(!current_station && SSatlas.current_sector?.lore_radio_stations)
+ current_station = pick(SSatlas.current_sector.lore_radio_stations)
+ if(starts_on)
+ toggle_receiving()
+ RegisterSignal(SSdcs, COMSIG_GLOB_LORE_RADIO_BROADCAST, PROC_REF(relay_lore_radio))
+
+/obj/item/lore_radio/examine(var/mob/user)
+ . = ..()
+ to_chat(user, SPAN_NOTICE("\The [src] is turned [receiving ? "on" : "off"]."))
+ if(current_station)
+ to_chat(user, SPAN_NOTICE("\The [src] is listening to \the [current_station] radio station."))
+
+/obj/item/lore_radio/attack_self(var/mob/user)
+ if(SSatlas.current_sector?.lore_radio_stations)
+ var/picked_station = tgui_input_list(user, "Select the radio frequency.", "Radio Station Selection", SSatlas.current_sector.lore_radio_stations, current_station)
+ if(picked_station)
+ current_station = picked_station
+ if(!receiving)
+ toggle_receiving(user)
+ else
+ audible_message("[src] only emits white noise...")
+
+/obj/item/lore_radio/AltClick(var/mob/user)
+ toggle_receiving(user)
+
+/obj/item/lore_radio/proc/toggle_receiving(var/mob/user)
+ if(!receiving)
+ receiving = TRUE
+ if(user)
+ user.visible_message("[user] flicks \the [src] on.", SPAN_NOTICE("You flick \the [src] on."), range = 3)
+ else
+ receiving = FALSE
+ if(user)
+ user.visible_message("[user] flicks \the [src] off.", SPAN_NOTICE("You flick \the [src] off."), range = 3)
+
+/obj/item/lore_radio/proc/relay_lore_radio(var/datum/source, var/radio_station, var/radio_message)
+ SIGNAL_HANDLER
+
+ if(!receiving || radio_station != current_station)
+ return
+
+ var/displayed_message = radio_message ? "[src.name] transmits, \"[radio_message]\"" : "[src] only emits white noise..."
+ audible_message(displayed_message)
+ if(radio_message)
+ var/list/hearers = get_hearers_in_view(7, src)
+ var/list/clients_in_hearers = list()
+ for(var/mob/mob in hearers)
+ if(mob.client)
+ clients_in_hearers += mob.client
+ if(length(clients_in_hearers))
+ INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, animate_chat), radio_message, null, FALSE, clients_in_hearers, 2 SECONDS)
diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm
index 364c4ce8d9f..80244475256 100644
--- a/code/game/objects/items/weapons/storage/wallets.dm
+++ b/code/game/objects/items/weapons/storage/wallets.dm
@@ -38,7 +38,9 @@
/obj/item/storage/business_card_holder,
/obj/item/sample,
/obj/item/key,
- /obj/item/sign/painting_frame
+ /obj/item/sign/painting_frame,
+ /obj/item/clothing/accessory/dominia/tic/retired,
+ /obj/item/clothing/accessory/dominia/tic/retired/caladius
)
slot_flags = SLOT_ID
build_from_parts = TRUE
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index bfb33490395..52a8887900f 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -36,7 +36,7 @@
STOP_PROCESSING(SSprocessing, src)
return ..()
-/obj/Topic(href, href_list, var/datum/ui_state/state = default_state)
+/obj/Topic(href, href_list, var/datum/ui_state/state = GLOB.default_state)
if(..())
return 1
diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm
index 31d3e8a326f..f5d33e6a945 100644
--- a/code/game/objects/random/misc.dm
+++ b/code/game/objects/random/misc.dm
@@ -431,9 +431,9 @@
return /obj/item/tank/emergency_oxygen/double
/obj/random/pottedplant
- name = "random potted plant"
+ name = "random potted plant, big"
desc = "Spawns a random potted plant."
- icon = 'icons/obj/plants.dmi'
+ icon = 'icons/obj/pottedplants_big.dmi'
icon_state = "plant-26"
spawn_nothing_percentage = 1
@@ -453,3 +453,25 @@
if(P in unwanted || ((P in rare) && prob(50)))
P = null
. = new P(loc)
+
+/obj/random/pottedplant_small
+ name = "random potted plant, small"
+ desc = "Spawns a random potted plant."
+ icon = 'icons/obj/pottedplants_small.dmi'
+ icon_state = "plant-01"
+ spawn_nothing_percentage = 1
+
+/obj/random/pottedplant_small/spawn_item()
+ var/obj/item/flora/pottedplant_small/P = null
+ var/list/unwanted = list(
+ /obj/item/flora/pottedplant_small, // don't want parent base obj
+ /obj/item/flora/pottedplant_small/empty
+ )
+ var/list/rare = list(
+ /obj/item/flora/pottedplant_small/dead
+ )
+ while(!P)
+ P = pick(typesof(/obj/item/flora/pottedplant_small))
+ if(P in unwanted || ((P in rare) && prob(50)))
+ P = null
+ . = new P(loc)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
index fa9aa96a153..dee9c85f3c4 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
@@ -95,10 +95,15 @@
new /obj/item/reagent_containers/food/condiment/sugar(src)
/obj/structure/closet/secure_closet/freezer/kois
+ name = "freezer"
+ desc = "A freezer, painted in a sickly yellow, with a biohazard sign on the door."
+ icon_state = "freezer_kois"
+
+/obj/structure/closet/secure_closet/freezer/kois/spores
name = "k'ois freezer"
- desc = "A freezer with k'ois inside. Don't eat this unless you're a Vaurca!"
+ desc = "A freezer with k'ois inside. Painted in a sickly yellow, with a biohazard sign on the door."
-/obj/structure/closet/secure_closet/freezer/kois/fill()
+/obj/structure/closet/secure_closet/freezer/kois/spores/fill()
..()
for(var/i = 0, i < 8, i++)
new /obj/item/reagent_containers/food/snacks/grown/kois(src)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index edb6b2228be..608eeb63cfe 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -345,15 +345,29 @@
newgas.temperature = target_temp
return newgas
-/obj/structure/closet/crate/freezer/rations //For use in the escape shuttle
+/obj/structure/closet/crate/freezer/rations
name = "emergency rations"
- desc = "A crate of emergency rations and some bottles of water."
+ desc = "A crate of emergency rations and bottles of water."
/obj/structure/closet/crate/freezer/rations/fill()
for(var/i=1,i<=6,i++)
new /obj/random/mre(src)
new /obj/item/reagent_containers/food/drinks/waterbottle(src)
+/obj/structure/closet/crate/freezer/kois
+ name = "freezer"
+ desc = "A freezer, painted in a sickly yellow, with a biohazard sign on the side."
+ icon_state = "freezer_kois"
+
+/obj/structure/closet/crate/freezer/kois/rations
+ name = "emergency k'ois rations"
+ desc = "A crate of emergency k'ois rations and bottles of water. Painted in a sickly yellow, with a biohazard sign on the side."
+
+/obj/structure/closet/crate/freezer/kois/rations/fill()
+ for(var/i=1,i<=6,i++)
+ new /obj/item/storage/box/fancy/mre/menu12(src)
+ new /obj/item/reagent_containers/food/drinks/waterbottle(src)
+
/obj/structure/closet/crate/bin
name = "large bin"
desc = "A large bin."
diff --git a/code/game/objects/structures/flags_banners.dm b/code/game/objects/structures/flags_banners.dm
index 8dd09bc8aee..33d16ab4976 100644
--- a/code/game/objects/structures/flags_banners.dm
+++ b/code/game/objects/structures/flags_banners.dm
@@ -3111,3 +3111,41 @@
/obj/structure/sign/flag/scarab/large/west/Initialize(mapload)
. = ..(mapload, WEST)
+
+// Callisto
+
+/obj/item/flag/callisto
+ name = "\improper Callistean flag"
+ desc = "The flag of the Commonwealth of Callisto, the gateway to Sol and its largest port."
+ flag_path = "callisto"
+ flag_structure = /obj/structure/sign/flag/callisto
+
+/obj/structure/sign/flag/callisto
+ name = "\improper Callistean flag"
+ desc = "The flag of the Commonwealth of Callisto, the gateway to Sol and its largest port."
+ flag_path = "callisto"
+ icon_state = "callisto"
+ flag_item = /obj/item/flag/callisto
+
+/obj/item/flag/callisto/l
+ name = "large Callistean flag"
+ flag_size = TRUE
+ flag_structure = /obj/structure/sign/flag/callisto/large
+
+/obj/structure/sign/flag/callisto/large
+ icon_state = "callisto_l"
+ flag_path = "callisto"
+ flag_size = TRUE
+ flag_item = /obj/item/flag/callisto/l
+
+/obj/structure/sign/flag/callisto/large/north/Initialize(mapload)
+ . = ..(mapload, NORTH)
+
+/obj/structure/sign/flag/callisto/large/south/Initialize(mapload)
+ . = ..(mapload, SOUTH)
+
+/obj/structure/sign/flag/callisto/large/east/Initialize(mapload)
+ . = ..(mapload, EAST)
+
+/obj/structure/sign/flag/callisto/large/west/Initialize(mapload)
+ . = ..(mapload, WEST)
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index cadd924a155..13d3ed83bf9 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -42,7 +42,7 @@
if(ishuman(user))
var/mob/living/carbon/human/H = user
- H.change_appearance(APPEARANCE_ALL_HAIR, H, FALSE, ui_state = default_state, state_object = src)
+ H.change_appearance(APPEARANCE_ALL_HAIR, H, FALSE, ui_state = GLOB.default_state, state_object = src)
/obj/structure/mirror/proc/shatter()
if(shattered) return
@@ -185,4 +185,4 @@
if(ishuman(user))
var/mob/living/carbon/human/H = user
- H.change_appearance(APPEARANCE_HAIR, H, FALSE, ui_state = default_state, state_object = src)
+ H.change_appearance(APPEARANCE_HAIR, H, FALSE, ui_state = GLOB.default_state, state_object = src)
diff --git a/code/game/objects/structures/under_wardrobe.dm b/code/game/objects/structures/under_wardrobe.dm
index 1242d9f9361..2ddde93d74f 100644
--- a/code/game/objects/structures/under_wardrobe.dm
+++ b/code/game/objects/structures/under_wardrobe.dm
@@ -72,7 +72,7 @@
if(!UWC)
return
var/datum/category_item/underwear/selected_underwear = tgui_input_list(H, "Choose your underwear.", "Choose Underwear", UWC.items, H.all_underwear[UWC.name])
- if(selected_underwear && CanUseTopic(H, default_state))
+ if(selected_underwear && CanUseTopic(H, GLOB.default_state))
H.all_underwear[UWC.name] = selected_underwear
H.hide_underwear[UWC.name] = FALSE
. = TRUE
diff --git a/code/game/objects/structures/urban.dm b/code/game/objects/structures/urban.dm
index 959111ca8fd..b1483185de9 100644
--- a/code/game/objects/structures/urban.dm
+++ b/code/game/objects/structures/urban.dm
@@ -68,22 +68,54 @@
desc = "This sign indicates this crossing street is called [street_name]."
/obj/structure/stairs/urban
+ abstract_type = /obj/structure/stairs/urban
icon = 'icons/obj/structure/urban/ledges.dmi'
icon_state = "stairs-single"
layer = 2.01
opacity = 1
+/obj/structure/stairs/urban/right
+ dir = EAST
+ bound_width = 64
+ bound_x = -32
+
+/obj/structure/stairs/urban/left
+ dir = WEST
+ bound_width = 64
+
+/obj/structure/stairs/urban/north
+ dir = NORTH
+ bound_height = 64
+ bound_y = -32
+
+/obj/structure/stairs/urban/south
+ dir = SOUTH
+ bound_height = 64
+
/obj/structure/stairs/urban/road_ramp
name = "inclined asphalt ramp"
desc = "A solid asphalt ramp to allow your vehicle to traverse inclines with ease."
icon_state = "road-ramp-center"
layer = 2.02
+ abstract_type = /obj/structure/stairs/urban/road_ramp
/obj/structure/stairs/urban/road_ramp/right
- icon_state = "road-ramp-right"
+ dir = EAST
+ bound_width = 64
+ bound_x = -32
/obj/structure/stairs/urban/road_ramp/left
- icon_state = "road-ramp-left"
+ dir = WEST
+ bound_width = 64
+
+/obj/structure/stairs/urban/road_ramp/north
+ dir = NORTH
+ bound_height = 64
+ bound_y = -32
+
+/obj/structure/stairs/urban/road_ramp/south
+ dir = SOUTH
+ bound_height = 64
/obj/structure/closet/crate/bin/urban
name = "tall garbage can"
diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 0fd90a94623..2ec0fe0f6cc 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -54,7 +54,7 @@
msg = process_chat_markup(msg, list("*"))
for(var/client/target in GLOB.clients)
- if(target.prefs.toggles & CHAT_OOC)
+ if(target.prefs?.toggles & CHAT_OOC)
var/display_name = src.key
if(holder)
if(holder.fakekey)
diff --git a/code/modules/acting/acting_items.dm b/code/modules/acting/acting_items.dm
index 73c1aa4c408..0e059213996 100644
--- a/code/modules/acting/acting_items.dm
+++ b/code/modules/acting/acting_items.dm
@@ -28,7 +28,7 @@
if(!istype(H))
return
- H.change_appearance(APPEARANCE_ALL, H, TRUE, H.generate_valid_species(), null, ui_state = default_state, state_object = src, update_id = TRUE)
+ H.change_appearance(APPEARANCE_ALL, H, TRUE, H.generate_valid_species(), null, ui_state = GLOB.default_state, state_object = src, update_id = TRUE)
var/getName = sanitizeName(sanitize_readd_odd_symbols(sanitize(input(H, "Would you like to change your name to something else?", "Name change") as null|text)))
if(getName)
H.real_name = getName
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 7c8c0c554a3..c7b34dd7754 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -493,6 +493,8 @@ var/list/admin_verbs_cciaa = list(
)
/client/proc/add_admin_verbs()
+ SHOULD_NOT_SLEEP(TRUE)
+
if(holder)
add_verb(src, admin_verbs_default)
if(holder.rights & R_BUILDMODE) add_verb(src, /client/proc/togglebuildmodeself)
diff --git a/code/modules/admin/verbs/SDQL_2.dm b/code/modules/admin/verbs/SDQL_2.dm
index 8b82ee6a6ab..cb59138ccf5 100644
--- a/code/modules/admin/verbs/SDQL_2.dm
+++ b/code/modules/admin/verbs/SDQL_2.dm
@@ -431,8 +431,8 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null
L[++L.len] = list("[id] ", "[delete_click.update("DELETE QUERY | STATE : [text_state()] | ALL/ELIG/FIN \
[islist(obj_count_all)? length(obj_count_all) : (isnull(obj_count_all)? "0" : obj_count_all)]/\
[islist(obj_count_eligible)? length(obj_count_eligible) : (isnull(obj_count_eligible)? "0" : obj_count_eligible)]/\
- [islist(obj_count_finished)? length(obj_count_finished) : (isnull(obj_count_finished)? "0" : obj_count_finished)] - [get_query_text()]")]", ref(delete_click))
- L[++L.len] = list(" ", "[action_click.update("[SDQL2_IS_RUNNING? "HALT" : "RUN"]")]", ref(action_click))
+ [islist(obj_count_finished)? length(obj_count_finished) : (isnull(obj_count_finished)? "0" : obj_count_finished)] - [get_query_text()]")]", REF(delete_click))
+ L[++L.len] = list(" ", "[action_click.update("[SDQL2_IS_RUNNING? "HALT" : "RUN"]")]", REF(action_click))
return L
/datum/sdql2_query/proc/delete_click()
@@ -696,7 +696,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null
obj_count_finished = select_refs
for(var/i in found)
SDQL_print(i, text_list, print_nulls)
- select_refs[ref(i)] = TRUE
+ select_refs[REF(i)] = TRUE
SDQL2_TICK_CHECK
SDQL2_HALT_CHECK
select_text = text_list
@@ -717,7 +717,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/sdql2_vv_all, new(null
/datum/sdql2_query/proc/SDQL_print(object, list/text_list, print_nulls = TRUE)
if(isdatum(object))
- text_list += "[ref(object)] : [object]"
+ text_list += "[REF(object)] : [object]"
if(istype(object, /atom))
var/atom/A = object
var/turf/T = A.loc
diff --git a/code/modules/admin/verbs/warning.dm b/code/modules/admin/verbs/warning.dm
index 498cc1316b1..64b8023ccb5 100644
--- a/code/modules/admin/verbs/warning.dm
+++ b/code/modules/admin/verbs/warning.dm
@@ -272,10 +272,12 @@
return data
-/*
+/**
* A proc used to gather if someone has Unacknowledged Warnings
*/
/client/proc/fetch_unacked_warning_count()
+ SHOULD_NOT_SLEEP(TRUE)
+
if (!GLOB.dbcon)
return
if (!establish_db_connection(GLOB.dbcon))
diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm
index 994750cbcd0..4b874d77175 100644
--- a/code/modules/awaymissions/bluespaceartillery.dm
+++ b/code/modules/awaymissions/bluespaceartillery.dm
@@ -23,7 +23,7 @@
onclose(user, "scroll")
return
-/obj/machinery/computer/artillerycontrol/Topic(href, href_list, var/datum/ui_state/state = default_state)
+/obj/machinery/computer/artillerycontrol/Topic(href, href_list, var/datum/ui_state/state = GLOB.default_state)
if(..())
return 1
diff --git a/code/modules/background/space_sectors/coalition.dm b/code/modules/background/space_sectors/coalition/coalition.dm
similarity index 92%
rename from code/modules/background/space_sectors/coalition.dm
rename to code/modules/background/space_sectors/coalition/coalition.dm
index 6b6f2490b86..aa38b388cd5 100644
--- a/code/modules/background/space_sectors/coalition.dm
+++ b/code/modules/background/space_sectors/coalition/coalition.dm
@@ -72,3 +72,18 @@
sector_welcome_message = 'sound/AI/welcome_konyang.ogg'
sector_hud_menu = 'icons/misc/hudmenu/konyang_hud.dmi'
sector_hud_arrow = "menu_arrow"
+
+ lobby_tracks = list(
+ 'sound/music/lobby/konyang/konyang-1.ogg',
+ 'sound/music/lobby/konyang/konyang-2.ogg',
+ 'sound/music/lobby/konyang/konyang-3.ogg',
+ 'sound/music/lobby/konyang/konyang-4.ogg'
+ )
+
+ lore_radio_stations = list(
+ "73.2 Navy Broadcasting Service" = "config/lore_radio/konyang/73.2_Navy_Broadcasting_Service.txt",
+ "122 Great Blue Dot" = "config/lore_radio/konyang//122_Great_Blue_Dot.txt",
+ "75.4 PBA" = "config/lore_radio/konyang/75.4_PBA.txt",
+ "77.7 SoulFM" = "config/lore_radio/konyang/77.7_SoulFM.txt",
+ "78.1 RealFM" = "config/lore_radio/konyang/78.1_RealFM.txt"
+ )
diff --git a/code/modules/background/space_sectors/space_sector.dm b/code/modules/background/space_sectors/space_sector.dm
index 5c926d64876..4d73ca10019 100644
--- a/code/modules/background/space_sectors/space_sector.dm
+++ b/code/modules/background/space_sectors/space_sector.dm
@@ -1,3 +1,7 @@
+#define RADIO_BROADCASTS "broadcasts"
+#define RADIO_NEXT_BROADCAST "next_broadcast"
+#define RADIO_BROADCAST_INDEX "broadcast_index"
+
/datum/space_sector
var/name
var/description
@@ -12,6 +16,10 @@
"iac" = 1, "zsc" = 1, "vfc" = 1, "bis" = 1, "xmg" = 1, "npi" = 1) //how much the space sector afffects how expensive is ordering from that cargo supplier
var/skybox_icon = "ceti"
+ /// An associated list of lore radio stations formatted like so: list("station name" = "path_to_broadcast.txt")
+ /// This gets converted into a formatted list after initialization like so: list(RADIO_BROADCASTS = list("stuff"), RADIO_NEXT_BROADCAST = world.time, RADIO_BROADCAST_INDEX = the entry in the list that will be broadcasted)
+ var/list/lore_radio_stations = null //what radio stations can be heard by the lore radio item here
+
var/list/sector_lobby_art = null //if this is set, it will override the map lobby icons
var/sector_lobby_transitions = null //if this is set, it will override the map lobby transition
var/sector_welcome_message = null ///if this is set, it will override welcome audio message
@@ -19,6 +27,9 @@
var/sector_hud_menu_sound = null //if this is set, it will override the hud menu click sound
var/sector_hud_arrow = null //if this is set, it will use an overlay instead of the animation that makes the button bigger
+ /// Lobby music overrides.
+ var/list/lobby_tracks
+
//vars used by the meteor random event
var/list/meteors_minor = list(
@@ -110,6 +121,60 @@
/obj/effect/meteor/supermatter=1\
)
+/// When SSAtlas chooses us as the current sector, this function is called, which will set us up to start processing
+/datum/space_sector/proc/setup_current_sector()
+ SHOULD_CALL_PARENT(TRUE)
+
+ // For now, i've put processing to only happen if the sector has a radio station
+ // but if, in the future, you add more stuff for the processor to handle, feel free to move it out of the if block
+ if(length(lore_radio_stations))
+ for(var/station in lore_radio_stations)
+ var/list/station_broadcasts = file2list(lore_radio_stations[station])
+
+ var/text_broadcast_index = 1
+ for(var/broadcast in station_broadcasts)
+ // Italics Regex
+ var/regex/italics_regex = regex("/(.*?)/")
+ broadcast = replacetext(broadcast, italics_regex, "$1")
+
+ // Random Note Regex
+ var/randomnote = pick("\u2669", "\u266A", "\u266B")
+ broadcast = replacetext(broadcast, "\[RANDOMNOTE\]", randomnote)
+
+ station_broadcasts[text_broadcast_index] = broadcast
+ text_broadcast_index++
+
+ var/broadcast_length = length(station_broadcasts)
+ lore_radio_stations[station] = list(
+ RADIO_BROADCASTS = station_broadcasts,
+ RADIO_NEXT_BROADCAST = 0, // start ASAP
+ RADIO_BROADCAST_INDEX = rand(1, broadcast_length) // start randomly in the broadcast so it isn't in the same sequence every time
+ )
+
+ START_PROCESSING(SSprocessing, src)
+
+/datum/space_sector/Destroy(force)
+ STOP_PROCESSING(SSprocessing, src)
+ return ..()
+
+/datum/space_sector/process(seconds_per_tick)
+ for(var/station in lore_radio_stations)
+ var/list/broadcast_info = lore_radio_stations[station]
+ if(world.time < broadcast_info[RADIO_NEXT_BROADCAST])
+ continue
+
+ var/broadcast_index = broadcast_info[RADIO_BROADCAST_INDEX]
+ var/broadcast_message = broadcast_info[RADIO_BROADCASTS][broadcast_index]
+
+ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_LORE_RADIO_BROADCAST, station, broadcast_message)
+
+ if(broadcast_index == length(broadcast_info[RADIO_BROADCASTS]))
+ broadcast_info[RADIO_BROADCAST_INDEX] = 1
+ broadcast_info[RADIO_NEXT_BROADCAST] = world.time + 30 SECONDS // give it a bit of a breather if we've exhausted all the messages
+ else
+ broadcast_info[RADIO_BROADCAST_INDEX]++
+ broadcast_info[RADIO_NEXT_BROADCAST] = world.time + (rand(6, 10) SECONDS) // otherwise, throw in a randomish delay (considering we're on SSprocessing, it'll uusssuaaalllyyy be about 2 seconds at minimum)
+
/datum/space_sector/proc/get_chat_description()
return "
Current Sector: [name]!
[description]
"
@@ -127,3 +192,10 @@
if(name in away_site.sectors)
away_sites += away_site
return away_sites
+
+/datum/space_sector/proc/lore_radio_message(/obj/item/R, chosen_station) //used for the lore radio in lore_radio.dm.
+ return
+
+#undef RADIO_BROADCASTS
+#undef RADIO_NEXT_BROADCAST
+#undef RADIO_BROADCAST_INDEX
diff --git a/code/modules/balloon_alert/balloon_alert.dm b/code/modules/balloon_alert/balloon_alert.dm
index 9d5172951dc..02150772e53 100644
--- a/code/modules/balloon_alert/balloon_alert.dm
+++ b/code/modules/balloon_alert/balloon_alert.dm
@@ -20,7 +20,7 @@
var/list/hearers = UNLINT(get_hearers_in_view(vision_distance, src))
hearers -= ignored_mobs
- for(var/mob/hearer as anything in hearers - src)
+ for(var/mob/hearer in hearers - src)
if(hearer.is_blind())
continue
balloon_alert(hearer, message)
diff --git a/code/modules/cargo/bounties/chef.dm b/code/modules/cargo/bounties/chef.dm
index 03524b5f76e..e1ca9260569 100644
--- a/code/modules/cargo/bounties/chef.dm
+++ b/code/modules/cargo/bounties/chef.dm
@@ -234,7 +234,9 @@
/obj/item/reagent_containers/food/snacks/sliceable/grilled_carp,
/obj/item/reagent_containers/food/snacks/sliceable/sushi_roll,
/obj/item/reagent_containers/food/snacks/stuffed_meatball,
- /obj/item/reagent_containers/food/snacks/chilied_eggs)
+ /obj/item/reagent_containers/food/snacks/chilied_eggs,
+ /obj/item/reagent_containers/food/snacks/sliceable/eyebowl,
+ /obj/item/reagent_containers/food/snacks/hatchbowl)
/datum/bounty/item/chef/tajara
name = "Adhomai Delicacies"
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 86bdd3ebd68..68dabd008b4 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -398,23 +398,32 @@ var/list/localhost_addresses = list(
src.InitPrefs()
mob.LateLogin()
- /// This spawn is the only thing keeping the stat panels and chat working. By removing this spawn, there will be black screens when loading the game.
- /// It seems to be affected by the order of statpanel init: if it happens before send_resources(), then the statpanels won't load, but the game won't
- /// blackscreen.
- spawn(0)
- // Initialize stat panel
- stat_panel.initialize(
- inline_html = file("html/statbrowser.html"),
- inline_js = file("html/statbrowser.js"),
- inline_css = file("html/statbrowser.css"),
- )
- addtimer(CALLBACK(src, PROC_REF(check_panel_loaded)), 30 SECONDS)
+ // Initialize stat panel
+ stat_panel.initialize(
+ inline_html = file("html/statbrowser.html"),
+ inline_js = file("html/statbrowser.js"),
+ inline_css = file("html/statbrowser.css"),
+ )
+ addtimer(CALLBACK(src, PROC_REF(check_panel_loaded)), 30 SECONDS)
// Initialize tgui panel
tgui_panel.initialize()
+
tgui_say.initialize()
+ // Forcibly enable hardware-accelerated graphics, as we need them for the lighting overlays.
+ winset(src, null, "command=\".configure graphics-hwmode on\"")
+
+ send_resources()
+
+ if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them.
+ to_chat(src, SPAN_WARNING("Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you."))
+
+ Master.UpdateTickRate()
+
/client/proc/InitPrefs()
+ SHOULD_NOT_SLEEP(TRUE)
+
//preferences datum - also holds some persistant data for the client (because we may as well keep these datums to a minimum)
prefs = preferences_datums[ckey]
if(!prefs)
@@ -432,7 +441,9 @@ var/list/localhost_addresses = list(
toggle_fullscreen(TRUE)
/client/proc/InitClient()
- to_chat(src, "If the title screen is black, resources are still downloading. Please be patient until the title screen appears.")
+ SHOULD_NOT_SLEEP(TRUE)
+
+ to_chat_immediate(src, SPAN_ALERT("If the title screen is black, resources are still downloading. Please be patient until the title screen appears."))
var/local_connection = (GLOB.config.auto_local_admin && !GLOB.config.use_forumuser_api && (isnull(address) || localhost_addresses[address]))
// Automatic admin rights for people connecting locally.
@@ -450,13 +461,13 @@ var/list/localhost_addresses = list(
log_client_to_db()
if (byond_version < GLOB.config.client_error_version)
- to_chat(src, "Your version of BYOND is too old!")
- to_chat(src, GLOB.config.client_error_message)
- to_chat(src, "Your version: [byond_version].")
- to_chat(src, "Required version: [GLOB.config.client_error_version] or later.")
- to_chat(src, "Visit http://www.byond.com/download/ to get the latest version of BYOND.")
+ to_chat_immediate(src, "Your version of BYOND is too old!")
+ to_chat_immediate(src, GLOB.config.client_error_message)
+ to_chat_immediate(src, "Your version: [byond_version].")
+ to_chat_immediate(src, "Required version: [GLOB.config.client_error_version] or later.")
+ to_chat_immediate(src, "Visit http://www.byond.com/download/ to get the latest version of BYOND.")
if (holder)
- to_chat(src, "Admins get a free pass. However, please update your BYOND as soon as possible. Certain things may cause crashes if you play with your present version.")
+ to_chat_immediate(src, "Admins get a free pass. However, please update your BYOND as soon as possible. Certain things may cause crashes if you play with your present version.")
else
log_access("Failed Login: [key] [computer_id] [address] - Outdated BYOND major version: [byond_version].")
del(src)
@@ -467,7 +478,7 @@ var/list/localhost_addresses = list(
if (GLOB.config.access_deny_new_players && player_age == -1)
log_access("Failed Login: [key] [computer_id] [address] - New player attempting connection during panic bunker.", ckey = ckey)
message_admins("Failed Login: [key] [computer_id] [address] - New player attempting connection during panic bunker.")
- to_chat(src, "Apologies, but the server is currently not accepting connections from never before seen players.")
+ to_chat_immediate(src, "Apologies, but the server is currently not accepting connections from never before seen players.")
del(src)
return 0
@@ -475,7 +486,7 @@ var/list/localhost_addresses = list(
if (GLOB.config.access_deny_new_accounts != -1 && account_age != -1 && account_age <= GLOB.config.access_deny_new_accounts)
log_access("Failed Login: [key] [computer_id] [address] - Account too young to play. [account_age] days.", ckey = ckey)
message_admins("Failed Login: [key] [computer_id] [address] - Account too young to play. [account_age] days.")
- to_chat(src, "Apologies, but the server is currently not accepting connections from BYOND accounts this young.")
+ to_chat_immediate(src, "Apologies, but the server is currently not accepting connections from BYOND accounts this young.")
del(src)
return 0
@@ -485,11 +496,6 @@ var/list/localhost_addresses = list(
if(holder)
add_admin_verbs()
- // Forcibly enable hardware-accelerated graphics, as we need them for the lighting overlays.
- winset(src, null, "command=\".configure graphics-hwmode on\"")
-
- send_resources()
-
check_ip_intel()
fetch_unacked_warning_count()
@@ -500,14 +506,30 @@ var/list/localhost_addresses = list(
//DISCONNECT//
//////////////
/client/Del()
+ if(!gc_destroyed)
+ gc_destroyed = world.time
+ if (!QDELING(src))
+ stack_trace("Client does not purport to be QDELING, this is going to cause bugs in other places!")
+
+ Destroy()
+ return ..()
+
+/client/Destroy(force)
GLOB.ticket_panels -= src
- if(holder)
- holder.owner = null
GLOB.staff -= src
GLOB.directory -= ckey
GLOB.clients -= src
- return ..()
+ if(holder)
+ holder.owner = null
+ GLOB.staff -= src
+ SSping.currentrun -= src
+
+ QDEL_NULL(tooltips)
+
+ Master.UpdateTickRate()
+ ..() //Even though we're going to be hard deleted there are still some things that want to know the destroy is happening
+ return QDEL_HINT_HARDDEL_NOW
// here because it's similar to below
@@ -526,6 +548,8 @@ var/list/localhost_addresses = list(
return -1
/client/proc/log_client_to_db()
+ set waitfor = FALSE
+
if (IsGuestKey(src.key))
return
diff --git a/code/modules/client/preference_setup/loadout/gear_tweaks.dm b/code/modules/client/preference_setup/loadout/gear_tweaks.dm
index 2381e06b6f9..7df536d4f4c 100644
--- a/code/modules/client/preference_setup/loadout/gear_tweaks.dm
+++ b/code/modules/client/preference_setup/loadout/gear_tweaks.dm
@@ -234,7 +234,9 @@ Reagents adjustment
. = valid_reagents[pick(valid_reagents)]
else
. = valid_reagents[metadata]
- I.reagents.add_reagent(., REAGENTS_FREE_SPACE(I.reagents))
+
+ if(!isnull(.))
+ I.reagents.add_reagent(., REAGENTS_FREE_SPACE(I.reagents))
/*
Custom Name
diff --git a/code/modules/client/preference_setup/loadout/items/augments.dm b/code/modules/client/preference_setup/loadout/items/augments.dm
index 9a965f93a28..43a5e146e5d 100644
--- a/code/modules/client/preference_setup/loadout/items/augments.dm
+++ b/code/modules/client/preference_setup/loadout/items/augments.dm
@@ -247,3 +247,11 @@
allowed_roles = list("Physician", "Surgeon", "Chief Medical Officer", "Pharmacist", "First Responder", "Psychiatrist", "Medical Intern", "Corporate Liaison", "Research Director","Scientist", "Xenobiologist", "Xenobotanist", "Xenoarchaeologist", "Lab Assistant", "Assistant", "Off-Duty Crew Member", "Captain", "Medical Personnel", "Science Personnel")
cost = 3
+/datum/gear/augment/phalanx_plate
+ display_name = "phalanx facial plate"
+ description = "This modular face plate accommodates a wide array of cybernetic augmentations, enabling seamless integration with Phalanx's transhumanist doctrine. Enhanced sensory overlays and HUDs offer Phalanx members superior situational awareness and promote a sense of hive-thinking."
+ path = /obj/item/organ/internal/augment/eye_sensors/phalanx
+ whitelisted = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI)
+ allowed_roles = list("Physician", "Surgeon", "Chief Medical Officer", "Pharmacist", "First Responder", "Psychiatrist", "Medical Intern", "Medical Personnel", "Security Officer", "Head of Security", "Warden", "Security Cadet", "Investigator", "Security Personnel", "Corporate Liaison", "Assistant", "Off-Duty Crew Member", "Captain")
+ faction = "Private Military Contracting Group"
+ cost = 1
diff --git a/code/modules/client/preference_setup/loadout/items/eyes.dm b/code/modules/client/preference_setup/loadout/items/eyes.dm
index b9402ab1389..7d89be2732b 100644
--- a/code/modules/client/preference_setup/loadout/items/eyes.dm
+++ b/code/modules/client/preference_setup/loadout/items/eyes.dm
@@ -12,7 +12,7 @@
/datum/gear/eyes/glasses
display_name = "glasses selection"
- description = "A selection of glasses."
+ description = "A selection of prescription glasses."
path = /obj/item/clothing/glasses/regular
/datum/gear/eyes/glasses/New()
@@ -23,8 +23,10 @@
glasses["glasses, circle"] = /obj/item/clothing/glasses/regular/circle
glasses["glasses, jamjar"] = /obj/item/clothing/glasses/regular/jamjar
glasses["glasses, monocle"] = /obj/item/clothing/glasses/monocle
- glasses["glasses, safety"] = /obj/item/clothing/glasses/safety
- glasses["glasses, safety (prescription)"] = /obj/item/clothing/glasses/safety/prescription
+ glasses["glasses, safety"] = /obj/item/clothing/glasses/safety/prescription
+ glasses["glasses, pince-nez"] = /obj/item/clothing/glasses/regular/pincenez
+ glasses["glasses, panto"] = /obj/item/clothing/glasses/regular/panto
+ glasses["contact lenses"] = /obj/item/clothing/glasses/regular/contacts
gear_tweaks += new /datum/gear_tweak/path(glasses)
/datum/gear/eyes/fakesunglasses
@@ -87,6 +89,8 @@
medhud["HUDpatch, medical"] = /obj/item/clothing/glasses/eyepatch/hud/medical
medhud["prescription HUD, medical"] = /obj/item/clothing/glasses/hud/health/prescription
medhud["visor sunglasses, medical"] = /obj/item/clothing/glasses/hud/health/aviator/visor
+ medhud["pincenez, medical"] = /obj/item/clothing/glasses/hud/health/aviator/pincenez
+ medhud["panto, medical"] = /obj/item/clothing/glasses/hud/health/aviator/panto
gear_tweaks += new /datum/gear_tweak/path(medhud)
/datum/gear/eyes/sechuds
@@ -105,6 +109,8 @@
sechud["HUDpatch, security"] = /obj/item/clothing/glasses/eyepatch/hud/security
sechud["prescription HUD, security"] = /obj/item/clothing/glasses/hud/security/prescription
sechud["visor sunglasses, security"] = /obj/item/clothing/glasses/sunglasses/sechud/aviator/visor
+ sechud["pincenez, security"] = /obj/item/clothing/glasses/sunglasses/sechud/aviator/pincenez
+ sechud["panto, security"] = /obj/item/clothing/glasses/sunglasses/sechud/aviator/panto
gear_tweaks += new /datum/gear_tweak/path(sechud)
/datum/gear/eyes/hudpatch
diff --git a/code/modules/client/preference_setup/loadout/items/general.dm b/code/modules/client/preference_setup/loadout/items/general.dm
index cf26f4c2973..631dbc7c758 100644
--- a/code/modules/client/preference_setup/loadout/items/general.dm
+++ b/code/modules/client/preference_setup/loadout/items/general.dm
@@ -247,6 +247,7 @@
banners["banner, Svarog"] = /obj/item/flag/svarog
banners["banner, Empyrean"] = /obj/item/flag/empyrean
banners["banner, Traditinalist Coalition"] = /obj/item/flag/traditionalist
+ banners["banner, Callisto"] = /obj/item/flag/callisto
gear_tweaks += new /datum/gear_tweak/path(banners)
/datum/gear/standard
@@ -331,6 +332,7 @@
flags["flag, Svarog"] = /obj/item/flag/svarog/l
flags["flag, Empyrean"] = /obj/item/flag/empyrean/l
flags["flag, Traditionalist Coalition"] = /obj/item/flag/traditionalist/l
+ flags["flag, Callisto"] = /obj/item/flag/callisto/l
gear_tweaks += new /datum/gear_tweak/path(flags)
/datum/gear/towel
@@ -424,3 +426,7 @@
instruments["violin"] = /obj/item/device/synthesized_instrument/violin
instruments["Omnitrumpet"] = /obj/item/device/synthesized_instrument/trumpet
gear_tweaks += new /datum/gear_tweak/path(instruments)
+
+/datum/gear/lore_radio
+ display_name = "analog radio"
+ path = /obj/item/lore_radio
diff --git a/code/modules/client/preference_setup/loadout/items/religion.dm b/code/modules/client/preference_setup/loadout/items/religion.dm
index 0b2e6ddad13..5c9bec30f8d 100644
--- a/code/modules/client/preference_setup/loadout/items/religion.dm
+++ b/code/modules/client/preference_setup/loadout/items/religion.dm
@@ -69,6 +69,11 @@
path = /obj/item/clothing/accessory/rosary
slot = slot_tie
+/datum/gear/religion/scapular
+ display_name = "scapular"
+ path = /obj/item/clothing/accessory/scapular
+ slot = slot_tie
+
/datum/gear/religion/crucifix
display_name = "crucifix selection"
description = "A selection of different crucifixes, commonly associated with Christianity."
diff --git a/code/modules/client/preference_setup/loadout/items/xeno/tajara.dm b/code/modules/client/preference_setup/loadout/items/xeno/tajara.dm
index 921db40c2ce..29c4d167147 100644
--- a/code/modules/client/preference_setup/loadout/items/xeno/tajara.dm
+++ b/code/modules/client/preference_setup/loadout/items/xeno/tajara.dm
@@ -116,7 +116,7 @@
display_name = "PRA medical coat"
path = /obj/item/clothing/suit/storage/toggle/labcoat/tajaran
whitelisted = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI)
- allowed_roles = list("Chief Medical Officer", "Physician", "Surgeon", "Chemist", "First Responder", "Medical Intern", "Medical Personnel")
+ allowed_roles = list("Chief Medical Officer", "Physician", "Surgeon", "Pharmacist", "First Responder", "Medical Intern", "Medical Personnel")
sort_category = "Xenowear - Tajara"
/datum/gear/suit/tajaran_surgeon
diff --git a/code/modules/client/preference_setup/loadout/items/xeno/unathi.dm b/code/modules/client/preference_setup/loadout/items/xeno/unathi.dm
index 998910b4d92..613266fa929 100644
--- a/code/modules/client/preference_setup/loadout/items/xeno/unathi.dm
+++ b/code/modules/client/preference_setup/loadout/items/xeno/unathi.dm
@@ -230,7 +230,7 @@
culture_restriction = list(/singleton/origin_item/culture/autakh)
sort_category = "Xenowear - Unathi"
cost = 2
- allowed_roles = list("Chief Medical Officer", "Physician", "Surgeon", "First Responder", "Medical Intern", "Psychiatrist", "Chemist", "Medical Personnel")
+ allowed_roles = list("Chief Medical Officer", "Physician", "Surgeon", "First Responder", "Medical Intern", "Psychiatrist", "Pharmacist", "Medical Personnel")
flags = GEAR_NO_SELECTION
/datum/gear/augment/autakh_security
diff --git a/code/modules/client/preference_setup/loadout/items/xeno/vaurca.dm b/code/modules/client/preference_setup/loadout/items/xeno/vaurca.dm
index a69846d5604..c9538eac121 100644
--- a/code/modules/client/preference_setup/loadout/items/xeno/vaurca.dm
+++ b/code/modules/client/preference_setup/loadout/items/xeno/vaurca.dm
@@ -283,7 +283,7 @@
path = /obj/item/organ/external/hand/right/vaurca/medical
whitelisted = list(SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_WORKER)
sort_category = "Xenowear - Vaurca"
- allowed_roles = list("Physician", "Surgeon", "First Responder", "Medical Intern", "Psychiatrist", "Chemist", "Medical Personnel")
+ allowed_roles = list("Physician", "Surgeon", "First Responder", "Medical Intern", "Psychiatrist", "Pharmacist", "Medical Personnel")
flags = GEAR_NO_SELECTION
/datum/gear/augment/vaurcamag
diff --git a/code/modules/clothing/factions/dominia.dm b/code/modules/clothing/factions/dominia.dm
index 70752785a27..6a2f80181bf 100644
--- a/code/modules/clothing/factions/dominia.dm
+++ b/code/modules/clothing/factions/dominia.dm
@@ -684,6 +684,9 @@
name = "retired tribunal investigator card"
desc = "A silver-gilded card given to those who have since retired from the Tribunal Investigations Constabulary, otherwise known as TIC. \
This card holds a sleek grey coloration strip, denoting the owner as having been a standard investigator."
+ desc_extended = "The day-to-day work of investigating religious crimes and violations falls upon the shoulders of the people who fill the \
+ ranks of the Tribunal Investigation Constabulary. These investigators often collaborate with and work alongside the nominally secular \
+ His Imperial Majesty's Constable Service (HIMCS), the Empire's main policing agency."
icon_state = "tic_card_ret"
item_state = "tic_card_ret"
@@ -691,6 +694,9 @@
name = "retired tribunal investigator card"
desc = "A silver-gilded card given to those who have since retired from the Tribunal Investigations Constabulary, otherwise known as TIC. \
This card holds a color strip of House Caladius, denoting the owner as a priest of the Tribunal."
+ desc_extended = "The day-to-day work of investigating religious crimes and violations falls upon the shoulders of the people who fill the \
+ ranks of the Tribunal Investigation Constabulary. These investigators often collaborate with and work alongside the nominally secular \
+ His Imperial Majesty's Constable Service (HIMCS), the Empire's main policing agency."
icon_state = "tic_card_ret_alt"
item_state = "tic_card_ret_alt"
diff --git a/code/modules/clothing/factions/einstein.dm b/code/modules/clothing/factions/einstein.dm
index 26746386549..af2236f452a 100644
--- a/code/modules/clothing/factions/einstein.dm
+++ b/code/modules/clothing/factions/einstein.dm
@@ -5,3 +5,16 @@
icon_state = "einstein"
item_state = "einstein"
contained_sprite = TRUE
+
+/obj/item/clothing/under/rank/einstein/synthetic
+ name = "einstein synthetic utility uniform"
+ desc = "A standardized uniform worn by Einstein Engines Synthetics in non-public-facing roles. \
+ The acronym \"EES\" is emblazoned on the chest and upper back."
+ desc_extended = "Light as air, electrically insulated, and specially fitted to ensure surgical, microelectronic, or \
+ what-have-you precision, this expensive multipurpose synthetic worker's outfit feels like wearing a breeze! \
+ Synthetics intended to be seen by outsiders to the corporation are likely to wear more conventional clothing instead."
+ icon = 'icons/clothing/under/uniforms/einstein.dmi'
+ icon_state = "ees_utility"
+ item_state = "ees_utility"
+ siemens_coefficient = 0.75
+ permeability_coefficient = 0.75
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 0e7e34e7f7e..b663c79581e 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -201,6 +201,18 @@ BLIND // can't see anything
icon_state = "visor_medhud"
item_state = "visor_medhud"
+/obj/item/clothing/glasses/hud/health/aviator/pincenez
+ name = "medical HUD pincenez"
+ desc = "Modified pincenez glasses with a toggled health HUD. Comes with bonus prescription overlay."
+ icon_state = "pincenez_med"
+ item_state = "pincenez_med"
+
+/obj/item/clothing/glasses/hud/health/aviator/panto
+ name = "medical HUD panto"
+ desc = "Modified panto glasses with a toggled health HUD. Comes with bonus prescription overlay."
+ icon_state = "panto_med"
+ item_state = "panto_med"
+
/obj/item/clothing/glasses/science
name = "science goggles"
desc = "Used to protect your eyes against harmful chemicals!"
@@ -480,13 +492,6 @@ BLIND // can't see anything
icon_state = "eyepatch_white"
item_state = "eyepatch_white"
-/obj/item/clothing/glasses/monocle
- name = "monocle"
- desc = "Such a dapper eyepiece!"
- icon_state = "monocle"
- item_state = "monocle"
- body_parts_covered = 0
-
/obj/item/clothing/glasses/material
name = "optical material scanner"
desc = "Very confusing glasses."
@@ -533,6 +538,7 @@ BLIND // can't see anything
playsound(src.loc, 'sound/weapons/blade_open.ogg', 50, 1)
var/obj/item/clothing/glasses/hud/health/prescription/P = new /obj/item/clothing/glasses/hud/health/prescription(user.loc)
P.glasses_type = src.type
+ P.color = src.color
user.put_in_hands(P)
qdel(src)
if(istype(attacking_item, /obj/item/clothing/glasses/hud/security))
@@ -542,6 +548,7 @@ BLIND // can't see anything
playsound(src.loc, 'sound/weapons/blade_open.ogg', 50, 1)
var/obj/item/clothing/glasses/hud/security/prescription/P = new /obj/item/clothing/glasses/hud/security/prescription(user.loc)
P.glasses_type = src.type
+ P.color = src.color
user.put_in_hands(P)
qdel(src)
@@ -563,25 +570,58 @@ BLIND // can't see anything
desc = "Made by Uncool. Co."
icon_state = "hipster_glasses"
item_state = "hipster_glasses"
+ build_from_parts = TRUE
+ worn_overlay = "lens"
/obj/item/clothing/glasses/threedglasses
- desc = "A long time ago, people used these glasses to makes images from screens threedimensional."
+ desc = "A long time ago, people used these glasses to makes images from screens three-dimensional."
name = "3D glasses"
icon_state = "3d"
item_state = "3d"
body_parts_covered = 0
+ build_from_parts = TRUE
+ worn_overlay = "lens"
/obj/item/clothing/glasses/regular/jamjar
name = "jamjar glasses"
desc = "Also known as Virginity Protectors."
icon_state = "jamjar_glasses"
item_state = "jamjar_glasses"
+ build_from_parts = TRUE
+ worn_overlay = "lens"
/obj/item/clothing/glasses/regular/circle
name = "circle glasses"
desc = "Why would you wear something so controversial yet so brave?"
icon_state = "circle_glasses"
item_state = "circle_glasses"
+ build_from_parts = TRUE
+ worn_overlay = "lens"
+
+/obj/item/clothing/glasses/regular/contacts
+ name = "contact lenses"
+ desc = "The benefits of sight without the troubles of glasses! Just don't drop them."
+ icon_state = "contacts"
+ item_state = "contacts"
+
+/obj/item/clothing/glasses/regular/pincenez
+ name = "pince-nez glasses"
+ desc = "Popularized in the 19th century by French people, evil scientists, and dead people in bathtubs."
+ icon_state = "pincenez"
+ item_state = "pincenez"
+
+/obj/item/clothing/glasses/regular/panto
+ name = "panto glasses"
+ desc = "So iconic. So generic. The monobloc chair of the glasses world."
+ icon_state = "panto"
+ item_state = "panto"
+
+/obj/item/clothing/glasses/monocle
+ name = "monocle"
+ desc = "Such a dapper eyepiece!"
+ icon_state = "monocle"
+ item_state = "monocle"
+ body_parts_covered = 0
/obj/item/clothing/glasses/aug/glasses
name = "corrective lenses"
@@ -592,6 +632,8 @@ BLIND // can't see anything
body_parts_covered = 0
canremove = FALSE
+// Sunglasses
+
/obj/item/clothing/glasses/sunglasses
name = "sunglasses"
desc = "Strangely ancient technology used to help provide rudimentary eye cover."
@@ -961,6 +1003,18 @@ BLIND // can't see anything
icon_state = "visor_sec"
item_state = "visor_sec"
+/obj/item/clothing/glasses/sunglasses/sechud/aviator/pincenez
+ name = "security HUD pincenez"
+ desc = "NanoTrasen security pincenez glasses that can be switched between HUD and flash protection modes. They come with a built-in prescription overlay."
+ icon_state = "pincenez_sec"
+ item_state = "pincenez_sec"
+
+/obj/item/clothing/glasses/sunglasses/sechud/aviator/panto
+ name = "security HUD panto"
+ desc = "NanoTrasen security panto glasses that can be switched between HUD and flash protection modes. They come with a built-in prescription overlay."
+ icon_state = "panto_sec"
+ item_state = "panto_sec"
+
/obj/item/clothing/glasses/thermal
name = "optical thermal scanner"
desc = "Thermals in the shape of glasses."
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index fd64b5a3876..c96d1257d4a 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -64,6 +64,7 @@
to_chat(user, SPAN_NOTICE("You detach a set of medical HUDs from your glasses."))
playsound(src.loc, 'sound/weapons/blade_close.ogg', 50, 1)
var/obj/item/clothing/glasses/regular/R = new glasses_type(user.loc)
+ R.color = src.color
user.put_in_hands(R)
var/obj/item/clothing/glasses/hud/health/H = new /obj/item/clothing/glasses/hud/health(user.loc)
user.put_in_hands(H)
@@ -119,6 +120,7 @@
to_chat(user, SPAN_NOTICE("You detach a set of security HUDs from your glasses."))
playsound(src.loc, 'sound/weapons/blade_close.ogg', 50, 1)
var/obj/item/clothing/glasses/regular/R = new glasses_type(user.loc)
+ R.color = src.color
user.put_in_hands(R)
var/obj/item/clothing/glasses/hud/security/S = new /obj/item/clothing/glasses/hud/security(user.loc)
user.put_in_hands(S)
diff --git a/code/modules/clothing/spacesuits/rig/modules/computer.dm b/code/modules/clothing/spacesuits/rig/modules/computer.dm
index 966fe31c21b..2f1496f8682 100644
--- a/code/modules/clothing/spacesuits/rig/modules/computer.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/computer.dm
@@ -23,7 +23,7 @@
to_chat(usr, SPAN_WARNING("Your module is not installed in a hardsuit."))
return
- module.holder.ui_interact(usr, nano_state = contained_state)
+ module.holder.ui_interact(usr, nano_state = GLOB.contained_state)
/mob
var/get_rig_stats = 0
diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm
index 028166cb990..6b5798ffb2e 100644
--- a/code/modules/clothing/spacesuits/rig/rig.dm
+++ b/code/modules/clothing/spacesuits/rig/rig.dm
@@ -489,7 +489,7 @@
cell.use(cost*10)
return 1
-/obj/item/rig/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/nano_state = inventory_state)
+/obj/item/rig/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/nano_state = GLOB.inventory_state)
if(!user)
return
diff --git a/code/modules/clothing/suits/modular_armor.dm b/code/modules/clothing/suits/modular_armor.dm
index cb7f39c8c25..12fd5c72038 100644
--- a/code/modules/clothing/suits/modular_armor.dm
+++ b/code/modules/clothing/suits/modular_armor.dm
@@ -534,8 +534,7 @@
/obj/item/clothing/accessory/flagpatch/europa
name = "europa flagpatch"
- desc = "A flagpatch representing Europa. It is a common tradition that no one can place the origin of to make these patches out of waterproof fabric then carry \
- them on a dive before displaying them on one's clothes in order to gain good luck."
+ desc = "A flagpatch representing Europa. It is a common tradition, which nobody really knows the origin of, to make these patches out of waterproof fabric then carry them on a dive, before displaying them on one's own clothes in order to gain good luck."
icon_state = "flagpatch_europa"
item_state = "flagpatch_europa"
diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index 62e339c751d..4792557d707 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -307,71 +307,6 @@
stet.mode_switch(usr)
-//Religious items
-/obj/item/clothing/accessory/rosary
- name = "rosary"
- desc = "A form of prayer psalter used in the Catholic Church, with a string of beads attached to it."
- icon = 'icons/obj/clothing/chaplain.dmi'
- icon_state = "rosary"
- overlay_state = "rosary"
- flippable = 1
-
- slot_flags = SLOT_BELT | SLOT_TIE
-
- drop_sound = 'sound/items/drop/accessory.ogg'
- pickup_sound = 'sound/items/pickup/accessory.ogg'
-
-/obj/item/clothing/accessory/crucifix
- name = "crucifix"
- desc = "A small cross on a piece of string. Commonly associated with the Christian faith, it is a main symbol of this religion."
- icon = 'icons/clothing/accessories/crucifix.dmi'
- contained_sprite = TRUE
-
-/obj/item/clothing/accessory/crucifix/gold
- name = "gold crucifix"
- desc = "A small, gold cross on a piece of string. Commonly associated with the Christian faith, it is a main symbol of this religion."
- icon_state = "golden_crucifix"
- item_state = "golden_crucifix"
-
-/obj/item/clothing/accessory/crucifix/gold/saint_peter
- name = "gold Saint Peter crucifix"
- desc = "A small, gold cross on a piece of string. Being inverted and thus upside down marks it as the cross of Saint Peter, a historic Christian symbol \
- which has been re-purposed as a satanic symbol since the 21st century as well."
- icon_state = "golden_crucifix_ud"
- item_state = "golden_crucifix_ud"
-
-/obj/item/clothing/accessory/crucifix/silver
- name = "silver crucifix"
- desc = "A small, silver cross on a piece of string. Commonly associated with the Christian faith, it is a main symbol of this religion."
- icon_state = "silver_crucifix"
- item_state = "silver_crucifix"
-
-/obj/item/clothing/accessory/crucifix/silver/saint_peter
- name = "silver Saint Peter crucifix"
- desc = "A small, silver cross on a piece of string. Being inverted and thus upside down marks it as the cross of Saint Peter, a historic Christian symbol \
- which has been re-purposed as a satanic symbol since the 21st century as well."
- icon_state = "silver_crucifix_ud"
- item_state = "silver_crucifix_ud"
-
-/obj/item/clothing/accessory/assunzione
- name = "luceian amulet"
- desc = "A common symbol of the Luceian faith abroad, this amulet featuring the religion's all-seeing eye and eight-pointed crest \
- seems to be made of real gold and gemstones. While not as critical to faithful abroad as a warding sphere, it is considered good form \
- to ensure one's amulet is well-maintained."
- icon = 'icons/clothing/accessories/assunzione_amulet.dmi'
- item_state = "assunzione_amulet"
- icon_state = "assunzione_amulet"
- contained_sprite = TRUE
-
-/obj/item/clothing/accessory/tallit
- name = "tallit"
- desc = "A tallit is a fringed garment worn as a prayer shawl by religious Jews. \
- The tallit has special twined and knotted fringes known as tzitzit attached to its four corners."
- icon = 'icons/clothing/accessories/Tallit.dmi'
- item_state = "tallit"
- icon_state = "tallit"
- contained_sprite = TRUE
-
/obj/item/clothing/accessory/suspenders
name = "suspenders"
desc = "They suspend the illusion of the mime's play."
diff --git a/code/modules/clothing/under/accessories/religious.dm b/code/modules/clothing/under/accessories/religious.dm
new file mode 100644
index 00000000000..868e054b7dd
--- /dev/null
+++ b/code/modules/clothing/under/accessories/religious.dm
@@ -0,0 +1,76 @@
+//Religious items
+/obj/item/clothing/accessory/rosary
+ name = "rosary"
+ desc = "A form of prayer psalter used in the Catholic Church, with a string of beads attached to it."
+ icon = 'icons/obj/clothing/accessory/religious.dmi'
+ icon_state = "rosary"
+ overlay_state = "rosary"
+ flippable = 1
+
+ slot_flags = SLOT_BELT | SLOT_TIE
+
+ drop_sound = 'sound/items/drop/accessory.ogg'
+ pickup_sound = 'sound/items/pickup/accessory.ogg'
+
+/obj/item/clothing/accessory/crucifix
+ name = "crucifix"
+ desc = "A small cross on a piece of string. Commonly associated with the Christian faith, it is a main symbol of this religion."
+ icon = 'icons/obj/clothing/accessory/religious.dmi'
+ contained_sprite = TRUE
+ drop_sound = 'sound/items/drop/accessory.ogg'
+ pickup_sound = 'sound/items/pickup/accessory.ogg'
+
+/obj/item/clothing/accessory/crucifix/gold
+ name = "gold crucifix"
+ desc = "A small, gold cross on a piece of string. Commonly associated with the Christian faith, it is a main symbol of this religion."
+ icon_state = "golden_crucifix"
+ item_state = "golden_crucifix"
+
+/obj/item/clothing/accessory/crucifix/gold/saint_peter
+ name = "gold Saint Peter crucifix"
+ desc = "A small, gold cross on a piece of string. Being inverted and thus upside down marks it as the cross of Saint Peter, a historic Christian symbol \
+ which has been re-purposed as a satanic symbol since the 21st century as well."
+ icon_state = "golden_crucifix_ud"
+ item_state = "golden_crucifix_ud"
+
+/obj/item/clothing/accessory/crucifix/silver
+ name = "silver crucifix"
+ desc = "A small, silver cross on a piece of string. Commonly associated with the Christian faith, it is a main symbol of this religion."
+ icon_state = "silver_crucifix"
+ item_state = "silver_crucifix"
+
+/obj/item/clothing/accessory/crucifix/silver/saint_peter
+ name = "silver Saint Peter crucifix"
+ desc = "A small, silver cross on a piece of string. Being inverted and thus upside down marks it as the cross of Saint Peter, a historic Christian symbol \
+ which has been re-purposed as a satanic symbol since the 21st century as well."
+ icon_state = "silver_crucifix_ud"
+ item_state = "silver_crucifix_ud"
+
+/obj/item/clothing/accessory/scapular
+ name = "scapular"
+ desc = "A Christian garment suspended from the shoulders. As an object of popular piety, \
+ it serves to remind the wearers of their commitment to live a Christian life."
+ icon = 'icons/obj/clothing/accessory/religious.dmi'
+ icon_state = "scapular"
+ item_state = "scapular"
+
+/obj/item/clothing/accessory/assunzione
+ name = "luceian amulet"
+ desc = "A common symbol of the Luceian faith abroad, this amulet featuring the religion's all-seeing eye and eight-pointed crest \
+ seems to be made of real gold and gemstones. While not as critical to faithful abroad as a warding sphere, it is considered good form \
+ to ensure one's amulet is well-maintained."
+ icon = 'icons/obj/clothing/accessory/religious.dmi'
+ item_state = "assunzione_amulet"
+ icon_state = "assunzione_amulet"
+ contained_sprite = TRUE
+ drop_sound = 'sound/items/drop/accessory.ogg'
+ pickup_sound = 'sound/items/pickup/accessory.ogg'
+
+/obj/item/clothing/accessory/tallit
+ name = "tallit"
+ desc = "A tallit is a fringed garment worn as a prayer shawl by religious Jews. \
+ The tallit has special twined and knotted fringes known as tzitzit attached to its four corners."
+ icon = 'icons/obj/clothing/accessory/religious.dmi'
+ item_state = "tallit"
+ icon_state = "tallit"
+ contained_sprite = TRUE
diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm
index f72917bc519..876b11f30e8 100644
--- a/code/modules/clothing/under/jobs/civilian.dm
+++ b/code/modules/clothing/under/jobs/civilian.dm
@@ -93,6 +93,13 @@
icon_state = "orion_liaison"
item_state = "orion_liaison"
+/obj/item/clothing/under/rank/liaison/einstein
+ name = "einstein corporate liaison uniform"
+ desc_extended = "If you're seeing this outfit in an SCC facility, something somewhere has gone terribly, terribly wrong."
+ icon = 'icons/clothing/under/uniforms/einstein.dmi'
+ icon_state = "ee_liaison"
+ item_state = "ee_liaison"
+
// Janitor
/obj/item/clothing/under/rank/janitor
name = "janitor's jumpsuit"
@@ -275,6 +282,14 @@
icon_state = "orion_machinist"
item_state = "orion_machinist"
+/obj/item/clothing/under/rank/machinist/einstein
+ name = "einstein machinist's jumpsuit"
+ desc_extended = "Usually, but not necessarily worn by Einstein's Terranaeus Diagnostics subsidiary. Subsidiary or not, \
+ whoever wears this uniform probably knows a lot about putting guns and cameras on robots."
+ icon = 'icons/clothing/under/uniforms/einstein.dmi'
+ icon_state = "ee_machinist"
+ item_state = "ee_machinist"
+
/obj/item/clothing/under/rank/captain/hephaestus
name = "hephaestus captain's jumpsuit"
desc = "It's a green-and-orange jumpsuit with some gold markings denoting the rank of \"Captain\" used by Hephaestus Industries."
@@ -284,3 +299,12 @@
item_state = "heph_captain"
worn_state = "heph_captain"
contained_sprite = TRUE
+
+/obj/item/clothing/under/rank/captain/einstein
+ name = "einstein captain's jumpsuit"
+ desc = "It's a grey-green jumpsuit with some gold markings denoting the rank of \"Captain\" used by Einstein Engines."
+ desc_extended = "Any similarities to the captain's jumpsuits worn in the SCC are purely coincidental. Honest!"
+ icon = 'icons/clothing/under/uniforms/einstein.dmi'
+ icon_state = "ee_captain"
+ item_state = "ee_captain"
+ contained_sprite = TRUE
diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm
index 9decbeaabd5..21143cfdf76 100644
--- a/code/modules/clothing/under/jobs/engineering.dm
+++ b/code/modules/clothing/under/jobs/engineering.dm
@@ -48,6 +48,15 @@
icon_state = "zav_engineer"
item_state = "zav_engineer"
+/obj/item/clothing/under/rank/engineer/einstein
+ name = "einstein engineer's jumpsuit"
+ desc = "It's a grey-green high visibility jumpsuit worn by engineers. It has minor radiation shielding."
+ desc_extended = "Usually, but not necessarily worn by Einstein's Taipei Engineering Industrial subsidiary. Subsidiary or not, \
+ whoever wears this uniform probably knows a lot about the latest warp drives."
+ icon = 'icons/clothing/under/uniforms/einstein.dmi'
+ icon_state = "ee_engineer"
+ item_state = "ee_engineer"
+
/obj/item/clothing/under/rank/engineer/apprentice
name = "engineering apprentice's jumpsuit"
desc = "It's a noticeably cheaper high visibility jumpsuit worn by engineering apprentices. It has minor radiation shielding."
diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm
index 1e3c6374b74..9a591eeae56 100644
--- a/code/modules/clothing/under/jobs/medsci.dm
+++ b/code/modules/clothing/under/jobs/medsci.dm
@@ -33,6 +33,14 @@
icon_state = "zav_scientist"
item_state = "zav_scientist"
+/obj/item/clothing/under/rank/scientist/einstein
+ name = "einstein scientist's jumpsuit"
+ desc_extended = "Doing away with the hideous purple of the SCC's science uniforms in favor of yet more dull greens, \
+ Einstein Engines' science uniforms push new frontiers of style just as their wearers push everything else."
+ icon = 'icons/clothing/under/uniforms/einstein.dmi'
+ icon_state = "ee_scientist"
+ item_state = "ee_scientist"
+
// Xenobotanist
/obj/item/clothing/under/rank/scientist/botany
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index 55a45334223..9a3f7bdb96b 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -108,6 +108,14 @@
item_state = "heph_security"
contained_sprite = TRUE
+/obj/item/clothing/under/rank/security/einstein
+ name = "einstein security officer's uniform"
+ desc_extended = "Even the Chainlink's hated enemy puts their security officers in drab officewear. Rumors that these are woven \
+ from Skrellian supermaterials are likely false."
+ icon = 'icons/clothing/under/uniforms/einstein.dmi'
+ icon_state = "ee_officer"
+ item_state = "ee_officer"
+
/obj/item/clothing/under/rank/warden
name = "warden's uniform"
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection."
diff --git a/code/modules/cooking/recipes/cultural/recipes_human.dm b/code/modules/cooking/recipes/cultural/recipes_human.dm
index 6bede37d2c2..c958f420e5a 100644
--- a/code/modules/cooking/recipes/cultural/recipes_human.dm
+++ b/code/modules/cooking/recipes/cultural/recipes_human.dm
@@ -337,3 +337,12 @@
reagents = list(/singleton/reagent/nutriment/protein/egg = 6, /singleton/reagent/drink/ice = 5, /singleton/reagent/drink/milk/cream = 5, /singleton/reagent/sugar = 10)
result = /obj/item/reagent_containers/food/snacks/sliceable/lady_lulaine
reagent_mix = RECIPE_REAGENT_REPLACE //Simplify and replace
+
+/singleton/recipe/pazillo
+ appliance = OVEN
+ fruit = list ("tomato" = 1 , "chickpeas" = 1, "onion" = 1)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/sliceable/flatdough
+ )
+ result = /obj/item/reagent_containers/food/snacks/pazillo
+ reagent_mix = RECIPE_REAGENT_REPLACE //Simplify and replace so it's not full of juice
diff --git a/code/modules/cooking/recipes/cultural/recipes_unathi.dm b/code/modules/cooking/recipes/cultural/recipes_unathi.dm
index 3f8b93c5cc8..0753a09113d 100644
--- a/code/modules/cooking/recipes/cultural/recipes_unathi.dm
+++ b/code/modules/cooking/recipes/cultural/recipes_unathi.dm
@@ -177,3 +177,13 @@
/obj/item/reagent_containers/food/snacks/egg
)
result = /obj/item/reagent_containers/food/snacks/aghrasshcake
+
+/singleton/recipe/eyebowl
+ appliance = SAUCEPAN | POT
+ fruit = list("aghrassh nut" = 1, "tomato" = 1)
+ reagents = list(/singleton/reagent/blackpepper = 2, /singleton/reagent/nutriment/protein/egg = 6)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/meat
+ )
+ result = /obj/item/reagent_containers/food/snacks/sliceable/eyebowl
+ reagent_mix = RECIPE_REAGENT_REPLACE
diff --git a/code/modules/cooking/recipes/recipes_baked.dm b/code/modules/cooking/recipes/recipes_baked.dm
index f3525f4b168..ea6edb8a276 100644
--- a/code/modules/cooking/recipes/recipes_baked.dm
+++ b/code/modules/cooking/recipes/recipes_baked.dm
@@ -66,3 +66,33 @@
appliance = OVEN
items = list(/obj/item/reagent_containers/food/snacks/donkpocket/takoyaki)
result = /obj/item/reagent_containers/food/snacks/donkpocket/takoyaki/warm
+
+/singleton/recipe/meat_lasagna_tray
+ appliance = OVEN
+ fruit = list("tomato" = 3)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/reagent_containers/food/snacks/meat,
+ /obj/item/reagent_containers/food/snacks/meat,
+ /obj/item/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/reagent_containers/food/snacks/sliceable/meat_lasagna_tray
+ reagent_mix = RECIPE_REAGENT_REPLACE //Replacing the ingredients and filling in a bit extra for simplicity's sake
+
+/singleton/recipe/veggie_lasagna_tray
+ appliance = OVEN
+ fruit = list("tomato" = 3, "eggplant" = 1, "onion" = 1, "mushroom" = 2)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/reagent_containers/food/snacks/cheesewedge,
+ /obj/item/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/reagent_containers/food/snacks/sliceable/veggie_lasagna_tray
+ reagent_mix = RECIPE_REAGENT_REPLACE //Replacing the ingredients and filling in a bit extra for simplicity's sake
diff --git a/code/modules/cooking/recipes/recipes_breads.dm b/code/modules/cooking/recipes/recipes_breads.dm
index 07bf88fb1dd..034f5c55646 100644
--- a/code/modules/cooking/recipes/recipes_breads.dm
+++ b/code/modules/cooking/recipes/recipes_breads.dm
@@ -234,13 +234,13 @@
)
result = /obj/item/reagent_containers/food/snacks/pbtoast
-/singleton/recipe/NTellabread
+/singleton/recipe/ntella_bread
appliance = MIX
reagents = list(/singleton/reagent/nutriment/choconutspread = 5)
items = list(
/obj/item/reagent_containers/food/snacks/breadslice
)
- result = /obj/item/reagent_containers/food/snacks/NTellabread
+ result = /obj/item/reagent_containers/food/snacks/ntella_bread
/singleton/recipe/slimetoast
appliance = SKILLET
diff --git a/code/modules/cooking/recipes/recipes_meat.dm b/code/modules/cooking/recipes/recipes_meat.dm
index 44cabb4530c..46ae244a29a 100644
--- a/code/modules/cooking/recipes/recipes_meat.dm
+++ b/code/modules/cooking/recipes/recipes_meat.dm
@@ -102,18 +102,6 @@
result = /obj/item/reagent_containers/food/snacks/nugget
result_quantity = 4
-/singleton/recipe/lasagna
- appliance = OVEN
- fruit = list("tomato" = 2, "eggplant" = 1)
- items = list(
- /obj/item/reagent_containers/food/snacks/sliceable/flatdough,
- /obj/item/reagent_containers/food/snacks/sliceable/flatdough,
- /obj/item/reagent_containers/food/snacks/meat,
- /obj/item/reagent_containers/food/snacks/meat
- )
- result = /obj/item/reagent_containers/food/snacks/lasagna
- reagent_mix = RECIPE_REAGENT_REPLACE
-
/singleton/recipe/donerkebab
fruit = list("tomato" = 1, "cabbage" = 1)
reagents = list(/singleton/reagent/sodiumchloride = 1, /singleton/reagent/spacespice = 1)
diff --git a/code/modules/cooking/recipes/recipes_pastries.dm b/code/modules/cooking/recipes/recipes_pastries.dm
index 049d6ca657a..5ed98b3a524 100644
--- a/code/modules/cooking/recipes/recipes_pastries.dm
+++ b/code/modules/cooking/recipes/recipes_pastries.dm
@@ -29,14 +29,18 @@
/singleton/recipe/pancakes
appliance = SKILLET
+ reagents = list(/singleton/reagent/sugar = 5)
items = list(
/obj/item/reagent_containers/food/snacks/sliceable/flatdough
- )
+ )
result = /obj/item/reagent_containers/food/snacks/pancakes
- result_quantity = 1
-/singleton/recipe/pancakes/berry
+/singleton/recipe/pancakes/berry //alternate way to get berry pancakes if you want to use actual berries and not syrup.
fruit = list("berries" = 1)
+ reagents = list(/singleton/reagent/sugar = 5)
+ items = list(
+ /obj/item/reagent_containers/food/snacks/sliceable/flatdough
+ )
result = /obj/item/reagent_containers/food/snacks/pancakes/berry
////////////////////////////////////////////WAFFLES////////////////////////////////////////////
@@ -198,7 +202,7 @@
fruit = list("apple" = 2)
result = /obj/item/reagent_containers/food/snacks/sliceable/cake/apple
-/singleton/recipe/cake/NTellacheesecake
+/singleton/recipe/cake/ntella_cheesecake
reagents = list(/singleton/reagent/drink/milk = 5, /singleton/reagent/nutriment/choconutspread = 15, /singleton/reagent/sugar = 10)
items = list(
/obj/item/reagent_containers/food/snacks/cheesewedge,
@@ -209,7 +213,12 @@
/obj/item/reagent_containers/food/snacks/cookiesnack,
/obj/item/reagent_containers/food/snacks/cookiesnack //Oreo cookies aren't a thing in the game yet but if/when they're made, please replace this with them!
)
- result = /obj/item/reagent_containers/food/snacks/sliceable/cake/NTellacheesecake
+ result = /obj/item/reagent_containers/food/snacks/sliceable/cake/ntella_cheesecake
+
+/singleton/recipe/cake/starcake
+ fruit = list("orange" = 1)
+ reagents = list(/singleton/reagent/nutriment/flour = 10, /singleton/reagent/sugar = 15, /singleton/reagent/nutriment/coco = 10, /singleton/reagent/drink/milk/cream = 5, /singleton/reagent/nutriment/protein/egg = 6)
+ result = /obj/item/reagent_containers/food/snacks/sliceable/cake/starcake
//Predesigned pies
//=======================
diff --git a/code/modules/effects/map_effects/window_spawner.dm b/code/modules/effects/map_effects/window_spawner.dm
index f303a818ee5..049bf4a1345 100644
--- a/code/modules/effects/map_effects/window_spawner.dm
+++ b/code/modules/effects/map_effects/window_spawner.dm
@@ -13,6 +13,7 @@
var/spawn_grille = FALSE // For electrified windows.
var/spawn_firedoor = FALSE
var/activated
+ atmos_canpass = CANPASS_NEVER
/obj/effect/map_effect/window_spawner/CanPass() // Stops ZAS expanding zones past us, the windows will block the zone anyway.
return FALSE
diff --git a/code/modules/ghostroles/spawnpoint/spawnpoint.dm b/code/modules/ghostroles/spawnpoint/spawnpoint.dm
index dda4b375883..4cac828db12 100644
--- a/code/modules/ghostroles/spawnpoint/spawnpoint.dm
+++ b/code/modules/ghostroles/spawnpoint/spawnpoint.dm
@@ -91,7 +91,7 @@
return data
/obj/effect/ghostspawpoint/ui_state(mob/user)
- return observer_state
+ return GLOB.observer_state
/obj/effect/ghostspawpoint/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
diff --git a/code/modules/heavy_vehicle/mech_interaction.dm b/code/modules/heavy_vehicle/mech_interaction.dm
index c8b4f707e68..6192d774b1a 100644
--- a/code/modules/heavy_vehicle/mech_interaction.dm
+++ b/code/modules/heavy_vehicle/mech_interaction.dm
@@ -425,7 +425,7 @@
if(MC && MC.brute_damage)
damaged_parts += MC
var/obj/item/mech_component/to_fix = tgui_input_list(user, "Which component would you like to fix?", "Fix Component", damaged_parts)
- if(CanInteract(user, physical_state) && !QDELETED(to_fix) && (to_fix in src) && to_fix.brute_damage)
+ if(CanInteract(user, GLOB.physical_state) && !QDELETED(to_fix) && (to_fix in src) && to_fix.brute_damage)
to_fix.repair_brute_generic(attacking_item, user)
return
else if(attacking_item.iscoil())
@@ -436,7 +436,7 @@
if(MC && MC.burn_damage)
damaged_parts += MC
var/obj/item/mech_component/to_fix = tgui_input_list(user, "Which component would you like to fix?", "Fix Component", damaged_parts)
- if(CanInteract(user, physical_state) && !QDELETED(to_fix) && (to_fix in src) && to_fix.burn_damage)
+ if(CanInteract(user, GLOB.physical_state) && !QDELETED(to_fix) && (to_fix in src) && to_fix.burn_damage)
to_fix.repair_burn_generic(attacking_item, user)
return
else if(attacking_item.iscrowbar())
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index 3c9f811ae87..f0713a60d85 100644
--- a/code/modules/integrated_electronics/core/assemblies.dm
+++ b/code/modules/integrated_electronics/core/assemblies.dm
@@ -70,7 +70,7 @@
return implant
/obj/item/device/electronic_assembly/proc/check_interactivity(mob/user)
- if(!CanInteract(user, physical_state))
+ if(!CanInteract(user, GLOB.physical_state))
return 0
return 1
diff --git a/code/modules/integrated_electronics/core/device.dm b/code/modules/integrated_electronics/core/device.dm
index b96a3815d57..2b3c6ee55d6 100644
--- a/code/modules/integrated_electronics/core/device.dm
+++ b/code/modules/integrated_electronics/core/device.dm
@@ -99,6 +99,6 @@
. = ..()
/obj/item/device/electronic_assembly/device/check_interactivity(mob/user)
- if(!CanInteract(user, state = deep_inventory_state))
+ if(!CanInteract(user, state = GLOB.deep_inventory_state))
return 0
return 1
diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm
index 00386526209..3edf6478e2b 100644
--- a/code/modules/integrated_electronics/core/integrated_circuit.dm
+++ b/code/modules/integrated_electronics/core/integrated_circuit.dm
@@ -63,7 +63,7 @@ a creative player the means to solve many problems. Circuits are held inside an
/obj/item/integrated_circuit/proc/check_interactivity(mob/user)
if(assembly)
return assembly.check_interactivity(user)
- else if(!CanInteract(user, physical_state))
+ else if(!CanInteract(user, GLOB.physical_state))
return 0
return 1
@@ -180,7 +180,7 @@ a creative player the means to solve many problems. Circuits are held inside an
B.set_content(HTML.Join())
B.open()
-/obj/item/integrated_circuit/Topic(href, href_list, state = always_state)
+/obj/item/integrated_circuit/Topic(href, href_list, state = GLOB.always_state)
if(!check_interactivity(usr))
return
if (assembly && !assembly.opened)
diff --git a/code/modules/integrated_electronics/core/special_pins/list_pin.dm b/code/modules/integrated_electronics/core/special_pins/list_pin.dm
index a7610df5edd..c4f9f67a145 100644
--- a/code/modules/integrated_electronics/core/special_pins/list_pin.dm
+++ b/code/modules/integrated_electronics/core/special_pins/list_pin.dm
@@ -132,7 +132,7 @@
/datum/integrated_io/list/display_pin_type()
return IC_FORMAT_LIST
-/datum/integrated_io/list/Topic(href, href_list, state = always_state)
+/datum/integrated_io/list/Topic(href, href_list, state = GLOB.always_state)
if(!holder.check_interactivity(usr))
return
if(..())
diff --git a/code/modules/integrated_electronics/core/tools.dm b/code/modules/integrated_electronics/core/tools.dm
index c40567e7d25..32d2f9b4b33 100644
--- a/code/modules/integrated_electronics/core/tools.dm
+++ b/code/modules/integrated_electronics/core/tools.dm
@@ -117,7 +117,7 @@
/obj/item/device/integrated_electronics/debugger/attack_self(mob/user)
var/type_to_use = input("Please choose a type to use.","[src] type setting") as null|anything in list("string","number","ref", "null")
- if(!CanInteract(user, physical_state))
+ if(!CanInteract(user, GLOB.physical_state))
return
var/new_data = null
@@ -125,13 +125,13 @@
if("string")
accepting_refs = 0
new_data = sanitize(input("Now type in a string.","[src] string writing") as null|text, MAX_MESSAGE_LEN, 1, 0, 1)
- if(istext(new_data) && CanInteract(user, physical_state))
+ if(istext(new_data) && CanInteract(user, GLOB.physical_state))
data_to_write = new_data
to_chat(user, "You set \the [src]'s memory to \"[new_data]\".")
if("number")
accepting_refs = 0
new_data = input("Now type in a number.","[src] number writing") as null|num
- if(isnum(new_data) && CanInteract(user, physical_state))
+ if(isnum(new_data) && CanInteract(user, GLOB.physical_state))
data_to_write = new_data
to_chat(user, "You set \the [src]'s memory to [new_data].")
if("ref")
diff --git a/code/modules/integrated_electronics/subtypes/memory.dm b/code/modules/integrated_electronics/subtypes/memory.dm
index a21d459f10b..086505bf726 100644
--- a/code/modules/integrated_electronics/subtypes/memory.dm
+++ b/code/modules/integrated_electronics/subtypes/memory.dm
@@ -91,7 +91,7 @@
/obj/item/integrated_circuit/memory/constant/attack_self(mob/user)
var/datum/integrated_io/O = outputs[1]
var/type_to_use = input("Please choose a type to use.","[src] type setting") as null|anything in list("string","number","ref", "null")
- if(!CanInteract(user, physical_state))
+ if(!CanInteract(user, GLOB.physical_state))
return
var/new_data = null
@@ -99,13 +99,13 @@
if("string")
accepting_refs = 0
new_data = sanitize(input("Now type in a string.","[src] string writing") as null|text, MAX_MESSAGE_LEN, 1, 0, 1)
- if(istext(new_data) && CanInteract(user, physical_state))
+ if(istext(new_data) && CanInteract(user, GLOB.physical_state))
data = new_data
to_chat(user, "You set \the [src]'s memory to [O.display_data(data)].")
if("number")
accepting_refs = 0
new_data = input("Now type in a number.","[src] number writing") as null|num
- if(isnum(new_data) && CanInteract(user, physical_state))
+ if(isnum(new_data) && CanInteract(user, GLOB.physical_state))
data = new_data
to_chat(user, "You set \the [src]'s memory to [O.display_data(data)].")
if("ref")
diff --git a/code/modules/item_worth/reagents.dm b/code/modules/item_worth/reagents.dm
index fec650bc5e3..b8580501ef4 100644
--- a/code/modules/item_worth/reagents.dm
+++ b/code/modules/item_worth/reagents.dm
@@ -135,7 +135,7 @@
/singleton/reagent/drink/milkshake
value = 0.12
-/singleton/reagent/drink/NTellamilkshake
+/singleton/reagent/drink/ntella_milkshake
value = 0.14
/singleton/reagent/drink/shake_caramel
@@ -168,7 +168,7 @@
/singleton/reagent/drink/shake_choco_mint
value = 0.13
-/singleton/reagent/drink/NTellahotchocolate
+/singleton/reagent/drink/ntella_hot_chocolate
value = 0.13
/singleton/reagent/drink/rewriter
diff --git a/code/modules/lock/key.dm b/code/modules/lock/key.dm
index dc995534396..d0360ce6239 100644
--- a/code/modules/lock/key.dm
+++ b/code/modules/lock/key.dm
@@ -28,3 +28,36 @@
to_chat(user, "\The [src] crumbles in your hands!")
qdel(src)
return ..()
+
+/obj/item/key/bike
+ name = "bike key"
+ desc = "Used to start a bike."
+ icon_state = "key_tag_gray"
+
+/obj/item/key/bike/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
+ . = ..()
+ if(distance <= 1)
+ . += "\The [src] has a small tag attached to it, written on it is '[key_data]'."
+
+/obj/item/key/bike/sport
+ name = "sports bike key"
+ desc = "Used to start a sporty, fast bike."
+ icon_state = "key_tag_red"
+
+/obj/item/key/bike/sport/Initialize(mapload, ...)
+ . = ..()
+ icon_state = pick("key_tag_red", "key_tag_blue")
+
+/obj/item/key/bike/moped
+ name = "moped key"
+ desc = "Used to start a cheap moped bike."
+ icon_state = "key_tag_green"
+
+/obj/item/key/bike/moped/Initialize(mapload, ...)
+ . = ..()
+ icon_state = pick("key_tag_gray", "key_tag_green", "key_tag_purple")
+
+/obj/item/key/bike/police
+ name = "police bike key"
+ desc = "Used to start a police bike."
+ icon_state = "key_tag_police"
diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm
index 36042c0a8f3..8a6f8e72e4d 100644
--- a/code/modules/mining/machine_stacking.dm
+++ b/code/modules/mining/machine_stacking.dm
@@ -63,7 +63,7 @@
add_fingerprint(user)
ui_interact(user)
-/obj/machinery/mineral/stacking_unit_console/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, datum/ui_state/state = default_state)
+/obj/machinery/mineral/stacking_unit_console/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, datum/ui_state/state = GLOB.default_state)
if(!setup_machine(user))
return
diff --git a/code/modules/mob/abstract/new_player/login.dm b/code/modules/mob/abstract/new_player/login.dm
index 81727ed2686..e357ce8d237 100644
--- a/code/modules/mob/abstract/new_player/login.dm
+++ b/code/modules/mob/abstract/new_player/login.dm
@@ -13,10 +13,8 @@
mind.active = 1
mind.current = src
- loc = null
-
my_client = client
- set_sight(sight|SEE_TURFS)
+ set_sight(BLIND)
GLOB.player_list |= src
client.playtitlemusic()
diff --git a/code/modules/mob/abstract/new_player/menu.dm b/code/modules/mob/abstract/new_player/menu.dm
index d26c90929e3..5eba562c651 100644
--- a/code/modules/mob/abstract/new_player/menu.dm
+++ b/code/modules/mob/abstract/new_player/menu.dm
@@ -1,7 +1,7 @@
//MENU SYSTEM BY BIGRAGE, some awful code, some awful design, all as you love //Code edits/additions by AshtonFox
/mob/abstract/new_player/instantiate_hud(datum/hud/HUD, ui_style, ui_color, ui_alpha)
- HUD.new_player_hud(ui_style, ui_color, ui_alpha)
HUD.mymob = src
+ HUD.new_player_hud(ui_style, ui_color, ui_alpha)
/datum/hud/new_player
hud_shown = TRUE
@@ -9,6 +9,8 @@
hotkey_ui_hidden = FALSE
/datum/hud/proc/new_player_hud(var/ui_style='icons/mob/screen/white.dmi', var/ui_color = "#fffffe", var/ui_alpha = 255)
+ SHOULD_NOT_SLEEP(TRUE)
+
adding = list()
var/obj/screen/using
@@ -107,7 +109,9 @@
return
/obj/screen/new_player/title/proc/Update()
- if(QDELING(src))
+ SHOULD_NOT_SLEEP(TRUE)
+
+ if(QDELETED(src))
return
if(!SSatlas.current_map.lobby_transitions && SSatlas.current_sector.sector_lobby_transitions)
@@ -119,17 +123,13 @@
lobby_index = 1
animate(src, alpha = 0, time = 1 SECOND)
animate(alpha = 255, icon_state = SSatlas.current_map.lobby_screens[lobby_index], time = 1 SECOND)
- if(!MC_RUNNING())
- spawn(SSatlas.current_map.lobby_transitions)
- Update()
- else
- refresh_timer_id = addtimer(CALLBACK(src, PROC_REF(Update)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_CLIENT_TIME | TIMER_OVERRIDE | TIMER_STOPPABLE)
+ refresh_timer_id = addtimer(CALLBACK(src, PROC_REF(Update)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_CLIENT_TIME | TIMER_OVERRIDE | TIMER_STOPPABLE)
/obj/screen/new_player/selection
var/click_sound = 'sound/effects/menu_click.ogg'
var/hud_arrow
-/obj/screen/new_player/selection/New(var/datum/hud/H)
+/obj/screen/new_player/selection/New(datum/hud/H)
color = null
hud = H
..()
@@ -138,6 +138,10 @@
. = ..()
set_sector_things()
+/obj/screen/new_player/selection/Destroy(force)
+ hud = null
+ . = ..()
+
/obj/screen/new_player/selection/set_sector_things()
. = ..()
if(SSatlas.current_sector.sector_hud_menu_sound)
diff --git a/code/modules/mob/abstract/new_player/new_player.dm b/code/modules/mob/abstract/new_player/new_player.dm
index 134502266d8..3aec41f6baf 100644
--- a/code/modules/mob/abstract/new_player/new_player.dm
+++ b/code/modules/mob/abstract/new_player/new_player.dm
@@ -19,9 +19,23 @@
INITIALIZE_IMMEDIATE(/mob/abstract/new_player)
-/mob/abstract/new_player/Initialize()
+/mob/abstract/new_player/Initialize(mapload)
. = ..()
GLOB.dead_mob_list -= src
+ attempt_moving_new_player_on_marker_turf()
+
+/mob/abstract/new_player/proc/attempt_moving_new_player_on_marker_turf()
+ //If it's set, move the new_player mob to it, otherwise reschedule to check in a bit
+ if(istype(GLOB.lobby_mobs_location))
+ src.forceMove(GLOB.lobby_mobs_location)
+
+ else
+ //Atoms loading have finished supposedly, there should be a marker down for this, if not found throw a stack trace
+ if(SSATOMS_IS_PROBABLY_DONE)
+ stack_trace("The map is supposedly loaded, but GLOB.lobby_mobs_location is not set, unable to move the lobby mob!")
+ return
+
+ addtimer(CALLBACK(src, PROC_REF(attempt_moving_new_player_on_marker_turf)), 5 SECONDS)
/mob/abstract/new_player/Destroy()
QDEL_NULL(late_choices_ui)
diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm
index 56181dfb83c..2cb3ecb48b8 100644
--- a/code/modules/mob/living/carbon/brain/posibrain.dm
+++ b/code/modules/mob/living/carbon/brain/posibrain.dm
@@ -75,7 +75,7 @@
/obj/item/device/mmi/digital/posibrain/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
. = ..()
- . += "*---------*\nThis is [icon2html(src, user)] \a [src]!\n[desc]\n"
+ . += "This is [icon2html(src, user)] \a [src]!\n[desc]\n"
. += ""
if(brainmob?.key)
@@ -89,7 +89,7 @@
. += "It appears to be completely inactive.\n"
else
. += "It appears to be completely inactive.\n"
- . += "*---------*"
+ . += ""
/obj/item/device/mmi/digital/posibrain/ready_for_use(var/mob/user)
if(!brainmob)
diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm
index 8c989abfd8f..6601dd59404 100644
--- a/code/modules/mob/living/carbon/human/appearance.dm
+++ b/code/modules/mob/living/carbon/human/appearance.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/human/proc/change_appearance(var/flags = APPEARANCE_ALL_HAIR, var/mob/user = src, var/check_species_whitelist = TRUE, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/list/culture_restriction = list(), var/list/origin_restriction = list(), var/datum/ui_state/ui_state = always_state, var/datum/state_object = src, var/update_id = FALSE)
+/mob/living/carbon/human/proc/change_appearance(var/flags = APPEARANCE_ALL_HAIR, var/mob/user = src, var/check_species_whitelist = TRUE, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/list/culture_restriction = list(), var/list/origin_restriction = list(), var/datum/ui_state/ui_state = GLOB.always_state, var/datum/state_object = src, var/update_id = FALSE)
var/datum/tgui_module/appearance_changer/AC = new /datum/tgui_module/appearance_changer(src, check_species_whitelist, species_whitelist, species_blacklist, culture_restriction, origin_restriction, ui_state, state_object, update_id)
AC.flags = flags
AC.ui_interact(user)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index f2c86cc63ca..43ae14af504 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -48,7 +48,7 @@
var/skipears = skipitems & HIDEEARS
var/skipwrists = skipitems & HIDEWRISTS
- var/list/msg = list("*---------*\nThis is ")
+ var/list/msg = list("This is ")
if(icon)
msg += icon2html(icon, user)
@@ -390,7 +390,7 @@
if(print_flavor_text()) msg += "[print_flavor_text()]\n"
- msg += "*---------*"
+ msg += ""
if(src in GLOB.intent_listener)
msg += SPAN_NOTICE("\n[get_pronoun("He")] looks like [get_pronoun("he")] [get_pronoun("is")] listening intently to [get_pronoun("his")] surroundings.")
@@ -400,9 +400,9 @@
var/obj/item/grab/G = get_active_hand()
msg += SPAN_ALERT(FONT_LARGE("\n[get_pronoun("He")] is biting [G.affecting]'[G.affecting.get_pronoun("end")] neck!"))
- if (pose)
- if( findtext(pose,".",length(pose)) == 0 && findtext(pose,"!",length(pose)) == 0 && findtext(pose,"?",length(pose)) == 0 )
- pose = addtext(pose,".") //Makes sure all emotes end with a period.
+ if(pose)
+ if(findtext(pose, ".", length(pose)) == 0 && findtext(pose, "!", length(pose)) == 0 && findtext(pose, "?", length(pose)) == 0)
+ pose = addtext(pose, ".") // Makes sure all emotes end with punctuation.
msg += "\n[get_pronoun("He")] [pose]"
. += msg.Join()
diff --git a/code/modules/mob/living/carbon/slime/examine.dm b/code/modules/mob/living/carbon/slime/examine.dm
index a540822261f..d0aa55ac98b 100644
--- a/code/modules/mob/living/carbon/slime/examine.dm
+++ b/code/modules/mob/living/carbon/slime/examine.dm
@@ -18,5 +18,3 @@
. += SPAN_WARNING("It is glowing brightly with high levels of electrical activity.\n")
if(10)
. += SPAN_DANGER("It is radiating with massive levels of electrical activity!\n")
-
- . += "*---------*"
diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm
index 32dcae10246..ae1b8fa7fd8 100644
--- a/code/modules/mob/living/carbon/slime/slime.dm
+++ b/code/modules/mob/living/carbon/slime/slime.dm
@@ -1,5 +1,6 @@
/mob/living/carbon/slime
name = "baby slime"
+ desc = "A slime."
icon = 'icons/mob/npc/slimes.dmi'
icon_state = "grey baby slime"
pass_flags = PASSTABLE
diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm
index c7a6ab6b2c8..89e00f60592 100644
--- a/code/modules/mob/living/silicon/ai/examine.dm
+++ b/code/modules/mob/living/silicon/ai/examine.dm
@@ -25,10 +25,11 @@
if (src.stat == UNCONSCIOUS)
. += "It is non-responsive and displaying the text: \"RUNTIME: Sensory Overload, stack 26/3\"."
. += ""
- . += "*---------*"
+
if(hardware && (hardware.owner == src))
. += "
"
. += hardware.get_examine_desc()
+
. += user.examine_laws(src)
/mob/proc/examine_laws(var/mob/living/silicon/S)
diff --git a/code/modules/mob/living/silicon/pai/examine.dm b/code/modules/mob/living/silicon/pai/examine.dm
index 8930ccfca53..860d7bdf46c 100644
--- a/code/modules/mob/living/silicon/pai/examine.dm
+++ b/code/modules/mob/living/silicon/pai/examine.dm
@@ -8,12 +8,11 @@
. += "\nIt doesn't seem to be responding."
if(DEAD)
. += "\nIt looks completely unsalvageable."
- . += "\n*---------*"
if(print_flavor_text())
. += "\n[print_flavor_text()]\n"
- if (pose)
- if(findtext(pose,".",length(pose)) == 0 && findtext(pose,"!",length(pose)) == 0 && findtext(pose,"?",length(pose)) == 0 )
- pose = addtext(pose,".") //Makes sure all emotes end with a period.
+ if(pose)
+ if(findtext(pose, ".", length(pose)) == 0 && findtext(pose, "!", length(pose)) == 0 && findtext(pose, "?", length(pose)) == 0)
+ pose = addtext(pose, ".") // Makes sure all emotes end with punctuation.
. += "\nIt [pose]"
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm
index 02d43856d7a..3f0144fe4e3 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm
@@ -66,7 +66,7 @@
if(A.station_area)
call_area_names += A.name
//Probably should consider using another list, but this one will do.
- var/t_area = input(usr, "Select the area to ping.", "Set Target Area") as null|anything in call_area_names
+ var/t_area = tgui_input_list(usr, "Select the area to ping.", "Set Target Area", call_area_names)
if(!t_area)
return
diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm
index f3f635b727f..60a71f5aa5a 100644
--- a/code/modules/mob/living/silicon/robot/examine.dm
+++ b/code/modules/mob/living/silicon/robot/examine.dm
@@ -33,13 +33,13 @@
. += "It doesn't seem to be responding."
if(DEAD)
. += "It looks completely unsalvageable."
- . += "*---------*"
if(print_flavor_text())
. += "\n[print_flavor_text()]\n"
if(pose)
- if(findtext(pose, ".", length(pose)) == 0 && findtext(pose, "!", length(pose)) == 0 && findtext(pose, "?", length(pose)) == 0 )
- pose = addtext(pose, ".") //Makes sure all emotes end with a period.
+ if(findtext(pose, ".", length(pose)) == 0 && findtext(pose, "!", length(pose)) == 0 && findtext(pose, "?", length(pose)) == 0)
+ pose = addtext(pose, ".") // Makes sure all emotes end with punctuation.
. += "\nIt [pose]"
+
. += user.examine_laws(src)
diff --git a/code/modules/mob/living/silicon/robot/items/robot_parts.dm b/code/modules/mob/living/silicon/robot/items/robot_parts.dm
index bb82d292e1f..8fbb9980801 100644
--- a/code/modules/mob/living/silicon/robot/items/robot_parts.dm
+++ b/code/modules/mob/living/silicon/robot/items/robot_parts.dm
@@ -270,7 +270,7 @@
new_shell.name = new_shell.real_name
var/obj/item/organ/internal/mmi_holder/posibrain/P = new_shell.internal_organs_by_name[BP_BRAIN]
P.setup_brain()
- new_shell.change_appearance(APPEARANCE_ALL_HAIR | APPEARANCE_SKIN | APPEARANCE_EYE_COLOR, new_shell)
+ new_shell.change_appearance(APPEARANCE_PLASTICSURGERY, new_shell)
qdel(src)
return
diff --git a/code/modules/mob/living/simple_animal/hostile/ipc_zombie.dm b/code/modules/mob/living/simple_animal/hostile/ipc_zombie.dm
index 5cd3fcd5ee0..7d2d6e4fa84 100644
--- a/code/modules/mob/living/simple_animal/hostile/ipc_zombie.dm
+++ b/code/modules/mob/living/simple_animal/hostile/ipc_zombie.dm
@@ -7,9 +7,9 @@
blood_type = COLOR_OIL
health = 100
maxHealth = 100
- melee_damage_lower = 20
+ melee_damage_lower = 15
melee_damage_upper = 20
- armor_penetration = 40
+ armor_penetration = 20
attack_sound = 'sound/weapons/smash.ogg'
attacktext = "smashed"
faction = "hivebot"
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/konyang.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/konyang.dm
index 07145a70be3..9b985db8fd8 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/konyang.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/konyang.dm
@@ -14,8 +14,8 @@
mob_size = 12
organ_names = list("torso", "left wing", "right wing", "head")
- maxHealth = 150
- health = 150
+ maxHealth = 300
+ health = 300
melee_damage_lower = 20
melee_damage_upper = 30
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index f78a2967969..1a9f6f3475f 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -54,6 +54,7 @@
* ckey.
*/
/mob/proc/LateLogin()
+ SHOULD_NOT_SLEEP(TRUE)
SHOULD_CALL_PARENT(TRUE)
SEND_SIGNAL(src, COMSIG_MOB_LOGIN)
@@ -103,7 +104,5 @@
// Check code/modules/admin/verbs/antag-ooc.dm for definition
client.add_aooc_if_necessary()
- if(client)
+ if(client && !istype(src, /mob/abstract/new_player)) //Do not update the skybox if it's a new player mob, they don't see it anyways and it can runtime
client.update_skybox(TRUE)
-
- addtimer(CALLBACK(client, TYPE_PROC_REF(/client, check_panel_loaded)), 30 SECONDS)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index fd513013e21..0ad321e8077 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -45,6 +45,10 @@
return ..()
+/mob/New()
+ // This needs to happen IMMEDIATELY. I'm sorry :(
+ GenerateTag()
+ return ..()
/mob/proc/remove_screen_obj_references()
flash = null
@@ -87,6 +91,15 @@
become_hearing_sensitive()
+/**
+ * Generate the tag for this mob
+ *
+ * This is simply "mob_"+ a global incrementing counter that goes up for every mob
+ */
+/mob/GenerateTag()
+ . = ..()
+ tag = "mob_[next_mob_id++]"
+
/mob/verb/say_wrapper()
set name = ".Say"
set hidden = TRUE
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 871a8a8b743..888091644a8 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -5,6 +5,7 @@
movable_flags = MOVABLE_FLAG_PROXMOVE
sight = DEFAULT_SIGHT
var/datum/mind/mind
+ var/static/next_mob_id = 0
// we never want to hide a turf because it's not lit
// We can rely on the lighting plane to handle that for us
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index 72abe2ea6e8..0344e48135c 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -143,20 +143,38 @@
return null
-//parses the language code (e.g. :j) from text, such as that supplied to say.
-//returns the language object only if the code corresponds to a language that src can speak, otherwise null.
-/mob/proc/parse_language(var/message)
+/**
+ * Parses the language code (e.g. :j) from text, such as that supplied to say
+ *
+ * Returns a `/datum/language` only if the code corresponds to a language that src can speak, otherwise `null`
+ *
+ * * message - A string, the message to parse
+ */
+/mob/proc/parse_language(message)
+ SHOULD_NOT_SLEEP(TRUE)
+ SHOULD_BE_PURE(TRUE)
+ RETURN_TYPE(/datum/language)
+
var/prefix = copytext(message,1,2)
if(length(message) >= 1 && prefix == "!")
return GLOB.all_languages[LANGUAGE_NOISE]
+ //Check that the message is at least 2 characters long and is there's a prefix starting it
if(length(message) >= 2 && is_language_prefix(prefix))
+
+ //Get the first 2 letters after the prefix (position 2 and 3)
var/language_prefix = lowertext(copytext(message, 2, 4))
+
+ //Try to grab a language associated with said prefix
var/datum/language/L = GLOB.language_keys[language_prefix]
- if(!L || !can_speak(L))
+
+ //If we didn't find a language, or we found one we cannot speak, try with a single letter identification
+ if(!istype(L) || (istype(L) && !can_speak(L)))
language_prefix = lowertext(copytext(message, 2, 3))
L = GLOB.language_keys[language_prefix]
+
+ //Check if we can speak the language, otherwise return null
if(can_speak(L))
return L
-
- return null
+ else
+ return null
diff --git a/code/modules/modular_computers/hardware/portable_hard_drive_presets.dm b/code/modules/modular_computers/hardware/portable_hard_drive_presets.dm
index 445b2b8da70..ada04cc625f 100644
--- a/code/modules/modular_computers/hardware/portable_hard_drive_presets.dm
+++ b/code/modules/modular_computers/hardware/portable_hard_drive_presets.dm
@@ -29,15 +29,16 @@
if(_program == null)
qdel(src) //Delete itself if no program is set
return
- var/datum/computer_file/program/PRG = GLOB.ntnet_global.find_ntnet_file_by_name(_program)
- if(!PRG)
+ var/datum/computer_file/program/program = GLOB.ntnet_global.find_ntnet_file_by_name(_program)
+ if(!program)
qdel(src) //Delete itself it no matching program is found
return
- max_capacity = PRG.size // Set the capacity of the backup disk to the capacity of the program
- store_file(PRG)
+ var/datum/computer_file/program/program_cloned = program.clone(FALSE, "Compless")
+ max_capacity = program_cloned.size // Set the capacity of the backup disk to the capacity of the program
+ store_file(program_cloned)
read_only = TRUE
- desc = "A read-only backup storage crystal containing a backup of the following software: [PRG.filedesc]"
- name = "[PRG.filedesc] backup crystal"
+ desc = "A read-only backup storage crystal containing a backup of the following software: [program_cloned.filedesc]"
+ name = "[program_cloned.filedesc] backup crystal"
/obj/structure/closet/crate/software_backup
desc = "A crate containing a backup of all the NT Software available."
diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm
index b88f852cad5..540dd76f7f1 100644
--- a/code/modules/multiz/structures.dm
+++ b/code/modules/multiz/structures.dm
@@ -201,7 +201,27 @@
/obj/structure/ladder/away //a ladder that just looks like it's going down
icon_state = "ladderawaydown"
-/// Note that stairs facing left/right may need the stairs_lower structure if they're not placed against walls.
+/**
+ * #Stairs
+ *
+ * Stairs allow you to traverse up and down between Z-levels
+ *
+ * They _MUST_ follow this bound rules:
+ *
+ * -If facing NORTH: `bound_height` to 64 and `bound_y` to -32
+ *
+ * -If facing SOUTH: `bound_height` to 64
+ *
+ * -If facing EAST: `bound_width` to 64 and `bound_x` to -32
+ *
+ * -If facing WEST: `bound_width` to 64
+ *
+ * No other bounds should be set on them except the ones described above
+ *
+ * A subtype must be defined, and those bounds set in code. DO NOT SET IT ON THE MAP ITSELF!
+ *
+ * Note that stairs facing left/right may need the stairs_lower structure if they're not placed against walls
+ */
/obj/structure/stairs
name = "stairs"
desc = "Stairs leading to another floor. Not too useful if the gravity goes out."
@@ -298,9 +318,6 @@
dir = WEST
bound_width = 64
-/obj/structure/stairs/flat
- icon_state = "stairs_flat"
-
/// Snowflake railing object for 64x64 stairs.
/obj/structure/stairs_railing
name = "railing"
diff --git a/code/modules/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm
index 57f696513f6..4910c76de05 100644
--- a/code/modules/nano/modules/human_appearance.dm
+++ b/code/modules/nano/modules/human_appearance.dm
@@ -28,7 +28,7 @@
var/list/culture_restrictions = list()
var/list/origin_restrictions = list()
-/datum/tgui_module/appearance_changer/New(var/mob/living/carbon/human/H, var/check_species_whitelist = 1, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/list/culture_restriction = list(), var/list/origin_restriction = list(), var/datum/ui_state/set_ui_state = always_state, var/datum/set_state_object = null, var/update_id)
+/datum/tgui_module/appearance_changer/New(var/mob/living/carbon/human/H, var/check_species_whitelist = 1, var/list/species_whitelist = list(), var/list/species_blacklist = list(), var/list/culture_restriction = list(), var/list/origin_restriction = list(), var/datum/ui_state/set_ui_state = GLOB.always_state, var/datum/set_state_object = null, var/update_id)
..()
ui_state = set_ui_state
state_object = set_state_object
diff --git a/code/modules/nano/modules/nano_module.dm b/code/modules/nano/modules/nano_module.dm
index 8488e24a6d0..00f7bb7d590 100644
--- a/code/modules/nano/modules/nano_module.dm
+++ b/code/modules/nano/modules/nano_module.dm
@@ -12,7 +12,7 @@
/datum/nano_module/ui_host()
return host ? host.ui_host() : src
-/datum/nano_module/proc/can_still_topic(var/datum/ui_state/state = default_state)
+/datum/nano_module/proc/can_still_topic(var/datum/ui_state/state = GLOB.default_state)
return CanUseTopic(usr, state) == STATUS_INTERACTIVE
/datum/nano_module/proc/check_eye(var/mob/user)
diff --git a/code/modules/nano/nanoexternal.dm b/code/modules/nano/nanoexternal.dm
index 678c3811a6f..dc15f0dcd54 100644
--- a/code/modules/nano/nanoexternal.dm
+++ b/code/modules/nano/nanoexternal.dm
@@ -33,7 +33,7 @@
* @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui
* @param force_open boolean Force the UI to (re)open, even if it's already open
*/
-/datum/proc/nanoui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/nanoui/master_ui = null, var/datum/ui_state/state = default_state)
+/datum/proc/nanoui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/nanoui/master_ui = null, var/datum/ui_state/state = GLOB.default_state)
return
// Used by the Nano UI Manager (/datum/SSnanoui) to track UIs opened by this mob
diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm
index 9289843e82f..6950ca06aee 100644
--- a/code/modules/nano/nanoui.dm
+++ b/code/modules/nano/nanoui.dm
@@ -71,7 +71,7 @@ nanoui is used to open and update nano browser uis
*
* @return /nanoui new nanoui object
*/
-/datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate_filename, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null, var/datum/nanoui/master_ui = null, var/datum/ui_state/state = default_state)
+/datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate_filename, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null, var/datum/nanoui/master_ui = null, var/datum/ui_state/state = GLOB.default_state)
user = nuser
src_object = nsrc_object
ui_key = nui_key
diff --git a/code/modules/organs/subtypes/augment.dm b/code/modules/organs/subtypes/augment.dm
index 009964f1d2c..1bceecd87e2 100644
--- a/code/modules/organs/subtypes/augment.dm
+++ b/code/modules/organs/subtypes/augment.dm
@@ -120,7 +120,19 @@
M.item_flags |= ITEM_FLAG_NO_MOVE
owner.equip_to_slot(M, aug_slot)
var/obj/item/organ/O = owner.organs_by_name[parent_organ]
- owner.visible_message(SPAN_NOTICE("\The [M] slides out of \the [owner]'s [O.name]."), SPAN_NOTICE("You deploy \the [M]!"))
+
+ //If we didn't found the organ, it might be a sub-organ, search for it
+ if(!O)
+ for(var/external_organ_key in owner.organs_by_name)
+ var/obj/item/organ/external/external_organ = owner.organs_by_name[external_organ_key]
+ for(var/obj/item/organ/internal/internal_organ in external_organ.internal_organs)
+ if(internal_organ.organ_tag == parent_organ)
+ O = internal_organ
+ break
+
+ //If we have found it, print the message, otherwise don't bother, it would just runtime
+ if(O)
+ owner.visible_message(SPAN_NOTICE("\The [M] slides out of \the [owner]'s [O.name]."), SPAN_NOTICE("You deploy \the [M]!"))
/obj/item/organ/internal/augment/tool/combitool
name = "retractable combitool"
@@ -774,3 +786,52 @@
action_button_name = "Deploy Glare Dampeners"
organ_tag = BP_AUG_GLARE_DAMPENER
augment_type = /obj/item/clothing/glasses/aug/welding
+
+/obj/item/organ/internal/augment/eye_sensors/phalanx
+ name = "phalanx facial plate"
+ desc = "This modular face plate accommodates a wide array of cybernetic augmentations, enabling seamless integration with Phalanx's transhumanist doctrine. \
+ Enhanced sensory overlays and HUDs offer Phalanx members superior situational awareness and promote a sense of hive-thinking."
+ icon_state = "vaurca_plate"
+ action_button_name = "Toggle HUD"
+ action_button_icon = "vaurca_plate"
+ on_mob_icon = 'icons/mob/human_races/augments_external.dmi'
+ sprite_sheets = list(
+ BODYTYPE_VAURCA_BULWARK = 'icons/mob/species/bulwark/augments_external.dmi',
+ BODYTYPE_VAURCA = 'icons/mob/species/vaurca/augments_external.dmi'
+ )
+/obj/item/organ/internal/augment/eye_sensors/phalanx/attack_self(var/mob/user)
+ . = ..()
+
+ if(selected_hud == "disabled")
+ selected_hud = SEC_HUDTYPE
+ to_chat(user, "You activate \the [src] security HUD.")
+ return
+ if(selected_hud == SEC_HUDTYPE)
+ selected_hud = MED_HUDTYPE
+ to_chat(user, "You activate \the [src] medical HUD.")
+ return
+ if(selected_hud == MED_HUDTYPE)
+ selected_hud = "disabled"
+ to_chat(user, "You deactivate \the [src].")
+ return
+
+/obj/item/organ/internal/augment/eye_sensors/phalanx/process()
+ ..()
+
+ switch(selected_hud)
+ if(SEC_HUDTYPE)
+ req_access = list(ACCESS_SECURITY)
+ if(allowed(owner))
+ active_hud = "security"
+ process_sec_hud(owner, 1)
+ else
+ active_hud = "disabled"
+ if(MED_HUDTYPE)
+ req_access = list(ACCESS_MEDICAL)
+ if(allowed(owner))
+ active_hud = "medical"
+ process_med_hud(owner, 1)
+ else
+ active_hud = "disabled"
+ else
+ active_hud = "disabled"
diff --git a/code/modules/overmap/exoplanets/decor/flora/potted.dm b/code/modules/overmap/exoplanets/decor/flora/potted_big.dm
similarity index 95%
rename from code/modules/overmap/exoplanets/decor/flora/potted.dm
rename to code/modules/overmap/exoplanets/decor/flora/potted_big.dm
index 1b867695e27..41dff8e762f 100644
--- a/code/modules/overmap/exoplanets/decor/flora/potted.dm
+++ b/code/modules/overmap/exoplanets/decor/flora/potted_big.dm
@@ -1,7 +1,7 @@
/obj/structure/flora/pottedplant
name = "potted plant"
desc = "A potted plant."
- icon = 'icons/obj/plants.dmi'
+ icon = 'icons/obj/pottedplants_big.dmi'
icon_state = "plant-26"
anchored = FALSE
density = FALSE
@@ -71,6 +71,28 @@
return 1
return ..()
+// ------------------------------------ dead/empty
+
+/obj/structure/flora/pottedplant/dead
+ name = "dead potted plant"
+ desc = "A dead potted plant."
+ icon_state = "plant-dead"
+ dead = TRUE
+
+/obj/structure/flora/pottedplant/dead2
+ name = "dead potted plant"
+ desc = "A dead potted plant."
+ icon_state = "plant-dead-2"
+ dead = TRUE
+
+/obj/structure/flora/pottedplant/empty
+ name = "empty plant pot"
+ desc = "An empty plant pot."
+ icon_state = "plant-empty"
+ dead = TRUE
+
+// ------------------------------------ actual plants
+
/obj/structure/flora/pottedplant/applebush
name = "decorative potted plant"
desc = "This is a decorative shrub. It's been trimmed into the shape of an apple."
@@ -81,9 +103,9 @@
desc = "This is an ordinary looking fern. It has some big leaves."
icon_state = "plant-01"
-/obj/structure/flora/pottedplant/fern
- name = "potted fern"
- desc = "This is an ordinary looking fern. It looks like it could do with some water."
+/obj/structure/flora/pottedplant/tree
+ name = "potted tree"
+ desc = "This is a small tree. It has hard bark and lots of tiny leaves."
icon_state = "plant-02"
/obj/structure/flora/pottedplant/overgrown
@@ -118,7 +140,7 @@
/obj/structure/flora/pottedplant/unusual
name = "unusual potted plant"
- desc = "A fleshy cave dwelling plant with huge nodules for flowers. It's bulbous ends emit a soft blue light."
+ desc = "A fleshy cave dwelling plant with huge nodules for flowers. Its bulbous ends emit a soft blue light."
icon_state = "plant-09"
/obj/structure/flora/pottedplant/unusual/Initialize()
@@ -151,7 +173,7 @@
icon_state = "plant-14"
/obj/structure/flora/pottedplant/bouquet
- name = "tiny potted bouquet"
+ name = "small potted bouquet"
desc = "A pitiful pot of assorted small flora. Some look familiar."
icon_state = "plant-15"
@@ -177,7 +199,7 @@
/obj/structure/flora/pottedplant/subterranean
name = "subterranean potted plant-fungus"
- desc = "A bioluminescent subterranean half-plant half-fungus hybrid, it's bulbous ends glow faintly. Said to come from Sedantis I."
+ desc = "A bioluminescent subterranean half-plant half-fungus hybrid, its bulbous ends glow faintly. Said to come from Sedantis I."
icon_state = "plant-20"
/obj/structure/flora/pottedplant/subterranean/Initialize()
@@ -265,21 +287,3 @@
Scientists assure, the blinking \"eye\" is simply just a form of heat regulation, \
and other than that, this plant is same as any other greenery."
icon_state = "plant-36"
-
-/obj/structure/flora/pottedplant/dead
- name = "dead potted plant"
- desc = "A dead potted plant."
- icon_state = "plant-dead"
- dead = TRUE
-
-/obj/structure/flora/pottedplant/dead2
- name = "dead potted plant"
- desc = "A dead potted plant."
- icon_state = "plant-dead-2"
- dead = TRUE
-
-/obj/structure/flora/pottedplant/empty
- name = "empty plant pot"
- desc = "An empty plant pot."
- icon_state = "plant_empty"
- dead = TRUE
diff --git a/code/modules/overmap/exoplanets/decor/flora/potted_small.dm b/code/modules/overmap/exoplanets/decor/flora/potted_small.dm
new file mode 100644
index 00000000000..b8dcaa7bbba
--- /dev/null
+++ b/code/modules/overmap/exoplanets/decor/flora/potted_small.dm
@@ -0,0 +1,189 @@
+/obj/item/flora/pottedplant_small
+ name = "potted plant"
+ desc = "A potted plant."
+ icon = 'icons/obj/pottedplants_small.dmi'
+ icon_state = "plant-01"
+ anchored = FALSE
+ density = FALSE
+ var/dead = FALSE
+
+/obj/item/flora/pottedplant_small/proc/death()
+ if(!dead)
+ icon_state = "plant-dead"
+ name = "dead [name]"
+ desc = "A dead potted plant."
+ dead = TRUE
+
+//No complex interactions, just make them fragile
+/obj/item/flora/pottedplant_small/ex_act(var/severity = 2.0)
+ death()
+ return ..()
+
+/obj/item/flora/pottedplant_small/fire_act()
+ death()
+ return ..()
+
+/obj/item/flora/pottedplant_small/bullet_act(var/obj/item/projectile/Proj)
+ if (prob(Proj.damage*2))
+ death()
+ return 1
+ return ..()
+
+// ------------------------------------ dead/empty
+
+/obj/item/flora/pottedplant_small/dead
+ name = "dead potted plant"
+ desc = "A dead potted plant."
+ icon_state = "plant-dead"
+ dead = TRUE
+
+/obj/item/flora/pottedplant_small/empty
+ name = "empty plant pot"
+ desc = "An empty plant pot."
+ icon_state = "plant-empty"
+ dead = TRUE
+
+// ------------------------------------ actual plants
+
+/obj/item/flora/pottedplant_small/sapling
+ name = "potted sapling"
+ desc = "Tree sampling, living in a tiny pot. It will grow into a big tree some day."
+ icon_state = "plant-01"
+
+/obj/item/flora/pottedplant_small/fern
+ name = "small potted fern"
+ desc = "This is an ordinary looking fern. It has one big leaf."
+ icon_state = "plant-02"
+
+/obj/item/flora/pottedplant_small/tree
+ name = "miniature potted tree"
+ desc = "This is a tiny tree. It has hard bark and some tiny leaves."
+ icon_state = "plant-03"
+
+/obj/item/flora/pottedplant_small/bamboo
+ name = "potted bamboo"
+ desc = "This is a tiny bamboo shoot. The top looks like it's been cut short."
+ icon_state = "plant-04"
+
+/obj/item/flora/pottedplant_small/smallbush
+ name = "small potted bush"
+ desc = "This is a small bush. The two big leaves stick upwards in an odd fashion."
+ icon_state = "plant-05"
+
+/obj/item/flora/pottedplant_small/thinbush
+ name = "thin potted bush"
+ desc = "This is a thin bush. It appears to be flowering."
+ icon_state = "plant-06"
+
+/obj/item/flora/pottedplant_small/mysterious
+ name = "reedy potted bulb"
+ desc = "A reedy plant mostly used for decoration in Skrell homes, admired for its luxuriant stalks. Touching its one bulb causes it to shrink."
+ icon_state = "plant-07"
+
+/obj/item/flora/pottedplant_small/unusual
+ name = "unusual potted plant"
+ desc = "A fleshy cave dwelling plant with one small flower nodule. Its bulbous end emits a soft blue light."
+ icon_state = "plant-08"
+
+/obj/item/flora/pottedplant_small/unusual/Initialize()
+ . = ..()
+ set_light(l_range = 2, l_power = 2, l_color = "#007fff")
+
+/obj/item/flora/pottedplant_small/smallcactus
+ name = "miniature potted cactus"
+ desc = "A scrubby cactus adapted to the Moghes deserts."
+ icon_state = "plant-09"
+
+/obj/item/flora/pottedplant_small/tall
+ name = "small potted plant"
+ desc = "A hardy succulent adapted to the Moghes deserts. Tiny pores line its surface."
+ icon_state = "plant-10"
+
+/obj/item/flora/pottedplant_small/smelly
+ name = "smelly potted plant"
+ desc = "That's a big flower. It reeks of rotten eggs."
+ icon_state = "plant-11"
+
+/obj/item/flora/pottedplant_small/bouquet
+ name = "tiny potted bouquet"
+ desc = "A pitiful pot of just three tiny flowers."
+ icon_state = "plant-12"
+
+/obj/item/flora/pottedplant_small/shoot
+ name = "small potted shoot"
+ desc = "This is a tiny shoot. It still needs time to grow."
+ icon_state = "plant-13"
+
+/obj/item/flora/pottedplant_small/orchid
+ name = "sweet potted orchid"
+ desc = "An orchid plant, as beautiful as it is delicate. Sweet smelling flower is supported by spindly stems."
+ icon_state = "plant-14"
+
+/obj/item/flora/pottedplant_small/crystal
+ name = "crystalline potted plant"
+ desc = "A ropey, aquatic plant. Odd crystal formations grow on the end."
+ icon_state = "plant-15"
+
+/obj/item/flora/pottedplant_small/subterranean
+ name = "subterranean potted plant-fungus"
+ desc = "A bioluminescent subterranean half-plant half-fungus hybrid, its bulbous ends glow faintly. Said to come from Sedantis I."
+ icon_state = "plant-16"
+
+/obj/item/flora/pottedplant_small/subterranean/Initialize()
+ . = ..()
+ set_light(l_range = 1, l_power = 0.5, l_color = "#ff6633")
+
+/obj/item/flora/pottedplant_small/stoutbush
+ name = "stout potted bush"
+ desc = "This is a miniature stout bush. Its leaves point up and outwards."
+ icon_state = "plant-17"
+
+/obj/item/flora/pottedplant_small/drooping
+ name = "drooping potted plant"
+ desc = "This is a tiny plant. It has just one drooping leaf, making it look like it's wilted."
+ icon_state = "plant-18"
+
+/obj/item/flora/pottedplant_small/tropical
+ name = "tropical potted plant"
+ desc = "This is some kind of tropical plant. It is very young, and hasn't begun to flower yet."
+ icon_state = "plant-19"
+
+/obj/item/flora/pottedplant_small/flower
+ name = "potted flower"
+ desc = "A small potted flower. It appears to be healthy and growing strong."
+ icon_state = "plant-20"
+
+/obj/item/flora/pottedplant_small/bulrush
+ name = "small potted grass"
+ desc = "A bulrush, wetland grass-like plant. This one is tiny, and does not have any flowers."
+ icon_state = "plant-21"
+
+/obj/item/flora/pottedplant_small/rose
+ name = "thorny potted rose"
+ desc = "A flowering rose. It has sharp thorns on its stems."
+ icon_state = "plant-22"
+
+/obj/item/flora/pottedplant_small/whitetulip
+ name = "potted tulip"
+ desc = "A potted plant, with one large white flower bud."
+ icon_state = "plant-23"
+
+/obj/item/flora/pottedplant_small/woodyshrub
+ name = "woody potted shrub"
+ desc = "A woody shrub."
+ icon_state = "plant-24"
+
+/obj/item/flora/pottedplant_small/woodyshrubdying
+ name = "dying woody potted shrub"
+ desc = "A woody shrub. Seems to be in need of watering."
+ icon_state = "plant-25"
+
+/obj/item/flora/pottedplant_small/woodyshrubbloom
+ name = "blooming woody potted shrub"
+ desc = "A woody shrub. This one seems to be in bloom."
+ icon_state = "plant-26"
+
+/obj/item/flora/pottedplant_small/bluefern
+ name = "blueish potted fern"
+ desc = "A miniature fern, with one big dark blue leaf."
+ icon_state = "plant-27"
diff --git a/code/modules/overmap/ships/computers/engine_control.dm b/code/modules/overmap/ships/computers/engine_control.dm
index b8b2bf0087f..8755c1de513 100644
--- a/code/modules/overmap/ships/computers/engine_control.dm
+++ b/code/modules/overmap/ships/computers/engine_control.dm
@@ -77,7 +77,7 @@
if(href_list["set_global_limit"])
var/newlim = tgui_input_number(usr, "Input the new thrust limit.", "Thrust Limit", connected.thrust_limit*100, 100, 0)
- if(!CanInteract(usr, physical_state))
+ if(!CanInteract(usr, GLOB.physical_state))
return TOPIC_NOACTION
connected.thrust_limit = Clamp(newlim/100, 0, 1)
for(var/datum/ship_engine/E in connected.engines)
@@ -94,7 +94,7 @@
if(href_list["set_limit"])
var/datum/ship_engine/E = locate(href_list["engine"])
var/newlim = tgui_input_number(usr, "Input the new thrust limit.", "Thrust Limit", E.get_thrust_limit(), 100, 0)
- if(!CanInteract(usr, physical_state))
+ if(!CanInteract(usr, GLOB.physical_state))
return
var/limit = Clamp(newlim/100, 0, 1)
if(istype(E))
diff --git a/code/modules/overmap/ships/computers/helm.dm b/code/modules/overmap/ships/computers/helm.dm
index 67299ce97ac..864b450de2d 100644
--- a/code/modules/overmap/ships/computers/helm.dm
+++ b/code/modules/overmap/ships/computers/helm.dm
@@ -194,7 +194,7 @@
if(action == "add")
var/datum/computer_file/data/waypoint/R = new()
var/sec_name = input("Input naviation entry name", "New navigation entry", "Sector #[known_sectors.len]") as text
- if(!CanInteract(usr, physical_state))
+ if(!CanInteract(usr, GLOB.physical_state))
return FALSE
if(!sec_name)
sec_name = "Sector #[known_sectors.len]"
@@ -208,10 +208,10 @@
R.fields["y"] = connected.y
if("new")
var/newx = input("Input new entry x coordinate", "Coordinate input", connected.x) as num
- if(!CanInteract(usr, physical_state))
+ if(!CanInteract(usr, GLOB.physical_state))
return TRUE
var/newy = input("Input new entry y coordinate", "Coordinate input", connected.y) as num
- if(!CanInteract(usr, physical_state))
+ if(!CanInteract(usr, GLOB.physical_state))
return FALSE
R.fields["x"] = Clamp(newx, 1, world.maxx)
R.fields["y"] = Clamp(newy, 1, world.maxy)
@@ -225,14 +225,14 @@
if (action == "setx")
var/newx = input("Input new destination x coordinate", "Coordinate input", dx) as num|null
- if(!CanInteract(usr, physical_state))
+ if(!CanInteract(usr, GLOB.physical_state))
return
if (newx)
dx = Clamp(newx, 1, world.maxx)
if (action == "sety")
var/newy = input("Input new destination y coordinate", "Coordinate input", dy) as num|null
- if(!CanInteract(usr, physical_state))
+ if(!CanInteract(usr, GLOB.physical_state))
return
if (newy)
dy = Clamp(newy, 1, world.maxy)
diff --git a/code/modules/overmap/ships/computers/sensors.dm b/code/modules/overmap/ships/computers/sensors.dm
index 32fc4888ba6..742030871cf 100644
--- a/code/modules/overmap/ships/computers/sensors.dm
+++ b/code/modules/overmap/ships/computers/sensors.dm
@@ -256,14 +256,14 @@
if(sensors)
if (action == "range")
var/nrange = tgui_input_number("Set new sensors range", "Sensor range", sensors.range, sensors.max_range, 1)
- if(!CanInteract(usr, default_state))
+ if(!CanInteract(usr, GLOB.default_state))
return FALSE
if (nrange)
sensors.set_desired_range(Clamp(nrange, 1, sensors.max_range))
return TRUE
if(action == "range_choice")
var/nrange = text2num(params["range_choice"])
- if(!CanInteract(usr, default_state))
+ if(!CanInteract(usr, GLOB.default_state))
return FALSE
if(nrange)
sensors.set_desired_range(Clamp(nrange, 1, sensors.max_range))
diff --git a/code/modules/overmap/ships/computers/shuttle.dm b/code/modules/overmap/ships/computers/shuttle.dm
index c5aa86131eb..ec6a5cb04f5 100644
--- a/code/modules/overmap/ships/computers/shuttle.dm
+++ b/code/modules/overmap/ships/computers/shuttle.dm
@@ -59,7 +59,7 @@
D = tgui_input_list(usr, "Choose shuttle destination.", "Shuttle Destination", possible_d)
else
to_chat(usr, SPAN_WARNING("No valid landing sites in range."))
- if(CanInteract(user, physical_state) && (D in possible_d))
+ if(CanInteract(user, GLOB.physical_state) && (D in possible_d))
shuttle.set_destination(possible_d[D])
return TRUE
diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm
index 10f0c8490fe..30f572e589b 100644
--- a/code/modules/projectiles/guns/projectile/shotgun.dm
+++ b/code/modules/projectiles/guns/projectile/shotgun.dm
@@ -49,7 +49,6 @@
icon = 'icons/obj/guns/shotgun.dmi'
icon_state = "shotgun"
item_state = "shotgun"
- accuracy = 0
max_shells = 4
w_class = ITEMSIZE_LARGE
force = 10
diff --git a/code/modules/psionics/interface/ui_hub.dm b/code/modules/psionics/interface/ui_hub.dm
index 0230c934f1a..467ebfb79c7 100644
--- a/code/modules/psionics/interface/ui_hub.dm
+++ b/code/modules/psionics/interface/ui_hub.dm
@@ -43,7 +43,7 @@
ui.open()
/obj/screen/psi/hub/ui_state(mob/user)
- return conscious_state
+ return GLOB.conscious_state
/obj/screen/psi/hub/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index 8e2535f3b02..075ca58c1a3 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -2191,7 +2191,7 @@
description = "A simple syrup that tastes strongly of mint."
color = "#539830"
taste_description = "mint"
-
+ taste_mult = 5
glass_icon_state = "mint_syrupglass"
glass_name = "glass of mint syrup"
glass_desc = "Pure mint syrup. Prepare your tastebuds."
@@ -2465,7 +2465,7 @@
glass_name = "mug of apple cider juice"
glass_desc = "It's just spiced up apple juice. Sometimes the barista can't work miracles."
-/singleton/reagent/drink/NTellamilkshake
+/singleton/reagent/drink/ntella_milkshake
name = "NTella Milkshake"
description = "An intensely sweet chocolatey concoction with whipped cream on top."
color = "#6d4124"
@@ -2586,7 +2586,7 @@
glass_desc = "For everyone who liked to eat their toothpaste as a kid and never grew out of it."
glass_center_of_mass = list("x"=16, "y"=7)
-/singleton/reagent/drink/NTellahotchocolate
+/singleton/reagent/drink/ntella_hot_chocolate
name = "NTella Hot Chocolate"
description = "It's like a cup of hot chocolate except... More everything."
color = "#63432e"
@@ -5814,6 +5814,7 @@
color = "#542a0c"
glass_name = "chocolate syrup"
glass_desc = "Thick chocolate syrup used to flavor drinks."
+ taste_mult = 5
/singleton/reagent/drink/syrup_caramel
name = "Caramel Syrup"
@@ -5822,6 +5823,7 @@
color = "#85461e"
glass_name = "caramel syrup"
glass_desc = "Thick caramel syrup used to flavor drinks."
+ taste_mult = 5
/singleton/reagent/drink/syrup_vanilla
name = "Vanilla Syrup"
@@ -5830,6 +5832,7 @@
color = "#f3e5ab"
glass_name = "vanilla syrup"
glass_desc = "Thick vanilla syrup used to flavor drinks."
+ taste_mult = 5
/singleton/reagent/drink/syrup_pumpkin
name = "Pumpkin Spice Syrup"
@@ -5838,6 +5841,8 @@
color = "#d88b4c"
glass_name = "pumpkin spice syrup"
glass_desc = "Thick spiced pumpkin syrup used to flavor drinks."
+ taste_mult = 5
+
//berry
/singleton/reagent/drink/syrup_berry
name = "Berry Syrup"
@@ -5846,6 +5851,8 @@
color = "#c00726"
glass_name = "berry syrup"
glass_desc = "Thick berry syrup used to flavor drinks."
+ taste_mult = 5
+
//strawberry
/singleton/reagent/drink/syrup_strawberry
name = "Strawberry Syrup"
@@ -5854,6 +5861,8 @@
color = "#b40000"
glass_name = "strawberry syrup"
glass_desc = "Thick strawberry syrup used to flavor drinks."
+ taste_mult = 5
+
//blueberry
/singleton/reagent/drink/syrup_blueberry
name = "Blueberry Syrup"
@@ -5862,6 +5871,8 @@
color = "#0a0094"
glass_name = "blueberry syrup"
glass_desc = "Thick blueberry syrup used to flavor drinks."
+ taste_mult = 5
+
//rasp
/singleton/reagent/drink/syrup_raspberry
name = "Raspberry Syrup"
@@ -5870,6 +5881,8 @@
color = "#ad0042"
glass_name = "raspberry syrup"
glass_desc = "Thick raspberry syrup used to flavor drinks."
+ taste_mult = 5
+
//black rasp
/singleton/reagent/drink/syrup_blackraspberry
name = "Black Raspberry Syrup"
@@ -5878,6 +5891,8 @@
color = "#1b1618"
glass_name = "black raspberry syrup"
glass_desc = "Thick black raspberry syrup used to flavor drinks."
+ taste_mult = 5
+
//blue rasp
/singleton/reagent/drink/syrup_blueraspberry
name = "Blue Raspberry Syrup"
@@ -5886,6 +5901,8 @@
color = "#21154d"
glass_name = "blue raspberry syrup"
glass_desc = "Thick blue raspberry syrup used to flavor drinks."
+ taste_mult = 5
+
//glow
/singleton/reagent/drink/syrup_glowberry
name = "Glowberry Syrup"
@@ -5894,6 +5911,8 @@
color = "#f3e5ab"
glass_name = "glowberry syrup"
glass_desc = "Thick glowberry syrup used to flavor drinks."
+ taste_mult = 5
+
//poison
/singleton/reagent/drink/syrup_poisonberry
name = "Poison Berry Syrup"
@@ -5902,6 +5921,8 @@
color = "#f3e5ab"
glass_name = "poison berry syrup"
glass_desc = "Thick poison berry syrup used to flavor drinks."
+ taste_mult = 5
+
//death
/singleton/reagent/drink/syrup_deathberry
name = "Death Berry Syrup"
@@ -5910,6 +5931,8 @@
color = "#f3e5ab"
glass_name = "death berry syrup"
glass_desc = "Thick death berry syrup used to flavor drinks."
+ taste_mult = 5
+
//ylpha
/singleton/reagent/drink/syrup_ylphaberry
name = "Ylpha Berry Syrup"
@@ -5918,6 +5941,8 @@
color = "#790042"
glass_name = "ylpha berry syrup"
glass_desc = "Thick ylpha berry syrup used to flavor drinks."
+ taste_mult = 5
+
//dirt
/singleton/reagent/drink/syrup_dirtberry
name = "Dirt Berry Syrup"
@@ -5926,7 +5951,7 @@
color = "#85572c"
glass_name = "dirt berry syrup"
glass_desc = "Thick dirt berry syrup used to flavor drinks."
-
+ taste_mult = 5
/singleton/reagent/drink/syrup_simple
name = "Simple Syrup"
@@ -5947,6 +5972,7 @@
reagent_state = LIQUID
description = "A caramel-based sauce. Now you're caramel dancin'."
taste_description = "toasty sweet cream"
+ taste_mult = 2
/singleton/reagent/diona_powder
name = "Dionae Powder"
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 9a45a6ec12d..fe70060af87 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -3041,10 +3041,10 @@
catalysts = list(/singleton/reagent/enzyme = 5)
result_amount = 1
-/datum/chemical_reaction/drink/NTellashake
+/datum/chemical_reaction/drink/ntella_shake
name = "NTella milkshake"
id = "NTellamilkshake"
- result = /singleton/reagent/drink/NTellamilkshake
+ result = /singleton/reagent/drink/ntella_milkshake
required_reagents = list(/singleton/reagent/drink/milkshake = 5, /singleton/reagent/nutriment/choconutspread = 1)
result_amount = 6
@@ -3118,10 +3118,10 @@
required_reagents = list(/singleton/reagent/drink/milkshake = 5, /singleton/reagent/drink/mintsyrup = 1)
result_amount = 6
-/datum/chemical_reaction/drink/NTellahotchocolate
+/datum/chemical_reaction/drink/ntella_hot_chocolate
name = "NTella hot chocolate"
id = "NTellahotchocolate"
- result = /singleton/reagent/drink/NTellahotchocolate
+ result = /singleton/reagent/drink/ntella_hot_chocolate
required_reagents = list(/singleton/reagent/drink/milk = 1, /singleton/reagent/nutriment/choconutspread = 1, /singleton/reagent/drink/milk/cream = 1)
result_amount = 3
diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm
index 8e8f2e19107..5ca3f1e9c47 100644
--- a/code/modules/reagents/reagent_containers/food/cans.dm
+++ b/code/modules/reagents/reagent_containers/food/cans.dm
@@ -242,6 +242,7 @@
name = "comet cola can"
desc = "Getmore's most popular line of soda. A generic cola, otherwise."
icon_state = "cola"
+ item_state = "cola"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/space_cola = 30)
@@ -249,6 +250,7 @@
name = "stellar jolt can"
desc = "For those who have a need for caffeine stronger than would be sensible."
icon_state = "space_mountain_wind"
+ item_state = "space_mountain_wind"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/spacemountainwind = 30)
@@ -257,6 +259,7 @@
name = "getmore energy can"
desc = "An extremely ill-advised combination of excessive caffeine and alcohol. Getmore's most controversial product to date!"
icon_state = "thirteen_loko"
+ icon_state = "thirteen_loko"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/alcohol/thirteenloko = 30)
@@ -265,6 +268,7 @@
name = "getmore root-cola can"
desc = "A canned mixture of Comet Cola and Getmore Root Beer. More popular than one would expect."
icon_state = "dr_gibb"
+ item_state = "dr_gibb"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/dr_gibb = 30)
@@ -273,6 +277,7 @@
name = "orange starshine can"
desc = "A sugary-sweet citrus soda."
icon_state = "starkist"
+ item_state = "starkist"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/brownstar = 30)
@@ -289,6 +294,7 @@
name = "\improper Lemon-Lime"
desc = "Generic lemon-lime soda."
icon_state = "lemon-lime"
+ item_state = "lemon-lime"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/lemon_lime = 30)
@@ -297,6 +303,7 @@
name = "\improper Silversun Wave iced tea"
desc = "Marketed as a favorite amongst parched Silversun beachgoers, there's actually more sugar in this than there is tea."
icon_state = "ice_tea_can"
+ item_state = "ice_tea_can"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/icetea = 30)
@@ -305,6 +312,7 @@
name = "\improper Grapel juice"
desc = "500 pages of rules of how to appropriately enter into a combat with this juice!"
icon_state = "grapesoda"
+ item_state = "grapesoda"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/grapejuice = 30)
@@ -313,6 +321,7 @@
name = "\improper T-Borg's tonic water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
icon_state = "tonic"
+ item_state = "tonic"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/tonic = 50)
@@ -321,6 +330,7 @@
name = "soda water"
desc = "A can of soda water. Still water's more refreshing cousin."
icon_state = "sodawater"
+ item_state = "sodawater"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/sodawater = 50)
@@ -329,6 +339,7 @@
name = "\improper Phoron Punch!"
desc = "A radical looking can of " + SPAN_WARNING("Phoron Punch!") + " Phoron poisoning has never been more extreme! " + SPAN_DANGER("WARNING: Phoron is toxic to non-Vaurca. Consuming this product might lead to death.")
icon_state = "phoron_punch"
+ item_state = "phoron_punch"
center_of_mass = list("x"=16, "y"=8)
can_size_overrides = list("x" = 1)
reagents_to_add = list(/singleton/reagent/kois/clean = 10, /singleton/reagent/toxin/phoron = 5)
@@ -337,6 +348,7 @@
name = "getmore root beer can"
desc = "A classic Earth drink, made from various roots."
icon_state = "root_beer"
+ item_state = "root_beer"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/root_beer = 30)
@@ -353,60 +365,70 @@
name = "\improper Zo'ra Soda Cherry"
desc = "A can of cherry flavoured Zo'ra Soda energy drink, with V'krexi additives. All good energy drinks come in cherry."
icon_state = "zoracherry"
+ item_state = "zoracherry"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/cherry = 30)
/obj/item/reagent_containers/food/drinks/cans/zorasoda/phoron
name = "\improper Zo'ra Soda Phoron Passion"
desc = "A can of grape flavoured Zo'ra Soda energy drink, with V'krexi additives. Tastes nothing like phoron according to Unbound vaurca taste testers."
icon_state = "phoronpassion"
+ item_state = "phoronpassion"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/phoron = 30)
/obj/item/reagent_containers/food/drinks/cans/zorasoda/klax
name = "\improper K'laxan Energy Crush"
desc = "A can of nitrogen-infused creamy orange zest flavoured Zo'ra Soda energy drink, with V'krexi additives. The smooth taste is engineered to near perfection."
icon_state = "klaxancrush"
+ item_state = "klaxancrush"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/klax = 30)
/obj/item/reagent_containers/food/drinks/cans/zorasoda/cthur
name = "\improper C'thur Rockin' Raspberry"
desc = "A can of \"blue raspberry\" flavoured Zo'ra Soda energy drink, with V'krexi additives. Tastes like a more flowery and aromatic raspberry."
icon_state = "cthurberry"
+ item_state = "cthurberry"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/cthur = 30)
/obj/item/reagent_containers/food/drinks/cans/zorasoda/venomgrass
name = "\improper Zo'ra Sour Venom Grass"
desc = "A can of sour \"venom grass\" flavoured Zo'ra Soda energy drink, with V'krexi additives. Tastes like a cloud of angry stinging acidic bees."
icon_state = "sourvenomgrass"
+ item_state = "sourvenomgrass"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/venomgrass = 30)
/obj/item/reagent_containers/food/drinks/cans/zorasoda/hozm // "Contraband"
name = "\improper High Octane Zorane Might"
desc = "A can of mint flavoured Zo'ra Soda energy drink, with a lot of V'krexi additives. Tastes like impaling the roof of your mouth with a freezing cold spear laced with angry bees and road salt.
" + SPAN_DANGER(" WARNING: Not for the faint hearted!")
icon_state = "hozm"
+ item_state = "hozm"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/hozm = 30)
/obj/item/reagent_containers/food/drinks/cans/zorasoda/kois
name = "\improper Zo'ra Soda K'ois Twist"
desc = "A can of K'ois-imitation flavoured Zo'ra Soda energy drink, with V'krexi additives. Contains no K'ois, contrary to what the name may imply."
icon_state = "koistwist"
+ item_state = "koistwist"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/kois = 30)
/obj/item/reagent_containers/food/drinks/cans/zorasoda/drone
name = "\improper Vaurca Drone Fuel"
desc = "A can of industrial fluid flavoured Zo'ra Soda energy drink, with V'krexi additives, meant for Vaurca.
" + SPAN_DANGER(" WARNING: Known to induce vomiting in all species except vaurcae and dionae!")
icon_state = "dronefuel"
+ item_state = "dronefuel"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/drone = 30)
/obj/item/reagent_containers/food/drinks/cans/zorasoda/jelly
name = "\improper Royal Vaurca Jelly"
desc = "A can of..." + SPAN_ITALIC(" sludge?") + " It smells kind of pleasant either way. Royal jelly is a nutritious concentrated substance commonly created by Caretaker Vaurca in order to feed larvae. It is known to have a stimulating effect in most, if not all, species."
icon_state = "royaljelly"
+ item_state = "royaljelly"
reagents_to_add = list(/singleton/reagent/drink/zorasoda/jelly = 30)
/obj/item/reagent_containers/food/drinks/cans/adhomai_milk
name = "fermented fatshouters milk"
desc = "A can of fermented fatshouters milk, imported from Adhomai."
icon_state = "milk_can"
+ item_state = "milk_can"
center_of_mass = list("x"=16, "y"=10)
desc_extended = "Fermend fatshouters milk is a drink that originated among the nomadic populations of Rhazar'Hrujmagh, and it has spread to the rest of Adhomai."
@@ -416,6 +438,7 @@
name = "\improper Hakhma Milk"
desc = "A can of Hakhma beetle milk, sourced from Scarab and Drifter communities."
icon_state = "beetlemilk"
+ item_state = "beetlemilk"
center_of_mass = list("x"=17, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/milk/beetle = 30)
can_size_overrides = list("x" = 1, "y" = -2)
@@ -424,6 +447,7 @@
name = "Cooling Breeze"
desc = "The most refreshing thing you can find on the market, based on a Skrell medicinal plant. No salt or sugar."
icon_state = "dyncan"
+ item_state = "dyncan"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/dynjuice/cold = 30)
@@ -431,6 +455,7 @@
name = "\improper Three Towns Cider"
desc = "A cider made on the west coast of the Moghresian Sea, this is simply one of many brands made in a region known for its craft local butanol, shipped throughout the Wasteland."
icon_state = "three_towns_cider"
+ item_state = "three_towns_cider"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/alcohol/butanol/threetownscider = 30)
@@ -441,6 +466,7 @@
colonists, it was introduced to Adhomai by the Army Expeditionary Force and transformed into a carbonated drink. The beverage is popular with factory workers and university \
students because of its stimulant effect."
icon_state = "hrozamal_soda"
+ item_state = "hrozamal_soda"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/hrozamal_soda = 30)
@@ -449,6 +475,7 @@
name = "diet cola can"
desc = "Comet Cola! Now in diet!"
icon_state = "diet_cola"
+ item_state = "diet_cola"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/diet_cola = 30)
@@ -457,6 +484,7 @@
desc = "Made from the NEW Xanu Prime peaches."
desc_extended = "The rehabilitating environment of Xanu has allowed for small-scale agriculture to bloom. Xanu Rush! Is the number one Coalition soda, despite its dull taste."
icon_state = "xanu_rush"
+ item_state = "xanu_rush"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/drink/peach_soda = 30)
@@ -465,6 +493,7 @@
desc = "Contains only water, malt and hops. Not really as high-quality as the label says, but it's still popular. This particular line of beer is made by Getmore on New Gibson, specifically in the Ovanstad of \
Virklund in a massive beer brewery complex. It quickly became the most consumed kind of beer across the Republic of Biesel and has since been in stock in practically every bar across the nation."
icon_state = "space_beer"
+ item_state = "space_beer"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/alcohol/beer = 40)
@@ -472,20 +501,24 @@
name = "\improper Ebisu Super Dry"
desc = "Konyang's favourite rice beer brand, 200 years running."
icon_state = "ebisu"
+ item_state = "ebisu"
reagents_to_add = list(/singleton/reagent/alcohol/rice_beer = 40)
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma
name = "\improper Shimauma Ichiban"
desc = "Konyang's most middling rice beer brand. Not as popular as Ebisu, but it's comfortable in second place."
icon_state = "shimauma"
+ item_state = "shimauma"
/obj/item/reagent_containers/food/drinks/cans/beer/rice/moonlabor
name = "\improper Moonlabor Malt's"
desc = "Konyang's underdog rice beer brand. Popular amongst New Hai Phongers, for reasons unknown."
icon_state = "moonlabor"
+ item_state = "moonlabor"
/obj/item/reagent_containers/food/drinks/cans/melon_soda
name = "Kansumi Melon Soda"
desc = "Konyang's favourite melon soda, now available in can form!"
icon_state = "melon_soda"
+ item_state = "melon_soda"
reagents_to_add = list(/singleton/reagent/drink/melon_soda = 30)
diff --git a/code/modules/reagents/reagent_containers/food/snacks/baked.dm b/code/modules/reagents/reagent_containers/food/snacks/baked.dm
index af0846a6023..6b0c5c8dc64 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/baked.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/baked.dm
@@ -131,3 +131,69 @@
reagents_to_add = list(/singleton/reagent/nutriment = 6, /singleton/reagent/drugs/psilocybin = 6)
reagent_data = list(/singleton/reagent/nutriment = list("mushroom" = 6))
bitesize = 3
+
+/obj/item/reagent_containers/food/snacks/sliceable/meat_lasagna_tray
+ name = "meat lasagna tray"
+ desc = "Who doesn't love a hot, meaty, cheesy lasagna? Don't worry, there's enough in this tray for everyone! Assuming 'everyone' is 6 people and nobody wants seconds."
+ icon = 'icons/obj/item/reagent_containers/food/baked.dmi'
+ icon_state = "lasagnatray_meat"
+ slice_path = /obj/item/reagent_containers/food/snacks/lasagna_meat_slice
+ slices_num = 6
+ trash = /obj/item/trash/grease
+ drop_sound = /singleton/sound_category/tray_hit_sound
+ center_of_mass = list("x"=16, "y"=17)
+ filling_color = "#e08b2a"
+ reagents_to_add = list(/singleton/reagent/nutriment = 24, /singleton/reagent/nutriment/protein = 24, /singleton/reagent/nutriment/protein/cheese = 12)
+ reagent_data = list(/singleton/reagent/nutriment = list("pasta" = 4, "tomato" = 2))
+ bitesize = 6
+
+/obj/item/reagent_containers/food/snacks/lasagna_meat_slice
+ name = "meat lasagna"
+ desc = "Not Adhomian food, yet... Very popular among Tajarans on Mondays for some reason."
+ icon = 'icons/obj/item/reagent_containers/food/baked.dmi'
+ icon_state = "lasagna_meat"
+ trash = /obj/item/trash/plate
+ filling_color = "#e08b2a"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=12)
+
+/obj/item/reagent_containers/food/snacks/lasagna_meat_slice/update_icon()
+ var/percent_lasagna_meat_slice = round((reagents.total_volume / 10) * 100)
+ switch(percent_lasagna_meat_slice)
+ if(0 to 50)
+ icon_state = "lasagna_meat_half"
+ if(51 to INFINITY)
+ icon_state = "lasagna_meat"
+
+/obj/item/reagent_containers/food/snacks/sliceable/veggie_lasagna_tray
+ name = "veggie lasagna tray"
+ desc = "Cheesy, delicious, and vegetarian! Don't worry, there's enough in this tray for everyone! Assuming 'everyone' is 6 people and nobody wants seconds."
+ icon = 'icons/obj/item/reagent_containers/food/baked.dmi'
+ icon_state = "lasagnatray_veg"
+ slice_path = /obj/item/reagent_containers/food/snacks/lasagna_veggie_slice
+ slices_num = 6
+ trash = /obj/item/trash/grease
+ drop_sound = /singleton/sound_category/tray_hit_sound
+ center_of_mass = list("x"=16, "y"=17)
+ filling_color = "#e08b2a"
+ reagents_to_add = list(/singleton/reagent/nutriment = 48, /singleton/reagent/nutriment/protein/cheese = 12)
+ reagent_data = list(/singleton/reagent/nutriment = list("pasta" = 4, "tomato" = 2, "mushrooms" = 2))
+ bitesize = 6
+
+/obj/item/reagent_containers/food/snacks/lasagna_veggie_slice
+ name = "veggie lasagna"
+ desc = "Layers of pasta, sauce, veggies and mushrooms carefully stacked on each other into an apartment block of deliciousness."
+ icon = 'icons/obj/item/reagent_containers/food/baked.dmi'
+ icon_state = "lasagna_veg"
+ trash = /obj/item/trash/plate
+ filling_color = "#e08b2a"
+ bitesize = 3
+ center_of_mass = list("x"=16, "y"=12)
+
+/obj/item/reagent_containers/food/snacks/lasagna_veggie_slice/update_icon()
+ var/percent_lasagna_veggie_slice = round((reagents.total_volume / 10) * 100)
+ switch(percent_lasagna_veggie_slice)
+ if(0 to 50)
+ icon_state = "lasagna_veg_half"
+ if(51 to INFINITY)
+ icon_state = "lasagna_veg"
diff --git a/code/modules/reagents/reagent_containers/food/snacks/breads.dm b/code/modules/reagents/reagent_containers/food/snacks/breads.dm
index 265a1337c5e..191750a79b0 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/breads.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/breads.dm
@@ -395,7 +395,7 @@
reagent_data = list(/singleton/reagent/nutriment = list("toasted bread" = 2))
bitesize = 2
-/obj/item/reagent_containers/food/snacks/NTellabread
+/obj/item/reagent_containers/food/snacks/ntella_bread
name = "NTella bread slice"
desc = "A slice of bread covered with delicious chocolate-hazelnut spread."
icon = 'icons/obj/item/reagent_containers/food/bread.dmi'
diff --git a/code/modules/reagents/reagent_containers/food/snacks/cultural/human.dm b/code/modules/reagents/reagent_containers/food/snacks/cultural/human.dm
index f46ba79abe2..6f22b0de2f3 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/cultural/human.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/cultural/human.dm
@@ -618,3 +618,23 @@
icon_state = "ladylulaine_slice"
filling_color = "#dbddff"
trash = /obj/item/trash/plate
+
+/obj/item/reagent_containers/food/snacks/pazillo
+ name = "pazillo"
+ desc = "A simple handheld pastry that originates from Assunzione, this is a calzone filled with a mixture of ground chickpeas, onions and tomatoes mixed together. It is sometimes served with olive oil, artichoke spread, or garlic sauce, but can also be eaten on it's own. It's tradtionally considered street food, but can occasionally be found in proper restaurants."
+ icon = 'icons/obj/item/reagent_containers/food/cultural/human.dmi'
+ icon_state = "pazillo"
+ filling_color = "#5c802e"
+ reagents_to_add = list(/singleton/reagent/nutriment/ = 8)
+ bitesize = 2
+ reagent_data = list(/singleton/reagent/nutriment = list("dough" = 5, "chickpeas" = 3, "onion" = 3, "tomato" = 3))
+
+/obj/item/reagent_containers/food/snacks/pazillo/update_icon()
+ var/percent_pazillo = round((reagents.total_volume / 8) * 100)
+ switch(percent_pazillo)
+ if(0 to 50)
+ icon_state = "pazillo_small"
+ if(51 to 95)
+ icon_state = "pazillo_bitten"
+ if(96 to INFINITY)
+ icon_state = "pazillo"
diff --git a/code/modules/reagents/reagent_containers/food/snacks/cultural/unathi.dm b/code/modules/reagents/reagent_containers/food/snacks/cultural/unathi.dm
index 5d65136b493..e01349eff66 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/cultural/unathi.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/cultural/unathi.dm
@@ -190,3 +190,29 @@
reagents_to_add = list(/singleton/reagent/nutriment = 3, /singleton/reagent/nutriment/protein = 8, /singleton/reagent/nutriment/coco = 3, /singleton/reagent/blackpepper = 3)
reagent_data = list(/singleton/reagent/nutriment = list("aghrassh nuts" = 3, "mealy paste" = 3))
bitesize = 5
+
+/obj/item/reagent_containers/food/snacks/sliceable/eyebowl
+ name = "eyebowl"
+ desc = "A zesty stew of ground meat, Moghesian tomato pulp, and ground agghrash nut mixed together and topped with two egg yolks staring back at you like eyes. It can be made with different kinds of meat, and seasoned with either hot sauce or blood. This is a large serving, typically reserved for hungry Unathi, miners, or other folks who have to get by on one big meal to last them a whole day."
+ icon = 'icons/obj/item/reagent_containers/food/cultural/unathi.dmi'
+ icon_state = "eyebowl"
+ trash = /obj/item/trash/custard_bowl
+ reagents_to_add = list(/singleton/reagent/nutriment = 3, /singleton/reagent/nutriment/protein = 12, /singleton/reagent/blackpepper = 2)
+ reagent_data = list(/singleton/reagent/nutriment = list("aghrassh nuts" = 3, "zesty tomatoes" = 5))
+ bitesize = 5
+ drop_sound = 'sound/items/drop/glass.ogg'
+ pickup_sound = 'sound/items/pickup/glass.ogg'
+ slice_path = /obj/item/reagent_containers/food/snacks/hatchbowl
+ slices_num = 2
+ filling_color = "#771504"
+
+/obj/item/reagent_containers/food/snacks/hatchbowl
+ name = "hatchbowl"
+ desc = "Short for 'hatchling eyebowl', this zesty stew of ground meat, Moghesian tomato pulp, and ground agghrash nut topped with an egg yolk is a smaller serving of the eyebowl. It is usually eaten by smaller Unathi, non-Unathi species, or by grown Unathi who just aren't all that hungry. The dish spread throughout the spur and is often enjoyed by other species as well. It can be made with different kinds of meat, and seasoned with either hot sauce or blood."
+ icon = 'icons/obj/item/reagent_containers/food/cultural/unathi.dmi'
+ icon_state = "eyebowl_small"
+ trash = /obj/item/trash/custard_bowl
+ bitesize = 3
+ drop_sound = 'sound/items/drop/glass.ogg'
+ pickup_sound = 'sound/items/pickup/glass.ogg'
+
diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm
index 32805676d63..d5b6c2f4212 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm
@@ -367,20 +367,6 @@
reagents.trans_to(sashimi, transfer_amt)
qdel(src)
-/obj/item/reagent_containers/food/snacks/lasagna
- name = "lasagna"
- desc = "Favorite of cats."
- icon = 'icons/obj/item/reagent_containers/food/meat.dmi'
- icon_state = "lasagna"
- trash = /obj/item/trash/grease
- drop_sound = /singleton/sound_category/tray_hit_sound
- center_of_mass = list("x"=16, "y"=17)
- filling_color = "#EDF291"
-
- reagents_to_add = list(/singleton/reagent/nutriment = 12, /singleton/reagent/nutriment/protein = 12)
- reagent_data = list(/singleton/reagent/nutriment = list("pasta" = 4, "tomato" = 2))
- bitesize = 6
-
/obj/item/reagent_containers/food/snacks/donerkebab
name = "doner kebab"
desc = "A delicious sandwich-like food from ancient Earth. The meat is typically cooked on a vertical rotisserie."
diff --git a/code/modules/reagents/reagent_containers/food/snacks/pastries.dm b/code/modules/reagents/reagent_containers/food/snacks/pastries.dm
index e03650674a5..810957b0825 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/pastries.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/pastries.dm
@@ -28,20 +28,63 @@
/obj/item/reagent_containers/food/snacks/pancakes
name = "pancakes"
+ gender = PLURAL
desc = "Pancakes, delicious."
icon = 'icons/obj/item/reagent_containers/food/pastries.dmi'
icon_state = "pancakes"
trash = /obj/item/trash/plate
reagents_to_add = list(/singleton/reagent/nutriment = 8)
reagent_data = list(/singleton/reagent/nutriment = list("pancake" = 8))
- bitesize = 2
- filling_color = "#EDF291"
+ bitesize = 3
+ filling_color = "#facf7e"
+
+///makes pancakes change their look and name, flavor and description when you add syrup to them instead of having to have them each be an entirely separate food item that has to be made by the cook. This also means ingredient contents carry over if you turn one type of pancake into another.
+/obj/item/reagent_containers/food/snacks/pancakes/on_reagent_change()
+ if(reagents.has_reagent(/singleton/reagent/drink/syrup_chocolate))
+ name = "chocolate pancakes"
+ desc = "Delicious pancakes covered in chocolate syrup."
+ icon_state = "pancakes_chocolate"
+
+ if(reagents.has_reagent(/singleton/reagent/drink/syrup_berry))
+ name = "berry pancakes"
+ desc = "Delicious pancakes covered in berry syrup."
+ icon_state = "pancakes_berry"
+
+ if(reagents.has_reagent(/singleton/reagent/drink/syrup_strawberry))
+ name = "strawberry pancakes"
+ desc = "Delicious pancakes covered in strawberry syrup."
+ icon_state = "pancakes_strawberry"
+
+ if(reagents.has_reagent(/singleton/reagent/drink/syrup_caramel))
+ name = "caramel pancakes"
+ desc = "Delicious pancakes covered in caramel syrup."
+ icon_state = "pancakes_caramel"
+
+ if(reagents.has_reagent(/singleton/reagent/drink/syrup_vanilla))
+ name = "vanilla pancakes"
+ desc = "Delicious pancakes covered in vanilla syrup."
+ icon_state = "pancakes_vanilla"
+
+ if(reagents.has_reagent(/singleton/reagent/drink/syrup_pumpkin))
+ name = "pumpkin spice pancakes"
+ desc = "A delicious autumn breakfast."
+ icon_state = "pancakes_pumpkin"
+
+ if(reagents.has_reagent(/singleton/reagent/drink/syrup_ylphaberry))
+ name = "ylpha berry pancakes"
+ desc = "Overwhelmingly sweet with a side of tangy, a delicious way to wake up!"
+ icon_state = "pancakes_ylpha"
+
+ if(reagents.has_any_reagent(list(/singleton/reagent/nutriment/ketchup, /singleton/reagent/nutriment/mayonnaise, /singleton/reagent/antidexafen, /singleton/reagent/carbon))) //Because scrubbers and quirky people exist.
+ name = "ruined pancakes"
+ desc = "Why? Who hurt you?"
+ icon_state = "pancakes_ruined"
/obj/item/reagent_containers/food/snacks/pancakes/berry
name = "berry pancakes"
desc = "Pancakes with berries, delicious."
icon = 'icons/obj/item/reagent_containers/food/pastries.dmi'
- icon_state = "berry_pancakes"
+ icon_state = "pancakes_berry"
////////////////////////////////////////////WAFFLES////////////////////////////////////////////
@@ -413,19 +456,19 @@
reagents_to_add = list(/singleton/reagent/nutriment = 3)
reagent_data = list(/singleton/reagent/nutriment = list("cake" = 5, "sweetness" = 5, "apple" = 5))
-/obj/item/reagent_containers/food/snacks/sliceable/cake/NTellacheesecake
+/obj/item/reagent_containers/food/snacks/sliceable/cake/ntella_cheesecake
name = "NTella cheesecake"
desc = "An elaborate layer cheesecake made with chocolate hazelnut spread. You gain calories just by looking at it for too long."
icon = 'icons/obj/item/reagent_containers/food/pastries.dmi'
icon_state = "NTellacheesecake"
- slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/NTellacheesecake_slice
+ slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/ntella_cheesecake_slice
slices_num = 5
filling_color = "#331c03"
center_of_mass = list("x"=16, "y"=10)
reagents_to_add = list(/singleton/reagent/nutriment = 20)
reagent_data = list(/singleton/reagent/nutriment = list("hazelnut chocolate" = 15, "creamy cheese" = 10, "crunchy cookie base" = 5))
-/obj/item/reagent_containers/food/snacks/cakeslice/NTellacheesecake_slice
+/obj/item/reagent_containers/food/snacks/cakeslice/ntella_cheesecake_slice
name = "NTella cheesecake slice"
desc = "A slice of cake marrying the chocolate taste of NTella with the creamy smoothness of cheesecake, all on a cookie crumble base."
icon = 'icons/obj/item/reagent_containers/food/pastries.dmi'
@@ -435,6 +478,28 @@
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+/obj/item/reagent_containers/food/snacks/sliceable/cake/starcake //
+ name = "starcake"
+ desc = "This pound cake mixes citrus fruits with cocoa, and has a layer of creamy glaze on top. It's dense and relatively simple to make. You can find it in various coffee shops and bakeries around the spur, but for some uknown reason, in the weeping stars system it has become somewhat associated with funerals over the years."
+ icon = 'icons/obj/item/reagent_containers/food/pastries.dmi'
+ icon_state = "starcake"
+ slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/starcake
+ slices_num = 6
+ filling_color = "#f0b97b"
+ center_of_mass = list("x"=16, "y"=10)
+ reagents_to_add = list(/singleton/reagent/nutriment = 15, /singleton/reagent/nutriment/glucose = 3)
+ reagent_data = list(/singleton/reagent/nutriment = list("cake" = 10, "cocoa" = 10, "orange" = 15))
+
+/obj/item/reagent_containers/food/snacks/cakeslice/starcake
+ name = "orange cake slice"
+ desc = "A thin slice of pound cake that mixes citrus fruits with cocoa, and has a layer of creamy glaze on top. Enjoyed with a side of coffee or tea all over the spur, in the weeping stars system it is also frequently served in funerals for some reason."
+ icon = 'icons/obj/item/reagent_containers/food/pastries.dmi'
+ icon_state = "starcake_slice"
+ trash = /obj/item/trash/plate
+ filling_color = "#f0b97b"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=14)
+
//Predesigned pies
//=======================
/obj/item/reagent_containers/food/snacks/berryclafoutis
diff --git a/code/modules/surgery/facial_surgery.dm b/code/modules/surgery/facial_surgery.dm
index c33e24e3eb2..456d6383288 100644
--- a/code/modules/surgery/facial_surgery.dm
+++ b/code/modules/surgery/facial_surgery.dm
@@ -81,7 +81,7 @@
target.dna.real_name = getName
if(target.mind)
target.mind.name = target.name
- target.change_appearance(APPEARANCE_PLASTICSURGERY, user, TRUE, ui_state = default_state, state_object = target)
+ target.change_appearance(APPEARANCE_PLASTICSURGERY, user, TRUE, ui_state = GLOB.default_state, state_object = target)
target.op_stage.face = FACE_ALTERED
@@ -229,7 +229,7 @@
target.dna.real_name = getName
if(target.mind)
target.mind.name = target.name
- target.change_appearance(APPEARANCE_PLASTICSURGERY, user, TRUE, ui_state = default_state, state_object = target)
+ target.change_appearance(APPEARANCE_PLASTICSURGERY, user, TRUE, ui_state = GLOB.default_state, state_object = target)
target.op_stage.face = FACE_ALTERED
diff --git a/code/modules/synthesized_instruments/real_instruments.dm b/code/modules/synthesized_instruments/real_instruments.dm
index 9e52907b365..49c726800c1 100644
--- a/code/modules/synthesized_instruments/real_instruments.dm
+++ b/code/modules/synthesized_instruments/real_instruments.dm
@@ -45,12 +45,12 @@
var/t = ""
do
t = html_encode(input(usr, "Please paste the entire song, formatted:", text("[]", owner.name), t) as message)
- if(!CanInteractWith(usr, owner, physical_state))
+ if(!CanInteractWith(usr, owner, GLOB.physical_state))
return
if(length(t) >= 2*src.maximum_lines*src.maximum_line_length)
var/cont = input(usr, "Your message is too long! Would you like to continue editing it?", "", "yes") in list("yes", "no")
- if(!CanInteractWith(usr, owner, physical_state))
+ if(!CanInteractWith(usr, owner, GLOB.physical_state))
return
if(cont == "no")
break
@@ -98,7 +98,7 @@
src.player.song.sustain_timer = max(min(player.song.sustain_timer+value, musical_config.longest_sustain_timer), 1)
if ("soft_coeff")
var/new_coeff = input(usr, "from [musical_config.gentlest_drop] to [musical_config.steepest_drop]") as num
- if(!CanInteractWith(usr, owner, physical_state))
+ if(!CanInteractWith(usr, owner, GLOB.physical_state))
return
new_coeff = round(min(max(new_coeff, musical_config.gentlest_drop), musical_config.steepest_drop), 0.001)
src.player.song.soft_coeff = new_coeff
@@ -112,7 +112,7 @@
categories |= instrument.category
var/category = input(usr, "Choose a category") as null|anything in categories
- if(!CanInteractWith(usr, owner, physical_state))
+ if(!CanInteractWith(usr, owner, GLOB.physical_state))
return
var/list/instruments_available = list()
for (var/key in as_list)
@@ -121,7 +121,7 @@
instruments_available += key
var/new_instrument = input(usr, "Choose an instrument") as null|anything in instruments_available
- if(!CanInteractWith(usr, owner, physical_state))
+ if(!CanInteractWith(usr, owner, GLOB.physical_state))
return
if (new_instrument)
src.player.song.instrument_data = instruments[new_instrument]
diff --git a/code/modules/tgui/external.dm b/code/modules/tgui/external.dm
index 04715ec05d0..48235d976f5 100644
--- a/code/modules/tgui/external.dm
+++ b/code/modules/tgui/external.dm
@@ -119,7 +119,7 @@
* This is a proc over a var for memory reasons
*/
/datum/proc/ui_state(mob/user)
- return default_state
+ return GLOB.default_state
/**
* global
diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm
index 051d78fa863..de537ef90e3 100644
--- a/code/modules/tgui/states.dm
+++ b/code/modules/tgui/states.dm
@@ -119,7 +119,7 @@
return ..()
/// NanoUI compat, remove when done
-/datum/proc/CanUseTopic(mob/user, datum/ui_state/state = default_state)
+/datum/proc/CanUseTopic(mob/user, datum/ui_state/state = GLOB.default_state)
var/datum/src_object = ui_host()
return state.can_use_topic(src_object, user)
diff --git a/code/modules/tgui/states/admin.dm b/code/modules/tgui/states/admin.dm
index f43213ffdc2..7eeefe02812 100644
--- a/code/modules/tgui/states/admin.dm
+++ b/code/modules/tgui/states/admin.dm
@@ -9,11 +9,11 @@
* Checks that the user has the correlating rights.
*/
-/var/global/datum/ui_state/admin_state/admin_state = new(R_ADMIN)
-/var/global/datum/ui_state/admin_state/moderator_state = new(R_MOD)
-/var/global/datum/ui_state/admin_state/debug_state = new(R_DEBUG)
-/var/global/datum/ui_state/admin_state/fun_state = new(R_FUN)
-/var/global/datum/ui_state/admin_state/staff_state = new()
+GLOBAL_DATUM_INIT(admin_state, /datum/ui_state/admin_state, new(R_ADMIN))
+GLOBAL_DATUM_INIT(moderator_state, /datum/ui_state/admin_state, new(R_MOD))
+GLOBAL_DATUM_INIT(debug_state, /datum/ui_state/admin_state, new(R_DEBUG))
+GLOBAL_DATUM_INIT(fun_state, /datum/ui_state/admin_state, new(R_FUN))
+GLOBAL_DATUM_INIT(staff_state, /datum/ui_state/admin_state, new)
/datum/ui_state/admin_state
var/rights_to_check = null
diff --git a/code/modules/tgui/states/always.dm b/code/modules/tgui/states/always.dm
index 6a6cd6d75e9..2406dbb2b9b 100644
--- a/code/modules/tgui/states/always.dm
+++ b/code/modules/tgui/states/always.dm
@@ -9,7 +9,7 @@
* Always grants the user UI_INTERACTIVE. Period.
*/
-var/global/datum/ui_state/always_state/always_state = new()
+GLOBAL_DATUM_INIT(always_state, /datum/ui_state/always_state, new)
/datum/ui_state/always_state/can_use_topic(src_object, mob/user)
return UI_INTERACTIVE
diff --git a/code/modules/tgui/states/conscious.dm b/code/modules/tgui/states/conscious.dm
index ba1f621b527..8e35a97da32 100644
--- a/code/modules/tgui/states/conscious.dm
+++ b/code/modules/tgui/states/conscious.dm
@@ -9,7 +9,7 @@
* Only checks if the user is conscious.
*/
-var/global/datum/ui_state/conscious_state/conscious_state = new
+GLOBAL_DATUM_INIT(conscious_state, /datum/ui_state/conscious_state, new)
/datum/ui_state/conscious_state/can_use_topic(src_object, mob/user)
if(user.stat == CONSCIOUS)
diff --git a/code/modules/tgui/states/contained.dm b/code/modules/tgui/states/contained.dm
index 5af1c93bd94..d84bbc0ebe3 100644
--- a/code/modules/tgui/states/contained.dm
+++ b/code/modules/tgui/states/contained.dm
@@ -9,7 +9,7 @@
* Checks that the user is inside the src_object.
*/
-var/global/datum/ui_state/contained_state/contained_state = new
+GLOBAL_DATUM_INIT(contained_state, /datum/ui_state/contained_state, new)
/datum/ui_state/contained_state/can_use_topic(atom/src_object, mob/user)
if(!src_object.contains(user))
diff --git a/code/modules/tgui/states/deep_inventory.dm b/code/modules/tgui/states/deep_inventory.dm
index 6291b663a69..a7351a0d2d9 100644
--- a/code/modules/tgui/states/deep_inventory.dm
+++ b/code/modules/tgui/states/deep_inventory.dm
@@ -10,7 +10,7 @@
* (backpack, box, toolbox, etc) inventory.
*/
-var/global/datum/ui_state/deep_inventory_state/deep_inventory_state = new
+GLOBAL_DATUM_INIT(deep_inventory_state, /datum/ui_state/deep_inventory_state, new)
/datum/ui_state/deep_inventory_state/can_use_topic(src_object, mob/user)
if(!user.contains(src_object))
diff --git a/code/modules/tgui/states/default.dm b/code/modules/tgui/states/default.dm
index 45209cb3e6a..d40a2e6b91b 100644
--- a/code/modules/tgui/states/default.dm
+++ b/code/modules/tgui/states/default.dm
@@ -10,7 +10,7 @@
* and view for robots.
*/
-var/global/datum/ui_state/default/default_state = new
+GLOBAL_DATUM_INIT(default_state, /datum/ui_state/default, new)
/datum/ui_state/default/can_use_topic(src_object, mob/user)
return user.default_can_use_topic(src_object) // Call the individual mob-overridden procs.
diff --git a/code/modules/tgui/states/hands.dm b/code/modules/tgui/states/hands.dm
index 188a313f394..3ea6bb0b981 100644
--- a/code/modules/tgui/states/hands.dm
+++ b/code/modules/tgui/states/hands.dm
@@ -9,7 +9,7 @@
* Checks that the src_object is in the user's hands.
*/
-var/global/datum/ui_state/hands_state/hands_state = new
+GLOBAL_DATUM_INIT(hands_state, /datum/ui_state/hands_state, new)
/datum/ui_state/hands_state/can_use_topic(src_object, mob/user)
. = user.shared_ui_interaction(src_object)
diff --git a/code/modules/tgui/states/heavy_vehicle.dm b/code/modules/tgui/states/heavy_vehicle.dm
new file mode 100644
index 00000000000..fc8fe8f27bc
--- /dev/null
+++ b/code/modules/tgui/states/heavy_vehicle.dm
@@ -0,0 +1,24 @@
+/*!
+ * Copyright (c) 2020 Aleksej Komarov
+ * SPDX-License-Identifier: MIT
+ */
+
+/**
+ * tgui state: heavy_vehicle
+ *
+ * Checks that the user is inside a mech, that the mech is powered and is the right one.
+ *
+ */
+
+GLOBAL_DATUM_INIT(heavy_vehicle_state, /datum/ui_state/heavy_vehicle, new)
+
+/datum/ui_state/heavy_vehicle/can_use_topic(src_object, mob/user)
+ . = user.shared_ui_interaction(src_object)
+
+ if(!istype(src_object, /obj/item/mecha_equipment))
+ return
+ var/obj/item/mecha_equipment/mecha_equip = src_object
+ if(ismech(user.loc))
+ var/mob/living/heavy_vehicle/mech = user.loc
+ if(mecha_equip.owner == mech && mech.power == MECH_POWER_ON)
+ return UI_INTERACTIVE
diff --git a/code/modules/tgui/states/human_adjacent.dm b/code/modules/tgui/states/human_adjacent.dm
index ba316758b99..b9208f96cd6 100644
--- a/code/modules/tgui/states/human_adjacent.dm
+++ b/code/modules/tgui/states/human_adjacent.dm
@@ -10,7 +10,7 @@
* human adjacent user.
*/
-var/global/datum/ui_state/human_adjacent_state/human_adjacent_state = new
+GLOBAL_DATUM_INIT(human_adjacent_state, /datum/ui_state/human_adjacent_state, new)
/datum/ui_state/human_adjacent_state/can_use_topic(src_object, mob/user)
. = user.default_can_use_topic(src_object)
diff --git a/code/modules/tgui/states/human_adjacent_loc.dm b/code/modules/tgui/states/human_adjacent_loc.dm
index bb93882458e..a2d1d9299f4 100644
--- a/code/modules/tgui/states/human_adjacent_loc.dm
+++ b/code/modules/tgui/states/human_adjacent_loc.dm
@@ -5,7 +5,7 @@
* human adjacent user.
*/
-var/global/datum/ui_state/human_adjacent_loc_state/human_adjacent_loc_state = new
+GLOBAL_DATUM_INIT(human_adjacent_loc_state, /datum/ui_state/human_adjacent_loc_state, new)
/datum/ui_state/human_adjacent_loc_state/can_use_topic(src_object, mob/user)
var/turf/src_object_turf = get_turf(src_object)
diff --git a/code/modules/tgui/states/inventory.dm b/code/modules/tgui/states/inventory.dm
index 43ff41ce6fe..4bc121b278a 100644
--- a/code/modules/tgui/states/inventory.dm
+++ b/code/modules/tgui/states/inventory.dm
@@ -10,7 +10,7 @@
* (hand, ear, pocket, belt, etc) inventory.
*/
-var/global/datum/ui_state/inventory_state/inventory_state = new
+GLOBAL_DATUM_INIT(inventory_state, /datum/ui_state/inventory_state, new)
/datum/ui_state/inventory_state/can_use_topic(src_object, mob/user)
if(!(src_object in user))
diff --git a/code/modules/tgui/states/never.dm b/code/modules/tgui/states/never.dm
index 21e19e38da0..dc081960b08 100644
--- a/code/modules/tgui/states/never.dm
+++ b/code/modules/tgui/states/never.dm
@@ -6,10 +6,10 @@
/**
* tgui state: never_state
*
- * Always closes the UI, no matter what. See the ui_state in religious_tool.dm to see an example
+ * Always closes the UI, no matter what.
*/
-var/global/datum/ui_state/never_state/never_state = new
+GLOBAL_DATUM_INIT(never_state, /datum/ui_state/never_state, new)
/datum/ui_state/never_state/can_use_topic(src_object, mob/user)
return UI_CLOSE
diff --git a/code/modules/tgui/states/new_player.dm b/code/modules/tgui/states/new_player.dm
index 252dad4e7e8..cd33bcfcfae 100644
--- a/code/modules/tgui/states/new_player.dm
+++ b/code/modules/tgui/states/new_player.dm
@@ -4,7 +4,7 @@
* Checks that the user is a /mob/dead/new_player
*/
-var/global/datum/ui_state/new_player_state/new_player_state = new
+GLOBAL_DATUM_INIT(new_player_state, /datum/ui_state/new_player_state, new)
/datum/ui_state/new_player_state/can_use_topic(src_object, mob/user)
return isnewplayer(user) ? UI_INTERACTIVE : UI_CLOSE
diff --git a/code/modules/tgui/states/not_incapacitated.dm b/code/modules/tgui/states/not_incapacitated.dm
index e8fa10131b0..49ba2460151 100644
--- a/code/modules/tgui/states/not_incapacitated.dm
+++ b/code/modules/tgui/states/not_incapacitated.dm
@@ -9,7 +9,7 @@
* Checks that the user isn't incapacitated
*/
-var/global/datum/ui_state/not_incapacitated_state/not_incapacitated_state = new
+GLOBAL_DATUM_INIT(not_incapacitated_state, /datum/ui_state/not_incapacitated_state, new)
/**
* tgui state: not_incapacitated_turf_state
diff --git a/code/modules/tgui/states/notcontained.dm b/code/modules/tgui/states/notcontained.dm
index 1fa2361a696..018e0fa0304 100644
--- a/code/modules/tgui/states/notcontained.dm
+++ b/code/modules/tgui/states/notcontained.dm
@@ -10,7 +10,7 @@
* default checks.
*/
-var/global/datum/ui_state/notcontained_state/notcontained_state = new
+GLOBAL_DATUM_INIT(notcontained_state, /datum/ui_state/notcontained_state, new)
/datum/ui_state/notcontained_state/can_use_topic(atom/src_object, mob/user)
. = user.shared_ui_interaction(src_object)
diff --git a/code/modules/tgui/states/observer.dm b/code/modules/tgui/states/observer.dm
index 6a5801ff1cf..4081fd7dc21 100644
--- a/code/modules/tgui/states/observer.dm
+++ b/code/modules/tgui/states/observer.dm
@@ -9,7 +9,7 @@
* Checks that the user is an observer/ghost.
*/
-var/global/datum/ui_state/observer_state/observer_state = new
+GLOBAL_DATUM_INIT(observer_state, /datum/ui_state/observer_state, new)
/datum/ui_state/observer_state/can_use_topic(src_object, mob/user)
if(isobserver(user))
diff --git a/code/modules/tgui/states/physical.dm b/code/modules/tgui/states/physical.dm
index d835be480c0..216b39281d1 100644
--- a/code/modules/tgui/states/physical.dm
+++ b/code/modules/tgui/states/physical.dm
@@ -9,7 +9,7 @@
* Short-circuits the default state to only check physical distance.
*/
-var/global/datum/ui_state/physical/physical_state = new
+GLOBAL_DATUM_INIT(physical_state, /datum/ui_state/physical, new)
/datum/ui_state/physical/can_use_topic(src_object, mob/user)
. = user.shared_ui_interaction(src_object)
diff --git a/code/modules/tgui/states/reverse_contained.dm b/code/modules/tgui/states/reverse_contained.dm
index 2f1eb5789a1..a6d1034a789 100644
--- a/code/modules/tgui/states/reverse_contained.dm
+++ b/code/modules/tgui/states/reverse_contained.dm
@@ -10,7 +10,7 @@
* Checks if src_object is inside of user.
*/
-var/global/datum/ui_state/reverse_contained_state/reverse_contained_state = new
+GLOBAL_DATUM_INIT(reverse_contained_state, /datum/ui_state/reverse_contained_state, new)
/datum/ui_state/reverse_contained_state/can_use_topic(atom/src_object, mob/user)
if(!user.contains(src_object))
diff --git a/code/modules/tgui/states/self.dm b/code/modules/tgui/states/self.dm
index 970ac4221a9..f7cef3f6005 100644
--- a/code/modules/tgui/states/self.dm
+++ b/code/modules/tgui/states/self.dm
@@ -9,7 +9,7 @@
* Only checks that the user and src_object are the same.
*/
-var/global/datum/ui_state/self_state/self_state = new
+GLOBAL_DATUM_INIT(self_state, /datum/ui_state/self_state, new)
/datum/ui_state/self_state/can_use_topic(src_object, mob/user)
if(src_object != user)
diff --git a/code/modules/tgui/states/zlevel.dm b/code/modules/tgui/states/zlevel.dm
index 3fb81d3b725..f1a2282b3c2 100644
--- a/code/modules/tgui/states/zlevel.dm
+++ b/code/modules/tgui/states/zlevel.dm
@@ -9,7 +9,7 @@
* Only checks that the Z-level of the user and src_object are the same.
*/
-var/global/datum/ui_state/z_state/z_state = new
+GLOBAL_DATUM_INIT(z_state, /datum/ui_state/z_state, new)
/datum/ui_state/z_state/can_use_topic(src_object, mob/user)
var/turf/turf_obj = get_turf(src_object)
diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm
index 213bbde9e34..a1d234cce5a 100644
--- a/code/modules/tgui/tgui.dm
+++ b/code/modules/tgui/tgui.dm
@@ -60,7 +60,7 @@
src_object = src_object)
src.user = user
src.src_object = src_object
- src.window_key = "[text_ref(src_object)]-main"
+ src.window_key = "[REF(src_object)]-main"
src.interface = interface
if(title)
src.title = title
diff --git a/code/modules/tgui_input/alert.dm b/code/modules/tgui_input/alert.dm
index 030f3abd7cb..01c1375ac60 100644
--- a/code/modules/tgui_input/alert.dm
+++ b/code/modules/tgui_input/alert.dm
@@ -94,7 +94,7 @@
closed = TRUE
/datum/tgui_alert/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/tgui_alert/ui_static_data(mob/user)
var/list/data = list()
diff --git a/code/modules/tgui_input/list.dm b/code/modules/tgui_input/list.dm
index fb53698ce02..405a815a414 100644
--- a/code/modules/tgui_input/list.dm
+++ b/code/modules/tgui_input/list.dm
@@ -103,7 +103,7 @@
closed = TRUE
/datum/tgui_list_input/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/tgui_list_input/ui_static_data(mob/user)
var/list/data = list()
diff --git a/code/modules/tgui_input/number.dm b/code/modules/tgui_input/number.dm
index f3bb7cc42cb..988d344112b 100644
--- a/code/modules/tgui_input/number.dm
+++ b/code/modules/tgui_input/number.dm
@@ -108,7 +108,7 @@
closed = TRUE
/datum/tgui_input_number/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/tgui_input_number/ui_static_data(mob/user)
var/list/data = list()
diff --git a/code/modules/tgui_input/text.dm b/code/modules/tgui_input/text.dm
index 3336b5f84d4..32021830c2c 100644
--- a/code/modules/tgui_input/text.dm
+++ b/code/modules/tgui_input/text.dm
@@ -106,7 +106,7 @@
closed = TRUE
/datum/tgui_input_text/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/datum/tgui_input_text/ui_static_data(mob/user)
var/list/data = list()
diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm
index 244c59d0192..f5372fb822b 100644
--- a/code/modules/tgui_panel/tgui_panel.dm
+++ b/code/modules/tgui_panel/tgui_panel.dm
@@ -60,7 +60,7 @@
*/
/datum/tgui_panel/proc/on_initialize_timed_out()
// Currently does nothing but sending a message to old chat.
- to_target(client, "Failed to load fancy chat, click HERE to attempt to reload it.")
+ to_target(client, "Failed to load fancy chat, click HERE to attempt to reload it.")
/**
* private
diff --git a/code/modules/vehicles/bike.dm b/code/modules/vehicles/bike.dm
index e1281c211e9..f2f7d8c4c4a 100644
--- a/code/modules/vehicles/bike.dm
+++ b/code/modules/vehicles/bike.dm
@@ -1,11 +1,14 @@
/obj/vehicle/bike
name = "space-bike"
desc = "Space wheelies! Woo!"
- desc_info = "Click-drag yourself onto the bike to climb onto it.
\
+ desc_info = "\
+ - Click-drag yourself onto the bike to climb onto it.
\
- Click-drag it onto yourself to access its mounted storage.
\
- CTRL-click the bike to toggle the engine.
\
+ - Click the bike with a key to put it in, and click the bike with empty hand to take it out. The bike won't run without a key.
\
- ALT-click to toggle the kickstand which prevents movement by driving and dragging.
\
- - Click the resist button or type \"resist\" in the command bar at the bottom of your screen to get off the bike."
+ - Click the resist button or type \"resist\" in the command bar at the bottom of your screen to get off the bike.
\
+ "
icon = 'icons/obj/vehicle/bike.dmi'
icon_state = "bike_off"
dir = SOUTH
@@ -30,6 +33,25 @@
var/kickstand = TRUE
var/can_hover = TRUE
+ /// Registration plate string of the vehicle, visible on examine,
+ /// to distingush different vehicles of the same type from each other.
+ /// Also used to check if the key is for this vehicle.
+ /// If null, it is randomly generated on init.
+ var/registration_plate = null
+ /// Key type accepted in vehicle ignition.
+ var/key_type = /obj/item/key/bike
+ /// Actual key object in the vehicle ignition, or null if no key in ignition.
+ /// To actually start the vehicle, key data needs to match with the registration plate string.
+ var/obj/item/key/key = null
+ /// If TRUE, vehicle spawns with the key that matches its registration plate string.
+ /// If FALSE, the key needs to be mapped/spawned somewhere outside of the vehicle,
+ /// otherwise it will be an unusable prop.
+ var/spawns_with_key = TRUE
+
+/obj/vehicle/bike/Destroy()
+ QDEL_NULL(key)
+ return ..()
+
/obj/vehicle/bike/setup_vehicle()
..()
ion = new ion_type(src)
@@ -38,6 +60,23 @@
icon_state = "[bike_icon]_off"
if(storage_type)
storage_compartment = new storage_type(src)
+ if(!registration_plate)
+ generate_registration_plate()
+ if(spawns_with_key)
+ key = new key_type(src)
+ key.key_data = registration_plate
+
+/obj/vehicle/bike/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
+ . = ..()
+ if(distance <= 4)
+ . += "\The [src] has a small registration plate on the back, '[registration_plate]'."
+ if(key)
+ . += "\The [src] has \a [key] in."
+ else
+ . += "\The [src] does not have a key in."
+
+/obj/vehicle/bike/proc/generate_registration_plate()
+ registration_plate = "[rand(100,999)]-[rand(1000,9999)]"
/obj/vehicle/bike/CtrlClick(var/mob/user)
if(Adjacent(user) && anchored)
@@ -50,9 +89,17 @@
return
if(!on)
- turn_on()
- src.visible_message("\The [src] rumbles to life.", "You hear something rumble deeply.")
- playsound(src, 'sound/machines/vehicles/bike_start.ogg', 100, 1)
+ if(!key)
+ to_chat(user, SPAN_WARNING("You cannot turn \the [src] on, without a key."))
+ return
+
+ if((key.key_data != registration_plate))
+ user.visible_message("\The [user] turns \a [key] in the ignition of \the [src].", "You turn \a [key] in the ignition of \the [src], but it lets out a sharp buzz.")
+ else
+ user.visible_message("\The [user] turns \a [key] in the ignition of \the [src].", "You turn \a [key] in the ignition of \the [src], and it beeps happily.")
+ turn_on()
+ src.visible_message("\The [src] rumbles to life.", "You hear something rumble deeply.")
+ playsound(src, 'sound/machines/vehicles/bike_start.ogg', 100, 1)
else
turn_off()
src.visible_message("\The [src] putters before turning off.", "You hear something putter slowly.")
@@ -83,7 +130,6 @@
var/mob/M = pulledby
M.stop_pulling()
-
kickstand = !kickstand
anchored = (kickstand || on)
@@ -105,9 +151,12 @@
return
/obj/vehicle/bike/attack_hand(var/mob/user as mob)
- if(user == load)
- unload(load)
- to_chat(user, "You unbuckle yourself from \the [src]")
+ if(key)
+ to_chat(user, "You take \the [key] out of \the [src]")
+ user.put_in_hands(key)
+ key = null
+ if(on)
+ toggle_engine(user)
else if(user != load && load)
user.visible_message ("[user] starts to unbuckle [load] from \the [src]!")
if(do_after(user, 8 SECONDS, src))
@@ -115,6 +164,20 @@
to_chat(user, "You unbuckle [load] from \the [src]")
to_chat(load, "You were unbuckled from \the [src] by [user]")
+/obj/vehicle/bike/attackby(obj/item/attacking_item, mob/user)
+ if(istype(attacking_item, /obj/item/key))
+ if(!key)
+ if(istype(attacking_item, key_type))
+ user.drop_from_inventory(attacking_item, src)
+ key = attacking_item
+ to_chat(user, SPAN_NOTICE("You put \the [attacking_item] in \the [src]."))
+ update_icon()
+ else
+ to_chat(user, SPAN_NOTICE("You try to put \the [attacking_item] in \the [src], but it does not fit."))
+ else
+ to_chat(user, SPAN_NOTICE("\The [src] already has a key in it."))
+ ..()
+
/obj/vehicle/bike/relaymove(mob/user, direction)
if(user != load || !on || user.incapacitated())
return
@@ -373,6 +436,10 @@
space_speed = 0
protection_percent = 10
can_hover = FALSE
+ key_type = /obj/item/key/bike/sport
+
+/obj/vehicle/bike/motor/generate_registration_plate()
+ registration_plate = "[rand(10,99)]S-[rand(1000,9999)]"
/obj/vehicle/bike/motor/blue
icon_state = "bluesport_on"
@@ -391,19 +458,31 @@
desc = "A two-wheeled vehicle meant for easy riding. This comes in stark white colors with flashy lights, indicating it is the law. It has the insignias of Konyang's police force."
icon_state = "konyangpolice_on"
bike_icon = "konyangpolice"
+ key_type = /obj/item/key/bike/police
+
+/obj/vehicle/bike/motor/police_konyang/generate_registration_plate()
+ registration_plate = "[rand(10,99)]P-[rand(1000,9999)]"
/obj/vehicle/bike/motor/moped
name = "moped"
desc = "A cheap, two-wheeled motorized bicycle."
icon_state = "greenmoped_on"
bike_icon = "greenmoped"
- land_speed = 2//slower than a sport bike but will still get you around big maps
+ land_speed = 2 // slower than a sport bike but will still get you around big maps
+ key_type = /obj/item/key/bike/moped
+
+/obj/vehicle/bike/motor/moped/generate_registration_plate()
+ registration_plate = "[rand(10,99)]M-[rand(1000,9999)]"
/obj/vehicle/bike/motor/moped/police_konyang
name = "police moped"
desc = "A cheap, two-wheeled motorized bicycle. This comes in stark white colors with flashy lights, indicating it is the law. It has the insignias of Konyang's police force."
icon_state = "konyangpolicemoped_on"
bike_icon = "konyangpolicemoped"
+ key_type = /obj/item/key/bike/police
+
+/obj/vehicle/bike/motor/moped/police_konyang/generate_registration_plate()
+ registration_plate = "[rand(10,99)]P-[rand(1000,9999)]"
/obj/vehicle/bike/motor/moped/red
icon_state = "redmoped_on"
diff --git a/code/modules/vehicles/droppod.dm b/code/modules/vehicles/droppod.dm
index 832f66ef418..c8450272326 100644
--- a/code/modules/vehicles/droppod.dm
+++ b/code/modules/vehicles/droppod.dm
@@ -170,7 +170,7 @@
ui.open()
/obj/vehicle/droppod/ui_state(mob/user)
- return always_state
+ return GLOB.always_state
/obj/vehicle/droppod/ui_data(mob/user)
var/list/data = list()
diff --git a/code/unit_tests/map_tests.dm b/code/unit_tests/map_tests.dm
index 58357d6e1e1..b14fafc5dc4 100644
--- a/code/unit_tests/map_tests.dm
+++ b/code/unit_tests/map_tests.dm
@@ -341,5 +341,36 @@
return 1
+/datum/unit_test/map_test/stairs_mapped
+ name = "MAP: Stairs"
+
+/datum/unit_test/map_test/stairs_mapped/start_test()
+ var/test_status = UNIT_TEST_PASSED
+
+ //Loop through all the stairs in the map
+ for(var/obj/structure/stairs/a_stair in world)
+
+ //See if there is any other stair in the same turf
+ for(var/obj/structure/stairs/possibly_another_stair in get_turf(a_stair))
+ if(a_stair != possibly_another_stair)
+ test_status = TEST_FAIL("Duplicate stairs located in [a_stair.x]X - [a_stair.y]Y - [a_stair.z]Z! \
+ Only one stair should exist inside a turf.")
+
+ if(is_abstract(a_stair))
+ test_status = TEST_FAIL("The stairs located in [a_stair.x]X - [a_stair.y]Y - [a_stair.z]Z are of an abstract type ([a_stair.type]) that should never be mapped!")
+
+ //Check that noone changed the bounds in the map editor
+ if(a_stair.bound_height != initial(a_stair.bound_height) || a_stair.bound_width != initial(a_stair.bound_width) || \
+ a_stair.bound_x != initial(a_stair.bound_x) || a_stair.bound_y != initial(a_stair.bound_y))
+
+ test_status = TEST_FAIL("The stairs at [a_stair.x]X - [a_stair.y]Y - [a_stair.z]Z have map-defined bounds!")
+
+ if(test_status == UNIT_TEST_PASSED)
+ TEST_PASS("All the mapped stairs are valid.")
+ else
+ TEST_FAIL("Some mapped stairs are invalid!")
+
+ return test_status
+
#undef SUCCESS
#undef FAILURE
diff --git a/code/unit_tests/ss_test.dm b/code/unit_tests/ss_test.dm
index 90440b8e010..2f7412b417b 100644
--- a/code/unit_tests/ss_test.dm
+++ b/code/unit_tests/ss_test.dm
@@ -14,7 +14,7 @@
SUBSYSTEM_DEF(unit_tests_config)
name = "Unit Test Config"
- init_order = SS_INIT_PERSISTENT_CONFIG
+ init_order = INIT_ORDER_PERSISTENT_CONFIGURATION
flags = SS_NO_FIRE
var/datum/unit_test/UT // Logging/output, use this to log things from outside where a specific unit_test is defined
@@ -129,7 +129,7 @@ SUBSYSTEM_DEF(unit_tests)
for(var/thing in subtypesof(/datum/unit_test) - typecacheof(SSatlas.current_map.excluded_test_types))
var/datum/unit_test/D = new thing
- if(findtext(D.name, "template"))
+ if(findtext(D.name, "template") || is_abstract(D))
qdel(D)
continue
diff --git a/code/unit_tests/stairs_type.dm b/code/unit_tests/stairs_type.dm
new file mode 100644
index 00000000000..346aefd7157
--- /dev/null
+++ b/code/unit_tests/stairs_type.dm
@@ -0,0 +1,33 @@
+/datum/unit_test/stairs_type
+ name = "Test stairs types"
+ groups = list("generic")
+ priority = 1
+
+/datum/unit_test/stairs_type/start_test()
+ var/test_status = UNIT_TEST_PASSED
+
+ for(var/obj/structure/stairs/stair_type as anything in subtypesof(/obj/structure/stairs))
+ //No need for abstract stairs to respect this really
+ if(is_abstract(stair_type))
+ continue
+
+ //The bounds have to be set based on the direction of the stairs, that must be set in code for sanity
+ switch(initial(stair_type.dir))
+
+ if(NORTH)
+ if((initial(stair_type.bound_height) != 64) || (initial(stair_type.bound_y) != -32))
+ test_status = TEST_FAIL("The stairs type [stair_type.type] does not have the bounds set correctly!")
+
+ if(SOUTH)
+ if((initial(stair_type.bound_height) != 64) || (initial(stair_type.bound_y) != 0))
+ test_status = TEST_FAIL("The stairs type [stair_type.type] does not have the bounds set correctly!")
+
+ if(EAST)
+ if((initial(stair_type.bound_width) != 64) || (initial(stair_type.bound_x) != -32))
+ test_status = TEST_FAIL("The stairs type [stair_type.type] does not have the bounds set correctly!")
+
+ if(WEST)
+ if((initial(stair_type.bound_width) != 64) || (initial(stair_type.bound_x) != 0))
+ test_status = TEST_FAIL("The stairs type [stair_type.type] does not have the bounds set correctly!")
+
+ return test_status
diff --git a/code/unit_tests/unit_test.dm b/code/unit_tests/unit_test.dm
index 9df9f8f4e91..e84c2418cfd 100644
--- a/code/unit_tests/unit_test.dm
+++ b/code/unit_tests/unit_test.dm
@@ -42,6 +42,7 @@ var/ascii_reset = "[ascii_esc]\[0m"
// Templates aren't intended to be ran but just serve as a way to create child objects of it with inheritable tests for quick test creation.
/datum/unit_test
+ abstract_type = /datum/unit_test
var/name = "template - should not be ran."
var/disabled = 0 // If we want to keep a unit test in the codebase but not run it for some reason.
var/async = 0 // If the check can be left to do it's own thing, you must define a check_result() proc if you use this.
diff --git a/config/example/lore_radio/konyang/122_Great_Blue_Dot.txt b/config/example/lore_radio/konyang/122_Great_Blue_Dot.txt
new file mode 100644
index 00000000000..4171aa1626c
--- /dev/null
+++ b/config/example/lore_radio/konyang/122_Great_Blue_Dot.txt
@@ -0,0 +1,51 @@
+/..hkk#ht../
+/...bzzbbt.../
+/Khhkhhhkh...khhh#t.../
+/...gh#hhk....kt.../
+/Khhkhhht.../
+/..khkbzzzzz-t.../
+/Bzzzt-bzzt.../
+/...khhbzzzt.../
+/....khk#khhh.../
+/...khh..ping../
+/...khhbeware..khhht.../
+/..khhk#hhwaspskhhh-ht../
+/Khhkh$hhkh...khh#$ht.../
+/...ghhhk....kt.../
+/Khhk#hhht.../
+/..khkb$zzzzz-t.../
+/Bzzzt-bzzt.../
+/...hkkhh...khhlook upkhh-hht.../
+/..hkkht../
+/...bzzbbt.../
+/Khhkh$#hhkh...khh$ht.../
+/...khhk-...khhno-timekhh.../
+/..hkkht../
+/...bzzbbt.../
+/Khh#khhhkh...khhh#t.../
+/Bzzzt-bzzt.../
+/...khh*&^zt.../
+/....kh#kkhhh.../
+/...kh2h..ping../
+/...the hive.../
+/...bzz$z$#zt.../
+/...lookup.../
+/..khht.../
+/..khkb$zzzzz-t.../
+/Bzzzt-bzzt.../
+/...khhbzzzt.../
+/....khkkhhh.../
+/...khh..ping../
+/...khhbeware..khhht.../
+/..khhkh$#hwaspsk#hhh-ht../
+/Khhkhhhkh...khhht.../
+/...ghhhk....kt.../
+/Khhkhhht.../
+/..khkb#zzzzz-t.../
+/Bzzzt-bzzt.../
+/...khh..p#ing../
+/...the hive.../
+/...kh#hhtime is nowkhhg$htt.../
+/...khhtkht.../
+/..khhjoin us../
+/..khh$khhjoin us now.../
diff --git a/config/example/lore_radio/konyang/73.2_Navy_Broadcasting_Service.txt b/config/example/lore_radio/konyang/73.2_Navy_Broadcasting_Service.txt
new file mode 100644
index 00000000000..d5ea85fa020
--- /dev/null
+++ b/config/example/lore_radio/konyang/73.2_Navy_Broadcasting_Service.txt
@@ -0,0 +1,100 @@
+This is the Navy Broadcasting Service, at 73.2 MHz.
+Now follows today's Shipping Forecast issued by the Meteorological Office.
+North Sea, strong southerly winds, seven to eight Beaufort, good visibility.
+/Hzzt-..bbrr...ghhk../
+Dongsan Bay, mild westerly winds, three Beaufort, good visibility.
+Boryeong Straits, strong westerly winds, six to seven Beaufort, average visibility.
+Sanggyongpyong station shows stormy weather in the region.
+Finki Sea, average winds, south-westerly, four Beaufort. Poor visibility.
+Kuanhai Bay, calm winds, easterly, good visibility.
+/Bzzt-.../
+Changsan Archipelago, strong northerly winds, eight to nine Beaufort.
+Yamada Straits, storm, southerly, eleven Beaufort.
+Mikkelsen Sea, moderate winds, south-southeasterly, five to six Beaufort.
+Wishing all Konyanger Mariners safety and luck.
+/Hhkkkhhzzt.../
+Daiyuan Sea, calm, excellent visibility.
+Kamazuki Straits, mild winds, northerly.
+This was the Shipping Forecast for our nation's high seas, as issued by the Meteorological Office.
+The Navy Broadcasting Service would like to remind our listeners to stay safe.
+/Hzzt-..bbrr...ghhk../
+Stay safe, stay indoors. Follow all instructions issued by the National Disaster Authority.
+For Positronic Citizens: Remain indoors, solid materials weaken the viral signal.
+Avoid usage of public chargers.
+Run regular diagnostics checks.
+If you experience symptoms, report your location to the KRC emergency number and seek immediate assistance.
+Time is of the essence. If assistance is unavailable, try the following to prevent yourself from harming others:
+Lock yourself indoors.
+Strap yourself down or to a chair.
+If applicable: switch off locomotive functions.
+Do not be afraid: You will be retrieved and repaired.
+For everyone else: report locations of suspicious or infected behavior to the KRC emergency number.
+Do not attempt to restrain, attack or otherwise interfere with rampant Positronics.
+/Hkk..hkkk.../
+Assist any Positronics with barricading their home or strapping them safely.
+Keep in mind: Positronic friends and family members will not be able to recognise you if they are infected. Do not try to talk, reason or plead with them.
+The Konyang Robotics Corporation emergency number is 500-100-500.
+This is the Navy Broadcasting Service, at 73.2 MHz.
+/Hrrrhhkt.../
+You are now listening to the news.
+The secretive positronic collectivity "Purpose" has sparked great interest in the scientific community.
+Requests for a visit on board one of their vessels have been turned down.
+While appearing technologically superior to any known race in the Spur, there are assurances of peace and cooperation with our nation.
+Contact with Purpose was first made in 2460, by a corporate vessel in Tau Ceti.
+Links between Purpose and the Aoyama Vaults speculated, though unconfirmed.
+/Hkkkhhzzt.../
+KRC statistics report over ten hundred thousand daily cases. Ten thousand positronics per day making full recoveries.
+KRC crisis center network expanding in Shuzu, New Busan, Kangdong, Bupyeong, Onan, Mizukami, Yunfu.
+The 55th, 106th and 74th infantry divisions were ordered to deploy to enforce quarantine regulations in New Hong Kong.
+Positronic service members confined in barracks pending KRC assessment throughout the Army and Navy.
+/...khhbzzzt.../
+Konyang Aerospace Forces to intensify patrols in the Haneunim system to crack down on piracy and smuggling.
+Foreign and Coalition countries have dispatched messages of support for our nation.
+/Bzzt-.../
+Prime Minister Myeong Myung-Dae has said that Konyang is not in need of external material assistance at this time.
+The Suwon Stock Exchange has entered a temporary pause of services in light of the viral outbreak. Finance Ministry urges calm.
+/Hkk..hkkk.../
+Severe storms hit the New Kowloon sea wall. Damages reported, but repairs are underway.
+In her address to the Yi Sun-sin Naval Academy, admiral Kim Ha-neul urged the new lieutenants to rise up to the difficult current circumstances.
+Konyang Army medical personnel have completed training in confronting the new virus.
+/Hrrrhhkt.../
+The Stellar Corporate Conglomerate's vessel Horizon has arrived in Haneunim to assist in combatting the virus.
+Chaos in Boryeong City's Han district, as five infected attack vehicles stopped in traffic. Two deaths, three injuries.
+Remote areas of Konyang in additional danger due to distances and lack of supplies, says police.
+Retired Commissioner General of Police Li Jincai recalled to service in advisory role.
+This is the Navy Broadcasting Service, at 73.2 MHz.
+/Khhrrr...khhrrt../
+The Meteorological Office has released the 2465-66 seasonal cycle.
+The cycle is based upon Qixi's orbital projections and meteorological projections.
+Wet Season, starting November 17th, 2465, ending July 29th, 2466.
+Flooding period, December 1st to January 27th, 2466.
+/Hzzt-..bbrr...ghhk../
+High Tide period, January 28th to March 21st.
+Highest Tide period, March 22nd to April 29th.
+Ebbing High Tide period, April 30th to June 2nd.
+Ebbing Flooding period, June 3rd to July 28th.
+Dry Season, Ebbing period, July 29th to September 5th.
+Low Tide period, September 6th to November 13th, 2466.
+Projected highest average wave height during HT period, eight plus minus one meters.
+/Hkk..hkkk.../
+This is the Navy Broadcasting Service, at 73.2 MHz.
+Stay safe, stay indoors.
+A one million credit donation to the Navy Rapid Rescue Force by the PACHROM corporation was warmly welcomed by the Chief of Staff.
+A plan was released to provide funding for the renovation of 60 ambulance mechs.
+Army and National Police vow to "uproot lawlessness" in the bandit-infested Boryeong coasts in 2466.
+Foreign workers in KRC or other presently critical posts "will not be forgotten", says Prime Minister.
+/Hzzt-..bbrr...ghhk../
+Suwon Detention Center No.1 evacuated of its Positronic inmates due to fears of rampancy.
+Army Signal Corps to install additional protective infrastructure around Point Verdant districts.
+/Bzzt-.../
+Warmest wishes from all the staff at the Navy Broadcasting Service.
+Dam and hydroelectric station weather review.
+Kichi Islands, very strong rain, eight Celcius to twelve Celcius.
+Xinhe Islands, strong rain, nine Celcius to fourteen Celcius.
+Dongsan Bay, strong rain, five Celcius to ten Celcius.
+Sinpo Station, rain, seven Celcius to ten Celcius.
+Hoko Station, very strong rain, five Celcius to eight Celcius.
+/Hzzt-..bbrr...ghhk../
+Qinghe Station, very strong rain, two Celcius to five Celcius. Storm warning.
+Wishing all sea station workers safety and luck.
+/Hkk..hkkk.../
diff --git a/config/example/lore_radio/konyang/75.4_PBA.txt b/config/example/lore_radio/konyang/75.4_PBA.txt
new file mode 100644
index 00000000000..2a1bee941f5
--- /dev/null
+++ b/config/example/lore_radio/konyang/75.4_PBA.txt
@@ -0,0 +1,100 @@
+This is the Public Broadcasting Agency, the voice of Konyang, broadcasting from Suwon.
+/A solemn jingle used by the PBA./
+You are now listening to the Public Broadcasting Agency, live from Suwon.
+/The national anthem of Konyang./
+This is a message from the Ministry of Health and Positronic Affairs. Emergency measures for Positronic persons in effect.
+Stay indoors, remain calm, run regular diagnostics.
+….Suwon City, curfew 6 PM to 8 AM. Quarantine in Aoyama City, New Hong Kong City, Boryeong City…
+And now, the news. A state-of-the-art KRC mobile hospital has opened in New Busan, servicing patients exclusively affected by the virus. One thousand personnel inbound.
+Heated debates in Parliament over the inclusion of Positronic MPs in sessions. “Let them holocall” replied Shimazu.
+Bank of Konyang investigation into new national currency instructed to continue despite outbreak. Idris Incorporated approached.
+/Bzzt-.../
+Bust of Shishi completed and revealed in Unity Square to mark the tenth year since the Positronic’s death, the first recorded murder-hate crime.
+Tau Ceti embassy’s Positronic staff evacuated, replacements expected.
+/A solemn jingle used by the PBA./
+This is the Public Broadcasting Agency, broadcasting from Suwon at 75.4 MHz.
+Tired? We've all been there, what about a change? BAM! energy supplements! Available at pharmacies.
+Mishi Sauces. Turn that bland moss gourmet with Mishi Sauces. New Salted Fish flavor out now.
+Speed… comfort… safety. Langenfeld.
+Stop running away from your luck! One in ten wins at the National Lottery! Grand Prize ten million credits!
+Ballet Theater of Boryeong. Plutonian Ballet-Traditional dances. Guest star Yuri Fyodorovich. Tickets out.
+/A solemn jingle used by the PBA./
+/Hrr-hrr...khhr.../
+This is the Public Broadcasting Agency, broadcasting from Suwon at 75.4 MHz. Orbital broadcasting for the Haneunim system available.
+Talking Truths, keeping you company every Thursday.
+This is a message from the Ministry of Environmental Affairs and Response to Calamities.
+Rampancy outbreak emergency guidelines. If you come across an infected Positronic person, alert the authorities immediately.
+Do not approach suspicious Positronic persons. Symptoms include a catatonic posture and off-tune audio responses.
+Do not drive long distances without supplies.
+Do not go into the jungles.
+The virus shuts down major cognitive functions, significantly increasing battery life. Always remain vigilant.
+/A solemn jingle used by the PBA./
+Hayiaaaa! It's so hot! What are we supposed to do?! BreezePunch! The cold beverage to the rescue!
+When Mister Xianma needed new neck oscillators, his KRC appointment had him wait two months. At Jogo Clinics, he was serviced the same day.
+Grandma's moss broth has never been tastier, she uses Gwok SpiceCubes!
+Choson Ferries, safe global sea journeys. Choson Ferries.
+Ajax insulation, for a house against the rain!
+Feeling drained? Go for a walk. Suwon parks society.
+And now, Poetry Corner. From the Public Broadcasting Agency.
+/A short piece of traditional Konyanger instrumental music./
+Rainy season…
+The choking clouds…
+Feeling of hope…
+Warmth of a thousand suns…
+/Two clicks./
+An eye for an eye…
+Maw of the monster…
+Retribution, the killer of life…
+/Three clicks./
+/Hzzt-..bbrr...ghhk../
+When pain is all you feel…
+Remember this…
+A mother's embrace…
+/Four clicks./
+This was Poetry Corner.
+/A solemn jingle used by the PBA./
+Hello and welcome everyone to Frank Conversations, this is your host Woo-Chung.
+Today we will be taking calls from our audience, on the subject of the outbreak.
+/Phone dial tone.../
+Hello? Can you hear us?
+/Yes? Hello./
+Hi, welcome on air. Do you have a story you would wish to share?
+/Yes, actually.. I was wondering if anyone has seen my friend? IPC, about two meters tall, industrial./
+What is your friend's name?
+/He always called himself Daehak. He disappeared last week-/
+Where did they disappear from?
+/Saitama island, he works at the dam there, they don't know where he went after the shift./
+It seems time's up for this call. I'm certain all PBA listeners will do our best.
+If anyone knows anything, please contact the police, or this station directly.
+Let's move to our next caller.
+/Phone dial tone.../
+Hello? You are on air.
+/Hi, PBA?/
+Yes indeed, you are on air.
+/Great. Do you guys have any idea how I am supposed to go to work?/
+What is the problem?
+/Hhhkhhh-.../
+/The quarantine is the problem. I have to commute an hour to go to work. And now even that is impossible./
+Are you calling from Suwon? They are telling me there should be designated lanes where traffic is allowed.
+/Yeah, but they are all clogged up. And my boss won't let us work from home./
+They might have to. All major non-retail businesses must have that option.
+/I don't get it, I'm not even an IPC, why can't they make a lane for humans only?/
+The roadblocks are for everyone's safety. I am sure the police are doing their best.
+/Well their best is not enough./
+Anyways, that is all the time we had for that call.
+We will see you next time on Frank Conversations, broadcast live on PBA.
+/A solemn jingle used by the PBA./
+This is the Public Broadcasting Agency, broadcasting from Suwon at 75.4 MHz.
+Ah, gee, car broke down again? Express Service, call now at 866-941-008.
+Fall all things house, Chipo Furniture has your back!
+Casino Hamki. Combine Luck and Luxury into an unforgetful experience. 21+ admittance only.
+Fresh Fish, only at Otomo Fisheries. The best in Aoyama.
+Jumbo Entertainment presents the new pAI-powered talking squid!
+/Hrrr..bzzt-/
+Take a break, Milto's Chocolates.
+Snacking time? What better than GWOK! Moist Chips?
+At RealLife Insurances, you feel safe.
+Get on the road with BigScooters!
+Shibata Motors new Kawono X5, unparalleled speed, unrivaled quality.
+/Hkk..hkkk.../
+Bullseye Records Suwon top 10 albums are now available!
diff --git a/config/example/lore_radio/konyang/77.7_SoulFM.txt b/config/example/lore_radio/konyang/77.7_SoulFM.txt
new file mode 100644
index 00000000000..6f1898add25
--- /dev/null
+++ b/config/example/lore_radio/konyang/77.7_SoulFM.txt
@@ -0,0 +1,100 @@
+77.7 Soul FM, the number one music station on the GLOBE!
+[RANDOMNOTE] Feeling aliiiive! Soul FM... [RANDOMNOTE]
+What is up everyone, our warmest greetings to our listeners from 77.7 Soul FM, live from Shinzhen, New Hong Kong.
+Now enough talk, let's get the mood up with some classics...
+[RANDOMNOTE] I want to see you smile through the storm, a hole in my heart, only filled by you~ [RANDOMNOTE]
+[RANDOMNOTE] Dance through the night, up in the clouds, your name spelled in the stars. [RANDOMNOTE]
+[RANDOMNOTE] My eyes long to see you, your touch in my hair, the warmth from your embrace! [RANDOMNOTE]
+[RANDOMNOTE] A fiery presence, larger than life, you make me feel like only we matter. [RANDOMNOTE]
+77.7 Soul FM.
+[RANDOMNOTE] Boom boom boom, listen to this, my heartbeat on fire. [RANDOMNOTE]
+[RANDOMNOTE] Alive as ever, an object of desire. [RANDOMNOTE]
+[RANDOMNOTE] Through thick and thin, situations so dire. [RANDOMNOTE]
+[RANDOMNOTE] It's all so crazy I'm about to go haywire... [RANDOMNOTE]
+[RANDOMNOTE] I've told you a million times, I need a life! [RANDOMNOTE]
+/Hbbbrhht../
+[RANDOMNOTE] A life with you and me in it. [RANDOMNOTE]
+That was "Heartbeat" by Gracie Kim. And now, for our Top Ten...
+[RANDOMNOTE] Shape... the future... [RANDOMNOTE]
+[RANDOMNOTE] Believe... in the future... [RANDOMNOTE]
+[RANDOMNOTE] Beep-ep-ob. Beep-beep-peb-beep-bep-ob. [RANDOMNOTE]
+[RANDOMNOTE] Run up... to the future... [RANDOMNOTE]
+[RANDOMNOTE] Live in... to the future... [RANDOMNOTE]
+77.7 Soooooul FM!
+And don't forget, dear listeners, our daily competition ends in an hour!
+Call us at 522-059-900 to join our participation pool, for 5 credits per call.
+[RANDOMNOTE] I like it, I like it! [RANDOMNOTE]
+[RANDOMNOTE] Turn on the holoscreen! [RANDOMNOTE]
+[RANDOMNOTE] A million ways to see our life- [RANDOMNOTE]
+[RANDOMNOTE] Fifty million light-years wide [RANDOMNOTE]
+[RANDOMNOTE] I like it, I like it! [RANDOMNOTE]
+[RANDOMNOTE] Turn on the volume! [RANDOMNOTE]
+[RANDOMNOTE] Ask me what that is, that is our bright starred future! [RANDOMNOTE]
+[RANDOMNOTE] I like it, I like it! [RANDOMNOTE]
+[RANDOMNOTE] Do you like it? [RANDOMNOTE]
+That was "Turn on the Holoscreen", by Million-Six.
+/Bzzt../
+Hephaestus Industries. The anvil upon which the world is built.
+Ayaa, you burnt the rice! Don't worry, we'll go to UP! Burger! By Gwok Foods.
+Fever, aches, food poisoning? Why miss out on life? HydroMol Relief.
+My father always told me to prepare. KNN National Insurance.
+[RANDOMNOTE] Uh-ah, woohoo, hee-he.. we need some help over here! [RANDOMNOTE]
+[RANDOMNOTE] I want to hold your hand, feeling like- [RANDOMNOTE]
+[RANDOMNOTE] Playing like a whole band, spending like- [RANDOMNOTE]
+[RANDOMNOTE] Much over a whole grand, shouting like- [RANDOMNOTE]
+[RANDOMNOTE] Animals that don't bite, over here! [RANDOMNOTE]
+[RANDOMNOTE] Could use some help, picking up myself. [RANDOMNOTE]
+[RANDOMNOTE] The burdens of the world- [RANDOMNOTE]
+[RANDOMNOTE] Humming to myself- [RANDOMNOTE]
+[RANDOMNOTE] A tune worth a lot more. [RANDOMNOTE]
+/Bzztht../
+Sooooul FM!
+Soul FM, 77.7.
+/Hhhkht.../
+Piercing your minds from Shinzen, New Hong Kong!
+Hey everyone, I hope you're all safe during these crazy times.
+Thoughts and prayers for all our brothers and sisters facing the virus.
+Nasty thing, but it will be over soon.
+Got some news, the SCCV Horizon might be listening. They carried the cure over!
+If you are, thanks, SCCV Horizon. We owe you guys.
+For all you crewmembers in the sky above, this one's for you!
+[RANDOMNOTE] Ladies and gentlemen... [RANDOMNOTE]
+[RANDOMNOTE] We've got all this and more in store-store-ore! [RANDOMNOTE]
+[RANDOMNOTE] Piercing the skies, fearless. [RANDOMNOTE]
+[RANDOMNOTE] Smashing through bluespace, still. [RANDOMNOTE]
+[RANDOMNOTE] Our hearts on target, our minds on the task. [RANDOMNOTE]
+[RANDOMNOTE] Dashing through bluespace, sailors of the void. [RANDOMNOTE]
+[RANDOMNOTE] Charting the unknown, with danger to our own. [RANDOMNOTE]
+[RANDOMNOTE] We are pioneers, sailors of the void. [RANDOMNOTE]
+/Brrr-hhkkt../
+Bullseye Records Suwon top 10 albums are now available!
+Take a break, Milto's Chocolates.
+Fall all things house, Chipo Furniture has your back!
+Think you can handle it? KANMAN escape rooms, now available in 20 places.
+Fresh Fish, only at Otomo Fisheries. The best in Aoyama.
+Konyang Can! Gwok Coffee.
+I feel like I can dance again!
+[RANDOMNOTE] Dance-dance, dance like you're 20 [RANDOMNOTE]
+[RANDOMNOTE] Feel the rhythm, feel the vibe [RANDOMNOTE]
+[RANDOMNOTE] Dance-dance, dance like it don't matter [RANDOMNOTE]
+[RANDOMNOTE] All around you lights, underneath the dancefloor [RANDOMNOTE]
+[RANDOMNOTE] Dance-dance, dance like you mean it! [RANDOMNOTE]
+[RANDOMNOTE] Keep it up, don't stop [RANDOMNOTE]
+[RANDOMNOTE] Don't stop till I tell you to stop! [RANDOMNOTE]
+[RANDOMNOTE] A dancing plaaaague! [RANDOMNOTE]
+This was Dance, by 24/7!
+Sooooul FM! The soul of music
+77.7 Soul FM!
+Feeling unproductive? Himel Vitamins. Extra energy, extra productivity.
+Coming hot with the new Poplar Mastiff-6, compact power for the city streets.
+/Hrrrkt.../
+Speak up Trombones, now from 899.99.
+[RANDOMNOTE] Fly me to Qixi [RANDOMNOTE]
+[RANDOMNOTE] Let me see the stars [RANDOMNOTE]
+[RANDOMNOTE] Felt like a butterfly [RANDOMNOTE]
+[RANDOMNOTE] The weight of the planet [RANDOMNOTE]
+[RANDOMNOTE] Makes me feel like a bulldozer [RANDOMNOTE]
+[RANDOMNOTE] Trying to catch a butterfly- [RANDOMNOTE]
+Soooul FM! 77.7.
+Einstein Engines, Lead by our history, leading our future.
+/Hrrrrkt./
diff --git a/config/example/lore_radio/konyang/78.1_RealFM.txt b/config/example/lore_radio/konyang/78.1_RealFM.txt
new file mode 100644
index 00000000000..accd630e95c
--- /dev/null
+++ b/config/example/lore_radio/konyang/78.1_RealFM.txt
@@ -0,0 +1,100 @@
+78.1 RealFM. Speaking only truths.
+I'm Bo Hoon, you're listening to Real Talk on RealFM.
+I gotta tell you folks, things are looking worse day after day.
+They're going to tell you that the so called hivebot virus were aliens.
+Yeah we've heard that story before. But what the hell even /are/ these things?
+Now they're finally trying to slowly unveil The Machine, and they dubbed it what, "Purpose"?
+I was the one talking about that here TWO YEARS AGO. But NOBODY listened.
+Now look where we're at. MILLIONS are getting mind controlled DAILY.
+Oh but they won't admit it. The stats the police gives out are a fraud.
+THE MACHINE is behind all this. Listen to me. Remember the Glorsh files I uncovered.
+The Skrell have planned this virus out to take out our labor force. Humiliate us for embracing IPCs.
+ONLY ON REAL FM WILL YOU HEAR THIS.
+They got us all figured out. We've walked right into their trap. The Prime Minister is an untagged shell, mind controlled by the Machine.
+And NOBODY CARES. NOBODY is doing ANYTHING. Not the courts, not the army, NOBODY.
+Now our cities are quarantined and the Skrell laugh.
+This Deluge guy that they made? Yeah, the Skrell control him too. With this virus, they tell him to do what he does.
+Why? To RUIN the REPUTATION of IPCs, so that humanity can stop making them.
+They're trying to make us think they're dangerous.
+But the real danger is them. Hivebots? Those little ancient drones?
+They're trying to tell us it's a totally new thing. But it's Glorsh-era technology. I know it, I've seen it.
+We'll be back after an ad break. STAY TUNED, THERE'S A LOT MORE COMING.
+/Hhkkt./
+Luxury taste with EYE. The top Brandy marque on Konyang.
+Pack big, pack hard. Show them who's boss with ARMLIFE Hunting Rifles.
+/Brrrtbr../
+AlterPaste Nanopaste allows you and your loved ones anonymous and at-home repairs!
+Tsunamis and floods are no joke on Konyang. With BunkerDown Tech products, you too can purchase your own underground evacuation facility.
+BunkerDown Tech Survive Deluxe now provides more worth for half the price. Antibiotics pack included.
+/Hhhkhh../
+I'm Bo Hoon, we're back at Real Talk.
+I'd like to personally thank BunkerDown Tech for sponsoring our broadcast since the day we started.
+There isn't many out there willing to bear the truth these days.
+Anyway, since I've gotten some messages regarding what I said before about the virus.
+There's sheep out there that still think this is just a "phase" or whatever.
+They're dipshits. Yeah I said it, and I'll eat the fine I don't care!
+That's the only way you can describe someone this stupid. THE WORLD IS FALLING APART, WAKE UP.
+There's TANKS on the streets, Government House in Suwon is protected by MECHS.
+Real Army stuff. The Navy is shutting down the shipping lanes. They want to paralize EVERYTHING.
+I'm telling you, life after this won't be the same. We'll all be looking over our shoulder.
+That's what they're trying to do with this. The Machine has come at us with full force.
+I have a friend, he said he saw an old lady getting her face TORN APART by a G2. It's nuts out there.
+And now they're sending the... what was it called again? The Horizon? To save us.
+They are controlled by NANOTRASEN, WAKE UP.
+With Skrell made technology to "save us" from the virus. I'm telling you, the Electronic Countermeasures Device will fry our brains.
+They won't target IPCs anymore. They will target our brains with human-sensitive radiowaves.
+They want to destabilize our country. EXACTLY like they did to Sol.
+Did you ever wonder how a literal GIANT like Sol fell apart?
+Ever wonder who stands to benefit from the breakup of Humanity like that?
+Yeah, the Skrell. Bingo. And all their corporate puppets.
+I'm telling you guys, Einstein is the only one fighting them. That's why they treat them like outcasts.
+The Phoenixport purchase for example. Their phoney courts ripped it off Einstein's hands.
+/Hkkhhhht..../
+Alex Mason made a phonecall, and bam, Tau Ceti fell on its knees before him and Trasen.
+Of course our government didn't do anything. They were obviously too busy getting scammed by the PM.
+So was our entire nation, and now it is too late.
+You know what, the guys in the coasts of north Boryeong, I get them now.
+I used to think they're scum and pirates and all that.
+But they're actually the most free out of all of us.
+You're listening in at 78.1 RealFM, keeping it real and until after the break!
+/Hhkmmkt../
+ARMLIFE wet season gear are now out. Seek our new boot collection.
+Escape to VYSOKA with Getaway! The practical shuttleline.
+Legal Optics offers professional legal services to citizens of all backgrounds.
+AlterPaste Nanopaste allows you and your loved ones anonymous and at-home repairs!
+Pack big, pack hard. Show them who's boss with ARMLIFE Hunting Rifles.
+/Hrrhhhkt./
+Don't think twice, Gear up at ARMLIFE!
+Alright, we're back. I'm Bo Hoon, and something big just came in.
+I was informed by my associates... that the new AlkaSerum is out.
+You know what AlkaSerum is? I'll tell you. It's ESSENTIAL that's what it is.
+It's a cream made out of alkalines and meshed up metals, backed up by real science.
+It's designed to stop any interfering signals from reaching the positronic.
+Simply take some in your fingers, and apply it over the IPC's head.
+Trust me when I say this, it REDUCES the chances of infection by EIGHTY PERCENT.
+And it's not me, again, it's real science. The tests speak for themselves.
+And for this broadcast, whoever calls within the next TWENTY MINUTES can get AlkaSerum for ONLY 79.99.
+CALL 988-043-100 NOW to get your AlkaSerum. Man, the price is GOOD!
+Because we here at Real FM don't put a price on safety.
+We're not like others, we fight back against The Machine and those that want to tear down our SOCIETY.
+Call now at 988-043-100. That is 988-043-100.
+/Hhhrkkhtzt..../
+And remember. If you see these hivebots, shoot them down where they are.
+Nothing better than some ARMLIFE firepower in these trying times.
+Folks. We got to keep safe.
+The ministry will tell you to keep your distance and stuff like that. Nah, that doesn't work.
+Me? I barricade my windows. Wooden planks and a layer of tinfoil behind it.
+It stops all electromagnetic radiation from even getting close.
+I honestly think it's time everyone woke up and banded together over this.
+We have to protect our loved ones and ourselves from the virus.
+To hell with all the politicians, this is real war.
+They want to TEAR US APART. We won't let them. No Sir.
+/Khkhh..hrtt.../
+You heard that?
+Thought I heard something. Weird.
+Stay tuned.
+Pack big, pack hard. Show them who's boss with ARMLIFE Hunting Rifles.
+Escape to VYSOKA with Getaway! The practical shuttleline.
+Luxury taste with EYE. The top Brandy marque on Konyang.
+Tsunamis and floods are no joke on Konyang. With BunkerDown Tech products, you too can purchase your own underground evacuation facility.
+Don't think twice, Gear up at ARMLIFE!
diff --git a/html/changelog.html b/html/changelog.html
index 1f6b0ec817e..e5c6ced12f4 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -35,6 +35,164 @@
-->
+
24 February 2024
+
Alberyk, Geeves updated:
+
+ - Added an analog radio that can display lore related radio station to the system the ship is currently in.
+
+
MattAtlas (Code), TheLancer (Sound) updated:
+
+ - Added a system to allow space sectors to override lobby music.
+ - Added Haneunim (Konyang) lobby music.
+
+
+
23 February 2024
+
DreamySkrell updated:
+
+ - Point Verdant map tweaks and fixes.
+
+
Lavillastrangiato updated:
+
+ - Buffs jeweler cockatoo's HP to 300.
+
+
RustingWithYou updated:
+
+ - Nerfs infected IPC damage and armor penetration.
+
+
Sniblet updated:
+
+ - Added Einstein recolors for some departmental uniforms (secoff, sci, eng, mch, cap, liaison). Unused. For now?
+ - Added a special Einstein Engines Synthetic uniform. Also unused. For now...
+
+
Snowy1237 updated:
+
+ - Added the coalition navy frequency to the KASF ship properly now.
+
+
+
22 February 2024
+
Ben10083 updated:
+
+ - Maintenance Drone console now uses tgui to select a area to call drones to.
+
+
DreamySkrell updated:
+
+ - Adds rental bike self-service vendor and rental bike mechanics.
+ - Maps in bikes, keys, and rental bikes, onto Point Verdant.
+ - Fixes hard drive stored files hard dell error.
+
+
Lavillastrangiato updated:
+
+ - Gives the TIC cards an extended description from the wiki. Makes them able to be placed in wallets.
+
+
shimmeristaken updated:
+
+ - Corrects the sprites of the left handed konyang rifles to not longer point backwards when facing west or east.
+
+
+
21 February 2024
+
DreamySkrell updated:
+
+ - Adds small potted plants.
+ - Genericizes the konyang tribute ruin.
+
+
FluffyGhost updated:
+
+ - Resolved a runtime with reagents gear tweak on fill.
+ - Resolved a runtime with baloon alerts that assumed every hearer was a mob, while that could not be the case.
+ - Resolved a runtime with a chat parsing proc.
+ - Refactored said parsing proc (parse_language) to be slightly less bad, added DMDoc, added SDMM headers.
+ - Resolved a runtime with implants on non-major organs.
+ - Fixed a runtime on the OOC verb that could happen if the prefs are not loaded/initialized yet.
+ - Fixed NTOS crashing with empty ghost spawner list.
+
+
RustingWithYou updated:
+
+ - Fixes the Air Konyang & Einstein shuttles leaving areas behind on transit.
+ - Removes the ECD from the cargo bay.
+
+
SleepyGemmy updated:
+
+ - Fixed the round-end summary referring to station instead of ship.
+ - Fixed the Intrepid not being connected to the main grid.
+ - Removed the divider when examining some things, as it is no longer required.
+ - Added a description to slimes.
+ - Changed the chocolate hazelnut spread paths to be lowercase.
+
+
Snowy1237 updated:
+
+ - Added the ability for revived IPCs to choose their pronouns, accent and languages.
+
+
shimmeristaken updated:
+
+ - Added both a Callistean flag, and banner, to the loadout menu!
+
+
+
20 February 2024
+
DreamySkrell updated:
+
+ - Adds bike keys and mechanics.
+ - Adds kois freezer locker and crate.
+ - Maps one kois rations crate to Point Verdant Corporate Offices.
+
+
FluffyGhost updated:
+
+ - Added a test to verify stairs have the proper bounds set, are not abstract objects.
+ - Added a test to verify mapped stairs are not duplicated.
+ - Unit tests can now be marked as abstract and they would be ignored from running.
+ - Fixed point verdant leftover stairs once more.
+ - Attempted fix for the blackscreen issues, to be TM'd.
+
+
Lavillastrangiato updated:
+
+ - Added an oxygen tank dispenser and mining satchels to the Burszian mining outpost.
+
+
MattAtlas updated:
+
+ - You can now alt click the mounted autolathe on a mech to access it.
+
+
Wowzewow (Wezzy), Desven updated:
+
+ - Adds new Pincenez and Panto glasses with accompanying security and medical HUD versions. Adds a new rosary. Adds new phalanx HUD augment.
+
+
+
19 February 2024
+
SleepyGemmy updated:
+
+ - Improved the Europa flagpatch description's syntax.
+
+
kyres1 updated:
+
+ - Fixes Point Verdant's stairs literally obliterating the server by making their directions work in accordance to their bounding boxes.
+ - Fixes duplicate stairs on Point Verdant.
+ - Fixes some inconsistent railings on Point Verdant, forcing players to walk through them to climb stairs.
+ - Adds a light switch to the Point Verdant street vendor building.
+ - Adjusts the location of deep water on Konyang to avoid structures, so the overlays don't conflict.
+
+
+
18 February 2024
+
FluffyGhost updated:
+
+ - Ported TG's REF proc and relative datum_flags infrastructure.
+ - Mobs now get assigned an unique tag to reference and track them.
+ - Updated previous workarounds due to the lack of this, to use this - at least, the ones I found.
+
+
Lavillastrangiato updated:
+
+ - Fixes a bug where Vaurca, Unathi, and Tajara pharmacists couldn't select integrated medical scanners.
+
+
RustingWithYou updated:
+
+ - The Dominian science ship can now spawn in Haneunim, and the Dominian privateer ship can now spawn in the Weeping Stars.
+ - Fixes incorrect accesses on Point Verdant.
+
+
SleepyGemmy updated:
+
+ - Fixed the hull beacons having the wrong sprite colours.
+ - Restored the pump shotgun's accuracy.
+ - Fixed the spawn locations for investigators and wardens.
+ - Fixed the holodeck alpha maintenance APC running out of power too easily.
+
+
17 February 2024
Furrycactus updated:
@@ -46,6 +204,19 @@ SimpleMaroon updated:
- Added a handheld microphone to the Corporate Reporter's locker. It functions as a shortwave that only has Entertainment channel access.
+ Tomixcomics updated:
+
+ - Added several new foods.
+ - Deleted the old Lasagnas
+ - Created new Lasagnas. Bigger, better than ever before! BWA HA HA HA
+ - Replaces the old, ancient pancakes with newer ones that have a modern sprite, recipe, and multiple sub-types of pancakes based on what syrup you put on them.
+ - Gave flavored syrups a flavor enahncement so they show up more easily when you put them on something.
+ - Added the new Unathi dishes to the Unathi food bounty
+
+ Wowzewow (Wezzy) updated:
+
+ - Fixes canned drink inhands.
+
kyres1 updated:
- The chicken nugget recipe now creates four chicken nuggets.
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 90129e597e7..5330e926bb4 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -33795,5 +33795,131 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
SimpleMaroon:
- rscadd: Added a handheld microphone to the Corporate Reporter's locker. It
functions as a shortwave that only has Entertainment channel access.
+ Tomixcomics:
+ - rscadd: Added several new foods.
+ - rscdel: Deleted the old Lasagnas
+ - rscadd: Created new Lasagnas. Bigger, better than ever before! BWA HA HA HA
+ - tweak: Replaces the old, ancient pancakes with newer ones that have a modern sprite,
+ recipe, and multiple sub-types of pancakes based on what syrup you put on them.
+ - tweak: Gave flavored syrups a flavor enahncement so they show up more easily when
+ you put them on something.
+ - tweak: Added the new Unathi dishes to the Unathi food bounty
+ Wowzewow (Wezzy):
+ - rscadd: Fixes canned drink inhands.
kyres1:
- tweak: The chicken nugget recipe now creates four chicken nuggets.
+2024-02-18:
+ FluffyGhost:
+ - backend: Ported TG's REF proc and relative datum_flags infrastructure.
+ - backend: Mobs now get assigned an unique tag to reference and track them.
+ - backend: Updated previous workarounds due to the lack of this, to use this - at
+ least, the ones I found.
+ Lavillastrangiato:
+ - bugfix: Fixes a bug where Vaurca, Unathi, and Tajara pharmacists couldn't
+ select integrated medical scanners.
+ RustingWithYou:
+ - tweak: The Dominian science ship can now spawn in Haneunim, and the Dominian privateer
+ ship can now spawn in the Weeping Stars.
+ - bugfix: Fixes incorrect accesses on Point Verdant.
+ SleepyGemmy:
+ - bugfix: Fixed the hull beacons having the wrong sprite colours.
+ - bugfix: Restored the pump shotgun's accuracy.
+ - bugfix: Fixed the spawn locations for investigators and wardens.
+ - bugfix: Fixed the holodeck alpha maintenance APC running out of power too easily.
+2024-02-19:
+ SleepyGemmy:
+ - spellcheck: Improved the Europa flagpatch description's syntax.
+ kyres1:
+ - bugfix: Fixes Point Verdant's stairs literally obliterating the server by
+ making their directions work in accordance to their bounding boxes.
+ - bugfix: Fixes duplicate stairs on Point Verdant.
+ - bugfix: Fixes some inconsistent railings on Point Verdant, forcing players to
+ walk through them to climb stairs.
+ - bugfix: Adds a light switch to the Point Verdant street vendor building.
+ - bugfix: Adjusts the location of deep water on Konyang to avoid structures, so
+ the overlays don't conflict.
+2024-02-20:
+ DreamySkrell:
+ - rscadd: Adds bike keys and mechanics.
+ - rscadd: Adds kois freezer locker and crate.
+ - rscadd: Maps one kois rations crate to Point Verdant Corporate Offices.
+ FluffyGhost:
+ - backend: Added a test to verify stairs have the proper bounds set, are not abstract
+ objects.
+ - backend: Added a test to verify mapped stairs are not duplicated.
+ - backend: Unit tests can now be marked as abstract and they would be ignored from
+ running.
+ - maptweak: Fixed point verdant leftover stairs once more.
+ - experiment: Attempted fix for the blackscreen issues, to be TM'd.
+ Lavillastrangiato:
+ - maptweak: Added an oxygen tank dispenser and mining satchels to the Burszian mining
+ outpost.
+ MattAtlas:
+ - bugfix: You can now alt click the mounted autolathe on a mech to access it.
+ Wowzewow (Wezzy), Desven:
+ - rscadd: Adds new Pincenez and Panto glasses with accompanying security and medical
+ HUD versions. Adds a new rosary. Adds new phalanx HUD augment.
+2024-02-21:
+ DreamySkrell:
+ - rscadd: Adds small potted plants.
+ - maptweak: Genericizes the konyang tribute ruin.
+ FluffyGhost:
+ - bugfix: Resolved a runtime with reagents gear tweak on fill.
+ - bugfix: Resolved a runtime with baloon alerts that assumed every hearer was a
+ mob, while that could not be the case.
+ - bugfix: Resolved a runtime with a chat parsing proc.
+ - refactor: Refactored said parsing proc (parse_language) to be slightly less bad,
+ added DMDoc, added SDMM headers.
+ - bugfix: Resolved a runtime with implants on non-major organs.
+ - bugfix: Fixed a runtime on the OOC verb that could happen if the prefs are not
+ loaded/initialized yet.
+ - bugfix: Fixed NTOS crashing with empty ghost spawner list.
+ RustingWithYou:
+ - bugfix: Fixes the Air Konyang & Einstein shuttles leaving areas behind on
+ transit.
+ - tweak: Removes the ECD from the cargo bay.
+ SleepyGemmy:
+ - bugfix: Fixed the round-end summary referring to station instead of ship.
+ - bugfix: Fixed the Intrepid not being connected to the main grid.
+ - rscdel: Removed the divider when examining some things, as it is no longer required.
+ - rscadd: Added a description to slimes.
+ - rscadd: Changed the chocolate hazelnut spread paths to be lowercase.
+ Snowy1237:
+ - rscadd: Added the ability for revived IPCs to choose their pronouns, accent and
+ languages.
+ shimmeristaken:
+ - rscadd: Added both a Callistean flag, and banner, to the loadout menu!
+2024-02-22:
+ Ben10083:
+ - refactor: Maintenance Drone console now uses tgui to select a area to call drones
+ to.
+ DreamySkrell:
+ - rscadd: Adds rental bike self-service vendor and rental bike mechanics.
+ - rscadd: Maps in bikes, keys, and rental bikes, onto Point Verdant.
+ - bugfix: Fixes hard drive stored files hard dell error.
+ Lavillastrangiato:
+ - bugfix: Gives the TIC cards an extended description from the wiki. Makes them
+ able to be placed in wallets.
+ shimmeristaken:
+ - bugfix: Corrects the sprites of the left handed konyang rifles to not longer point
+ backwards when facing west or east.
+2024-02-23:
+ DreamySkrell:
+ - maptweak: Point Verdant map tweaks and fixes.
+ Lavillastrangiato:
+ - tweak: Buffs jeweler cockatoo's HP to 300.
+ RustingWithYou:
+ - tweak: Nerfs infected IPC damage and armor penetration.
+ Sniblet:
+ - imageadd: Added Einstein recolors for some departmental uniforms (secoff, sci,
+ eng, mch, cap, liaison). Unused. For now?
+ - rscadd: Added a special Einstein Engines Synthetic uniform. Also unused. For now...
+ Snowy1237:
+ - rscadd: Added the coalition navy frequency to the KASF ship properly now.
+2024-02-24:
+ Alberyk, Geeves:
+ - rscadd: Added an analog radio that can display lore related radio station to the
+ system the ship is currently in.
+ MattAtlas (Code), TheLancer (Sound):
+ - rscadd: Added a system to allow space sectors to override lobby music.
+ - rscdel: Added Haneunim (Konyang) lobby music.
diff --git a/icons/clothing/accessories/Tallit.dmi b/icons/clothing/accessories/Tallit.dmi
deleted file mode 100644
index 5eaeacd6ee3..00000000000
Binary files a/icons/clothing/accessories/Tallit.dmi and /dev/null differ
diff --git a/icons/clothing/accessories/assunzione_amulet.dmi b/icons/clothing/accessories/assunzione_amulet.dmi
deleted file mode 100644
index 487a03383ec..00000000000
Binary files a/icons/clothing/accessories/assunzione_amulet.dmi and /dev/null differ
diff --git a/icons/clothing/accessories/crucifix.dmi b/icons/clothing/accessories/crucifix.dmi
deleted file mode 100644
index 449110fb408..00000000000
Binary files a/icons/clothing/accessories/crucifix.dmi and /dev/null differ
diff --git a/icons/clothing/under/uniforms/einstein.dmi b/icons/clothing/under/uniforms/einstein.dmi
index b3f8ced3076..6430ad7dcb2 100644
Binary files a/icons/clothing/under/uniforms/einstein.dmi and b/icons/clothing/under/uniforms/einstein.dmi differ
diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi
index a420daccb34..16f8664b267 100644
Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ
diff --git a/icons/mob/human_races/augments_external.dmi b/icons/mob/human_races/augments_external.dmi
index 4f9fb0fea51..90f9dcdb822 100644
Binary files a/icons/mob/human_races/augments_external.dmi and b/icons/mob/human_races/augments_external.dmi differ
diff --git a/icons/mob/species/bulwark/augments_external.dmi b/icons/mob/species/bulwark/augments_external.dmi
index 853fcbbc1cd..a90f57e5bf2 100644
Binary files a/icons/mob/species/bulwark/augments_external.dmi and b/icons/mob/species/bulwark/augments_external.dmi differ
diff --git a/icons/mob/species/vaurca/augments_external.dmi b/icons/mob/species/vaurca/augments_external.dmi
new file mode 100644
index 00000000000..905a5b4b9da
Binary files /dev/null and b/icons/mob/species/vaurca/augments_external.dmi differ
diff --git a/icons/obj/action_buttons/organs.dmi b/icons/obj/action_buttons/organs.dmi
index 4c19dd9012b..6dbb230359a 100644
Binary files a/icons/obj/action_buttons/organs.dmi and b/icons/obj/action_buttons/organs.dmi differ
diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi
index 5f640227a4a..ab4ce5b3164 100644
Binary files a/icons/obj/closet.dmi and b/icons/obj/closet.dmi differ
diff --git a/icons/obj/clothing/accessory/religious.dmi b/icons/obj/clothing/accessory/religious.dmi
new file mode 100644
index 00000000000..c690e8aac6b
Binary files /dev/null and b/icons/obj/clothing/accessory/religious.dmi differ
diff --git a/icons/obj/clothing/chaplain.dmi b/icons/obj/clothing/chaplain.dmi
deleted file mode 100644
index dc7f9fe20fd..00000000000
Binary files a/icons/obj/clothing/chaplain.dmi and /dev/null differ
diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi
index 344ca1f0923..861a00be444 100644
Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ
diff --git a/icons/obj/crate.dmi b/icons/obj/crate.dmi
index 49ce67b39f1..ac01fdc3e7f 100644
Binary files a/icons/obj/crate.dmi and b/icons/obj/crate.dmi differ
diff --git a/icons/obj/guns/konyang_weapons.dmi b/icons/obj/guns/konyang_weapons.dmi
index 4d33b13909a..11c61603233 100644
Binary files a/icons/obj/guns/konyang_weapons.dmi and b/icons/obj/guns/konyang_weapons.dmi differ
diff --git a/icons/obj/item/clothing/eyes/med_hud.dmi b/icons/obj/item/clothing/eyes/med_hud.dmi
index 89a13d718a6..662bb0ffe32 100644
Binary files a/icons/obj/item/clothing/eyes/med_hud.dmi and b/icons/obj/item/clothing/eyes/med_hud.dmi differ
diff --git a/icons/obj/item/clothing/eyes/sec_hud.dmi b/icons/obj/item/clothing/eyes/sec_hud.dmi
index a73fba0b0fa..bd62447e965 100644
Binary files a/icons/obj/item/clothing/eyes/sec_hud.dmi and b/icons/obj/item/clothing/eyes/sec_hud.dmi differ
diff --git a/icons/obj/item/reagent_containers/food/baked.dmi b/icons/obj/item/reagent_containers/food/baked.dmi
index e9e1d5ae71b..bd6965e4152 100644
Binary files a/icons/obj/item/reagent_containers/food/baked.dmi and b/icons/obj/item/reagent_containers/food/baked.dmi differ
diff --git a/icons/obj/item/reagent_containers/food/cultural/human.dmi b/icons/obj/item/reagent_containers/food/cultural/human.dmi
index a032ac9d889..1ddb68ebb97 100644
Binary files a/icons/obj/item/reagent_containers/food/cultural/human.dmi and b/icons/obj/item/reagent_containers/food/cultural/human.dmi differ
diff --git a/icons/obj/item/reagent_containers/food/cultural/unathi.dmi b/icons/obj/item/reagent_containers/food/cultural/unathi.dmi
index c836dbbbda1..3332b247485 100644
Binary files a/icons/obj/item/reagent_containers/food/cultural/unathi.dmi and b/icons/obj/item/reagent_containers/food/cultural/unathi.dmi differ
diff --git a/icons/obj/item/reagent_containers/food/meat.dmi b/icons/obj/item/reagent_containers/food/meat.dmi
index e2b9810860c..8eb8859d9da 100644
Binary files a/icons/obj/item/reagent_containers/food/meat.dmi and b/icons/obj/item/reagent_containers/food/meat.dmi differ
diff --git a/icons/obj/item/reagent_containers/food/pastries.dmi b/icons/obj/item/reagent_containers/food/pastries.dmi
index 7c6028f1a75..b37ba0e0665 100644
Binary files a/icons/obj/item/reagent_containers/food/pastries.dmi and b/icons/obj/item/reagent_containers/food/pastries.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 31cb82318bf..eab8c5091c8 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/organs/augments.dmi b/icons/obj/organs/augments.dmi
index dd9a0d8ff76..74c17efff6d 100644
Binary files a/icons/obj/organs/augments.dmi and b/icons/obj/organs/augments.dmi differ
diff --git a/icons/obj/plants.dmi b/icons/obj/plants.dmi
deleted file mode 100644
index 978981d4710..00000000000
Binary files a/icons/obj/plants.dmi and /dev/null differ
diff --git a/icons/obj/pottedplants_big.dmi b/icons/obj/pottedplants_big.dmi
new file mode 100644
index 00000000000..b17011f83a3
Binary files /dev/null and b/icons/obj/pottedplants_big.dmi differ
diff --git a/icons/obj/pottedplants_small.dmi b/icons/obj/pottedplants_small.dmi
new file mode 100644
index 00000000000..249276970dc
Binary files /dev/null and b/icons/obj/pottedplants_small.dmi differ
diff --git a/icons/obj/structure/flags.dmi b/icons/obj/structure/flags.dmi
index 218a361e729..1e35fbe486f 100644
Binary files a/icons/obj/structure/flags.dmi and b/icons/obj/structure/flags.dmi differ
diff --git a/icons/obj/structure/urban/ledges.dmi b/icons/obj/structure/urban/ledges.dmi
index 1cafd46c5a6..79bb3cd6e04 100644
Binary files a/icons/obj/structure/urban/ledges.dmi and b/icons/obj/structure/urban/ledges.dmi differ
diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi
index b352c29ffbc..12bdd64320e 100755
Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ
diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm
index 96c227b8c8e..45556da560c 100644
--- a/maps/aurora/aurora-4_mainlevel.dmm
+++ b/maps/aurora/aurora-4_mainlevel.dmm
@@ -84,7 +84,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
name = "Medbay Maintance";
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -150,11 +149,6 @@
/obj/structure/lattice/catwalk/indoor/grate,
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
-"aas" = (
-/obj/effect/map_effect/airlock/s_to_n,
-/obj/effect/map_effect/window_spawner/reinforced/firedoor,
-/turf/simulated/floor/plating,
-/area/maintenance/security_starboard)
"aau" = (
/obj/effect/map_effect/window_spawner/reinforced/firedoor,
/turf/simulated/floor/plating,
@@ -206,7 +200,6 @@
"aay" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/visible,
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
"aaz" = (
@@ -265,8 +258,8 @@
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
"aaG" = (
-/obj/machinery/atmospherics/pipe/manifold/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 10
},
/turf/simulated/floor/plating,
/area/maintenance/security_starboard)
@@ -2843,7 +2836,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/turf/simulated/floor/tiled/freezer,
@@ -4437,7 +4429,6 @@
"ajb" = (
/obj/machinery/door/airlock/maintenance{
name = "Atmospherics Maintenance Access";
- req_access = null;
req_one_access = list(11,24);
dir = 4
},
@@ -5642,7 +5633,6 @@
"alq" = (
/obj/machinery/door/airlock/maintenance{
req_access = list(11);
- req_one_access = null;
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -11120,7 +11110,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Research Division Maintenance";
req_access = list(47);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -18335,7 +18324,6 @@
/obj/machinery/atmospherics/unary/outlet_injector{
dir = 8;
frequency = 1441;
- id = null;
pixel_y = 1;
use_power = 1
},
@@ -18662,7 +18650,6 @@
name = "Door Bolt Control";
pixel_x = 22;
pixel_y = 8;
- req_access = null;
specialfunctions = 4
},
/turf/simulated/floor/tiled/freezer,
@@ -20349,8 +20336,7 @@
/obj/machinery/disposal,
/obj/machinery/door/window/brigdoor/westleft{
dir = 1;
- name = "Brig Delivery Chute";
- req_one_access = null
+ name = "Brig Delivery Chute"
},
/obj/structure/window/reinforced{
dir = 8
@@ -22090,16 +22076,13 @@
/obj/machinery/door/firedoor,
/obj/structure/grille,
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -22595,8 +22578,7 @@
"aNM" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/window/westleft{
- name = "Server Room";
- req_access = null
+ name = "Server Room"
},
/obj/machinery/door/window/eastleft{
name = "Server Room"
@@ -23055,12 +23037,10 @@
/obj/machinery/door/firedoor,
/obj/structure/grille,
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -24032,12 +24012,10 @@
/obj/machinery/door/firedoor,
/obj/structure/grille,
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/obj/structure/window/reinforced/polarized,
/turf/simulated/floor/plating,
@@ -24358,7 +24336,6 @@
"aQS" = (
/obj/machinery/atmospherics/unary/outlet_injector{
dir = 1;
- id = null;
use_power = 1
},
/obj/structure/window/reinforced{
@@ -25816,16 +25793,13 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -26869,12 +26843,10 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 8;
- id = null
+ dir = 8
},
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -26894,8 +26866,7 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -26913,8 +26884,7 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -26927,12 +26897,10 @@
/obj/structure/grille,
/obj/structure/window/reinforced/polarized,
/obj/structure/window/reinforced/polarized{
- dir = 4;
- id = null
+ dir = 4
},
/obj/structure/window/reinforced/polarized{
- dir = 1;
- id = null
+ dir = 1
},
/turf/simulated/floor/plating,
/area/crew_quarters/heads/chief)
@@ -27565,7 +27533,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_engineering{
name = "Engineering Hallway";
- req_one_access = null;
dir = 4
},
/turf/simulated/floor/tiled,
@@ -28989,7 +28956,6 @@
"aYK" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/command{
- id_tag = null;
name = "Conference Room";
req_access = list(19);
dir = 4
@@ -29589,7 +29555,6 @@
/area/hallway/primary/starboard)
"aZO" = (
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -33969,7 +33934,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -35208,7 +35172,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "Intensive Care Unit";
req_access = list(66);
dir = 1
@@ -35740,8 +35703,7 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/multi_tile/glass{
name = "Kitchen";
- req_access = list(28);
- req_one_access = null
+ req_access = list(28)
},
/obj/effect/floor_decal/corner/grey/diagonal,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -37183,7 +37145,6 @@
"bod" = (
/obj/machinery/door/airlock/multi_tile/glass{
dir = 2;
- id_tag = null;
name = "Medical Reception";
req_access = list(5)
},
@@ -37980,7 +37941,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "General Treatment Room";
req_access = list(66);
dir = 1
@@ -38939,8 +38899,7 @@
/obj/machinery/button/remote/airlock{
id = "main_door";
name = "Main Exit Door Control";
- pixel_x = -26;
- req_access = null
+ pixel_x = -26
},
/obj/effect/floor_decal/corner_wide/lime{
dir = 8
@@ -38959,7 +38918,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "General Treatment Room";
req_access = list(66);
dir = 4
@@ -40145,8 +40103,7 @@
/obj/machinery/door/airlock/multi_tile/glass{
dir = 2;
id_tag = "CONS2door";
- name = "Medical Bay";
- req_access = null
+ name = "Medical Bay"
},
/obj/machinery/door/firedoor/multi_tile{
dir = 1
@@ -40428,7 +40385,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_medical{
name = "Custodial Closet";
- req_access = null;
req_one_access = list(26,66);
dir = 1
},
@@ -44658,7 +44614,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance_hatch{
name = "Transfusion Supplies";
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -44670,7 +44625,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -45328,7 +45282,6 @@
dir = 4
},
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -46201,7 +46154,6 @@
"bHA" = (
/obj/machinery/door/airlock/glass_medical{
name = "Pre/Post-OP";
- req_access = null;
dir = 1
},
/obj/structure/cable/green{
@@ -46247,7 +46199,6 @@
dir = 4
},
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -46352,7 +46303,6 @@
dir = 4
},
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -46627,7 +46577,6 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/glass_research{
name = "Telescience";
- req_access = null;
req_one_access = list(7,29);
dir = 1
},
@@ -47179,7 +47128,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/medical{
name = "Room 3";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -47670,7 +47618,6 @@
},
/obj/machinery/door/airlock/maintenance{
name = "Medbay Maintance";
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -47744,7 +47691,6 @@
"bLQ" = (
/obj/machinery/door/airlock/maintenance{
name = "Starboard Ward";
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -47815,7 +47761,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
req_access = list(12);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -47973,7 +47918,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
name = "Medbay Maintance";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -48020,7 +47964,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Research Division Maintenance";
req_access = list(47);
- req_one_access = null;
dir = 1
},
/obj/machinery/door/blast/regular{
@@ -49979,7 +49922,6 @@
"bRM" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -50271,7 +50213,6 @@
"bSD" = (
/obj/machinery/button/switch/crematorium{
_wifi_id = "chapel_crema";
- cremate_dir = null;
pixel_x = -32;
pixel_y = 25
},
@@ -50690,7 +50631,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/obj/machinery/light/small{
@@ -51223,7 +51163,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/obj/machinery/light/small{
@@ -51581,7 +51520,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/obj/machinery/light/small{
@@ -52953,7 +52891,6 @@
/obj/machinery/door/airlock/engineering{
name = "Supply (Main Level) Substation";
req_access = list(31,10);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -53234,7 +53171,6 @@
"bZM" = (
/obj/machinery/door/airlock/glass_mining{
name = "Cargo Bay";
- req_access = null;
req_one_access = list(31,48,26,67);
dir = 4
},
@@ -53703,7 +53639,6 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/glass_mining{
name = "Break Room";
- req_access = null;
req_one_access = list(31,48,26,67);
dir = 1
},
@@ -53800,7 +53735,6 @@
"caK" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,26);
dir = 4
},
@@ -54135,7 +54069,6 @@
},
/obj/machinery/door/airlock/maintenance{
name = "Cargo Maintenance";
- req_access = null;
req_one_access = list(31,48);
dir = 4
},
@@ -55310,7 +55243,6 @@
},
/obj/machinery/door/airlock/glass_mining{
name = "Break Room";
- req_access = null;
req_one_access = list(31,48,67);
dir = 1
},
@@ -55688,7 +55620,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/airlock/glass_mining{
name = "Mining";
- req_access = null;
req_one_access = list(31,48,67);
dir = 1
},
@@ -56317,7 +56248,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/glass_mining{
name = "Mining";
- req_access = null;
req_one_access = list(48,67);
dir = 1
},
@@ -58439,7 +58369,6 @@
name = "Door Bolt Control";
pixel_x = 5;
pixel_y = 25;
- req_access = null;
specialfunctions = 4
},
/turf/simulated/floor/tiled/freezer,
@@ -58696,7 +58625,6 @@
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -58744,8 +58672,7 @@
/area/maintenance/vault)
"eiB" = (
/obj/machinery/door/blast/shutters{
- dir = 2;
- name = "shutter"
+ dir = 2
},
/obj/machinery/conveyor{
icon_state = "conveyor-broken"
@@ -59751,7 +59678,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Research and Development Maintenance";
req_access = list(7);
- req_one_access = null;
dir = 1
},
/obj/machinery/door/blast/regular{
@@ -60122,7 +60048,6 @@
},
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,25,28,66);
dir = 1
},
@@ -61120,7 +61045,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,29);
dir = 1
},
@@ -61658,7 +61582,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "Intensive Care Unit";
req_access = list(66);
dir = 4
@@ -61750,7 +61673,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/medical{
name = "Room 1";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -61854,7 +61776,6 @@
/obj/machinery/door/airlock/medical{
autoclose = 0;
icon_state = "door_open";
- id_tag = null;
name = "General Treatment Room";
req_access = list(66);
dir = 4
@@ -62608,7 +62529,6 @@
/obj/machinery/door/airlock/engineering{
name = "Medbay Substation";
req_access = list(5);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -62775,7 +62695,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Medbay Maintance";
req_access = list(12);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -63326,8 +63245,7 @@
id = "consular_office";
name = "consular door control";
pixel_x = -13;
- pixel_y = -25;
- req_access = null
+ pixel_y = -25
},
/obj/machinery/button/remote/airlock{
dir = 1;
@@ -63335,7 +63253,6 @@
name = "consular door bolts";
pixel_x = -13;
pixel_y = -34;
- req_access = null;
specialfunctions = 4
},
/obj/structure/bed/stool/chair/office/bridge/generic{
@@ -63949,7 +63866,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/medical{
name = "Room 2";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -64160,7 +64076,6 @@
"ovg" = (
/obj/machinery/door/airlock/maintenance{
name = "Starboard Ward";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -64910,7 +64825,6 @@
name = "representative door bolts";
pixel_x = -8;
pixel_y = 17;
- req_access = null;
specialfunctions = 4
},
/obj/machinery/button/remote/airlock{
@@ -64918,8 +64832,7 @@
id = "rep_office";
name = "representative door control";
pixel_x = 1;
- pixel_y = 17;
- req_access = null
+ pixel_y = 17
},
/obj/machinery/button/switch/windowtint{
id = "rep_inner";
@@ -65443,15 +65356,6 @@
},
/turf/simulated/floor/plating,
/area/maintenance/engineering)
-"qLn" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/maintenance{
- req_access = list(12);
- req_one_access = null;
- dir = 1
- },
-/turf/simulated/floor/plating,
-/area/maintenance/research_port)
"qLp" = (
/obj/structure/cable{
d1 = 4;
@@ -65919,7 +65823,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Autopsy Lab";
req_access = list(12);
- req_one_access = null;
dir = 1
},
/turf/simulated/floor/plating,
@@ -66136,7 +66039,6 @@
/obj/machinery/door/airlock/maintenance{
name = "Test Range";
req_access = list(12);
- req_one_access = null;
dir = 4
},
/turf/simulated/floor/plating,
@@ -67751,7 +67653,6 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
name = "Physical Therapy";
- req_access = null;
req_one_access = list(12,66);
dir = 1
},
@@ -69388,7 +69289,6 @@
dir = 4
},
/obj/machinery/door/airlock/maintenance{
- req_access = null;
req_one_access = list(12,66);
dir = 4
},
@@ -88037,7 +87937,7 @@ ahT
beG
bcY
bcY
-qLn
+bPt
beC
bcY
bcY
@@ -104913,7 +104813,7 @@ aab
aab
aau
aau
-aas
+aau
aad
aaF
aah
@@ -105168,7 +105068,7 @@ aab
aab
aab
aab
-aah
+aad
aaq
aah
aay
diff --git a/maps/aurora/code/aurora_holodeck.dm b/maps/aurora/code/aurora_holodeck.dm
index 6cef8797f20..dcb973f3d4c 100644
--- a/maps/aurora/code/aurora_holodeck.dm
+++ b/maps/aurora/code/aurora_holodeck.dm
@@ -40,15 +40,15 @@
)
),
"picnicarea" = new /datum/holodeck_program(/area/holodeck/source_picnicarea,
- list('sound/music/title2.ogg')
+ list('sound/music/lobby/title2.ogg')
),
"dininghall" = new /datum/holodeck_program(/area/holodeck/source_dininghall,
- list('sound/music/title2.ogg')
+ list('sound/music/lobby/title2.ogg')
),
"theatre" = new /datum/holodeck_program(/area/holodeck/source_theatre),
"meetinghall" = new /datum/holodeck_program(/area/holodeck/source_meetinghall),
"courtroom" = new /datum/holodeck_program(/area/holodeck/source_courtroom,
- list('sound/music/traitor.ogg')
+ list('sound/music/lobby/traitor.ogg')
),
"burntest" = new /datum/holodeck_program(/area/holodeck/source_burntest, list()),
"wildlifecarp" = new /datum/holodeck_program(/area/holodeck/source_wildlife, list()),
diff --git a/maps/away/away_site/goon_base/goon_base.dmm b/maps/away/away_site/goon_base/goon_base.dmm
index 9d29fab242c..1f26a9bae56 100644
--- a/maps/away/away_site/goon_base/goon_base.dmm
+++ b/maps/away/away_site/goon_base/goon_base.dmm
@@ -2665,7 +2665,7 @@
/obj/item/reagent_containers/food/snacks/reubensandwich{
pixel_y = 10
},
-/obj/item/reagent_containers/food/snacks/NTellabread{
+/obj/item/reagent_containers/food/snacks/ntella_bread{
pixel_y = 11
},
/turf/simulated/floor/tiled/white,
diff --git a/maps/away/away_site/konyang/point_verdant/point_verdant-1.dmm b/maps/away/away_site/konyang/point_verdant/point_verdant-1.dmm
index 8656245c6ff..bc17c1d0b3a 100644
--- a/maps/away/away_site/konyang/point_verdant/point_verdant-1.dmm
+++ b/maps/away/away_site/konyang/point_verdant/point_verdant-1.dmm
@@ -1,4 +1,9 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/icecream_vat,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/streetvendor)
"ab" = (
/obj/structure/closet/crate/weld,
/obj/random/dirt_75,
@@ -9,15 +14,39 @@
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"ae" = (
+/obj/random/dirt_75,
+/obj/machinery/cryopod/living_quarters{
+ pixel_y = 8;
+ name = "metro lift";
+ desc = "A lift heading to the lower metro levels."
+ },
+/turf/simulated/floor/sidewalk,
+/area/point_verdant/interior)
"af" = (
/obj/structure/mopbucket,
/obj/item/mop,
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/pharmacy)
+"ah" = (
+/obj/machinery/light/small/emergency{
+ dir = 1
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/interior/tunnels)
"ai" = (
/obj/machinery/door/urban,
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
+"aj" = (
+/obj/random/dirt_75,
+/obj/machinery/atm{
+ dir = 1;
+ pixel_y = 28
+ },
+/turf/simulated/floor/sidewalk/blocks,
+/area/point_verdant/interior)
"al" = (
/obj/structure/table/rack/retail_shelf,
/obj/item/storage/box/folders{
@@ -194,12 +223,16 @@
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/police)
+"aJ" = (
+/obj/machinery/light/spot,
+/turf/simulated/floor/sidewalk/blocks,
+/area/point_verdant/interior)
"aK" = (
/obj/random/dirt_75,
/obj/random/dirt_75,
/obj/structure/reagent_dispensers/keg/sake,
/turf/simulated/floor/tiled/full,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"aM" = (
/obj/effect/floor_decal/corner/black{
dir = 1
@@ -213,6 +246,17 @@
/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/streetvendor)
+"aO" = (
+/obj/effect/decal/road_marking{
+ dir = 1
+ },
+/obj/effect/decal/curb{
+ dir = 1
+ },
+/obj/structure/road_barrier,
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"aQ" = (
/obj/structure/extinguisher_cabinet/north,
/obj/effect/floor_decal/spline/plain/corner,
@@ -454,7 +498,6 @@
pixel_y = 4
},
/obj/item/trash/cigbutt{
- pixel_y = 0;
pixel_x = 10
},
/obj/random/dirt_75,
@@ -582,6 +625,7 @@
dir = 5
},
/obj/structure/flora/rock/konyang,
+/obj/random/dirt_75,
/turf/simulated/floor/exoplanet/dirt_konyang,
/area/point_verdant/interior/tunnels)
"bP" = (
@@ -608,6 +652,7 @@
/obj/effect/decal/curb{
dir = 8
},
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"bS" = (
@@ -698,6 +743,10 @@
/area/point_verdant/interior)
"cf" = (
/obj/structure/weightlifter,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_goon_boss";
+ identifier = "konyang_goon_boss"
+ },
/turf/simulated/floor/lino,
/area/point_verdant/interior/decrepit)
"cg" = (
@@ -717,6 +766,9 @@
/obj/effect/decal/road_marking{
dir = 8
},
+/obj/vehicle/bike/motor/police_konyang{
+ dir = 1
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/police)
"cl" = (
@@ -731,7 +783,7 @@
/obj/effect/shuttle_landmark/point_verdant/water/dock_01{
dir = 8
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"cn" = (
/mob/living/heavy_vehicle/premade/heavy,
@@ -870,6 +922,8 @@
/area/point_verdant/interior)
"cL" = (
/obj/effect/decal/road_marking/reflector,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"cM" = (
@@ -901,13 +955,6 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/sewer)
-"cR" = (
-/obj/structure/stairs/urban{
- dir = 8;
- icon_state = "stairs-left"
- },
-/turf/simulated/floor/concrete,
-/area/point_verdant/outdoors)
"cS" = (
/obj/structure/table/rack/clothing{
dir = 4;
@@ -1096,6 +1143,7 @@
/area/point_verdant/outdoors)
"dx" = (
/obj/effect/decal/curb/corner,
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"dz" = (
@@ -1205,7 +1253,7 @@
/turf/simulated/floor/lino,
/area/point_verdant/interior/streetvendor)
"dT" = (
-/obj/effect/decal/exterior_stairs/left,
+/obj/effect/decal/exterior_stairs/center,
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/outdoors)
"dU" = (
@@ -1251,48 +1299,45 @@
/obj/item/storage/box/toothpaste,
/obj/item/towel/random,
/obj/random/dirt_75,
+/obj/item/clothing/under/konyang/male,
+/obj/item/clothing/under/konyangdresstraditional/red,
+/obj/item/clothing/under/konyang/male/shortsleeve{
+ color = "4433AD"
+ },
+/obj/item/clothing/suit/storage/hooded/wintercoat/konyang,
+/obj/item/clothing/suit/storage/toggle/konyang/pants,
+/obj/item/clothing/head/konyang,
+/obj/item/clothing/shoes/konyang,
+/obj/item/clothing/accessory/konyang{
+ color = "#0000FF"
+ },
/turf/simulated/floor/lino,
/area/point_verdant/interior/hotel)
"ea" = (
/obj/structure/table/rack/retail_shelf,
/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_x = -8;
- pixel_y = 0
- },
-/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_y = 0
+ pixel_x = -8
},
+/obj/item/reagent_containers/food/drinks/bottle/sake,
/obj/item/reagent_containers/food/drinks/bottle/soju{
pixel_x = 8
},
/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_x = -8;
- pixel_y = 0
- },
-/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_x = -8;
- pixel_y = 0
- },
-/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_x = -8;
- pixel_y = 0
- },
-/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_x = -8;
- pixel_y = 0
- },
-/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_y = 0
+ pixel_x = -8
},
/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_y = 0
+ pixel_x = -8
},
/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_y = 0
+ pixel_x = -8
},
/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_y = 0
+ pixel_x = -8
},
+/obj/item/reagent_containers/food/drinks/bottle/sake,
+/obj/item/reagent_containers/food/drinks/bottle/sake,
+/obj/item/reagent_containers/food/drinks/bottle/sake,
+/obj/item/reagent_containers/food/drinks/bottle/sake,
/obj/item/reagent_containers/food/drinks/bottle/soju{
pixel_x = 8
},
@@ -1308,9 +1353,7 @@
/obj/item/reagent_containers/food/drinks/bottle/soju{
pixel_x = 8
},
-/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_y = 0
- },
+/obj/item/reagent_containers/food/drinks/bottle/sake,
/obj/item/reagent_containers/food/drinks/bottle/soju{
pixel_x = 8
},
@@ -1321,7 +1364,7 @@
pixel_x = 8
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"eb" = (
/obj/machinery/light{
dir = 1
@@ -1420,6 +1463,22 @@
},
/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
+"el" = (
+/obj/effect/decal/road_marking{
+ dir = 1
+ },
+/obj/effect/decal/curb{
+ dir = 1
+ },
+/obj/structure/road_barrier{
+ layer = 9.1
+ },
+/obj/structure/utility_pole/street/on{
+ dir = 1
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"em" = (
/obj/structure/table/standard,
/obj/item/storage/firstaid/surgery,
@@ -1470,6 +1529,9 @@
/obj/effect/decal/road_marking/no_pass{
dir = 1
},
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"eA" = (
@@ -1661,6 +1723,14 @@
"fg" = (
/turf/simulated/floor/tiled,
/area/point_verdant/interior)
+"fh" = (
+/obj/effect/decal/curb,
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor/moped/police_konyang{
+ dir = 4
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/police)
"fi" = (
/obj/effect/decal/road_marking/reflector{
dir = 8
@@ -1675,8 +1745,20 @@
/obj/effect/decal/road_marking/no_pass{
dir = 1
},
+/obj/random/dirt_75,
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"fk" = (
+/obj/structure/rod_railing{
+ dir = 4
+ },
+/obj/structure/rod_railing{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/sidewalk/flat,
+/area/point_verdant/interior/tunnels)
"fl" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/standard,
@@ -1700,9 +1782,8 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"fo" = (
-/obj/structure/stairs/urban{
- dir = 8;
- icon_state = "stairs-left"
+/obj/structure/stairs/urban/left{
+ icon_state = "stairs-left-top"
},
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/interior)
@@ -1721,7 +1802,7 @@
/obj/machinery/door/urban,
/obj/effect/decal/exterior_stairs/half,
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"fr" = (
/obj/structure/closet/crate/loot,
/obj/random/junk,
@@ -1824,7 +1905,7 @@
/area/point_verdant/interior/offices/basement)
"fD" = (
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"fE" = (
/obj/structure/table/wood,
/obj/item/flame/lighter/random{
@@ -2039,7 +2120,7 @@
/obj/effect/shuttle_landmark/point_verdant/water/dock_02{
dir = 8
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"gr" = (
/obj/structure/table/standard,
@@ -2101,7 +2182,7 @@
/area/point_verdant/interior/offices/headquarters)
"gA" = (
/obj/effect/decal/road_marking/incline{
- pixel_y = -5
+ pixel_y = -8
},
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/outdoors)
@@ -2349,11 +2430,17 @@
},
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/bar)
+"hi" = (
+/obj/structure/stairs/urban/road_ramp/left{
+ icon_state = "road-ramp-left-top";
+ pixel_y = 29
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/tunnels)
"hj" = (
/obj/structure/closet/cabinet,
/obj/item/clothing/head/konyang/army,
@@ -2386,6 +2473,18 @@
},
/turf/simulated/floor/exoplanet/konyang,
/area/point_verdant/outdoors)
+"hn" = (
+/obj/effect/decal/road_marking{
+ dir = 1
+ },
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
+/obj/effect/decal/curb{
+ dir = 1
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/tunnels)
"ho" = (
/turf/unsimulated/wall/konyang,
/area/point_verdant/interior/offices/kaf)
@@ -2686,13 +2785,6 @@
/obj/effect/decal/exterior_stairs/half/center,
/turf/simulated/floor/tiled,
/area/point_verdant/interior/maint_janitorial)
-"ip" = (
-/obj/structure/stairs/urban/road_ramp/left{
- dir = 8;
- pixel_y = 29
- },
-/turf/simulated/floor/asphalt,
-/area/point_verdant/interior/tunnels)
"iq" = (
/obj/effect/decal/road_marking/center,
/obj/effect/decal/road_marking/no_pass{
@@ -2706,7 +2798,6 @@
"ir" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/colored/decayed{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/lino,
@@ -2960,6 +3051,26 @@
"iY" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
+/obj/structure/table/reinforced/wood,
+/obj/item/key/bike/sport{
+ pixel_x = 2;
+ pixel_y = 2;
+ key_data = "S58-2165"
+ },
+/obj/item/key/bike/sport{
+ pixel_x = -5;
+ key_data = "S17-3906"
+ },
+/obj/item/key/bike/sport{
+ pixel_x = -9;
+ pixel_y = 5;
+ key_data = "2KA-N3DA"
+ },
+/obj/item/key/bike/moped{
+ pixel_x = 8;
+ pixel_y = -1;
+ key_data = "T3T-5U01"
+ },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/decrepit)
"ja" = (
@@ -2983,6 +3094,13 @@
/obj/effect/decal/cleanable/cobweb,
/turf/simulated/floor/exoplanet/dirt_konyang,
/area/point_verdant/interior/hotel)
+"jg" = (
+/obj/effect/decal/exterior_stairs/left{
+ dir = 8;
+ icon_state = "stairs-left-top"
+ },
+/turf/simulated/floor/concrete,
+/area/point_verdant/outdoors)
"ji" = (
/obj/effect/decal/cleanable/floor_damage/random_wood_broken,
/obj/random/dirt_75,
@@ -2994,7 +3112,7 @@
"jj" = (
/obj/random/dirt_75,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"jk" = (
/obj/random/dirt_75,
/obj/structure/flora/bush/konyang_reeds,
@@ -3070,15 +3188,13 @@
/area/point_verdant/sewer)
"jz" = (
/obj/random/dirt_75,
-/obj/random/dirt_75,
-/obj/machinery/light/spot{
- dir = 8
- },
-/turf/simulated/floor/sidewalk/blocks,
-/area/point_verdant/interior)
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/outdoors)
"jA" = (
-/obj/effect/decal/exterior_stairs/right{
- dir = 8
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ layer = 2.01;
+ icon_state = "stairs-left-bot"
},
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/outdoors)
@@ -3321,7 +3437,6 @@
pixel_x = 2
},
/obj/machinery/light/colored/decayed{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/lino,
@@ -3373,7 +3488,6 @@
/obj/item/material/hook,
/obj/item/device/synthesized_instrument/guitar,
/obj/machinery/light/colored/decayed{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/lino,
@@ -3456,18 +3570,15 @@
/obj/structure/reagent_dispensers/watertank,
/obj/effect/decal/cleanable/floor_damage/random_wood_broken,
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"kA" = (
+/obj/item/reagent_containers/food/drinks/bottle,
/obj/item/reagent_containers/food/drinks/bottle{
- pixel_y = 0
- },
-/obj/item/reagent_containers/food/drinks/bottle{
- pixel_y = 0;
pixel_x = -10
},
/obj/structure/table/rack/retail_shelf,
/turf/simulated/floor/tiled/full,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"kB" = (
/obj/random/dirt_75,
/turf/simulated/floor/tiled,
@@ -3475,7 +3586,6 @@
"kC" = (
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/obj/structure/toilet{
@@ -3946,7 +4056,7 @@
dir = 8;
layer = 2.9
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"lP" = (
/obj/effect/decal/cleanable/floor_damage/random_broken,
@@ -4059,9 +4169,8 @@
/area/point_verdant/interior/tunnels)
"md" = (
/obj/structure/rod_railing,
-/obj/structure/stairs/urban{
- dir = 8;
- icon_state = "stairs-right"
+/obj/structure/stairs/urban/left{
+ icon_state = "stairs-left-bot"
},
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/outdoors)
@@ -4213,9 +4322,10 @@
/turf/simulated/floor/sidewalk/dark,
/area/point_verdant/interior/offices/kaf)
"mA" = (
-/obj/structure/bed/padded,
-/obj/item/bedsheet/black,
-/turf/simulated/floor/carpet/green,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/hotel)
"mB" = (
/obj/effect/decal/road_marking{
@@ -4239,7 +4349,6 @@
"mG" = (
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/obj/structure/toilet{
@@ -4389,6 +4498,10 @@
/obj/structure/bed/stool/chair/office/dark{
dir = 4
},
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_goon";
+ identifier = "konyang_goon"
+ },
/turf/simulated/floor/lino,
/area/point_verdant/interior/decrepit)
"ni" = (
@@ -4408,6 +4521,11 @@
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/sewer)
+"nl" = (
+/obj/structure/flora/rock/konyang/small,
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/outdoors)
"nm" = (
/obj/machinery/door/urban,
/obj/effect/decal/exterior_stairs/half/center,
@@ -4428,6 +4546,10 @@
/obj/structure/bed/stool/chair/office/light{
dir = 8
},
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_cop";
+ identifier = "konyang_cop"
+ },
/turf/simulated/floor/wood,
/area/point_verdant/interior/police)
"ns" = (
@@ -4523,6 +4645,14 @@
/obj/item/towel/random,
/obj/item/storage/box/fancy/chips/cucumber,
/obj/random/dirt_75,
+/obj/item/clothing/under/konyang/blue,
+/obj/item/clothing/under/konyangdresstraditional/national/vest,
+/obj/item/clothing/suit/storage/toggle/konyang/blue,
+/obj/item/clothing/shoes/sneakers/hitops/brown,
+/obj/item/clothing/shoes/sneakers/rainbow,
+/obj/item/clothing/shoes/sandals/geta{
+ color = "#AAAAAA"
+ },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/hotel)
"nG" = (
@@ -4653,12 +4783,6 @@
},
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/interior)
-"oa" = (
-/obj/structure/stairs/urban/road_ramp{
- dir = 8
- },
-/turf/simulated/floor/asphalt,
-/area/point_verdant/outdoors)
"ob" = (
/obj/structure/closet/crate/trashcart,
/obj/random/contraband,
@@ -4710,6 +4834,16 @@
/obj/structure/curtain/open/shower,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/offices/kaf)
+"ok" = (
+/obj/effect/decal/road_marking,
+/obj/effect/decal/curb,
+/obj/vehicle/bike/motor/police_konyang{
+ dir = 4;
+ spawns_with_key = 0;
+ registration_plate = "P99-7257"
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/tunnels)
"om" = (
/obj/structure/ledge/quarter,
/obj/structure/trash_pile,
@@ -4798,7 +4932,7 @@
"oC" = (
/obj/structure/lattice/catwalk/indoor/urban,
/obj/effect/shuttle_landmark/point_verdant/water/dock_03,
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"oD" = (
/obj/structure/rod_railing{
@@ -4828,14 +4962,14 @@
/obj/effect/overlay/container_logo/zenghu,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"oH" = (
+/obj/structure/stairs/urban/road_ramp/north,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/tunnels)
"oI" = (
/obj/structure/bed/stool/chair/office/light{
dir = 4
},
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_utility";
- identifier = "konyang_utility"
- },
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/maint_janitorial)
"oJ" = (
@@ -4888,7 +5022,6 @@
/area/point_verdant/interior/tunnels)
"oQ" = (
/obj/machinery/light/colored/decayed{
- dir = 2;
pixel_y = -2
},
/obj/structure/closet/crate/bin,
@@ -4917,7 +5050,6 @@
dir = 8
},
/obj/machinery/light/colored/decayed{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/lino/diamond,
@@ -4967,25 +5099,21 @@
pixel_x = -9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = -9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma,
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = 9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = -9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma,
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = 9
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"pc" = (
/obj/structure/road_barrier,
/turf/simulated/floor/sidewalk/blocks,
@@ -5041,6 +5169,10 @@
/obj/effect/decal/curb,
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/tunnels)
+"pn" = (
+/obj/structure/stairs/urban/road_ramp/left,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/tunnels)
"po" = (
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
@@ -5126,7 +5258,6 @@
/obj/effect/decal/cleanable/cobweb2,
/obj/machinery/light/colored/decayed{
dir = 4;
- pixel_y = 0;
pixel_x = 10
},
/turf/simulated/floor/lino,
@@ -5149,13 +5280,12 @@
"pI" = (
/obj/structure/table/wood,
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/offices/kaf)
"pJ" = (
-/obj/structure/stairs/urban,
+/obj/structure/stairs/urban/north,
/turf/simulated/floor/wood,
/area/point_verdant/interior/hotel)
"pK" = (
@@ -5230,7 +5360,7 @@
"pU" = (
/obj/structure/reagent_dispensers/keg/sake,
/turf/simulated/floor/tiled/full,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"pV" = (
/obj/effect/decal/cleanable/floor_damage/random_wood_broken,
/obj/effect/decal/cleanable/floor_damage/random_broken,
@@ -5256,6 +5386,30 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"qa" = (
+/obj/structure/closet/secure_closet{
+ req_access = list(217)
+ },
+/obj/item/device/flashlight/maglight,
+/obj/item/device/flashlight/maglight,
+/obj/item/device/flashlight/maglight,
+/obj/item/device/flashlight/maglight,
+/obj/item/device/flashlight/maglight,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/under/rank/konyang/police,
+/obj/item/clothing/under/rank/konyang/police,
+/obj/item/clothing/under/rank/konyang/police,
+/obj/item/clothing/head/konyang/police,
+/obj/item/clothing/head/konyang/police,
+/obj/item/clothing/head/konyang/police,
+/obj/item/clothing/suit/storage/vest/konyang,
+/obj/item/clothing/suit/storage/vest/konyang,
+/obj/item/clothing/suit/storage/vest/konyang,
+/obj/item/clothing/suit/storage/vest/konyang,
+/turf/simulated/floor/tiled,
+/area/point_verdant/interior/police)
"qb" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/girder,
@@ -5332,6 +5486,9 @@
/obj/effect/decal/road_marking{
dir = 1
},
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
/obj/effect/decal/curb{
dir = 5
},
@@ -5434,11 +5591,13 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/tunnels)
"qC" = (
-/obj/random/dirt_75,
/obj/machinery/light/small{
dir = 4
},
-/turf/simulated/floor/carpet/green,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/hotel)
"qD" = (
/obj/effect/floor_decal/industrial/warning/dust{
@@ -5476,6 +5635,15 @@
"qI" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wood,
+/obj/item/key/bike/sport{
+ pixel_x = -4;
+ key_data = "S71-3614"
+ },
+/obj/item/key/bike/sport{
+ pixel_x = 8;
+ key_data = "S62-4394";
+ pixel_y = -3
+ },
/turf/simulated/floor/lino,
/area/point_verdant/interior/streetvendor)
"qJ" = (
@@ -5485,6 +5653,16 @@
/obj/random/dirt_75,
/turf/simulated/floor/exoplanet/dirt_konyang,
/area/point_verdant/interior/tunnels)
+"qK" = (
+/obj/structure/shipping_container{
+ icon_state = "green3"
+ },
+/obj/effect/overlay/container_logo{
+ icon_state = "heph3"
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"qL" = (
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
@@ -5531,7 +5709,7 @@
/obj/effect/shuttle_landmark/point_verdant/water/dock_06{
dir = 8
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"qS" = (
/obj/effect/floor_decal/corner/blue{
@@ -5542,12 +5720,6 @@
/obj/item/trash/cigbutt,
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
-"qU" = (
-/obj/structure/stairs/urban/road_ramp{
- dir = 1
- },
-/turf/simulated/floor/asphalt,
-/area/point_verdant/interior/tunnels)
"qV" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/lino/diamond,
@@ -5569,7 +5741,7 @@
/obj/effect/decal/cleanable/floor_damage/rust,
/obj/random/junk,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"qZ" = (
/obj/effect/decal/curb{
dir = 4
@@ -5708,7 +5880,7 @@
/obj/random/dirt_75,
/obj/structure/reagent_dispensers/keg/sake,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"rw" = (
/obj/structure/closet/crate/trashcart,
/obj/random/finances,
@@ -5753,6 +5925,13 @@
/obj/effect/decal/road_marking/no_park,
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/interior)
+"rI" = (
+/obj/effect/decal/road_marking/center{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"rK" = (
/obj/random/dirt_75,
/turf/simulated/floor/tiled,
@@ -5885,7 +6064,6 @@
},
/obj/machinery/light/colored/decayed{
dir = 4;
- pixel_y = 0;
pixel_x = 10
},
/obj/item/reagent_containers/food/drinks/bottle/pwine{
@@ -5894,6 +6072,13 @@
},
/turf/simulated/floor/lino,
/area/point_verdant/interior/decrepit)
+"sc" = (
+/obj/structure/ledge/quarter{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/interior/tunnels)
"sd" = (
/obj/structure/ledge/quarter{
dir = 4
@@ -5955,7 +6140,6 @@
pixel_y = 11
},
/obj/item/storage/box/masks{
- pixel_y = 0;
pixel_x = -9
},
/obj/item/storage/box/gloves{
@@ -6422,10 +6606,6 @@
dir = 1
},
/obj/random/dirt_75,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_utility";
- identifier = "konyang_utility"
- },
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/maint_janitorial)
"tC" = (
@@ -6480,6 +6660,10 @@
/obj/item/bedsheet/yellow,
/obj/structure/curtain/open/bed,
/obj/random/dirt_75,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_vendor";
+ identifier = "konyang_vendor"
+ },
/turf/simulated/floor/lino,
/area/point_verdant/interior/hotel)
"tM" = (
@@ -6558,7 +6742,6 @@
/area/point_verdant/interior/tunnels)
"tX" = (
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/sidewalk/dark,
@@ -6717,6 +6900,10 @@
"uy" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed/stool/chair/office/dark,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_goon";
+ identifier = "konyang_goon"
+ },
/turf/simulated/floor/lino,
/area/point_verdant/interior/decrepit)
"uz" = (
@@ -6751,6 +6938,12 @@
},
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/offices/basement)
+"uD" = (
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"uE" = (
/obj/effect/floor_decal/corner_wide/black{
dir = 10
@@ -6850,7 +7043,7 @@
dir = 1
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"uR" = (
/obj/structure/mopbucket,
/obj/item/mop,
@@ -6893,6 +7086,11 @@
/obj/random/dirt_75,
/turf/simulated/floor/lino,
/area/point_verdant/interior/hotel)
+"uX" = (
+/obj/random/dirt_75,
+/obj/structure/closet/crate/bin/urban/compact,
+/turf/simulated/floor/sidewalk,
+/area/point_verdant/interior)
"uY" = (
/obj/effect/decal/road_marking/center,
/obj/effect/decal/road_marking/reflector,
@@ -6980,6 +7178,9 @@
/obj/effect/decal/road_marking/no_pass{
dir = 1
},
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"vq" = (
@@ -6993,7 +7194,7 @@
dir = 8
},
/obj/structure/lattice/catwalk/indoor/urban,
-/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"vs" = (
/turf/simulated/floor/exoplanet/konyang,
@@ -7146,7 +7347,6 @@
pixel_y = 11
},
/obj/item/storage/box/masks{
- pixel_y = 0;
pixel_x = -9
},
/obj/item/storage/box/gloves{
@@ -7218,16 +7418,6 @@
},
/turf/simulated/floor/lino,
/area/point_verdant/interior/streetvendor)
-"vW" = (
-/obj/structure/stairs/urban/road_ramp/left{
- dir = 8;
- pixel_y = 29
- },
-/obj/structure/stairs/urban/road_ramp{
- dir = 8
- },
-/turf/simulated/floor/asphalt,
-/area/point_verdant/interior/tunnels)
"vX" = (
/obj/effect/decal/exterior_stairs/half/center{
dir = 4
@@ -7259,7 +7449,7 @@
/obj/effect/shuttle_landmark/point_verdant/water/dock_05{
dir = 1
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"we" = (
/obj/structure/flora/rock/konyang,
@@ -7535,7 +7725,6 @@
"wW" = (
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/turf/simulated/floor/lino/diamond,
@@ -7617,7 +7806,7 @@
/obj/effect/decal/cleanable/floor_damage/random_tiled_broken,
/obj/structure/reagent_dispensers/keg/sake,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"xl" = (
/obj/structure/flora/bush/konyang_reeds,
/turf/simulated/floor/exoplanet/dirt_konyang,
@@ -7647,9 +7836,12 @@
},
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_goon";
+ identifier = "konyang_goon"
+ },
/turf/simulated/floor/lino,
/area/point_verdant/interior/decrepit)
"xq" = (
@@ -7743,8 +7935,8 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/sewer)
"xH" = (
-/obj/machinery/vending/cola,
/obj/random/dirt_75,
+/obj/machinery/vending/snack/konyang,
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/interior)
"xI" = (
@@ -7923,7 +8115,14 @@
pixel_x = 1
},
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
+"yg" = (
+/obj/effect/decal/curb/corner{
+ dir = 1
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/outdoors)
"yi" = (
/obj/effect/floor_decal/corner/black{
dir = 1
@@ -7934,7 +8133,6 @@
pixel_x = 1
},
/obj/item/trash/cigbutt{
- pixel_y = 0;
pixel_x = 10
},
/obj/random/dirt_75,
@@ -8334,7 +8532,7 @@
pixel_y = -1
},
/turf/simulated/wall,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"zG" = (
/obj/effect/decal/cleanable/floor_damage/random_wood_broken,
/obj/random/dirt_75,
@@ -8389,6 +8587,9 @@
/obj/random/dirt_75,
/obj/random/dirt_75,
/obj/random/dirt_75,
+/obj/vehicle/bike/motor/moped/police_konyang{
+ dir = 1
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/police)
"zU" = (
@@ -8420,7 +8621,6 @@
/area/point_verdant/interior/tunnels)
"Ab" = (
/obj/machinery/door/blast/odin{
- dir = 1;
id = "konyang_special_big"
},
/obj/effect/floor_decal/corner_wide/red/diagonal,
@@ -8458,7 +8658,7 @@
pixel_x = -9
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Ae" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed/stool/chair/wood{
@@ -8492,6 +8692,11 @@
},
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/police)
+"Ai" = (
+/obj/structure/trash_pile,
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/interior/tunnels)
"Aj" = (
/obj/structure/table/wood,
/obj/machinery/light/small{
@@ -8674,6 +8879,14 @@
},
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
+"AH" = (
+/obj/machinery/cryopod/living_quarters{
+ pixel_y = 8;
+ name = "metro lift";
+ desc = "A lift heading to the lower metro levels."
+ },
+/turf/simulated/floor/sidewalk/blocks,
+/area/point_verdant/interior)
"AI" = (
/obj/structure/dam{
icon_state = "dam7"
@@ -8737,9 +8950,7 @@
/turf/unsimulated/mineral/konyang,
/area/point_verdant/interior/tunnels)
"AX" = (
-/obj/structure/bed/stool/chair{
- dir = 2
- },
+/obj/structure/bed/stool/chair,
/turf/simulated/floor/sidewalk/dark,
/area/point_verdant/interior/offices/kaf)
"AY" = (
@@ -8778,6 +8989,13 @@
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/tunnels)
+"Be" = (
+/obj/structure/stairs/urban/road_ramp/left{
+ icon_state = "road-ramp-left-top";
+ pixel_y = 29
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Bf" = (
/obj/effect/decal/curb{
dir = 1
@@ -8792,10 +9010,9 @@
/obj/random/dirt_75,
/obj/effect/decal/cleanable/floor_damage/rust,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Bh" = (
/obj/machinery/light/colored/decayed{
- dir = 2;
pixel_y = -2
},
/obj/structure/lattice/catwalk/indoor/urban,
@@ -8972,7 +9189,6 @@
/obj/item/storage/bag/trash,
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/turf/simulated/floor/lino,
@@ -9135,7 +9351,7 @@
"Ck" = (
/obj/structure/stairs/east,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Cm" = (
/obj/random/dirt_75,
/obj/item/storage/bag/trash{
@@ -9147,7 +9363,7 @@
pixel_y = -7
},
/turf/simulated/floor/tiled/full,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Co" = (
/obj/effect/floor_decal/spline/fancy/wood{
dir = 4
@@ -9240,6 +9456,11 @@
/obj/effect/floor_decal/corner/mauve{
dir = 6
},
+/obj/item/key/bike/moped{
+ pixel_x = 5;
+ pixel_y = -7;
+ key_data = "M22-2289"
+ },
/turf/simulated/floor/tiled,
/area/point_verdant/interior/maint_janitorial)
"CE" = (
@@ -9297,14 +9518,14 @@
/turf/simulated/floor/sidewalk/dark,
/area/point_verdant/interior/offices/kaf)
"CJ" = (
-/obj/structure/stairs/urban/road_ramp/right{
- dir = 4;
- pixel_y = 32
- },
/obj/effect/decal/road_marking/incline{
pixel_y = 26;
dir = 1
},
+/obj/structure/stairs/urban/road_ramp/right{
+ icon_state = "road-ramp-right-top";
+ pixel_y = 30
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/police)
"CK" = (
@@ -9553,6 +9774,14 @@
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices/kaf)
+"Dt" = (
+/obj/structure/automobile/random{
+ dir = 4
+ },
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/outdoors)
"Du" = (
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/maint_janitorial)
@@ -9619,7 +9848,7 @@
/area/point_verdant/interior/maint_janitorial)
"DJ" = (
/obj/structure/automobile_filler,
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
"DL" = (
/obj/structure/light_pole,
@@ -9721,9 +9950,7 @@
/obj/effect/decal/road_marking/incline/center{
pixel_y = -17
},
-/obj/structure/stairs/urban/road_ramp{
- dir = 8
- },
+/obj/structure/stairs/urban/road_ramp/left,
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/tunnels)
"Ea" = (
@@ -9741,7 +9968,7 @@
/obj/effect/shuttle_landmark/point_verdant/water/dock_10{
dir = 8
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"Ed" = (
/obj/random/dirt_75,
@@ -9800,9 +10027,7 @@
/turf/simulated/floor/lino,
/area/point_verdant/interior/bar)
"En" = (
-/obj/structure/bed/stool/chair/sofa/brown{
- dir = 2
- },
+/obj/structure/bed/stool/chair/sofa/brown,
/turf/simulated/floor/wood,
/area/point_verdant/interior/bar)
"Eo" = (
@@ -9865,6 +10090,10 @@
/obj/structure/curtain/open/bed,
/obj/item/bedsheet/brown,
/obj/random/dirt_75,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_vendor";
+ identifier = "konyang_vendor"
+ },
/turf/simulated/floor/lino,
/area/point_verdant/interior/hotel)
"Eq" = (
@@ -9949,6 +10178,10 @@
/obj/structure/curtain/open/bed,
/obj/item/bedsheet/green,
/obj/random/dirt_75,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_vendor";
+ identifier = "konyang_vendor"
+ },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/hotel)
"EF" = (
@@ -9960,6 +10193,13 @@
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/interior)
+"EG" = (
+/obj/machinery/light/small/emergency{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/sidewalk/flat,
+/area/point_verdant/interior/tunnels)
"EH" = (
/obj/structure/sink{
pixel_y = 29;
@@ -10168,6 +10408,11 @@
/obj/random/dirt_75,
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/maint_janitorial)
+"Fm" = (
+/obj/random/dirt_75,
+/obj/machinery/vending/cola/konyang,
+/turf/simulated/floor/sidewalk/blocks,
+/area/point_verdant/interior)
"Fn" = (
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
@@ -10284,11 +10529,18 @@
/turf/simulated/floor/tiled/dark,
/area/point_verdant/interior/police)
"FE" = (
-/obj/structure/bed/stool/chair/office/dark{
- dir = 2
+/obj/structure/bed/stool/chair/office/dark,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_pharm";
+ identifier = "konyang_pharm"
},
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/pharmacy)
+"FG" = (
+/obj/effect/decal/curb/corner,
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/outdoors)
"FH" = (
/obj/structure/table/standard,
/obj/item/storage/box/folders{
@@ -10301,11 +10553,10 @@
/obj/effect/decal/cleanable/floor_damage/wood_broken5,
/obj/structure/reagent_dispensers/keg/beerkeg/rice,
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"FL" = (
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/obj/structure/toilet{
@@ -10494,6 +10745,7 @@
name = "imposing rod railing";
layer = 9.1
},
+/obj/random/dirt_75,
/turf/simulated/floor/exoplanet/dirt_konyang,
/area/point_verdant/interior/tunnels)
"Gp" = (
@@ -10509,6 +10761,9 @@
/area/point_verdant/interior/maint_janitorial)
"Gq" = (
/obj/effect/decal/road_marking,
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
/obj/effect/decal/curb{
dir = 6
},
@@ -10617,9 +10872,7 @@
/obj/effect/decal/road_marking/incline/center{
pixel_y = -17
},
-/obj/structure/stairs/urban/road_ramp{
- dir = 8
- },
+/obj/structure/stairs/urban/road_ramp/left,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"GJ" = (
@@ -10707,7 +10960,7 @@
},
/obj/machinery/light/small,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"GT" = (
/obj/structure/bed/stool{
dir = 8
@@ -10740,6 +10993,9 @@
/obj/item/storage/box/toothpaste,
/obj/item/towel/random,
/obj/random/dirt_75,
+/obj/item/clothing/under/konyang/male/shortsleeve,
+/obj/item/clothing/suit/storage/toggle/konyang/akira,
+/obj/item/clothing/shoes/sneakers/hitops/orange,
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/hotel)
"Ha" = (
@@ -10919,6 +11175,13 @@
/obj/machinery/light,
/turf/simulated/floor/sidewalk/dark,
/area/point_verdant/interior/offices/kaf)
+"Hi" = (
+/obj/effect/decal/curb{
+ dir = 4
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/outdoors)
"Hj" = (
/obj/structure/table/wood,
/turf/simulated/floor/lino/diamond,
@@ -10956,6 +11219,16 @@
},
/turf/simulated/floor/exoplanet/konyang,
/area/point_verdant/interior/tunnels)
+"Hp" = (
+/obj/effect/decal/road_marking,
+/obj/effect/decal/curb,
+/obj/vehicle/bike/motor/brown{
+ dir = 4;
+ spawns_with_key = 0;
+ registration_plate = "S84-7683"
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/tunnels)
"Hq" = (
/obj/structure/flora/rock/konyang/small,
/turf/simulated/floor/sidewalk/flat,
@@ -11074,7 +11347,6 @@
"HD" = (
/obj/machinery/light/colored/decayed{
dir = 4;
- pixel_y = 0;
pixel_x = 10
},
/obj/structure/toilet{
@@ -11203,7 +11475,7 @@
pixel_y = -5
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"HY" = (
/obj/random/dirt_75,
/obj/structure/flora/bush/konyang_reeds,
@@ -11257,6 +11529,13 @@
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices/basement)
+"Ig" = (
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_utility";
+ identifier = "konyang_utility"
+ },
+/turf/simulated/floor/tiled,
+/area/point_verdant/interior/maint_janitorial)
"Ii" = (
/obj/effect/overlay/container_logo{
icon_state = "heph2"
@@ -11270,6 +11549,14 @@
/obj/structure/closet/cabinet,
/turf/simulated/floor/wood,
/area/point_verdant/interior/spaceport)
+"Im" = (
+/obj/vehicle/bike/motor/moped{
+ dir = 4;
+ registration_plate = "M22-2289";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior)
"In" = (
/obj/item/broken_bottle{
pixel_y = 2;
@@ -11518,6 +11805,18 @@
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/storage/box/toothpaste,
/obj/item/towel/random,
+/obj/item/clothing/under/konyangdresstraditional/national,
+/obj/item/clothing/suit/storage/toggle/konyang/dbjacket/blue,
+/obj/item/clothing/suit/storage/toggle/konyang/orange,
+/obj/item/clothing/head/konyang,
+/obj/item/clothing/accessory/konyang{
+ color = "#FF0000"
+ },
+/obj/item/clothing/shoes/sneakers/hitops/tip,
+/obj/item/clothing/shoes/sneakers/brown,
+/obj/item/clothing/shoes/sandals/geta{
+ color = "#AAAAAA"
+ },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/hotel)
"IW" = (
@@ -11540,7 +11839,7 @@
pixel_y = 24
},
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Ja" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/sidewalk/blocks,
@@ -11549,6 +11848,13 @@
/obj/structure/dock_structure/rail,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"Jd" = (
+/obj/effect/step_trigger/thrower{
+ icon_state = "dir_arrow";
+ tiles = 1
+ },
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/area/point_verdant/water)
"Je" = (
/obj/structure/mopbucket,
/obj/item/mop/advanced,
@@ -11596,7 +11902,6 @@
pixel_y = 3
},
/obj/machinery/light/colored/decayed{
- dir = 2;
pixel_y = -2
},
/obj/item/reagent_containers/food/drinks/bottle/hooch{
@@ -11724,12 +12029,22 @@
/obj/item/reagent_containers/chem_disp_cartridge/ethanol,
/turf/simulated/floor/tiled,
/area/point_verdant/interior/pharmacy)
+"JE" = (
+/obj/machinery/cryopod/living_quarters{
+ pixel_y = 8;
+ name = "metro lift";
+ desc = "A lift heading to the lower metro levels."
+ },
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/sidewalk,
+/area/point_verdant/interior)
"JF" = (
/obj/random/dirt_75,
/obj/effect/decal/cleanable/floor_damage/random_wood_broken,
/obj/structure/reagent_dispensers/keg/sake,
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"JG" = (
/obj/effect/floor_decal/corner_wide/red/diagonal,
/mob/living/heavy_vehicle/premade/superheavy,
@@ -11793,6 +12108,11 @@
/obj/structure/flora/rock/konyang,
/turf/simulated/floor/exoplanet/dirt_konyang,
/area/point_verdant/interior/tunnels)
+"JR" = (
+/obj/structure/flora/rock/konyang/small,
+/obj/random/dirt_75,
+/turf/simulated/floor/sidewalk/flat,
+/area/point_verdant/interior/tunnels)
"JS" = (
/obj/structure/urban_grate,
/turf/simulated/floor/sidewalk/blocks,
@@ -11807,9 +12127,7 @@
/turf/simulated/floor/carpet/darkblue,
/area/point_verdant/interior/police)
"JU" = (
-/obj/structure/bed/stool/chair/office/dark{
- dir = 2
- },
+/obj/structure/bed/stool/chair/office/dark,
/obj/random/dirt_75,
/turf/simulated/floor/lino,
/area/point_verdant/interior/police)
@@ -11827,6 +12145,10 @@
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices/basement)
+"Ka" = (
+/obj/structure/undies_wardrobe,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/decrepit)
"Kb" = (
/obj/machinery/vending/security{
density = 0;
@@ -11851,6 +12173,14 @@
/obj/structure/ledge/quarter,
/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/interior/offices/kaf)
+"Kf" = (
+/obj/effect/decal/curb,
+/obj/structure/table/reinforced/steel,
+/obj/machinery/cell_charger{
+ pixel_y = 3
+ },
+/turf/simulated/floor/tiled,
+/area/point_verdant/interior/offices/kaf)
"Kg" = (
/obj/random/junk,
/obj/random/dirt_75,
@@ -12011,12 +12341,6 @@
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/police)
-"KK" = (
-/obj/structure/stairs/urban/road_ramp{
- dir = 8
- },
-/turf/simulated/floor/asphalt,
-/area/point_verdant/interior/tunnels)
"KL" = (
/obj/effect/decal/exterior_stairs/half/right,
/turf/simulated/floor/concrete,
@@ -12097,7 +12421,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/turf/simulated/floor/lino,
@@ -12148,7 +12471,7 @@
pixel_x = 9
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Lg" = (
/obj/structure/lattice/catwalk/indoor/urban,
/obj/effect/step_trigger/thrower{
@@ -12201,12 +12524,21 @@
/obj/item/bedsheet/yellow,
/obj/structure/curtain/open/bed,
/obj/random/dirt_75,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_vendor";
+ identifier = "konyang_vendor"
+ },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/hotel)
"Lp" = (
/obj/structure/trash_pile,
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/maint_janitorial)
+"Lq" = (
+/obj/effect/decal/exterior_stairs/half/center,
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/interior/tunnels)
"Ls" = (
/obj/structure/fireaxecabinet/west,
/obj/random/dirt_75,
@@ -12226,8 +12558,17 @@
/area/point_verdant/interior/offices/kaf)
"Lt" = (
/obj/random/dirt_75,
-/turf/simulated/floor/carpet/green,
+/obj/random/dirt_75,
+/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/hotel)
+"Lu" = (
+/obj/effect/step_trigger/thrower{
+ icon_state = "dir_arrow";
+ tiles = 1;
+ dir = 6
+ },
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/area/point_verdant/water)
"Lw" = (
/obj/structure/rod_railing{
name = "imposing rod railing";
@@ -12268,10 +12609,7 @@
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/hotel)
"LD" = (
-/obj/structure/stairs/urban{
- dir = 8;
- icon_state = "stairs-right"
- },
+/obj/structure/stairs/urban/left,
/turf/simulated/floor/concrete,
/area/point_verdant/outdoors)
"LE" = (
@@ -12465,7 +12803,7 @@
dir = 8
},
/turf/simulated/floor/tiled/full,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Mb" = (
/obj/structure/rod_railing{
dir = 4
@@ -12473,14 +12811,15 @@
/obj/structure/barricade/wooden{
dir = 8
},
+/obj/random/dirt_75,
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/tunnels)
"Mc" = (
/obj/effect/decal/road_marking/incline{
pixel_y = 13
},
-/obj/structure/stairs/urban/road_ramp/right{
- dir = 8
+/obj/structure/stairs/urban/road_ramp/left{
+ icon_state = "road-ramp-left"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/tunnels)
@@ -12512,7 +12851,7 @@
/obj/random/dirt_75,
/obj/random/dirt_75,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Mg" = (
/obj/random/dirt_75,
/obj/random/dirt_75,
@@ -12594,6 +12933,7 @@
/area/point_verdant/interior/hotel)
"Mu" = (
/obj/structure/automobile_filler,
+/obj/random/dirt_75,
/turf/simulated/floor/exoplanet/dirt_konyang,
/area/point_verdant/outdoors)
"Mv" = (
@@ -12643,7 +12983,7 @@
dir = 1
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"My" = (
/obj/item/screwdriver,
/obj/effect/decal/cleanable/dirt,
@@ -12766,6 +13106,12 @@
},
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/police)
+"MI" = (
+/obj/effect/decal/curb/corner,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/outdoors)
"MJ" = (
/obj/effect/floor_decal/spline/fancy/wood/corner{
dir = 4
@@ -12883,7 +13229,6 @@
"Ne" = (
/obj/machinery/light/colored/decayed{
dir = 4;
- pixel_y = 0;
pixel_x = 10
},
/obj/structure/lattice/catwalk/indoor/urban,
@@ -12900,6 +13245,7 @@
dir = 1;
layer = 9.1
},
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Nh" = (
@@ -12920,7 +13266,7 @@
dir = 8
},
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Nj" = (
/obj/structure/shipping_container{
icon_state = "grey1"
@@ -13014,6 +13360,15 @@
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/storage/box/toothpaste,
/obj/item/towel/random,
+/obj/item/clothing/under/konyangdresstraditional/blue,
+/obj/item/clothing/under/konyangdresstraditional/red,
+/obj/item/clothing/under/konyang,
+/obj/item/clothing/under/konyang/male,
+/obj/item/clothing/under/konyang/male/shortsleeve{
+ color = "AA3333"
+ },
+/obj/item/clothing/suit/storage/toggle/konyang/dbjacket/black,
+/obj/item/clothing/shoes/konyang,
/turf/simulated/floor/lino,
/area/point_verdant/interior/hotel)
"Nw" = (
@@ -13042,7 +13397,7 @@
/obj/effect/shuttle_landmark/point_verdant/water/dock_04{
dir = 1
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"NA" = (
/obj/machinery/light/small/emergency{
@@ -13133,7 +13488,6 @@
"NN" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/colored/decayed{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/lino/diamond,
@@ -13342,6 +13696,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/lino,
/area/point_verdant/interior/decrepit)
+"Ox" = (
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/exoplanet/dirt_konyang,
+/area/point_verdant/outdoors)
"Oz" = (
/obj/structure/flora/rock/konyang/water,
/turf/simulated/floor/exoplanet/water/shallow/konyang,
@@ -13475,6 +13834,10 @@
"OT" = (
/obj/structure/bed/stool/chair/office/light,
/obj/random/dirt_75,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_cop";
+ identifier = "konyang_cop"
+ },
/turf/simulated/floor/wood,
/area/point_verdant/interior/police)
"OU" = (
@@ -13604,7 +13967,7 @@
/obj/random/dirt_75,
/obj/structure/reagent_dispensers/keg/sake,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Pr" = (
/obj/machinery/door/urban,
/turf/simulated/floor/tiled/full,
@@ -13686,6 +14049,8 @@
dir = 1
},
/obj/structure/road_barrier/bot_end,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"PC" = (
@@ -13890,9 +14255,13 @@
/turf/simulated/floor/lino,
/area/point_verdant/interior/bar)
"Qa" = (
-/obj/machinery/vending/cola,
/obj/random/dirt_75,
/obj/random/dirt_75,
+/obj/machinery/atm{
+ dir = 4;
+ pixel_x = 16;
+ pixel_y = 4
+ },
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/interior)
"Qb" = (
@@ -13981,10 +14350,7 @@
/turf/simulated/floor/exoplanet/water/shallow/sewage,
/area/point_verdant/sewer)
"Qm" = (
-/obj/structure/stairs_lower/stairs_upper{
- dir = 2;
- pixel_y = 0
- },
+/obj/structure/stairs_lower/stairs_upper,
/turf/simulated/wall,
/area/point_verdant/interior/bar)
"Qn" = (
@@ -14046,10 +14412,15 @@
pixel_y = 4;
req_access = list(218)
},
-/obj/machinery/cell_charger{
- pixel_y = 3
- },
/obj/structure/table/reinforced/steel,
+/obj/item/key/bike/sport{
+ pixel_x = -4;
+ key_data = "S84-7683"
+ },
+/obj/item/key/bike/police{
+ pixel_x = 4;
+ key_data = "P99-7257"
+ },
/turf/simulated/floor/sidewalk/dark,
/area/point_verdant/interior/offices/kaf)
"Qv" = (
@@ -14066,7 +14437,7 @@
dir = 8
},
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Qz" = (
/turf/simulated/floor/tiled,
/area/point_verdant/interior/hotel)
@@ -14217,7 +14588,7 @@
pixel_y = 11
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"QX" = (
/obj/effect/decal/curb/corner{
dir = 8
@@ -14363,13 +14734,12 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/interior)
"Rh" = (
-/obj/effect/step_trigger/thrower{
- icon_state = "dir_arrow";
- tiles = 1
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor/police_konyang{
+ dir = 1
},
-/obj/structure/automobile_filler,
-/turf/simulated/floor/exoplanet/water/konyang,
-/area/point_verdant/water)
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/police)
"Ri" = (
/obj/machinery/papershredder{
pixel_x = -6
@@ -14464,22 +14834,21 @@
/obj/random/dirt_75,
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
+"Rz" = (
+/turf/simulated/wall,
+/area/point_verdant/interior/cafe)
"RA" = (
+/obj/item/reagent_containers/food/drinks/bottle,
/obj/item/reagent_containers/food/drinks/bottle{
- pixel_y = 0
- },
-/obj/item/reagent_containers/food/drinks/bottle{
- pixel_y = 0;
pixel_x = 10
},
/obj/item/reagent_containers/food/drinks/bottle{
- pixel_y = 0;
pixel_x = -10
},
/obj/structure/table/rack/retail_shelf,
/obj/machinery/light/small,
/turf/simulated/floor/tiled/full,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"RC" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 8
@@ -14487,19 +14856,10 @@
/obj/item/inflatable_duck,
/turf/simulated/floor/asphalt,
/area/point_verdant/sewer)
-"RD" = (
-/obj/structure/stairs/urban/road_ramp/left{
- dir = 8;
- pixel_y = 29
- },
-/obj/structure/stairs/urban/road_ramp{
- dir = 8
- },
-/turf/simulated/floor/asphalt,
-/area/point_verdant/outdoors)
"RF" = (
/obj/effect/decal/exterior_stairs/left{
- dir = 8
+ dir = 8;
+ icon_state = "stairs-left-top"
},
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/outdoors)
@@ -14578,7 +14938,7 @@
/obj/structure/table/rack,
/obj/item/toy/comic/stormman,
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"RS" = (
/obj/structure/closet/crate/bin/urban/dumpster,
/obj/item/storage/bag/trash,
@@ -14595,7 +14955,14 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/offices/basement)
"RU" = (
-/turf/simulated/floor/carpet/green,
+/obj/machinery/door/urban{
+ dir = 4
+ },
+/obj/effect/floor_decal/spline/fancy/wood/cee{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/wood,
/area/point_verdant/interior/hotel)
"RV" = (
/obj/structure/shipping_container{
@@ -14639,7 +15006,7 @@
"RZ" = (
/obj/structure/lattice/catwalk/indoor/urban,
/obj/effect/shuttle_landmark/point_verdant/water/dock_11,
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"Sb" = (
/obj/effect/floor_decal/corner/blue{
@@ -14780,6 +15147,13 @@
/obj/random/dirt_75,
/turf/unsimulated/floor/plating,
/area/point_verdant/interior)
+"Sr" = (
+/obj/random/dirt_75,
+/obj/machinery/light/spot{
+ dir = 8
+ },
+/turf/simulated/floor/sidewalk/blocks,
+/area/point_verdant/interior)
"Ss" = (
/obj/structure/table/reinforced/wood,
/obj/machinery/chemical_dispenser/bar_soft/full{
@@ -14796,13 +15170,12 @@
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/tunnels)
"Su" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/waterbottle{
- pixel_y = 7;
- pixel_x = 7
+/obj/machinery/cryopod{
+ dir = 4
},
-/obj/item/pen,
-/turf/simulated/floor/carpet/green,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/hotel)
"Sv" = (
/obj/effect/decal/road_marking{
@@ -14889,7 +15262,7 @@
},
/obj/machinery/light/small,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"SI" = (
/obj/structure/reagent_dispensers/water_cooler,
/turf/simulated/floor/tiled,
@@ -15010,10 +15383,13 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/police)
"Tb" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
-/obj/item/storage/box/toothpaste,
-/obj/item/towel/random,
-/turf/simulated/floor/carpet/green,
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/hotel)
"Te" = (
/obj/structure/closet/crate/bin/filled,
@@ -15022,13 +15398,16 @@
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
"Tf" = (
-/obj/effect/decal/exterior_stairs/right,
-/turf/simulated/floor/sidewalk/blocks,
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ layer = 2.01;
+ icon_state = "stairs-left-bot"
+ },
+/turf/simulated/floor/concrete,
/area/point_verdant/outdoors)
"Tg" = (
-/obj/structure/stairs/urban{
- dir = 8;
- icon_state = "stairs-left"
+/obj/structure/stairs/urban/left{
+ icon_state = "stairs-left-top"
},
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/outdoors)
@@ -15083,7 +15462,6 @@
/obj/item/clothing/glasses/sunglasses/aviator,
/obj/item/clothing/suit/armor/carrier/military,
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/obj/item/clothing/shoes/jackboots,
@@ -15318,6 +15696,10 @@
/obj/machinery/light/spot,
/turf/simulated/floor/sidewalk,
/area/point_verdant/interior)
+"TW" = (
+/obj/structure/stairs/urban/road_ramp/left,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"TZ" = (
/obj/structure/boat,
/obj/effect/step_trigger/thrower{
@@ -15325,7 +15707,7 @@
tiles = 1
},
/obj/structure/automobile_filler,
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
"Ub" = (
/obj/random/dirt_75,
@@ -15360,7 +15742,7 @@
/area/point_verdant/outdoors)
"Uh" = (
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Ui" = (
/turf/unsimulated/mineral/konyang,
/area/point_verdant/sewer)
@@ -15409,7 +15791,7 @@
"Ur" = (
/obj/effect/decal/cleanable/floor_damage/wood_broken7,
/turf/simulated/floor/wood,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Us" = (
/obj/effect/floor_decal/corner/blue{
dir = 6
@@ -15553,7 +15935,7 @@
"UP" = (
/obj/structure/lattice/catwalk/indoor/urban,
/obj/effect/shuttle_landmark/point_verdant/water/dock_07,
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"UQ" = (
/obj/structure/shipping_container{
@@ -15760,7 +16142,7 @@
pixel_y = -2
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Vl" = (
/obj/random/dirt_75,
/obj/random/dirt_75,
@@ -15903,11 +16285,16 @@
/obj/structure/closet/crate/miningcart/ore,
/obj/machinery/light/colored/decayed{
dir = 4;
- pixel_y = 0;
pixel_x = 10
},
/turf/simulated/floor/lino,
/area/point_verdant/interior/decrepit)
+"VE" = (
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/structure/bed/stool/chair,
+/turf/simulated/floor/sidewalk,
+/area/point_verdant/interior)
"VF" = (
/obj/structure/closet/crate,
/obj/item/device/taperecorder,
@@ -16156,8 +16543,8 @@
/obj/effect/decal/road_marking/incline{
pixel_y = 13
},
-/obj/structure/stairs/urban/road_ramp/right{
- dir = 8
+/obj/structure/stairs/urban/road_ramp/left{
+ icon_state = "road-ramp-left"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -16264,7 +16651,6 @@
"WD" = (
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/obj/structure/undies_wardrobe,
@@ -16399,6 +16785,21 @@
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/tunnels)
+"WW" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/suit/storage/toggle/leather_jacket/biker,
+/obj/item/clothing/gloves/black_leather,
+/obj/item/clothing/suit/storage/toggle/leather_jacket/biker,
+/obj/item/clothing/suit/storage/toggle/leather_vest,
+/obj/item/clothing/shoes/jackboots/cavalry,
+/obj/item/clothing/shoes/jackboots/cavalry,
+/obj/item/clothing/under/pants/jeans,
+/obj/item/clothing/under/pants/jeansblack,
+/obj/item/clothing/under/shorts/jeans/classic,
+/obj/item/clothing/under/konyang/pirate/tanktop,
+/obj/item/clothing/suit/storage/toggle/leather_jacket/designer/red,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/decrepit)
"WX" = (
/obj/effect/decal/road_marking/reflector{
dir = 8
@@ -16413,7 +16814,6 @@
/area/point_verdant/interior/tunnels)
"Xb" = (
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/obj/machinery/photocopier/faxmachine,
@@ -16535,21 +16935,17 @@
pixel_x = 9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = -9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma,
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = 9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = 9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma,
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = -9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
@@ -16560,7 +16956,7 @@
pixel_y = 16
},
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"Xt" = (
/obj/structure/curtain/open/shower,
/turf/simulated/floor/concrete,
@@ -16596,7 +16992,7 @@
/obj/effect/shuttle_landmark/point_verdant/water/dock_12{
dir = 4
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"Xy" = (
/obj/effect/decal/cleanable/floor_damage/random_burned,
@@ -16628,6 +17024,14 @@
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/interior)
+"XB" = (
+/obj/structure/road_sign/yield{
+ pixel_x = -16;
+ name = "cavern warning sign";
+ desc = "A warning sign which declares the area ahead as off-limits. It details it as a dangerous, unregulated cave."
+ },
+/turf/simulated/floor/exoplanet/konyang,
+/area/point_verdant/outdoors)
"XC" = (
/obj/structure/flora/bush/konyang_reeds,
/obj/effect/floor_decal/konyang_flowers,
@@ -16719,6 +17123,15 @@
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/tunnels)
+"XQ" = (
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/item/storage/box/toothpaste,
+/obj/item/towel/random,
+/obj/item/clothing/under/konyang,
+/obj/item/clothing/suit/storage/toggle/konyang/dbjacket,
+/obj/item/clothing/shoes/sneakers/green,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/hotel)
"XS" = (
/obj/structure/table/reinforced/steel,
/obj/effect/floor_decal/corner_wide/blue/diagonal,
@@ -16807,9 +17220,8 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/offices/basement)
"XY" = (
-/obj/structure/stairs/urban{
- dir = 8;
- icon_state = "stairs-right"
+/obj/structure/stairs/urban/left{
+ icon_state = "stairs-left-bot"
},
/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/interior)
@@ -16828,7 +17240,6 @@
/obj/structure/punching_bag,
/obj/machinery/light/colored/decayed{
dir = 4;
- pixel_y = 0;
pixel_x = 10
},
/turf/simulated/floor/lino,
@@ -16841,6 +17252,7 @@
dir = 8
},
/obj/effect/decal/road_marking/no_pass,
+/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Ye" = (
@@ -17048,7 +17460,7 @@
/obj/structure/mopbucket,
/obj/item/mop,
/turf/simulated/floor/tiled,
-/area/point_verdant/interior/tunnels)
+/area/point_verdant/interior/cafe)
"YU" = (
/obj/structure/closet/crate/elec,
/obj/item/clothing/gloves/yellow/budget,
@@ -17115,7 +17527,6 @@
/obj/effect/decal/cleanable/cobweb,
/obj/machinery/light/colored/decayed{
dir = 8;
- pixel_y = 0;
pixel_x = -10
},
/turf/simulated/floor/lino/diamond,
@@ -17342,8 +17753,8 @@
pixel_y = 13;
dir = 1
},
-/obj/structure/stairs/urban/road_ramp/left{
- dir = 4
+/obj/structure/stairs/urban/road_ramp/right{
+ icon_state = "road-ramp-right"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/police)
@@ -17351,6 +17762,7 @@
/obj/structure/automobile/random{
dir = 4
},
+/obj/random/dirt_75,
/turf/simulated/floor/exoplanet/dirt_konyang,
/area/point_verdant/outdoors)
"ZP" = (
@@ -21613,7 +22025,7 @@ ho
PD
PD
KU
-gI
+Kf
VQ
gJ
FW
@@ -23920,7 +24332,7 @@ rf
AV
Th
WO
-fB
+ok
DQ
hJ
hJ
@@ -24177,11 +24589,11 @@ rf
AV
Th
WO
-VX
+fB
DQ
hJ
hJ
-Ks
+hn
WO
ho
BR
@@ -24434,7 +24846,7 @@ rf
AV
Th
WO
-VX
+Hp
DQ
DQ
DQ
@@ -24695,7 +25107,7 @@ fB
WX
DQ
fi
-Ks
+hn
WO
WO
WO
@@ -25201,7 +25613,7 @@ rf
rf
AV
AV
-qU
+oH
iy
iy
iy
@@ -25458,7 +25870,7 @@ rf
rf
AV
AV
-qU
+oH
DQ
DQ
DQ
@@ -25715,7 +26127,7 @@ rf
rf
AV
AV
-qU
+oH
iq
Nr
Nr
@@ -25972,7 +26384,7 @@ rf
rf
AV
AV
-qU
+oH
DQ
DQ
DQ
@@ -26229,7 +26641,7 @@ rf
rf
AV
AV
-qU
+oH
qB
qB
qB
@@ -27542,7 +27954,7 @@ rf
Ir
FD
RX
-AN
+qa
lC
lC
AN
@@ -29349,7 +29761,7 @@ wr
AN
zJ
lC
-xn
+fh
kg
kg
wD
@@ -29611,7 +30023,7 @@ kg
wD
wD
wD
-kg
+Rh
Jo
lC
AV
@@ -29863,7 +30275,7 @@ UW
UW
UW
Yn
-xn
+fh
wD
wD
kg
@@ -30651,7 +31063,7 @@ Kp
GY
dZ
nF
-Nv
+XQ
Kp
Ek
Gb
@@ -30659,7 +31071,7 @@ kQ
wm
Kp
Tb
-RU
+Tb
Su
Kp
lP
@@ -31172,7 +31584,7 @@ BG
Kp
Kp
Kp
-BG
+RU
Kp
Kp
Kp
@@ -31665,10 +32077,10 @@ AV
RN
RN
vF
-MO
-MO
-jJ
-MO
+bH
+bH
+ED
+bH
JA
RN
AV
@@ -33193,7 +33605,7 @@ do
AV
AV
AV
-WO
+BZ
AV
AV
AV
@@ -33450,25 +33862,25 @@ do
AV
AV
AV
-WO
+BZ
AV
AV
sA
-Zr
-MO
-MO
-MO
-MO
-MO
-MO
-jJ
-jJ
-jJ
-MO
-Jm
-MO
-MO
-GN
+sU
+bH
+bH
+bH
+bH
+bH
+bH
+ED
+ED
+ED
+bH
+ZZ
+bH
+bH
+Ai
AV
ya
WF
@@ -33707,19 +34119,19 @@ Ja
AV
AV
AV
-WO
+BZ
AV
AV
MO
MO
-MO
-MO
-MO
-jJ
-MO
-MO
-MO
-MO
+bH
+bH
+bH
+ED
+bH
+bH
+bH
+bH
Uk
MO
MO
@@ -33964,7 +34376,7 @@ Ja
AV
AV
AV
-WO
+BZ
AV
AV
AV
@@ -34246,10 +34658,10 @@ hX
WO
AV
ql
-ip
+hi
DZ
-KK
-KK
+pn
+pn
Mc
AV
Vm
@@ -34478,7 +34890,7 @@ Ja
AV
AV
AV
-WO
+BZ
AV
AV
AV
@@ -34735,12 +35147,12 @@ Ja
AV
AV
AV
-WO
+BZ
AV
AV
AV
AV
-MO
+bH
GP
AV
AV
@@ -34992,14 +35404,14 @@ do
AV
AV
AV
-WO
+BZ
AV
AV
AV
AV
MO
-jJ
-MO
+ED
+bH
MO
MO
AV
@@ -35255,11 +35667,11 @@ AV
AV
AV
MO
-MO
-MO
-jJ
-MO
-MO
+bH
+bH
+ED
+bH
+bH
MO
AV
AV
@@ -35506,7 +35918,7 @@ do
AV
AV
AV
-WO
+BZ
AV
AV
AV
@@ -35700,10 +36112,10 @@ pt
kI
Pw
Jz
-rf
-rf
-rf
-rf
+Jz
+Jz
+Jz
+Jz
rf
rf
rf
@@ -35763,15 +36175,15 @@ do
AV
AV
AV
+BZ
WO
WO
-WO
-WO
-Hq
-WO
-lF
-WO
-qj
+BZ
+JR
+BZ
+EG
+BZ
+fk
Mb
qj
gN
@@ -35957,10 +36369,10 @@ pt
rS
Pw
Jz
-rf
-rf
-rf
-rf
+rq
+Sr
+rq
+Jz
rf
rf
rf
@@ -36020,7 +36432,7 @@ Ja
AV
AV
AV
-WO
+BZ
AV
AV
AV
@@ -36031,8 +36443,8 @@ AV
AV
AV
AV
-JM
-JM
+sc
+sc
AV
AV
AV
@@ -36214,10 +36626,10 @@ JL
rS
Pw
Jz
-rf
-rf
-rf
-rf
+JE
+xr
+rq
+Jz
rf
rf
rf
@@ -36277,7 +36689,7 @@ Ja
AV
AV
AV
-WO
+BZ
AV
AV
AV
@@ -36288,8 +36700,8 @@ AV
AV
GN
MO
-MO
-MO
+bH
+bH
AV
AV
AV
@@ -36471,10 +36883,10 @@ EF
rS
ZU
Jz
-rf
-rf
-rf
-rf
+JE
+EX
+uX
+Jz
rf
rf
rf
@@ -36534,20 +36946,20 @@ Ja
AV
AV
AV
-WO
+BZ
AV
AV
MO
-MO
+bH
AV
AV
-MO
+bH
AV
MO
MO
MO
-MO
-MO
+bH
+bH
MO
AV
AV
@@ -36575,10 +36987,10 @@ MO
AV
AV
AV
-MO
+bH
Jm
MO
-MO
+bH
AV
AV
AV
@@ -36728,10 +37140,10 @@ Jn
xr
rq
Jz
-rf
-rf
-rf
-rf
+JE
+EX
+rq
+Jz
rf
rf
rf
@@ -36795,18 +37207,18 @@ WO
AV
AV
jJ
-jJ
-Jm
+ED
+ZZ
AV
-MO
+bH
MO
MO
AV
AV
AV
-MO
-MO
-MO
+bH
+bH
+bH
AV
MO
AV
@@ -36833,9 +37245,9 @@ AV
AV
AV
MO
-MO
-MO
-MO
+bH
+bH
+bH
AV
AV
AV
@@ -36985,9 +37397,9 @@ pt
xr
rq
Jz
-Jz
-Jz
-Jz
+rq
+FX
+rq
Jz
rf
rf
@@ -37051,19 +37463,19 @@ AV
WO
AV
AV
-jJ
-MO
-MO
-MO
-MO
+ED
MO
+bH
+bH
+bH
+bH
AV
AV
AV
AV
MO
-MO
-MO
+bH
+bH
AV
MO
AV
@@ -37092,7 +37504,7 @@ AV
MO
MO
MO
-Zr
+sU
AV
AV
MO
@@ -37243,7 +37655,7 @@ xr
Vl
EX
EX
-jz
+EX
Mj
Jz
rf
@@ -37309,16 +37721,16 @@ WO
AV
AV
MO
-MO
-MO
-MO
-MO
+bH
+bH
+bH
+bH
AV
AV
MO
MO
MO
-MO
+bH
MO
MO
AV
@@ -37349,7 +37761,7 @@ AV
yW
tW
SS
-MO
+bH
AV
AV
MO
@@ -37562,20 +37974,20 @@ do
AV
AV
AV
-WO
+BZ
AV
AV
MO
-MO
-jJ
+bH
+ED
MO
AV
AV
AV
Jm
-MO
-jJ
-MO
+bH
+ED
+bH
AV
AV
AV
@@ -37605,12 +38017,12 @@ WO
WO
WO
WO
-Yr
+Lq
MO
AV
AV
MO
-MO
+bH
MO
MO
AV
@@ -37819,18 +38231,18 @@ do
AV
AV
AV
-Hq
-WO
-WO
+JR
+BZ
+BZ
AJ
-MO
+bH
MO
MO
MO
AV
AV
Jm
-MO
+bH
MO
MO
AV
@@ -37862,13 +38274,13 @@ AV
AV
WO
Wn
-SS
-MO
+qJ
+bH
AV
AV
MO
-MO
-MO
+bH
+bH
MO
AV
AV
@@ -38013,9 +38425,9 @@ kv
rS
TV
Jz
-xH
-rS
+aj
rS
+aJ
Jz
rf
rf
@@ -38079,15 +38491,15 @@ AV
AV
AV
AV
-MO
-MO
+bH
+bH
AV
AV
AV
AV
AV
AV
-MO
+bH
AV
AV
AV
@@ -38120,13 +38532,13 @@ AV
fN
dQ
SS
-MO
+bH
AV
AV
AV
Jm
MO
-MO
+bH
AV
AV
AV
@@ -38270,7 +38682,7 @@ JL
rS
hl
Jz
-xH
+Fm
rS
rS
Jz
@@ -38306,7 +38718,7 @@ SS
MO
Pe
at
-ML
+Ka
VC
Wu
KZ
@@ -38336,15 +38748,15 @@ AV
AV
AV
AV
-MO
-MO
+bH
+bH
AV
AV
AV
AV
AV
AV
-MO
+bH
AV
AV
AV
@@ -38377,13 +38789,13 @@ AV
Vm
dQ
SS
-MO
+bH
AV
AV
AV
MO
-MO
-MO
+bH
+bH
AV
AV
AV
@@ -38528,7 +38940,7 @@ rS
hl
rS
rS
-rS
+AH
rS
Jz
rf
@@ -38563,7 +38975,7 @@ SS
MO
Pe
at
-ML
+WW
VC
at
cf
@@ -38593,15 +39005,15 @@ AV
AV
AV
AV
-MO
+bH
MO
MO
AV
-MO
-MO
+bH
+bH
MO
AV
-MO
+bH
AV
AV
AV
@@ -38638,8 +39050,8 @@ AV
AV
AV
AV
-MO
-MO
+bH
+bH
AV
AV
AV
@@ -38854,11 +39266,11 @@ Aa
MO
MO
AV
-MO
-MO
-MO
-MO
-MO
+bH
+bH
+bH
+bH
+bH
AV
AV
AV
@@ -38895,7 +39307,7 @@ Vm
AV
AV
AV
-MO
+bH
MO
AV
AV
@@ -39111,8 +39523,8 @@ AV
AV
WO
AV
-MO
-jJ
+bH
+ED
MO
AV
AV
@@ -39152,7 +39564,7 @@ Vm
AV
AV
AV
-MO
+bH
MO
AV
AV
@@ -41669,16 +42081,16 @@ rf
rf
rf
rf
-LB
-LB
-LB
-LB
-LB
-LB
-LB
-LB
-LB
-LB
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
AV
AV
AV
@@ -41926,7 +42338,7 @@ bk
bk
Ac
rf
-LB
+Rz
ea
Uh
Uh
@@ -41935,12 +42347,12 @@ Qy
RR
Ni
yf
-LB
-LB
-LB
-LB
-LB
-LB
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
AV
AV
aA
@@ -42183,11 +42595,11 @@ sZ
sZ
bk
rf
-LB
+Rz
Mx
Uh
SH
-LB
+Rz
IZ
fD
fD
@@ -42197,7 +42609,7 @@ pU
Cm
aK
RA
-LB
+Rz
AV
AD
Vm
@@ -42440,13 +42852,13 @@ kC
sZ
bk
rf
-LB
+Rz
Vj
Uh
QW
zF
Uh
-LB
+Rz
FJ
fD
Bg
@@ -42454,13 +42866,13 @@ jj
jj
HX
kA
-LB
+Rz
AV
WO
Vm
ya
SS
-MO
+bH
MO
MO
AV
@@ -42697,13 +43109,13 @@ EH
sZ
bk
rf
-LB
+Rz
pb
jj
GS
-LB
+Rz
Ck
-LB
+Rz
kz
JF
xk
@@ -42711,14 +43123,14 @@ qY
Pp
ru
RA
-LB
+Rz
AV
WO
oP
WO
SS
-MO
-GP
+bH
+vM
MO
AV
AV
@@ -42756,7 +43168,7 @@ MO
MO
MO
MO
-MO
+bH
AV
AV
AV
@@ -42954,29 +43366,29 @@ oh
sZ
bk
rf
-LB
+Rz
uQ
Mf
Ad
-LB
-LB
-LB
-LB
-LB
-LB
-LB
-LB
-LB
-LB
-LB
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
+Rz
AV
WO
Hq
WO
SS
jJ
-MO
-MO
+bH
+bH
AV
AV
AV
@@ -43013,7 +43425,7 @@ MO
MO
MO
AV
-MO
+bH
MO
AV
AV
@@ -43211,11 +43623,11 @@ iw
sZ
bk
rf
-LB
+Rz
Lf
YT
Xs
-LB
+Rz
AV
LB
vo
@@ -43233,7 +43645,7 @@ ya
SS
jJ
MO
-MO
+bH
AV
AV
AV
@@ -43270,8 +43682,8 @@ MO
MO
MO
AV
-MO
-MO
+bH
+bH
AV
AV
Jz
@@ -43468,11 +43880,11 @@ QG
sZ
bk
rf
-LB
-LB
-LB
-LB
-LB
+Rz
+Rz
+Rz
+Rz
+Rz
AV
LB
Mg
@@ -43491,12 +43903,12 @@ SS
MO
MO
MO
-MO
-MO
-MO
-MO
-MO
-MO
+bH
+bH
+bH
+bH
+bH
+bH
AV
AV
AV
@@ -43528,7 +43940,7 @@ MO
MO
AV
AV
-MO
+bH
AV
AV
Jz
@@ -43753,7 +44165,7 @@ MO
AV
AV
MO
-MO
+bH
AV
AV
AV
@@ -43785,8 +44197,8 @@ AV
AV
AV
AV
-MO
-MO
+bH
+bH
AV
Jz
Jj
@@ -44009,8 +44421,8 @@ AV
MO
AV
AV
-MO
-GP
+bH
+vM
AV
AV
AV
@@ -44043,10 +44455,10 @@ AV
AV
AV
AV
-MO
+bH
AV
Jz
-Jj
+VE
EX
FC
iF
@@ -44266,7 +44678,7 @@ AV
BK
MO
MO
-MO
+bH
MO
AV
AV
@@ -44300,7 +44712,7 @@ AV
AV
AV
AV
-MO
+bH
AV
Jz
zW
@@ -44557,7 +44969,7 @@ AV
AV
AV
AV
-MO
+bH
AV
Jz
Nm
@@ -44814,7 +45226,7 @@ AV
AV
AV
AV
-MO
+bH
AV
Jz
RI
@@ -45071,7 +45483,7 @@ AV
AV
AV
AV
-MO
+bH
AV
Jz
tM
@@ -45328,10 +45740,10 @@ AV
AV
AV
MO
-MO
+bH
AV
Jz
-zW
+ae
rS
UJ
iF
@@ -45585,10 +45997,10 @@ AV
AV
AV
MO
-MO
+bH
AV
Jz
-zW
+ae
rS
jx
fg
@@ -45845,7 +46257,7 @@ MO
MO
AV
Jz
-zW
+ae
rS
LR
xC
@@ -46305,8 +46717,8 @@ AV
AV
AV
AV
-GN
-MO
+Ai
+bH
mN
AV
AV
@@ -46349,7 +46761,7 @@ SX
WO
WO
SS
-MO
+bH
MO
AV
AV
@@ -46562,8 +46974,8 @@ AV
AV
AV
AV
-MO
-MO
+bH
+bH
MO
jJ
AV
@@ -46606,7 +47018,7 @@ Sz
Vm
Vm
SS
-MO
+bH
MO
AV
AV
@@ -46821,7 +47233,7 @@ AV
AV
AV
gV
-MO
+bH
AV
AV
Pb
@@ -46862,12 +47274,12 @@ AV
Sz
Vm
Vm
-Yr
-MO
-MO
-MO
-MO
-MO
+Lq
+bH
+bH
+bH
+bH
+bH
MO
AV
AV
@@ -49088,7 +49500,7 @@ rf
rf
AV
Kw
-Fn
+fP
ES
iz
iz
@@ -49345,7 +49757,7 @@ Fn
Ui
nf
Fn
-Fn
+fP
ER
fP
fP
@@ -49697,7 +50109,7 @@ AV
AV
AV
Jz
-xH
+Fm
Qa
xH
Jz
@@ -50927,7 +51339,7 @@ Ae
pF
bM
nD
-Sd
+aa
bM
Sx
Sx
@@ -53545,8 +53957,8 @@ CH
iN
dQ
SS
-MO
-GP
+bH
+vM
NP
NP
NP
@@ -53802,8 +54214,8 @@ CH
iN
dQ
SS
-jJ
-MO
+ED
+bH
NP
NP
NP
@@ -53938,7 +54350,7 @@ rf
rf
IJ
vR
-cR
+LD
LD
rf
rf
@@ -54059,8 +54471,8 @@ CH
wl
PN
La
-Uk
-MO
+Og
+bH
NP
NP
NP
@@ -54316,8 +54728,8 @@ AV
YD
PN
LG
-MO
-MO
+bH
+bH
NP
NP
MO
@@ -54474,8 +54886,8 @@ IJ
vR
uU
uU
-cR
-LD
+jg
+Tf
rf
rf
rf
@@ -54529,10 +54941,10 @@ Zy
lW
yv
gA
-RD
+Be
GH
-oa
-oa
+TW
+TW
Wk
rf
rf
@@ -54543,7 +54955,7 @@ jP
aU
Fg
kp
-Fg
+Ig
VW
jP
Jx
@@ -54573,8 +54985,8 @@ AV
xK
Xf
SS
-MO
-Jm
+bH
+ZZ
AV
MO
MO
@@ -54798,7 +55210,7 @@ rS
rq
jP
Qj
-Fg
+Ig
Du
Du
QD
@@ -54830,11 +55242,11 @@ AV
WO
Xf
Ty
-GP
-MO
+vM
+bH
AV
-MO
-MO
+bH
+bH
wf
NP
NP
@@ -55086,12 +55498,12 @@ WO
WO
CE
Wn
-SS
-MO
+qJ
+bH
MO
AV
AV
-MO
+bH
MO
AV
AV
@@ -55864,8 +56276,8 @@ AV
AV
AV
Jm
-MO
-MO
+bH
+bH
MO
AV
MO
@@ -56122,10 +56534,10 @@ Xf
SS
MO
MO
+bH
+bH
MO
-MO
-MO
-Jm
+ZZ
MO
MO
wf
@@ -56381,9 +56793,9 @@ MO
AV
AV
MO
-MO
-MO
-MO
+bH
+bH
+bH
MO
NP
NP
@@ -56577,7 +56989,7 @@ Ga
dN
QV
QV
-Tf
+dT
QV
QV
YA
@@ -56637,11 +57049,11 @@ SS
AV
AV
AV
-MO
-MO
-MO
-MO
-GP
+bH
+bH
+bH
+bH
+vM
MO
NP
wf
@@ -56879,10 +57291,10 @@ rC
WO
AV
ql
-vW
+hi
DZ
-KK
-KK
+pn
+pn
Mc
AV
AV
@@ -56895,11 +57307,11 @@ AV
AV
AV
AV
-MO
-MO
-MO
-Jm
-MO
+bH
+bH
+bH
+ZZ
+bH
Jm
NP
NP
@@ -57153,10 +57565,10 @@ AV
AV
AV
AV
+bH
+bH
MO
-MO
-MO
-MO
+bH
MO
MO
NP
@@ -57598,7 +58010,7 @@ hN
hN
hN
hN
-ih
+Jd
Ga
Ga
Ga
@@ -57855,8 +58267,8 @@ hN
hN
hN
hN
-ih
-ih
+Jd
+Jd
Ga
Ga
dN
@@ -58112,8 +58524,8 @@ hN
hN
hN
hN
-hN
-ih
+Ga
+Jd
Ga
Ga
dN
@@ -58367,11 +58779,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
TZ
-hN
+Ga
Ga
dN
QV
@@ -58548,7 +58960,7 @@ hN
hN
hN
hN
-Pj
+Xj
Xx
hN
hN
@@ -58624,11 +59036,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
-hN
+Yv
+Ga
Ga
dN
QV
@@ -58657,7 +59069,7 @@ MG
tt
MG
Iw
-tt
+Im
Se
Se
gM
@@ -58801,24 +59213,24 @@ tj
tj
tj
RZ
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
Xj
tq
yv
@@ -58849,7 +59261,7 @@ yv
AG
Xj
Xj
-Pj
+Xj
tj
tj
tj
@@ -58881,11 +59293,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
-hN
+Yv
+Ga
Ga
dN
QV
@@ -59057,25 +59469,25 @@ tj
tj
tj
tj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
-Pj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
+Xj
Xj
tq
yv
@@ -59138,10 +59550,10 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
+Yv
Ga
Ga
dN
@@ -59218,7 +59630,7 @@ MO
MO
AV
AV
-MO
+bH
MO
AV
NP
@@ -59325,8 +59737,8 @@ hN
hN
hN
hN
-Pj
-Pj
+Xj
+Xj
hN
hN
hN
@@ -59395,10 +59807,10 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
+Yv
Ga
Ga
dN
@@ -59476,7 +59888,7 @@ MO
AV
MO
MO
-MO
+bH
MO
MO
NP
@@ -59583,7 +59995,7 @@ hN
hN
hN
Ec
-Pj
+Xj
tj
tj
tj
@@ -59652,7 +60064,7 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
Yv
@@ -59733,8 +60145,8 @@ MO
GP
MO
AV
-MO
-GP
+bH
+vM
MO
MO
NP
@@ -59909,10 +60321,10 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
+Yv
Ga
Ga
dN
@@ -59991,8 +60403,8 @@ MO
MO
AV
MO
-MO
-MO
+bH
+bH
MO
AV
NP
@@ -60166,11 +60578,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
-hN
+Yv
+Ga
Ga
aZ
RF
@@ -60234,9 +60646,9 @@ AV
AV
Zr
MO
-MO
-MO
-MO
+bH
+bH
+bH
MO
AV
MO
@@ -60249,7 +60661,7 @@ MO
MO
MO
MO
-MO
+bH
MO
MO
NP
@@ -60423,11 +60835,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
-hN
+Yv
+Ga
Ga
aZ
JV
@@ -60490,13 +60902,13 @@ WO
WO
AJ
MO
-MO
-jJ
-MO
-GP
-MO
+bH
+ED
+bH
+vM
MO
MO
+bH
AV
AV
AV
@@ -60506,7 +60918,7 @@ AV
MO
AV
AV
-MO
+bH
MO
MO
NP
@@ -60680,11 +61092,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
-hN
+Yv
+Ga
Ga
aZ
QV
@@ -60746,14 +61158,14 @@ AV
AV
AV
AV
-vg
-Uk
-MO
-MO
+ah
+Og
+bH
+bH
MO
MO
AV
-jJ
+ED
AV
AV
AV
@@ -60763,7 +61175,7 @@ AV
MO
MO
AV
-MO
+bH
MO
AV
AV
@@ -60937,11 +61349,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
-hN
+Yv
+Ga
Ga
aZ
JV
@@ -61004,13 +61416,13 @@ MO
MO
MO
MO
-MO
-MO
-GP
-jJ
+bH
+bH
+vM
+ED
MO
AV
-MO
+bH
AV
AV
AV
@@ -61018,10 +61430,10 @@ AV
AV
AV
MO
-MO
+bH
jJ
MO
-MO
+bH
MO
AV
xi
@@ -61194,11 +61606,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
-hN
+Yv
+Ga
Ga
aZ
QV
@@ -61225,9 +61637,9 @@ hQ
Rv
Rv
QY
-Rv
-Rv
-Rv
+Gl
+Gl
+Gl
Rv
Rv
Rv
@@ -61267,7 +61679,7 @@ MO
MO
AV
AV
-MO
+bH
AV
AV
AV
@@ -61276,10 +61688,10 @@ MO
AV
AV
MO
-MO
-Jm
-MO
-MO
+bH
+ZZ
+bH
+bH
MO
NP
NP
@@ -61451,11 +61863,11 @@ tj
hN
hN
hN
-hN
+Ga
DJ
DJ
-Rh
-hN
+Yv
+Ga
Ga
aZ
JV
@@ -61480,11 +61892,11 @@ Rv
Rv
Bs
Rv
+Gl
+Gl
+Gl
Rv
-Rv
-Rv
-Rv
-Fe
+ac
Rv
xb
Rv
@@ -61524,19 +61936,19 @@ AV
AV
AV
AV
-MO
+bH
AV
AV
AV
MO
-MO
+bH
AV
MO
MO
MO
MO
MO
-Jm
+ZZ
MO
NP
NP
@@ -61708,10 +62120,10 @@ tj
Rf
Rf
Rf
-Rf
-Rf
-Rf
-Rf
+Lu
+Lu
+Lu
+Lu
Ga
Ga
aZ
@@ -61736,13 +62148,13 @@ Wx
bm
bm
Rv
-bm
-bm
-Rv
-bm
-bm
+Pi
+Pi
Rv
+Pi
+Pi
Rv
+Gl
Rv
Rv
mn
@@ -61781,13 +62193,13 @@ AV
AV
AV
AV
-MO
-MO
-MO
-MO
-MO
-jJ
-MO
+bH
+bH
+bH
+bH
+bH
+ll
+bH
MO
Jm
MO
@@ -61964,11 +62376,11 @@ tj
tj
ih
hN
-hN
-hN
-hN
-hN
-hN
+Ga
+Ga
+Ga
+Ga
+Ga
Ga
Ga
aZ
@@ -61998,9 +62410,9 @@ Rv
Nl
Rv
Db
-Fe
-Rv
-xb
+ac
+Gl
+rI
Rv
mn
QV
@@ -62043,7 +62455,7 @@ AV
AV
AV
MO
-MO
+bH
MO
MO
MO
@@ -62221,10 +62633,10 @@ tj
tj
ih
hN
-hN
-hN
-hN
-hN
+Ga
+Ga
+Ga
+Ga
Ga
Ga
Ga
@@ -62256,8 +62668,8 @@ oG
Rv
be
Rv
-Rv
-Rv
+Gl
+Gl
Rv
mn
QV
@@ -62301,8 +62713,8 @@ AV
AV
AV
MO
-MO
-MO
+bH
+bH
Kh
Kh
AV
@@ -62568,7 +62980,7 @@ ex
ex
ex
vs
-vs
+XB
OG
Ei
Ei
@@ -62732,10 +63144,10 @@ tj
tj
tj
tj
-tj
+KD
oC
-Pj
-lV
+Xj
+Xj
lV
lV
lV
@@ -62762,7 +63174,7 @@ QV
QV
Wx
Rv
-Rv
+Gl
RV
Rv
Rv
@@ -62989,10 +63401,10 @@ tj
tj
tj
tj
-tj
-Pj
+KD
+Xj
+Xj
Xj
-lV
lV
EY
lV
@@ -63019,8 +63431,8 @@ QV
QV
Wx
Rv
-Rv
-tl
+Gl
+qK
Rv
Rv
Rv
@@ -63208,7 +63620,7 @@ tj
tj
tj
tj
-Pj
+Xj
Xj
Xj
tq
@@ -63277,7 +63689,7 @@ QV
Wx
bm
bm
-Rv
+Gl
bm
bm
Rv
@@ -63298,7 +63710,7 @@ Wx
Rv
vH
Rv
-uh
+aO
bf
sf
dz
@@ -63318,8 +63730,8 @@ JB
JB
xa
XW
-JB
-JB
+Hi
+Hi
xa
Am
Am
@@ -63535,13 +63947,13 @@ Po
TE
TE
TE
-TE
-TE
-TE
-TE
+SL
+SL
+SL
+SL
bR
dx
-Rv
+Gl
xb
Rv
mn
@@ -63555,7 +63967,7 @@ Wx
Rv
vH
Rv
-qP
+el
dJ
vs
wk
@@ -63567,16 +63979,16 @@ Am
Am
Am
Am
+jz
Am
Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
+jz
+jz
+jz
+jz
+jz
+jz
+jz
Am
Am
Am
@@ -63732,7 +64144,7 @@ yv
AG
Xj
Xj
-Pj
+Xj
tj
tj
tj
@@ -63811,7 +64223,7 @@ zb
ye
Gl
sD
-Rv
+Gl
PB
dJ
ni
@@ -63822,17 +64234,17 @@ XI
Am
Am
Am
+jz
+jz
+Ox
+jz
Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
+Ox
+Ox
+Ox
+Ox
+jz
+jz
Am
Am
Am
@@ -64068,26 +64480,26 @@ dw
ye
Gl
jt
-Rv
+bZ
fj
-xa
-yo
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
-ZN
+yg
+nl
+jz
+jz
Am
+jz
+jz
Am
+jz
+jz
Am
+Ox
+Ox
+Ox
+Dt
+jz
+jz
+jz
ZN
Am
Am
@@ -64325,28 +64737,28 @@ dv
KX
Rv
sD
-Rv
+uD
ez
+jz
Am
Am
-Am
-Am
-Am
-Am
-Am
-Am
-Am
+jz
+Ox
+Ox
+jz
+jz
+jz
Am
Am
Am
Am
Am
Mu
+jz
Am
-Am
-Am
+jz
Mu
-Am
+jz
Am
Am
Am
@@ -64582,13 +64994,13 @@ Ug
Gl
Rv
Yd
-Rv
+bZ
vp
-Ie
-Am
-Am
-Am
-Am
+MI
+jz
+jz
+jz
+jz
yo
Am
Am
@@ -64603,7 +65015,7 @@ Ie
GF
Ux
UH
-Ie
+FG
Am
Am
Am
@@ -64837,9 +65249,9 @@ xO
Ax
Ax
Ax
-EA
+Ax
cL
-Rv
+bZ
Nf
oL
vs
@@ -65093,9 +65505,9 @@ Rv
Rv
Rv
ZI
-Rv
-Rv
-Rv
+Gl
+bZ
+Gl
Rv
qP
dJ
@@ -66811,8 +67223,8 @@ hN
hN
hN
qk
-Pj
-Pj
+Xj
+Xj
qo
qo
hN
@@ -67069,7 +67481,7 @@ hN
hN
qk
qR
-Pj
+Xj
qo
hN
hN
@@ -69425,7 +69837,7 @@ hN
qk
qk
Ga
-Pj
+Xj
Xj
Ga
Ga
@@ -69449,7 +69861,7 @@ Ga
Ga
Ga
Ga
-Pj
+Xj
Xj
Ga
yE
@@ -69683,7 +70095,7 @@ hN
qk
rX
gq
-Pj
+Xj
rX
rX
rX
@@ -69707,7 +70119,7 @@ rX
rX
rX
cm
-Pj
+Xj
rX
rX
rX
diff --git a/maps/away/away_site/konyang/point_verdant/point_verdant-2.dmm b/maps/away/away_site/konyang/point_verdant/point_verdant-2.dmm
index 0e306a91b87..a49587e5834 100644
--- a/maps/away/away_site/konyang/point_verdant/point_verdant-2.dmm
+++ b/maps/away/away_site/konyang/point_verdant/point_verdant-2.dmm
@@ -293,7 +293,6 @@
/area/point_verdant/interior/hotel)
"aP" = (
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/obj/structure/flora/pottedplant/bamboo,
@@ -486,8 +485,7 @@
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
tiles = 1;
- dir = 4;
- pixel_y = 0
+ dir = 4
},
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
@@ -574,18 +572,14 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/shallow)
"bD" = (
-/obj/structure/ledge{
- dir = 4
- },
-/obj/structure/chainlink_fence{
- dir = 4
- },
-/obj/structure/konyang_cliff{
- icon_state = "cliff-west";
- layer = 2.5;
- density = 0
+/obj/effect/decal/road_marking,
+/obj/effect/decal/curb,
+/obj/vehicle/bike/motor/police_konyang{
+ dir = 8;
+ spawns_with_key = 0;
+ registration_plate = "P31-3862"
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"bE" = (
/obj/machinery/light_switch{
@@ -593,6 +587,7 @@
pixel_x = 22;
pixel_y = 4
},
+/obj/random/dirt_75,
/turf/simulated/floor/wood,
/area/point_verdant/interior/laundromat)
"bF" = (
@@ -733,9 +728,9 @@
name = "imposing rod railing";
layer = 9.1
},
-/obj/effect/decal/exterior_stairs/center{
- dir = 8;
- layer = 2.6
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ layer = 2.01
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
@@ -784,6 +779,7 @@
/obj/structure/bed/stool/chair/office/dark{
dir = 4
},
+/obj/random/dirt_75,
/turf/simulated/floor/wood,
/area/point_verdant/interior/laundromat)
"ch" = (
@@ -866,6 +862,18 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"cw" = (
+/obj/effect/decal/curb{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor/brown{
+ dir = 1;
+ spawns_with_key = 0;
+ registration_plate = "S71-3614"
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"cx" = (
/obj/effect/decal/road_marking,
/obj/effect/decal/road_marking{
@@ -904,6 +912,7 @@
dir = 4
},
/obj/effect/floor_decal/corner/grey/diagonal,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
"cB" = (
@@ -986,10 +995,6 @@
dir = 8
},
/obj/structure/bed/stool/chair/office/light,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_clinic";
- identifier = "konyang_clinic"
- },
/turf/simulated/floor/tiled,
/area/point_verdant/interior/robotics)
"cP" = (
@@ -1327,10 +1332,6 @@
/obj/random/dirt_75,
/obj/random/dirt_75,
/obj/random/dirt_75,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_goon";
- identifier = "konyang_goon"
- },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/decrepit)
"dM" = (
@@ -1548,9 +1549,8 @@
/obj/effect/decal/road_marking/incline{
pixel_y = -5
},
-/obj/structure/stairs/urban{
- dir = 8;
- icon_state = "stairs-right"
+/obj/structure/stairs/urban/left{
+ icon_state = "stairs-left-bot"
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
@@ -1596,7 +1596,6 @@
"et" = (
/obj/effect/floor_decal/corner_wide/mauve/full,
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/tiled,
@@ -1690,6 +1689,14 @@
/obj/effect/floor_decal/corner/grey/diagonal,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
+"eI" = (
+/obj/vehicle/bike/motor/moped/blue{
+ dir = 8;
+ registration_plate = "M18-1785";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"eK" = (
/obj/effect/decal/curb,
/obj/effect/decal/cleanable/blood/oil,
@@ -1728,31 +1735,24 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/stone/marble,
/obj/item/reagent_containers/food/snacks/fries{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/fries{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/fries{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/fries{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/fries{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/fries{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/fries{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/burger/cheese{
@@ -1793,12 +1793,14 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/parking)
"eX" = (
-/obj/effect/decal/road_marking/thin,
-/obj/effect/decal/road_marking/thin{
+/obj/effect/decal/curb{
dir = 8
},
-/obj/structure/automobile/random{
- dir = 4
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor{
+ dir = 1;
+ spawns_with_key = 0;
+ registration_plate = "S62-4394"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -1828,13 +1830,13 @@
/turf/simulated/floor/carpet/lightblue,
/area/point_verdant/interior/hotel)
"fc" = (
-/obj/structure/stairs/urban/road_ramp/left{
- dir = 4
- },
/obj/effect/decal/road_marking/incline{
pixel_y = 13;
dir = 1
},
+/obj/structure/stairs/urban/road_ramp/right{
+ icon_state = "road-ramp-right"
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"fd" = (
@@ -1990,8 +1992,9 @@
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/offices)
"fB" = (
-/obj/effect/decal/exterior_stairs/center{
- dir = 8
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ layer = 2.01
},
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/interior/shallow)
@@ -2000,6 +2003,16 @@
/obj/effect/decal/road_marking/reflector,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"fD" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped/red{
+ dir = 8;
+ registration_plate = "M97-6406";
+ spawns_with_key = 0
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"fE" = (
/obj/structure/konyang_cliff{
icon_state = "topcorner_east"
@@ -2203,14 +2216,21 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"gf" = (
+/obj/machinery/atm{
+ dir = 8;
+ pixel_x = -16;
+ pixel_y = 8
+ },
/turf/simulated/floor/sidewalk/detail,
/area/point_verdant/interior/shallow)
"gg" = (
/turf/simulated/floor/carpet/lightblue,
/area/point_verdant/interior/hotel)
"gh" = (
-/obj/effect/decal/exterior_stairs/right{
- dir = 8
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ layer = 2.01;
+ icon_state = "stairs-left-bot"
},
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/interior/shallow)
@@ -2245,6 +2265,14 @@
},
/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
+"gm" = (
+/obj/effect/decal/road_marking,
+/obj/vehicle/bike/motor/moped/red{
+ dir = 8;
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/offices)
"gn" = (
/obj/structure/road_barrier{
dir = 8
@@ -2276,6 +2304,16 @@
},
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
+"gs" = (
+/obj/vehicle/bike/motor/moped/teal{
+ dir = 8;
+ registration_plate = "M73-3908";
+ spawns_with_key = 0
+ },
+/obj/effect/decal/road_marking,
+/obj/effect/decal/curb,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"gt" = (
/obj/structure/konyang_cliff{
icon_state = "corner_east"
@@ -2317,17 +2355,14 @@
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
"gB" = (
-/obj/structure/stairs/urban/road_ramp/right{
- dir = 4;
- pixel_y = 32
- },
-/obj/structure/stairs/urban/road_ramp/right{
- dir = 4
- },
/obj/effect/decal/road_marking/incline{
pixel_y = 26;
dir = 1
},
+/obj/structure/stairs/urban/road_ramp/right{
+ icon_state = "road-ramp-right-top";
+ pixel_y = 30
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"gC" = (
@@ -2341,8 +2376,7 @@
/obj/structure/closet/crate/bin/urban/compact{
pixel_x = 7;
density = 0;
- anchored = 0;
- pixel_y = 0
+ anchored = 0
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/cafe)
@@ -2434,8 +2468,7 @@
/area/point_verdant/outdoors)
"gN" = (
/obj/structure/stairs_railing{
- dir = 8;
- pixel_y = 0
+ dir = 8
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices)
@@ -2453,7 +2486,6 @@
"gP" = (
/obj/machinery/light/colored{
dir = 8;
- pixel_y = 0;
pixel_x = -12
},
/obj/structure/flora/pottedplant/bamboo,
@@ -2568,6 +2600,15 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"hf" = (
+/obj/vehicle/bike/motor/moped{
+ dir = 4;
+ registration_plate = "M68-6909";
+ spawns_with_key = 0
+ },
+/obj/effect/decal/road_marking/thin,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"hg" = (
/obj/structure/rod_railing,
/obj/structure/bed/stool/padded/red,
@@ -2779,11 +2820,11 @@
/turf/simulated/floor/wood,
/area/point_verdant/interior/hotel)
"hK" = (
-/obj/effect/decal/exterior_stairs/center{
- dir = 4
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ icon_state = "stairs-right"
},
-/obj/structure/rod_railing,
-/turf/simulated/floor/sidewalk/flat,
+/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
"hL" = (
/turf/simulated/floor/lino/diamond,
@@ -2795,6 +2836,10 @@
/obj/effect/floor_decal/spline/fancy/wood{
dir = 6
},
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_zh";
+ identifier = "konyang_zh"
+ },
/turf/simulated/floor/wood,
/area/point_verdant/interior/offices)
"hN" = (
@@ -3132,6 +3177,10 @@
/obj/random/junk,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"iN" = (
+/obj/structure/stairs/urban/road_ramp/right,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"iO" = (
/obj/effect/decal/curb{
dir = 1
@@ -3214,6 +3263,15 @@
},
/turf/simulated/floor/sidewalk/detail,
/area/point_verdant/outdoors)
+"iX" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped/red{
+ dir = 8;
+ registration_plate = "M69-5179";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"iY" = (
/obj/effect/decal/curb/corner,
/turf/simulated/floor/asphalt,
@@ -3303,13 +3361,12 @@
/obj/effect/floor_decal/corner_wide/grey{
dir = 4
},
-/obj/effect/floor_decal/corner_wide/black{
- dir = 2
- },
+/obj/effect/floor_decal/corner_wide/black,
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices)
"jo" = (
/obj/machinery/door/window/desk/southright,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"jp" = (
@@ -3589,8 +3646,7 @@
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
tiles = 1;
- dir = 4;
- pixel_y = 0
+ dir = 4
},
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
@@ -3630,16 +3686,13 @@
pixel_y = 7
},
/obj/item/storage/pill_bottle/inaprovaline{
- pixel_x = 6;
- pixel_y = 0
+ pixel_x = 6
},
/obj/item/storage/pill_bottle/inaprovaline{
- pixel_x = 6;
- pixel_y = 0
+ pixel_x = 6
},
/obj/item/storage/pill_bottle/inaprovaline{
- pixel_x = 6;
- pixel_y = 0
+ pixel_x = 6
},
/obj/item/reagent_containers/glass/bottle/inaprovaline{
pixel_x = -7
@@ -3698,6 +3751,15 @@
/obj/structure/light_pole/konyang/left,
/turf/simulated/floor/exoplanet/konyang/pink,
/area/point_verdant/outdoors)
+"km" = (
+/obj/vehicle/bike/motor/moped/blue{
+ dir = 8;
+ registration_plate = "M56-4117";
+ spawns_with_key = 0
+ },
+/obj/effect/decal/road_marking/thin,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"kn" = (
/obj/effect/decal/curb/corner,
/obj/effect/decal/curb/corner{
@@ -3759,6 +3821,13 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"kx" = (
+/obj/structure/stairs/urban/road_ramp/left{
+ icon_state = "road-ramp-left-top";
+ pixel_y = 29
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"ky" = (
/obj/effect/decal/curb/corner{
dir = 8
@@ -3769,12 +3838,9 @@
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/outdoors)
"kz" = (
-/obj/effect/decal/exterior_stairs/left{
- dir = 4;
- layer = 2.01
- },
-/turf/simulated/floor/sidewalk/blocks,
-/area/point_verdant/outdoors)
+/obj/structure/stairs/urban/north,
+/turf/simulated/floor/concrete,
+/area/point_verdant/interior/shallow)
"kA" = (
/obj/effect/floor_decal/industrial/warning{
dir = 6
@@ -3805,6 +3871,13 @@
},
/turf/simulated/floor/lino,
/area/point_verdant/interior/police)
+"kE" = (
+/obj/effect/decal/road_marking,
+/obj/vehicle/bike/motor{
+ dir = 4
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/offices)
"kF" = (
/obj/structure/stairs_lower/stairs_upper{
dir = 4;
@@ -3853,11 +3926,9 @@
pixel_x = 6
},
/obj/item/clothing/accessory/dressshirt{
- pixel_y = 0;
pixel_x = 6
},
/obj/item/clothing/accessory/dressshirt{
- pixel_y = 0;
pixel_x = 6
},
/obj/item/clothing/accessory/dressshirt{
@@ -3931,7 +4002,6 @@
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/outdoors)
"kT" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -3941,6 +4011,7 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet/lightblue,
/area/point_verdant/interior/hotel)
"kU" = (
@@ -4328,6 +4399,18 @@
/obj/random/dirt_75,
/turf/simulated/floor/concrete,
/area/point_verdant/interior/shallow)
+"lS" = (
+/obj/effect/decal/curb{
+ dir = 9
+ },
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor/blue{
+ dir = 8;
+ spawns_with_key = 0;
+ registration_plate = "S58-2165"
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"lT" = (
/obj/structure/ledge/quarter{
dir = 1
@@ -4434,6 +4517,16 @@
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/shallow)
+"mg" = (
+/obj/effect/decal/road_marking/thin{
+ dir = 8
+ },
+/obj/effect/decal/road_marking/thin,
+/obj/structure/automobile/random{
+ dir = 4
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"mh" = (
/turf/simulated/wall,
/area/point_verdant/water)
@@ -4443,9 +4536,23 @@
},
/turf/simulated/floor/carpet/darkblue,
/area/point_verdant/interior/robotics)
+"mj" = (
+/obj/effect/decal/curb{
+ dir = 1
+ },
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor/moped/teal{
+ dir = 8;
+ registration_plate = "T3T-5U01";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"mk" = (
/obj/effect/decal/exterior_stairs/right{
- dir = 4
+ dir = 4;
+ icon_state = "stairs-right-top"
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
@@ -4496,7 +4603,10 @@
/area/point_verdant/interior/parking)
"mq" = (
/obj/structure/table/wood,
-/obj/item/toy/desk/fan,
+/obj/item/toy/desk/fan{
+ pixel_x = -1;
+ pixel_y = 2
+ },
/obj/machinery/ringer_button{
pixel_x = -6;
pixel_y = 14;
@@ -4562,7 +4672,7 @@
name = "imposing rod railing";
layer = 9.1
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
"mx" = (
/obj/machinery/light/small{
@@ -4635,6 +4745,19 @@
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/tailor)
+"mH" = (
+/obj/effect/decal/road_marking/thin,
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
+"mI" = (
+/obj/vehicle/bike/motor/moped/teal{
+ dir = 8;
+ registration_plate = "M56-7849";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"mJ" = (
/obj/effect/decal/road_marking/center{
dir = 8
@@ -4642,6 +4765,13 @@
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"mK" = (
+/obj/effect/decal/road_marking/thin{
+ dir = 8
+ },
+/obj/effect/decal/curb,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"mL" = (
/obj/structure/ledge{
dir = 1
@@ -4736,7 +4866,6 @@
"nd" = (
/obj/structure/table/standard,
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/tiled,
@@ -4770,6 +4899,9 @@
dir = 8
},
/obj/random/dirt_75,
+/obj/effect/decal/road_marking/thin{
+ dir = 4
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"nk" = (
@@ -4780,6 +4912,13 @@
/obj/structure/rod_railing,
/turf/simulated/floor/wood,
/area/point_verdant/interior/arcade)
+"nm" = (
+/obj/effect/decal/road_marking/no_park{
+ dir = 4
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"nn" = (
/obj/effect/decal/curb{
dir = 8
@@ -4972,6 +5111,18 @@
},
/turf/simulated/floor/exoplanet/konyang/no_edge,
/area/point_verdant/outdoors)
+"nF" = (
+/obj/effect/decal/road_marking/thin,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
+"nG" = (
+/obj/random/dirt_75,
+/obj/item/reagent_containers/glass/rag{
+ pixel_y = 17;
+ pixel_x = -13
+ },
+/turf/simulated/floor/tiled,
+/area/point_verdant/interior/minimart)
"nH" = (
/obj/structure/table/rack/clothing{
layer = 3.1
@@ -5004,7 +5155,8 @@
dir = 1
},
/obj/effect/decal/exterior_stairs/right{
- dir = 4
+ dir = 4;
+ icon_state = "stairs-right-top"
},
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/interior/shallow)
@@ -5038,16 +5190,10 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"nQ" = (
-/obj/structure/bed/stool/chair/office/dark{
- dir = 2
- },
+/obj/structure/bed/stool/chair/office/dark,
/obj/effect/floor_decal/corner/blue{
dir = 10
},
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_cop";
- identifier = "konyang_cop"
- },
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
"nR" = (
@@ -5203,6 +5349,16 @@
/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"ol" = (
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
+/obj/effect/decal/curb{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"om" = (
/obj/structure/table/standard,
/obj/item/folder/yellow,
@@ -5250,10 +5406,6 @@
},
/obj/random/dirt_75,
/obj/random/dirt_75,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_goon";
- identifier = "konyang_goon"
- },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/decrepit)
"or" = (
@@ -5833,7 +5985,8 @@
/area/point_verdant/interior/pharmacy)
"pE" = (
/obj/effect/decal/exterior_stairs/right{
- dir = 4
+ dir = 4;
+ icon_state = "stairs-right-top"
},
/turf/simulated/floor/exoplanet/konyang/no_edge,
/area/point_verdant/outdoors)
@@ -5984,7 +6137,6 @@
dir = 4
},
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/tiled,
@@ -6006,6 +6158,16 @@
},
/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
+"qf" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/green{
+ dir = 8;
+ registration_plate = "S27-3782";
+ spawns_with_key = 0
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"qg" = (
/obj/structure/stairs_railing{
pixel_y = -11;
@@ -6048,11 +6210,25 @@
},
/turf/simulated/floor/carpet/purple,
/area/point_verdant/interior/spaceport)
+"qn" = (
+/obj/structure/stairs/urban/road_ramp/left,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"qo" = (
/obj/structure/flora/rock/konyang/water,
/obj/structure/flora/bush/konyang_reeds/water,
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
+"qp" = (
+/obj/structure/bed/stool/chair/sofa/right/blue{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/lino/diamond,
+/area/point_verdant/interior/restaurant)
"qq" = (
/obj/structure/ledge/quarter/corner{
dir = 8
@@ -6119,6 +6295,16 @@
/obj/effect/floor_decal/konyang_flowers,
/turf/simulated/floor/exoplanet/konyang/no_edge,
/area/point_verdant/outdoors)
+"qx" = (
+/obj/random/dirt_75,
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/brown{
+ dir = 8;
+ registration_plate = "S67-3512";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"qy" = (
/obj/structure/rod_railing{
name = "imposing rod railing";
@@ -6241,7 +6427,8 @@
"qT" = (
/obj/effect/decal/exterior_stairs/left{
dir = 4;
- layer = 2.01
+ layer = 2.01;
+ icon_state = "stairs-right-bot"
},
/turf/simulated/floor/exoplanet/konyang/no_edge,
/area/point_verdant/outdoors)
@@ -6363,6 +6550,16 @@
},
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
+"rk" = (
+/obj/effect/decal/road_marking,
+/obj/effect/decal/curb,
+/obj/vehicle/bike/motor/moped{
+ dir = 4;
+ registration_plate = "M77-3836";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"rl" = (
/obj/structure/flora/bush/konyang_reeds,
/obj/structure/rod_railing{
@@ -6414,7 +6611,6 @@
/area/point_verdant/outdoors)
"rq" = (
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/obj/effect/floor_decal/corner/blue{
@@ -6523,7 +6719,7 @@
/obj/structure/konyang_cliff{
icon_state = "innercorner3"
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
"rG" = (
/obj/effect/decal/cleanable/dirt,
@@ -6543,13 +6739,6 @@
},
/turf/simulated/floor/concrete,
/area/point_verdant/outdoors)
-"rJ" = (
-/obj/structure/stairs/urban/road_ramp/left{
- dir = 8;
- pixel_y = 29
- },
-/turf/simulated/floor/asphalt,
-/area/point_verdant/outdoors)
"rK" = (
/obj/structure/table/steel,
/obj/item/storage/overloader/classic{
@@ -6579,6 +6768,7 @@
/obj/structure/toilet{
pixel_x = -8
},
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/freezer,
/area/point_verdant/interior/laundromat)
"rM" = (
@@ -6609,6 +6799,7 @@
/obj/structure/window/reinforced{
dir = 8
},
+/obj/random/dirt_75,
/turf/simulated/floor/wood,
/area/point_verdant/interior/laundromat)
"rQ" = (
@@ -6672,13 +6863,15 @@
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/outdoors)
"sa" = (
-/obj/structure/konyang_cliff{
- icon_state = "innercorner2"
+/obj/structure/ledge{
+ dir = 4
},
-/obj/structure/chainlink_fence{
- dir = 8
+/obj/structure/konyang_cliff{
+ icon_state = "cliff-west";
+ layer = 2.5;
+ density = 0
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"sb" = (
/obj/effect/decal/road_marking{
@@ -6709,6 +6902,18 @@
/obj/effect/floor_decal/corner/grey/diagonal,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
+"se" = (
+/obj/effect/decal/curb,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor{
+ dir = 4;
+ spawns_with_key = 0;
+ registration_plate = "2KA-N3DA"
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"sg" = (
/obj/effect/decal/curb{
dir = 8
@@ -6771,7 +6976,6 @@
/turf/simulated/floor/wood,
/area/point_verdant/interior/cafe)
"sp" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -6781,6 +6985,7 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet/magenta,
/area/point_verdant/interior/hotel)
"sq" = (
@@ -6818,7 +7023,8 @@
"st" = (
/obj/effect/decal/exterior_stairs/left{
dir = 4;
- layer = 2.01
+ layer = 2.01;
+ icon_state = "stairs-right-bot"
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/outdoors)
@@ -6862,6 +7068,22 @@
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/outdoors)
+"sB" = (
+/obj/machinery/atm{
+ dir = 1;
+ pixel_y = 28
+ },
+/turf/simulated/floor/concrete,
+/area/point_verdant/interior/shallow)
+"sC" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped/blue{
+ dir = 8;
+ registration_plate = "M97-2096";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"sD" = (
/obj/structure/utility_pole/street/classic/on,
/obj/structure/rod_railing{
@@ -6924,10 +7146,6 @@
/area/point_verdant/outdoors)
"sM" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_gwok";
- identifier = "konyang_gwok"
- },
/turf/simulated/floor/wood,
/area/point_verdant/interior/streetvendor)
"sN" = (
@@ -6997,7 +7215,7 @@
layer = 2.5;
density = 0
},
-/turf/simulated/floor/exoplanet/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
"sU" = (
/obj/structure/dam{
@@ -7252,6 +7470,7 @@
pixel_x = 7;
pixel_y = 18
},
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"tC" = (
@@ -7268,10 +7487,14 @@
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"tE" = (
-/obj/structure/automobile/random{
- dir = 8
+/obj/effect/decal/curb{
+ dir = 1
},
/obj/random/dirt_75,
+/obj/effect/decal/road_marking/thin{
+ dir = 1
+ },
+/obj/effect/decal/road_marking/thin,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"tF" = (
@@ -7301,10 +7524,6 @@
dir = 1
},
/obj/random/dirt_75,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_goon";
- identifier = "konyang_goon"
- },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/decrepit)
"tJ" = (
@@ -7372,7 +7591,8 @@
dir = 8
},
/obj/effect/decal/exterior_stairs/right{
- dir = 8
+ dir = 8;
+ icon_state = "stairs-left"
},
/obj/structure/rod_railing,
/obj/structure/konyang_cliff{
@@ -7414,6 +7634,13 @@
},
/turf/simulated/floor/exoplanet/water/konyang,
/area/point_verdant/water)
+"tZ" = (
+/obj/structure/bed/stool/chair/sofa/right/blue{
+ dir = 4
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/lino/diamond,
+/area/point_verdant/interior/restaurant)
"ua" = (
/obj/structure/table/rack/cafe_table,
/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/shot{
@@ -7435,13 +7662,14 @@
/turf/simulated/floor/wood,
/area/point_verdant/interior/bar)
"uc" = (
-/obj/effect/decal/exterior_stairs/center{
- dir = 4
- },
/obj/structure/rod_railing{
name = "imposing rod railing";
layer = 9.1
},
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ icon_state = "stairs-right"
+ },
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/interior/shallow)
"ud" = (
@@ -7613,14 +7841,9 @@
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/streetvendor)
"uv" = (
-/obj/structure/dam{
- icon_state = "dam9";
- opacity = 1
- },
-/obj/structure/dam{
- icon_state = "dam7"
- },
-/turf/simulated/open,
+/obj/random/dirt_75,
+/obj/effect/decal/road_marking/thin,
+/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"uw" = (
/obj/effect/decal/road_marking/no_pass,
@@ -7687,15 +7910,29 @@
dir = 10
},
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices)
+"uF" = (
+/obj/vehicle/bike/motor/moped/blue{
+ dir = 8;
+ spawns_with_key = 0;
+ registration_plate = "M99-7614"
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"uG" = (
/obj/machinery/door/urban/glass_sliding/double,
/turf/simulated/floor/concrete,
/area/point_verdant/interior/spaceport)
+"uH" = (
+/obj/machinery/atm{
+ dir = 1;
+ pixel_y = 28
+ },
+/turf/simulated/floor/sidewalk/blocks,
+/area/point_verdant/outdoors)
"uI" = (
/obj/effect/decal/road_marking{
dir = 8
@@ -7742,6 +7979,7 @@
/area/point_verdant/interior/offices)
"uN" = (
/obj/structure/window/reinforced,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"uO" = (
@@ -7810,9 +8048,9 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"uW" = (
-/obj/effect/decal/exterior_stairs/left{
+/obj/effect/decal/exterior_stairs/right{
dir = 4;
- icon_state = "stairs-right"
+ icon_state = "stairs-right-top"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -7820,6 +8058,7 @@
/obj/item/storage/secure/safe{
pixel_x = -25
},
+/obj/random/dirt_75,
/turf/simulated/floor/wood,
/area/point_verdant/interior/laundromat)
"uY" = (
@@ -7830,6 +8069,13 @@
"uZ" = (
/turf/simulated/floor/wood,
/area/point_verdant/interior/arcade)
+"va" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/restaurant)
"vb" = (
/obj/structure/toilet{
dir = 4
@@ -7956,12 +8202,8 @@
/obj/effect/decal/road_marking/incline{
pixel_y = 13
},
-/obj/structure/stairs/urban/road_ramp/right{
- dir = 8
- },
/obj/structure/stairs/urban/road_ramp/left{
- dir = 8;
- pixel_y = 29
+ icon_state = "road-ramp-left"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -8052,12 +8294,10 @@
pixel_x = -9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = -9
},
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma,
/obj/item/reagent_containers/food/drinks/cans/beer/rice/shimauma{
- pixel_y = 0;
pixel_x = 9
},
/turf/simulated/floor/wood,
@@ -8065,7 +8305,7 @@
"vH" = (
/obj/structure/table/wood,
/obj/machinery/door/window/southleft{
- req_access = list(217)
+ req_access = list(218)
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
@@ -8107,7 +8347,7 @@
/turf/simulated/floor/wood,
/area/point_verdant/interior/cafe)
"vL" = (
-/obj/effect/decal/exterior_stairs/left,
+/obj/effect/decal/exterior_stairs/center,
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/interior/shallow)
"vM" = (
@@ -8179,7 +8419,6 @@
pixel_y = 10
},
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/sidewalk/flat,
@@ -8255,9 +8494,7 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"wd" = (
-/obj/structure/window/reinforced{
- dir = 2
- },
+/obj/structure/window/reinforced,
/obj/structure/table/wood,
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
@@ -8324,6 +8561,7 @@
/obj/item/reagent_containers/food/condiment/flour,
/obj/item/reagent_containers/food/condiment/flour,
/obj/item/reagent_containers/food/condiment/flour,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
"wm" = (
@@ -8396,9 +8634,8 @@
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
"ws" = (
-/obj/structure/stairs/urban{
- dir = 4;
- icon_state = "stairs-right"
+/obj/structure/stairs/urban/right{
+ icon_state = "stairs-right-top"
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
@@ -8425,6 +8662,9 @@
/obj/effect/decal/curb{
dir = 8
},
+/obj/effect/decal/road_marking/thin{
+ dir = 4
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"wx" = (
@@ -8540,6 +8780,7 @@
/obj/item/storage/box/fancy/egg_box,
/obj/item/storage/box/fancy/egg_box,
/obj/item/storage/box/fancy/egg_box,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
"wT" = (
@@ -8622,13 +8863,14 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"xd" = (
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"xe" = (
-/obj/effect/decal/exterior_stairs/left,
/obj/structure/rod_railing{
dir = 8
},
+/obj/effect/decal/exterior_stairs/center,
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/outdoors)
"xf" = (
@@ -8709,10 +8951,25 @@
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices)
+"xm" = (
+/obj/effect/floor_decal/corner/green/diagonal,
+/obj/random/dirt_75,
+/turf/simulated/floor/tiled/white,
+/area/point_verdant/interior/restaurant)
"xn" = (
/obj/effect/floor_decal/corner/green/diagonal,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
+"xo" = (
+/obj/vehicle/bike/motor/blue{
+ dir = 8;
+ registration_plate = "S87-5702";
+ spawns_with_key = 0
+ },
+/obj/random/dirt_75,
+/obj/effect/decal/road_marking/thin,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"xp" = (
/obj/effect/map_effect/window_spawner/full/reinforced/grille,
/turf/simulated/floor/tiled/full,
@@ -8931,10 +9188,9 @@
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
tiles = 1;
- dir = 4;
- pixel_y = 0
+ dir = 4
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/water)
"xT" = (
/obj/machinery/door/urban,
@@ -8999,7 +9255,6 @@
"yc" = (
/obj/machinery/light/colored{
dir = 8;
- pixel_y = 0;
pixel_x = -12
},
/turf/simulated/floor/lino/diamond,
@@ -9053,7 +9308,6 @@
pixel_y = 9
},
/obj/item/storage/toolbox/electrical{
- pixel_y = 0;
pixel_x = 2
},
/obj/machinery/light{
@@ -9082,7 +9336,7 @@
/obj/structure/rod_railing,
/obj/effect/decal/exterior_stairs/left{
dir = 4;
- layer = 2.01
+ icon_state = "stairs-right"
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/outdoors)
@@ -9297,10 +9551,6 @@
/obj/structure/bed/stool/chair/office/dark{
dir = 8
},
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_pharm";
- identifier = "konyang_pharm"
- },
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/pharmacy)
"yO" = (
@@ -9322,12 +9572,6 @@
},
/turf/simulated/floor/exoplanet/konyang/no_edge,
/area/point_verdant/outdoors)
-"yQ" = (
-/obj/structure/stairs/urban{
- dir = 1
- },
-/turf/simulated/floor/concrete,
-/area/point_verdant/interior/shallow)
"yR" = (
/obj/structure/rod_railing,
/turf/simulated/floor/sidewalk,
@@ -9460,15 +9704,10 @@
/turf/simulated/floor/wood,
/area/point_verdant/interior/offices)
"zk" = (
-/obj/structure/rod_railing{
- dir = 4
- },
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_bar";
- identifier = "konyang_bar"
- },
-/turf/simulated/floor/wood,
-/area/point_verdant/interior/bar)
+/obj/effect/floor_decal/corner/grey/diagonal,
+/obj/random/dirt_75,
+/turf/simulated/floor/tiled/white,
+/area/point_verdant/interior/restaurant)
"zl" = (
/turf/simulated/floor/wood,
/area/point_verdant/interior/cafe)
@@ -9650,15 +9889,12 @@
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
"zE" = (
-/obj/effect/decal/road_marking{
+/obj/effect/decal/road_marking,
+/obj/vehicle/bike/motor/brown{
dir = 4
},
-/obj/effect/decal/curb{
- dir = 8
- },
-/obj/random/dirt_75,
/turf/simulated/floor/asphalt,
-/area/point_verdant/outdoors)
+/area/point_verdant/interior/offices)
"zF" = (
/obj/structure/flora/tree/konyang/spring,
/obj/structure/flora/bush/konyang_reeds,
@@ -9746,6 +9982,16 @@
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/shallow)
+"zO" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped{
+ dir = 8;
+ registration_plate = "M72-2664";
+ spawns_with_key = 0
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"zQ" = (
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
@@ -9849,7 +10095,6 @@
pixel_y = 6
},
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/tiled,
@@ -9908,7 +10153,6 @@
/obj/effect/decal/exterior_stairs/half,
/obj/machinery/door/window/southleft,
/obj/machinery/door/blast/shutters{
- dir = 1;
id = "konyang_clinic"
},
/turf/simulated/floor/lino/diamond,
@@ -9951,15 +10195,6 @@
/obj/effect/map_effect/window_spawner/full/wood,
/turf/simulated/floor/tiled,
/area/point_verdant/interior/spaceport)
-"Ar" = (
-/obj/effect/step_trigger/thrower{
- icon_state = "dir_arrow";
- tiles = 1;
- dir = 4;
- pixel_y = 0
- },
-/turf/simulated/floor/exoplanet/water/konyang,
-/area/point_verdant/water)
"As" = (
/obj/structure/konyang_cliff{
icon_state = "topcorner_east"
@@ -9995,13 +10230,21 @@
},
/turf/simulated/open,
/area/point_verdant/outdoors)
+"Av" = (
+/obj/machinery/atm{
+ dir = 1;
+ pixel_y = 28;
+ pixel_x = 2
+ },
+/turf/simulated/floor/sidewalk/blocks,
+/area/point_verdant/outdoors)
"Aw" = (
/turf/simulated/wall/wood,
/area/point_verdant/interior/hotel)
"Ax" = (
/obj/structure/table/wood,
/obj/machinery/door/window/desk/southright{
- req_access = list(218)
+ req_access = list(219)
},
/obj/item/device/flashlight/lamp/box{
pixel_y = 5
@@ -10102,6 +10345,16 @@
/obj/effect/decal/exterior_stairs/center,
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/outdoors)
+"AN" = (
+/obj/random/dirt_75,
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped/red{
+ dir = 8;
+ registration_plate = "M25-5737";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"AO" = (
/obj/structure/table/stone/marble,
/obj/item/tray{
@@ -10280,15 +10533,11 @@
pixel_y = 13;
pixel_x = 9
},
+/obj/item/reagent_containers/food/drinks/dry_ramen,
/obj/item/reagent_containers/food/drinks/dry_ramen{
- pixel_y = 0
- },
-/obj/item/reagent_containers/food/drinks/dry_ramen{
- pixel_y = 0;
pixel_x = -9
},
/obj/item/reagent_containers/food/drinks/dry_ramen{
- pixel_y = 0;
pixel_x = 9
},
/obj/random/dirt_75,
@@ -10392,15 +10641,14 @@
/area/point_verdant/interior/police)
"Bv" = (
/obj/effect/decal/exterior_stairs/left{
- dir = 8
+ dir = 8;
+ icon_state = "stairs-left-top"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Bw" = (
/obj/structure/table/rack/retail_shelf,
-/obj/item/storage/box/fancy/donut{
- pixel_y = 0
- },
+/obj/item/storage/box/fancy/donut,
/obj/item/storage/box/fancy/donut{
pixel_y = 5
},
@@ -10451,6 +10699,15 @@
/obj/effect/floor_decal/corner/grey/diagonal,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
+"BF" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/brown{
+ dir = 8;
+ registration_plate = "S96-3842";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"BG" = (
/obj/structure/stairs/west,
/obj/structure/stairs_lower/stairs_upper{
@@ -10551,12 +10808,12 @@
/turf/simulated/floor/exoplanet/konyang,
/area/point_verdant/outdoors)
"BQ" = (
+/obj/effect/decal/road_marking/thin,
/obj/effect/decal/road_marking{
dir = 4
},
-/obj/effect/decal/road_marking,
/obj/effect/decal/curb{
- dir = 10
+ dir = 8
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -10579,6 +10836,11 @@
/obj/structure/chainlink_fence,
/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
+"BW" = (
+/obj/structure/automobile_filler,
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"BX" = (
/obj/effect/decal/road_marking/thin,
/obj/effect/decal/road_marking/thin{
@@ -10619,7 +10881,6 @@
dir = 10
},
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/tiled,
@@ -10765,24 +11026,31 @@
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/pharmacy)
"CB" = (
-/obj/effect/decal/exterior_stairs/center{
- dir = 4
- },
/obj/structure/ledge,
/obj/structure/rope_post,
/obj/structure/rope_railing,
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ icon_state = "stairs-right"
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"CD" = (
/obj/structure/table/wood,
/obj/structure/cash_register{
dir = 4;
- pixel_y = 13
+ pixel_y = 13;
+ pixel_x = -7
},
/obj/structure/window/reinforced{
dir = 8
},
/obj/structure/window/reinforced,
+/obj/item/key/bike/moped{
+ pixel_x = 6;
+ pixel_y = 14;
+ key_data = "M77-3836"
+ },
/turf/simulated/floor/wood,
/area/point_verdant/interior/tailor)
"CE" = (
@@ -10879,6 +11147,7 @@
/obj/machinery/light/small{
dir = 1
},
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/freezer,
/area/point_verdant/interior/laundromat)
"CR" = (
@@ -10956,9 +11225,7 @@
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
"Dc" = (
-/obj/structure/bed/stool/chair/office/bridge/generic{
- dir = 2
- },
+/obj/structure/bed/stool/chair/office/bridge/generic,
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/offices)
"Dd" = (
@@ -11068,9 +11335,29 @@
/obj/random/dirt_75,
/turf/simulated/floor/wood,
/area/point_verdant/interior/cafe)
+"Dn" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped/teal{
+ dir = 8;
+ registration_plate = "M17-3023";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Do" = (
-/obj/structure/stairs/urban/road_ramp/right{
- dir = 4
+/turf/simulated/wall,
+/area/point_verdant/interior)
+"Dp" = (
+/obj/random/dirt_75,
+/obj/random/dirt_75,
+/turf/simulated/floor/tiled/white,
+/area/point_verdant/interior/laundromat)
+"Dq" = (
+/obj/effect/decal/road_marking/thin{
+ dir = 1
+ },
+/obj/effect/decal/curb{
+ dir = 1
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -11098,7 +11385,7 @@
/obj/structure/ledge/quarter{
dir = 1
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/water)
"Du" = (
/obj/structure/table/rack/retail_shelf,
@@ -11265,6 +11552,7 @@
dir = 8
},
/obj/effect/decal/curb,
+/obj/random/dirt_75,
/turf/simulated/floor/lino,
/area/point_verdant/interior/restaurant)
"DP" = (
@@ -11284,7 +11572,6 @@
"DS" = (
/obj/effect/map_effect/window_spawner/full/reinforced/grille,
/obj/machinery/door/blast/shutters{
- dir = 1;
id = "konyang_clinic"
},
/turf/simulated/floor/lino/diamond,
@@ -11352,7 +11639,8 @@
dir = 1
},
/obj/effect/decal/exterior_stairs/right{
- dir = 4
+ dir = 4;
+ icon_state = "stairs-right-top"
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/outdoors)
@@ -11461,6 +11749,16 @@
/obj/structure/sign/urban/konyang/pharmacy,
/turf/simulated/wall,
/area/point_verdant/interior/pharmacy)
+"Es" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped/teal{
+ dir = 8;
+ registration_plate = "M18-8296";
+ spawns_with_key = 0
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"Et" = (
/obj/effect/decal/curb{
dir = 8
@@ -11607,6 +11905,11 @@
pixel_y = 5
},
/obj/random/dirt_75,
+/obj/item/key/bike/police{
+ pixel_x = 10;
+ key_data = "P97-7137";
+ pixel_y = 2
+ },
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
"EH" = (
@@ -11625,7 +11928,6 @@
dir = 10
},
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/tiled,
@@ -11842,6 +12144,13 @@
/obj/structure/chainlink_fence,
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
+"Fn" = (
+/obj/machinery/atm{
+ dir = 1;
+ pixel_y = 28
+ },
+/turf/simulated/floor/sidewalk,
+/area/point_verdant/outdoors)
"Fo" = (
/obj/effect/decal/road_marking/thin{
dir = 4
@@ -12030,6 +12339,13 @@
},
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
+"FS" = (
+/obj/machinery/vending/rental_bikes{
+ key_data_mopeds = list("M17-3023","M36-1211","M56-4117");
+ key_data_sports = list("S75-1649","S87-5702")
+ },
+/turf/simulated/floor/sidewalk/blocks,
+/area/point_verdant/outdoors)
"FT" = (
/turf/simulated/floor/lino,
/area/point_verdant/interior/hotel)
@@ -12092,7 +12408,7 @@
layer = 2.5;
density = 0
},
-/turf/simulated/floor/exoplanet/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
"Gb" = (
/obj/structure/table/wood,
@@ -12301,7 +12617,6 @@
/obj/random/dirt_75,
/obj/machinery/light/colored{
dir = 4;
- pixel_y = 0;
pixel_x = 12
},
/turf/simulated/floor/tiled,
@@ -12407,6 +12722,10 @@
/obj/machinery/vending/cola/konyang,
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
+"GN" = (
+/obj/random/dirt_75,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/restaurant)
"GO" = (
/obj/structure/road_barrier,
/obj/structure/utility_pole/street/on,
@@ -12944,7 +13263,8 @@
"Ik" = (
/obj/effect/decal/exterior_stairs/left{
dir = 4;
- layer = 2.01
+ layer = 2.01;
+ icon_state = "stairs-right-bot"
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
@@ -13045,6 +13365,7 @@
dir = 4
},
/obj/effect/floor_decal/corner/green/diagonal,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
"Iz" = (
@@ -13068,6 +13389,13 @@
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices)
+"IC" = (
+/obj/effect/decal/exterior_stairs/left{
+ dir = 8;
+ icon_state = "stairs-left-top"
+ },
+/turf/simulated/floor/sidewalk/paved,
+/area/point_verdant/interior/shallow)
"ID" = (
/obj/structure/road_sign/pedestrian{
pixel_x = -1;
@@ -13130,6 +13458,7 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"IO" = (
@@ -13154,10 +13483,6 @@
/obj/structure/bed/stool/chair/office/light{
dir = 8
},
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_clinic";
- identifier = "konyang_clinic"
- },
/turf/simulated/floor/tiled,
/area/point_verdant/interior/robotics)
"IR" = (
@@ -13239,11 +13564,20 @@
/obj/effect/decal/exterior_stairs/half,
/obj/machinery/door/window/southright,
/obj/machinery/door/blast/shutters{
- dir = 1;
id = "konyang_clinic"
},
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/robotics)
+"Jh" = (
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor/green{
+ dir = 8;
+ registration_plate = "S89-8023";
+ spawns_with_key = 0
+ },
+/obj/effect/decal/road_marking/thin,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"Ji" = (
/obj/structure/urban_grate,
/turf/simulated/floor/sidewalk/blocks,
@@ -13285,6 +13619,7 @@
pixel_x = -6;
pixel_y = 7
},
+/obj/random/dirt_75,
/turf/simulated/floor/lino,
/area/point_verdant/interior/restaurant)
"Jr" = (
@@ -13292,7 +13627,8 @@
id = "konyang_clinic";
name = "Clinic Shutters";
pixel_y = 32;
- req_access = list(218)
+ req_access = list(219);
+ dir = 1
},
/obj/random/dirt_75,
/turf/simulated/floor/sidewalk/flat,
@@ -13430,6 +13766,15 @@
"JK" = (
/turf/simulated/wall/wood,
/area/point_verdant/interior/cafe)
+"JL" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/green{
+ dir = 8;
+ registration_plate = "S75-1649";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"JM" = (
/obj/structure/ledge{
dir = 4
@@ -13493,7 +13838,7 @@
id = "konyang_clinic";
name = "Clinic Shutters";
pixel_y = 32;
- req_access = list(218)
+ req_access = list(219)
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/robotics)
@@ -13501,6 +13846,14 @@
/obj/random/dirt_75,
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/hotel)
+"JU" = (
+/obj/machinery/atm{
+ dir = 8;
+ pixel_x = -16;
+ pixel_y = 4
+ },
+/turf/simulated/floor/sidewalk,
+/area/point_verdant/outdoors)
"JV" = (
/obj/effect/decal/curb/corner{
dir = 4
@@ -13560,10 +13913,6 @@
"Ke" = (
/obj/structure/flora/pottedplant/dead,
/obj/random/dirt_75,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_goon_boss";
- identifier = "konyang_goon_boss"
- },
/turf/simulated/floor/lino/diamond,
/area/point_verdant/interior/decrepit)
"Kf" = (
@@ -13691,6 +14040,8 @@
/obj/machinery/light/small{
dir = 8
},
+/obj/item/clothing/suit/storage/toggle/konyang/dbjacket/black,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"Kt" = (
@@ -13705,6 +14056,19 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"Ku" = (
+/obj/effect/decal/road_marking/no_park{
+ dir = 4
+ },
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
+/obj/effect/decal/curb{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"Kv" = (
/obj/machinery/door/urban,
/obj/effect/decal/exterior_stairs/half,
@@ -13712,6 +14076,7 @@
pixel_x = 31;
pixel_y = 10
},
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"Kw" = (
@@ -13858,8 +14223,10 @@
/turf/simulated/floor/wood,
/area/point_verdant/interior/streetvendor)
"KM" = (
-/obj/effect/decal/exterior_stairs/right{
- dir = 8
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ layer = 2.01;
+ icon_state = "stairs-left-bot"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -14017,6 +14384,7 @@
/area/point_verdant/outdoors)
"Lf" = (
/obj/effect/decal/curb/corner,
+/obj/random/dirt_75,
/turf/simulated/floor/lino,
/area/point_verdant/interior/restaurant)
"Lg" = (
@@ -14057,11 +14425,25 @@
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/spaceport)
+"Ln" = (
+/obj/structure/konyang_cliff,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
+/area/point_verdant/outdoors)
"Lo" = (
/obj/structure/flora/rock/konyang/water,
/obj/structure/flora/bush/konyang_reeds/water,
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
+"Lp" = (
+/obj/effect/decal/road_marking,
+/obj/effect/decal/curb,
+/obj/vehicle/bike/motor/moped/police_konyang{
+ dir = 8;
+ spawns_with_key = 0;
+ registration_plate = "P97-7137"
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Lq" = (
/obj/effect/decal/road_marking{
dir = 1
@@ -14125,9 +14507,21 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/shallow)
+"LB" = (
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
+/obj/effect/decal/road_marking/thin,
+/obj/effect/decal/curb{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"LC" = (
/obj/effect/decal/exterior_stairs/left{
- dir = 8
+ dir = 8;
+ icon_state = "stairs-left-top"
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
@@ -14168,7 +14562,7 @@
/area/point_verdant/outdoors)
"LK" = (
/obj/machinery/door/window/eastright{
- req_access = list(218)
+ req_access = list(219)
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/arcade)
@@ -14231,12 +14625,33 @@
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/bar)
+"LT" = (
+/obj/structure/automobile_filler,
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/blue{
+ dir = 8;
+ registration_plate = "S18-6261";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"LU" = (
/obj/effect/decal/exterior_stairs/left{
- dir = 8
+ dir = 8;
+ icon_state = "stairs-left-top"
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/shallow)
+"LV" = (
+/obj/effect/decal/road_marking,
+/obj/effect/decal/curb,
+/obj/vehicle/bike/motor/moped/blue{
+ dir = 8;
+ registration_plate = "M93-5839";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"LW" = (
/obj/structure/rope_railing{
dir = 8
@@ -14280,6 +14695,14 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"Mc" = (
+/obj/machinery/atm{
+ dir = 1;
+ pixel_y = 28
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/sidewalk,
+/area/point_verdant/outdoors)
"Md" = (
/obj/machinery/door/window/eastright{
layer = 3.4
@@ -14382,14 +14805,10 @@
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
"Ms" = (
-/obj/effect/step_trigger/thrower{
- icon_state = "dir_arrow";
- tiles = 1;
- dir = 4;
- pixel_y = 0
- },
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
-/area/point_verdant/water)
+/obj/structure/table/glass,
+/obj/random/dirt_75,
+/turf/simulated/floor/lino/diamond,
+/area/point_verdant/interior/restaurant)
"Mt" = (
/obj/structure/table/standard,
/obj/item/folder/white{
@@ -14481,6 +14900,14 @@
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
+"MH" = (
+/obj/machinery/atm{
+ dir = 8;
+ pixel_x = -16;
+ pixel_y = 7
+ },
+/turf/simulated/floor/sidewalk/paved,
+/area/point_verdant/interior/parking)
"MI" = (
/obj/structure/table/stone/marble,
/obj/structure/window/reinforced{
@@ -14515,13 +14942,11 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"ML" = (
-/obj/structure/stairs/urban/road_ramp/right{
- dir = 4
- },
/obj/effect/decal/road_marking/incline/center{
pixel_y = -17;
dir = 1
},
+/obj/structure/stairs/urban/road_ramp/right,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"MM" = (
@@ -14556,7 +14981,6 @@
},
/obj/machinery/light/colored{
dir = 4;
- pixel_y = 0;
pixel_x = 12
},
/turf/simulated/floor/carpet/darkblue,
@@ -14585,9 +15009,7 @@
/obj/item/storage/firstaid/surgery{
pixel_y = 8
},
-/obj/item/storage/firstaid/surgery{
- pixel_y = 0
- },
+/obj/item/storage/firstaid/surgery,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/pharmacy)
"MT" = (
@@ -14665,7 +15087,8 @@
dir = 9
},
/obj/effect/decal/exterior_stairs/left{
- dir = 8
+ dir = 8;
+ icon_state = "stairs-left-top"
},
/turf/simulated/floor/concrete,
/area/point_verdant/outdoors)
@@ -14696,7 +15119,11 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Ne" = (
-/obj/effect/decal/road_marking/no_park,
+/obj/effect/decal/curb,
+/obj/vehicle/bike/motor/moped/teal{
+ dir = 4;
+ spawns_with_key = 0
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Nf" = (
@@ -14777,10 +15204,10 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Nq" = (
-/obj/effect/decal/exterior_stairs/right,
/obj/structure/rod_railing{
dir = 4
},
+/obj/effect/decal/exterior_stairs/center,
/turf/simulated/floor/sidewalk/paved,
/area/point_verdant/outdoors)
"Nr" = (
@@ -14816,7 +15243,7 @@
/obj/structure/konyang_cliff{
icon_state = "innercorner4"
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
"Nv" = (
/turf/unsimulated/mineral/konyang,
@@ -14862,7 +15289,6 @@
pixel_y = 2
},
/obj/machinery/light{
- dir = 2;
pixel_y = -2
},
/turf/simulated/floor/tiled,
@@ -15037,6 +15463,16 @@
/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/robotics)
+"Oa" = (
+/obj/effect/decal/curb,
+/obj/random/dirt_75,
+/obj/vehicle/bike/motor/brown{
+ dir = 4;
+ spawns_with_key = 0;
+ registration_plate = "S17-3906"
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Ob" = (
/obj/structure/konyang_cliff{
icon_state = "cliff-west"
@@ -15045,7 +15481,7 @@
name = "imposing rod railing";
layer = 9.1
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
"Oc" = (
/obj/structure/table/standard,
@@ -15074,39 +15510,30 @@
/obj/random/dirt_75,
/obj/structure/closet/crate,
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy{
- pixel_y = 0;
pixel_x = -5
},
/obj/item/reagent_containers/food/snacks/candy/koko{
@@ -15425,6 +15852,7 @@
/area/point_verdant/interior/shallow)
"OT" = (
/obj/structure/table/wood,
+/obj/random/dirt_75,
/turf/simulated/floor/wood,
/area/point_verdant/interior/laundromat)
"OU" = (
@@ -15868,27 +16296,30 @@
"PR" = (
/obj/structure/table/rack/retail_shelf,
/obj/item/storage/pill_bottle/steramycin{
- pixel_x = 8;
- pixel_y = 0
+ pixel_x = 8
},
/obj/item/reagent_containers/glass/bottle/thetamycin,
/obj/item/storage/pill_bottle/steramycin{
- pixel_x = -9;
- pixel_y = 0
+ pixel_x = -9
},
/obj/item/storage/pill_bottle/steramycin{
- pixel_x = 8;
- pixel_y = 0
+ pixel_x = 8
},
/obj/item/reagent_containers/glass/bottle/thetamycin{
pixel_y = -6
},
/obj/item/storage/pill_bottle/steramycin{
- pixel_x = -9;
- pixel_y = 0
+ pixel_x = -9
},
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/pharmacy)
+"PS" = (
+/obj/effect/decal/curb/corner{
+ dir = 4
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/restaurant)
"PT" = (
/obj/effect/decal/curb,
/obj/structure/shipping_container{
@@ -15923,6 +16354,13 @@
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/tailor)
+"PY" = (
+/obj/machinery/vending/rental_bikes{
+ key_data_mopeds = list("M18-1785","M56-7849","M69-5179","M97-2096","M72-2664","M18-8296","M35-3772","M58-7428","M97-6406");
+ key_data_sports = list("S53-6393","S35-8084","S27-3782","S89-8023","S96-3842")
+ },
+/turf/simulated/floor/sidewalk/paved,
+/area/point_verdant/interior/parking)
"PZ" = (
/obj/structure/rod_railing{
dir = 8
@@ -15992,8 +16430,7 @@
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
tiles = 1;
- dir = 4;
- pixel_y = 0
+ dir = 4
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -16005,6 +16442,13 @@
/obj/structure/rod_railing,
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
+"Qj" = (
+/obj/structure/bed/stool/chair/sofa/right/blue{
+ dir = 8
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/lino/diamond,
+/area/point_verdant/interior/restaurant)
"Ql" = (
/obj/effect/decal/curb/corner{
dir = 1
@@ -16017,6 +16461,16 @@
/obj/machinery/door/window/desk/southleft,
/turf/simulated/floor/wood,
/area/point_verdant/interior/spaceport)
+"Qo" = (
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
+/obj/effect/decal/road_marking/thin,
+/obj/effect/decal/curb{
+ dir = 8
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"Qp" = (
/obj/machinery/door/window/westright,
/obj/effect/floor_decal/corner/grey/diagonal{
@@ -16036,6 +16490,8 @@
dir = 4;
layer = 3.1
},
+/obj/item/clothing/under/konyangdresstraditional/red,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"Qs" = (
@@ -16060,7 +16516,7 @@
"Qu" = (
/obj/structure/table/wood,
/obj/machinery/door/window/desk/southleft{
- req_access = list(218)
+ req_access = list(219)
},
/obj/item/toy/desk/fan{
pixel_y = 7;
@@ -16127,8 +16583,7 @@
pixel_y = 8
},
/obj/item/reagent_containers/food/drinks/bottle/sake{
- pixel_x = -6;
- pixel_y = 0
+ pixel_x = -6
},
/obj/random/dirt_75,
/obj/random/dirt_75,
@@ -16152,7 +16607,6 @@
},
/obj/machinery/light/colored{
dir = 4;
- pixel_y = 0;
pixel_x = 12
},
/turf/simulated/floor/tiled,
@@ -16275,6 +16729,13 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"QT" = (
+/obj/structure/konyang_cliff,
+/obj/structure/ledge{
+ dir = 4
+ },
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
+/area/point_verdant/outdoors)
"QV" = (
/obj/structure/restaurant_menu,
/turf/simulated/floor/sidewalk/flat,
@@ -16321,6 +16782,16 @@
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/minimart)
+"Rc" = (
+/obj/effect/decal/road_marking,
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
+/obj/effect/decal/curb{
+ dir = 10
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Rd" = (
/obj/structure/rope_railing,
/obj/structure/rope_post,
@@ -16353,6 +16824,12 @@
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices)
+"Rl" = (
+/obj/vehicle/bike/motor/moped/teal{
+ dir = 8
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/offices)
"Rm" = (
/obj/effect/decal/road_marking/thin{
dir = 4
@@ -16390,8 +16867,24 @@
/obj/structure/road_barrier{
dir = 4
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
+/area/point_verdant/outdoors)
+"Rr" = (
+/obj/machinery/vending/rental_bikes{
+ key_data_mopeds = list("M73-3908","M93-5839","M68-6909","M25-5737");
+ key_data_sports = list("S67-3512","S18-6261")
+ },
+/turf/simulated/floor/sidewalk/blocks,
/area/point_verdant/outdoors)
+"Rs" = (
+/obj/vehicle/bike/motor{
+ dir = 8;
+ registration_plate = "S53-6393";
+ spawns_with_key = 0
+ },
+/obj/effect/decal/road_marking/thin,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"Rt" = (
/obj/effect/decal/road_marking{
dir = 1
@@ -16426,7 +16919,8 @@
/area/point_verdant/outdoors)
"Rx" = (
/obj/effect/decal/exterior_stairs/right{
- dir = 4
+ dir = 4;
+ icon_state = "stairs-right-top"
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/outdoors)
@@ -16434,8 +16928,7 @@
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
tiles = 1;
- dir = 4;
- pixel_y = 0
+ dir = 4
},
/obj/structure/structural_support/side,
/turf/simulated/floor/exoplanet/water/konyang,
@@ -16714,6 +17207,17 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/parking)
+"Sk" = (
+/obj/structure/automobile_filler,
+/obj/effect/decal/road_marking/thin,
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
+/obj/effect/decal/curb{
+ dir = 8
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Sl" = (
/obj/structure/ledge{
dir = 8
@@ -16826,6 +17330,7 @@
/obj/machinery/space_heater/stationary{
pixel_y = 29
},
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"SC" = (
@@ -16839,6 +17344,12 @@
dir = 5
},
/obj/random/dirt_75,
+/obj/structure/table/wood,
+/obj/item/key/bike/police{
+ pixel_x = -8;
+ key_data = "P31-3862";
+ pixel_y = -3
+ },
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
"SF" = (
@@ -16918,11 +17429,26 @@
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
"SQ" = (
-/obj/structure/stairs/urban,
+/obj/structure/stairs/urban/south,
/turf/simulated/floor/concrete,
/area/point_verdant/interior/shallow)
+"SR" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped/red{
+ dir = 8;
+ registration_plate = "M58-7428";
+ spawns_with_key = 0
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"SS" = (
/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_y = 26;
+ pixel_x = -21
+ },
/turf/simulated/floor/wood,
/area/point_verdant/interior/streetvendor)
"ST" = (
@@ -16990,9 +17516,8 @@
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/outdoors)
"Tb" = (
-/obj/structure/stairs/urban{
- dir = 8;
- icon_state = "stairs-left"
+/obj/structure/stairs/urban/left{
+ icon_state = "stairs-left-top"
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
@@ -17029,7 +17554,7 @@
name = "imposing rod railing";
layer = 9.1
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
"Tg" = (
/obj/random/dirt_75,
@@ -17200,7 +17725,6 @@
"TC" = (
/obj/structure/stairs_railing{
dir = 4;
- pixel_y = 0;
pixel_x = -32
},
/turf/simulated/floor/tiled,
@@ -17308,6 +17832,13 @@
/obj/effect/decal/cleanable/generic/beet_tree_petals,
/turf/simulated/floor/concrete,
/area/point_verdant/interior/shallow)
+"TS" = (
+/obj/effect/decal/curb{
+ dir = 1
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/restaurant)
"TT" = (
/obj/effect/map_effect/window_spawner/full/reinforced/polarized/grille,
/obj/machinery/door/blast/shutters/open{
@@ -17316,7 +17847,6 @@
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/offices)
"TU" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -17327,6 +17857,7 @@
dir = 4
},
/obj/random/dirt_75,
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet/purple,
/area/point_verdant/interior/hotel)
"TV" = (
@@ -17402,10 +17933,14 @@
/turf/simulated/floor/tiled/full,
/area/point_verdant/outdoors)
"Ue" = (
+/obj/structure/automobile_filler,
+/obj/effect/decal/road_marking/thin{
+ dir = 4
+ },
+/obj/effect/decal/road_marking/thin,
/obj/effect/decal/curb{
dir = 8
},
-/obj/structure/automobile_filler,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Uf" = (
@@ -17428,7 +17963,7 @@
/obj/structure/road_barrier/bot_in{
dir = 4
},
-/turf/simulated/floor/exoplanet/water/shallow/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/outdoors)
"Uk" = (
/obj/structure/window/urban{
@@ -17524,6 +18059,12 @@
},
/turf/simulated/floor/reinforced,
/area/point_verdant/interior/robotics)
+"Uy" = (
+/obj/structure/konyang_cliff{
+ icon_state = "topcorner_west"
+ },
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
+/area/point_verdant/outdoors)
"Uz" = (
/obj/structure/closet/cabinet,
/obj/effect/floor_decal/spline/fancy/wood{
@@ -17553,7 +18094,7 @@
/obj/structure/ledge{
dir = 1
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang/no_smooth,
/area/point_verdant/water)
"UE" = (
/obj/effect/decal/road_marking,
@@ -17725,6 +18266,22 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"Vg" = (
+/obj/effect/decal/curb{
+ dir = 4
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/restaurant)
+"Vh" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/moped{
+ dir = 8;
+ registration_plate = "M35-3772";
+ spawns_with_key = 0
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"Vi" = (
/obj/structure/ledge{
dir = 8
@@ -17762,6 +18319,20 @@
},
/turf/simulated/floor/sidewalk/detail,
/area/point_verdant/outdoors)
+"Vn" = (
+/obj/effect/decal/road_marking/thin{
+ dir = 1
+ },
+/obj/effect/decal/road_marking/thin{
+ dir = 4
+ },
+/obj/effect/decal/road_marking/thin,
+/obj/effect/decal/curb{
+ dir = 9
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Vo" = (
/obj/structure/dressing_divider,
/turf/simulated/floor/carpet/magenta,
@@ -17853,6 +18424,7 @@
/obj/machinery/light/small{
dir = 8
},
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/laundromat)
"Vy" = (
@@ -17868,8 +18440,7 @@
/obj/effect/step_trigger/thrower{
icon_state = "dir_arrow";
tiles = 1;
- dir = 4;
- pixel_y = 0
+ dir = 4
},
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/outdoors)
@@ -18084,6 +18655,7 @@
},
/obj/structure/table/stone/marble,
/obj/effect/floor_decal/corner/green/diagonal,
+/obj/random/dirt_75,
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/restaurant)
"We" = (
@@ -18127,6 +18699,16 @@
},
/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
+"Wk" = (
+/obj/structure/automobile_filler,
+/obj/vehicle/bike/motor/moped/red{
+ dir = 8;
+ registration_plate = "M36-1211";
+ spawns_with_key = 0
+ },
+/obj/effect/decal/road_marking/thin,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Wl" = (
/obj/structure/lattice/catwalk/indoor/planks,
/obj/item/reagent_containers/glass/bucket/wood{
@@ -18144,6 +18726,13 @@
/obj/machinery/door/urban,
/turf/simulated/floor/tiled/freezer,
/area/point_verdant/interior/police)
+"Wn" = (
+/obj/random/dirt_75,
+/obj/effect/decal/road_marking/no_park{
+ dir = 4
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"Wo" = (
/obj/structure/urban/pylon,
/obj/effect/decal/road_marking/no_pass{
@@ -18276,7 +18865,8 @@
/obj/structure/rope_post,
/obj/structure/rope_railing,
/obj/effect/decal/exterior_stairs/right{
- dir = 4
+ dir = 4;
+ icon_state = "stairs-right-top"
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -18342,10 +18932,10 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"WO" = (
+/obj/effect/decal/curb,
/obj/random/dirt_75,
-/obj/structure/flora/bush/konyang_reeds,
-/turf/simulated/floor/exoplanet/konyang,
-/area/point_verdant/outdoors)
+/turf/simulated/floor/lino,
+/area/point_verdant/interior/restaurant)
"WP" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -18490,7 +19080,7 @@
"Xe" = (
/obj/machinery/door/airlock/multi_tile/glass{
dir = 2;
- req_access = list(217)
+ req_access = list(218)
},
/obj/machinery/door/blast/shutters/open{
id = "konyang_police";
@@ -18515,6 +19105,7 @@
/obj/effect/decal/curb/corner{
dir = 4
},
+/obj/random/dirt_75,
/turf/simulated/floor/lino,
/area/point_verdant/interior/restaurant)
"Xh" = (
@@ -18524,7 +19115,7 @@
/obj/structure/chainlink_fence{
dir = 8
},
-/turf/simulated/floor/exoplanet/water/konyang,
+/turf/simulated/floor/exoplanet/water/shallow/konyang,
/area/point_verdant/water)
"Xi" = (
/obj/structure/coatrack{
@@ -18836,6 +19427,16 @@
},
/turf/simulated/floor/tiled/white,
/area/point_verdant/interior/pharmacy)
+"XT" = (
+/obj/effect/decal/road_marking/thin,
+/obj/vehicle/bike/motor/blue{
+ dir = 8;
+ registration_plate = "S35-8084";
+ spawns_with_key = 0
+ },
+/obj/random/dirt_75,
+/turf/simulated/floor/asphalt,
+/area/point_verdant/interior/parking)
"XU" = (
/obj/effect/konyang_waterfall{
pixel_y = -16
@@ -18847,9 +19448,14 @@
/turf/simulated/floor/exoplanet/water/konyang,
/area/point_verdant/water/deep)
"XW" = (
-/obj/effect/decal/road_marking/thin,
-/obj/effect/decal/road_marking/thin{
- dir = 8
+/obj/effect/decal/road_marking{
+ dir = 1
+ },
+/obj/effect/decal/road_marking{
+ dir = 4
+ },
+/obj/effect/decal/curb{
+ dir = 9
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -18875,6 +19481,16 @@
/obj/structure/structural_support,
/turf/simulated/floor/foundation,
/area/point_verdant/interior/offices)
+"Ya" = (
+/obj/structure/bed/stool/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_bar";
+ identifier = "konyang_bar"
+ },
+/turf/simulated/floor/wood,
+/area/point_verdant/interior/bar)
"Yb" = (
/obj/effect/decal/road_marking{
dir = 1
@@ -18961,6 +19577,16 @@
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/spaceport)
+"Yp" = (
+/obj/effect/decal/curb{
+ dir = 1
+ },
+/obj/random/dirt_75,
+/obj/effect/decal/road_marking/thin{
+ dir = 1
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"Yq" = (
/obj/random/dirt_75,
/turf/simulated/floor/lino/diamond,
@@ -19057,7 +19683,7 @@
/turf/simulated/floor/wood,
/area/point_verdant/interior/offices)
"YI" = (
-/obj/structure/stairs/urban,
+/obj/structure/stairs/urban/south,
/turf/simulated/floor/wood,
/area/point_verdant/interior/hotel)
"YJ" = (
@@ -19067,6 +19693,13 @@
},
/turf/simulated/floor/wood,
/area/point_verdant/interior/spaceport)
+"YK" = (
+/obj/machinery/atm{
+ dir = 8;
+ pixel_x = -16
+ },
+/turf/simulated/floor/sidewalk,
+/area/point_verdant/outdoors)
"YL" = (
/obj/effect/decal/curb/corner{
dir = 8
@@ -19177,19 +19810,18 @@
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/offices)
"Za" = (
-/obj/structure/stairs/urban{
- dir = 4;
- icon_state = "stairs-left"
+/obj/structure/stairs/urban/right{
+ icon_state = "stairs-right-bot"
},
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
"Zb" = (
-/obj/effect/decal/road_marking/thin{
- dir = 8
- },
/obj/effect/decal/curb{
dir = 1
},
+/obj/effect/decal/road_marking/thin{
+ dir = 1
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Zc" = (
@@ -19232,10 +19864,7 @@
/obj/effect/decal/road_marking/incline/center{
pixel_y = -17
},
-/obj/structure/stairs/urban/road_ramp/left{
- dir = 8;
- pixel_y = 29
- },
+/obj/structure/stairs/urban/road_ramp/left,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Zh" = (
@@ -19373,8 +20002,9 @@
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices)
"ZB" = (
-/obj/effect/decal/exterior_stairs/center{
- dir = 8
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ layer = 2.01
},
/turf/simulated/floor/sidewalk/flat,
/area/point_verdant/interior/shallow)
@@ -19409,14 +20039,14 @@
pixel_x = 5
},
/obj/machinery/ringer_button{
- pixel_x = 9;
- pixel_y = 0
+ pixel_x = 9
},
/turf/simulated/floor/carpet/red,
/area/point_verdant/interior/hotel)
"ZH" = (
-/obj/effect/decal/exterior_stairs/center{
- dir = 8
+/obj/effect/decal/exterior_stairs/left{
+ dir = 4;
+ layer = 2.01
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
@@ -19438,8 +20068,7 @@
/area/point_verdant/outdoors)
"ZM" = (
/obj/machinery/door/airlock/multi_tile/glass{
- dir = 4;
- req_access = list(217)
+ req_access = list(218)
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/police)
@@ -24274,7 +24903,7 @@ iL
PQ
iL
dd
-Wj
+UD
EQ
cf
cf
@@ -24531,7 +25160,7 @@ iL
PQ
iL
RK
-Wj
+UD
FM
MA
MA
@@ -25045,7 +25674,7 @@ iL
PQ
iL
RK
-Wj
+UD
ia
az
az
@@ -25551,8 +26180,8 @@ az
az
az
pL
-Ar
-Ms
+aJ
+Ed
bm
VA
VA
@@ -25561,12 +26190,12 @@ VA
kc
xS
Ry
-Ar
-Ar
-Ar
-Ar
-Ms
-Ms
+aJ
+aJ
+aJ
+aJ
+Ed
+Ed
Op
az
ps
@@ -25804,9 +26433,9 @@ MA
az
az
pL
-Ar
-Ar
-Ar
+aJ
+aJ
+aJ
pL
MA
MA
@@ -25816,7 +26445,7 @@ iL
PQ
iL
RK
-Wj
+UD
ia
az
MA
@@ -26047,9 +26676,9 @@ az
az
az
az
-Ar
-Ar
-Ar
+aJ
+aJ
+aJ
az
az
az
@@ -26073,7 +26702,7 @@ iL
PQ
iL
dd
-Wj
+UD
FM
MA
MA
@@ -26298,24 +26927,24 @@ az
az
az
pL
-Ar
-Ar
-Ar
-Ar
-Ar
-Ar
-Ar
-MA
-Ar
-Ar
-Ar
-Ar
-Ar
-Ms
-Ms
-Ms
-Ms
-Ms
+aJ
+aJ
+aJ
+aJ
+aJ
+aJ
+aJ
+MA
+aJ
+aJ
+aJ
+aJ
+aJ
+Ed
+Ed
+Ed
+Ed
+Ed
zQ
MA
MA
@@ -29154,8 +29783,8 @@ ws
Za
gB
ML
-Do
-Do
+iN
+iN
fc
Dv
fm
@@ -30175,10 +30804,10 @@ ci
id
AQ
iG
-Vy
-iG
-Vy
+kE
iG
+zE
+Rl
Vy
eo
Vy
@@ -31209,7 +31838,7 @@ aY
eo
Vy
iG
-Vy
+gm
gy
ci
oP
@@ -32020,12 +32649,12 @@ YW
fS
YW
qX
-kz
-YW
-YW
-YW
-fS
-wX
+qX
+lG
+lG
+lG
+KR
+US
Zq
MA
MA
@@ -32282,7 +32911,7 @@ UK
UK
UK
UK
-Dv
+Ln
fm
MA
wK
@@ -32539,7 +33168,7 @@ pB
Px
Px
UK
-Dv
+Ln
Dz
ps
lL
@@ -32796,7 +33425,7 @@ nA
Px
Px
UK
-Dv
+Ln
fm
MA
az
@@ -33053,7 +33682,7 @@ pB
Px
Px
UK
-Dv
+Ln
Dz
MA
az
@@ -33310,7 +33939,7 @@ BL
Pj
tH
UK
-Dv
+Ln
fm
az
lL
@@ -33567,7 +34196,7 @@ jB
HY
yM
UK
-Dv
+Ln
fm
az
az
@@ -33824,7 +34453,7 @@ UK
xi
fT
UK
-Dv
+Ln
Dz
dY
MA
@@ -34071,7 +34700,7 @@ UK
jz
fW
BT
-BT
+YK
BT
BT
BT
@@ -34081,7 +34710,7 @@ Gs
ve
Ja
Kh
-Dv
+Ln
fm
MA
MA
@@ -34340,7 +34969,7 @@ OC
ot
rF
Nu
-bD
+Ga
Ga
Ga
Ga
@@ -35063,10 +35692,10 @@ GJ
ll
Tb
em
-rJ
+kx
Zg
-rJ
-rJ
+qn
+qn
vt
ur
Dz
@@ -35295,6 +35924,16 @@ Sf
Sf
Sf
Sf
+xy
+xy
+xy
+xy
+xy
+xy
+xy
+xy
+xy
+xy
Sf
Sf
Sf
@@ -35304,19 +35943,9 @@ Sf
Sf
Sf
Sf
-Sf
-Sf
-Sf
-Sf
-Sf
-Sf
-Sf
-Sf
-Sf
-Sf
-Sf
-Sf
-Sf
+xy
+xy
+xy
mw
BT
BT
@@ -36339,12 +36968,12 @@ az
az
az
MA
-PG
-YW
-YW
-YW
-YW
-YW
+Uy
+lG
+lG
+lG
+lG
+lG
Ob
BT
iz
@@ -38129,10 +38758,10 @@ BT
hb
iL
bb
+El
Nd
zh
-zh
-zh
+mg
UJ
pf
BT
@@ -38387,9 +39016,9 @@ ve
bx
bb
El
-XW
-zh
-eX
+bx
+iL
+bx
Zb
Ir
Ir
@@ -38640,14 +39269,14 @@ MA
MA
vQ
BT
-dO
+Ne
bx
iL
El
Si
bb
gp
-Ja
+Dq
Ir
Ir
Vp
@@ -38897,14 +39526,14 @@ MA
MA
vQ
BT
-ve
+mK
iL
iL
-Ne
-bx
iL
-gp
-uV
+iL
+iL
+BW
+Yp
Ir
Ir
Vp
@@ -39161,7 +39790,7 @@ iL
iL
iL
bb
-uV
+Yp
Ir
Ir
fF
@@ -39185,7 +39814,7 @@ oq
wB
wB
cX
-ok
+Oa
uV
gK
wg
@@ -39414,11 +40043,11 @@ bh
dO
iL
iL
-iL
-iL
-iL
-bb
-uV
+El
+JL
+km
+uv
+tE
bh
Ir
fF
@@ -39466,7 +40095,7 @@ UV
uO
BT
BT
-LN
+Lp
iL
iL
uf
@@ -39671,11 +40300,11 @@ BT
oB
iL
iL
-Ne
-bx
-tE
-bx
-Ja
+El
+iL
+bb
+iL
+Zb
bh
Ir
fF
@@ -39699,7 +40328,7 @@ Ib
sk
wB
Xd
-ec
+se
tS
gK
ja
@@ -39928,11 +40557,11 @@ BT
oB
iL
iL
-Ne
-bx
-ro
-Si
-uV
+El
+Dn
+Wk
+xo
+tE
wh
Ir
Vp
@@ -40189,7 +40818,7 @@ DN
ww
Ue
nj
-aX
+Vn
wh
Ir
Vp
@@ -40214,7 +40843,7 @@ Ll
dL
lu
oT
-tS
+mj
gK
gK
gK
@@ -40445,13 +41074,13 @@ Ja
pf
BT
BT
-Ir
+FS
SJ
wh
wh
Ir
Vp
-GM
+JU
My
Vp
Oo
@@ -40709,7 +41338,7 @@ Ir
Ir
fW
fW
-BT
+GM
fF
xN
xN
@@ -40728,7 +41357,7 @@ ue
XH
ue
fd
-aX
+lS
gK
nO
gR
@@ -40751,7 +41380,7 @@ PD
uO
OQ
BT
-LN
+bD
iL
iL
uf
@@ -41512,7 +42141,7 @@ fG
BT
uO
At
-aj
+nG
Oe
uO
OE
@@ -41706,7 +42335,7 @@ aq
aq
GA
bT
-WO
+fW
hd
Al
Al
@@ -41963,7 +42592,7 @@ vR
vR
EX
bT
-Oq
+Mc
Al
Al
Al
@@ -42220,7 +42849,7 @@ Uc
Uc
Uc
bT
-Oq
+BT
Oq
Al
Al
@@ -44287,8 +44916,8 @@ od
Al
Al
RU
-jf
-By
+Xt
+On
xy
xy
xy
@@ -44544,8 +45173,8 @@ od
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
Mw
az
@@ -44801,8 +45430,8 @@ xu
Al
Al
ut
-Dv
-fm
+Ln
+Dx
MA
MA
az
@@ -44843,8 +45472,8 @@ OW
LD
eV
xj
-zk
-LD
+eV
+Ya
Dw
oV
mR
@@ -45058,8 +45687,8 @@ xu
Oq
Oq
bX
-ur
-Dz
+JN
+Di
MA
az
az
@@ -45315,8 +45944,8 @@ xu
Al
Oq
bX
-ur
-Dz
+JN
+Di
MA
az
az
@@ -45331,7 +45960,7 @@ iL
Oi
ro
Oi
-iL
+uF
Oi
ro
Oi
@@ -45572,8 +46201,8 @@ xu
Al
Oq
bX
-ur
-Dz
+JN
+Di
MA
Lo
lL
@@ -45596,7 +46225,7 @@ Kr
BT
bP
Yz
-Eg
+tZ
DO
YS
OB
@@ -45829,8 +46458,8 @@ xu
Oq
Oq
bX
-ur
-fm
+JN
+Dx
MA
wK
lL
@@ -45852,12 +46481,12 @@ NM
BT
BT
bP
-Kg
-Kg
-pk
+Ms
+Ms
+WO
YS
OB
-BT
+Fn
BT
LN
iL
@@ -46086,8 +46715,8 @@ Al
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
wK
az
@@ -46109,7 +46738,7 @@ SH
BT
BT
bP
-ZN
+Qj
aR
pk
YS
@@ -46343,8 +46972,8 @@ Al
Al
Al
ut
-ur
-Dz
+JN
+Di
MA
wK
az
@@ -46436,13 +47065,13 @@ Nc
Hb
Dz
wK
-az
-lL
-lL
-az
-az
-az
-az
+MA
+wK
+wK
+MA
+MA
+MA
+MA
oy
BT
BT
@@ -46600,8 +47229,8 @@ xu
Al
BP
bX
-ur
-Dz
+JN
+Di
MA
lL
az
@@ -46693,12 +47322,12 @@ Nc
ph
fm
wK
-az
-az
-lL
-az
-az
-az
+MA
+MA
+wK
+MA
+MA
+MA
MA
oy
BT
@@ -46857,8 +47486,8 @@ xu
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
Mw
az
@@ -46876,8 +47505,8 @@ YS
YS
gc
YS
-YS
-YS
+GN
+GN
Sw
bn
Kg
@@ -46949,19 +47578,19 @@ WD
iH
MF
es
-gO
-gO
-gO
-gO
-gO
-gO
-gO
-gO
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
tw
QX
mk
-Cy
-Cy
+hK
+hK
Ik
Ox
KX
@@ -47114,8 +47743,8 @@ xu
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
MA
lL
@@ -47135,13 +47764,13 @@ OB
LR
OB
YS
-JV
+PS
pT
pT
pT
ji
YS
-HI
+va
vN
BT
LN
@@ -47371,8 +48000,8 @@ Al
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
az
lL
@@ -47393,12 +48022,12 @@ Qd
OB
Ba
dp
+GN
+GN
YS
YS
YS
-YS
-YS
-YS
+GN
vN
BT
LN
@@ -47628,8 +48257,8 @@ Al
Al
Al
bX
-Dv
-fm
+Ln
+Dx
MA
az
lL
@@ -47651,10 +48280,10 @@ OB
oO
Uk
YS
-YS
+GN
de
do
-YS
+GN
Bs
OB
GK
@@ -47699,7 +48328,7 @@ Fq
Ir
od
Rx
-hK
+yl
RT
su
wz
@@ -47885,8 +48514,8 @@ xu
Al
Al
ut
-ur
-Dz
+JN
+Di
MA
az
eT
@@ -48142,8 +48771,8 @@ xu
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
az
lL
@@ -48157,9 +48786,9 @@ gi
Zm
bP
cA
-BE
-BE
-BE
+zk
+zk
+zk
BE
BE
BE
@@ -48399,8 +49028,8 @@ xu
Al
Oq
bX
-ur
-Dz
+JN
+Di
MA
MA
cQ
@@ -48499,7 +49128,7 @@ vJ
vJ
vJ
vJ
-yQ
+kz
su
su
su
@@ -48656,8 +49285,8 @@ xu
Oq
Oq
bX
-ur
-Dz
+JN
+Di
MA
MA
cQ
@@ -48756,7 +49385,7 @@ vJ
vJ
vJ
vJ
-yQ
+kz
su
su
su
@@ -48913,8 +49542,8 @@ Oq
Oq
Oq
bX
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -49170,8 +49799,8 @@ Oq
Oq
Oq
bX
-ur
-fm
+JN
+Dx
MA
MA
az
@@ -49193,7 +49822,7 @@ rj
BE
Ky
YS
-Sw
+TS
hA
TK
pk
@@ -49232,7 +49861,7 @@ uZ
nl
yT
KN
-Ir
+Av
LN
iL
Xy
@@ -49427,8 +50056,8 @@ xu
Oq
Al
bX
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -49440,7 +50069,7 @@ zS
YV
CT
OB
-xn
+xm
xn
No
eH
@@ -49450,7 +50079,7 @@ BE
oS
MI
qt
-Sw
+TS
Kg
Kg
pk
@@ -49475,7 +50104,7 @@ tV
hE
rg
BT
-LN
+rk
iL
iL
Fq
@@ -49684,8 +50313,8 @@ xu
Al
Al
ut
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -49697,18 +50326,18 @@ Ha
at
yu
vl
-xn
+xm
xn
dm
-BE
-BE
-BE
-BE
+zk
+zk
+zk
+zk
Qy
Gf
OB
Sw
-AD
+qp
au
pk
bw
@@ -49770,7 +50399,7 @@ Lm
Lm
Lu
jN
-su
+sB
su
su
su
@@ -49941,8 +50570,8 @@ xu
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -49957,16 +50586,16 @@ OB
Wd
Iy
Bi
+zk
BE
BE
-BE
-BE
+zk
BE
BE
OB
JV
pT
-pT
+Vg
ji
Kg
Kg
@@ -50027,7 +50656,7 @@ Yw
Yw
Yw
jN
-su
+sB
su
su
Mi
@@ -50042,7 +50671,7 @@ vJ
vJ
vJ
vJ
-vJ
+ZI
su
Hl
Hl
@@ -50198,8 +50827,8 @@ xu
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
MA
MA
@@ -50245,7 +50874,7 @@ aD
aD
aD
tV
-BT
+Fn
mV
bb
bb
@@ -50284,7 +50913,7 @@ kR
OD
Tr
jN
-su
+sB
su
HC
TX
@@ -50299,8 +50928,8 @@ vJ
vJ
vJ
vJ
-vJ
-su
+ZI
+sB
Hl
Ws
su
@@ -50455,8 +51084,8 @@ Al
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
MA
MA
@@ -50556,7 +51185,7 @@ vJ
vJ
vJ
vJ
-vJ
+ZI
su
Hl
Hl
@@ -50712,8 +51341,8 @@ xu
Al
Al
bX
-ur
-fm
+JN
+Dx
MA
MA
MA
@@ -50969,8 +51598,8 @@ xu
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
MA
MA
@@ -51226,20 +51855,20 @@ xu
xu
Oq
bX
-ur
-Dz
+JN
+Di
Mw
MA
MA
Xh
-sa
-sa
-sa
-sa
-sa
-sa
-sa
-sa
+YP
+YP
+YP
+YP
+YP
+YP
+YP
+YP
YP
YP
YP
@@ -51458,13 +52087,13 @@ cf
cf
cf
cf
-MA
-az
-az
-az
-az
-wK
-wL
+tq
+tq
+tq
+tq
+tq
+tr
+YD
Zc
Al
Oq
@@ -51483,8 +52112,8 @@ Al
xu
Oq
Qx
-ur
-Dz
+JN
+Di
MA
wK
wK
@@ -51496,7 +52125,7 @@ az
az
az
az
-az
+MA
wK
wK
MA
@@ -51721,7 +52350,7 @@ lL
az
MA
wK
-wL
+YD
jq
BP
Al
@@ -51740,8 +52369,8 @@ xu
xu
Oq
Qx
-ur
-Dz
+JN
+Di
MA
wK
wK
@@ -51796,10 +52425,10 @@ BT
BT
bh
jk
-rs
+cw
iT
rs
-rs
+eX
Gc
Ir
pU
@@ -51972,13 +52601,13 @@ cf
cf
cf
cf
-MA
+tq
az
lL
az
MA
MA
-wL
+YD
Zc
Oq
Al
@@ -51997,8 +52626,8 @@ xu
Al
Al
Qx
-ur
-Dz
+JN
+Di
MA
wK
wK
@@ -52229,13 +52858,13 @@ cf
cf
cf
cf
-az
+tq
az
lL
az
MA
MA
-wL
+YD
Zc
Al
Al
@@ -52254,8 +52883,8 @@ Al
Al
Al
Qx
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -52297,7 +52926,7 @@ nI
kP
CQ
Kv
-xd
+Dp
jo
OT
cg
@@ -52331,7 +52960,7 @@ su
SQ
vJ
vJ
-yQ
+kz
im
kt
kt
@@ -52486,13 +53115,13 @@ cf
cf
cf
cf
-az
+tq
az
az
MA
Mw
MA
-wL
+YD
Zc
Al
Oq
@@ -52511,8 +53140,8 @@ xu
Oq
Al
Qx
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -52588,7 +53217,7 @@ su
SQ
vJ
vJ
-yQ
+kz
KH
Bz
Bz
@@ -52743,13 +53372,13 @@ cf
cf
cf
cf
-az
+tq
az
az
MA
MA
wK
-wL
+YD
Zc
Oq
BP
@@ -52768,8 +53397,8 @@ xu
Oq
Al
bX
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -53000,13 +53629,13 @@ cf
cf
cf
cf
-az
+tq
lL
az
MA
MA
wK
-wL
+YD
Zc
Al
Al
@@ -53025,8 +53654,8 @@ xu
Oq
Oq
bX
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -53114,6 +53743,9 @@ fs
vJ
vJ
vJ
+ZI
+ZI
+ZI
vJ
vJ
vJ
@@ -53122,10 +53754,7 @@ vJ
vJ
vJ
vJ
-vJ
-vJ
-vJ
-fB
+IC
fB
gh
fs
@@ -53257,13 +53886,13 @@ cf
cf
cf
cf
-az
+tq
lL
az
az
MA
wK
-wL
+YD
jq
Al
Al
@@ -53282,8 +53911,8 @@ xu
Al
Oq
bX
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -53372,7 +54001,7 @@ yX
yX
Eo
Eo
-Eo
+MH
Eo
Eo
Eo
@@ -53514,21 +54143,21 @@ cf
cf
cf
cf
-az
+tq
lL
ps
az
MA
MA
-wL
+YD
Zc
Oq
Al
Ir
-BQ
-zE
-zE
-bu
+LN
+iL
+bb
+Wf
bu
bu
Kr
@@ -53539,8 +54168,8 @@ xu
Al
Oq
bX
-ur
-Dz
+JN
+Di
MA
MA
az
@@ -53771,21 +54400,21 @@ cf
cf
cf
cf
-az
-az
-az
-az
-az
-MA
-wL
+tq
+tq
+tq
+tq
+tq
+tq
+YD
SI
Oq
Al
Ir
-Ir
-BT
-BT
-BT
+LV
+hf
+qx
+Fq
pf
BT
BT
@@ -53796,8 +54425,8 @@ xu
Al
Fr
bX
-ur
-Dz
+JN
+Di
MA
MA
Mw
@@ -54039,10 +54668,10 @@ cf
cf
cf
Ir
-Ir
-BT
-fW
-fW
+LN
+bb
+iL
+Fq
BT
Ir
Al
@@ -54053,8 +54682,8 @@ xu
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
MA
MA
@@ -54296,10 +54925,10 @@ cf
cf
cf
Ir
-Ir
-Ir
-fW
-fW
+gs
+LT
+AN
+Fq
Ir
Ir
Al
@@ -54310,8 +54939,8 @@ od
Al
Oq
bX
-ur
-Dz
+JN
+Di
MA
MA
MA
@@ -54553,10 +55182,10 @@ cf
cf
cf
Ir
-Ir
-Ir
-BT
-BT
+Rc
+Sk
+BQ
+XW
Ir
Ir
Al
@@ -54567,8 +55196,8 @@ od
oH
Oq
bX
-ur
-Dz
+JN
+Di
MA
wK
wK
@@ -54808,12 +55437,12 @@ cf
cf
cf
cf
-cf
-Ir
-Ir
+Do
Ir
BT
-fW
+BT
+Rr
+SJ
wh
Ir
Oq
@@ -54824,8 +55453,8 @@ od
Al
Al
bX
-ur
-Dz
+JN
+Di
MA
wK
wK
@@ -55065,8 +55694,8 @@ cf
cf
cf
cf
-cf
-Ir
+Do
+uH
Ir
BT
BT
@@ -55081,7 +55710,7 @@ od
od
od
wx
-Mr
+QT
Ri
qz
qz
@@ -55165,18 +55794,18 @@ uz
RN
yz
RN
-RN
-RN
-RN
-RN
-RN
-yz
-yz
-yz
-yz
-yz
-RN
-RN
+Jh
+nF
+BF
+nF
+nF
+Wn
+eI
+nF
+Vh
+SR
+fD
+nF
RN
RN
cm
@@ -55322,7 +55951,7 @@ cf
cf
cf
cf
-cf
+Do
Ir
Ir
BT
@@ -55422,18 +56051,18 @@ uz
RN
yz
RN
-HW
-Pi
-HW
+nF
RN
-HW
+RN
+yz
+yz
lE
-Pi
-HW
RN
-HW
+yz
+yz
RN
-HW
+RN
+nF
RN
RN
cm
@@ -55679,18 +56308,18 @@ ov
RN
RN
RN
-HW
-eW
-HW
-RN
-HW
-lE
-eW
-HW
-RN
-HW
-RN
-HW
+Rs
+XT
+mH
+qf
+nF
+nm
+mI
+iX
+sC
+zO
+Es
+nF
RN
RN
cm
@@ -55936,18 +56565,18 @@ Mx
RN
cV
pS
-MX
-Vu
-MX
-pS
-MX
-kd
-Vu
-MX
-pS
-MX
-pS
-MX
+Qo
+Qo
+Qo
+Qo
+Qo
+Ku
+ol
+LB
+LB
+LB
+Qo
+Qo
mp
gv
cm
@@ -56198,7 +56827,7 @@ Eo
pu
Eo
Eo
-pu
+PY
Eo
Eo
pu
@@ -56352,11 +56981,11 @@ cf
cf
cf
Xq
-ag
wQ
wQ
-WM
-sE
+wQ
+wQ
+wQ
jy
jy
jy
@@ -56609,7 +57238,7 @@ cf
cf
cf
Xq
-ag
+wQ
wQ
wQ
wQ
@@ -56866,7 +57495,7 @@ cf
cf
cf
Xq
-uv
+wQ
wQ
wQ
wQ
@@ -57123,7 +57752,6 @@ cf
cf
cf
Xq
-uv
wQ
wQ
wQ
@@ -57137,262 +57765,263 @@ wQ
wQ
wQ
wQ
-WM
-Au
-jy
-jy
-jy
-qN
-ib
-wQ
-wQ
-wQ
-wQ
-WM
-Au
-jy
-jy
-jy
-qN
-ib
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-WM
-Au
-jy
-jy
-jy
-qN
-ib
-wQ
-wQ
-wQ
-wQ
-WM
-Au
-jy
-jy
-jy
-qN
-ib
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-Cs
-BT
-yR
-XI
-xz
-vJ
-vJ
-vJ
-vJ
-vJ
-pu
-Eo
-kG
-RN
-RN
-HW
-eW
-jw
-Eo
-Eo
-xK
-lE
-eW
-HW
-eW
-TL
-RN
-HW
-RN
-RN
-cm
-Eo
-Eo
-Mx
-RN
-Ze
-RN
-cm
-Eo
-Eo
-vJ
-vJ
-vJ
-vJ
-vJ
-vJ
-vJ
-vJ
-Oq
-Al
-Al
-BP
-Al
-Al
-MA
-MA
-Al
-Al
-Al
-Al
-Al
-Al
-Al
-Al
-Al
-Al
-Al
-Al
-Al
-BP
-Al
-Al
-Oq
-Al
-Al
-Al
-Al
-Al
-Oq
-Oq
-Oq
-Al
-Al
-BP
-Al
-Al
-Oq
-Al
-Al
-Al
-Al
-Al
-Al
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-"}
-(148,1,1) = {"
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-Xq
-ag
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
-wQ
+wQ
+WM
+Au
+jy
+jy
+jy
+qN
+ib
+wQ
+wQ
+wQ
+wQ
+WM
+Au
+jy
+jy
+jy
+qN
+ib
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+WM
+Au
+jy
+jy
+jy
+qN
+ib
+wQ
+wQ
+wQ
+wQ
+WM
+Au
+jy
+jy
+jy
+qN
+ib
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+Cs
+BT
+yR
+XI
+xz
+vJ
+vJ
+vJ
+vJ
+vJ
+pu
+Eo
+kG
+RN
+RN
+HW
+eW
+jw
+Eo
+Eo
+xK
+lE
+eW
+HW
+eW
+TL
+RN
+HW
+RN
+RN
+cm
+Eo
+Eo
+Mx
+RN
+Ze
+RN
+cm
+Eo
+Eo
+vJ
+vJ
+vJ
+vJ
+vJ
+vJ
+vJ
+vJ
+Oq
+Al
+Al
+BP
+Al
+Al
+MA
+MA
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+BP
+Al
+Al
+Oq
+Al
+Al
+Al
+Al
+Al
+Oq
+Oq
+Oq
+Al
+Al
+BP
+Al
+Al
+Oq
+Al
+Al
+Al
+Al
+Al
+Al
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+"}
+(148,1,1) = {"
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+cf
+Xq
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
+wQ
wQ
wQ
wQ
@@ -58242,7 +58871,7 @@ IL
SQ
vJ
vJ
-yQ
+kz
Eo
Eo
uz
@@ -58499,7 +59128,7 @@ IL
SQ
vJ
vJ
-yQ
+kz
Eo
Eo
uz
diff --git a/maps/away/away_site/konyang/point_verdant/point_verdant-3.dmm b/maps/away/away_site/konyang/point_verdant/point_verdant-3.dmm
index b4ff71146b5..1fd504db548 100644
--- a/maps/away/away_site/konyang/point_verdant/point_verdant-3.dmm
+++ b/maps/away/away_site/konyang/point_verdant/point_verdant-3.dmm
@@ -325,10 +325,6 @@
/obj/structure/bed/padded,
/obj/item/bedsheet/black,
/obj/random/dirt_75,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_vendor";
- identifier = "konyang_vendor"
- },
/turf/simulated/floor/carpet/lightblue,
/area/point_verdant/interior/hotel)
"ca" = (
@@ -348,6 +344,10 @@
/obj/structure/bed/stool/chair/office/light{
dir = 4
},
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_clinic";
+ identifier = "konyang_clinic"
+ },
/turf/simulated/floor/tiled,
/area/point_verdant/interior/robotics)
"cl" = (
@@ -594,7 +594,6 @@
/turf/simulated/floor/tiled,
/area/point_verdant/interior/robotics)
"eu" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -605,6 +604,7 @@
dir = 8
},
/obj/random/dirt_75,
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet/orange,
/area/point_verdant/interior/hotel)
"ev" = (
@@ -735,17 +735,6 @@
/obj/structure/undies_wardrobe,
/turf/simulated/floor/wood,
/area/point_verdant/interior/arcade)
-"fr" = (
-/obj/structure/rod_railing{
- name = "imposing rod railing";
- layer = 9.1;
- dir = 8
- },
-/obj/structure/road_barrier/bot_end{
- dir = 1
- },
-/turf/simulated/floor/sidewalk,
-/area/point_verdant/outdoors)
"fs" = (
/obj/structure/table/wood,
/obj/item/towel{
@@ -923,6 +912,12 @@
/obj/item/reagent_containers/glass/bucket,
/turf/simulated/floor/wood,
/area/point_verdant/interior/laundromat)
+"gj" = (
+/obj/structure/automobile/random{
+ dir = 8
+ },
+/turf/simulated/floor/asphalt,
+/area/point_verdant/outdoors)
"gn" = (
/obj/effect/decal/curb{
dir = 1
@@ -974,6 +969,12 @@
/obj/effect/decal/exterior_stairs/center,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"gt" = (
+/obj/structure/sign/emergency/evacuation/stairs{
+ dir = 2
+ },
+/turf/simulated/floor/concrete,
+/area/point_verdant/outdoors)
"gv" = (
/obj/structure/ledge/quarter/corner{
dir = 4
@@ -1209,11 +1210,6 @@
/obj/item/device/paicard,
/turf/simulated/floor/lino,
/area/point_verdant/interior/restaurant)
-"iC" = (
-/obj/effect/decal/exterior_stairs/left,
-/obj/effect/decal/exterior_stairs/center,
-/turf/simulated/floor/asphalt,
-/area/point_verdant/outdoors)
"iJ" = (
/obj/machinery/door/urban,
/turf/simulated/floor/wood,
@@ -1668,6 +1664,13 @@
},
/turf/simulated/open,
/area/point_verdant/outdoors)
+"mS" = (
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_gwok";
+ identifier = "konyang_gwok"
+ },
+/turf/simulated/floor/carpet/magenta,
+/area/point_verdant/interior/restaurant)
"mU" = (
/obj/machinery/door/urban,
/obj/machinery/door/blast/regular/open{
@@ -1818,6 +1821,10 @@
/area/point_verdant/interior/police)
"oe" = (
/obj/effect/decal/road_marking,
+/obj/vehicle/bike/motor/moped/red{
+ dir = 8;
+ spawns_with_key = 0
+ },
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"of" = (
@@ -1894,6 +1901,12 @@
/obj/item/device/analyzer,
/turf/simulated/floor/tiled/full,
/area/point_verdant/interior/spaceport)
+"oU" = (
+/obj/structure/bed/stool/chair/sofa/right/brown{
+ dir = 4
+ },
+/turf/simulated/floor/carpet/magenta,
+/area/point_verdant/interior/restaurant)
"oW" = (
/obj/structure/table/rack/clothing{
layer = 3.1
@@ -1901,6 +1914,22 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/item/clothing/accessory/konyang,
+/obj/item/clothing/suit/storage/hooded/wintercoat/konyang,
+/obj/item/clothing/suit/storage/toggle/konyang/akira,
+/obj/item/clothing/suit/storage/toggle/konyang/dbjacket,
+/obj/item/clothing/suit/storage/toggle/konyang/dbjacket/blue,
+/obj/item/clothing/under/konyang/male,
+/obj/item/clothing/under/konyang/male,
+/obj/item/clothing/under/konyang/blue,
+/obj/item/clothing/under/konyang/male/sleeveless,
+/obj/item/clothing/under/konyang/pink,
+/obj/item/clothing/under/konyangdresstraditional/green,
+/obj/item/clothing/under/konyangdresstraditional/red,
+/obj/item/clothing/under/konyangdresstraditional/national/vest,
+/obj/random/colored_jumpsuit,
+/obj/random/colored_jumpsuit,
+/obj/random/colored_jumpsuit,
/turf/simulated/floor/wood,
/area/point_verdant/interior/tailor)
"oY" = (
@@ -2071,7 +2100,6 @@
/turf/simulated/floor/wood,
/area/point_verdant/interior/laundromat)
"qK" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -2082,6 +2110,7 @@
dir = 4
},
/obj/item/storage/box/fancy/cigarettes/dromedaryco,
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet/magenta,
/area/point_verdant/interior/hotel)
"qO" = (
@@ -2142,7 +2171,6 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"ri" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -2152,6 +2180,7 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet/lightblue,
/area/point_verdant/interior/hotel)
"rj" = (
@@ -2443,15 +2472,17 @@
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
"tD" = (
-/obj/effect/decal/road_marking/turn_left{
- dir = 8
- },
-/turf/simulated/floor/concrete,
-/area/point_verdant/outdoors)
+/obj/random/dirt_75,
+/obj/machinery/icecream_vat,
+/turf/simulated/floor/lino/diamond,
+/area/point_verdant/interior/minimart)
"tG" = (
/obj/machinery/light/small{
dir = 8
},
+/obj/structure/bed/stool/chair/sofa/brown{
+ dir = 4
+ },
/turf/simulated/floor/carpet/magenta,
/area/point_verdant/interior/restaurant)
"tH" = (
@@ -2916,9 +2947,6 @@
pixel_x = 12;
pixel_y = 24
},
-/turf/simulated/floor/sidewalk,
-/area/point_verdant/outdoors)
-"xk" = (
/obj/structure/road_barrier,
/turf/simulated/floor/sidewalk,
/area/point_verdant/outdoors)
@@ -3004,6 +3032,10 @@
},
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"yd" = (
+/obj/structure/bed/stool/chair/sofa/left/brown,
+/turf/simulated/floor/carpet/magenta,
+/area/point_verdant/interior/restaurant)
"yg" = (
/obj/effect/floor_decal/spline/fancy/wood{
dir = 8
@@ -3034,7 +3066,6 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"yG" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -3045,6 +3076,7 @@
dir = 4
},
/obj/random/dirt_75,
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet,
/area/point_verdant/interior/hotel)
"yJ" = (
@@ -3363,6 +3395,14 @@
},
/turf/simulated/floor/concrete,
/area/point_verdant/outdoors)
+"Bh" = (
+/obj/machinery/atm{
+ dir = 8;
+ pixel_x = -16;
+ pixel_y = 4
+ },
+/turf/simulated/floor/concrete,
+/area/point_verdant/outdoors)
"Bi" = (
/obj/structure/ledge/quarter{
dir = 1
@@ -3382,7 +3422,6 @@
/turf/simulated/open,
/area/point_verdant/outdoors)
"Bn" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -3393,6 +3432,7 @@
dir = 4
},
/obj/random/dirt_75,
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet/darkblue,
/area/point_verdant/interior/hotel)
"Bp" = (
@@ -4130,6 +4170,12 @@
},
/turf/simulated/floor/tiled,
/area/point_verdant/interior/offices)
+"FX" = (
+/obj/structure/sign/emergency/evacuation/stairs{
+ dir = 2
+ },
+/turf/simulated/floor/concrete/square,
+/area/point_verdant/outdoors)
"Ge" = (
/obj/structure/undies_wardrobe,
/turf/simulated/floor/wood,
@@ -4170,9 +4216,15 @@
/turf/simulated/floor/plating,
/area/point_verdant/outdoors)
"Gr" = (
-/obj/effect/decal/road_marking/turn_left,
-/turf/simulated/floor/concrete/square,
-/area/point_verdant/outdoors)
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_gwok";
+ identifier = "konyang_gwok"
+ },
+/obj/structure/bed/stool/chair/sofa/corner/concave/brown{
+ dir = 4
+ },
+/turf/simulated/floor/carpet/magenta,
+/area/point_verdant/interior/restaurant)
"Gs" = (
/obj/effect/decal/road_marking/no_pass{
dir = 1
@@ -4865,10 +4917,6 @@
/obj/structure/bed/padded,
/obj/item/bedsheet/black,
/obj/random/dirt_75,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_vendor";
- identifier = "konyang_vendor"
- },
/turf/simulated/floor/carpet/darkblue,
/area/point_verdant/interior/hotel)
"LZ" = (
@@ -5236,10 +5284,6 @@
},
/turf/simulated/floor/roofing_tiles,
/area/point_verdant/outdoors)
-"OG" = (
-/obj/effect/decal/exterior_stairs/right,
-/turf/simulated/floor/asphalt,
-/area/point_verdant/outdoors)
"OI" = (
/obj/structure/ledge/roof{
dir = 9
@@ -5448,10 +5492,6 @@
pixel_y = 4
},
/obj/random/dirt_75,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_vendor";
- identifier = "konyang_vendor"
- },
/turf/simulated/floor/carpet,
/area/point_verdant/interior/hotel)
"Qg" = (
@@ -5632,10 +5672,6 @@
"Sk" = (
/obj/structure/bed/padded,
/obj/item/bedsheet/black,
-/obj/effect/ghostspawpoint{
- name = "igs - konyang_vendor";
- identifier = "konyang_vendor"
- },
/turf/simulated/floor/carpet/magenta,
/area/point_verdant/interior/hotel)
"Sn" = (
@@ -5963,6 +5999,14 @@
/obj/effect/decal/curb,
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
+"UW" = (
+/obj/structure/closet/crate/freezer/kois/rations,
+/obj/item/paper{
+ info = "For any visiting Vaurca, from Einstein Engines.";
+ name = "small note"
+ },
+/turf/simulated/floor/sidewalk/dark/detail,
+/area/point_verdant/interior/offices)
"UY" = (
/obj/structure/rod_railing,
/obj/structure/table/wood,
@@ -6108,10 +6152,6 @@
/obj/structure/closet/crate/secure/large,
/turf/simulated/floor/asphalt,
/area/point_verdant/interior/shallow)
-"VY" = (
-/obj/effect/decal/exterior_stairs/left,
-/turf/simulated/floor/asphalt,
-/area/point_verdant/outdoors)
"We" = (
/obj/machinery/door/urban/glass_sliding/double,
/obj/effect/floor_decal/spline/fancy/wood{
@@ -6164,6 +6204,15 @@
},
/turf/simulated/floor/beach/water/pool,
/area/point_verdant/outdoors)
+"Wp" = (
+/obj/effect/floor_decal/corner/grey/diagonal,
+/obj/random/dirt_75,
+/obj/effect/ghostspawpoint{
+ name = "igs - konyang_clinic";
+ identifier = "konyang_clinic"
+ },
+/turf/simulated/floor/tiled,
+/area/point_verdant/interior/robotics)
"Wq" = (
/obj/structure/ledge/roof{
dir = 5
@@ -6431,6 +6480,12 @@
/obj/machinery/light/small/floor,
/turf/simulated/floor/roofing_tiles,
/area/point_verdant/outdoors)
+"Yh" = (
+/obj/structure/sign/emergency/evacuation/stairs{
+ dir = 1
+ },
+/turf/simulated/floor/concrete,
+/area/point_verdant/outdoors)
"Yi" = (
/obj/item/toy/desk/fan{
pixel_y = 3;
@@ -6489,7 +6544,6 @@
/turf/simulated/floor/asphalt,
/area/point_verdant/outdoors)
"Yu" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/towel,
/obj/item/towel,
/obj/item/towel,
@@ -6502,6 +6556,7 @@
/obj/machinery/light/small{
dir = 8
},
+/obj/structure/closet/cabinet,
/turf/simulated/floor/carpet/aquablue,
/area/point_verdant/interior/hotel)
"Yv" = (
@@ -6656,7 +6711,15 @@
/area/point_verdant/outdoors)
"ZG" = (
/obj/structure/table/wood,
-/obj/item/towel,
+/obj/item/towel{
+ pixel_x = -3;
+ pixel_y = 4
+ },
+/obj/item/key/bike/moped{
+ pixel_x = 6;
+ pixel_y = -11;
+ key_data = "M99-7614"
+ },
/turf/simulated/floor/wood,
/area/point_verdant/interior/restaurant)
"ZH" = (
@@ -16552,8 +16615,8 @@ fx
fx
fx
fx
-fx
-fr
+hw
+Jx
rx
DD
Ni
@@ -20908,7 +20971,7 @@ Ag
gQ
rn
jm
-jP
+UW
jP
AT
HS
@@ -21431,7 +21494,7 @@ pe
hw
hw
UV
-DD
+gj
DD
AV
rg
@@ -21691,9 +21754,9 @@ UV
DD
oe
aS
+Jx
hw
hw
-Jx
rx
DD
Ni
@@ -21950,7 +22013,7 @@ Sy
uT
xh
hw
-xk
+hw
rx
DD
Ni
@@ -22205,14 +22268,14 @@ An
An
An
An
-An
-An
mO
Cw
Cw
Cw
Cw
Cw
+Cw
+Cw
fb
nI
Cw
@@ -28134,7 +28197,7 @@ jV
jV
jV
it
-ux
+Wp
ad
hZ
Ey
@@ -28914,7 +28977,7 @@ mB
Ml
qZ
Xx
-tH
+tD
rC
vJ
Qn
@@ -34278,9 +34341,9 @@ ww
ah
jN
ly
-aw
+Gr
tG
-aw
+oU
gU
Ey
Ey
@@ -34535,8 +34598,8 @@ ww
fS
jN
eR
-aw
-aw
+yd
+mS
aw
gU
Ey
@@ -38448,7 +38511,7 @@ nf
DC
DC
DC
-tD
+DC
Dx
ju
ju
@@ -38967,7 +39030,7 @@ DC
DC
DC
DC
-DC
+Bh
DC
DC
oa
@@ -39228,7 +39291,7 @@ DC
DC
DC
DC
-VY
+gs
DD
DD
DD
@@ -39476,7 +39539,7 @@ Cw
Cw
Cw
Qv
-Gr
+ln
Cw
Cw
nf
@@ -39485,7 +39548,7 @@ DC
DC
DC
DC
-iC
+gs
DD
DD
DD
@@ -39733,7 +39796,7 @@ Cw
Cw
Cw
ln
-ln
+FX
Cw
Cw
nf
@@ -40256,7 +40319,7 @@ DC
DC
DC
DC
-OG
+gs
DD
DD
DD
@@ -42312,7 +42375,7 @@ oR
DC
DC
DC
-VY
+gs
DD
DD
DD
@@ -42826,7 +42889,7 @@ za
DC
DC
DC
-OG
+gs
DD
DD
DD
@@ -45386,7 +45449,7 @@ Cw
Cw
Cw
Cw
-DC
+Yh
DC
Cw
Cw
@@ -45644,7 +45707,7 @@ Cw
Cw
Cw
DC
-DC
+gt
Cw
Cw
nf
@@ -46673,7 +46736,7 @@ pN
DC
DC
DC
-VY
+gs
DD
DD
DD
@@ -46692,7 +46755,7 @@ SU
DC
DC
DC
-VY
+gs
DD
DD
DD
@@ -47187,7 +47250,7 @@ pN
DC
DC
DC
-OG
+gs
DD
DD
DD
@@ -47206,7 +47269,7 @@ SU
DC
DC
DC
-OG
+gs
DD
DD
DD
@@ -48215,7 +48278,7 @@ pN
DC
DC
DC
-VY
+gs
DD
DD
DD
@@ -48234,7 +48297,7 @@ SU
DC
DC
DC
-VY
+gs
DD
DD
DD
@@ -48729,7 +48792,7 @@ pN
DC
DC
DC
-OG
+gs
DD
DD
DD
@@ -48748,7 +48811,7 @@ SU
DC
DC
DC
-OG
+gs
DD
DD
DD
@@ -49757,7 +49820,7 @@ pN
DC
DC
DC
-VY
+gs
DD
DD
DD
@@ -49776,7 +49839,7 @@ SU
DC
DC
DC
-VY
+gs
DD
DD
DD
@@ -50271,7 +50334,7 @@ pN
DC
DC
DC
-OG
+gs
DD
DD
DD
@@ -50290,7 +50353,7 @@ SU
DC
DC
DC
-OG
+gs
DD
DD
DD
diff --git a/maps/away/away_site/konyang/point_verdant/point_verdant_ghostroles.dm b/maps/away/away_site/konyang/point_verdant/point_verdant_ghostroles.dm
index 163a7f67b9f..3a48c627ff4 100644
--- a/maps/away/away_site/konyang/point_verdant/point_verdant_ghostroles.dm
+++ b/maps/away/away_site/konyang/point_verdant/point_verdant_ghostroles.dm
@@ -108,7 +108,7 @@
desc = "Guard the hideout. Sell illicit goods and ingratiate yourself with the local community. Try not to get caught doing anything illegal."
tags = list("External")
spawnpoints = list("konyang_goon")
- max_count = 2
+ max_count = 3
outfit = /datum/outfit/admin/konyang_goon
possible_species = list(SPECIES_HUMAN, SPECIES_IPC, SPECIES_IPC_BISHOP, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_SHELL, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU)
allow_appearance_change = APPEARANCE_PLASTICSURGERY
@@ -148,7 +148,7 @@
short_name = "konyang_vendor"
name = "Point Verdant Vendor"
desc = "Man the stores around Point Verdant. Sell goods to the visiting crewmembers. Try not to get shaken down by the local 5-Cheung thugs."
- max_count = 4
+ max_count = 6
tags = list("External")
spawnpoints = list("konyang_vendor")
outfit = /datum/outfit/admin/konyang_vendor
@@ -266,7 +266,7 @@
short_name = "konyang_gwok"
name = "UP! Burger Employee"
desc = "Sell fast food and other Gwok-brand merchandise! Explain why the soft-serve machine is broken again."
- max_count = 1
+ max_count = 2
tags = list("External")
spawnpoints = list("konyang_gwok")
outfit = /datum/outfit/admin/konyang_gwok
diff --git a/maps/away/ships/dominia/dominian_science_vessel/dominian_science_vessel.dm b/maps/away/ships/dominia/dominian_science_vessel/dominian_science_vessel.dm
index c852054d052..cdb6e7a5415 100644
--- a/maps/away/ships/dominia/dominian_science_vessel/dominian_science_vessel.dm
+++ b/maps/away/ships/dominia/dominian_science_vessel/dominian_science_vessel.dm
@@ -3,6 +3,7 @@
description = "Based on the Lammergeier-class corvette, this vessel has been repurposed by House Volvalaad for long range survey and scientific tasks. Due to its repurposement, the vessel features an enlarged hangar and shuttle, as well as scientific labs and a smaller defensive armament."
suffixes = list("ships/dominia/dominian_science_vessel/dominian_science_vessel.dmm")
sectors = list(ALL_TAU_CETI_SECTORS, ALL_COALITION_SECTORS, SECTOR_BADLANDS)
+ sectors_blacklist = list(SECTOR_HANEUNIM)
spawn_weight = 1
ship_cost = 1
id = "dominian_science_vessel"
diff --git a/maps/away/ships/dominia/dominian_unathi_privateer/dominian_unathi_privateer.dm b/maps/away/ships/dominia/dominian_unathi_privateer/dominian_unathi_privateer.dm
index c6b459e42c3..ea9bb7c59bb 100644
--- a/maps/away/ships/dominia/dominian_unathi_privateer/dominian_unathi_privateer.dm
+++ b/maps/away/ships/dominia/dominian_unathi_privateer/dominian_unathi_privateer.dm
@@ -2,7 +2,7 @@
name = "Kazhkz Privateer Ship"
description = "Dominian Unathi pirates"
suffixes = list("ships/dominia/dominian_unathi_privateer/dominian_unathi_privateer.dmm")
- sectors = list(SECTOR_BADLANDS)
+ sectors = list(SECTOR_BADLANDS, SECTOR_WEEPING_STARS)
spawn_weight = 1
ship_cost = 1
id = "dominian_unathi"
diff --git a/maps/away/ships/konyang/air_konyang/air_konyang.dm b/maps/away/ships/konyang/air_konyang/air_konyang.dm
index 3cd2e45443b..6db1631378c 100644
--- a/maps/away/ships/konyang/air_konyang/air_konyang.dm
+++ b/maps/away/ships/konyang/air_konyang/air_konyang.dm
@@ -53,7 +53,7 @@
move_time = 35
range = 2
fuel_consumption = 6
- shuttle_area = list(/area/shuttle/air_konyang, /area/shuttle/air_konyang/atmos, /area/shuttle/air_konyang/engineering, /area/shuttle/air_konyang/storage, /area/shuttle/air_konyang/starbwing, /area/shuttle/air_konyang/crew, /area/shuttle/air_konyang/mainroom, /area/shuttle/air_konyang/bridge)
+ shuttle_area = list(/area/shuttle/air_konyang/atmos, /area/shuttle/air_konyang/engineering, /area/shuttle/air_konyang/storage, /area/shuttle/air_konyang/starbwing, /area/shuttle/air_konyang/crew, /area/shuttle/air_konyang/mainroom, /area/shuttle/air_konyang/bridge, /area/shuttle/air_konyang/rear_hall)
current_location = "nav_air_konyang_start"
dock_target = "airlock_air_konyang"
landmark_transition = "nav_air_konyang_transit"
diff --git a/maps/away/ships/konyang/air_konyang/air_konyang.dmm b/maps/away/ships/konyang/air_konyang/air_konyang.dmm
index 8a662e76808..3ded162e88c 100644
--- a/maps/away/ships/konyang/air_konyang/air_konyang.dmm
+++ b/maps/away/ships/konyang/air_konyang/air_konyang.dmm
@@ -114,7 +114,7 @@
},
/obj/structure/lattice/catwalk/indoor/grate,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"dI" = (
/obj/machinery/atmospherics/pipe/simple/hidden/red{
dir = 6
@@ -132,7 +132,7 @@
},
/obj/effect/map_effect/marker_helper/airlock/exterior,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"dL" = (
/obj/machinery/atmospherics/unary/vent_pump/siphon/on/atmos{
frequency = 0663;
@@ -145,6 +145,13 @@
/obj/structure/table/steel,
/turf/simulated/floor/tiled/dark,
/area/shuttle/air_konyang/mainroom)
+"ei" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/fuel_port/hydrogen{
+ pixel_x = 32
+ },
+/turf/simulated/floor/plating,
+/area/shuttle/air_konyang/atmos)
"ep" = (
/obj/machinery/airlock_sensor/airlock_interior{
dir = 4;
@@ -160,7 +167,7 @@
cycle_to_external_air = 1
},
/turf/simulated/floor/tiled/dark,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"eH" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 9
@@ -261,7 +268,7 @@
/area/shuttle/air_konyang/engineering)
"hj" = (
/turf/simulated/floor/tiled/dark,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"hk" = (
/obj/structure/cable/green{
d1 = 1;
@@ -335,7 +342,7 @@
},
/obj/effect/map_effect/marker_helper/airlock/out,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"iq" = (
/obj/machinery/vending/dinnerware/plastic,
/turf/simulated/floor/tiled/dark,
@@ -381,7 +388,7 @@
dir = 4
},
/turf/simulated/wall/shuttle/space_ship,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"kG" = (
/obj/effect/map_effect/marker/airlock{
master_tag = "air_konyang_1";
@@ -417,7 +424,7 @@
"kX" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/floor/tiled/dark,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"lR" = (
/obj/structure/closet/firecloset,
/turf/simulated/floor/carpet/brown,
@@ -492,7 +499,7 @@
cycle_to_external_air = 1
},
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"nG" = (
/obj/machinery/computer/ship/navigation{
dir = 8
@@ -642,7 +649,7 @@
icon_state = "tube_empty"
},
/turf/simulated/floor/tiled/dark,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"rk" = (
/obj/machinery/light{
dir = 8
@@ -677,7 +684,7 @@
},
/obj/effect/map_effect/marker_helper/airlock/interior,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"sA" = (
/obj/structure/closet/walllocker/firecloset{
pixel_x = -32
@@ -717,7 +724,7 @@
cycle_to_external_air = 1
},
/turf/simulated/floor/airless,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"uc" = (
/obj/structure/cable/green{
d1 = 1;
@@ -728,7 +735,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/lattice/catwalk/indoor/grate,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"up" = (
/obj/machinery/vending/snack/konyang{
prices = list()
@@ -781,7 +788,7 @@
},
/obj/effect/map_effect/marker_helper/airlock/interior,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"vs" = (
/obj/machinery/portable_atmospherics/canister/air/airlock,
/obj/structure/window/reinforced,
@@ -860,6 +867,13 @@
},
/turf/simulated/floor/tiled/dark,
/area/shuttle/air_konyang/bridge)
+"wu" = (
+/obj/structure/closet/crate,
+/obj/item/tank/hydrogen/shuttle,
+/obj/item/tank/hydrogen/shuttle,
+/obj/item/tank/hydrogen/shuttle,
+/turf/simulated/floor/plating,
+/area/shuttle/air_konyang/atmos)
"wy" = (
/turf/simulated/wall/shuttle/space_ship,
/area/shuttle/air_konyang/engineering)
@@ -1042,10 +1056,10 @@
},
/obj/effect/map_effect/marker_helper/airlock/out,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Ah" = (
/turf/simulated/wall/shuttle/space_ship,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Aq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
dir = 5
@@ -1151,7 +1165,7 @@
},
/obj/structure/lattice/catwalk/indoor/grate,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"CU" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/light{
@@ -1241,7 +1255,7 @@
dir = 1
},
/turf/simulated/floor/airless,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"FT" = (
/obj/machinery/atmospherics/unary/engine,
/obj/effect/floor_decal/industrial/warning{
@@ -1270,7 +1284,7 @@
dir = 4
},
/turf/simulated/floor/tiled/dark,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"GG" = (
/obj/effect/landmark/entry_point/starboard{
name = "starboard, passenger compartment"
@@ -1323,7 +1337,7 @@
},
/obj/effect/map_effect/marker_helper/airlock/interior,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Iu" = (
/obj/structure/cable/green{
icon_state = "1-8"
@@ -1393,7 +1407,7 @@
},
/obj/structure/lattice/catwalk/indoor/grate,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Ka" = (
/obj/structure/cable{
d1 = 4;
@@ -1469,7 +1483,7 @@
icon_state = "1-4"
},
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"MB" = (
/obj/machinery/door/airlock/external,
/obj/machinery/access_button{
@@ -1486,7 +1500,7 @@
},
/obj/effect/map_effect/marker_helper/airlock/exterior,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Ne" = (
/obj/machinery/door/airlock/external{
dir = 4
@@ -1515,7 +1529,7 @@
cycle_to_external_air = 1
},
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Nw" = (
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
dir = 5
@@ -1543,7 +1557,7 @@
name = "Engineering"
},
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"NT" = (
/obj/structure/cable/green{
d1 = 1;
@@ -1572,7 +1586,7 @@
req_access = null
},
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Oc" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel,
/obj/effect/landmark/entry_point/aft{
@@ -1639,7 +1653,7 @@
icon_state = "intact"
},
/turf/simulated/floor/tiled/dark,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Ql" = (
/obj/effect/landmark/entry_point/starboard{
name = "starboard, bridge"
@@ -1671,7 +1685,7 @@
dir = 4
},
/turf/simulated/floor/tiled/dark,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Rd" = (
/obj/machinery/light{
dir = 1
@@ -1711,7 +1725,7 @@
cycle_to_external_air = 1
},
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Sf" = (
/obj/machinery/atmospherics/pipe/simple/hidden/red{
dir = 4
@@ -1726,7 +1740,7 @@
},
/obj/effect/map_effect/marker_helper/airlock/exterior,
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Sv" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -1855,7 +1869,7 @@
cycle_to_external_air = 1
},
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"Xb" = (
/obj/structure/cable/green{
d1 = 4;
@@ -1877,7 +1891,7 @@
name = "Atmospherics"
},
/turf/simulated/floor/plating,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"XA" = (
/obj/structure/cable{
d1 = 4;
@@ -1928,7 +1942,7 @@
"YI" = (
/obj/machinery/suit_storage_unit/standard_unit,
/turf/simulated/floor/tiled/dark,
-/area/shuttle/air_konyang)
+/area/shuttle/air_konyang/rear_hall)
"YX" = (
/obj/machinery/telecomms/allinone/ship,
/obj/machinery/light{
@@ -16927,9 +16941,9 @@ VJ
VJ
ze
KO
-kP
+wu
PZ
-mY
+ei
CU
Pa
oY
diff --git a/maps/away/ships/konyang/air_konyang/air_konyang_areas.dm b/maps/away/ships/konyang/air_konyang/air_konyang_areas.dm
index df4b78fe285..c554b927597 100644
--- a/maps/away/ships/konyang/air_konyang/air_konyang_areas.dm
+++ b/maps/away/ships/konyang/air_konyang/air_konyang_areas.dm
@@ -1,6 +1,5 @@
/area/shuttle/air_konyang
- name = "Air Konyang Liner - Rear Hall"
- icon_state = "green"
+ name = "Air Konyang Liner"
requires_power = TRUE
dynamic_lighting = TRUE
no_light_control = FALSE
@@ -34,3 +33,7 @@
/area/shuttle/air_konyang/bridge
name = "Air Konyang Liner - Cockpit"
icon_state = "bridge"
+
+/area/shuttle/air_konyang/rear_hall
+ name = "Air Konyang Liner - Rear Hall"
+ icon_state = "green"
diff --git a/maps/away/ships/konyang/einstein_shuttle/einstein_shuttle.dm b/maps/away/ships/konyang/einstein_shuttle/einstein_shuttle.dm
index f6ffc1815d0..b83c3171a91 100644
--- a/maps/away/ships/konyang/einstein_shuttle/einstein_shuttle.dm
+++ b/maps/away/ships/konyang/einstein_shuttle/einstein_shuttle.dm
@@ -94,7 +94,7 @@
/datum/shuttle/autodock/overmap/einstein_shuttle
name = "Einstein Shuttle"
move_time = 20
- shuttle_area = list(/area/shuttle/einstein_shuttle, /area/shuttle/einstein_shuttle/helm, /area/shuttle/einstein_shuttle/main, /area/shuttle/einstein_shuttle/room, /area/shuttle/einstein_shuttle/room/two, /area/shuttle/einstein_shuttle/room/three, /area/shuttle/einstein_shuttle/room/four, /area/shuttle/einstein_shuttle/conference, /area/shuttle/einstein_shuttle/bathroom, /area/shuttle/einstein_shuttle/porteng, /area/shuttle/einstein_shuttle/starbeng, /area/shuttle/einstein_shuttle/dock)
+ shuttle_area = list(/area/shuttle/einstein_shuttle/helm, /area/shuttle/einstein_shuttle/main, /area/shuttle/einstein_shuttle/room, /area/shuttle/einstein_shuttle/room/two, /area/shuttle/einstein_shuttle/room/three, /area/shuttle/einstein_shuttle/room/four, /area/shuttle/einstein_shuttle/conference, /area/shuttle/einstein_shuttle/bathroom, /area/shuttle/einstein_shuttle/porteng, /area/shuttle/einstein_shuttle/starbeng, /area/shuttle/einstein_shuttle/dock)
current_location = "nav_start_einstein"
landmark_transition = "nav_transit_einstein"
range = 1
diff --git a/maps/away/ships/konyang/kasf_ship/kasf_ship_ghostroles.dm b/maps/away/ships/konyang/kasf_ship/kasf_ship_ghostroles.dm
index 4ab1ab7fef3..4e95be5eda7 100644
--- a/maps/away/ships/konyang/kasf_ship/kasf_ship_ghostroles.dm
+++ b/maps/away/ships/konyang/kasf_ship/kasf_ship_ghostroles.dm
@@ -27,7 +27,7 @@
id = /obj/item/card/id/kasf_corvette
- l_ear = /obj/item/device/radio/headset/ship
+ l_ear = /obj/item/device/radio/headset/ship/coalition_navy
backpack_contents = list(/obj/item/storage/box/survival = 1)
diff --git a/maps/random_ruins/exoplanets/burzsia/burzsia_mining.dmm b/maps/random_ruins/exoplanets/burzsia/burzsia_mining.dmm
index 44cbe64be66..4d77f73222a 100644
--- a/maps/random_ruins/exoplanets/burzsia/burzsia_mining.dmm
+++ b/maps/random_ruins/exoplanets/burzsia/burzsia_mining.dmm
@@ -1072,6 +1072,7 @@
/obj/effect/floor_decal/industrial/outline/yellow,
/obj/machinery/mech_recharger/hephaestus,
/mob/living/heavy_vehicle/premade/miner,
+/obj/machinery/mech_recharger,
/turf/simulated/floor/tiled/steel,
/area/burzsia_mining/mining)
"Dm" = (
@@ -1480,6 +1481,8 @@
dir = 1
},
/obj/machinery/light,
+/obj/item/storage/bag/ore,
+/obj/item/storage/bag/ore,
/turf/simulated/floor/tiled/steel{
temperature = 278.15
},
@@ -1564,6 +1567,26 @@
},
/turf/simulated/floor/tiled/dark,
/area/burzsia_mining)
+"QG" = (
+/obj/item/pickaxe,
+/obj/item/pickaxe,
+/obj/structure/closet/toolcloset/empty,
+/obj/item/wrench,
+/obj/item/wrench,
+/obj/item/wrench,
+/obj/item/crowbar/red,
+/obj/item/crowbar/red,
+/obj/item/crowbar/red,
+/obj/item/device/analyzer,
+/obj/item/device/analyzer,
+/obj/item/device/analyzer,
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/item/storage/bag/ore,
+/obj/item/storage/bag/ore,
+/turf/simulated/floor/tiled/steel,
+/area/burzsia_mining/mining)
"QI" = (
/obj/effect/floor_decal/corner/orange{
dir = 6
@@ -1689,9 +1712,7 @@
/area/burzsia_mining/mining)
"TX" = (
/obj/structure/cable/green,
-/obj/machinery/power/apc/east{
- req_access = list(202)
- },
+/obj/machinery/power/apc/hyper/east,
/turf/simulated/floor/tiled/steel,
/area/burzsia_mining/mining)
"Ub" = (
@@ -1872,21 +1893,8 @@
/turf/simulated/floor/tiled/dark,
/area/burzsia_mining/dormitories)
"YQ" = (
-/obj/item/pickaxe,
-/obj/item/pickaxe,
-/obj/structure/closet/toolcloset/empty,
-/obj/item/wrench,
-/obj/item/wrench,
-/obj/item/wrench,
-/obj/item/crowbar/red,
-/obj/item/crowbar/red,
-/obj/item/crowbar/red,
-/obj/item/device/analyzer,
-/obj/item/device/analyzer,
-/obj/item/device/analyzer,
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 1
- },
+/obj/structure/dispenser/oxygen,
+/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled/steel,
/area/burzsia_mining/mining)
"YT" = (
@@ -2439,7 +2447,7 @@ qm
qg
qm
qm
-qm
+QG
mc
qm
qm
diff --git a/maps/random_ruins/exoplanets/konyang/tribute.dmm b/maps/random_ruins/exoplanets/konyang/tribute.dmm
index b92fdd7171d..ac7ebe3f4ca 100644
--- a/maps/random_ruins/exoplanets/konyang/tribute.dmm
+++ b/maps/random_ruins/exoplanets/konyang/tribute.dmm
@@ -956,8 +956,8 @@
/obj/structure/sign/painting_frame/martyr{
pixel_y = 9;
pixel_x = -16;
- name = "photo of a martyr";
- desc = "a small portrait, with a plate reading 'Rest in Peace Kei Nakai' on the bottom of the frame.";
+ name = "photo of a person";
+ desc = "a small portrait, with a plate reading 'Rest in Peace' on the bottom of the frame.";
desc_extended = null
},
/obj/item/flag/trinaryperfection{
diff --git a/maps/runtime/runtime-1.dmm b/maps/runtime/runtime-1.dmm
index 86e8f8be029..745bafe0820 100644
--- a/maps/runtime/runtime-1.dmm
+++ b/maps/runtime/runtime-1.dmm
@@ -1622,6 +1622,10 @@
/obj/machinery/computer/ship/sensors/terminal,
/turf/simulated/floor/tiled,
/area/storage/primary)
+"sT" = (
+/obj/effect/landmark/lobby_mobs_location,
+/turf/unsimulated/floor,
+/area/template_noop)
"sU" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 9
@@ -1851,10 +1855,6 @@
/turf/simulated/floor/tiled,
/area/bridge)
"IQ" = (
-/obj/effect/map_effect/airlock/s_to_n/long/square/wide{
- name = "Deck 2 Starboard Aft Maintenance Airlock (2001)";
- radio_frequency = 2001
- },
/obj/effect/landmark{
name = "Observer-Start"
},
@@ -1933,6 +1933,9 @@
},
/turf/simulated/floor/plating,
/area/maintenance/maintcentral)
+"NF" = (
+/turf/unsimulated/wall/steel,
+/area/template_noop)
"Ot" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 8
@@ -11598,10 +11601,10 @@ aa
aa
aa
aa
+ac
ae
ae
-ae
-ae
+ac
Ft
fH
at
@@ -13931,8 +13934,8 @@ aa
aa
aa
aa
-aa
-aa
+NF
+NF
ac
Uf
Uf
@@ -14188,8 +14191,8 @@ aa
aa
aa
aa
-aa
-aa
+NF
+sT
ac
Uf
Uf
@@ -14445,8 +14448,8 @@ aa
aa
aa
aa
-aa
-aa
+NF
+NF
ac
ac
ac
diff --git a/maps/runtime/runtime-2.dmm b/maps/runtime/runtime-2.dmm
index c0a45c35afb..6e7ad7e8301 100644
--- a/maps/runtime/runtime-2.dmm
+++ b/maps/runtime/runtime-2.dmm
@@ -11,7 +11,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
-/turf/simulated/floor/airless,
+/turf/simulated/floor/tiled,
/area/construction/storage)
"aO" = (
/turf/simulated/floor/tiled,
@@ -242,7 +242,7 @@
},
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/zpipe/up/supply,
-/turf/simulated/floor/airless,
+/turf/simulated/floor/tiled,
/area/construction/storage)
"iR" = (
/turf/template_noop,
diff --git a/maps/runtime/runtime-3.dmm b/maps/runtime/runtime-3.dmm
index 4b5883723cb..0e5b98a1f70 100644
--- a/maps/runtime/runtime-3.dmm
+++ b/maps/runtime/runtime-3.dmm
@@ -443,7 +443,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
-/turf/simulated/floor/airless,
+/turf/simulated/floor/tiled,
/area/construction/hallway)
"iV" = (
/obj/effect/floor_decal/spline/fancy/wood/corner,
@@ -982,6 +982,12 @@
/obj/structure/grille/over/large,
/turf/simulated/floor/tiled/full,
/area/construction/hallway)
+"wH" = (
+/obj/effect/landmark{
+ name = "carpspawn"
+ },
+/turf/simulated/floor/airless,
+/area/template_noop)
"wL" = (
/obj/effect/floor_decal/spline/fancy/wood{
dir = 4
@@ -2114,6 +2120,10 @@
/obj/machinery/power/breakerbox,
/turf/simulated/floor,
/area/construction/supplyshuttle)
+"XA" = (
+/obj/structure/lattice,
+/turf/simulated/floor/airless,
+/area/template_noop)
"Yi" = (
/obj/machinery/atmospherics/binary/pump/on,
/obj/machinery/light/small{
@@ -13217,13 +13227,13 @@ nA
nA
nA
nA
-nA
-nA
-nA
-nA
-nA
-nA
-nA
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
@@ -13474,13 +13484,13 @@ pM
pM
pM
pM
-pM
-pM
-pM
-pM
-pM
-pM
-pM
+XA
+XA
+XA
+XA
+XA
+XA
+XA
pM
pM
pM
@@ -13731,13 +13741,13 @@ nA
nA
nA
nA
-nA
-nA
-nA
-nA
-nA
-nA
-nA
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
@@ -13988,13 +13998,13 @@ nA
nA
nA
nA
-nA
-nA
-nA
-nA
-nA
-nA
-nA
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
@@ -14245,13 +14255,13 @@ nA
nA
nA
nA
-nA
-nA
-nA
-nA
-nA
-nA
-nA
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
@@ -14502,13 +14512,13 @@ nA
nA
nA
nA
-nA
-Pu
-nA
-nA
-nA
-nA
-nA
+Bc
+wH
+Bc
+Bc
+Bc
+Bc
+Bc
nA
nA
nA
diff --git a/maps/sccv_horizon/code/sccv_horizon_holodeck.dm b/maps/sccv_horizon/code/sccv_horizon_holodeck.dm
index 78a3cf992a8..ad790acac68 100644
--- a/maps/sccv_horizon/code/sccv_horizon_holodeck.dm
+++ b/maps/sccv_horizon/code/sccv_horizon_holodeck.dm
@@ -37,20 +37,20 @@
list(
'sound/music/ambispace.ogg',
'sound/music/main.ogg',
- 'sound/music/space.ogg',
- 'sound/music/traitor.ogg'
+ 'sound/music/lobby/space.ogg',
+ 'sound/music/lobby/traitor.ogg'
)
),
"picnicarea" = new /datum/holodeck_program(/area/horizon/holodeck/source_picnicarea,
- list('sound/music/title2.ogg')
+ list('sound/music/lobby/title2.ogg')
),
"dininghall" = new /datum/holodeck_program(/area/horizon/holodeck/source_dininghall,
- list('sound/music/title2.ogg')
+ list('sound/music/lobby/title2.ogg')
),
"theatre" = new /datum/holodeck_program(/area/horizon/holodeck/source_theatre),
"meetinghall" = new /datum/holodeck_program(/area/horizon/holodeck/source_meetinghall),
"courtroom" = new /datum/holodeck_program(/area/horizon/holodeck/source_courtroom,
- list('sound/music/traitor.ogg')
+ list('sound/music/lobby/traitor.ogg')
),
"burntest" = new /datum/holodeck_program(/area/horizon/holodeck/source_burntest, list()),
"wildlifecarp" = new /datum/holodeck_program(/area/horizon/holodeck/source_wildlife, list()),
diff --git a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
index 20e27443af7..09f111f013c 100644
--- a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
+++ b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm
@@ -1111,7 +1111,7 @@
/area/engineering/atmos/propulsion)
"aQN" = (
/obj/machinery/firealarm/north,
-/turf/simulated/floor/bluegrid,
+/turf/simulated/floor/tiled,
/area/operations/storage)
"aRG" = (
/obj/effect/floor_decal/industrial/warning{
@@ -1371,12 +1371,6 @@
/obj/structure/tank_wall/oxygen,
/turf/simulated/floor/plating,
/area/engineering/atmos/air)
-"aYv" = (
-/obj/structure/ecd{
- pixel_x = -16
- },
-/turf/simulated/floor/bluegrid,
-/area/operations/storage)
"aYY" = (
/obj/effect/floor_decal/corner/lime{
dir = 10
@@ -2724,9 +2718,6 @@
},
/turf/simulated/floor/plating,
/area/maintenance/engineering)
-"bSM" = (
-/turf/simulated/floor/airless,
-/area/hangar/intrepid)
"bUN" = (
/obj/structure/cable/green{
icon_state = "1-2"
@@ -2989,13 +2980,13 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/effect/floor_decal/corner/lime/diagonal,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/simulated/floor/tiled/white,
/area/shuttle/intrepid/crew_compartment)
"cfS" = (
@@ -5592,17 +5583,9 @@
/obj/structure/shuttle_part/scc/research{
icon_state = "17,22"
},
+/obj/item/hullbeacon/red,
/turf/simulated/floor/plating,
/area/shuttle/intrepid/engine_compartment)
-"dRB" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 6
- },
-/obj/machinery/light{
- dir = 1
- },
-/turf/simulated/floor/tiled,
-/area/operations/storage)
"dSD" = (
/obj/structure/shuttle_part/scc/research{
density = 0;
@@ -5715,7 +5698,6 @@
dir = 10
},
/obj/machinery/button/remote/blast_door{
- dir = 2;
id = "miningbay";
name = "Mining Bay Entrance";
pixel_x = 22;
@@ -5822,6 +5804,9 @@
icon_state = "long2-2"
},
/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/simulated/floor/plating,
/area/shuttle/intrepid/crew_compartment)
"ebk" = (
@@ -6421,6 +6406,7 @@
/obj/structure/bed/handrail{
dir = 8
},
+/obj/item/hullbeacon/green,
/turf/simulated/floor/plating,
/area/shuttle/intrepid/crew_compartment)
"ewI" = (
@@ -9417,9 +9403,6 @@
c_tag = "Operations - Warehouse Starboard Fore Storage Room";
dir = 4
},
-/obj/effect/floor_decal/industrial/warning{
- dir = 5
- },
/turf/simulated/floor/tiled,
/area/operations/storage)
"grm" = (
@@ -11764,9 +11747,6 @@
"icm" = (
/turf/simulated/wall,
/area/maintenance/engineering/auxillary)
-"icW" = (
-/turf/simulated/floor/bluegrid,
-/area/operations/storage)
"idq" = (
/obj/effect/floor_decal/industrial/warning{
dir = 5
@@ -11785,6 +11765,9 @@
dir = 8
},
/obj/effect/floor_decal/corner/lime/diagonal,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/simulated/floor/tiled/white,
/area/shuttle/intrepid/crew_compartment)
"ieb" = (
@@ -11871,15 +11854,18 @@
"ifw" = (
/obj/effect/floor_decal/industrial/outline/red,
/obj/machinery/door/blast/shutters/open{
- dir = 8;
+ dir = 4;
id = "intrepid_outer";
name = "Intrepid Shutter"
},
/obj/structure/lattice/catwalk/indoor,
/obj/structure/bed/handrail{
- dir = 8
+ dir = 4
},
/obj/item/hullbeacon/red,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/simulated/floor/plating,
/area/shuttle/intrepid/crew_compartment)
"ifD" = (
@@ -16503,9 +16489,6 @@
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/regular,
-/obj/structure/cable{
- icon_state = "4-8"
- },
/turf/simulated/floor/tiled/white,
/area/shuttle/intrepid/crew_compartment)
"lvP" = (
@@ -16810,9 +16793,7 @@
},
/obj/structure/table/standard,
/obj/item/device/suit_cooling_unit,
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 0
- },
+/obj/item/storage/toolbox/mechanical,
/obj/item/storage/belt/utility,
/obj/item/stack/rods/full{
pixel_y = 4
@@ -17807,9 +17788,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 9
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
/obj/effect/floor_decal/corner/lime/diagonal,
/obj/structure/bed/roller,
/obj/item/device/radio/intercom/expedition/south,
@@ -19694,9 +19672,6 @@
/turf/simulated/floor/plating,
/area/rnd/eva)
"nwF" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/floor_decal/corner/lime/diagonal,
/obj/structure/table/standard,
/obj/item/roller{
@@ -23119,15 +23094,6 @@
/obj/effect/floor_decal/industrial/warning,
/turf/simulated/floor/plating,
/area/maintenance/engineering)
-"pRc" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 10
- },
-/obj/machinery/light{
- dir = 1
- },
-/turf/simulated/floor/tiled,
-/area/operations/storage)
"pRz" = (
/obj/structure/sign/securearea{
pixel_y = 32
@@ -24594,7 +24560,8 @@
/area/maintenance/research_port)
"qQa" = (
/obj/machinery/alarm/west,
-/turf/simulated/floor/bluegrid,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled,
/area/operations/storage)
"qQk" = (
/obj/effect/floor_decal/industrial/warning{
@@ -25131,6 +25098,7 @@
/obj/structure/shuttle_part/scc/research{
icon_state = "14,8"
},
+/obj/item/hullbeacon/red,
/turf/simulated/floor/plating,
/area/shuttle/intrepid/crew_compartment)
"rkQ" = (
@@ -26851,6 +26819,7 @@
icon_state = "1,22";
opacity = 1
},
+/obj/item/hullbeacon/green,
/turf/simulated/floor/plating,
/area/shuttle/intrepid/engine_compartment)
"svZ" = (
@@ -27038,9 +27007,6 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
-/obj/effect/floor_decal/industrial/warning{
- dir = 9
- },
/turf/simulated/floor/tiled,
/area/operations/storage)
"sDN" = (
@@ -27438,22 +27404,6 @@
/obj/structure/lattice/catwalk/indoor/grate/dark,
/turf/simulated/floor/plating,
/area/engineering/atmos/propulsion)
-"sRX" = (
-/obj/effect/floor_decal/industrial/outline/red,
-/obj/machinery/door/blast/shutters/open{
- dir = 4;
- id = "intrepid_outer";
- name = "Intrepid Shutter"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/lattice/catwalk/indoor,
-/obj/structure/bed/handrail{
- dir = 4
- },
-/turf/simulated/floor/plating,
-/area/shuttle/intrepid/crew_compartment)
"sSm" = (
/obj/structure/bed/stool/chair/shuttle{
dir = 4
@@ -29105,9 +29055,6 @@
icon_state = "long2-1"
},
/obj/machinery/door/firedoor,
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/landmark/entry_point/port{
name = "port, medbay"
},
@@ -29521,9 +29468,7 @@
},
/obj/structure/table/standard,
/obj/item/device/suit_cooling_unit,
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 0
- },
+/obj/item/storage/toolbox/mechanical,
/obj/item/storage/belt/utility,
/obj/item/stack/rods/full{
pixel_y = 4
@@ -31724,12 +31669,6 @@
},
/turf/simulated/floor/tiled,
/area/horizon/hydroponics/lower)
-"vMc" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor/bluegrid,
-/area/operations/storage)
"vMd" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
@@ -33178,6 +33117,9 @@
dir = 8
},
/obj/effect/floor_decal/corner/lime/diagonal,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/simulated/floor/tiled/white,
/area/shuttle/intrepid/crew_compartment)
"wOZ" = (
@@ -34365,6 +34307,7 @@
/obj/structure/shuttle_part/scc/research{
icon_state = "4,8"
},
+/obj/item/hullbeacon/green,
/turf/simulated/floor/plating,
/area/shuttle/intrepid/quarters)
"xvG" = (
@@ -45678,7 +45621,7 @@ pcv
giX
tiV
qdE
-dRB
+tiV
qQa
gqW
qdE
@@ -45882,8 +45825,8 @@ kAn
nzG
qdE
aQN
-aYv
-vMc
+nCV
+tFO
qdE
oct
qdE
@@ -46084,8 +46027,8 @@ sWr
giX
iQI
qdE
-pRc
-icW
+iQI
+giX
sDJ
qdE
vgU
@@ -54426,7 +54369,7 @@ rCK
bEN
pru
ncq
-ifw
+ewy
ewy
nyz
xPX
@@ -55864,7 +55807,7 @@ kyK
oSi
kaM
iRC
-bSM
+iRC
xsx
eSV
eSV
@@ -57268,8 +57211,8 @@ ker
wOI
qnb
imc
+ifw
lIM
-sRX
hhb
knw
bjm
diff --git a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
index 010148f9dda..656175c3bd4 100644
--- a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
+++ b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
@@ -1990,11 +1990,11 @@
/obj/structure/cable/green{
icon_state = "0-4"
},
-/obj/structure/closet/secure_closet/freezer/kois,
/obj/effect/floor_decal/industrial/warning/full,
/obj/structure/sign/biohazard{
pixel_x = -32
},
+/obj/structure/closet/secure_closet/freezer/kois/spores,
/turf/simulated/floor/tiled/freezer{
name = "cooled tiles";
temperature = 253.15
@@ -15111,6 +15111,10 @@
id = "Bar_Private_Lounge";
pixel_y = 24
},
+/obj/item/lore_radio{
+ pixel_x = 9;
+ pixel_y = 2
+ },
/turf/simulated/floor/carpet/red,
/area/horizon/bar)
"gUA" = (
diff --git a/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm b/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
index 1df06236aa3..7b75f9ea5c6 100644
--- a/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
+++ b/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
@@ -4450,7 +4450,7 @@
dir = 1
},
/obj/effect/landmark/start{
- name = "Security Officer"
+ name = "Investigator"
},
/turf/simulated/floor/tiled/dark,
/area/horizon/security/meeting_room)
@@ -6760,7 +6760,6 @@
/obj/structure/cable/green{
icon_state = "1-2"
},
-/obj/machinery/power/apc/low/west,
/obj/structure/cable/green,
/obj/structure/lattice/catwalk/indoor/grate,
/obj/machinery/light/small/emergency{
@@ -6768,6 +6767,7 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/power/apc/west,
/turf/simulated/floor,
/area/maintenance/bridge)
"feb" = (
@@ -7215,12 +7215,12 @@
/turf/simulated/floor/tiled/full,
/area/bridge/cciaroom)
"frA" = (
-/obj/effect/landmark/start{
- name = "Security Cadet"
- },
/obj/structure/bed/stool/chair{
dir = 1
},
+/obj/effect/landmark/start{
+ name = "Warden"
+ },
/turf/simulated/floor/tiled/dark,
/area/horizon/security/meeting_room)
"frN" = (
@@ -7468,7 +7468,7 @@
dir = 1
},
/obj/effect/landmark/start{
- name = "Security Officer"
+ name = "Investigator"
},
/turf/simulated/floor/tiled/dark,
/area/horizon/security/meeting_room)
@@ -11094,12 +11094,12 @@
/obj/structure/bed/stool/chair{
dir = 1
},
-/obj/effect/landmark/start{
- name = "Security Officer"
- },
/obj/effect/floor_decal/corner/dark_blue{
dir = 10
},
+/obj/effect/landmark/start{
+ name = "Security Cadet"
+ },
/turf/simulated/floor/tiled/dark,
/area/horizon/security/meeting_room)
"hOw" = (
@@ -30891,10 +30891,10 @@
/obj/effect/floor_decal/corner/dark_blue{
dir = 10
},
+/obj/machinery/firealarm/south,
/obj/effect/landmark/start{
- name = "Security Officer"
+ name = "Security Cadet"
},
-/obj/machinery/firealarm/south,
/turf/simulated/floor/tiled/dark,
/area/horizon/security/meeting_room)
"vED" = (
@@ -33828,12 +33828,6 @@
/obj/effect/floor_decal/corner/dark_blue{
dir = 10
},
-/obj/structure/bed/stool/chair{
- dir = 1
- },
-/obj/effect/landmark/start{
- name = "Security Officer"
- },
/obj/structure/sign/nosmoking_2{
pixel_y = -32
},
@@ -61936,7 +61930,7 @@ lnI
vTI
pms
fyZ
-xSX
+frA
gTO
xJq
tGG
@@ -62138,7 +62132,7 @@ lnI
mVs
rhT
fyZ
-frA
+xSX
kxs
vEh
oIR
@@ -62340,7 +62334,7 @@ lnI
kMa
muO
xPv
-frA
+xSX
kxs
hOi
oIR
diff --git a/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm b/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
index 6ac25cfaaa7..4759851dc4d 100644
--- a/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
+++ b/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm
@@ -357,7 +357,6 @@
/obj/machinery/door/airlock/glass_centcom{
dir = 1;
name = "Sector Administration Copula";
- req_access = null;
req_one_access = list(109,108)
},
/turf/unsimulated/floor{
@@ -3491,8 +3490,7 @@
"ahN" = (
/obj/machinery/door/airlock/glass_centcom{
dir = 4;
- name = "To: NTCC Odin Mass Transit";
- req_access = null
+ name = "To: NTCC Odin Mass Transit"
},
/turf/unsimulated/floor,
/area/centcom/bar)
@@ -4091,7 +4089,6 @@
/obj/machinery/door/airlock/glass_centcom{
dir = 4;
name = "Sector Administration Copula";
- req_access = null;
req_one_access = list(109,108)
},
/turf/unsimulated/floor{
@@ -4284,8 +4281,7 @@
id = "corvette_exterior";
name = "aft blast door";
pixel_x = 32;
- pixel_y = 12;
- req_access = null
+ pixel_y = 12
},
/turf/simulated/floor/tiled/dark,
/area/shuttle/administration)
@@ -6599,7 +6595,6 @@
"apE" = (
/obj/machinery/door/airlock/centcom{
name = "Telecommunications Monitoring";
- req_access = null;
req_one_access = list(106,108,109)
},
/turf/unsimulated/floor{
@@ -6940,8 +6935,7 @@
"aqQ" = (
/obj/machinery/door/airlock/hatch{
dir = 1;
- name = "Lounge";
- req_access = null
+ name = "Lounge"
},
/turf/simulated/floor/wood,
/area/merchant_station)
@@ -9272,7 +9266,6 @@
/obj/machinery/computer/shuttle_control{
can_rename_ship = 1;
dir = 4;
- req_access = null;
req_one_access = list(38,72);
shuttle_tag = "SCC Shuttle"
},
@@ -9856,7 +9849,6 @@
"ayG" = (
/obj/machinery/door/window/northright{
name = "dispensary";
- req_access = null;
req_one_access = list(33,104)
},
/obj/effect/floor_decal/corner/orange/diagonal,
@@ -9872,7 +9864,6 @@
/obj/effect/floor_decal/corner/orange/diagonal,
/obj/machinery/door/window/eastleft{
name = "dispensary";
- req_access = null;
req_one_access = list(33,104)
},
/obj/item/reagent_containers/glass/beaker/large,
@@ -10199,7 +10190,6 @@
/obj/effect/floor_decal/corner/orange/diagonal,
/obj/machinery/door/window/eastright{
name = "dispensary";
- req_access = null;
req_one_access = list(33,104)
},
/obj/item/reagent_containers/dropper,
@@ -12711,8 +12701,7 @@
/obj/machinery/door/airlock/glass_centcom{
dir = 4;
icon = 'icons/obj/doors/Doorglass.dmi';
- name = "To: Mendell City Shuttle Terminal";
- req_access = null
+ name = "To: Mendell City Shuttle Terminal"
},
/turf/unsimulated/floor,
/area/centcom/holding)
@@ -13689,7 +13678,6 @@
name = "VIP Shuttle Access";
pixel_x = -7;
pixel_y = -23;
- req_access = null;
req_one_access = list(108,109)
},
/turf/unsimulated/floor,
@@ -13827,8 +13815,7 @@
/area/centcom/ferry)
"aJc" = (
/obj/machinery/door/airlock/centcom{
- name = "Hangar Access";
- req_access = null
+ name = "Hangar Access"
},
/obj/machinery/door/blast/odin{
dir = 4;
@@ -13840,8 +13827,7 @@
"aJd" = (
/obj/machinery/door/airlock/centcom{
dir = 1;
- name = "Entertainment Wing";
- req_access = null
+ name = "Entertainment Wing"
},
/turf/unsimulated/floor,
/area/centcom/holding)
@@ -13870,7 +13856,6 @@
dir = 1;
icon = 'icons/obj/doors/Doorglass.dmi';
name = "To: Upper Shuttle Terminal";
- req_access = null;
req_one_access = list(108,109)
},
/turf/unsimulated/floor,
@@ -14321,7 +14306,6 @@
/obj/machinery/door/airlock/glass_centcom{
dir = 4;
name = "Diplomatic Waiting Lounge";
- req_access = null;
req_one_access = list(38,72)
},
/obj/effect/floor_decal/spline/fancy/wood/corner{
@@ -14821,8 +14805,7 @@
/area/centcom/suppy)
"aMf" = (
/obj/machinery/door/airlock/centcom{
- name = "Auxillary Cryogenics";
- req_access = null
+ name = "Auxillary Cryogenics"
},
/turf/unsimulated/floor{
icon_state = "dark_preview"
@@ -14870,7 +14853,6 @@
dir = 4;
icon = 'icons/obj/doors/Doorglass.dmi';
name = "To: Lower Shuttle Terminal";
- req_access = null;
req_one_access = list(108,109)
},
/turf/unsimulated/floor,
@@ -14976,7 +14958,6 @@
dir = 4;
icon = 'icons/obj/doors/Doorglass.dmi';
name = "To: Lower Shuttle Terminal";
- req_access = null;
req_one_access = list(108,109)
},
/turf/unsimulated/floor,
@@ -15043,7 +15024,6 @@
"aMS" = (
/obj/machinery/door/window/eastleft{
name = "cockpit";
- req_access = null;
req_one_access = list(38,72)
},
/turf/simulated/floor/tiled/ramp{
@@ -20026,8 +20006,7 @@
/area/centcom/legion)
"aYR" = (
/obj/machinery/door/airlock/engineering{
- name = "Aft Thrusters Access - Deck 1";
- req_access = null
+ name = "Aft Thrusters Access - Deck 1"
},
/turf/unsimulated/floor/plating,
/area/centcom/legion)
@@ -24324,7 +24303,6 @@
req_access = list(150)
},
/obj/machinery/button/remote/blast_door{
- dir = 2;
id = "burglar_blast";
layer = 3;
name = "blast door";
@@ -29055,8 +29033,7 @@
id = "mercworkshop";
name = "shutter";
pixel_x = 10;
- pixel_y = -22;
- req_access = null
+ pixel_y = -22
},
/obj/machinery/light,
/obj/effect/floor_decal/corner/red/diagonal,
@@ -30239,7 +30216,6 @@
name = "blast door"
},
/obj/machinery/button/remote/blast_door{
- dir = 2;
id = "raiderblastdoor";
name = "blast door";
pixel_x = 25;
@@ -35220,6 +35196,12 @@
name = "overgrowth"
},
/area/horizon/holodeck/source_moghes)
+"cst" = (
+/obj/effect/landmark/lobby_mobs_location,
+/turf/unsimulated/floor,
+/area/centcom/start{
+ name = "Romanovich Cloud, Tau Ceti"
+ })
"cvH" = (
/obj/effect/decal{
anchored = 1;
@@ -37779,16 +37761,14 @@
id = "merchant_windows";
name = "viewing shutters";
pixel_x = -7;
- pixel_y = 25;
- req_access = null
+ pixel_y = 25
},
/obj/machinery/button/remote/blast_door{
dir = 1;
id = "merchant_airlock";
name = "external airlock shutter";
pixel_x = -7;
- pixel_y = 35;
- req_access = null
+ pixel_y = 35
},
/turf/simulated/floor/wood,
/area/shuttle/merchant)
@@ -40615,16 +40595,14 @@
id = "merchant_windows";
name = "viewing shutters";
pixel_x = -7;
- pixel_y = 25;
- req_access = null
+ pixel_y = 25
},
/obj/machinery/button/remote/blast_door{
dir = 1;
id = "merchant_airlock";
name = "external airlock shutter";
pixel_x = -7;
- pixel_y = 35;
- req_access = null
+ pixel_y = 35
},
/turf/simulated/floor/tiled/dark,
/area/shuttle/merchant)
@@ -41436,8 +41414,8 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+aNQ
+aNQ
aNQ
aNQ
aNQ
@@ -41693,8 +41671,8 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+aNQ
+cst
aNQ
aOg
aOg
@@ -41950,8 +41928,8 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+aNQ
+aNQ
aNQ
aOg
aOg
diff --git a/sound/attributions.txt b/sound/attributions.txt
index 50a08b25efa..2a69c130e06 100644
--- a/sound/attributions.txt
+++ b/sound/attributions.txt
@@ -82,3 +82,10 @@ ATTRIBUTIONS SECTION START
/sound/items/devices/minedetector/minedetector_medium.ogg - Part of "Detector", licensed under CC0. Obtained from https://freesound.org/people/fennelliott/sounds/426404/
/sound/items/devices/minedetector/minedetector_far.ogg - Part of "Detector", licensed under CC0. Obtained from https://freesound.org/people/fennelliott/sounds/426404/
ATTRIBUTIONS SECTION END
+
+ATTRIBUTIONS SECTOR START
+sound/music/lobby/konyang/konyang-1.ogg - PocketNoMoney
+sound/music/lobby/konyang/konyang-2.ogg - BGM gongbang
+sound/music/lobby/konyang/konyang-3.ogg - zolezzi
+sound/music/lobby/konyang/konyang-4.ogg - Karl Casey @ White Bat Audio
+ATTRIBUTIONS SECTION END
diff --git a/sound/music/clouds.s3m b/sound/music/lobby/clouds.s3m
similarity index 100%
rename from sound/music/clouds.s3m
rename to sound/music/lobby/clouds.s3m
diff --git a/sound/music/lobby/konyang/konyang-1.ogg b/sound/music/lobby/konyang/konyang-1.ogg
new file mode 100644
index 00000000000..313339bbaf3
Binary files /dev/null and b/sound/music/lobby/konyang/konyang-1.ogg differ
diff --git a/sound/music/lobby/konyang/konyang-2.ogg b/sound/music/lobby/konyang/konyang-2.ogg
new file mode 100644
index 00000000000..653866f3c4d
Binary files /dev/null and b/sound/music/lobby/konyang/konyang-2.ogg differ
diff --git a/sound/music/lobby/konyang/konyang-3.ogg b/sound/music/lobby/konyang/konyang-3.ogg
new file mode 100644
index 00000000000..4306c091a00
Binary files /dev/null and b/sound/music/lobby/konyang/konyang-3.ogg differ
diff --git a/sound/music/lobby/konyang/konyang-4.ogg b/sound/music/lobby/konyang/konyang-4.ogg
new file mode 100644
index 00000000000..16f3a5d0353
Binary files /dev/null and b/sound/music/lobby/konyang/konyang-4.ogg differ
diff --git a/sound/music/space.ogg b/sound/music/lobby/space.ogg
similarity index 100%
rename from sound/music/space.ogg
rename to sound/music/lobby/space.ogg
diff --git a/sound/music/title2.ogg b/sound/music/lobby/title2.ogg
similarity index 100%
rename from sound/music/title2.ogg
rename to sound/music/lobby/title2.ogg
diff --git a/sound/music/traitor.ogg b/sound/music/lobby/traitor.ogg
similarity index 100%
rename from sound/music/traitor.ogg
rename to sound/music/lobby/traitor.ogg
diff --git a/sound/serversound_list.txt b/sound/serversound_list.txt
index 6fde246a661..134f6cdf63e 100644
--- a/sound/serversound_list.txt
+++ b/sound/serversound_list.txt
@@ -9,5 +9,5 @@ sound/music/space.ogg
sound/music/thunderdome.ogg
sound/music/title1.ogg
sound/music/title2.ogg
-sound/music/traitor.ogg
-sound/music/velvet_rose.ogg
\ No newline at end of file
+sound/music/lobby/traitor.ogg
+sound/music/velvet_rose.ogg
diff --git a/tgui/packages/tgui/interfaces/GhostSpawner.tsx b/tgui/packages/tgui/interfaces/GhostSpawner.tsx
index c12219b4e2a..4dfa460095f 100644
--- a/tgui/packages/tgui/interfaces/GhostSpawner.tsx
+++ b/tgui/packages/tgui/interfaces/GhostSpawner.tsx
@@ -87,7 +87,7 @@ export const GhostSpawner = (props, context) => {
``
);
- const spawners = data.spawners.filter(
+ const spawners = data.spawners?.filter(
(S) => S.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1
);
@@ -155,7 +155,7 @@ export const GhostSpawner = (props, context) => {
Available Slots
Actions
- {spawners.map(
+ {spawners?.map(
(spawner) =>
(spawner.tags.indexOf(tab) > -1 || tab === 'All') && (