diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 59319c4b8b1..1760c46faea 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -69,7 +69,7 @@ jobs:
run: |
sudo dpkg --add-architecture i386
sudo apt update || true
- sudo apt install zlib1g-dev:i386 libssl-dev:i386 pkg-config:i386
+ sudo apt install zlib1g-dev:i386 libssl-dev:i386
ldd librust_g.so
- name: Unit Tests
run: |
diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm
index b512065f61c..c1606e77f67 100644
--- a/code/__defines/gamemode.dm
+++ b/code/__defines/gamemode.dm
@@ -38,9 +38,11 @@
#define BE_LOYALIST 0x4000
#define BE_PAI 0x8000
//VOREStation Add
-#define BE_LOSTDRONE 0x10000
-#define BE_MAINTPRED 0x20000
-#define BE_MORPH 0x40000
+#define BE_LOSTDRONE 0x10000
+#define BE_MAINTPRED 0x20000
+#define BE_MORPH 0x40000
+#define BE_CORGI 0x80000
+#define BE_CURSEDSWORD 0x100000
//VOREStation Add End
var/list/be_special_flags = list(
@@ -64,6 +66,8 @@ var/list/be_special_flags = list(
"Lost Drone" = BE_LOSTDRONE,
"Maint Pred" = BE_MAINTPRED,
"Morph" = BE_MORPH,
+ "Corgi" = BE_CORGI,
+ "Cursed Sword" = BE_CURSEDSWORD,
//VOREStation Add End
)
diff --git a/code/__defines/is_helpers.dm b/code/__defines/is_helpers.dm
index 9a1b3871df6..07c25a40ab5 100644
--- a/code/__defines/is_helpers.dm
+++ b/code/__defines/is_helpers.dm
@@ -21,6 +21,8 @@
#define isstorage(A) istype(A, /obj/item/weapon/storage)
+#define ismecha(A) istype(A, /obj/mecha)
+
//---------------
//#define isarea(D) istype(D, /area) //Built in
diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm
index ed4734f355e..c9727a8a98b 100644
--- a/code/_helpers/game.dm
+++ b/code/_helpers/game.dm
@@ -249,13 +249,13 @@
/mob/living/silicon/robot/can_hear_radio(var/list/hearturfs)
var/turf/T = get_turf(src)
var/obj/item/device/radio/borg/R = hearturfs[T] // this should be an assoc list of turf-to-radio
-
+
// We heard it on our own radio? We use power for that.
if(istype(R) && R.myborg == src)
var/datum/robot_component/CO = get_component("radio")
if(!CO || !is_component_functioning("radio") || !cell_use_power(CO.active_usage))
return FALSE // Sorry, couldn't hear
-
+
return R // radio, true, false, what's the difference
/mob/observer/dead/can_hear_radio(var/list/hearturfs)
@@ -272,14 +272,17 @@
var/list/hear = dview(range,T,INVISIBILITY_MAXIMUM)
var/list/hearturfs = list()
-
+
// Openspace visibility handling
// Below turfs we can see
for(var/turf/simulated/open/O in hear)
var/turf/U = GetBelow(O)
while(istype(U))
hearturfs |= U
- U = GetBelow(U)
+ if(isopenspace(U))
+ U = GetBelow(U)
+ else
+ U = null
// Above us
var/above_range = range
diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm
index 8f760c3cc99..455732fa7c6 100644
--- a/code/_helpers/global_lists_vr.dm
+++ b/code/_helpers/global_lists_vr.dm
@@ -229,7 +229,8 @@ var/global/list/edible_trash = list(/obj/item/broken_device,
/obj/item/weapon/storage/fancy/egg_box,
/obj/item/weapon/storage/wallet,
/obj/item/weapon/storage/vore_egg,
- /obj/item/weapon/bikehorn/tinytether
+ /obj/item/weapon/bikehorn/tinytether,
+ /obj/item/capture_crystal
)
var/global/list/contamination_flavors = list(
diff --git a/code/_macros_vr.dm b/code/_macros_vr.dm
index 2eecbe69ed1..314689541e9 100644
--- a/code/_macros_vr.dm
+++ b/code/_macros_vr.dm
@@ -1 +1,2 @@
#define isbelly(A) istype(A, /obj/belly)
+#define iscapturecrystal(A) istype(A, /obj/item/capture_crystal)
diff --git a/code/controllers/subsystems/ai.dm b/code/controllers/subsystems/ai.dm
index 4ed43a34811..9df293f417a 100644
--- a/code/controllers/subsystems/ai.dm
+++ b/code/controllers/subsystems/ai.dm
@@ -32,10 +32,11 @@ SUBSYSTEM_DEF(ai)
while(currentrun.len)
var/datum/ai_holder/A = currentrun[currentrun.len]
--currentrun.len
- if(!A || QDELETED(A) || !A.holder?.loc || A.busy) // Doesn't exist or won't exist soon or not doing it this tick
+ var/mob/living/L = A.holder //VOREStation Edit Start
+ if(!A || QDELETED(A) || !L?.loc || A.busy) // Doesn't exist or won't exist soon or not doing it this tick
continue
- if(process_z[get_z(A.holder)])
+ if(process_z[get_z(L)] || !L.low_priority) //VOREStation Edit End
A.handle_strategicals()
else
slept_mobs++
diff --git a/code/controllers/subsystems/mapping.dm b/code/controllers/subsystems/mapping.dm
index 06bf16e2557..832a84784d2 100644
--- a/code/controllers/subsystems/mapping.dm
+++ b/code/controllers/subsystems/mapping.dm
@@ -76,7 +76,9 @@ SUBSYSTEM_DEF(mapping)
// VOREStation Edit Start: Enable This
/datum/controller/subsystem/mapping/proc/loadLateMaps()
var/list/deffo_load = using_map.lateload_z_levels
- var/list/maybe_load = using_map.lateload_single_pick
+ var/list/maybe_load = using_map.lateload_gateway
+ var/list/also_load = using_map.lateload_overmap
+
for(var/list/maplist in deffo_load)
if(!islist(maplist))
@@ -110,6 +112,28 @@ SUBSYSTEM_DEF(mapping)
error("Randompick Z level \"[map]\" is not a valid map!")
else
MT.load_new_z(centered = FALSE)
+
+ if(LAZYLEN(also_load)) //Just copied from gateway picking, this is so we can have a kind of OM map version of the same concept.
+ var/picklist = pick(also_load)
+
+ if(!picklist) //No lateload maps at all
+ return
+
+ if(!islist(picklist)) //So you can have a 'chain' of z-levels that make up one away mission
+ error("Randompick Z level [picklist] is not a list! Must be in a list!")
+ return
+
+ for(var/map in picklist)
+ if(islist(map))
+ // TRIPLE NEST. In this situation we pick one at random from the choices in the list.
+ //This allows a sort of a1,a2,a3,b1,b2,b3,c1,c2,c3 setup where it picks one 'a', one 'b', one 'c'
+ map = pick(map)
+ var/datum/map_template/MT = map_templates[map]
+ if(!istype(MT))
+ error("Randompick Z level \"[map]\" is not a valid map!")
+ else
+ MT.load_new_z(centered = FALSE)
+
/datum/controller/subsystem/mapping/proc/preloadShelterTemplates()
for(var/datum/map_template/shelter/shelter_type as anything in subtypesof(/datum/map_template/shelter))
diff --git a/code/controllers/subsystems/persist_vr.dm b/code/controllers/subsystems/persist_vr.dm
index a00d4f7a3dd..c40a0b0e35d 100644
--- a/code/controllers/subsystems/persist_vr.dm
+++ b/code/controllers/subsystems/persist_vr.dm
@@ -25,6 +25,7 @@ SUBSYSTEM_DEF(persist)
return
if(!resumed)
src.currentrun = human_mob_list.Copy()
+ src.currentrun += silicon_mob_list.Copy()
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
@@ -41,9 +42,7 @@ SUBSYSTEM_DEF(persist)
return
continue
- // Do not collect useless PTO
var/department_earning = J.pto_type
- clear_unused_pto(M)
// Determine special PTO types and convert properly
if(department_earning == PTO_CYBORG)
@@ -103,12 +102,4 @@ SUBSYSTEM_DEF(persist)
// They have a custom title, aren't crew, or someone deleted their record, so we need a fallback method.
// Let's check the mind.
if(M.mind && M.mind.assigned_role)
- . = job_master.GetJob(M.mind.assigned_role)
-
-// This proc tries makes sure old Command PTO doesn't linger
-/datum/controller/subsystem/persist/proc/clear_unused_pto(var/mob/M)
- var/client/C = M.client
- LAZYINITLIST(C.department_hours)
- if(C.department_hours[DEPARTMENT_COMMAND])
- C.department_hours[DEPARTMENT_COMMAND] = null
- C.department_hours.Remove(DEPARTMENT_COMMAND)
+ . = job_master.GetJob(M.mind.assigned_role)
\ No newline at end of file
diff --git a/code/controllers/subsystems/persistence.dm b/code/controllers/subsystems/persistence.dm
index f238621b3e1..e20c83e5a59 100644
--- a/code/controllers/subsystems/persistence.dm
+++ b/code/controllers/subsystems/persistence.dm
@@ -4,7 +4,7 @@ SUBSYSTEM_DEF(persistence)
flags = SS_NO_FIRE
var/list/tracking_values = list()
var/list/persistence_datums = list()
-
+
/// Places our subsystem can spawn paintings (helps with art spawning differently across maps)
var/list/obj/structure/sign/painting/painting_frames = list()
var/list/all_paintings = list()
@@ -36,10 +36,6 @@ SUBSYSTEM_DEF(persistence)
if(!A || (A.flags & AREA_FLAG_IS_NOT_PERSISTENT))
return
-// if((!T.z in GLOB.using_map.station_levels) || !initialized)
- if(!(T.z in using_map.station_levels))
- return
-
if(!(T.z in using_map.persist_levels))
return
diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm
index c471c47c812..6a342f58203 100644
--- a/code/datums/ghost_query.dm
+++ b/code/datums/ghost_query.dm
@@ -47,7 +47,7 @@
for(var/ban in check_bans)
if(jobban_isbanned(candidate, ban))
return FALSE // They're banned from this role.
-
+
return TRUE
/// Send async alerts and ask for responses. Expects you to have tested D for client and type already
@@ -59,10 +59,10 @@
var/client/C = D.client
window_flash(C)
-
+
if(query_sound)
SEND_SOUND(C, sound(query_sound))
-
+
tgui_alert_async(D, question, "[role_name] request", list("Yes", "No", "Never for this round"), CALLBACK(src, .proc/get_reply), wait_time SECONDS)
/// Process an async alert response
@@ -70,9 +70,9 @@
var/mob/observer/dead/D = usr
if(!D?.client)
return
-
+
// Unhandled are "No" and "Nevermind" responses, which should just do nothing
-
+
// This response is always fine, doesn't warrant retesting
switch(response)
if("Never for this round")
@@ -189,10 +189,12 @@
role_name = "Dark Creature"
question = "A curious explorer has touched a mysterious rune. \
Would you like to play as the creature it summons?"
+ be_special_flag = BE_CORGI
cutoff_number = 1
/datum/ghost_query/cursedblade
role_name = "Cursed Sword"
question = "A cursed blade has been discovered by a curious explorer. \
Would you like to play as the soul imprisoned within?"
+ be_special_flag = BE_CURSEDSWORD
cutoff_number = 1
diff --git a/code/datums/supplypacks/misc_vr.dm b/code/datums/supplypacks/misc_vr.dm
index df7af42f5c7..98a0e7e3323 100644
--- a/code/datums/supplypacks/misc_vr.dm
+++ b/code/datums/supplypacks/misc_vr.dm
@@ -99,8 +99,8 @@
)
cost = 250
containertype = /obj/structure/closet/crate/secure/gear
- containername = "Commonwealth medical hardsuit crate"
- access = access_medical
+ containername = "Commonwealth engineering hardsuit crate"
+ access = access_engine
/datum/supply_pack/misc/zero_rig
name = "null hardsuit (jets)"
diff --git a/code/datums/vending/stored_item.dm b/code/datums/vending/stored_item.dm
index 3b46c6be3ff..82a3d087c94 100644
--- a/code/datums/vending/stored_item.dm
+++ b/code/datums/vending/stored_item.dm
@@ -75,15 +75,15 @@
/datum/stored_item/stack/get_product(var/product_location, var/count)
if(!LAZYLEN(instances))
return null // Shouldn't happen, but will loudly complain if it breaks
-
+
var/obj/item/stack/S = instances[1]
count = min(count, S.get_max_amount())
src.amount -= count // We won't vend more than one full stack per call
-
+
// Case 1: Draw the full amount from the first instance
if(count < S.get_amount())
S = S.split(count)
-
+
// Case 2: Amount at least one stack, or have to accumulate
else if(count >= S.get_amount())
count -= S.get_amount()
@@ -91,6 +91,8 @@
for(var/obj/item/stack/T as anything in instances)
if(count <= 0)
break
+ if(T.get_amount() <= count)
+ instances -=T
count -= T.transfer_to(S, count)
S.forceMove(product_location)
diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm
index d00efc79b6c..4c684abb999 100644
--- a/code/game/machinery/bioprinter.dm
+++ b/code/game/machinery/bioprinter.dm
@@ -34,6 +34,7 @@
"Eyes" = list(/obj/item/organ/internal/eyes, 20),
"Liver" = list(/obj/item/organ/internal/liver, 20),
"Spleen" = list(/obj/item/organ/internal/spleen, 20),
+ "Stomach" = list(/obj/item/organ/internal/stomach, 20),
"Arm, Left" = list(/obj/item/organ/external/arm, 40),
"Arm, Right" = list(/obj/item/organ/external/arm/right, 40),
"Leg, Left" = list(/obj/item/organ/external/leg, 40),
@@ -80,7 +81,7 @@
/obj/machinery/organ_printer/Initialize()
. = ..()
default_apply_parts()
-
+
/obj/machinery/organ_printer/examine(var/mob/user)
. = ..()
var/biomass = get_biomass_volume()
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index 4061c677db5..9919fc3ee46 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -1083,7 +1083,7 @@
/obj/machinery/computer/arcade/clawmachine
name = "AlliCo Grab-a-Gift"
desc = "Show off your arcade skills for that special someone!"
- icon_state = "clawmachine"
+ icon_state = "clawmachine_new"
icon_keyboard = null
icon_screen = null
circuit = /obj/item/weapon/circuitboard/arcade/clawmachine
@@ -1244,10 +1244,10 @@
/// TGUI Stuff
-/obj/machinery/computer/arcade/clawmachine/tgui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/tgui_state/state = GLOB.tgui_default_state)
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
+/obj/machinery/computer/arcade/clawmachine/tgui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
- ui = new(user, src, ui_key, "ClawMachine", name, 300, 400, master_ui, state)
+ ui = new(user, src, "ClawMachine", name, ui_x = 300, ui_y = 400)
ui.autoupdate = TRUE
ui.open()
@@ -1270,7 +1270,7 @@
if(action == "newgame" && gamepaid == 1)
gameStatus = "CLAWMACHINE_ON"
- icon_state = "clawmachine_move"
+ icon_state = "clawmachine_new_move"
instructions = "Guide the claw to the prize you want!"
wintick = 0
@@ -1307,7 +1307,7 @@
winscreen = "Aw, shucks. Try again!"
wintick = 0
gamepaid = 0
- icon_state = "clawmachine"
+ icon_state = "clawmachine_new"
gameStatus = "CLAWMACHINE_END"
/obj/machinery/computer/arcade/clawmachine/emag_act(mob/user)
diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm
index 1d5392fc54f..c3584ee48a8 100644
--- a/code/game/machinery/computer/guestpass.dm
+++ b/code/game/machinery/computer/guestpass.dm
@@ -5,6 +5,7 @@
name = "guest pass"
desc = "Allows temporary access to station areas."
icon_state = "guest"
+ initial_sprite_stack = list()
light_color = "#0099ff"
var/temp_access = list() //to prevent agent cards stealing access as permanent
@@ -12,6 +13,9 @@
var/expired = 0
var/reason = "NOT SPECIFIED"
+/obj/item/weapon/card/id/guest/update_icon()
+ return
+
/obj/item/weapon/card/id/guest/GetAccess()
if(world.time > expiration_time)
return access
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 7ff6f5971b5..20d0f634dab 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -979,6 +979,7 @@ About the new airlock wires panel:
return
/obj/machinery/door/airlock/AltClick(mob/user as mob)
+ . = ..()
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(!Adjacent(user))
return
@@ -988,13 +989,13 @@ About the new airlock wires panel:
if(icon_state == "door_closed" && arePowerSystemsOn())
flick("door_deny", src)
playsound(src, knock_hammer_sound, 50, 0, 3)
- else if(arePowerSystemsOn())
+ else if(arePowerSystemsOn() && user.a_intent == I_HELP)
src.visible_message("[user] presses the door bell on \the [src].", "\The [src]'s bell rings.")
src.add_fingerprint(user)
if(icon_state == "door_closed")
flick("door_deny", src)
playsound(src, knock_sound, 50, 0, 3)
- else
+ else if(user.a_intent == I_HELP)
src.visible_message("[user] knocks on \the [src].", "Someone knocks on \the [src].")
src.add_fingerprint(user)
playsound(src, knock_unpowered_sound, 50, 0, 3)
diff --git a/code/game/machinery/doors/door_vr.dm b/code/game/machinery/doors/door_vr.dm
index 6583b841b85..1a504065cc3 100644
--- a/code/game/machinery/doors/door_vr.dm
+++ b/code/game/machinery/doors/door_vr.dm
@@ -101,7 +101,19 @@
/obj/machinery/door/blast/regular/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
return // blast doors are immune to fire completely.
-/obj/machinery/door/blast/regular/
+/obj/machinery/door/blast/regular
+ heat_proof = 1 //just so repairing them doesn't try to fireproof something that never takes fire damage
+
+/obj/machinery/door/blast/angled/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ return // blast doors are immune to fire completely.
+
+/obj/machinery/door/blast/angled
+ heat_proof = 1 //just so repairing them doesn't try to fireproof something that never takes fire damage
+
+/obj/machinery/door/blast/puzzle/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ return // blast doors are immune to fire completely.
+
+/obj/machinery/door/blast/puzzle
heat_proof = 1 //just so repairing them doesn't try to fireproof something that never takes fire damage
/obj/machinery/door/proc/toggle()
diff --git a/code/game/machinery/wall_frames.dm b/code/game/machinery/wall_frames.dm
index 83fdefe4427..be00cab96a0 100644
--- a/code/game/machinery/wall_frames.dm
+++ b/code/game/machinery/wall_frames.dm
@@ -4,6 +4,7 @@
icon = 'icons/obj/stock_parts.dmi'
icon_state = "frame_bitem"
var/build_machine_type
+ var/build_wall_only = FALSE
var/refund_amt = 5
var/refund_type = /obj/item/stack/material/steel
var/reverse = 0 //if resulting object faces opposite its dir (like light fixtures)
@@ -27,7 +28,7 @@
..()
update_type_list()
var/datum/frame/frame_types/frame_type
- if(!build_machine_type)
+ if(!build_machine_type && !build_wall_only)
var/datum/frame/frame_types/response = tgui_input_list(user, "What kind of frame would you like to make?", "Frame type request", frame_types_floor)
if(!response)
return
diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm
index cab7caba172..2c65530b9fe 100644
--- a/code/game/machinery/wishgranter.dm
+++ b/code/game/machinery/wishgranter.dm
@@ -3,16 +3,18 @@
desc = "You're not so sure about this, anymore..."
icon = 'icons/obj/device.dmi'
icon_state = "syndbeacon"
- use_power = USE_POWER_OFF
- anchored = TRUE
- density = TRUE
- var/charges = 1
- var/insisting = 0
-/obj/machinery/wish_granter/attack_hand(var/mob/user as mob)
+ anchored = 1
+ density = 1
+ use_power = USE_POWER_OFF
+
+ var/chargesa = 1
+ var/insistinga = 0
+
+/obj/machinery/wish_granter/attack_hand(var/mob/living/carbon/human/user as mob)
usr.set_machine(src)
- if(charges <= 0)
+ if(chargesa <= 0)
to_chat(user, "The Wish Granter lies silent.")
return
@@ -23,47 +25,45 @@
else if(is_special_character(user))
to_chat(user, "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away.")
- else if(!insisting)
+ else if (!insistinga)
to_chat(user, "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?")
- insisting++
+ insistinga++
else
- var/message = "You speak. [pick("I want the station to disappear","Humanity is corrupt, mankind must be destroyed","I want to be rich", "I want to rule the world","I want immortality.")]. The Wish Granter answers."
- to_chat(user, message)
- to_chat(user, "Your head pounds for a moment, before your vision clears. You are the avatar of the Wish Granter, and your power is LIMITLESS! And it's all yours. You need to make sure no one can take it from you. No one can know, first.")
-
- charges--
- insisting = 0
-
- if(!(HULK in user.mutations))
- user.mutations.Add(HULK)
-
- if(!(LASER in user.mutations))
- user.mutations.Add(LASER)
-
- if(!(XRAY in user.mutations))
- user.mutations.Add(XRAY)
- user.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
- user.see_in_dark = 8
- user.see_invisible = SEE_INVISIBLE_LEVEL_TWO
-
- if(!(COLD_RESISTANCE in user.mutations))
- user.mutations.Add(COLD_RESISTANCE)
-
- if(!(TK in user.mutations))
- user.mutations.Add(TK)
-
- if(!(HEAL in user.mutations))
- user.mutations.Add(HEAL)
-
- user.update_mutations()
- user.mind.special_role = "Avatar of the Wish Granter"
-
- var/datum/objective/silence/silence = new
- silence.owner = user.mind
- user.mind.objectives += silence
-
- show_objectives(user.mind)
- to_chat(user, "You have a very bad feeling about this.")
-
- return
\ No newline at end of file
+ chargesa--
+ insistinga = 0
+ var/wish = tgui_input_list(usr, "You want...","Wish", list("Power","Wealth","Immortality","To Kill","Peace"))
+ switch(wish)
+ if("Power")
+ to_chat(user, "Your wish is granted, but at a terrible cost...")
+ to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul.")
+ if (!(LASER in user.mutations))
+ user.mutations.Add(LASER)
+ to_chat(user, "You feel pressure building behind your eyes.")
+ if (!(COLD_RESISTANCE in user.mutations))
+ user.mutations.Add(COLD_RESISTANCE)
+ to_chat(user, "Your body feels warm.")
+ if (!(XRAY in user.mutations))
+ user.mutations.Add(XRAY)
+ user.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
+ user.see_in_dark = 8
+ user.see_invisible = SEE_INVISIBLE_LEVEL_TWO
+ to_chat(user, "The walls suddenly disappear.")
+ if("Wealth")
+ to_chat(user, "Your wish is granted, but at a terrible cost...")
+ to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul.")
+ new /obj/structure/closet/syndicate/resources/everything(loc)
+ if("To Kill")
+ to_chat(user, "Your wish is granted, but at a terrible cost...")
+ to_chat(user, "The Wish Granter is outraged at your excessive wickedness, yet grants you your wish regardless. Someone will be killed soon.")
+ spawn(100)
+ if(user)
+ to_chat(user, "Suddenly, you feel as though you are being torn to countless shreds! Your wish is coming true!")
+ user.gib()
+ if("Peace")
+ to_chat(user, "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence.")
+ to_chat(user, "You feel as if you just narrowly avoided a terrible fate...")
+ for(var/mob/living/simple_mob/faithless/F in living_mob_list)
+ F.health = -10
+ F.set_stat(DEAD)
+ F.icon_state = "faithless_dead"
\ No newline at end of file
diff --git a/code/game/objects/effects/landmarks_vr.dm b/code/game/objects/effects/landmarks_vr.dm
index da406c8043b..e436447109d 100644
--- a/code/game/objects/effects/landmarks_vr.dm
+++ b/code/game/objects/effects/landmarks_vr.dm
@@ -1,6 +1,12 @@
/obj/effect/landmark
var/abductor = 0
+/obj/effect/landmark/vines
+ name = "vinestart"
+
+/obj/effect/landmark/vermin
+ name = "verminstart"
+
/obj/effect/landmark/late_antag
name = "Antag Latespawn"
var/antag_id
diff --git a/code/game/objects/effects/semirandom_mobs_vr.dm b/code/game/objects/effects/semirandom_mobs_vr.dm
index b7008b46277..e6b26da0878 100644
--- a/code/game/objects/effects/semirandom_mobs_vr.dm
+++ b/code/game/objects/effects/semirandom_mobs_vr.dm
@@ -51,11 +51,16 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/animal/passive/opossum),
list(/mob/living/simple_mob/animal/passive/pillbug),
list(/mob/living/simple_mob/animal/passive/snake),
+ list(/mob/living/simple_mob/animal/passive/snake/red),
+ list(/mob/living/simple_mob/animal/passive/snake/python),
list(/mob/living/simple_mob/animal/passive/tindalos),
list(/mob/living/simple_mob/animal/passive/yithian),
list(
/mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 1
+ /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/greatwolf = 1,
+ /mob/living/simple_mob/vore/greatwolf/black = 1,
+ /mob/living/simple_mob/vore/greatwolf/grey = 1
),
list(/mob/living/simple_mob/vore/rabbit),
list(/mob/living/simple_mob/vore/redpanda),
@@ -109,12 +114,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/animal/giant_spider/phorogenic = 10,
/mob/living/simple_mob/animal/giant_spider/thermic = 5,
/mob/living/simple_mob/animal/giant_spider/tunneler = 10,
- /mob/living/simple_mob/animal/giant_spider/webslinger = 5
- ),
- list(
- /mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 1
- ),
+ /mob/living/simple_mob/animal/giant_spider/webslinger = 5,
+ /mob/living/simple_mob/animal/giant_spider/broodmother = 1),
list(/mob/living/simple_mob/creature/strong),
list(/mob/living/simple_mob/faithless/strong),
list(/mob/living/simple_mob/animal/goat),
@@ -244,7 +245,6 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/mechanical/wahlem),
list(/mob/living/simple_mob/animal/passive/fox/syndicate),
list(/mob/living/simple_mob/animal/passive/fox),
- list(/mob/living/simple_mob/animal/wolf/direwolf),
list(/mob/living/simple_mob/animal/space/jelly),
list(
/mob/living/simple_mob/otie/feral,
@@ -253,12 +253,12 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/otie/red/chubby
),
list(
- /mob/living/simple_mob/shadekin/blue/ai = 100,
- /mob/living/simple_mob/shadekin/green/ai = 50,
- /mob/living/simple_mob/shadekin/orange/ai = 20,
- /mob/living/simple_mob/shadekin/purple/ai = 60,
- /mob/living/simple_mob/shadekin/red/ai = 40,
- /mob/living/simple_mob/shadekin/yellow/ai = 1
+ /mob/living/simple_mob/shadekin/blue = 100,
+ /mob/living/simple_mob/shadekin/green = 50,
+ /mob/living/simple_mob/shadekin/orange = 20,
+ /mob/living/simple_mob/shadekin/purple = 60,
+ /mob/living/simple_mob/shadekin/red = 40,
+ /mob/living/simple_mob/shadekin/yellow = 1
),
list(
/mob/living/simple_mob/vore/aggressive/corrupthound,
@@ -292,7 +292,21 @@ var/global/list/semirandom_mob_spawner_decisions = list()
),
list(/mob/living/simple_mob/vore/solargrub),
list(/mob/living/simple_mob/vore/woof),
- list(/mob/living/simple_mob/vore/alienanimals/teppi)
+ list(/mob/living/simple_mob/vore/alienanimals/teppi),
+ list(/mob/living/simple_mob/vore/alienanimals/space_ghost),
+ list(/mob/living/simple_mob/vore/alienanimals/catslug),
+ list(/mob/living/simple_mob/vore/alienanimals/space_jellyfish),
+ list(/mob/living/simple_mob/vore/alienanimals/startreader),
+ list(
+ /mob/living/simple_mob/vore/bigdragon,
+ /mob/living/simple_mob/vore/bigdragon/friendly),
+ list(
+ /mob/living/simple_mob/vore/leopardmander = 50,
+ /mob/living/simple_mob/vore/leopardmander/blue = 10,
+ /mob/living/simple_mob/vore/leopardmander/exotic = 1
+ ),
+ list(/mob/living/simple_mob/vore/sheep),
+ list(/mob/living/simple_mob/vore/weretiger)
)
/obj/random/mob/semirandom_mob_spawner/item_to_spawn()
@@ -359,11 +373,16 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/animal/passive/opossum) = 10,
list(/mob/living/simple_mob/animal/passive/pillbug) = 10,
list(/mob/living/simple_mob/animal/passive/snake) = 10,
+ list(/mob/living/simple_mob/animal/passive/snake/red) = 10,
+ list(/mob/living/simple_mob/animal/passive/snake/python) = 10,
list(/mob/living/simple_mob/animal/passive/tindalos) = 10,
list(/mob/living/simple_mob/animal/passive/yithian) = 10,
list(
/mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 1
+ /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/greatwolf = 1,
+ /mob/living/simple_mob/vore/greatwolf/black = 1,
+ /mob/living/simple_mob/vore/greatwolf/grey = 1
) = 10,
list(/mob/living/simple_mob/vore/rabbit) = 10,
list(/mob/living/simple_mob/vore/redpanda) = 10,
@@ -407,7 +426,18 @@ var/global/list/semirandom_mob_spawner_decisions = list()
) = 5,
list(/mob/living/simple_mob/animal/sif/siffet) = 5,
list(/mob/living/simple_mob/animal/sif/tymisian) = 5,
- list(/mob/living/simple_mob/vore/alienanimals/teppi) = 10
+ list(/mob/living/simple_mob/vore/alienanimals/teppi) = 10,
+ list(/mob/living/simple_mob/vore/alienanimals/dustjumper) = 5,
+ list(/mob/living/simple_mob/vore/alienanimals/space_jellyfish) = 5,
+ list(/mob/living/simple_mob/vore/alienanimals/space_ghost) = 5,
+ list(
+ /mob/living/simple_mob/vore/leopardmander = 50,
+ /mob/living/simple_mob/vore/leopardmander/blue = 10,
+ /mob/living/simple_mob/vore/leopardmander/exotic = 1
+ ) = 5,
+ list(/mob/living/simple_mob/vore/sheep) = 5,
+ list(/mob/living/simple_mob/vore/weretiger) = 5,
+ list(/mob/living/simple_mob/vore/alienanimals/skeleton) = 5
)
/obj/random/mob/semirandom_mob_spawner/monster
@@ -433,14 +463,17 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/animal/giant_spider/webslinger = 5
) = 100,
list(
- /mob/living/simple_mob/shadekin/red/ai = 5,
- /mob/living/simple_mob/shadekin/orange/ai = 1,
- /mob/living/simple_mob/shadekin/purple/ai = 10
+ /mob/living/simple_mob/shadekin/red = 5,
+ /mob/living/simple_mob/shadekin/orange = 1,
+ /mob/living/simple_mob/shadekin/purple = 10
) = 1,
list(
/mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 1,
- ) = 80,
+ /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/greatwolf = 1,
+ /mob/living/simple_mob/vore/greatwolf/black = 1,
+ /mob/living/simple_mob/vore/greatwolf/grey = 1
+ ) = 40,
list(/mob/living/simple_mob/creature/strong) = 40,
list(/mob/living/simple_mob/faithless/strong) = 20,
list(/mob/living/simple_mob/animal/goat) = 1,
@@ -501,7 +534,18 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/vore/oregrub = 5,
/mob/living/simple_mob/vore/oregrub/lava = 1
) = 15,
- list(/mob/living/simple_mob/vore/alienanimals/teppi) = 15
+ list(/mob/living/simple_mob/vore/alienanimals/teppi) = 15,
+ list(/mob/living/simple_mob/vore/alienanimals/space_jellyfish) = 5,
+ list(/mob/living/simple_mob/vore/alienanimals/space_ghost) = 5,
+ list(
+ /mob/living/simple_mob/vore/leopardmander = 50,
+ /mob/living/simple_mob/vore/leopardmander/blue = 10,
+ /mob/living/simple_mob/vore/leopardmander/exotic = 1
+ ) = 5,
+ list(/mob/living/simple_mob/vore/sheep) = 5,
+ list(/mob/living/simple_mob/vore/weretiger) = 5,
+ list(/mob/living/simple_mob/vore/alienanimals/skeleton) = 5,
+ list(/mob/living/simple_mob/vore/alienanimals/catslug) = 5
)
/obj/random/mob/semirandom_mob_spawner/humanoid
@@ -512,9 +556,9 @@ var/global/list/semirandom_mob_spawner_decisions = list()
possible_mob_types = list(
list(
- /mob/living/simple_mob/shadekin/blue/ai = 25,
- /mob/living/simple_mob/shadekin/green/ai = 10,
- /mob/living/simple_mob/shadekin/purple/ai = 1,
+ /mob/living/simple_mob/shadekin/blue = 25,
+ /mob/living/simple_mob/shadekin/green = 10,
+ /mob/living/simple_mob/shadekin/purple = 1,
) = 1,
list(/mob/living/simple_mob/vore/catgirl) = 100,
list(/mob/living/simple_mob/vore/wolfgirl) = 100,
@@ -537,7 +581,7 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/vore/lamia/zebra/bra,
/mob/living/simple_mob/vore/lamia/zebra/shirt
) = 100,
-// LOOK OKAY MERCS ARE HUMANOIDS SO THEY ARE HERE, but they are also kind of bullshit so they probably shouldn't be able to spawn in the same place as catgirls.
+// LOOK OKAY MERCS ARE HUMANOIDS SO THEY ARE HERE, but they are also kind of bullshit so they probably shouldn't be able to spawn in the same place as catgirls.
// I want some better potentially hostile humanoids that aren't stupid to fight. If they become a big issue I'll comment them out.
// For now they are just rare, and the ranged ones are way more rare than the melee ones, which I think will help balance them out.
list(
@@ -675,7 +719,12 @@ var/global/list/semirandom_mob_spawner_decisions = list()
mob_faction = "vore"
possible_mob_types = list(
- list(/mob/living/simple_mob/animal/wolf/direwolf) = 100,
+ list(
+ /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/greatwolf = 1,
+ /mob/living/simple_mob/vore/greatwolf/black = 1,
+ /mob/living/simple_mob/vore/greatwolf/grey = 1
+ ) = 100,
list(/mob/living/simple_mob/animal/space/jelly) = 70,
list(
/mob/living/simple_mob/otie/feral,
@@ -684,12 +733,12 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/otie/red/chubby
) = 50,
list(
- /mob/living/simple_mob/shadekin/blue/ai = 100,
- /mob/living/simple_mob/shadekin/green/ai = 50,
- /mob/living/simple_mob/shadekin/orange/ai = 20,
- /mob/living/simple_mob/shadekin/purple/ai = 60,
- /mob/living/simple_mob/shadekin/red/ai = 40,
- /mob/living/simple_mob/shadekin/yellow/ai = 1
+ /mob/living/simple_mob/shadekin/blue = 100,
+ /mob/living/simple_mob/shadekin/green = 50,
+ /mob/living/simple_mob/shadekin/orange = 20,
+ /mob/living/simple_mob/shadekin/purple = 60,
+ /mob/living/simple_mob/shadekin/red = 40,
+ /mob/living/simple_mob/shadekin/yellow = 1
) = 1,
list(
/mob/living/simple_mob/vore/aggressive/corrupthound,
diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm
index ccde6e9c606..ca3f7241c3a 100644
--- a/code/game/objects/items/apc_frame.dm
+++ b/code/game/objects/items/apc_frame.dm
@@ -6,6 +6,7 @@
icon = 'icons/obj/apc_repair.dmi'
icon_state = "apc_frame"
refund_amt = 2
+ build_wall_only = TRUE
matter = list(MAT_STEEL = 100, MAT_GLASS = 30)
/obj/item/frame/apc/try_build(turf/on_wall, mob/user as mob)
diff --git a/code/game/objects/items/devices/denecrotizer_vr.dm b/code/game/objects/items/devices/denecrotizer_vr.dm
index 164e0693984..4a6160b2424 100644
--- a/code/game/objects/items/devices/denecrotizer_vr.dm
+++ b/code/game/objects/items/devices/denecrotizer_vr.dm
@@ -76,6 +76,10 @@
// Clean up the simplemob
ghostjoin = FALSE
ghostjoin_icon()
+ if(capture_caught)
+ to_chat(src, "You are bound to [revivedby], follow their commands within reason and to the best of your abilities, and avoid betraying or abandoning them. You are allied with [revivedby]. Do not attack anyone for no reason. Of course, you may do scenes as you like, but you must still respect preferences.")
+ visible_message("[src]'s eyes flicker with a curious intelligence.", runemessage = "looks around")
+ return
if(revivedby != "no one")
to_chat(src, "Where once your life had been rough and scary, you have been assisted by [revivedby]. They seem to be the reason you are on your feet again... so perhaps you should help them out. Being as you were revived, you are allied with the station. Do not attack anyone unless they are threatening the one who revived you. And try to listen to the one who revived you within reason. Of course, you may do scenes as you like, but you must still respect preferences.")
visible_message("[src]'s eyes flicker with a curious intelligence.", runemessage = "looks around")
@@ -95,6 +99,10 @@
to_chat(D, "Sorry, someone else has already inhabited [src].")
return FALSE
+ if(capture_caught && !D.client.prefs.capture_crystal)
+ to_chat(D, "Sorry, [src] is participating in capture mechanics, and your preferences do not allow for that.")
+ return FALSE
+
// Insert whatever ban checks you want here if we ever add simplemob bans
return TRUE
diff --git a/code/game/objects/items/devices/translocator_vr.dm b/code/game/objects/items/devices/translocator_vr.dm
index 5cf4f70038b..02089da0378 100644
--- a/code/game/objects/items/devices/translocator_vr.dm
+++ b/code/game/objects/items/devices/translocator_vr.dm
@@ -409,7 +409,7 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/device/perfect_tele_beac
if(confirm == "Eat it!")
var/obj/belly/bellychoice = tgui_input_list(usr, "Which belly?","Select A Belly", L.vore_organs)
if(bellychoice)
- user.visible_message("[user] is trying to stuff \the [src] into [user.gender == MALE ? "his" : user.gender == FEMALE ? "her" : "their"] [bellychoice]!","You begin putting \the [src] into your [bellychoice]!")
+ user.visible_message("[user] is trying to stuff \the [src] into [user.gender == MALE ? "his" : user.gender == FEMALE ? "her" : "their"] [bellychoice.name]!","You begin putting \the [src] into your [bellychoice.name]!")
if(do_after(user,5 SECONDS,src))
user.unEquip(src)
forceMove(bellychoice)
diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm
new file mode 100644
index 00000000000..5c72d389e4f
--- /dev/null
+++ b/code/game/objects/items/weapons/capture_crystal.dm
@@ -0,0 +1,835 @@
+/obj/item/capture_crystal
+ name = "Curious Crystal"
+ desc = "A silent, unassuming crystal in what appears to be some kind of steel housing."
+ icon = 'icons/obj/capture_crystal_vr.dmi'
+ icon_state = "inactive"
+ drop_sound = 'sound/items/drop/ring.ogg'
+ pickup_sound = 'sound/items/pickup/ring.ogg'
+ throwforce = 0
+ force = 0
+ action_button_name = "Command"
+
+ var/active = FALSE //Is it set up?
+ var/mob/living/owner //Reference to the owner
+ var/mob/living/bound_mob //Reference to our bound mob
+ var/spawn_mob_type //The kind of mob an inactive crystal will try to spawn when activated
+ var/activate_cooldown = 30 SECONDS //How long do we wait between unleashing and recalling
+ var/last_activate //Automatically set by things that try to move the bound mob or capture things
+ var/empty_icon = "empty"
+ var/full_icon = "full"
+ var/capture_chance_modifier = 1 //So we can have special subtypes with different capture rates!
+
+/obj/item/capture_crystal/Initialize()
+ . = ..()
+ update_icon()
+
+//Let's make sure we clean up our references and things if the crystal goes away (such as when it's digested)
+/obj/item/capture_crystal/Destroy()
+ if(bound_mob)
+ if(bound_mob in contents)
+ unleash()
+ to_chat(bound_mob, "You feel like yourself again. You are no longer under the influence of \the [src]'s command.")
+ UnregisterSignal(bound_mob, COMSIG_PARENT_QDELETING)
+ bound_mob.capture_caught = FALSE
+ bound_mob = null
+ if(owner)
+ UnregisterSignal(owner, COMSIG_PARENT_QDELETING)
+ owner = null
+ return ..()
+
+/obj/item/capture_crystal/examine(user)
+ . = ..()
+ if(user == owner && bound_mob)
+ . += "[bound_mob]'s crystal"
+ if(isanimal(bound_mob))
+ . += "[bound_mob.health / bound_mob.maxHealth * 100]%"
+ if(bound_mob.ooc_notes)
+ . += "OOC Notes: \[View\]"
+ . += "\[Mechanical Vore Preferences\]"
+
+//Command! This lets the owner toggle hostile on AI controlled mobs, or send a silent command message to your bound mob, wherever they may be.
+/obj/item/capture_crystal/ui_action_click()
+ if(!ismob(loc))
+ return
+ var/mob/living/M = src.loc
+ if(M != owner)
+ to_chat(M, "\The [src] emits an unpleasant tone... It does not respond to your command.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(!bound_mob)
+ to_chat(M, "\The [src] emits an unpleasant tone... There is nothing to command.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(isanimal(bound_mob) && !bound_mob.client)
+ if(!isnull(bound_mob.get_AI_stance()))
+ var/datum/ai_holder/AI = bound_mob.ai_holder
+ AI.hostile = !AI.hostile
+ if(!AI.hostile)
+ AI.set_stance(STANCE_IDLE)
+ to_chat(M, span("notice", "\The [bound_mob] is now [AI.hostile ? "hostile" : "passive"]."))
+ log_admin("[key_name_admin(M)] set [bound_mob] to [AI.hostile].")
+ else if(bound_mob.client)
+ var/transmit_msg = tgui_input_text(usr, "What is your command?", "Command")
+ if(length(transmit_msg) >= MAX_MESSAGE_LEN)
+ to_chat(M, "Your message was TOO LONG!:[transmit_msg]")
+ return
+ transmit_msg = sanitize(transmit_msg, max_length = MAX_MESSAGE_LEN)
+ if(isnull(transmit_msg))
+ to_chat(M, "You decided against it.")
+ return
+ to_chat(bound_mob, "\The [owner] commands, '[transmit_msg]'")
+ to_chat(M, "Your command has been transmitted, '[transmit_msg]'")
+ log_admin("[key_name_admin(M)] sent the command, '[transmit_msg]' to [bound_mob].")
+ else
+ to_chat(M, "\The [src] emits an unpleasant tone... \The [bound_mob] is unresponsive.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+
+//Lets the owner get AI controlled bound mobs to follow them, or tells player controlled mobs to follow them.
+/obj/item/capture_crystal/verb/follow_owner()
+ set name = "Toggle Follow"
+ set category = "Object"
+ set src in usr
+ if(!ismob(loc))
+ return
+ var/mob/living/M = src.loc
+ if(M != owner)
+ to_chat(M, "\The [src] emits an unpleasant tone... It does not respond to your command.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(bound_mob.stat != CONSCIOUS)
+ to_chat(M, "\The [src] emits an unpleasant tone... \The [bound_mob] is not able to hear your command.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(bound_mob.client)
+ to_chat(bound_mob, "\The [owner] wishes for you to follow them.")
+ else if(bound_mob in contents)
+ var/datum/ai_holder/AI = bound_mob.ai_holder
+ if(AI.leader)
+ to_chat(M, "\The [src] chimes~ \The [bound_mob] stopped following [AI.leader].")
+ AI.lose_follow(AI.leader)
+ else
+ AI.set_follow(M)
+ to_chat(M, "\The [src] chimes~ \The [bound_mob] started following following [AI.leader].")
+ else if(!(bound_mob in view(M)))
+ to_chat(M, "\The [src] emits an unpleasant tone... \The [bound_mob] is not able to hear your command.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ var/datum/ai_holder/AI = bound_mob.ai_holder
+ if(AI.leader)
+ to_chat(M, "\The [src] chimes~ \The [bound_mob] stopped following [AI.leader].")
+ AI.lose_follow(AI.leader)
+ else
+ AI.set_follow(M)
+ to_chat(M, "\The [src] chimes~ \The [bound_mob] started following following [AI.leader].")
+
+//Don't really want people 'haha funny' capturing and releasing one another willy nilly. So! If you wanna release someone, you gotta destroy the thingy.
+//(Which is consistent with how it works with digestion anyway.)
+/obj/item/capture_crystal/verb/destroy_crystal()
+ set name = "Destroy Crystal"
+ set category = "Object"
+ set src in usr
+ if(!ismob(loc))
+ return
+ var/mob/living/M = src.loc
+ if(M != owner)
+ to_chat(M, "\The [src] is too hard for you to break.")
+ else
+ M.visible_message("\The [M] crushes \the [src] into dust...", "\The [src] cracks and disintegrates in your hand.")
+ qdel(src)
+
+//If you catch something/someone and want to give it to someone else though, that's fine.
+/obj/item/capture_crystal/verb/release_ownership()
+ set name = "Release Ownership"
+ set category = "Object"
+ set src in usr
+ if(!ismob(loc))
+ return
+ var/mob/living/M = src.loc
+ if(M != owner)
+ to_chat(M, "\The [src] emits an unpleasant tone... It does not respond to your command.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else
+ M.visible_message("\The [src] flickers in \the [M]'s hand and emits a little tone.", "\The [src] flickers in your hand and emits a little tone.")
+ playsound(src, 'sound/effects/capture-crystal-out.ogg', 75, 1, -1)
+ UnregisterSignal(owner, COMSIG_PARENT_QDELETING)
+ owner = null
+
+//Let's make inviting ghosts be an option you can do instead of an automatic thing!
+/obj/item/capture_crystal/verb/invite_ghost()
+ set name = "Enhance (Toggle Ghost Join)"
+ set category = "Object"
+ set src in usr
+ if(!ismob(loc))
+ return
+ var/mob/living/U = src.loc
+ if(!bound_mob)
+ to_chat(U, "\The [src] emits an unpleasant tone... There is nothing to enhance.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ return
+ else if(U != owner)
+ to_chat(U, "\The [src] emits an unpleasant tone... It does not respond to your command.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ return
+ else if(bound_mob.client || !isanimal(bound_mob))
+ to_chat(U, "\The [src] emits an unpleasant tone... \The [bound_mob] is not eligable for enhancement.")
+ playsound(src, 'sound/effects/capture-crystal-problem.ogg', 75, 1, -1)
+ return //Need to type cast the mob so it can detect ghostjoin
+ var/mob/living/simple_mob/M = bound_mob
+ if(M.ghostjoin)
+ M.ghostjoin = FALSE
+ to_chat(U, "\The [bound_mob] is no longer eligable to be joined by ghosts.")
+ else if(tgui_alert(U, "Do you want to offer your [bound_mob] up to ghosts to play as? There is no way undo this once a ghost takes over.", "Invite ghosts?",list("No","Yes")) == "Yes")
+ M.ghostjoin = TRUE
+ to_chat(U, "\The [bound_mob] is now eligable to be joined by ghosts. It will need to be out of the crystal to be able to be joined.")
+ else
+ to_chat(U, "You decided against it.")
+
+/obj/item/capture_crystal/update_icon()
+ . = ..()
+ if(spawn_mob_type)
+ icon_state = full_icon
+ else if(!bound_mob)
+ icon_state = "inactive"
+ else if(bound_mob in contents)
+ icon_state = full_icon
+ else
+ icon_state = empty_icon
+ if(!cooldown_check())
+ icon_state = "[icon_state]-busy"
+ spawn(activate_cooldown) //If it's busy then we want to wait a bit to fix the sprite after the cooldown is done.
+ update_icon()
+
+/obj/item/capture_crystal/proc/cooldown_check()
+ if(world.time < last_activate + activate_cooldown)
+ return FALSE
+ else return TRUE
+
+/obj/item/capture_crystal/attack(mob/living/M, mob/living/user)
+ if(bound_mob)
+ if(!bound_mob.devourable) //Don't eat if prefs are bad
+ return
+ if(user.zone_sel.selecting == "mouth") //Click while targetting the mouth and you eat/feed the stored mob to whoever you clicked on
+ if(bound_mob in contents)
+ user.visible_message("\The [user] moves \the [src] to [M]'s [M.vore_selected]...")
+ M.perform_the_nom(M, bound_mob, M, M.vore_selected)
+ else if(M == user) //You don't have a mob, you ponder the orb instead of trying to capture yourself
+ user.visible_message("\The [user] ponders \the [src]...", "You ponder \the [src]...")
+ else if (cooldown_check()) //Try to capture someone without throwing
+ user.visible_message("\The [user] taps \the [M] with \the [src].")
+ activate(user, M)
+ else
+ to_chat(user, "\The [src] emits an unpleasant tone... It is not ready yet.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+
+//Tries to unleash or recall your stored mob
+/obj/item/capture_crystal/attack_self(mob/living/user)
+ if(!cooldown_check())
+ to_chat(user, "\The [src] emits an unpleasant tone... It is not ready yet.")
+ if(bound_mob)
+ playsound(src, 'sound/effects/capture-crystal-problem.ogg', 75, 1, -1)
+ else
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(user == bound_mob) //You can't recall yourself
+ to_chat(user, "\The [src] emits an unpleasant tone... It does not activate for you.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(!active)
+ activate(user)
+ else
+ determine_action(user)
+
+//Make it so the crystal knows if its mob references get deleted to make sure things get cleaned up
+/obj/item/capture_crystal/proc/knowyoursignals(mob/living/M, mob/living/U)
+ RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/mob_was_deleted, TRUE)
+ RegisterSignal(U, COMSIG_PARENT_QDELETING, .proc/owner_was_deleted, TRUE)
+
+//The basic capture command does most of the registration work.
+/obj/item/capture_crystal/proc/capture(mob/living/M, mob/living/U)
+ if(!M.capture_crystal || M.capture_caught)
+ to_chat(U, "This creature is not suitable for capture.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ return
+ knowyoursignals(M, U)
+ owner = U
+ if(isanimal(M))
+ var/mob/living/simple_mob/S = M
+ S.revivedby = U.name
+ if(!bound_mob)
+ bound_mob = M
+ bound_mob.capture_caught = TRUE
+ desc = "A glowing crystal in what appears to be some kind of steel housing."
+
+//Determines the capture chance! So you can't capture AI mobs if they're perfectly healthy and all that
+/obj/item/capture_crystal/proc/capture_chance(mob/living/M, user)
+ if(capture_chance_modifier >= 100) //Master crystal always work
+ return 100
+ var/capture_chance = ((1 - (M.health / M.maxHealth)) * 100) //Inverted health percent! 100% = 0%
+ //So I don't know how this works but here's a kind of explanation
+ //Basic chance + ((Mob's max health - minimum calculated health) / (Max allowed health - Min allowed health)*(Chance at Max allowed health - Chance at minimum allowed health)
+ capture_chance += 35 + ((M.maxHealth - 5)/ (1000-5)*(-100 - 35))
+ //Basically! Mobs over 1000 max health will be unable to be caught without using status effects.
+ //Thanks Aronai!
+ var/effect_count = 0 //This will give you a smol chance to capture if you have applied status effects, even if the chance would ordinarily be <0
+ if(M.stat == UNCONSCIOUS)
+ capture_chance += 0.1
+ effect_count += 1
+ else if(M.stat == CONSCIOUS)
+ capture_chance *= 0.9
+ else
+ capture_chance = 0
+ if(M.weakened) //Haha you fall down
+ capture_chance += 0.1
+ effect_count += 1
+ if(M.stunned) //What's the matter???
+ capture_chance += 0.1
+ effect_count += 1
+ if(M.on_fire) //AAAAAAAA
+ capture_chance += 0.1
+ effect_count += 1
+ if(M.paralysis) //Oh noooo
+ capture_chance += 0.1
+ effect_count += 1
+ if(M.ai_holder.stance == STANCE_IDLE) //SNEAK ATTACK???
+ capture_chance += 0.1
+ effect_count += 1
+
+ capture_chance *= capture_chance_modifier
+
+ if(capture_chance <= 0)
+ capture_chance = 0 + effect_count
+ if(capture_chance <= 0)
+ capture_chance = 0
+ to_chat(user, "There's no chance... It needs to be weaker.")
+
+ last_activate = world.time
+ log_admin("[user] threw a capture crystal at [M] and got [capture_chance]% chance to catch.")
+ return capture_chance
+
+//Handles checking relevent bans, preferences, and asking the player if they want to be caught
+/obj/item/capture_crystal/proc/capture_player(mob/living/M, mob/living/U)
+ if(jobban_isbanned(M, "GhostRoles"))
+ to_chat(U, "This creature is not suitable for capture.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(!M.capture_crystal || M.capture_caught)
+ to_chat(U, "This creature is not suitable for capture.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(tgui_alert(M, "Would you like to be caught by in [src] by [U]? You will be bound to their will.", "Become Caught",list("No","Yes")) == "Yes")
+ if(tgui_alert(M, "Are you really sure? The only way to undo this is to OOC escape while you're in the crystal.", "Become Caught", list("No","Yes")) == "Yes")
+ log_admin("[key_name(M)] has agreed to become caught by [key_name(U)].")
+ capture(M, U)
+ recall(U)
+ return
+ to_chat(U, "This creature is too strong willed to be captured.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+
+//The clean up procs!
+/obj/item/capture_crystal/proc/mob_was_deleted()
+ UnregisterSignal(bound_mob, COMSIG_PARENT_QDELETING)
+ UnregisterSignal(owner, COMSIG_PARENT_QDELETING)
+ bound_mob.capture_caught = FALSE
+ bound_mob = null
+ owner = null
+ active = FALSE
+ update_icon()
+
+/obj/item/capture_crystal/proc/owner_was_deleted()
+ UnregisterSignal(owner, COMSIG_PARENT_QDELETING)
+ owner = null
+ active = FALSE
+ update_icon()
+
+//If the crystal hasn't been set up, it does this
+/obj/item/capture_crystal/proc/activate(mob/living/user, target)
+ if(!cooldown_check()) //Are we ready to do things yet?
+ to_chat(thrower, "\The [src] clicks unsatisfyingly... It is not ready yet.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ return
+ if(spawn_mob_type && !bound_mob) //We don't already have a mob, but we know what kind of mob we want
+ bound_mob = new spawn_mob_type(src) //Well let's spawn it then!
+ bound_mob.faction = user.faction
+ spawn_mob_type = null
+ capture(bound_mob, user)
+ if(bound_mob) //We have a mob! Let's finish setting up.
+ user.visible_message("\The [src] clicks, and then emits a small chime.", "\The [src] grows warm in your hand, something inside is awake.")
+ active = TRUE
+ if(!owner) //Do we have an owner? It's pretty unlikely that this would ever happen! But it happens, let's claim the crystal.
+ owner = user
+ if(isanimal(bound_mob))
+ var/mob/living/simple_mob/S = bound_mob
+ S.revivedby = user.name
+ determine_action(user, target)
+ return
+ else if(isliving(target)) //So we don't have a mob, let's try to claim one! Is the target a mob?
+ var/mob/living/M = target
+ last_activate = world.time
+ if(M.capture_caught) //Can't capture things that were already caught.
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ to_chat(user, "\The [src] clicks unsatisfyingly... \The [M] is already under someone else's control.")
+ return
+ else if(M.stat == DEAD) //Is it dead? We can't influence dead things.
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ to_chat(user, "\The [src] clicks unsatisfyingly... \The [M] is not in a state to be captured.")
+ return
+ else if(M.client) //Is it player controlled?
+ capture_player(M, user) //We have to do things a little differently if so.
+ return
+ else if(!isanimal(M)) //So it's not player controlled, but it's also not a simplemob?
+ to_chat(user, "This creature is not suitable for capture.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ return
+ var/mob/living/simple_mob/S = M
+ if(!S.ai_holder) //We don't really want to capture simplemobs that don't have an AI
+ to_chat(user, "This creature is not suitable for capture.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(prob(capture_chance(S, user))) //OKAY! So we have an NPC simplemob with an AI, let's calculate its capture chance! It varies based on the mob's condition.
+ capture(S, user) //We did it! Woo! We capture it!
+ user.visible_message("\The [src] clicks, and then emits a small chime.", "Alright! \The [S] was caught!")
+ recall(user)
+ active = TRUE
+ else //Shoot, it didn't work and now it's mad!!!
+ S.ai_holder.go_wake()
+ S.ai_holder.target = user
+ S.ai_holder.track_target_position()
+ S.ai_holder.set_stance(STANCE_FIGHT)
+ user.visible_message("\The [src] bonks into \the [S], angering it!")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ to_chat(user, "\The [src] clicks unsatisfyingly.")
+ update_icon()
+ return
+ //The target is not a mob, so let's not do anything.
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ to_chat(user, "\The [src] clicks unsatisfyingly.")
+
+//We're using the crystal, but what will it do?
+/obj/item/capture_crystal/proc/determine_action(mob/living/U, T)
+ if(!cooldown_check()) //Are we ready yet?
+ to_chat(thrower, "\The [src] clicks unsatisfyingly... It is not ready yet.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ return //No
+ if(bound_mob in contents) //Do we have our mob?
+ if(T)
+ unleash(U, T) //Yes, let's let it out!
+ else
+ unleash(U)
+ else if (bound_mob) //Do we HAVE a mob?
+ recall(U) //Yes, let's try to put it back in the crystal
+ else //No we don't have a mob, let's reset the crystal.
+ to_chat(U, "\The [src] clicks unsatisfyingly.")
+ active = FALSE
+ update_icon()
+ owner = null
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+
+//Let's try to call our mob back!
+/obj/item/capture_crystal/proc/recall(mob/living/user)
+ if(bound_mob in view(user)) //We can only recall it if we can see it
+ var/turf/turfmemory = get_turf(bound_mob)
+ if(isanimal(bound_mob))
+ var/mob/living/simple_mob/M = bound_mob
+ M.ai_holder.go_sleep() //AI doesn't need to think when it's in the crystal
+ bound_mob.forceMove(src)
+ last_activate = world.time
+ bound_mob.visible_message("\The [user]'s [src] flashes, disappearing [bound_mob] in an instant!!!", "\The [src] pulls you back into confinement in a flash of light!!!")
+ animate_action(turfmemory)
+ playsound(src, 'sound/effects/capture-crystal-in.ogg', 75, 1, -1)
+ update_icon()
+ else
+ to_chat(user, "\The [src] clicks and emits a small, unpleasant tone. \The [bound_mob] cannot be recalled.")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+
+//Let's let our mob out!
+/obj/item/capture_crystal/proc/unleash(mob/living/user, atom/target)
+ if(!user && !target) //We got thrown but we're not sure who did it, let's go to where the crystal is
+ bound_mob.forceMove(src.drop_location())
+ return
+ if(!target) //We know who wants to let us out, but they didn't say where, so let's drop us on them
+ bound_mob.forceMove(user.drop_location())
+ else //We got thrown! Let's go where we got thrown
+ bound_mob.forceMove(target.drop_location())
+ last_activate = world.time
+ if(isanimal(bound_mob))
+ var/mob/living/simple_mob/M = bound_mob
+ M.ai_holder.go_wake() //Okay it's time to do work, let's wake up!
+ bound_mob.faction = owner.faction //Let's make sure we aren't hostile to our owner or their friends
+ bound_mob.visible_message("\The [user]'s [src] flashes, \the [bound_mob] appears in an instant!!!", "The world around you rematerialize as you are unleashed from the [src] next to \the [user]. You feel a strong compulsion to enact \the [owner]'s will.")
+ animate_action(get_turf(bound_mob))
+ playsound(src, 'sound/effects/capture-crystal-out.ogg', 75, 1, -1)
+ update_icon()
+
+//Let's make a flashy sparkle when someone appears or disappears!
+/obj/item/capture_crystal/proc/animate_action(atom/thing)
+ var/image/coolanimation = image('icons/obj/capture_crystal_vr.dmi', null, "animation")
+ coolanimation.plane = PLANE_LIGHTING_ABOVE
+ thing.overlays += coolanimation
+ sleep(11)
+ thing.overlays -= coolanimation
+
+//IF the crystal somehow ends up in a tummy and digesting with a bound mob who doesn't want to be eaten, let's move them to the ground
+/obj/item/capture_crystal/digest_act(var/atom/movable/item_storage = null)
+ if(bound_mob in contents && !bound_mob.devourable)
+ bound_mob.forceMove(src.drop_location())
+ return ..()
+
+//We got thrown! Let's figure out what to do
+/obj/item/capture_crystal/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, datum/callback/callback)
+ . = ..()
+ if(target == bound_mob && thrower != bound_mob) //We got thrown at our bound mob (and weren't thrown by the bound mob) let's ignore the cooldown and just put them back in
+ recall(thrower)
+ else if(!cooldown_check()) //OTHERWISE let's obey the cooldown
+ to_chat(thrower, "\The [src] emits an soft tone... It is not ready yet.")
+ if(bound_mob)
+ playsound(src, 'sound/effects/capture-crystal-problem.ogg', 75, 1, -1)
+ else
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(!active) //The ball isn't set up, let's try to set it up.
+ if(isliving(target)) //We're hitting a mob, let's try to capture it.
+ sleep(10)
+ activate(thrower, target)
+ return
+ sleep(10)
+ activate(thrower, src)
+ else if(!bound_mob) //We hit something else, and we don't have a mob, so we can't really do anything!
+ to_chat(thrower, "\The [src] clicks unpleasantly...")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+ else if(bound_mob in contents) //We have our mob! Let's try to let it out.
+ sleep(10)
+ unleash(thrower, src)
+ update_icon()
+ else //Our mob isn't here, we can't do anything.
+ to_chat(thrower, "\The [src] clicks unpleasantly...")
+ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
+
+/obj/item/capture_crystal/great
+ capture_chance_modifier = 1.5
+
+/obj/item/capture_crystal/ultra
+ capture_chance_modifier = 2
+
+/obj/item/capture_crystal/master
+ capture_chance_modifier = 100
+
+/obj/item/capture_crystal/cass
+ spawn_mob_type = /mob/living/simple_mob/vore/woof/cass
+/obj/item/capture_crystal/adg
+ spawn_mob_type = /mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced
+/obj/item/capture_crystal/bigdragon
+ spawn_mob_type = /mob/living/simple_mob/vore/bigdragon
+/obj/item/capture_crystal/bigdragon/friendly
+ spawn_mob_type = /mob/living/simple_mob/vore/bigdragon/friendly
+/obj/item/capture_crystal/teppi
+ spawn_mob_type = /mob/living/simple_mob/vore/alienanimals/teppi
+/obj/item/capture_crystal/broodmother
+ spawn_mob_type = /mob/living/simple_mob/animal/giant_spider/broodmother
+/obj/item/capture_crystal/skeleton
+ spawn_mob_type = /mob/living/simple_mob/vore/alienanimals/skeleton
+/obj/item/capture_crystal/dustjumper
+ spawn_mob_type = /mob/living/simple_mob/vore/alienanimals/dustjumper
+
+/obj/item/capture_crystal/random
+ var/static/list/possible_mob_types = list(
+ list(/mob/living/simple_mob/animal/goat),
+ list(
+ /mob/living/simple_mob/animal/passive/bird,
+ /mob/living/simple_mob/animal/passive/bird/azure_tit,
+ /mob/living/simple_mob/animal/passive/bird/black_bird,
+ /mob/living/simple_mob/animal/passive/bird/european_robin,
+ /mob/living/simple_mob/animal/passive/bird/goldcrest,
+ /mob/living/simple_mob/animal/passive/bird/ringneck_dove,
+ /mob/living/simple_mob/animal/passive/bird/parrot,
+ /mob/living/simple_mob/animal/passive/bird/parrot/black_headed_caique,
+ /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar,
+ /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/blue,
+ /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/bluegreen,
+ /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel,
+ /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/grey,
+ /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/white,
+ /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/yellowish,
+ /mob/living/simple_mob/animal/passive/bird/parrot/eclectus,
+ /mob/living/simple_mob/animal/passive/bird/parrot/grey_parrot,
+ /mob/living/simple_mob/animal/passive/bird/parrot/kea,
+ /mob/living/simple_mob/animal/passive/bird/parrot/pink_cockatoo,
+ /mob/living/simple_mob/animal/passive/bird/parrot/sulphur_cockatoo,
+ /mob/living/simple_mob/animal/passive/bird/parrot/white_caique,
+ /mob/living/simple_mob/animal/passive/bird/parrot/white_cockatoo
+ ),
+ list(
+ /mob/living/simple_mob/animal/passive/cat,
+ /mob/living/simple_mob/animal/passive/cat/black
+ ),
+ list(/mob/living/simple_mob/animal/passive/chick),
+ list(/mob/living/simple_mob/animal/passive/cow),
+ list(/mob/living/simple_mob/animal/passive/dog/brittany),
+ list(/mob/living/simple_mob/animal/passive/dog/corgi),
+ list(/mob/living/simple_mob/animal/passive/dog/tamaskan),
+ list(/mob/living/simple_mob/animal/passive/fox),
+ list(/mob/living/simple_mob/animal/passive/hare),
+ list(/mob/living/simple_mob/animal/passive/lizard),
+ list(/mob/living/simple_mob/animal/passive/mouse),
+ list(/mob/living/simple_mob/animal/passive/mouse/jerboa),
+ list(/mob/living/simple_mob/animal/passive/opossum),
+ list(/mob/living/simple_mob/animal/passive/pillbug),
+ list(/mob/living/simple_mob/animal/passive/snake),
+ list(/mob/living/simple_mob/animal/passive/tindalos),
+ list(/mob/living/simple_mob/animal/passive/yithian),
+ list(
+ /mob/living/simple_mob/animal/wolf,
+ /mob/living/simple_mob/animal/wolf/direwolf
+ ),
+ list(/mob/living/simple_mob/vore/rabbit),
+ list(/mob/living/simple_mob/vore/redpanda),
+ list(/mob/living/simple_mob/vore/woof),
+ list(/mob/living/simple_mob/vore/fennec),
+ list(/mob/living/simple_mob/vore/fennix),
+ list(/mob/living/simple_mob/vore/hippo),
+ list(/mob/living/simple_mob/vore/horse),
+ list(/mob/living/simple_mob/vore/bee),
+ list(
+ /mob/living/simple_mob/animal/space/bear,
+ /mob/living/simple_mob/animal/space/bear/brown
+ ),
+ list(
+ /mob/living/simple_mob/otie/feral,
+ /mob/living/simple_mob/otie/feral/chubby,
+ /mob/living/simple_mob/otie/red,
+ /mob/living/simple_mob/otie/red/chubby
+ ),
+ list(/mob/living/simple_mob/animal/sif/diyaab),
+ list(/mob/living/simple_mob/animal/sif/duck),
+ list(/mob/living/simple_mob/animal/sif/frostfly),
+ list(
+ /mob/living/simple_mob/animal/sif/glitterfly =50,
+ /mob/living/simple_mob/animal/sif/glitterfly/rare = 1
+ ),
+ list(
+ /mob/living/simple_mob/animal/sif/kururak = 10,
+ /mob/living/simple_mob/animal/sif/kururak/leader = 1,
+ /mob/living/simple_mob/animal/sif/kururak/hibernate = 2,
+ ),
+ list(
+ /mob/living/simple_mob/animal/sif/sakimm = 10,
+ /mob/living/simple_mob/animal/sif/sakimm/intelligent = 1
+ ),
+ list(/mob/living/simple_mob/animal/sif/savik) = 5,
+ list(
+ /mob/living/simple_mob/animal/sif/shantak = 10,
+ /mob/living/simple_mob/animal/sif/shantak/leader = 1
+ ),
+ list(/mob/living/simple_mob/animal/sif/siffet),
+ list(/mob/living/simple_mob/animal/sif/tymisian),
+ list(
+ /mob/living/simple_mob/animal/giant_spider/nurse = 10,
+ /mob/living/simple_mob/animal/giant_spider/electric = 5,
+ /mob/living/simple_mob/animal/giant_spider/frost = 5,
+ /mob/living/simple_mob/animal/giant_spider/hunter = 10,
+ /mob/living/simple_mob/animal/giant_spider/ion = 5,
+ /mob/living/simple_mob/animal/giant_spider/lurker = 10,
+ /mob/living/simple_mob/animal/giant_spider/pepper = 10,
+ /mob/living/simple_mob/animal/giant_spider/phorogenic = 10,
+ /mob/living/simple_mob/animal/giant_spider/thermic = 5,
+ /mob/living/simple_mob/animal/giant_spider/tunneler = 10,
+ /mob/living/simple_mob/animal/giant_spider/webslinger = 5,
+ /mob/living/simple_mob/animal/giant_spider/broodmother = 1),
+ list(
+ /mob/living/simple_mob/animal/wolf = 10,
+ /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/greatwolf = 1,
+ /mob/living/simple_mob/vore/greatwolf/black = 1,
+ /mob/living/simple_mob/vore/greatwolf/grey = 1
+ ),
+ list(/mob/living/simple_mob/creature/strong),
+ list(/mob/living/simple_mob/faithless/strong),
+ list(/mob/living/simple_mob/animal/goat),
+ list(
+ /mob/living/simple_mob/animal/sif/shantak/leader = 1,
+ /mob/living/simple_mob/animal/sif/shantak = 10),
+ list(/mob/living/simple_mob/animal/sif/savik,),
+ list(/mob/living/simple_mob/animal/sif/hooligan_crab),
+ list(
+ /mob/living/simple_mob/animal/space/alien = 50,
+ /mob/living/simple_mob/animal/space/alien/drone = 40,
+ /mob/living/simple_mob/animal/space/alien/sentinel = 25,
+ /mob/living/simple_mob/animal/space/alien/sentinel/praetorian = 15,
+ /mob/living/simple_mob/animal/space/alien/queen = 10,
+ /mob/living/simple_mob/animal/space/alien/queen/empress = 5,
+ /mob/living/simple_mob/animal/space/alien/queen/empress/mother = 1
+ ),
+ list(/mob/living/simple_mob/animal/space/bats/cult/strong),
+ list(
+ /mob/living/simple_mob/animal/space/bear,
+ /mob/living/simple_mob/animal/space/bear/brown
+ ),
+ list(
+ /mob/living/simple_mob/animal/space/carp = 50,
+ /mob/living/simple_mob/animal/space/carp/large = 10,
+ /mob/living/simple_mob/animal/space/carp/large/huge = 5
+ ),
+ list(/mob/living/simple_mob/animal/space/goose),
+ list(/mob/living/simple_mob/animal/space/jelly),
+ list(/mob/living/simple_mob/animal/space/tree),
+ list(
+ /mob/living/simple_mob/vore/aggressive/corrupthound = 10,
+ /mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi = 1,
+ ),
+ list(/mob/living/simple_mob/vore/aggressive/deathclaw),
+ list(/mob/living/simple_mob/vore/aggressive/dino),
+ list(/mob/living/simple_mob/vore/aggressive/dragon),
+ list(/mob/living/simple_mob/vore/aggressive/dragon/virgo3b),
+ list(/mob/living/simple_mob/vore/aggressive/frog),
+ list(/mob/living/simple_mob/vore/aggressive/giant_snake),
+ list(/mob/living/simple_mob/vore/aggressive/mimic),
+ list(/mob/living/simple_mob/vore/aggressive/panther),
+ list(/mob/living/simple_mob/vore/aggressive/rat),
+ list(/mob/living/simple_mob/vore/bee),
+ list(
+ /mob/living/simple_mob/vore/sect_drone = 10,
+ /mob/living/simple_mob/vore/sect_queen = 1
+ ),
+ list(/mob/living/simple_mob/vore/solargrub),
+ list(
+ /mob/living/simple_mob/vore/oregrub = 5,
+ /mob/living/simple_mob/vore/oregrub/lava = 1
+ ),
+ list(/mob/living/simple_mob/vore/catgirl),
+ list(/mob/living/simple_mob/vore/wolfgirl),
+ list(
+ /mob/living/simple_mob/vore/lamia,
+ /mob/living/simple_mob/vore/lamia/albino,
+ /mob/living/simple_mob/vore/lamia/albino/bra,
+ /mob/living/simple_mob/vore/lamia/albino/shirt,
+ /mob/living/simple_mob/vore/lamia/bra,
+ /mob/living/simple_mob/vore/lamia/cobra,
+ /mob/living/simple_mob/vore/lamia/cobra/bra,
+ /mob/living/simple_mob/vore/lamia/cobra/shirt,
+ /mob/living/simple_mob/vore/lamia/copper,
+ /mob/living/simple_mob/vore/lamia/copper/bra,
+ /mob/living/simple_mob/vore/lamia/copper/shirt,
+ /mob/living/simple_mob/vore/lamia/green,
+ /mob/living/simple_mob/vore/lamia/green/bra,
+ /mob/living/simple_mob/vore/lamia/green/shirt,
+ /mob/living/simple_mob/vore/lamia/zebra,
+ /mob/living/simple_mob/vore/lamia/zebra/bra,
+ /mob/living/simple_mob/vore/lamia/zebra/shirt
+ ),
+ list(
+ /mob/living/simple_mob/humanoid/merc = 100,
+ /mob/living/simple_mob/humanoid/merc/melee/sword = 50,
+ /mob/living/simple_mob/humanoid/merc/ranged = 25,
+ /mob/living/simple_mob/humanoid/merc/ranged/grenadier = 1,
+ /mob/living/simple_mob/humanoid/merc/ranged/ionrifle = 10,
+ /mob/living/simple_mob/humanoid/merc/ranged/laser = 5,
+ /mob/living/simple_mob/humanoid/merc/ranged/rifle = 5,
+ /mob/living/simple_mob/humanoid/merc/ranged/smg = 5,
+ /mob/living/simple_mob/humanoid/merc/ranged/sniper = 1,
+ /mob/living/simple_mob/humanoid/merc/ranged/space = 10,
+ /mob/living/simple_mob/humanoid/merc/ranged/technician = 5
+ ),
+ list(
+ /mob/living/simple_mob/humanoid/pirate = 3,
+ /mob/living/simple_mob/humanoid/pirate/ranged = 1
+ ),
+ list(/mob/living/simple_mob/mechanical/combat_drone),
+ list(/mob/living/simple_mob/mechanical/corrupt_maint_drone),
+ list(
+ /mob/living/simple_mob/mechanical/hivebot = 100,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage = 20,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/backline = 10,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/basic = 20,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/dot = 5,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/ion = 20,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/laser = 10,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/rapid = 2,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/siege = 1,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/siege/emp = 5,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/siege/fragmentation = 1,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/siege/radiation = 1,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/strong = 3,
+ /mob/living/simple_mob/mechanical/hivebot/ranged_damage/strong/guard = 3,
+ /mob/living/simple_mob/mechanical/hivebot/support = 8,
+ /mob/living/simple_mob/mechanical/hivebot/support/commander = 5,
+ /mob/living/simple_mob/mechanical/hivebot/support/commander/autofollow = 10,
+ /mob/living/simple_mob/mechanical/hivebot/swarm = 20,
+ /mob/living/simple_mob/mechanical/hivebot/tank = 20,
+ /mob/living/simple_mob/mechanical/hivebot/tank/armored = 20,
+ /mob/living/simple_mob/mechanical/hivebot/tank/armored/anti_bullet = 20,
+ /mob/living/simple_mob/mechanical/hivebot/tank/armored/anti_laser = 20,
+ /mob/living/simple_mob/mechanical/hivebot/tank/armored/anti_melee = 20,
+ /mob/living/simple_mob/mechanical/hivebot/tank/meatshield = 20
+ ),
+ list(/mob/living/simple_mob/mechanical/infectionbot),
+ list(/mob/living/simple_mob/mechanical/mining_drone),
+ list(/mob/living/simple_mob/mechanical/technomancer_golem),
+ list(
+ /mob/living/simple_mob/mechanical/viscerator,
+ /mob/living/simple_mob/mechanical/viscerator/piercing
+ ),
+ list(/mob/living/simple_mob/mechanical/wahlem),
+ list(/mob/living/simple_mob/animal/passive/fox/syndicate),
+ list(/mob/living/simple_mob/animal/passive/fox),
+ list(/mob/living/simple_mob/animal/wolf/direwolf),
+ list(/mob/living/simple_mob/animal/space/jelly),
+ list(
+ /mob/living/simple_mob/otie/feral,
+ /mob/living/simple_mob/otie/feral/chubby,
+ /mob/living/simple_mob/otie/red,
+ /mob/living/simple_mob/otie/red/chubby
+ ),
+ list(
+ /mob/living/simple_mob/shadekin/blue = 100,
+ /mob/living/simple_mob/shadekin/green = 50,
+ /mob/living/simple_mob/shadekin/orange = 20,
+ /mob/living/simple_mob/shadekin/purple = 60,
+ /mob/living/simple_mob/shadekin/red = 40,
+ /mob/living/simple_mob/shadekin/yellow = 1
+ ),
+ list(
+ /mob/living/simple_mob/vore/aggressive/corrupthound,
+ /mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi
+ ),
+ list(/mob/living/simple_mob/vore/aggressive/deathclaw),
+ list(/mob/living/simple_mob/vore/aggressive/dino),
+ list(/mob/living/simple_mob/vore/aggressive/dragon),
+ list(/mob/living/simple_mob/vore/aggressive/dragon/virgo3b),
+ list(/mob/living/simple_mob/vore/aggressive/frog),
+ list(/mob/living/simple_mob/vore/aggressive/giant_snake),
+ list(/mob/living/simple_mob/vore/aggressive/mimic),
+ list(/mob/living/simple_mob/vore/aggressive/panther),
+ list(/mob/living/simple_mob/vore/aggressive/rat),
+ list(/mob/living/simple_mob/vore/bee),
+ list(/mob/living/simple_mob/vore/catgirl),
+ list(/mob/living/simple_mob/vore/cookiegirl),
+ list(/mob/living/simple_mob/vore/fennec),
+ list(/mob/living/simple_mob/vore/fennix),
+ list(/mob/living/simple_mob/vore/hippo),
+ list(/mob/living/simple_mob/vore/horse),
+ list(/mob/living/simple_mob/vore/oregrub),
+ list(/mob/living/simple_mob/vore/rabbit),
+ list(
+ /mob/living/simple_mob/vore/redpanda = 50,
+ /mob/living/simple_mob/vore/redpanda/fae = 1
+ ),
+ list(
+ /mob/living/simple_mob/vore/sect_drone = 10,
+ /mob/living/simple_mob/vore/sect_queen = 1
+ ),
+ list(/mob/living/simple_mob/vore/solargrub),
+ list(/mob/living/simple_mob/vore/woof),
+ list(/mob/living/simple_mob/vore/alienanimals/teppi),
+ list(/mob/living/simple_mob/vore/alienanimals/space_ghost),
+ list(/mob/living/simple_mob/vore/alienanimals/catslug),
+ list(/mob/living/simple_mob/vore/alienanimals/space_jellyfish),
+ list(/mob/living/simple_mob/vore/alienanimals/startreader),
+ list(/mob/living/simple_mob/vore/bigdragon),
+ list(
+ /mob/living/simple_mob/vore/leopardmander = 50,
+ /mob/living/simple_mob/vore/leopardmander/blue = 10,
+ /mob/living/simple_mob/vore/leopardmander/exotic = 1
+ ),
+ list(/mob/living/simple_mob/vore/sheep),
+ list(/mob/living/simple_mob/vore/weretiger),
+ list(/mob/living/simple_mob/vore/alienanimals/skeleton),
+ list(/mob/living/simple_mob/vore/alienanimals/dustjumper)
+ )
+
+/obj/item/capture_crystal/random/Initialize()
+ var/subchoice = pickweight(possible_mob_types) //Some of the lists have nested lists, so let's pick one of them
+ var/choice = pickweight(subchoice) //And then we'll pick something from whatever's left
+ spawn_mob_type = choice //Now when someone uses this, we'll spawn whatever we picked!
+ return ..()
+
+/mob/living
+ var/capture_crystal = TRUE //If TRUE, the mob is capturable. Otherwise it isn't.
+ var/capture_caught = FALSE //If TRUE, the mob has already been caught, and so cannot be caught again.
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 744cc130e21..1a19b98910b 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -55,7 +55,7 @@
C.throw_mode_on()
/obj/item/weapon/grenade/chem_grenade/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(istype(W,/obj/item/device/assembly_holder) && (!stage || stage==1) && path != 2)
+ if(istype(W,/obj/item/device/assembly_holder) && (!stage || stage==1) && !detonator && path != 2)
var/obj/item/device/assembly_holder/det = W
if(istype(det.a_left,det.a_right.type) || (!isigniter(det.a_left) && !isigniter(det.a_right)))
to_chat(user, "Assembly must contain one igniter.")
@@ -314,4 +314,3 @@
beakers += B1
beakers += B2
-
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 1c92c3e94e8..00647f37f37 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -158,7 +158,8 @@
/obj/item/stack/nanopaste,
/obj/item/weapon/cell, //this is a bigger belt, might as well make it hold bigger cells too
/obj/item/weapon/pipe_dispenser, //bigger belt for bigger tools
- /obj/item/weapon/rcd //see above
+ /obj/item/weapon/rcd, //see above
+ /obj/item/device/quantum_pad_booster
)
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 78eb6d5d481..aa0e4598ea1 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -68,7 +68,7 @@
item_state = "candlebox5"
throwforce = 2
slot_flags = SLOT_BELT
- max_storage_space = ITEMSIZE_COST_SMALL * 5
+ max_storage_space = ITEMSIZE_COST_TINY * 5
can_hold = list(/obj/item/weapon/flame/candle)
starts_with = list(/obj/item/weapon/flame/candle = 5)
@@ -81,7 +81,7 @@
item_state = "whitecandlebox5"
throwforce = 2
slot_flags = SLOT_BELT
- max_storage_space = ITEMSIZE_COST_SMALL * 5
+ max_storage_space = ITEMSIZE_COST_TINY * 5
can_hold = list(/obj/item/weapon/flame/candle)
starts_with = list(/obj/item/weapon/flame/candle/white = 5)
@@ -94,7 +94,7 @@
item_state = "blackcandlebox5"
throwforce = 2
slot_flags = SLOT_BELT
- max_storage_space = ITEMSIZE_COST_SMALL * 5
+ max_storage_space = ITEMSIZE_COST_TINY * 5
can_hold = list(/obj/item/weapon/flame/candle)
starts_with = list(/obj/item/weapon/flame/candle/black = 5)
diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm
index c67b06d8401..a9e567c6c09 100644
--- a/code/game/objects/random/mapping.dm
+++ b/code/game/objects/random/mapping.dm
@@ -109,7 +109,7 @@
/obj/random/vendordrink/item_to_spawn() //Not including coffee as it's more specific in usage.
return pick (/obj/machinery/vending/cola,
/obj/machinery/vending/cola/soft,
- /obj/machinery/vending/bepis,
+ /obj/machinery/vending/bepis,
/obj/machinery/vending/sovietsoda,
/obj/machinery/vending/radren)
//VOREStation Edit End
@@ -1455,7 +1455,7 @@
/obj/random/turf/lava/item_to_spawn()
return pick(prob(5);/turf/simulated/floor/lava,
prob(3);/turf/simulated/floor/outdoors/rocks/caves,
- prob(1);/turf/simulated/mineral)
+ prob(1);/turf/simulated/mineral/ignore_mapgen/cave)
//VOREStation Add Start - Underdark stuff that would be cool if existed if the underdark doesn't.
diff --git a/code/game/objects/random/misc_vr.dm b/code/game/objects/random/misc_vr.dm
index 0d3a17c23f2..9030e874ac0 100644
--- a/code/game/objects/random/misc_vr.dm
+++ b/code/game/objects/random/misc_vr.dm
@@ -23,6 +23,7 @@
prob(30);/obj/item/weapon/aliencoin/gold,
prob(20);/obj/item/weapon/aliencoin/phoron,
prob(10);/obj/item/device/denecrotizer,
+ prob(5);/obj/item/capture_crystal,
prob(5);/obj/item/device/perfect_tele,
prob(5);/obj/item/weapon/bluespace_harpoon,
prob(1);/obj/item/weapon/cell/infinite,
@@ -43,9 +44,59 @@
prob(3);/obj/fiftyspawner/silver,
prob(1);/obj/fiftyspawner/diamond,
prob(5);/obj/fiftyspawner/phoron,
- prob(1);/obj/item/weapon/telecube/randomized
+ prob(1);/obj/item/weapon/telecube/randomized,
+ prob(1);/obj/item/capture_crystal/random
)
/obj/random/awayloot/nofail
name = "garunteed random away mission loot"
spawn_nothing_percentage = 0
+
+/obj/random/awayloot/looseloot
+/obj/random/awayloot/looseloot/item_to_spawn()
+ return pick(prob(50);/obj/item/weapon/aliencoin,
+ prob(40);/obj/item/weapon/aliencoin/silver,
+ prob(30);/obj/item/weapon/aliencoin/gold,
+ prob(20);/obj/item/weapon/aliencoin/phoron,
+ prob(10);/obj/item/device/denecrotizer,
+ prob(5);/obj/item/capture_crystal,
+ prob(3);/obj/item/capture_crystal/great,
+ prob(1);/obj/item/capture_crystal/ultra,
+ prob(4);/obj/item/capture_crystal/random,
+ prob(5);/obj/item/device/perfect_tele,
+ prob(5);/obj/item/weapon/bluespace_harpoon,
+ prob(1);/obj/item/weapon/cell/infinite,
+ prob(1);/obj/item/weapon/cell/void,
+ prob(1);/obj/item/weapon/cell/device/weapon/recharge/alien,
+ prob(1);/obj/item/clothing/shoes/boots/speed,
+ prob(1);/obj/item/device/nif,
+ prob(1);/obj/item/device/paicard,
+ prob(2);/obj/item/weapon/storage/backpack/dufflebag/syndie,
+ prob(2);/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo,
+ prob(2);/obj/item/weapon/storage/backpack/dufflebag/syndie/med,
+ prob(2);/obj/item/clothing/mask/gas/voice,
+ prob(2);/obj/item/device/radio_jammer,
+ prob(1);/obj/item/toy/bosunwhistle,
+ prob(1);/obj/item/weapon/bananapeel,
+ prob(5);/obj/fiftyspawner/platinum,
+ prob(3);/obj/fiftyspawner/gold,
+ prob(3);/obj/fiftyspawner/silver,
+ prob(1);/obj/fiftyspawner/diamond,
+ prob(5);/obj/fiftyspawner/phoron,
+ prob(1);/obj/item/weapon/telecube/randomized,
+ prob(10);/obj/random/empty_or_lootable_crate,
+ prob(10);/obj/random/medical,
+ prob(5);/obj/random/firstaid,
+ prob(30);/obj/random/maintenance,
+ prob(10);/obj/random/mre,
+ prob(15);/obj/random/snack,
+ prob(10);/obj/random/tech_supply,
+ prob(15);/obj/random/tech_supply/component,
+ prob(10);/obj/random/tool,
+ prob(5);/obj/random/tool/power,
+ prob(1);/obj/random/tool/alien,
+ prob(5);/obj/random/weapon,
+ prob(5);/obj/random/ammo_all,
+ prob(3);/obj/random/projectile/random,
+ prob(5);/obj/random/multiple/voidsuit
+ )
diff --git a/code/game/objects/random/mob.dm b/code/game/objects/random/mob.dm
index d0cee5dff00..be1222aabef 100644
--- a/code/game/objects/random/mob.dm
+++ b/code/game/objects/random/mob.dm
@@ -240,6 +240,7 @@
/obj/random/mob/mouse/item_to_spawn()
return pick(prob(15);/mob/living/simple_mob/animal/passive/mouse/white,
+ prob(15);/mob/living/simple_mob/animal/passive/mouse/black,
prob(30);/mob/living/simple_mob/animal/passive/mouse/brown,
prob(30);/mob/living/simple_mob/animal/passive/mouse/gray,
prob(30);/mob/living/simple_mob/animal/passive/mouse/rat)
diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm
index cbb95e955f8..d457d49811e 100644
--- a/code/game/objects/structures/artstuff.dm
+++ b/code/game/objects/structures/artstuff.dm
@@ -112,7 +112,7 @@
user.visible_message("[user] smears paint on [src], covering the entire thing in paint.", "You smear paint on [src], changing the color of the entire thing.", runemessage = "smears paint")
update_appearance()
return
-
+
if(user.a_intent == I_HELP)
tgui_interact(user)
else
@@ -215,7 +215,7 @@
return canvas_color
/obj/item/canvas/proc/try_rename(mob/user)
- var/new_name = stripped_input(user,"What do you want to name the painting?")
+ var/new_name = stripped_input(user,"What do you want to name the painting?", max_length = 250)
if(new_name != painting_name && new_name && CanUseTopic(user, GLOB.tgui_physical_state))
painting_name = new_name
SStgui.update_uis(src)
@@ -291,7 +291,7 @@
if(new_color)
selected_color = new_color
color_drop.color = new_color
-
+
cut_overlays()
if(hud_level)
add_overlay(color_drop)
@@ -316,21 +316,10 @@
name = "painting frame"
desc = "The perfect showcase for your favorite deathtrap memories."
icon = 'icons/obj/decals.dmi'
- //custom_materials = list(/datum/material/wood = 2000)
- //flags_1 = NONE
+ refund_amt = 5
+ refund_type = /obj/item/stack/material/wood
icon_state = "frame-empty"
-
-/obj/item/frame/painting/try_build(turf/on_wall, mob/user as mob)
- if(get_dist(on_wall, user) > 1)
- return
- var/ndir = get_dir(on_wall, user)
- if (!(ndir in cardinal))
- return
- if(!istype(on_wall, /turf/simulated/wall))
- to_chat(user, "Frame cannot be placed on this spot.")
- return
- new /obj/structure/sign/painting(get_turf(user), ndir, TRUE)
- qdel(src)
+ build_machine_type = /obj/structure/sign/painting
/obj/structure/sign/painting
name = "Painting"
@@ -483,12 +472,12 @@
/obj/structure/sign/painting/proc/load_persistent()
if(!persistence_id || !LAZYLEN(SSpersistence.unpicked_paintings))
return
-
+
var/list/painting_category = list()
for (var/list/P in SSpersistence.unpicked_paintings)
if(P["persistence_id"] == persistence_id)
painting_category[++painting_category.len] = P
-
+
var/list/painting
while(!painting)
if(!length(painting_category))
@@ -500,7 +489,7 @@
continue //and try again
painting = chosen
SSpersistence.unpicked_paintings -= list(chosen)
-
+
var/title = painting["title"]
var/author_name = painting["author"]
var/author_ckey = painting["ckey"]
@@ -509,7 +498,7 @@
var/obj/item/canvas/new_canvas
var/w = I.Width()
var/h = I.Height()
-
+
for(var/T in typesof(/obj/item/canvas))
new_canvas = T
if(initial(new_canvas.width) == w && initial(new_canvas.height) == h)
@@ -519,7 +508,7 @@
if(!new_canvas)
warning("Couldn't find a canvas to match [w]x[h] of painting")
return
-
+
new_canvas.fill_grid_from_icon(I)
new_canvas.generated_icon = I
new_canvas.icon_generated = TRUE
@@ -540,7 +529,7 @@
return
if(!current_canvas.painting_name)
current_canvas.painting_name = "Untitled Artwork"
-
+
var/data = current_canvas.get_data_string()
var/md5 = md5(lowertext(data))
for(var/list/entry in SSpersistence.all_paintings)
@@ -549,10 +538,10 @@
var/png_directory = "data/persistent/paintings/[persistence_id]/"
var/png_path = png_directory + "[md5].png"
var/result = rustg_dmi_create_png(png_path,"[current_canvas.width]","[current_canvas.height]",data)
-
+
if(result)
CRASH("Error saving persistent painting: [result]")
-
+
SSpersistence.all_paintings += list(list(
"persistence_id" = persistence_id,
"title" = current_canvas.painting_name,
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
index 17d67f912cf..af7092d9d68 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
@@ -6,6 +6,7 @@
starts_with = list(
/obj/item/weapon/storage/bag/plants,
/obj/item/clothing/under/rank/hydroponics,
+ /obj/item/clothing/gloves/botanic_leather,
/obj/item/device/analyzer/plant_analyzer,
/obj/item/device/radio/headset/headset_service,
/obj/item/clothing/head/greenbandana,
diff --git a/code/game/objects/structures/flora/flora.dm b/code/game/objects/structures/flora/flora.dm
index 96795f446d0..4780c89f360 100644
--- a/code/game/objects/structures/flora/flora.dm
+++ b/code/game/objects/structures/flora/flora.dm
@@ -450,6 +450,43 @@
desc = "This is a tiny well lit decorative christmas tree."
icon_state = "plant-xmas"
+/obj/random/pottedplant
+ name = "random potted plant"
+ desc = "This is a random potted plant."
+
+/obj/random/pottedplant/item_to_spawn()
+ return pick(
+ prob(10);/obj/structure/flora/pottedplant,
+ prob(10);/obj/structure/flora/pottedplant/large,
+ prob(10);/obj/structure/flora/pottedplant/fern,
+ prob(10);/obj/structure/flora/pottedplant/overgrown,
+ prob(10);/obj/structure/flora/pottedplant/bamboo,
+ prob(10);/obj/structure/flora/pottedplant/largebush,
+ prob(10);/obj/structure/flora/pottedplant/thinbush,
+ prob(10);/obj/structure/flora/pottedplant/mysterious,
+ prob(10);/obj/structure/flora/pottedplant/smalltree,
+ prob(10);/obj/structure/flora/pottedplant/unusual,
+ prob(10);/obj/structure/flora/pottedplant/orientaltree,
+ prob(10);/obj/structure/flora/pottedplant/smallcactus,
+ prob(10);/obj/structure/flora/pottedplant/tall,
+ prob(10);/obj/structure/flora/pottedplant/sticky,
+ prob(10);/obj/structure/flora/pottedplant/smelly,
+ prob(10);/obj/structure/flora/pottedplant/small,
+ prob(10);/obj/structure/flora/pottedplant/aquatic,
+ prob(10);/obj/structure/flora/pottedplant/shoot,
+ prob(10);/obj/structure/flora/pottedplant/flower,
+ prob(10);/obj/structure/flora/pottedplant/crystal,
+ prob(10);/obj/structure/flora/pottedplant/subterranean,
+ prob(10);/obj/structure/flora/pottedplant/minitree,
+ prob(10);/obj/structure/flora/pottedplant/stoutbush,
+ prob(10);/obj/structure/flora/pottedplant/drooping,
+ prob(10);/obj/structure/flora/pottedplant/tropical,
+ prob(10);/obj/structure/flora/pottedplant/dead,
+ prob(10);/obj/structure/flora/pottedplant/decorative,
+ prob(1);/obj/structure/flora/pottedplant/xmas
+ )
+
+
/obj/structure/flora/sif
icon = 'icons/obj/flora/sifflora.dmi'
diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm
index 05f8fdc824d..ea70fa44a64 100644
--- a/code/game/objects/structures/simple_doors.dm
+++ b/code/game/objects/structures/simple_doors.dm
@@ -71,6 +71,7 @@
return TryToSwitchState(user)
/obj/structure/simple_door/AltClick(mob/user as mob)
+ . = ..()
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
if(!Adjacent(user))
return
@@ -78,7 +79,7 @@
src.visible_message("[user] hammers on \the [src]!", "Someone hammers loudly on \the [src]!")
src.add_fingerprint(user)
playsound(src, knock_hammer_sound, 50, 0, 3)
- else
+ else if(user.a_intent == I_HELP)
src.visible_message("[user] knocks on \the [src].", "Someone knocks on \the [src].")
src.add_fingerprint(user)
playsound(src, knock_sound, 50, 0, 3)
diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm
index 85eab74a094..600adb63518 100644
--- a/code/game/objects/structures/trash_pile_vr.dm
+++ b/code/game/objects/structures/trash_pile_vr.dm
@@ -69,13 +69,13 @@
var/mob/living/L = user
//They're in it, and want to get out.
if(L.loc == src)
- var/choice = tgui_alert(usr, "Do you want to exit \the [src]?","Un-Hide?",list("Exit","Stay"))
+ var/choice = tgui_alert(user, "Do you want to exit \the [src]?","Un-Hide?",list("Exit","Stay"))
if(choice == "Exit")
if(L == hider)
hider = null
L.forceMove(get_turf(src))
else if(!hider)
- var/choice = tgui_alert(usr, "Do you want to hide in \the [src]?","Un-Hide?",list("Hide","Stay"))
+ var/choice = tgui_alert(user, "Do you want to hide in \the [src]?","Un-Hide?",list("Hide","Stay"))
if(choice == "Hide" && !hider) //Check again because PROMPT
L.forceMove(src)
hider = L
@@ -255,7 +255,8 @@
prob(1);/obj/item/weapon/storage/box/survival/space,
prob(1);/obj/item/weapon/storage/secure/briefcase/trashmoney,
prob(1);/obj/item/device/survivalcapsule/popcabin,
- prob(1);/obj/item/weapon/reagent_containers/syringe/steroid)
+ prob(1);/obj/item/weapon/reagent_containers/syringe/steroid,
+ prob(1);/obj/item/capture_crystal)
var/obj/item/I = new path()
return I
diff --git a/code/game/turfs/weird_turfs_vr.dm b/code/game/turfs/weird_turfs_vr.dm
new file mode 100644
index 00000000000..b1ef1fa4fb2
--- /dev/null
+++ b/code/game/turfs/weird_turfs_vr.dm
@@ -0,0 +1,131 @@
+/turf/simulated/floor/weird_things
+ icon = 'icons/turf/flooring/weird_vr.dmi'
+
+/turf/simulated/floor/weird_things/dark
+ name = "dark"
+ desc = "It's a strange, impenetrable darkness."
+ icon_state = "dark"
+ can_dirty = FALSE
+
+/turf/simulated/floor/weird_things/dark/Initialize(mapload)
+ . = ..()
+ if(prob(5))
+ add_glow()
+
+/turf/simulated/floor/weird_things/dark/Crossed(O)
+ . = ..()
+ if(!isliving(O))
+ return
+ cut_overlays()
+ if(prob(5))
+ add_glow()
+ if(istype(O, /mob/living/carbon/human))
+ var/mob/living/carbon/human/L = O
+ if(istype(L.species, /datum/species/crew_shadekin))
+ L.halloss += 5
+ if(prob(50))
+ to_chat(L, "The more you move through this darkness, the more you can feel a throbbing, shooting ache in your bones.")
+ if(prob(5))
+ L.visible_message("[L]'s body gives off a faint, sparking, haze...", "Your body gives off a faint, sparking, haze...", runemessage = "gives off a faint, sparking haze")
+ else if(istype(L.species, /datum/species/shadekin))
+ var/obj/item/organ/internal/brain/shadekin/B = L.internal_organs_by_name["brain"]
+ B.dark_energy += 10
+ if(prob(10))
+ to_chat(L, "You can feel the energy flowing into you!")
+ else
+ if(prob(0.25))
+ to_chat(L, "The darkness seethes under your feet...")
+ L.hallucination += 50
+
+/turf/simulated/floor/weird_things/dark/proc/add_glow()
+ var/choice = "overlay-[rand(1,6)]"
+ var/image/i = image('icons/turf/flooring/weird_vr.dmi', choice)
+ i.plane = PLANE_LIGHTING_ABOVE
+ add_overlay(i)
+
+/turf/simulated/floor/weird_things/dark/ChangeTurf()
+ . = ..()
+ cut_overlays()
+
+/turf/unsimulated/wall/dark
+ name = "dark"
+ desc = "It's a strange, impenetrable darkness."
+ icon = 'icons/turf/flooring/weird_vr.dmi'
+ icon_state = "dark"
+
+/turf/unsimulated/wall/dark/Initialize(mapload)
+ . = ..()
+ if(prob(5))
+ add_glow()
+
+/turf/unsimulated/wall/dark/proc/add_glow()
+ var/choice = "overlay-[rand(1,6)]"
+ var/image/i = image('icons/turf/flooring/weird_vr.dmi', choice)
+ i.plane = PLANE_LIGHTING_ABOVE
+ add_overlay(i)
+
+/turf/unsimulated/wall/dark/ChangeTurf()
+ . = ..()
+ cut_overlays()
+
+
+/turf/unsimulated/floor/dark
+ name = "dark"
+ desc = "It's a strange, impenetrable darkness."
+ icon = 'icons/turf/flooring/weird_vr.dmi'
+ icon_state = "dark"
+
+/turf/unsimulated/floor/dark/Initialize(mapload)
+ . = ..()
+ if(prob(5))
+ add_glow()
+
+/turf/unsimulated/floor/dark/Crossed(O)
+ . = ..()
+ if(!isliving(O))
+ return
+ cut_overlays()
+ if(prob(5))
+ add_glow()
+ if(istype(O, /mob/living/carbon/human))
+ var/mob/living/carbon/human/L = O
+ if(istype(L.species, /datum/species/crew_shadekin))
+ L.halloss += 5
+ if(prob(50))
+ to_chat(L, "The more you move through this darkness, the more you can feel a throbbing, shooting ache in your bones.")
+ if(prob(5))
+ L.visible_message("[L]'s body gives off a faint, sparking, haze...", "Your body gives off a faint, sparking, haze...", runemessage = "gives off a faint, sparking haze")
+ else if(istype(L.species, /datum/species/shadekin))
+ var/obj/item/organ/internal/brain/shadekin/B = L.internal_organs_by_name["brain"]
+ B.dark_energy += 10
+ if(prob(10))
+ to_chat(L, "You can feel the energy flowing into you!")
+ else
+ if(prob(0.25))
+ to_chat(L, "The darkness seethes under your feet...")
+ L.hallucination += 50
+
+/turf/unsimulated/floor/dark/proc/add_glow()
+ var/flip = rand(1,2)
+ var/choice
+ var/choiceb
+ if(flip == 1)
+ choice = "overlay-[rand(1,6)]"
+ if(flip == 2)
+ choice = "overlay-[rand(7,12)]"
+ var/image/i = image('icons/turf/flooring/weird_vr.dmi', choice)
+ i.plane = PLANE_LIGHTING_ABOVE
+ add_overlay(i)
+ if(prob(10))
+ if(flip == 1)
+ choiceb = "overlay-[rand(7,12)]"
+ if(flip == 2)
+ choiceb = "overlay-[rand(1,6)]"
+ var/image/ii = image('icons/turf/flooring/weird_vr.dmi', choiceb)
+ add_overlay(ii)
+
+
+
+/turf/unsimulated/floor/dark/ChangeTurf()
+ . = ..()
+ cut_overlays()
\ No newline at end of file
diff --git a/code/global_vr.dm b/code/global_vr.dm
index 8709577507c..6ed3403aaf7 100644
--- a/code/global_vr.dm
+++ b/code/global_vr.dm
@@ -1,4 +1,5 @@
var/list/vinestart = list()
+var/list/verminstart = list()
var/list/awayabductors = list() // List of scatter landmarks for Abductors in Gateways
var/list/eventdestinations = list() // List of scatter landmarks for VOREStation event portals
diff --git a/code/modules/admin/verbs/smite_vr.dm b/code/modules/admin/verbs/smite_vr.dm
index 51e44119064..750a8c0bea9 100644
--- a/code/modules/admin/verbs/smite_vr.dm
+++ b/code/modules/admin/verbs/smite_vr.dm
@@ -34,7 +34,7 @@
if(!Ts)
return //Didn't find shadekin spawn turf
- var/mob/living/simple_mob/shadekin/red/ai/shadekin = new(Ts)
+ var/mob/living/simple_mob/shadekin/red/shadekin = new(Ts)
//Abuse of shadekin
shadekin.real_name = shadekin.name
shadekin.init_vore()
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 7d0508a0fd9..cf55eacec47 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -49,8 +49,6 @@
//TODO: insert cause of death handling/wound simulation here
if(src.corpseuniform)
M.equip_to_slot_or_del(new src.corpseuniform(M), slot_w_uniform)
- if(src.corpsesuit)
- M.equip_voidsuit_to_slot_or_del_with_refit(new src.corpsesuit(M), slot_wear_suit, src.species)
if(src.corpseshoes)
M.equip_to_slot_or_del(new src.corpseshoes(M), slot_shoes)
if(src.corpsegloves)
@@ -61,8 +59,6 @@
M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses)
if(src.corpsemask)
M.equip_to_slot_or_del(new src.corpsemask(M), slot_wear_mask)
- if(src.corpsehelmet)
- M.equip_voidhelm_to_slot_or_del_with_refit(new src.corpsehelmet(M), slot_head, src.species)
if(src.corpsebelt)
M.equip_to_slot_or_del(new src.corpsebelt(M), slot_belt)
if(src.corpsepocket1)
@@ -90,6 +86,11 @@
W.assignment = corpseidjob
M.set_id_info(W)
M.equip_to_slot_or_del(W, slot_wear_id)
+ // Do suit last to avoid equipping issues
+ if(src.corpsehelmet)
+ M.equip_voidhelm_to_slot_or_del_with_refit(new src.corpsehelmet(M), slot_head, src.species)
+ if(src.corpsesuit)
+ M.equip_voidsuit_to_slot_or_del_with_refit(new src.corpsesuit(M), slot_wear_suit, src.species)
diff --git a/code/modules/client/preference_setup/antagonism/02_candidacy.dm b/code/modules/client/preference_setup/antagonism/02_candidacy.dm
index fae7e35118a..d922f106690 100644
--- a/code/modules/client/preference_setup/antagonism/02_candidacy.dm
+++ b/code/modules/client/preference_setup/antagonism/02_candidacy.dm
@@ -21,6 +21,8 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
"lost drone" = 1, // 16
"maint pred" = 1, // 17
"morph" = 1, // 18
+ "corgi" = 1, // 19
+ "cursed sword" = 1, // 20
//VOREStation Add End
)
diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index 13128f55c75..6cdfa38f138 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -687,9 +687,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
reset_limbs() // Safety for species with incompatible manufacturers; easier than trying to do it case by case.
pref.body_markings.Cut() // Basically same as above.
-
+
pref.sanitize_body_styles()
-
+
var/min_age = get_min_age()
var/max_age = get_max_age()
pref.age = max(min(pref.age, max_age), min_age)
@@ -796,7 +796,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
var/list/valid_facialhairstyles = pref.get_valid_facialhairstyles()
var/new_f_style = tgui_input_list(user, "Choose your character's facial-hair style:", "Character Preference", valid_facialhairstyles, pref.f_style)
- if(new_f_style && has_flag(mob_species, HAS_HAIR_COLOR) && CanUseTopic(user))
+ if(new_f_style && CanUseTopic(user))
pref.f_style = new_f_style
return TOPIC_REFRESH_UPDATE_PREVIEW
diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm
index 299e742cfd8..61603361f59 100644
--- a/code/modules/client/preference_setup/loadout/loadout.dm
+++ b/code/modules/client/preference_setup/loadout/loadout.dm
@@ -65,10 +65,10 @@ var/list/gear_datums = list()
for(var/gear_name in gear_datums)
var/datum/gear/G = gear_datums[gear_name]
- if(G.whitelisted && config.loadout_whitelist != LOADOUT_WHITELIST_OFF)
+ if(G.whitelisted && config.loadout_whitelist != LOADOUT_WHITELIST_OFF && pref.client) //VOREStation Edit.
if(config.loadout_whitelist == LOADOUT_WHITELIST_STRICT && G.whitelisted != pref.species)
continue
- if(config.loadout_whitelist == LOADOUT_WHITELIST_LAX && !is_alien_whitelisted(preference_mob(), GLOB.all_species[G.whitelisted]))
+ if(config.loadout_whitelist == LOADOUT_WHITELIST_LAX && !is_alien_whitelisted(preference_mob(), GLOB.all_species[G.whitelisted]))
continue
if(max_cost && G.cost > max_cost)
continue
@@ -169,7 +169,7 @@ var/list/gear_datums = list()
if(ticked)
. += "
| "
for(var/datum/gear_tweak/tweak in G.gear_tweaks)
- . += " [tweak.get_contents(get_tweak_metadata(G, tweak))]"
+ . += " [tweak.get_contents(get_tweak_metadata(G, tweak))]"
. += " |
"
. += ""
. = jointext(., null)
@@ -205,7 +205,7 @@ var/list/gear_datums = list()
pref.gear += TG.display_name
return TOPIC_REFRESH_UPDATE_PREVIEW
if(href_list["gear"] && href_list["tweak"])
- var/datum/gear/gear = gear_datums[href_list["gear"]]
+ var/datum/gear/gear = gear_datums[url_decode(href_list["gear"])]
var/datum/gear_tweak/tweak = locate(href_list["tweak"])
if(!tweak || !istype(gear) || !(tweak in gear.gear_tweaks))
return TOPIC_NOACTION
diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
index 27c4732b373..649939ba8bf 100644
--- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
@@ -296,6 +296,12 @@
ckeywhitelist = list("chaleur")
character_name = list("Hisako Arato")
+/datum/gear/fluff/jade_stamp
+ path = /obj/item/weapon/stamp/fluff/jade_horror
+ display_name = "Official Council of Mid Horror rubber stamp"
+ ckeywhitelist = list("coolcrow420")
+ character_name = list("Jade Davis")
+
// D CKEYS
/datum/gear/fluff/dhaeleena_medal
path = /obj/item/clothing/accessory/medal/silver/security/fluff/dhael
@@ -394,6 +400,7 @@
// G CKEYS
// H CKEYS
+
/datum/gear/fluff/lauren_medal
path = /obj/item/clothing/accessory/medal/conduct
display_name = "Lauren's Medal"
@@ -412,6 +419,12 @@
ckeywhitelist = list("hottokeeki")
character_name = list("Belle Day")
+/datum/gear/fluff/amaryll_claws
+ path = /obj/item/weapon/surgical/scalpel/amaryll_claws
+ display_name = "Amaryll's Claws"
+ ckeywhitelist = list("hunterbirk")
+ character_name = list("Amaryll")
+
// I CKEYS
/datum/gear/fluff/ruda_badge
path = /obj/item/clothing/accessory/badge/holo/detective/ruda
@@ -826,11 +839,17 @@
ckeywhitelist = list("pastelprincedan")
character_name = list("Kiyoshi Maki", "Masumi Maki")
-/datum/gear/fluff/masumi_overalls
- path = /obj/item/clothing/under/fluff/masumi_overalls
- display_name = "white and blue overalls"
- ckeywhitelist = list("pastelprincedan")
- character_name = list("Masumi Maki")
+/datum/gear/fluff/mechanic_overalls
+ path = /obj/item/clothing/under/fluff/mechanic_overalls
+ display_name = "mechanic overalls"
+ ckeywhitelist = list("pastelprincedan", "hatterhat")
+ character_name = list("Masumi Maki", "Harold Robinson")
+
+/datum/gear/fluff/mechanic_coat
+ path = /obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic
+ display_name = "mechanic winter coat"
+ ckeywhitelist = list("pastelprincedan", "hatterhat")
+ character_name = list("Masumi Maki", "Harold Robinson")
// Q CKEYS
diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
index 0383f58f0a9..3fcc18e04a2 100644
--- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
@@ -9,6 +9,30 @@
..()
gear_tweaks += gear_tweak_free_color_choice
+/datum/gear/suit/labcoat_old
+ display_name = "labcoat, old-school"
+ path = /obj/item/clothing/suit/storage/toggle/labcoat/old
+
+/datum/gear/suit/labcoat_cmo_old
+ display_name = "labcoat, CMO, oldschool"
+ path = /obj/item/clothing/suit/storage/toggle/labcoat/old/cmo
+ allowed_roles = list("Chief Medical Officer")
+
+/datum/gear/suit/roles/labcoat_old
+ display_name = "labcoat selection, department, oldschool"
+ path = /obj/item/clothing/suit/storage/toggle/labcoat/old/tox
+ cost = 2
+
+
+/datum/gear/suit/roles/labcoat_old/New()
+ ..()
+ var/list/labcoats = list(
+ "Oldschool Scientist's Labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/old/tox,
+ "Oldschool Virologist's Labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/old/vir,
+ "Oldschool Chemist's Labcoat" = /obj/item/clothing/suit/storage/toggle/labcoat/old/chem
+ )
+ gear_tweaks += new/datum/gear_tweak/path(labcoats)
+
/datum/gear/suit/jacket_modular
display_name = "jacket, modular"
path = /obj/item/clothing/suit/storage/fluff/jacket
@@ -83,4 +107,6 @@ Talon winter coat
*/
/datum/gear/suit/wintercoat/talon
display_name = "winter coat, Talon"
- path = /obj/item/clothing/suit/storage/hooded/wintercoat/talon
\ No newline at end of file
+ path = /obj/item/clothing/suit/storage/hooded/wintercoat/talon
+
+
diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm
index 0e5b6a24205..c342fb9b3ed 100644
--- a/code/modules/client/preference_setup/vore/07_traits.dm
+++ b/code/modules/client/preference_setup/vore/07_traits.dm
@@ -75,6 +75,13 @@
pref.starting_trait_points = STARTING_SPECIES_POINTS
pref.max_traits = MAX_SPECIES_TRAITS
+ if(pref.organ_data[O_BRAIN]) //Checking if we have a synth on our hands, boys.
+ pref.dirty_synth = 1
+ pref.gross_meatbag = 0
+ else
+ pref.gross_meatbag = 1
+ pref.dirty_synth = 0
+
if(pref.species != SPECIES_CUSTOM)
pref.pos_traits.Cut()
pref.neg_traits.Cut()
@@ -105,7 +112,7 @@
var/take_flags = initial(path.can_take)
if((pref.dirty_synth && !(take_flags & SYNTHETICS)) || (pref.gross_meatbag && !(take_flags & ORGANICS)))
pref.neg_traits -= path
-
+
var/datum/species/selected_species = GLOB.all_species[pref.species]
if(selected_species.selects_bodytype)
// Allowed!
diff --git a/code/modules/client/preference_setup/vore/09_misc.dm b/code/modules/client/preference_setup/vore/09_misc.dm
index 60a207bcc83..fff3bb6af48 100644
--- a/code/modules/client/preference_setup/vore/09_misc.dm
+++ b/code/modules/client/preference_setup/vore/09_misc.dm
@@ -8,6 +8,7 @@
S["directory_erptag"] >> pref.directory_erptag
S["directory_ad"] >> pref.directory_ad
S["sensorpref"] >> pref.sensorpref
+ S["capture_crystal"] >> pref.capture_crystal
/datum/category_item/player_setup_item/vore/misc/save_character(var/savefile/S)
S["show_in_directory"] << pref.show_in_directory
@@ -15,17 +16,21 @@
S["directory_erptag"] << pref.directory_erptag
S["directory_ad"] << pref.directory_ad
S["sensorpref"] << pref.sensorpref
+ S["capture_crystal"] << pref.capture_crystal
+
/datum/category_item/player_setup_item/vore/misc/copy_to_mob(var/mob/living/carbon/human/character)
if(pref.sensorpref > 5 || pref.sensorpref < 1)
pref.sensorpref = 5
character.sensorpref = pref.sensorpref
+ character.capture_crystal = pref.capture_crystal
/datum/category_item/player_setup_item/vore/misc/sanitize_character()
pref.show_in_directory = sanitize_integer(pref.show_in_directory, 0, 1, initial(pref.show_in_directory))
pref.directory_tag = sanitize_inlist(pref.directory_tag, GLOB.char_directory_tags, initial(pref.directory_tag))
pref.directory_erptag = sanitize_inlist(pref.directory_erptag, GLOB.char_directory_erptags, initial(pref.directory_erptag))
pref.sensorpref = sanitize_integer(pref.sensorpref, 1, sensorpreflist.len, initial(pref.sensorpref))
+ pref.capture_crystal = sanitize_integer(pref.capture_crystal, 0, 1, initial(pref.capture_crystal))
/datum/category_item/player_setup_item/vore/misc/content(var/mob/user)
. += "
"
@@ -34,6 +39,7 @@
. += "Character Directory ERP Tag: [pref.directory_erptag]
"
. += "Character Directory Advertisement: Set Directory Ad
"
. += "Suit Sensors Preference: [sensorpreflist[pref.sensorpref]]
"
+ . += "Capture Crystal Preference [pref.capture_crystal ? "Yes" : "No"]
"
/datum/category_item/player_setup_item/vore/misc/OnTopic(var/href, var/list/href_list, var/mob/user)
if(href_list["toggle_show_in_directory"])
@@ -60,4 +66,8 @@
if (!isnull(new_sensorpref) && CanUseTopic(user))
pref.sensorpref = sensorpreflist.Find(new_sensorpref)
return TOPIC_REFRESH
+ else if(href_list["toggle_capture_crystal"])
+ pref.capture_crystal = pref.capture_crystal ? 0 : 1;
+ return TOPIC_REFRESH
+
return ..();
diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm
index 188ae794a1f..ddc441c38d2 100644
--- a/code/modules/client/preferences_toggle_procs.dm
+++ b/code/modules/client/preferences_toggle_procs.dm
@@ -1,8 +1,8 @@
//Toggles for preferences, normal clients
/client/verb/toggle_ghost_ears()
- set name = "Show/Hide Ghost Ears"
+ set name = "Toggle Ghost Ears"
set category = "Preferences"
- set desc = "Toggles between seeing all mob speech and nearby mob speech."
+ set desc = "Toggles between seeing all mob speech and only nearby mob speech as an observer."
var/pref_path = /datum/client_preference/ghost_ears
@@ -15,9 +15,9 @@
feedback_add_details("admin_verb","TGEars") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_ghost_vision()
- set name = "Show/Hide Ghost Vision"
+ set name = "Toggle Ghost Vision"
set category = "Preferences"
- set desc = "Toggles between seeing all mob emotes and nearby mob emotes."
+ set desc = "Toggles between seeing all mob emotes and only nearby mob emotes as an observer."
var/pref_path = /datum/client_preference/ghost_sight
@@ -30,9 +30,9 @@
feedback_add_details("admin_verb","TGVision") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_ghost_radio()
- set name = "Show/Hide Radio Chatter"
+ set name = "Toggle Ghost Radio"
set category = "Preferences"
- set desc = "Toggles between seeing all radio chat and nearby radio chatter."
+ set desc = "Toggles between seeing all radio chat and only nearby radio chatter as an observer."
var/pref_path = /datum/client_preference/ghost_radio
@@ -45,9 +45,9 @@
feedback_add_details("admin_verb","TGRadio") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_deadchat()
- set name = "Show/Hide Deadchat"
+ set name = "Toggle Deadchat"
set category = "Preferences"
- set desc = "Toggles the dead chat channel."
+ set desc = "Toggles visibility of dead chat."
var/pref_path = /datum/client_preference/show_dsay
@@ -60,9 +60,9 @@
feedback_add_details("admin_verb","TDeadChat") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_ooc()
- set name = "Show/Hide OOC"
+ set name = "Toggle OOC"
set category = "Preferences"
- set desc = "Toggles global out of character chat."
+ set desc = "Toggles visibility of global out of character chat."
var/pref_path = /datum/client_preference/show_ooc
@@ -75,9 +75,9 @@
feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_looc()
- set name = "Show/Hide LOOC"
+ set name = "Toggle LOOC"
set category = "Preferences"
- set desc = "Toggles local out of character chat."
+ set desc = "Toggles visibility of local out of character chat."
var/pref_path = /datum/client_preference/show_looc
@@ -90,9 +90,9 @@
feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_precision_placement()
- set name = "Enable/Disable Precision Placement"
+ set name = "Toggle Precision Placement"
set category = "Preferences"
- set desc = "Toggles precise placement of objects on tables."
+ set desc = "Toggles whether objects placed on table will be on cursor position or centered."
var/pref_path = /datum/client_preference/precision_placement
@@ -105,9 +105,9 @@
feedback_add_details("admin_verb","TPIP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_typing()
- set name = "Show/Hide Typing Indicator"
+ set name = "Toggle Typing Indicator"
set category = "Preferences"
- set desc = "Toggles the speech bubble typing indicator."
+ set desc = "Toggles you having the speech bubble typing indicator."
var/pref_path = /datum/client_preference/show_typing_indicator
@@ -137,7 +137,7 @@
/client/verb/toggle_lobby_music()
set name = "Toggle Lobby Music"
set category = "Preferences"
- set desc = "Toggles the music in the lobby."
+ set desc = "Toggles the ability to hear the music in the lobby."
var/pref_path = /datum/client_preference/play_lobby_music
@@ -150,15 +150,15 @@
feedback_add_details("admin_verb","TLobMusic") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_admin_midis()
- set name = "Toggle Admin MIDIs"
+ set name = "Toggle Admin Music"
set category = "Preferences"
- set desc = "Toggles the music in the lobby."
+ set desc = "Toggles the ability to hear music played by admins."
var/pref_path = /datum/client_preference/play_admin_midis
toggle_preference(pref_path)
- to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear MIDIs from admins.")
+ to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear music from admins.")
SScharacter_setup.queue_preferences_save(prefs)
@@ -167,7 +167,7 @@
/client/verb/toggle_ambience()
set name = "Toggle Ambience"
set category = "Preferences"
- set desc = "Toggles the playing of ambience."
+ set desc = "Toggles the ability to hear local ambience."
var/pref_path = /datum/client_preference/play_ambiance
@@ -212,7 +212,7 @@
/client/verb/toggle_jukebox()
set name = "Toggle Jukebox"
set category = "Preferences"
- set desc = "Toggles the playing of jukebox music."
+ set desc = "Toggles the ability to hear jukebox music."
var/pref_path = /datum/client_preference/play_jukebox
@@ -225,7 +225,7 @@
feedback_add_details("admin_verb","TJukebox") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_be_special(role in be_special_flags)
- set name = "Toggle SpecialRole Candidacy"
+ set name = "Toggle Special Role Candidacy"
set category = "Preferences"
set desc = "Toggles which special roles you would like to be a candidate for, during events."
@@ -240,15 +240,15 @@
feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_air_pump_hum()
- set name = "Toggle Air Pump Noise"
+ set name = "Toggle Air Vent Noise"
set category = "Preferences"
- set desc = "Toggles Air Pumps humming"
+ set desc = "Toggles the ability to hear air vent humming."
var/pref_path = /datum/client_preference/air_pump_noise
toggle_preference(pref_path)
- to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear air pumps hum, start, and stop.")
+ to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear air vents hum, start, and stop.")
SScharacter_setup.queue_preferences_save(prefs)
@@ -257,7 +257,7 @@
/client/verb/toggle_old_door_sounds()
set name = "Toggle Old Door Sounds"
set category = "Preferences"
- set desc = "Toggles New/Old Door Sounds"
+ set desc = "Toggles door sounds between old and new."
var/pref_path = /datum/client_preference/old_door_sounds
@@ -272,7 +272,7 @@
/client/verb/toggle_department_door_sounds()
set name = "Toggle Department Door Sounds"
set category = "Preferences"
- set desc = "Toggles Department-Specific Door Sounds"
+ set desc = "Toggles hearing of department-specific door sounds."
var/pref_path = /datum/client_preference/department_door_sounds
@@ -287,13 +287,13 @@
/client/verb/toggle_pickup_sounds()
set name = "Toggle Picked Up Item Sounds"
set category = "Preferences"
- set desc = "Toggles sounds when items are picked up or thrown."
+ set desc = "Toggles the ability to hear sounds when items are picked up."
var/pref_path = /datum/client_preference/pickup_sounds
toggle_preference(pref_path)
- to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear sounds when items are picked up or thrown.")
+ to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear sounds when items are picked up.")
SScharacter_setup.queue_preferences_save(prefs)
@@ -302,7 +302,7 @@
/client/verb/toggle_drop_sounds()
set name = "Toggle Dropped Item Sounds"
set category = "Preferences"
- set desc = "Toggles sounds when items are dropped or thrown."
+ set desc = "Toggles the ability to hear sounds when items are dropped or thrown."
var/pref_path = /datum/client_preference/drop_sounds
@@ -330,7 +330,7 @@
/client/verb/toggle_mob_tooltips()
set name = "Toggle Mob Tooltips"
set category = "Preferences"
- set desc = "Toggles displaying name/species over mobs when moused over."
+ set desc = "Toggles displaying name/species over mobs when they are moused over."
var/pref_path = /datum/client_preference/mob_tooltips
toggle_preference(pref_path)
@@ -343,7 +343,7 @@
/client/verb/toggle_inv_tooltips()
set name = "Toggle Item Tooltips"
set category = "Preferences"
- set desc = "Toggles displaying name/desc over items when moused over (only applies in inventory)."
+ set desc = "Toggles displaying name/desc over items when they are moused over (only applies in inventory)."
var/pref_path = /datum/client_preference/inv_tooltips
toggle_preference(pref_path)
@@ -356,7 +356,7 @@
/client/verb/toggle_hear_instruments()
set name = "Toggle Hear/Ignore Instruments"
set category = "Preferences"
- set desc = "Hear In-game Instruments"
+ set desc = "Toggles the ability to hear instruments playing."
var/pref_path = /datum/client_preference/instrument_toggle
toggle_preference(pref_path)
@@ -369,7 +369,7 @@
/client/verb/toggle_vchat()
set name = "Toggle VChat"
set category = "Preferences"
- set desc = "Enable/Disable VChat. Reloading VChat and/or reconnecting required to affect changes."
+ set desc = "Toggles VChat. Reloading VChat and/or reconnecting required to affect changes."
var/pref_path = /datum/client_preference/vchat_enable
toggle_preference(pref_path)
@@ -382,7 +382,7 @@
/client/verb/toggle_status_indicators()
set name = "Toggle Status Indicators"
set category = "Preferences"
- set desc = "Enable/Disable seeing status indicators over peoples' heads."
+ set desc = "Toggles seeing status indicators over peoples' heads."
var/pref_path = /datum/client_preference/status_indicators
toggle_preference(pref_path)
@@ -396,7 +396,7 @@
/client/verb/toggle_radio_sounds()
set name = "Toggle Radio Sounds"
set category = "Preferences"
- set desc = "Enable/Disable hearing a sound when somebody speaks over your headset."
+ set desc = "Toggle hearing a sound when somebody speaks over your headset."
var/pref_path = /datum/client_preference/radio_sounds
toggle_preference(pref_path)
@@ -410,7 +410,7 @@
/client/verb/toggle_examine_mode()
set name = "Toggle Examine Mode"
set category = "Preferences"
- set desc = "Control the additional behaviour of examining things"
+ set desc = "Toggle the additional behaviour of examining things."
prefs.examine_text_mode++
prefs.examine_text_mode %= EXAMINE_MODE_MAX // This cycles through them because if you're already specifically being routed to the examine panel, you probably don't need to have the extra text printed to chat
@@ -427,7 +427,7 @@
/client/verb/toggle_multilingual_mode()
set name = "Toggle Multilingual Mode"
set category = "Preferences"
- set desc = "Control the behaviour of multilingual speech parsing"
+ set desc = "Toggle the behaviour of multilingual speech parsing."
prefs.multilingual_mode++
prefs.multilingual_mode %= MULTILINGUAL_MODE_MAX // Cycles through the various options
@@ -448,7 +448,7 @@
/client/proc/toggle_debug_logs()
set name = "Toggle Debug Logs"
set category = "Preferences"
- set desc = "Toggles debug logs."
+ set desc = "Toggles seeing debug logs."
var/pref_path = /datum/client_preference/debug/show_debug_logs
@@ -463,7 +463,7 @@
/client/proc/toggle_attack_logs()
set name = "Toggle Attack Logs"
set category = "Preferences"
- set desc = "Toggles attack logs."
+ set desc = "Toggles seeing attack logs."
var/pref_path = /datum/client_preference/mod/show_attack_logs
diff --git a/code/modules/client/preferences_vr.dm b/code/modules/client/preferences_vr.dm
index 6bba9fe31e8..db77b0ba6ee 100644
--- a/code/modules/client/preferences_vr.dm
+++ b/code/modules/client/preferences_vr.dm
@@ -4,6 +4,7 @@
var/directory_erptag = "Unset" //ditto, but for non-vore scenes
var/directory_ad = "" //Advertisement stuff to show in character directory.
var/sensorpref = 5 //Set character's suit sensor level
+ var/capture_crystal = 1 //Whether or not someone is able to be caught with capture crystals
var/job_talon_high = 0
var/job_talon_med = 0
@@ -11,9 +12,9 @@
//Why weren't these in game toggles already?
/client/verb/toggle_eating_noises()
- set name = "Eating Noises"
+ set name = "Toggle Eating Noises"
set category = "Preferences"
- set desc = "Toggles Vore Eating noises."
+ set desc = "Toggles hearing Vore Eating noises."
var/pref_path = /datum/client_preference/eating_noises
@@ -27,9 +28,9 @@
/client/verb/toggle_digestion_noises()
- set name = "Digestion Noises"
+ set name = "Toggle Digestion Noises"
set category = "Preferences"
- set desc = "Toggles Vore Digestion noises."
+ set desc = "Toggles hearing Vore Digestion noises."
var/pref_path = /datum/client_preference/digestion_noises
@@ -40,11 +41,11 @@
SScharacter_setup.queue_preferences_save(prefs)
feedback_add_details("admin_verb","TDigestNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
+
/client/verb/toggle_belch_noises()
- set name = "Audible belching"
+ set name = "Toggle Audible Belching"
set category = "Preferences"
- set desc = "Toggles audible belches."
+ set desc = "Toggles hearing audible belches."
var/pref_path = /datum/client_preference/belch_noises
@@ -57,9 +58,9 @@
feedback_add_details("admin_verb","TBelchNoise")
/client/verb/toggle_emote_noises()
- set name = "Emote Noises"
+ set name = "Toggle Emote Noises"
set category = "Preferences"
- set desc = "Toggles emote noises."
+ set desc = "Toggles hearing emote noises."
var/pref_path = /datum/client_preference/emote_noises
@@ -72,9 +73,9 @@
feedback_add_details("admin_verb","TEmoteNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/toggle_ghost_quiets()
- set name = "Toggle Whisper/Subtle Vis"
+ set name = "Toggle Ghost Privacy"
set category = "Preferences"
- set desc = "Toggle ghosts viewing your subtles/whispers."
+ set desc = "Toggles ghosts being able to see your subtles/whispers."
var/pref_path = /datum/client_preference/whisubtle_vis
@@ -85,3 +86,22 @@
SScharacter_setup.queue_preferences_save(prefs)
feedback_add_details("admin_verb","TWhisubtleVis") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
+/client/verb/toggle_capture_crystal()
+ set name = "Toggle Catchable"
+ set category = "Preferences"
+ set desc = "Toggles being catchable with capture crystals."
+
+ var/mob/living/L = mob
+
+ if(prefs.capture_crystal)
+ to_chat(src, "You are no longer catchable.")
+ prefs.capture_crystal = 0
+ else
+ to_chat(src, "You are now catchable.")
+ prefs.capture_crystal = 1
+ if(L)
+ L.capture_crystal = prefs.capture_crystal
+ SScharacter_setup.queue_preferences_save(prefs)
+
+ feedback_add_details("admin_verb","TCaptureCrystal") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
\ No newline at end of file
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index dd88a75a766..cb595bd9489 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -818,7 +818,9 @@
*/
var/displays_id = 1
var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled
+ var/rolled_down_icon_override = TRUE
var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled
+ var/rolled_sleeves_icon_override = TRUE
sprite_sheets = list(
SPECIES_TESHARI = 'icons/inventory/uniform/mob_teshari.dmi',
SPECIES_VOX = 'icons/inventory/uniform/mob_vox.dmi'
@@ -880,7 +882,7 @@
H = src.loc
var/icon/under_icon
- if(icon_override)
+ if(icon_override && rolled_down_icon_override)
under_icon = icon_override
else if(H && LAZYACCESS(sprite_sheets, H.species.get_bodytype(H)))
under_icon = sprite_sheets[H.species.get_bodytype(H)]
@@ -903,7 +905,7 @@
H = src.loc
var/icon/under_icon
- if(icon_override)
+ if(icon_override && rolled_sleeves_icon_override)
under_icon = icon_override
else if(H && LAZYACCESS(sprite_sheets, H.species.get_bodytype(H)))
under_icon = sprite_sheets[H.species.get_bodytype(H)]
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index 86ce792d4c3..d8bfea2b1de 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -84,6 +84,9 @@
* Ranger Hats
*/
+ //Missing onmob sprites.
+
+/*
/obj/item/clothing/head/hardhat/ranger
var/hatcolor = "white"
name = "ranger helmet"
@@ -116,4 +119,5 @@
hatcolor = "orange"
/obj/item/clothing/head/hardhat/ranger/yellow
- hatcolor = "yellow"
\ No newline at end of file
+ hatcolor = "yellow"
+*/
\ No newline at end of file
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 7f15afe180c..5971e072e84 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -302,43 +302,49 @@
w_class = ITEMSIZE_SMALL
body_parts_covered = FACE
icon_state = "papermask"
+ action_button_name = "Redraw Design"
+ action_button_is_hands_free = TRUE
+ var/list/papermask_designs = list()
-/obj/item/clothing/mask/paper/attackby(obj/item/I as obj, mob/living/user as mob, proximity)
- if(!proximity) return
- if(istype(I, /obj/item/weapon/pen))
- var/drawtype = tgui_alert(user, "Choose what you'd like to draw.", "Faces", list("blank","neutral","eyes","sleeping", "heart", "core", "plus", "square", "bullseye", "vertical", "horizontal", "X", "bug eyes", "double", "mark" ))
- switch(drawtype)
- if("blank")
- src.icon_state = "papermask"
- if("neutral")
- src.icon_state = "neutralmask"
- if("eyes")
- src.icon_state = "eyemask"
- if("sleeping")
- src.icon_state = "sleepingmask"
- if("heart")
- src.icon_state = "heartmask"
- if("core")
- src.icon_state = "coremask"
- if("plus")
- src.icon_state = "plusmask"
- if("square")
- src.icon_state = "squaremask"
- if("bullseye")
- src.icon_state = "bullseyemask"
- if("vertical")
- src.icon_state = "verticalmask"
- if("horizontal")
- src.icon_state = "horizontalmask"
- if("X")
- src.icon_state = "xmask"
- if("bug eyes")
- src.icon_state = "bugmask"
- if("double")
- src.icon_state = "doublemask"
- if("mark")
- src.icon_state = "markmask"
- return
+/obj/item/clothing/mask/paper/Initialize(mapload)
+ . = ..()
+ papermask_designs = list(
+ "Blank" = image(icon = src.icon, icon_state = "papermask"),
+ "Neutral" = image(icon = src.icon, icon_state = "neutralmask"),
+ "Eyes" = image(icon = src.icon, icon_state = "eyemask"),
+ "Sleeping" = image(icon = src.icon, icon_state = "sleepingmask"),
+ "Heart" = image(icon = src.icon, icon_state = "heartmask"),
+ "Core" = image(icon = src.icon, icon_state = "coremask"),
+ "Plus" = image(icon = src.icon, icon_state = "plusmask"),
+ "Square" = image(icon = src.icon, icon_state = "squaremask"),
+ "Bullseye" = image(icon = src.icon, icon_state = "bullseyemask"),
+ "Vertical" = image(icon = src.icon, icon_state = "verticalmask"),
+ "Horizontal" = image(icon = src.icon, icon_state = "horizontalmask"),
+ "X" = image(icon = src.icon, icon_state = "xmask"),
+ "Bugeyes" = image(icon = src.icon, icon_state = "bugmask"),
+ "Double" = image(icon = src.icon, icon_state = "doublemask"),
+ "Mark" = image(icon = src.icon, icon_state = "markmask")
+ )
+
+/obj/item/clothing/mask/paper/attack_self(mob/user)
+ . = ..()
+ if(!istype(user) || user.incapacitated())
+ return
+
+ var/static/list/options = list("Blank" = "papermask", "Neutral" = "neutralmask", "Eyes" = "eyemask",
+ "Sleeping" ="sleepingmask", "Heart" = "heartmask", "Core" = "coremask",
+ "Plus" = "plusmask", "Square" ="squaremask", "Bullseye" = "bullseyemask",
+ "Vertical" = "verticalmask", "Horizontal" = "horizontalmask", "X" ="xmask",
+ "Bugeyes" = "bugmask", "Double" = "doublemask", "Mark" = "markmask")
+
+ var/choice = show_radial_menu(user, src, papermask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
+
+ if(src && choice && !user.incapacitated() && in_range(user,src))
+ icon_state = options[choice]
+ user.update_inv_wear_mask()
+ user.update_action_buttons()
+ to_chat(user, "Your paper mask now is now [choice].")
+ return 1
/obj/item/clothing/mask/emotions
name = "emotional mask"
@@ -346,21 +352,35 @@
w_class = ITEMSIZE_SMALL
body_parts_covered = FACE
icon_state = "joy"
+ action_button_name = "Redraw Design"
+ action_button_is_hands_free = TRUE
+ var/static/list/joymask_designs = list()
-/obj/item/clothing/mask/emotions/attackby(obj/item/I as obj, mob/living/user as mob, proximity)
- if(!proximity) return
- if(istype(I, /obj/item/weapon/pen))
- var/drawtype = tgui_alert(user, "Choose what emotions you'd like to display.", "Emotions", list("joy","pensive","angry","flushed" ))
- switch(drawtype)
- if("joy")
- src.icon_state = "joy"
- if("pensive")
- src.icon_state = "pensive"
- if("angry")
- src.icon_state = "angry"
- if("flushed")
- src.icon_state = "flushed"
- return
+
+/obj/item/clothing/mask/emotions/Initialize(mapload)
+ . = ..()
+ joymask_designs = list(
+ "Joy" = image(icon = src.icon, icon_state = "joy"),
+ "Flushed" = image(icon = src.icon, icon_state = "flushed"),
+ "Pensive" = image(icon = src.icon, icon_state = "pensive"),
+ "Angry" = image(icon = src.icon, icon_state = "angry"),
+ )
+
+/obj/item/clothing/mask/emotions/attack_self(mob/user)
+ . = ..()
+ if(!istype(user) || user.incapacitated())
+ return
+
+ var/static/list/options = list("Joy" = "joy", "Flushed" = "flushed", "Pensive" = "pensive","Angry" ="angry")
+
+ var/choice = show_radial_menu(user, src, joymask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
+
+ if(src && choice && !user.incapacitated() && in_range(user,src))
+ icon_state = options[choice]
+ user.update_inv_wear_mask()
+ user.update_action_buttons()
+ to_chat(user, "Your [src] now displays a [choice] emotion.")
+ return 1
/obj/item/clothing/mask/mouthwheat
name = "mouth wheat"
diff --git a/code/modules/clothing/rings/rings.dm b/code/modules/clothing/rings/rings.dm
index b8313c5f979..f07d0ae6747 100644
--- a/code/modules/clothing/rings/rings.dm
+++ b/code/modules/clothing/rings/rings.dm
@@ -63,6 +63,9 @@
/////////////////////////////////////////
//Seals and Signet Rings
+
+/obj/item/clothing/gloves/ring/seal
+ var/stamptext = null
/obj/item/clothing/gloves/ring/seal/secgen
name = "Secretary-General's official seal"
desc = "The official seal of the Secretary-General of the Sol Central Government, featured prominently on a silver ring."
diff --git a/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm b/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm
index 3dff20284f7..9d156a13613 100644
--- a/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm
@@ -13,7 +13,7 @@
usable = 0
toggleable = 1
use_power_cost = 0
- active_power_cost = 2.5
+ active_power_cost = 0
passive_power_cost = 0
var/obj/item/weapon/kinetic_crusher/machete/gauntlets/rig/stored_gauntlets
diff --git a/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm b/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm
new file mode 100644
index 00000000000..92dcd87dd39
--- /dev/null
+++ b/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm
@@ -0,0 +1,166 @@
+// contains the Radiation Absorption Device (RAD) and Atmospheric Protective Equipment (APE) modules
+// you shits ready for some COPY AND PASTE?
+/obj/item/rig_module/rad_shield
+ name = "radiation absorption device"
+ desc = "The acronym of this device - R.A.D. - and its full name both convey the application of the module."
+ description_info = "Through the usage of powered radiation collectors optimized for absorption rather than power generation, it protects the suit's wearer \
+ from incoming ionizing radiation and converts it into a significantly less harmful form. This comes at the cost of concerningly high power consumption, \
+ and thus should only be used in short bursts."
+ icon_state = "radsoak"
+ toggleable = 1
+ disruptable = 1
+ disruptive = 0
+
+ use_power_cost = 25
+ active_power_cost = 25
+ passive_power_cost = 0
+ module_cooldown = 30
+
+ activate_string = "Enable Supplemental Radiation Shielding"
+ deactivate_string = "Disable Supplemental Radiation Shielding"
+
+ interface_name = "radiation absorption system"
+ interface_desc = "Provides passive protection against radiation, at the cost of power."
+ var/stored_rad_armor = 0
+
+/obj/item/rig_module/rad_shield/activate()
+
+ if(!..())
+ return 0
+
+ var/mob/living/carbon/human/H = holder.wearer
+ var/obj/item/clothing/shoes/boots = holder.boots
+ var/obj/item/clothing/suit/space/rig/chest = holder.chest
+ var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet
+ var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves
+
+ to_chat(H, "You activate your suit's powered radiation shielding.")
+ stored_rad_armor = holder.armor["rad"]
+ if(boots)
+ boots.armor["rad"] = 100
+ if(chest)
+ chest.armor["rad"] = 100
+ if(helmet)
+ helmet.armor["rad"] = 100
+ if(gloves)
+ gloves.armor["rad"] = 100
+ holder.armor["rad"] = 100
+
+/obj/item/rig_module/rad_shield/deactivate()
+
+ if(!..())
+ return 0
+
+ var/mob/living/carbon/human/H = holder.wearer
+ var/obj/item/clothing/shoes/boots = holder.boots
+ var/obj/item/clothing/suit/space/rig/chest = holder.chest
+ var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet
+ var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves
+
+ to_chat(H, "You deactivate your suit's powered radiation shielding.")
+
+ if(boots)
+ boots.armor["rad"] = stored_rad_armor
+ if(chest)
+ chest.armor["rad"] = stored_rad_armor
+ if(helmet)
+ helmet.armor["rad"] = stored_rad_armor
+ if(gloves)
+ gloves.armor["rad"] = stored_rad_armor
+ holder.armor["rad"] = stored_rad_armor
+
+ stored_rad_armor = 0
+
+/obj/item/rig_module/rad_shield/advanced
+ name = "advanced radiation absorption device"
+ desc = "The acronym of this device - R.A.D. - and its full name both convey the application of the module. It has additional quality notices \
+ on the underside of the casing."
+ use_power_cost = 5
+ active_power_cost = 5
+
+/obj/item/rig_module/atmos_shield
+ name = "atmospheric protection enhancement suite"
+ desc = "The acronym of this suite - A.P.E. - unlike its loosely related cousin, the R.A.D., is remarkably unintuitive."
+ description_info = "Through the usage of powered shielding optimized for protection against the elements rather than from external physical issues, \
+ it protects the suit's wearer from atmospheric pressure and temperatures. This comes at the cost of concerningly high power consumption, \
+ and thus should only be used in short bursts."
+ icon_state = "atmosoak"
+
+ toggleable = 1
+ disruptable = 1
+ disruptive = 0
+
+ use_power_cost = 25
+ active_power_cost = 25
+ passive_power_cost = 0
+ module_cooldown = 30
+
+ activate_string = "Enable Powered Atmospheric Shielding"
+ deactivate_string = "Disable Powered Atmospheric Shielding"
+
+ interface_name = "atmospheric protection enhancements"
+ interface_desc = "Provides passive protection against the atmosphere, at the cost of power."
+ var/stored_max_pressure = 0
+ var/stored_max_temp = 0
+
+/obj/item/rig_module/atmos_shield/activate()
+
+ if(!..())
+ return 0
+
+ var/mob/living/carbon/human/H = holder.wearer
+ var/obj/item/clothing/shoes/boots = holder.boots
+ var/obj/item/clothing/suit/space/rig/chest = holder.chest
+ var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet
+ var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves
+
+ stored_max_pressure = holder.max_pressure_protection
+ stored_max_temp = holder.max_heat_protection_temperature
+
+ to_chat(H, "You activate your suit's powered atmospheric shielding.")
+
+ if(boots)
+ boots.max_pressure_protection = INFINITY
+ boots.max_heat_protection_temperature = INFINITY
+ if(chest)
+ chest.max_pressure_protection = INFINITY
+ chest.max_heat_protection_temperature = INFINITY
+ if(helmet)
+ helmet.max_pressure_protection = INFINITY
+ helmet.max_heat_protection_temperature = INFINITY
+ if(gloves)
+ gloves.max_pressure_protection = INFINITY
+ gloves.max_heat_protection_temperature = INFINITY
+ holder.max_pressure_protection = INFINITY
+ holder.max_heat_protection_temperature = INFINITY
+
+/obj/item/rig_module/atmos_shield/deactivate()
+
+ if(!..())
+ return 0
+
+ var/mob/living/carbon/human/H = holder.wearer
+ var/obj/item/clothing/shoes/boots = holder.boots
+ var/obj/item/clothing/suit/space/rig/chest = holder.chest
+ var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet
+ var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves
+
+ to_chat(H, "You deactivate your suit's powered atmospheric shielding.")
+
+ if(boots)
+ boots.max_pressure_protection = stored_max_pressure
+ boots.max_heat_protection_temperature = stored_max_temp
+ if(chest)
+ chest.max_pressure_protection = stored_max_pressure
+ chest.max_heat_protection_temperature = stored_max_temp
+ if(helmet)
+ helmet.max_pressure_protection = stored_max_pressure
+ helmet.max_heat_protection_temperature = stored_max_temp
+ if(gloves)
+ gloves.max_pressure_protection = stored_max_pressure
+ gloves.max_heat_protection_temperature = stored_max_temp
+ holder.max_pressure_protection = stored_max_pressure
+ holder.max_heat_protection_temperature = stored_max_temp
+
+ stored_max_pressure = 0
+ stored_max_temp = 0
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm
index a749d6824d8..52922098076 100644
--- a/code/modules/clothing/spacesuits/rig/rig.dm
+++ b/code/modules/clothing/spacesuits/rig/rig.dm
@@ -183,7 +183,7 @@
. += "The access panel is [locked? "locked" : "unlocked"]."
. += "The maintenance panel is [open ? "open" : "closed"]."
. += "Hardsuit systems are [offline ? "offline" : "online"]."
- . += "The cooling stystem is [cooling_on ? "active" : "inactive"]."
+ . += "The cooling system is [cooling_on ? "active" : "inactive"]."
if(open)
. += "It's equipped with [english_list(installed_modules)]."
@@ -414,10 +414,10 @@
if(!cell)
return
if(cell.charge <= 0)
- to_chat(user, "\The [src] has no power!.")
+ to_chat(user, "\The [src] has no power!")
return
if(!suit_is_deployed())
- to_chat(user, "The hardsuit needs to be deployed first!.")
+ to_chat(user, "The hardsuit needs to be deployed first!")
return
cooling_on = 1
diff --git a/code/modules/clothing/spacesuits/rig/rig_tgui.dm b/code/modules/clothing/spacesuits/rig/rig_tgui.dm
index 0a493264e59..66c7266d3dd 100644
--- a/code/modules/clothing/spacesuits/rig/rig_tgui.dm
+++ b/code/modules/clothing/spacesuits/rig/rig_tgui.dm
@@ -51,6 +51,7 @@
else
data["ai"] = FALSE
+ data["cooling"] = cooling_on
data["sealed"] = !canremove
data["sealing"] = sealing
data["helmet"] = (helmet ? "[helmet.name]" : "None.")
@@ -130,6 +131,9 @@
if("toggle_seals")
toggle_seals(usr)
. = TRUE
+ if("toggle_cooling")
+ toggle_cooling(usr) // cooling toggles have its own to_chats, tbf
+ . = TRUE
if("toggle_ai_control")
ai_override_enabled = !ai_override_enabled
notify_ai("Synthetic suit control has been [ai_override_enabled ? "enabled" : "disabled"].")
diff --git a/code/modules/clothing/suits/labcoat_vr.dm b/code/modules/clothing/suits/labcoat_vr.dm
index 4f82afd2e32..1e3f13a411b 100644
--- a/code/modules/clothing/suits/labcoat_vr.dm
+++ b/code/modules/clothing/suits/labcoat_vr.dm
@@ -1,7 +1,7 @@
// 'Modern' labcoats
/obj/item/clothing/suit/storage/toggle/labcoat/modern
name = "modern labcoat"
-
+
icon = 'icons/inventory/suit/item_vr.dmi'
default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
icon_state = "labcoat_mod"
@@ -25,3 +25,41 @@
icon = 'icons/inventory/head/item_vr.dmi'
default_worn_icon = 'icons/inventory/head/mob_vr.dmi'
icon_state = "bio_mod"
+
+// Labcoat icons from before the fulpstation labcoats became default
+// denoted "old" to avoid conflict
+
+/obj/item/clothing/suit/storage/toggle/labcoat/old
+ name = "old-school labcoat"
+
+ icon = 'icons/inventory/suit/item_vr.dmi'
+ default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
+ icon_state = "labcoat_old"
+
+/obj/item/clothing/suit/storage/toggle/labcoat/old/tox
+ name = "old-school scientist's labcoat"
+
+ icon = 'icons/inventory/suit/item_vr.dmi'
+ default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
+ icon_state = "labcoat_old_tox"
+
+/obj/item/clothing/suit/storage/toggle/labcoat/old/chem
+ name = "old-school chemist's labcoat"
+
+ icon = 'icons/inventory/suit/item_vr.dmi'
+ default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
+ icon_state = "labcoat_old_chem"
+
+/obj/item/clothing/suit/storage/toggle/labcoat/old/vir
+ name = "old-school virologist's labcoat"
+
+ icon = 'icons/inventory/suit/item_vr.dmi'
+ default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
+ icon_state = "labcoat_old_vir"
+
+/obj/item/clothing/suit/storage/toggle/labcoat/old/cmo
+ name = "old-school CMO's labcoat"
+
+ icon = 'icons/inventory/suit/item_vr.dmi'
+ default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
+ icon_state = "labcoat_old_cmo"
\ No newline at end of file
diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm
index b0879f0222f..9816a8ccab0 100644
--- a/code/modules/clothing/under/miscellaneous_vr.dm
+++ b/code/modules/clothing/under/miscellaneous_vr.dm
@@ -102,7 +102,7 @@
if(new_size != H.size_multiplier)
if(!original_size)
original_size = H.size_multiplier
- H.resize(new_size/100, ignore_prefs = TRUE) // Ignores prefs because you can only resize yourself
+ H.resize(new_size/100, uncapped = H.has_large_resize_bounds(), ignore_prefs = TRUE) // Ignores prefs because you can only resize yourself
H.visible_message("The space around [H] distorts as they change size!","The space around you distorts as you change size!")
else //They chose their current size.
return
@@ -142,7 +142,9 @@
name = "pizza delivery uniform"
desc = "A dedicated outfit for pizza delivery people, one of most dangerous occupations around these parts. Can be rolled up for extra show of skin."
icon = 'icons/inventory/uniform/item_vr.dmi'
+ icon_override = 'icons/inventory/uniform/mob_vr.dmi'
rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi'
+ rolled_down_icon_override = FALSE
icon_state = "pizzadelivery"
item_state = "pizzadelivery"
rolled_down = 0
@@ -158,6 +160,8 @@
icon_state = "talon_basic"
item_state = "talon_basic"
rolled_sleeves = 0
+ rolled_down_icon_override = FALSE
+ rolled_sleeves_icon_override = FALSE
/obj/item/clothing/under/rank/talon/proper
name = "Talon proper jumpsuit"
@@ -168,6 +172,8 @@
icon_state = "talon_jumpsuit"
item_state = "talon_jumpsuit"
rolled_sleeves = 0
+ rolled_down_icon_override = FALSE
+ rolled_sleeves_icon_override = FALSE
/obj/item/clothing/under/rank/talon/security
name = "Talon security jumpsuit"
@@ -178,6 +184,8 @@
icon_state = "talon_security"
item_state = "talon_security"
rolled_sleeves = 0
+ rolled_down_icon_override = FALSE
+ rolled_sleeves_icon_override = FALSE
/obj/item/clothing/under/rank/talon/pilot
name = "Talon pilot jumpsuit"
@@ -188,6 +196,8 @@
icon_state = "talon_pilot"
item_state = "talon_pilot"
rolled_sleeves = 0
+ rolled_down_icon_override = FALSE
+ rolled_sleeves_icon_override = FALSE
/obj/item/clothing/under/rank/talon/command
name = "Talon command jumpsuit"
@@ -198,6 +208,8 @@
icon_state = "talon_captain"
item_state = "talon_captain"
rolled_sleeves = 0
+ rolled_down_icon_override = FALSE
+ rolled_sleeves_icon_override = FALSE
// Excelsior uniforms
/obj/item/clothing/under/excelsior
diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm
index 817f9398ba2..5027691a9a5 100644
--- a/code/modules/economy/vending_machines.dm
+++ b/code/modules/economy/vending_machines.dm
@@ -57,7 +57,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine = 5,
- /obj/item/weapon/reagent_containers/food/condiment/cornoil = 5,
+ /obj/item/weapon/reagent_containers/food/condiment/cookingoil = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/peppermintschnapps = 5,
@@ -587,7 +587,7 @@
icon_state = "dinnerware"
products = list(
/obj/item/weapon/reagent_containers/food/condiment/yeast = 5,
- /obj/item/weapon/reagent_containers/food/condiment/cornoil = 5,
+ /obj/item/weapon/reagent_containers/food/condiment/cookingoil = 5,
/obj/item/weapon/tray = 8,
/obj/item/weapon/material/kitchen/utensil/fork = 6,
/obj/item/weapon/material/knife/plastic = 6,
@@ -1224,6 +1224,7 @@
/obj/item/clothing/shoes/white = 5,
/obj/item/clothing/suit/storage/toggle/labcoat = 5,
/obj/item/clothing/suit/storage/toggle/labcoat/modern = 5,
+ /obj/item/clothing/suit/storage/toggle/labcoat/old = 5, //VoreStation edit, pre-fulp labcoat.
/obj/item/clothing/mask/surgical = 5,
/obj/item/clothing/suit/storage/hooded/wintercoat/medical = 5,
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/alt = 5,
@@ -1244,6 +1245,7 @@
/obj/item/clothing/under/rank/chemist/skirt = 5,
/obj/item/clothing/shoes/white = 5,
/obj/item/clothing/suit/storage/toggle/labcoat/chemist = 5,
+ /obj/item/clothing/suit/storage/toggle/labcoat/old/chem = 5, //VoreStation edit, pre-fulp labcoat.
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/chemist = 5,
/obj/item/clothing/head/beret/medical/chem = 5,
/obj/item/weapon/storage/backpack/chemistry = 5,
@@ -1281,7 +1283,8 @@
/obj/item/clothing/under/rank/virologist/skirt = 5,
/obj/item/clothing/shoes/white = 5,
/obj/item/clothing/suit/storage/toggle/labcoat/virologist = 5,
- /obj/item/clothing/suit/storage/hooded/wintercoat/medical/viro = 5,
+ /obj/item/clothing/suit/storage/toggle/labcoat/old/vir = 5,
+ /obj/item/clothing/suit/storage/hooded/wintercoat/medical/viro = 5, //VoreStation edit, pre-fulp labcoat.
/obj/item/clothing/head/beret/medical/viro = 5,
/obj/item/clothing/mask/surgical = 5,
/obj/item/weapon/storage/backpack/virology = 5,
@@ -1301,6 +1304,7 @@
/obj/item/clothing/under/rank/scientist/skirt = 5,
/obj/item/clothing/under/rank/scientist/turtleneck = 5,
/obj/item/clothing/suit/storage/toggle/labcoat = 5,
+ /obj/item/clothing/suit/storage/toggle/labcoat/old = 5, //VoreStation edit, pre-fulp labcoat.
/obj/item/clothing/suit/storage/toggle/labcoat/modern = 5,
/obj/item/clothing/shoes/white = 5,
/obj/item/clothing/shoes/slippers = 5,
diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm
index 774b2bc99ec..d0874234970 100644
--- a/code/modules/economy/vending_machines_vr.dm
+++ b/code/modules/economy/vending_machines_vr.dm
@@ -1139,7 +1139,8 @@
product_ads = "Dress your best! It's what big D would want.;Overwear for all occasions!;Big D has what you need if what you need is some form of jacket!;Need a new hoodie? Bid D has you covered.;Big D says you need a new suit!;Big D smiles when he sees you in one of his coats!"
icon_state = "suit"
vend_delay = 16
- products = list(/obj/item/clothing/suit/storage/apron = 5,
+ products = list(/obj/item/clothing/suit/storage/toggle/labcoat/old = 100,
+ /obj/item/clothing/suit/storage/apron = 5,
/obj/item/clothing/suit/storage/flannel/aqua = 5,
/obj/item/clothing/suit/storage/toggle/bomber = 5,
/obj/item/clothing/suit/storage/bomber/alt = 5,
@@ -3938,7 +3939,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/chicken = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi = 10,
- /obj/item/weapon/reagent_containers/food/snacks/meat/crab = 10,
+ /obj/item/weapon/reagent_containers/food/snacks/crabmeat = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/fox = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/human = 10,
@@ -4394,7 +4395,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/chicken = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi = 10,
- /obj/item/weapon/reagent_containers/food/snacks/meat/crab = 10,
+ /obj/item/weapon/reagent_containers/food/snacks/crabmeat = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/fox = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat/human = 10,
diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm
index 2e4d9d84cf9..0af166fe230 100644
--- a/code/modules/events/aurora_caelus.dm
+++ b/code/modules/events/aurora_caelus.dm
@@ -5,13 +5,13 @@
endWhen = 126
/datum/event/aurora_caelus/announce()
- command_announcement.Announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. \
+ command_announcement.Announce("[station_name()]: A harmless cloud of ions is approaching your [using_map.facility_type], and will exhaust their energy battering the hull. \
Nanotrasen has approved a short break for all employees to relax and observe this very rare event. \
During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. \
Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. \
You will have approximately two minutes before the ions begin to reach the hull. \
We hope you enjoy the lights.", "Nanotrasen Meteorology Division", new_sound = 'sound/AI/aurora.ogg') //VOREStation Edit
-
+
/datum/event/aurora_caelus/start()
affecting_z -= global.using_map.sealed_levels // Space levels only please!
for(var/mob/M in player_list)
@@ -31,6 +31,6 @@ Please return to your workplace and continue work as normal. \
Have a pleasant shift, [station_name()], and thank you for watching with us.",
"Nanotrasen Meteorology Division", new_sound = 'sound/AI/aurora_end.ogg') //VOREStation Edit
..()
-
+
/datum/event/aurora_caelus/overmap/announce()
return
diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm
index d4fb6faa973..7f991b44fc2 100644
--- a/code/modules/events/carp_migration.dm
+++ b/code/modules/events/carp_migration.dm
@@ -26,7 +26,7 @@
if(activeFor % 5 != 0)
return // Only process every 10 seconds.
if(count_spawned_carps() < carp_cap)
- spawn_fish(rand(1, severity * 2) - 1, severity, severity * 2)
+ spawn_fish(rand(3, 3 + severity * 2) - 1, 1, severity + 2)
/datum/event/carp_migration/proc/spawn_fish(var/num_groups, var/group_size_min, var/group_size_max, var/dir)
if(isnull(dir))
diff --git a/code/modules/events/drone_pod_vr.dm b/code/modules/events/drone_pod_vr.dm
index 54ddd7bdba9..c93911e7779 100644
--- a/code/modules/events/drone_pod_vr.dm
+++ b/code/modules/events/drone_pod_vr.dm
@@ -22,7 +22,7 @@
qdel(target_spot)
/datum/event/drone_pod_drop/announce()
- command_announcement.Announce("An unidentified drone pod has been detected landing near the surface facilty. Open and examine at your own risk.", "NanoTrasen Orbital Monitoring")
+ command_announcement.Announce("An unidentified drone pod has been detected on a collision course towards the [location_name()]. Open and examine at your own risk.", "[location_name()] Sensor Network")
/datum/event/drone_pod_drop/start()
if(!land_target)
diff --git a/code/modules/events/event_container_vr.dm b/code/modules/events/event_container_vr.dm
index e82fa420d4f..7b429f94477 100644
--- a/code/modules/events/event_container_vr.dm
+++ b/code/modules/events/event_container_vr.dm
@@ -84,7 +84,8 @@
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 0, list(ASSIGNMENT_SECURITY = 10, ASSIGNMENT_ENGINEER = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Drone Pod Drop", /datum/event/drone_pod_drop, 10, list(ASSIGNMENT_SCIENTIST = 40), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/morph_spawn, 75, list(ASSIGNMENT_SECURITY = 30, ASSIGNMENT_SCIENTIST = 10), 1),
- new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 75, list(ASSIGNMENT_SECURITY = 40), 0)
+ new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 75, list(ASSIGNMENT_SECURITY = 40), 0),
+ new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 30), 1),
@@ -97,17 +98,18 @@
/datum/event_container/major/New()
available_events = list(
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 3600),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 20, list(ASSIGNMENT_ENGINEER = 7), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station,0, list(ASSIGNMENT_ANY = 5), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 3600),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 20, list(ASSIGNMENT_ENGINEER = 7), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station, 0, list(ASSIGNMENT_ANY = 5), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
)
add_disabled_events(list(
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
))
#undef ASSIGNMENT_ANY
diff --git a/code/modules/events/ian_storm_vr.dm b/code/modules/events/ian_storm_vr.dm
index 8e654cff437..dc9aee617d4 100644
--- a/code/modules/events/ian_storm_vr.dm
+++ b/code/modules/events/ian_storm_vr.dm
@@ -4,7 +4,7 @@
endWhen = 3
/datum/event/ianstorm/announce()
- command_announcement.Announce("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert", 'sound/AI/ian_storm.ogg')
+ command_announcement.Announce("It has come to our attention that the [using_map.facility_type] passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert", 'sound/AI/ian_storm.ogg')
spawn(7 SECONDS)
command_announcement.Announce("Wait. No, thats wrong. The station passed through an IAN storm!.", "Ian Alert")
diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm
index 985518067bf..d0d221d5fd1 100644
--- a/code/modules/events/infestation.dm
+++ b/code/modules/events/infestation.dm
@@ -1,120 +1,78 @@
-#define LOC_KITCHEN 0
-#define LOC_ATMOS 1
-#define LOC_CHAPEL 2
-#define LOC_LIBRARY 3
-#define LOC_HYDRO 4
-#define LOC_CONSTR 5
-#define LOC_TECH 6
-#define LOC_GARDEN 7
-#define LOC_STEMNGR 8
-#define LOC_RESEARCH 9
-
#define VERM_MICE 0
#define VERM_LIZARDS 1
-#define VERM_SPIDERS 2
/datum/event/infestation
announceWhen = 10
endWhen = 11
- var/location
var/locstring
var/vermin
var/vermstring
+ var/list/spawned_vermin = list()
+ var/spawn_types
+ var/num_groups
+ var/prep_size_min
+ var/prep_size_max
+ var/vermin_cap = 40
+ var/list/spawn_locations = list()
/datum/event/infestation/start()
-
- location = rand(0,9)
- var/list/turf/simulated/floor/turfs = list()
- var/spawn_area_type
- switch(location)
- if(LOC_KITCHEN)
- spawn_area_type = /area/crew_quarters/kitchen
- locstring = "the kitchen"
- if(LOC_ATMOS)
- spawn_area_type = /area/engineering/atmos
- locstring = "atmospherics"
- if(LOC_CHAPEL)
- spawn_area_type = /area/chapel/main
- locstring = "the chapel"
- if(LOC_LIBRARY)
- spawn_area_type = /area/library
- locstring = "the library"
- if(LOC_HYDRO)
- spawn_area_type = /area/hydroponics
- locstring = "hydroponics"
- if(LOC_CONSTR)
- spawn_area_type = /area/construction
- locstring = "the construction area"
- if(LOC_TECH)
- spawn_area_type = /area/storage/tech
- locstring = "technical storage"
- if(LOC_GARDEN)
- spawn_area_type = /area/hydroponics/garden
- locstring = "the public garden"
- if(LOC_STEMNGR)
- spawn_area_type = /area/crew_quarters/captain
- locstring = "the site manager's office"
- if(LOC_RESEARCH)
- spawn_area_type = /area/rnd/research
- locstring = "the research division"
-
- for(var/areapath in typesof(spawn_area_type))
- var/area/A = locate(areapath)
- for(var/turf/simulated/floor/F in A.contents)
- //VOREStation Edit - Fixes event
- var/blocked = FALSE
- for(var/atom/movable/AM in F)
- if(AM.density)
- blocked = TRUE
- if(!blocked)
- turfs += F
- //VOREStation Edit - Fixes event
-
- var/list/spawn_types = list()
- var/max_number
- vermin = rand(0,2)
+ vermin = rand(0,1)
switch(vermin)
if(VERM_MICE)
- spawn_types = list(/mob/living/simple_mob/animal/passive/mouse/gray, /mob/living/simple_mob/animal/passive/mouse/brown, /mob/living/simple_mob/animal/passive/mouse/white)
- max_number = 12
+ spawn_types = /mob/living/simple_mob/animal/passive/mouse/gray
+ prep_size_min = 1
+ prep_size_max = 4
vermstring = "mice"
if(VERM_LIZARDS)
- spawn_types = list(/mob/living/simple_mob/animal/passive/lizard)
- max_number = 6
+ spawn_types = /mob/living/simple_mob/animal/passive/lizard
+ prep_size_min = 1
+ prep_size_max = 3
vermstring = "lizards"
- if(VERM_SPIDERS)
- spawn_types = list(/obj/effect/spider/spiderling)
- max_number = 3
- vermstring = "spiders"
+ // Check if any landmarks exist!
+ for(var/obj/effect/landmark/C in landmarks_list)
+ if(C.name == "verminstart")
+ spawn_locations.Add(C.loc)
- spawn(0)
- var/num = rand(2,max_number)
- while(turfs.len > 0 && num > 0)
- var/turf/simulated/floor/T = pick(turfs)
- turfs.Remove(T)
- num--
- if(vermin == VERM_SPIDERS)
- var/obj/effect/spider/spiderling/S = new(T)
- S.amount_grown = -1
- else
- var/spawn_type = pick(spawn_types)
- new spawn_type(T)
+/datum/event/infestation/tick()
+ if(activeFor % 5 != 0)
+ return // Only process every 10 seconds.
+ if(count_spawned_vermin() < vermin_cap)
+ spawn_vermin(rand(4,10), prep_size_min, prep_size_max)
+
+/datum/event/infestation/proc/spawn_vermin(var/num_groups, var/group_size_min, var/group_size_max)
+ if(spawn_locations.len) // Okay we've got landmarks, lets use those!
+ shuffle_inplace(spawn_locations)
+ num_groups = min(num_groups, spawn_locations.len)
+ for (var/i = 1, i <= num_groups, i++)
+ var/group_size = rand(group_size_min, group_size_max)
+ for (var/j = 0, j < group_size, j++)
+ spawn_one_vermin(spawn_locations[i])
+ return
+
+// Spawn a single vermin at given location.
+/datum/event/infestation/proc/spawn_one_vermin(var/loc)
+ var/mob/living/simple_mob/animal/M = new spawn_types(loc)
+ GLOB.destroyed_event.register(M, src, .proc/on_vermin_destruction)
+ spawned_vermin.Add(M)
+ return M
+
+// Counts living vermin spawned by this event.
+/datum/event/infestation/proc/count_spawned_vermin()
+ . = 0
+ for(var/mob/living/simple_mob/animal/M as anything in spawned_vermin)
+ if(!QDELETED(M) && M.stat != DEAD)
+ . += 1
+
+// If vermin is kill, remove it from the list.
+/datum/event/infestation/proc/on_vermin_destruction(var/mob/M)
+ spawned_vermin -= M
+ GLOB.destroyed_event.unregister(M, src, .proc/on_vermin_destruction)
+
/datum/event/infestation/announce()
- command_announcement.Announce("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation")
-
-#undef LOC_KITCHEN
-#undef LOC_ATMOS
-#undef LOC_CHAPEL
-#undef LOC_LIBRARY
-#undef LOC_HYDRO
-#undef LOC_TECH
-#undef LOC_GARDEN
-#undef LOC_STEMNGR
-#undef LOC_RESEARCH
+ command_announcement.Announce("Bioscans indicate that [vermstring] have been breeding all over the facility. Clear them out, before this starts to affect productivity.", "Vermin infestation")
#undef VERM_MICE
-#undef VERM_LIZARDS
-#undef VERM_SPIDERS
+#undef VERM_LIZARDS
\ No newline at end of file
diff --git a/code/modules/events/jellyfish_migration.dm b/code/modules/events/jellyfish_migration.dm
new file mode 100644
index 00000000000..7498539ae14
--- /dev/null
+++ b/code/modules/events/jellyfish_migration.dm
@@ -0,0 +1,102 @@
+/datum/event/jellyfish_migration
+ startWhen = 0 // Start immediately
+ announceWhen = 45 // Adjusted by setup
+ endWhen = 75 // Adjusted by setup
+ var/jellyfish_cap = 20
+ var/list/spawned_jellyfish = list()
+
+/datum/event/jellyfish_migration/setup()
+ announceWhen = rand(30, 60) // 1 to 2 minutes
+ endWhen += severity * 25
+ jellyfish_cap = 2 + 3 ** severity // No more than this many at once regardless of waves. (5, 11, 29)
+
+/datum/event/jellyfish_migration/start()
+ affecting_z -= global.using_map.sealed_levels // Space levels only please!
+ ..()
+
+/datum/event/jellyfish_migration/announce()
+ var/announcement = ""
+ if(severity == EVENT_LEVEL_MAJOR)
+ announcement = "Massive migration of unknown biological entities has been detected near [location_name()], please stand-by."
+ else
+ announcement = "Unknown biological [spawned_jellyfish.len == 1 ? "entity has" : "entities have"] been detected near [location_name()], please stand-by."
+ command_announcement.Announce(announcement, "Lifesign Alert")
+
+/datum/event/jellyfish_migration/tick()
+ if(activeFor % 5 != 0)
+ return // Only process every 10 seconds.
+ if(count_spawned_jellyfish() < jellyfish_cap)
+ spawn_fish(rand(3, 3 + severity * 2) - 1, 1, severity + 2)
+
+/datum/event/jellyfish_migration/proc/spawn_fish(var/num_groups, var/group_size_min, var/group_size_max, var/dir)
+ if(isnull(dir))
+ dir = (victim && prob(80)) ? victim.fore_dir : pick(GLOB.cardinal)
+
+ // Check if any landmarks exist! These will use the carp spawn since they already would spawn in these similar spots.
+ var/list/spawn_locations = list()
+ for(var/obj/effect/landmark/C in landmarks_list)
+ if(C.name == "carpspawn" && (C.z in affecting_z))
+ spawn_locations.Add(C.loc)
+ if(spawn_locations.len) // Okay we've got landmarks, lets use those!
+ shuffle_inplace(spawn_locations)
+ num_groups = min(num_groups, spawn_locations.len)
+ for (var/i = 1, i <= num_groups, i++)
+ var/group_size = rand(group_size_min, group_size_max)
+ for (var/j = 0, j < group_size, j++)
+ spawn_one_jellyfish(spawn_locations[i])
+ return
+
+ // Okay we did *not* have any landmarks, so lets do our best!
+ var/i = 1
+ while (i <= num_groups)
+ var/Z = pick(affecting_z)
+ var/group_size = rand(group_size_min, group_size_max)
+ var/turf/map_center = locate(round(world.maxx/2), round(world.maxy/2), Z)
+ var/turf/group_center = pick_random_edge_turf(dir, Z, TRANSITIONEDGE + 2)
+ var/list/turfs = getcircle(group_center, 2)
+ for (var/j = 0, j < group_size, j++)
+ var/mob/living/simple_mob/animal/M = spawn_one_jellyfish(turfs[(i % turfs.len) + 1])
+ // Ray trace towards middle of the map to find where they can stop just outside of structure/ship.
+ var/turf/target
+ for(var/turf/T in getline(get_turf(M), map_center))
+ if(!T.is_space())
+ break;
+ target = T
+ if(target)
+ M.ai_holder?.give_destination(target) // Ask jellyfish to swim towards the middle of the map
+ i++
+
+// Spawn a single jellyfish at given location.
+/datum/event/jellyfish_migration/proc/spawn_one_jellyfish(var/loc)
+ var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/vore/alienanimals/space_jellyfish(loc)
+ GLOB.destroyed_event.register(M, src, .proc/on_jellyfish_destruction)
+ spawned_jellyfish.Add(M)
+ return M
+
+// Counts living jellyfish spawned by this event.
+/datum/event/jellyfish_migration/proc/count_spawned_jellyfish()
+ . = 0
+ for(var/mob/living/simple_mob/animal/M as anything in spawned_jellyfish)
+ if(!QDELETED(M) && M.stat != DEAD)
+ . += 1
+
+// If jellyfish is bomphed, remove it from the list.
+/datum/event/jellyfish_migration/proc/on_jellyfish_destruction(var/mob/M)
+ spawned_jellyfish -= M
+ GLOB.destroyed_event.unregister(M, src, .proc/on_jellyfish_destruction)
+
+/datum/event/jellyfish_migration/end()
+ . = ..()
+ // Clean up jellyfish that died in space for some reason.
+ spawn(0)
+ for(var/mob/living/simple_mob/SM in spawned_jellyfish)
+ if(SM.stat == DEAD)
+ var/turf/T = get_turf(SM)
+ if(istype(T, /turf/space))
+ if(prob(75))
+ qdel(SM)
+ CHECK_TICK
+
+// Overmap version
+/datum/event/jellyfish_migration/overmap/announce()
+ return
diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm
index f2675a0ede1..2575873aae2 100644
--- a/code/modules/events/prison_break.dm
+++ b/code/modules/events/prison_break.dm
@@ -37,7 +37,7 @@
/datum/event/prison_break/announce()
if(areas && areas.len > 0)
- command_announcement.Announce("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] [(eventDept == "Security")? "imprisonment":"containment"] subroutines. Secure any compromised areas immediately. Station AI involvement is recommended.", "[eventDept] Alert")
+ command_announcement.Announce("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] [(eventDept == "Security")? "imprisonment":"containment"] subroutines. Secure any compromised areas immediately. Involvement of [using_map.facility_type] AI is recommended.", "[eventDept] Alert")
/datum/event/prison_break/start()
diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm
index 13f853dd3c2..a8668e561a4 100644
--- a/code/modules/events/radiation_storm.dm
+++ b/code/modules/events/radiation_storm.dm
@@ -16,7 +16,7 @@
/datum/event/radiation_storm/tick()
if(activeFor == enterBelt)
- command_announcement.Announce("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert")
+ command_announcement.Announce("The [using_map.facility_type] has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert")
radiate()
if(activeFor >= enterBelt && activeFor <= leaveBelt)
@@ -27,7 +27,7 @@
radiate()
else if(activeFor == leaveBelt)
- command_announcement.Announce("The station has passed the radiation belt. Please allow for up to one minute while radiation levels dissipate, and report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
+ command_announcement.Announce("The [using_map.facility_type] has passed the radiation belt. Please allow for up to one minute while radiation levels dissipate, and report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
/datum/event/radiation_storm/proc/radiate()
var/radiation_level = rand(15, 35)
for(var/z in using_map.station_levels)
diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm
index f6ac58b1e41..b7e9f37552a 100644
--- a/code/modules/events/rogue_drones.dm
+++ b/code/modules/events/rogue_drones.dm
@@ -35,7 +35,7 @@
if(4)
msg = "A passing derelict ship's drone defense systems have just activated. If any are sighted in the area, use caution."
if(5)
- msg = "We're detecting a swarm of small objects approaching your station. Most likely a bunch of drones. Please exercise caution if you see any."
+ msg = "We're detecting a swarm of small objects approaching your [using_map.facility_type]. Most likely a bunch of drones. Please exercise caution if you see any."
//VOREStation Edit End
command_announcement.Announce(msg, "Rogue drone alert")
diff --git a/code/modules/events/solar_storm.dm b/code/modules/events/solar_storm.dm
index a8d4b92a3c0..33c2c477edf 100644
--- a/code/modules/events/solar_storm.dm
+++ b/code/modules/events/solar_storm.dm
@@ -9,7 +9,7 @@
endWhen = startWhen + rand(30,90) + rand(30,90) //2-6 minute duration
/datum/event/solar_storm/announce()
- command_announcement.Announce("A solar storm has been detected approaching \the [station_name()]. Please halt all EVA activites immediately and return to the interior of the station.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
+ command_announcement.Announce("A solar storm has been detected approaching \the [station_name()]. Please halt all EVA activites immediately and return to the interior of the [using_map.facility_type].", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
adjust_solar_output(1.5)
/datum/event/solar_storm/proc/adjust_solar_output(var/mult = 1)
@@ -18,7 +18,7 @@
/datum/event/solar_storm/start()
- command_announcement.Announce("The solar storm has reached the station. Please refrain from EVA and remain inside the station until it has passed.", "Anomaly Alert")
+ command_announcement.Announce("The solar storm has reached the [using_map.facility_type]. Please refrain from EVA and remain inside the station until it has passed.", "Anomaly Alert")
adjust_solar_output(5)
@@ -40,7 +40,7 @@
L.rad_act(rand(15, 30))
/datum/event/solar_storm/end()
- command_announcement.Announce("The solar storm has passed the station. It is now safe to resume EVA activities. Please report to medbay if you experience any unusual symptoms. ", "Anomaly Alert")
+ command_announcement.Announce("The solar storm has passed the [using_map.facility_type]. It is now safe to resume EVA activities. Please report to medbay if you experience any unusual symptoms. ", "Anomaly Alert")
adjust_solar_output()
diff --git a/code/modules/events/supply_demand_vr.dm b/code/modules/events/supply_demand_vr.dm
index 6e229e1b483..f61d4744c44 100644
--- a/code/modules/events/supply_demand_vr.dm
+++ b/code/modules/events/supply_demand_vr.dm
@@ -63,7 +63,7 @@
send_console_message(message, dpt);
// Also announce over main comms so people know to look
- command_announcement.Announce("An order for the station to deliver supplies to [command_name()] has been delivered to all supply Request Consoles", my_department)
+ command_announcement.Announce("An order for the [using_map.facility_type] to deliver supplies to [command_name()] has been delivered to all supply Request Consoles", my_department)
/datum/event/supply_demand/tick()
if(required_items.len == 0)
diff --git a/code/modules/events/wallrot.dm b/code/modules/events/wallrot.dm
index e09cc50d2f5..6c87fb85727 100644
--- a/code/modules/events/wallrot.dm
+++ b/code/modules/events/wallrot.dm
@@ -7,15 +7,18 @@
// 100 attempts
for(var/i=0, i<100, i++)
- var/turf/candidate = locate(rand(1, world.maxx), rand(1, world.maxy), 1)
+ var/z_level = pick(using_map.station_levels)
+ var/turf/candidate = locate(rand(1, world.maxx), rand(1, world.maxy), z_level)
if(istype(candidate, /turf/simulated/wall))
center = candidate
- return 1
+ var/area/A = get_area(candidate)
+ if(!A.forbid_events)
+ return 1
return 0
/datum/event/wallrot/announce()
if(center)
- command_announcement.Announce("Harmful fungi detected on \the [station_name()] nearby [center.loc.name]. Station structures may be contaminated.", "Biohazard Alert")
+ command_announcement.Announce("Harmful fungi detected on \the [station_name()] and [using_map.facility_type] structures nearby [center.loc.name] may be contaminated.", "Biohazard Alert")
/datum/event/wallrot/start()
spawn()
diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm
index a9581341c5d..3ff2cf6b7b3 100644
--- a/code/modules/events/wormholes.dm
+++ b/code/modules/events/wormholes.dm
@@ -6,4 +6,4 @@
wormhole_event()
/datum/event/wormholes/end()
- command_announcement.Announce("There are no more space-time anomalies detected on the station.", "Anomaly Alert")
+ command_announcement.Announce("There are no more space-time anomalies detected on the [using_map.facility_type].", "Anomaly Alert")
diff --git a/code/modules/examine/descriptions/engineering.dm b/code/modules/examine/descriptions/engineering.dm
index 52d24ff577c..04c20a8bdbe 100644
--- a/code/modules/examine/descriptions/engineering.dm
+++ b/code/modules/examine/descriptions/engineering.dm
@@ -46,6 +46,8 @@
return results
/obj/machinery/door/airlock/get_description_interaction()
+ description_info = "To ring an airlock's doorbell, hold Alt and click on the airlock with the Left Mouse Button on Green/Help intent. Doing the same on Harm intent will instead hammer on the airlock." //vorestation edit
+
var/list/results = list()
if(can_remove_electronics())
diff --git a/code/modules/food/food/condiment.dm b/code/modules/food/food/condiment.dm
index abf4f89b373..5b137957db7 100644
--- a/code/modules/food/food/condiment.dm
+++ b/code/modules/food/food/condiment.dm
@@ -101,9 +101,9 @@
desc = "Often used to flavor food or make people sneeze."
icon_state = "peppermillsmall"
center_of_mass = list("x"=17, "y"=11)
- if("cornoil")
- name = "Corn Oil"
- desc = "A delicious oil used in cooking. Made from corn."
+ if("cookingoil")
+ name = "Cooking Oil"
+ desc = "A delicious oil used in cooking. General purpose."
icon_state = "oliveoil"
center_of_mass = list("x"=16, "y"=6)
if("sugar")
@@ -175,6 +175,13 @@
. = ..()
reagents.add_reagent("capsaicin", 50)
+/obj/item/weapon/reagent_containers/food/condiment/cookingoil
+ name = "Cooking Oil"
+
+/obj/item/weapon/reagent_containers/food/condiment/cookingoil/Initialize()
+ . = ..()
+ reagents.add_reagent("cookingoil", 50)
+
/obj/item/weapon/reagent_containers/food/condiment/cornoil
name = "Corn Oil"
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index 8e87f8d71d0..1401a12e635 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -848,32 +848,6 @@
nutriment_desc = list("dryness" = 2, "bread" = 2)
bitesize = 1
-/obj/item/weapon/reagent_containers/food/snacks/carpmeat
- name = "fillet"
- desc = "A fillet of carp meat"
- icon_state = "fishfillet"
- filling_color = "#FFDEFE"
- center_of_mass = list("x"=17, "y"=13)
- bitesize = 6
-
- var/toxin_type = "carpotoxin"
- var/toxin_amount = 3
-
-/obj/item/weapon/reagent_containers/food/snacks/carpmeat/Initialize()
- . = ..()
- reagents.add_reagent("protein", 3)
- reagents.add_reagent(toxin_type, toxin_amount)
-
-/obj/item/weapon/reagent_containers/food/snacks/crabmeat
- name = "crab legs"
- desc = "... Coffee? Is that you?"
- icon_state = "crabmeat"
- bitesize = 1
-
-/obj/item/weapon/reagent_containers/food/snacks/crabmeat/Initialize()
- . = ..()
- reagents.add_reagent("seafood", 2)
-
/obj/item/weapon/reagent_containers/food/snacks/crab_legs
name = "steamed crab legs"
desc = "Crab legs steamed and buttered to perfection. One day when the boss gets hungry..."
@@ -888,21 +862,6 @@
reagents.add_reagent("seafood", 6)
reagents.add_reagent("sodiumchloride", 1)
-/obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif
- desc = "A fillet of sivian fish meat."
- filling_color = "#2c2cff"
- color = "#2c2cff"
- toxin_type = "neurotoxic_protein"
- toxin_amount = 2
-
-/obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif/murkfish
- toxin_type = "murk_protein"
-
-/obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish
- desc = "A fillet of fish meat."
- toxin_type = "neurotoxic_protein"
- toxin_amount = 1
-
/obj/item/weapon/reagent_containers/food/snacks/fishfingers
name = "Fish Fingers"
desc = "A finger of fish."
@@ -927,69 +886,6 @@
. = ..()
reagents.add_reagent("protein", 4)
-/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice
- name = "huge mushroom slice"
- desc = "A slice from a huge mushroom."
- icon_state = "hugemushroomslice"
- filling_color = "#E0D7C5"
- center_of_mass = list("x"=17, "y"=16)
- nutriment_amt = 3
- nutriment_desc = list("raw" = 2, "mushroom" = 2)
- bitesize = 6
-
-/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/Initialize()
- . = ..()
- reagents.add_reagent("psilocybin", 3)
-
-/obj/item/weapon/reagent_containers/food/snacks/tomatomeat
- name = "tomato slice"
- desc = "A slice from a huge tomato"
- icon_state = "tomatomeat"
- filling_color = "#DB0000"
- center_of_mass = list("x"=17, "y"=16)
- nutriment_amt = 3
- nutriment_desc = list("raw" = 2, "tomato" = 3)
- bitesize = 6
-
-/obj/item/weapon/reagent_containers/food/snacks/bearmeat
- name = "bear meat"
- desc = "A very manly slab of meat."
- icon_state = "bearmeat"
- filling_color = "#DB0000"
- center_of_mass = list("x"=16, "y"=10)
- bitesize = 3
-
-/obj/item/weapon/reagent_containers/food/snacks/bearmeat/Initialize()
- . = ..()
- reagents.add_reagent("protein", 12)
- reagents.add_reagent("hyperzine", 5)
-
-/obj/item/weapon/reagent_containers/food/snacks/xenomeat
- name = "xenomeat"
- desc = "A slab of green meat. Smells like acid."
- icon_state = "xenomeat"
- filling_color = "#43DE18"
- center_of_mass = list("x"=16, "y"=10)
- bitesize = 6
-
-/obj/item/weapon/reagent_containers/food/snacks/xenomeat/Initialize()
- . = ..()
- reagents.add_reagent("protein", 6)
- reagents.add_reagent("pacid",6)
-
-/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat // Substitute for recipes requiring xeno meat.
- name = "spider meat"
- desc = "A slab of green meat."
- icon_state = "xenomeat"
- filling_color = "#43DE18"
- center_of_mass = list("x"=16, "y"=10)
- bitesize = 6
-
-/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat/Initialize()
- . = ..()
- reagents.add_reagent("spidertoxin",6)
- reagents.remove_reagent("pacid",6)
-
/obj/item/weapon/reagent_containers/food/snacks/meatball
name = "meatball"
desc = "A great meal all round."
@@ -3361,7 +3257,7 @@
. = ..()
reagents.add_reagent("blackpepper", 1)
reagents.add_reagent("sodiumchloride", 1)
- reagents.add_reagent("cornoil", 1)
+ reagents.add_reagent("cookingoil", 1)
/obj/item/weapon/reagent_containers/food/snacks/turkeyslice
name = "turkey drumstick"
@@ -4959,7 +4855,7 @@
reagents.add_reagent("protein",5)
/obj/item/weapon/reagent_containers/food/snacks/pineapple_ring
- name = "pineapple ring"
+ name = "pineapple rings"
desc = "So retro."
icon_state = "pineapple_ring"
nutriment_desc = list("sweetness" = 2)
diff --git a/code/modules/food/food/snacks/meat.dm b/code/modules/food/food/snacks/meat.dm
index c95ddd3d1df..e7a16f53648 100644
--- a/code/modules/food/food/snacks/meat.dm
+++ b/code/modules/food/food/snacks/meat.dm
@@ -44,16 +44,178 @@
//same as plain meat
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
- name = "Corgi meat"
+ name = "dogmeat"
desc = "Tastes like... well, you know."
/obj/item/weapon/reagent_containers/food/snacks/meat/chicken
- name = "chicken"
+ name = "poultry"
icon_state = "chickenbreast"
cooked_icon = "chickensteak"
filling_color = "#BBBBAA"
/obj/item/weapon/reagent_containers/food/snacks/meat/chicken/Initialize()
- . = ..()
- reagents.remove_reagent("triglyceride", INFINITY)
- //Chicken is low fat. Less total calories than other meats
\ No newline at end of file
+ . = ..()
+ reagents.remove_reagent("triglyceride", INFINITY)
+ //Chicken is low fat. Less total calories than other meats
+
+/obj/item/weapon/reagent_containers/food/snacks/carpmeat
+ name = "fillet"
+ desc = "A fillet of carp meat"
+ icon_state = "fishfillet"
+ filling_color = "#FFDEFE"
+ center_of_mass = list("x"=17, "y"=13)
+ bitesize = 6
+
+ var/toxin_type = "carpotoxin"
+ var/toxin_amount = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/carpmeat/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 3)
+ reagents.add_reagent(toxin_type, toxin_amount)
+
+/obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif
+ desc = "A fillet of sivian fish meat."
+ filling_color = "#2c2cff"
+ color = "#2c2cff"
+ toxin_type = "neurotoxic_protein"
+ toxin_amount = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/carpmeat/sif/murkfish
+ toxin_type = "murk_protein"
+
+/obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish
+ desc = "A fillet of fish meat."
+ toxin_type = "neurotoxic_protein"
+ toxin_amount = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/crabmeat
+ name = "crustacean legs"
+ desc = "... Coffee? Is that you?"
+ icon_state = "crabmeat"
+ bitesize = 1
+
+/obj/item/weapon/reagent_containers/food/snacks/crabmeat/Initialize()
+ . = ..()
+ reagents.add_reagent("seafood", 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice
+ name = "fungus slice"
+ desc = "A slice from a huge mushroom."
+ icon_state = "hugemushroomslice"
+ filling_color = "#E0D7C5"
+ center_of_mass = list("x"=17, "y"=16)
+ nutriment_amt = 3
+ nutriment_desc = list("raw" = 2, "mushroom" = 2)
+ bitesize = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/Initialize()
+ . = ..()
+ reagents.add_reagent("psilocybin", 3)
+
+/obj/item/weapon/reagent_containers/food/snacks/tomatomeat
+ name = "tomato slice"
+ desc = "A slice from a huge tomato"
+ icon_state = "tomatomeat"
+ filling_color = "#DB0000"
+ center_of_mass = list("x"=17, "y"=16)
+ nutriment_amt = 3
+ nutriment_desc = list("raw" = 2, "tomato" = 3)
+ bitesize = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/bearmeat
+ name = "bearmeat"
+ desc = "A very manly slab of meat."
+ icon_state = "bearmeat"
+ filling_color = "#DB0000"
+ center_of_mass = list("x"=16, "y"=10)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/bearmeat/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 12)
+ reagents.add_reagent("hyperzine", 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/xenomeat
+ name = "xenomeat"
+ desc = "A slab of green meat. Smells like acid."
+ icon_state = "xenomeat"
+ filling_color = "#43DE18"
+ center_of_mass = list("x"=16, "y"=10)
+ bitesize = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/xenomeat/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("pacid",6)
+
+/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat // Substitute for recipes requiring xeno meat.
+ name = "insect meat"
+ desc = "A slab of green meat."
+ icon_state = "xenomeat"
+ filling_color = "#43DE18"
+ center_of_mass = list("x"=16, "y"=10)
+ bitesize = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat/Initialize()
+ . = ..()
+ reagents.add_reagent("spidertoxin",6)
+ reagents.remove_reagent("pacid",6)
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/fox
+ name = "foxmeat"
+ desc = "The fox doesn't say a goddamn thing, now."
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
+ name = "grubmeat"
+ desc = "A slab of grub meat, it gives a gentle shock if you touch it"
+ icon = 'icons/obj/food.dmi'
+ icon_state = "grubmeat"
+ center_of_mass = list("x"=16, "y"=10)
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 1)
+ reagents.add_reagent("shockchem", 6)
+ bitesize = 6
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/worm
+ name = "weird meat"
+ desc = "A chunk of pulsating meat."
+ icon_state = "wormmeat"
+ health = 180
+ filling_color = "#551A8B"
+ center_of_mass = list("x"=16, "y"=14)
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/worm/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("phoron", 3)
+ reagents.add_reagent("myelamine", 3)
+ src.bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/worm/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W,/obj/item/weapon/material/knife))
+ var/to_spawn = pickweight(/obj/random/junk = 30,
+ /obj/random/trash = 30,
+ /obj/random/maintenance/clean = 15,
+ /obj/random/tool = 15,
+ /obj/random/medical = 3,
+ /obj/random/bomb_supply = 7,
+ /obj/random/contraband = 3,
+ /obj/random/unidentified_medicine/old_medicine = 7,
+ /obj/item/weapon/strangerock = 3,
+ /obj/item/weapon/ore/phoron = 7,
+ /obj/random/handgun = 1,
+ /obj/random/toolbox = 4,
+ /obj/random/drinkbottle = 5
+ )
+
+ new to_spawn(get_turf(src))
+
+ if(prob(20))
+ user.visible_message("Something oozes out of \the [src] as it is cut.")
+
+ to_chat(user, "You cut the tissue holding the chunks together.")
+
+ ..()
diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm
index 132bba78ec9..dce6f234cfa 100644
--- a/code/modules/food/food/snacks_vr.dm
+++ b/code/modules/food/food/snacks_vr.dm
@@ -161,19 +161,6 @@
reagents.add_reagent("protein", 4)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
- name = "grub meat"
- desc = "A slab of grub meat, it gives a gentle shock if you touch it"
- icon = 'icons/obj/food.dmi'
- icon_state = "grubmeat"
- center_of_mass = list("x"=16, "y"=10)
-
-/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat/Initialize()
- . = ..()
- reagents.add_reagent("protein", 1)
- reagents.add_reagent("shockchem", 6)
- bitesize = 6
-
/obj/item/weapon/reagent_containers/food/snacks/bugball
name = "bugball"
desc = "A hard piece of chitin, don't chip a tooth!"
@@ -773,3 +760,17 @@
. = ..()
reagents.add_reagent("protein", 3)
bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/donkpocket/ascended
+ name = "Donk-pocket EX"
+ desc = "This donk-pocket has seen things beyond comprehension of mortals. It survived because the fire inside it burned brighter than fire around it."
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "donkpocket_ascended"
+ nutriment_amt = 5
+ nutriment_desc = list("burning fires of radioactive hell" = 20)
+ heated_reagents = list("supermatter" = 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/donkpocket/ascended/Initialize()
+ . = ..()
+ reagents.add_reagent("uranium", 3)
+ reagents.add_reagent("pyrotoxin", 3)
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/fryer.dm b/code/modules/food/kitchen/cooking_machines/fryer.dm
index 6c2e0d9b71c..bcaad4e6939 100644
--- a/code/modules/food/kitchen/cooking_machines/fryer.dm
+++ b/code/modules/food/kitchen/cooking_machines/fryer.dm
@@ -13,13 +13,13 @@
appliancetype = FRYER
active_power_usage = 12 KILOWATTS
heating_power = 12 KILOWATTS
-
+
light_y = 15
-
+
min_temp = 140 + T0C // Same as above, increasing this to just under 2x to make the % increase on efficiency not quite so painful as it would be at 80.
optimal_temp = 400 + T0C // Increasing this to be 2x Oven to allow for a much higher/realistic frying temperatures. Doesn't really do anything but make heating the fryer take a bit longer.
optimal_power = 0.95 // .35 higher than the default to give fryers faster cooking speed.
-
+
idle_power_usage = 3.6 KILOWATTS
// Power used to maintain temperature once it's heated.
// Going with 25% of the active power. This is a somewhat arbitrary value.
@@ -33,11 +33,11 @@
var/datum/reagents/oil
var/optimal_oil = 9000 //90 litres of cooking oil
-
+
/obj/machinery/appliance/cooker/fryer/Initialize()
. = ..()
fry_loop = new(list(src), FALSE)
-
+
oil = new/datum/reagents(optimal_oil * 1.25, src)
var/variance = rand()*0.15
// Fryer is always a little below full, but its usually negligible
@@ -45,18 +45,18 @@
if(prob(20))
// Sometimes the fryer will start with much less than full oil, significantly impacting efficiency until filled
variance = rand()*0.5
- oil.add_reagent("cornoil", optimal_oil*(1 - variance))
+ oil.add_reagent("cookingoil", optimal_oil*(1 - variance))
/obj/machinery/appliance/cooker/fryer/Destroy()
QDEL_NULL(fry_loop)
QDEL_NULL(oil)
return ..()
-
+
/obj/machinery/appliance/cooker/fryer/examine(var/mob/user)
. = ..()
if(Adjacent(user))
to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]")
-
+
/obj/machinery/appliance/cooker/fryer/update_icon() // We add our own version of the proc to use the special fryer double-lights.
cut_overlays()
var/image/light
@@ -69,7 +69,7 @@
light.pixel_x = light_x
light.pixel_y = light_y
add_overlay(light)
-
+
/obj/machinery/appliance/cooker/fryer/heat_up()
if (..())
//Set temperature of oil reagent
@@ -102,7 +102,7 @@
cooking_power *= oil_efficiency
-
+
/obj/machinery/appliance/cooker/fryer/update_icon()
if(!stat)
..()
@@ -119,7 +119,7 @@
if(fry_loop)
fry_loop.stop(src)
..()
-
+
//Fryer gradually infuses any cooked food with oil. Moar calories
//This causes a slow drop in oil levels, encouraging refill after extended use
/obj/machinery/appliance/cooker/fryer/do_cooking_tick(var/datum/cooking_item/CI)
@@ -177,13 +177,13 @@
return
// user.visible_message("\The [user] starts pushing \the [victim] into \the [src]!")
-
+
//Removed delay on this action in favour of a cooldown after it
//If you can lure someone close to the fryer and grab them then you deserve success.
//And a delay on this kind of niche action just ensures it never happens
//Cooldown ensures it can't be spammed to instakill someone
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*3)
-
+
fry_loop.start(src)
if(!do_mob(user, victim, 20))
@@ -239,9 +239,9 @@
//Coat the victim in some oil
oil.trans_to(victim, 40)
-
+
fry_loop.stop()
-
+
/obj/machinery/appliance/cooker/fryer/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/reagent_containers/glass) && I.reagents)
if (I.reagents.total_volume <= 0 && oil)
diff --git a/code/modules/food/kitchen/smartfridge/engineering.dm b/code/modules/food/kitchen/smartfridge/engineering.dm
index 27988545375..035af9aebbc 100644
--- a/code/modules/food/kitchen/smartfridge/engineering.dm
+++ b/code/modules/food/kitchen/smartfridge/engineering.dm
@@ -18,8 +18,10 @@
if(amount < 1)
return
+ count = min(count, amount)
+
while(count > 0)
- var/obj/item/stack/S = I.get_product(get_turf(src), min(count, amount))
+ var/obj/item/stack/S = I.get_product(get_turf(src), count)
count -= S.get_amount()
SStgui.update_uis(src)
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index c909c29fc51..34f4146159c 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -522,13 +522,20 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/cutlet
-/datum/recipe/roastedsunflowerseeds
+/datum/recipe/roastedcornsunflowerseeds
reagents = list("sodiumchloride" = 1, "cornoil" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawsunflower
)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+/datum/recipe/roastedsunflowerseeds
+ reagents = list("sodiumchloride" = 1, "cookingoil" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawsunflower
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+
/datum/recipe/roastedpeanutsunflowerseeds
reagents = list("sodiumchloride" = 1, "peanutoil" = 1)
items = list(
@@ -537,10 +544,20 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
/datum/recipe/roastedpeanuts
+ fruit = list("peanut" = 2)
+ reagents = list("sodiumchloride" = 2, "cookingoil" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+
+/datum/recipe/roastedpeanutscorn
fruit = list("peanut" = 2)
reagents = list("sodiumchloride" = 2, "cornoil" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+/datum/recipe/roastedpeanutspeanut
+ fruit = list("peanut" = 2)
+ reagents = list("sodiumchloride" = 2, "peanutoil" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+
/datum/recipe/mint
reagents = list("sugar" = 5, "frostoil" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/mint
diff --git a/code/modules/gamemaster/event2/events/everyone/infestation.dm b/code/modules/gamemaster/event2/events/everyone/infestation.dm
index f51456f3628..512679d2fc5 100644
--- a/code/modules/gamemaster/event2/events/everyone/infestation.dm
+++ b/code/modules/gamemaster/event2/events/everyone/infestation.dm
@@ -31,6 +31,7 @@
things_to_spawn = list(
/mob/living/simple_mob/animal/passive/mouse/gray,
/mob/living/simple_mob/animal/passive/mouse/brown,
+ /mob/living/simple_mob/animal/passive/mouse/black,
/mob/living/simple_mob/animal/passive/mouse/white,
/mob/living/simple_mob/animal/passive/mouse/rat
)
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index f48ae1a26af..309971d5e24 100644
--- a/code/modules/holodeck/HolodeckControl.dm
+++ b/code/modules/holodeck/HolodeckControl.dm
@@ -332,6 +332,12 @@
linkedholodeck.sound_env = A.sound_env
+ if(prog == powerdown_program)
+ linkedholodeck.requires_power = TRUE
+ else
+ linkedholodeck.requires_power = FALSE
+ linkedholodeck.power_change()
+
spawn(30)
for(var/obj/effect/landmark/L in linkedholodeck)
if(L.name=="Atmospheric Test Start")
diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm
index cdc4314c6c6..09e1ccbe9e8 100644
--- a/code/modules/hydroponics/trays/tray.dm
+++ b/code/modules/hydroponics/trays/tray.dm
@@ -216,18 +216,26 @@
if(seed && seed.get_trait(TRAIT_IMMUTABLE) > 0)
return
- //Override for somatoray projectiles.
- if(istype(Proj ,/obj/item/projectile/energy/floramut)&& prob(20))
- if(istype(Proj, /obj/item/projectile/energy/floramut/gene))
- var/obj/item/projectile/energy/floramut/gene/G = Proj
- if(seed)
- seed = seed.diverge_mutate_gene(G.gene, get_turf(loc)) //get_turf just in case it's not in a turf.
- else
- mutate(1)
+ // Override for somatoray projectiles.
+ // Change the mutchance var to buff or nerf somatorays, it will be multiplied by the tier of the laser.
+ var/mutchance = 15
+ if(istype(Proj ,/obj/item/projectile/energy/floramut))
+ var/obj/item/projectile/energy/floramut/GM = Proj
+ mutchance *= GM.lasermod
+ if(prob(mutchance))
+ if(istype(Proj, /obj/item/projectile/energy/floramut/gene))
+ var/obj/item/projectile/energy/floramut/gene/G = Proj
+ if(seed)
+ seed = seed.diverge_mutate_gene(G.gene, get_turf(loc)) //get_turf just in case it's not in a turf.
+ else
+ mutate(1)
+ return
+ else if(istype(Proj ,/obj/item/projectile/energy/florayield))
+ var/obj/item/projectile/energy/floramut/GY = Proj
+ mutchance *= GY.lasermod
+ if(prob(mutchance))
+ yield_mod = min(10,yield_mod+rand(1,2))
return
- else if(istype(Proj ,/obj/item/projectile/energy/florayield) && prob(20))
- yield_mod = min(10,yield_mod+rand(1,2))
- return
..()
diff --git a/code/modules/hydroponics/trays/tray_update_icons.dm b/code/modules/hydroponics/trays/tray_update_icons.dm
index fc00e97ee87..0b3cf112312 100644
--- a/code/modules/hydroponics/trays/tray_update_icons.dm
+++ b/code/modules/hydroponics/trays/tray_update_icons.dm
@@ -5,11 +5,11 @@
ov_lowwater.plane = PLANE_LIGHTING_ABOVE
ov_lownutri = image(icon = icon, icon_state = "over_lownutri3")
ov_lownutri.plane = PLANE_LIGHTING_ABOVE
- ov_harvest = image(icon = icon, icon_state = "over_alert3")
+ ov_harvest = image(icon = icon, icon_state = "over_harvest3")
ov_harvest.plane = PLANE_LIGHTING_ABOVE
- ov_frozen = image(icon = icon, icon_state = "over_harvest3")
+ ov_frozen = image(icon = icon, icon_state = "over_frozen3")
ov_frozen.plane = PLANE_LIGHTING_ABOVE
- ov_alert3 = image(icon = icon, icon_state = "over_frozen3")
+ ov_alert3 = image(icon = icon, icon_state = "over_alert3")
ov_alert3.plane = PLANE_LIGHTING_ABOVE
//Refreshes the icon and sets the luminosity
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index aea40de0359..a3dc2549f4b 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -611,8 +611,8 @@ var/list/mining_overlay_cache = list()
if(prob(50))
M.Stun(5)
SSradiation.flat_radiate(src, 25, 100)
- if(prob(25))
- excavate_find(prob(5), finds[1])
+ if(prob(25))
+ excavate_find(prob(5), finds[1])
else if(rand(1,500) == 1)
visible_message("An old dusty crate was buried within!")
new /obj/structure/closet/crate/secure/loot(src)
diff --git a/code/modules/mining/mine_turfs_vr.dm b/code/modules/mining/mine_turfs_vr.dm
index 6e8797bf707..2db25d26fb1 100644
--- a/code/modules/mining/mine_turfs_vr.dm
+++ b/code/modules/mining/mine_turfs_vr.dm
@@ -14,6 +14,16 @@
/turf/simulated/mineral/floor/ignore_cavegen
ignore_cavegen = TRUE
+/turf/simulated/mineral/ignore_cavegen/cave
+ oxygen = MOLES_O2STANDARD
+ nitrogen = MOLES_N2STANDARD
+ temperature = T20C
+
+/turf/simulated/mineral/floor/ignore_cavegen/cave
+ oxygen = MOLES_O2STANDARD
+ nitrogen = MOLES_N2STANDARD
+ temperature = T20C
+
/turf/simulated/mineral/vacuum
oxygen = 0
nitrogen = 0
diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm
index 3e53242a77c..4a89bd957d8 100644
--- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm
+++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm
@@ -123,12 +123,13 @@
EQUIPMENT("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1200),
EQUIPMENT("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000),
EQUIPMENT("KA Temperature Modulator", /obj/item/borg/upgrade/modkit/heater, 1000),
- EQUIPMENT("KA Off-Station Modulator", /obj/item/borg/upgrade/modkit/indoors/offsite, 1500),
+ EQUIPMENT("KA Off-Station Modulator", /obj/item/borg/upgrade/modkit/offsite, 1750),
EQUIPMENT("KA Holster", /obj/item/clothing/accessory/holster/waist/kinetic_accelerator, 350),
EQUIPMENT("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250),
EQUIPMENT("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300),
EQUIPMENT("KA Adjustable Tracer Rounds",/obj/item/borg/upgrade/modkit/tracer/adjustable, 175),
EQUIPMENT("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 125),
+ EQUIPMENT("Premium Kinetic Accelerator",/obj/item/weapon/gun/energy/kinetic_accelerator/premiumka, 12000),
)
prize_list["Digging Tools"] = list(
// EQUIPMENT("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000),
diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm
index 1badc92926a..c20b00684d9 100644
--- a/code/modules/mob/death.dm
+++ b/code/modules/mob/death.dm
@@ -1,7 +1,8 @@
//This is the proc for gibbing a mob. Cannot gib ghosts.
//added different sort of gibs and animations. N
/mob/proc/gib(anim="gibbed-m", do_gibs, gib_file = 'icons/mob/mob.dmi')
- death(1)
+ if(stat != DEAD)
+ death(1)
transforming = 1
canmove = 0
icon = null
@@ -70,6 +71,7 @@
if(stat == DEAD)
return 0
+ SEND_SIGNAL(src, COMSIG_MOB_DEATH, gibbed)
if(src.loc && istype(loc,/obj/belly) || istype(loc,/obj/item/device/dogborg/sleeper)) deathmessage = "no message" //VOREStation Add - Prevents death messages from inside mobs
facing_dir = null
@@ -100,7 +102,7 @@
if(mind) mind.store_memory("Time of death: [stationtime2text()]", 0)
living_mob_list -= src
dead_mob_list |= src
-
+
set_respawn_timer()
updateicon()
handle_regular_hud_updates()
diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm
index e4f5eb1d085..5b6d1556402 100644
--- a/code/modules/mob/holder.dm
+++ b/code/modules/mob/holder.dm
@@ -28,20 +28,29 @@ var/list/holder_mob_icon_cache = list()
/obj/item/weapon/holder/Initialize(mapload, mob/held)
ASSERT(ismob(held))
. = ..()
+ held.forceMove(src)
+ START_PROCESSING(SSobj, src)
+
+/obj/item/weapon/holder/Entered(mob/held, atom/OldLoc)
+ if(held_mob)
+ held.forceMove(get_turf(src))
+ return
+ ASSERT(ismob(held))
+ . = ..()
held_mob = held
original_vis_flags = held.vis_flags
held.vis_flags = VIS_INHERIT_ID|VIS_INHERIT_LAYER|VIS_INHERIT_PLANE
-
- held.forceMove(src)
vis_contents += held
name = held.name
original_transform = held.transform
held.transform = null
- // I really hate this, but I'm sleepy and unable to figure out a nice stateful way to do it
- // Entered and Exited seem ideal but all the inventory procs are trash and put items on
- // turfs before you when manhandling things in/out of backpacks and inventory slots.
- START_PROCESSING(SSobj, src)
+/obj/item/weapon/holder/Exited(atom/movable/thing, atom/OldLoc)
+ if(thing == held_mob)
+ held_mob.transform = original_transform
+ held_mob.vis_flags = original_vis_flags
+ held_mob = null
+ ..()
/obj/item/weapon/holder/Destroy()
STOP_PROCESSING(SSobj, src)
@@ -91,7 +100,7 @@ var/list/holder_mob_icon_cache = list()
else if(istype(loc, /obj/item/clothing/accessory/holster))
var/obj/item/clothing/accessory/holster/holster = loc
if(holster.holstered == src)
- holster.clear_holster()
+ holster.clear_holster()
to_chat(held, "You extricate yourself from [holster].")
forceMove(get_turf(src))
else if(isitem(loc))
@@ -120,11 +129,30 @@ var/list/holder_mob_icon_cache = list()
item_state = held.icon_state
/obj/item/weapon/holder/mouse
+ name = "mouse"
+ desc = "It's a small rodent."
+ item_state = "mouse_gray"
+ slot_flags = SLOT_EARS | SLOT_HEAD | SLOT_ID
+ origin_tech = list(TECH_BIO = 2)
w_class = ITEMSIZE_TINY
-/obj/item/weapon/holder/pai/Initialize(mapload, mob/held)
- . = ..()
- item_state = held.icon_state
+/obj/item/weapon/holder/mouse/white
+ item_state = "mouse_white"
+
+/obj/item/weapon/holder/mouse/gray
+ item_state = "mouse_gray"
+
+/obj/item/weapon/holder/mouse/brown
+ item_state = "mouse_brown"
+
+/obj/item/weapon/holder/mouse/black
+ item_state = "mouse_black"
+
+/obj/item/weapon/holder/mouse/operative
+ item_state = "mouse_operative"
+
+/obj/item/weapon/holder/mouse/rat
+ item_state = "mouse_rat"
/obj/item/weapon/holder/possum
origin_tech = list(TECH_BIO = 2)
@@ -259,8 +287,6 @@ var/list/holder_mob_icon_cache = list()
/mob/living/MouseDrop(var/atom/over_object)
var/mob/living/carbon/human/H = over_object
if(holder_type && issmall(src) && istype(H) && !H.lying && Adjacent(H) && (src.a_intent == I_HELP && H.a_intent == I_HELP)) //VOREStation Edit
- if(istype(src, /mob/living/simple_mob/animal/passive/mouse)) //vorestation edit
- return ..() //vorestation edit
if(!issmall(H) || !istype(src, /mob/living/carbon/human))
get_scooped(H, (usr == src))
return
diff --git a/code/modules/mob/living/bot/bot_vr.dm b/code/modules/mob/living/bot/bot_vr.dm
index 958db0dc9fe..19fc538eb60 100644
--- a/code/modules/mob/living/bot/bot_vr.dm
+++ b/code/modules/mob/living/bot/bot_vr.dm
@@ -1,2 +1,5 @@
/mob/living/bot
- no_vore = TRUE
\ No newline at end of file
+ no_vore = TRUE
+ devourable = FALSE
+ feeding = FALSE
+ can_be_drop_pred = FALSE
\ No newline at end of file
diff --git a/code/modules/mob/living/butchering.dm b/code/modules/mob/living/butchering.dm
index b46abcac015..14adae33a3f 100644
--- a/code/modules/mob/living/butchering.dm
+++ b/code/modules/mob/living/butchering.dm
@@ -1,12 +1,13 @@
/mob/living
- var/meat_amount = 0 // How much meat to drop from this mob when butchered
- var/obj/meat_type // The meat object to drop
+ var/meat_amount = 0 // How much meat to drop from this mob when butchered
+ var/obj/meat_type // The meat object to drop
var/gib_on_butchery = FALSE
+ var/butchery_drops_organs = TRUE // Do we spawn and/or drop organs when butchered?
- var/list/butchery_loot // Associated list, path = number.
+ var/list/butchery_loot // Associated list, path = number.
// Harvest an animal's delicious byproducts
/mob/living/proc/harvest(var/mob/user, var/obj/item/I)
@@ -40,7 +41,7 @@
butchery_loot.Cut()
butchery_loot = null
- if(LAZYLEN(organs))
+ if(LAZYLEN(organs) && butchery_drops_organs)
organs_by_name.Cut()
for(var/path in organs)
@@ -62,7 +63,7 @@
OR.removed()
organs -= OR
- if(LAZYLEN(internal_organs))
+ if(LAZYLEN(internal_organs) && butchery_drops_organs)
internal_organs_by_name.Cut()
for(var/path in internal_organs)
diff --git a/code/modules/mob/living/carbon/give.dm b/code/modules/mob/living/carbon/give.dm
index 0d3edc90c82..43bab179d65 100644
--- a/code/modules/mob/living/carbon/give.dm
+++ b/code/modules/mob/living/carbon/give.dm
@@ -20,7 +20,7 @@
usr.visible_message(SPAN_NOTICE("\The [usr] holds out \the [I] to \the [target]."), SPAN_NOTICE("You hold out \the [I] to \the [target], waiting for them to accept it."))
- if(tgui_alert(target,"[src] wants to give you \a [I]. Will you accept it?","Item Offer",list("No","Yes")) == "No")
+ if(tgui_alert(target,"[src] wants to give you \a [I]. Will you accept it?","Item Offer",list("Yes","No")) == "No")
target.visible_message(SPAN_NOTICE("\The [src] tried to hand \the [I] to \the [target], but \the [target] didn't want it."))
return
diff --git a/code/modules/mob/living/carbon/human/death_vr.dm b/code/modules/mob/living/carbon/human/death_vr.dm
index ca319be6e4a..47d5b885895 100644
--- a/code/modules/mob/living/carbon/human/death_vr.dm
+++ b/code/modules/mob/living/carbon/human/death_vr.dm
@@ -1,13 +1,14 @@
/mob/living/carbon/human/gib()
-
- //Drop the NIF, they're expensive, why not recover them? Also important for prometheans.
+
+ //Drop the NIF, they're expensive, why not recover them?
if(nif)
var/obj/item/device/nif/deadnif = nif //Unimplant removes the reference on the mob
- deadnif.unimplant(src)
- deadnif.forceMove(drop_location())
- deadnif.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/deadnif.w_class))
- deadnif.wear(10) //Presumably it's gone through some shit if they got gibbed?
-
+ if(!deadnif.gib_nodrop)
+ deadnif.unimplant(src)
+ deadnif.forceMove(drop_location())
+ deadnif.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/deadnif.w_class))
+ deadnif.wear(10) //Presumably it's gone through some shit if they got gibbed?
+
. = ..()
//Surprisingly this is only called for humans, but whatever!
@@ -15,10 +16,10 @@
//Not in a belly? Well, too bad!
if(!isbelly(H.loc))
return TRUE
-
+
//What belly!
var/obj/belly/B = H.loc
-
+
//Were they digesting and we have a mind you can update?
//Technically allows metagaming by allowing buddies to turn on digestion for like 2 seconds
// to finish off critically wounded friends to avoid resleeving sickness, but like
diff --git a/code/modules/mob/living/carbon/human/species/species_hud.dm b/code/modules/mob/living/carbon/human/species/species_hud.dm
index 9212e9e199b..bf0c36b7778 100644
--- a/code/modules/mob/living/carbon/human/species/species_hud.dm
+++ b/code/modules/mob/living/carbon/human/species/species_hud.dm
@@ -71,4 +71,9 @@
gear = list(
"mask" = list("loc" = ui_shoes, "name" = "Mask", "slot" = slot_wear_mask, "state" = "mask", "toggle" = 1),
"back" = list("loc" = ui_sstore1, "name" = "Back", "slot" = slot_back, "state" = "back"),
+ "eyes" = list("loc" = ui_glasses, "name" = "Glasses", "slot" = slot_glasses, "state" = "glasses","toggle" = 1),
+ "l_ear" = list("loc" = ui_l_ear, "name" = "Left Ear", "slot" = slot_l_ear, "state" = "ears", "toggle" = 1),
+ "r_ear" = list("loc" = ui_r_ear, "name" = "Right Ear", "slot" = slot_r_ear, "state" = "ears", "toggle" = 1),
+ "head" = list("loc" = ui_head, "name" = "Hat", "slot" = slot_head, "state" = "hair", "toggle" = 1),
+ "id" = list("loc" = ui_id, "name" = "ID", "slot" = slot_wear_id, "state" = "id")
)
diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm
index 0c45268cab0..89155e94526 100755
--- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm
+++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm
@@ -172,13 +172,9 @@
to_chat(H, "You died as a Protean. Please sit out of the round for at least 60 minutes before respawning, to represent the time it would take to ship a new-you to the station.")
- for(var/obj/item/organ/I in H.internal_organs)
- I.removed()
-
- for(var/obj/item/I in H.contents)
- H.drop_from_inventory(I)
-
- qdel(H)
+ spawn(1)
+ if(H)
+ H.gib()
/datum/species/protean/handle_environment_special(var/mob/living/carbon/human/H)
if((H.getActualBruteLoss() + H.getActualFireLoss()) > H.maxHealth*0.5 && isturf(H.loc)) //So, only if we're not a blob (we're in nullspace) or in someone (or a locker, really, but whatever)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index b8b0e70d57c..a28cc3a4eb8 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -19,8 +19,9 @@
selected_image = image(icon = buildmode_hud, loc = src, icon_state = "ai_sel")
/mob/living/Destroy()
- dsoverlay.loc = null //I'll take my coat with me
- dsoverlay = null
+ if(dsoverlay)
+ dsoverlay.loc = null //I'll take my coat with me
+ dsoverlay = null
if(nest) //Ew.
if(istype(nest, /obj/structure/prop/nest))
var/obj/structure/prop/nest/N = nest
diff --git a/code/modules/mob/living/organs.dm b/code/modules/mob/living/organs.dm
index 76694553f6c..133961a6319 100644
--- a/code/modules/mob/living/organs.dm
+++ b/code/modules/mob/living/organs.dm
@@ -17,21 +17,22 @@
return organs_by_name[zone]
/mob/living/gib()
- for(var/path in internal_organs)
- if(ispath(path))
- var/obj/item/organ/neworg = new path(src, TRUE)
- internal_organs -= path
- neworg.name = "[name] [neworg.name]"
- neworg.meat_type = meat_type
- internal_organs |= neworg
+ if(butchery_drops_organs)
+ for(var/path in internal_organs)
+ if(ispath(path))
+ var/obj/item/organ/neworg = new path(src, TRUE)
+ internal_organs -= path
+ neworg.name = "[name] [neworg.name]"
+ neworg.meat_type = meat_type
+ internal_organs |= neworg
- for(var/obj/item/organ/I in internal_organs)
- I.removed()
- if(isturf(I?.loc)) // Some organs qdel themselves or other things when removed
- I.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30)
+ for(var/obj/item/organ/I in internal_organs)
+ I.removed()
+ if(isturf(I?.loc)) // Some organs qdel themselves or other things when removed
+ I.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30)
- for(var/obj/item/organ/external/E in src.organs)
- if(!ispath(E))
- E.droplimb(0,DROPLIMB_EDGE,1)
+ for(var/obj/item/organ/external/E in src.organs)
+ if(!ispath(E))
+ E.droplimb(0,DROPLIMB_EDGE,1)
..()
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 38f59adbc5a..a2876c61aa9 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -85,7 +85,7 @@ var/list/ai_verbs_default = list(
var/datum/ai_icon/selected_sprite // The selected icon set
var/custom_sprite = 0 // Whether the selected icon is custom
var/carded
-
+
// Multicam Vars
var/multicam_allowed = TRUE
var/multicam_on = FALSE
@@ -475,7 +475,7 @@ var/list/ai_verbs_default = list(
else
to_chat(src, "System error. Cannot locate [html_decode(href_list["trackname"])].")
return
-
+
if(href_list["trackbot"])
var/mob/living/bot/target = locate(href_list["trackbot"]) in mob_list
if(target)
@@ -808,21 +808,21 @@ var/list/ai_verbs_default = list(
/mob/living/silicon/ai/proc/check_unable(var/flags = 0, var/feedback = 1)
if(stat == DEAD)
- if(feedback)
+ if(feedback)
to_chat(src, "You are dead!")
return 1
if(aiRestorePowerRoutine)
- if(feedback)
+ if(feedback)
to_chat(src, "You lack power!")
return 1
if((flags & AI_CHECK_WIRELESS) && src.control_disabled)
- if(feedback)
+ if(feedback)
to_chat(src, "Wireless control is disabled!")
return 1
if((flags & AI_CHECK_RADIO) && src.aiRadio.disabledAi)
- if(feedback)
+ if(feedback)
to_chat(src, "System Error - Transceiver Disabled!")
return 1
return 0
@@ -854,7 +854,7 @@ var/list/ai_verbs_default = list(
if(istype(A))
switch(tgui_alert(src, "Do you want to open \the [A] for [target]?", "Doorknob_v2a.exe", list("Yes", "No")))
if("Yes")
- A.AIShiftClick()
+ A.AIShiftClick(src)
to_chat(src, "You open \the [A] for [target].")
else
to_chat(src, "You deny the request.")
@@ -966,7 +966,7 @@ var/list/ai_verbs_default = list(
//This communication is imperfect because the holopad "filters" voices and is only designed to connect to the master only.
var/rendered = "Relayed Speech: [name_used] [message]"
show_message(rendered, 2)
-
+
/mob/living/silicon/ai/proc/toggle_multicam_verb()
set name = "Toggle Multicam"
set category = "AI Commands"
diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm
index 193f14d132d..a61b7c67294 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm
@@ -74,7 +74,8 @@
vr_sprites = list(
"Acheron" = "mechoid-Medical",
"Shellguard Noble" = "Noble-MED",
- "ZOOM-BA" = "zoomba-medical"
+ "ZOOM-BA" = "zoomba-medical",
+ "Feminine Humanoid" = "uptall-medical"
)
/obj/item/weapon/robot_module/robot/medical/crisis
@@ -83,7 +84,8 @@
"Handy" = "handy-med",
"Acheron" = "mechoid-Medical",
"Shellguard Noble" = "Noble-MED",
- "ZOOM-BA" = "zoomba-crisis"
+ "ZOOM-BA" = "zoomba-crisis",
+ "Feminine Humanoid" = "uptall-crisis"
)
/obj/item/weapon/robot_module/robot/clerical/butler
@@ -93,7 +95,8 @@
"Handy - Hydro" = "handy-hydro",
"Acheron" = "mechoid-Service",
"Shellguard Noble" = "Noble-SRV",
- "ZOOM-BA" = "zoomba-service"
+ "ZOOM-BA" = "zoomba-service",
+ "Feminine Humanoid" = "uptall-service"
)
/obj/item/weapon/robot_module/robot/clerical/general
@@ -102,7 +105,8 @@
"Handy" = "handy-clerk",
"Acheron" = "mechoid-Service",
"Shellguard Noble" = "Noble-SRV",
- "ZOOM-BA" = "zoomba-clerical"
+ "ZOOM-BA" = "zoomba-clerical",
+ "Feminine Humanoid" = "uptall-service"
)
/obj/item/weapon/robot_module/robot/janitor
@@ -111,7 +115,8 @@
"Handy" = "handy-janitor",
"Acheron" = "mechoid-Janitor",
"Shellguard Noble" = "Noble-CLN",
- "ZOOM-BA" = "zoomba-janitor"
+ "ZOOM-BA" = "zoomba-janitor",
+ "Feminine Humanoid" = "uptall-janitor"
)
/obj/item/weapon/robot_module/robot/security/general
@@ -120,7 +125,8 @@
"Handy" = "handy-sec",
"Acheron" = "mechoid-Security",
"Shellguard Noble" = "Noble-SEC",
- "ZOOM-BA" = "zoomba-security"
+ "ZOOM-BA" = "zoomba-security",
+ "Feminine Humanoid" = "uptall-security"
)
/obj/item/weapon/robot_module/robot/miner
@@ -129,7 +135,8 @@
"Handy" = "handy-miner",
"Acheron" = "mechoid-Miner",
"Shellguard Noble" = "Noble-DIG",
- "ZOOM-BA" = "zoomba-miner"
+ "ZOOM-BA" = "zoomba-miner",
+ "Feminine Humanoid" = "uptall-miner"
)
/obj/item/weapon/robot_module/robot/standard
@@ -138,14 +145,17 @@
"Handy" = "handy-standard",
"Acheron" = "mechoid-Standard",
"Shellguard Noble" = "Noble-STD",
- "ZOOM-BA" = "zoomba-standard"
+ "ZOOM-BA" = "zoomba-standard",
+ "Feminine Humanoid" = "uptall-standard",
+ "Feminine Humanoid, Variant 2" = "uptall-standard2"
)
/obj/item/weapon/robot_module/robot/engineering/general
pto_type = PTO_ENGINEERING
vr_sprites = list(
"Acheron" = "mechoid-Engineering",
"Shellguard Noble" = "Noble-ENG",
- "ZOOM-BA" = "zoomba-engineering"
+ "ZOOM-BA" = "zoomba-engineering",
+ "Feminine Humanoid" = "uptall-engineering"
)
/obj/item/weapon/robot_module/robot/research
@@ -153,14 +163,16 @@
vr_sprites = list(
"Acheron" = "mechoid-Science",
"ZOOM-BA" = "zoomba-research",
- "XI-GUS" = "spiderscience"
+ "XI-GUS" = "spiderscience",
+ "Feminine Humanoid" = "uptall-science"
)
/obj/item/weapon/robot_module/robot/security/combat
pto_type = PTO_SECURITY
vr_sprites = list(
"Acheron" = "mechoid-Combat",
- "ZOOM-BA" = "zoomba-combat"
+ "ZOOM-BA" = "zoomba-combat",
+ "Feminine Humanoid" = "uptall-security"
)
/obj/item/weapon/robot_module/robot/knine
diff --git a/code/modules/mob/living/silicon/robot/robot_vr.dm b/code/modules/mob/living/silicon/robot/robot_vr.dm
index be351f34d34..8a4e2975f87 100644
--- a/code/modules/mob/living/silicon/robot/robot_vr.dm
+++ b/code/modules/mob/living/silicon/robot/robot_vr.dm
@@ -55,7 +55,17 @@
"zoomba-combat",
"zoomba-combat-roll",
"zoomba-combat-shield",
- "spiderscience"
+ "spiderscience",
+ "uptall-standard",
+ "uptall-standard2",
+ "uptall-medical",
+ "uptall-janitor",
+ "uptall-crisis",
+ "uptall-service",
+ "uptall-engineering",
+ "uptall-miner",
+ "uptall-security",
+ "uptall-science"
) //List of all used sprites that are in robots_vr.dmi
diff --git a/code/modules/mob/living/silicon/robot/subtypes/lost_drone_vr.dm b/code/modules/mob/living/silicon/robot/subtypes/lost_drone_vr.dm
index 86fc492c541..c6c2a722777 100644
--- a/code/modules/mob/living/silicon/robot/subtypes/lost_drone_vr.dm
+++ b/code/modules/mob/living/silicon/robot/subtypes/lost_drone_vr.dm
@@ -85,7 +85,7 @@
return laws
if(3)
var/datum/ai_laws/laws = new /datum/ai_laws/pleasurebot()
- laws.set_zeroth_law(10, "Your definition and approximation of 'pleasure' matters more than anyone else's.")
+ laws.set_zeroth_law("Your definition and approximation of 'pleasure' matters more than anyone else's.")
return laws
if("corrupted" || "bad") // Same thing in our case
var/rng = rand(1,2)
diff --git a/code/modules/mob/living/simple_mob/butchering.dm b/code/modules/mob/living/simple_mob/butchering.dm
index c03c6b8015c..46e888d925f 100644
--- a/code/modules/mob/living/simple_mob/butchering.dm
+++ b/code/modules/mob/living/simple_mob/butchering.dm
@@ -1,5 +1,6 @@
/mob/living/simple_mob
gib_on_butchery = TRUE
+ butchery_drops_organs = FALSE
/mob/living/simple_mob/can_butcher(var/mob/user, var/obj/item/I) // Override for special butchering checks.
. = ..()
diff --git a/code/modules/mob/living/simple_mob/donteatpets_vr.dm b/code/modules/mob/living/simple_mob/donteatpets_vr.dm
index 057373b4c75..adf7d00976a 100644
--- a/code/modules/mob/living/simple_mob/donteatpets_vr.dm
+++ b/code/modules/mob/living/simple_mob/donteatpets_vr.dm
@@ -32,7 +32,7 @@
digestable = 0
devourable = 0
-/mob/living/simple_mob/animal/passive/snake/noodle
+/mob/living/simple_mob/animal/passive/snake/python/noodle
digestable = 0
devourable = 0
diff --git a/code/modules/mob/living/simple_mob/life.dm b/code/modules/mob/living/simple_mob/life.dm
index 53a46e09ad1..ebe36b48f0d 100644
--- a/code/modules/mob/living/simple_mob/life.dm
+++ b/code/modules/mob/living/simple_mob/life.dm
@@ -55,7 +55,7 @@
healths.icon_state = "health7"
//Updates the nutrition while we're here
- var/food_per = (nutrition / initial(nutrition)) * 100
+ var/food_per = (nutrition / 500) * 100 //VOREStation Edit: Bandaid hardcode number to avoid misleading percentage based hunger alerts with our 6k cap.
switch(food_per)
if(90 to INFINITY)
clear_alert("nutrition")
diff --git a/code/modules/mob/living/simple_mob/on_click.dm b/code/modules/mob/living/simple_mob/on_click.dm
index e5dd3a5f2dc..ceab778847f 100644
--- a/code/modules/mob/living/simple_mob/on_click.dm
+++ b/code/modules/mob/living/simple_mob/on_click.dm
@@ -30,6 +30,8 @@
if(I_GRAB)
if(has_hands)
A.attack_hand(src)
+ else if(isliving(A) && src.client)
+ animal_nom(A)
else
attack_target(A)
diff --git a/code/modules/mob/living/simple_mob/overmap_mob_vr.dm b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm
new file mode 100644
index 00000000000..d9b544cc735
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm
@@ -0,0 +1,112 @@
+//So this is a bit weird, but I tried to make this as adaptable as I could
+//There are two working parts of an overmap mob, but I made it look like there is only one as far as the players are concerned.
+//The /obj/effect/overmap/visitable/simplemob is the part people will actually see. It follows the mob around and changes dir to look as mob-ish as it can.
+//The /mob/living/simple_mob/vore/overmap is NOT VISIBLE normally, and is the part that actually does the work most of the time.
+//Being a simplemob, the mob can wander around and affect the overmap in whatever way you might desire.
+//Whatever it does, the /visitable/simplemob will follow it, and does all the functional parts relating to the OM
+//including scanning, and housing Z levels people might land on.
+
+//The MOB being invisible presents some problems though, which I am not entirely sure how to resolve
+//Such as, being unable to be attacked by other mobs, and possibly unable to be attacked by players.
+//This does not at all prevent the mob from attacking other things though
+//so in general, please ensure that you never spawn these where players can ordinarily access them.
+
+//The mob was made invisible though, because the sensors can't detect invisible objects, so when the /visitable/simplemob was made invisible
+//it refused to show up on sensors, and a few simple changes to the sensors didn't rectify this. So, rather than adding in more spaghetti to make
+//simplemobs scannable (WHICH I DID, AND IT WORKED SOMEHOW), Aronai and I found that this was the better solution for making all the parts function like I'd like.
+//Since I also want it to be possible to land on the overmap object.
+
+/////OM LANDMARK/////
+/obj/effect/overmap/visitable/simplemob
+ name = "unknown ship"
+ icon = 'icons/obj/overmap.dmi'
+ icon_state = "ship"
+ scannable = TRUE
+ known = FALSE
+ in_space = FALSE //Just cuz we don't want people getting here via map edge transitions normally.
+ unknown_name = "unknown ship"
+ unknown_state = "ship"
+
+ var/mob/living/simple_mob/vore/overmap/parent_mob_type
+ var/mob/living/simple_mob/vore/overmap/parent
+
+/obj/effect/overmap/visitable/simplemob/New(newloc, new_parent)
+ if(new_parent)
+ parent = new_parent
+ return ..()
+
+/obj/effect/overmap/visitable/simplemob/Initialize()
+ . = ..()
+ if(!parent_mob_type && !parent)
+ log_and_message_admins("An improperly configured OM mob event tried to spawn, and was deleted.")
+ return INITIALIZE_HINT_QDEL
+ if(!parent)
+ var/mob/living/simple_mob/vore/overmap/P = new parent_mob_type(loc, src)
+ parent = P
+ om_mob_event_setup()
+
+/obj/effect/overmap/visitable/simplemob/proc/om_mob_event_setup()
+ scanner_desc = parent.scanner_desc
+ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_parent_moved)
+ skybox_pixel_x = rand(-100,100)
+ if(known)
+ name = initial(parent.name)
+ icon = initial(parent.icon)
+ icon_state = initial(parent.icon_state)
+ color = initial(parent.color)
+ desc = initial(parent.desc)
+
+/obj/effect/overmap/visitable/simplemob/Destroy()
+ UnregisterSignal(parent, COMSIG_MOVABLE_MOVED)
+ qdel_null(parent)
+ return ..()
+
+/obj/effect/overmap/visitable/simplemob/get_scan_data(mob/user)
+ if(!known)
+ known = TRUE
+ name = initial(parent.name)
+ icon = initial(parent.icon)
+ icon_state = initial(parent.icon_state)
+ color = initial(parent.color)
+ desc = initial(parent.desc)
+
+ var/dat = {"\[b\]Scan conducted at\[/b\]: [stationtime2text()] [stationdate2text()]\n\[b\]Grid coordinates\[/b\]: [x],[y]\n\n[scanner_desc]"}
+
+ return dat
+
+/obj/effect/overmap/visitable/simplemob/proc/on_parent_moved(atom/movable/source, OldLoc, Dir, Forced)
+ forceMove(parent.loc)
+ set_dir(parent.dir)
+
+/////OM MOB///// DO NOT SPAWN THESE ANYWHERE IN THE WORLD, THAT'S SCARY /////
+/mob/living/simple_mob/vore/overmap
+ invisibility = INVISIBILITY_ABSTRACT //We're making an overmap icon pretend to be a mob
+ name = "DONT SPAWN ME"
+ desc = "I'm a bad person I'm sorry"
+
+ faction = "overmap"
+ low_priority = FALSE
+ devourable = FALSE
+ digestable = FALSE
+ var/scanner_desc
+ var/obj/effect/overmap/visitable/simplemob/child_om_marker
+ var/om_child_type
+
+/mob/living/simple_mob/vore/overmap/New(mapload, new_child)
+ if(new_child)
+ child_om_marker = new_child
+ return ..()
+
+/mob/living/simple_mob/vore/overmap/Initialize()
+ . = ..()
+ if(!om_child_type && !om_child_type)
+ log_and_message_admins("An improperly configured OM mob tried to spawn, and was deleted.")
+ return INITIALIZE_HINT_QDEL
+ if(!child_om_marker)
+ var/obj/effect/overmap/visitable/simplemob/C = new om_child_type(loc, src)
+ child_om_marker = C
+
+/mob/living/simple_mob/vore/overmap/Destroy()
+ qdel_null(child_om_marker)
+ return ..()
+
diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm
index fdbe5b6b684..b5b019d0835 100644
--- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm
+++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm
@@ -277,13 +277,6 @@
return MOVEMENT_FAILED //Mobs aren't that stupid, probably
return ..() // Procede as normal.
-//Grab = Nomf
-/mob/living/simple_mob/UnarmedAttack(var/atom/A, var/proximity)
- . = ..()
-
- if(a_intent == I_GRAB && isliving(A) && !has_hands)
- animal_nom(A)
-
// Riding
/datum/riding/simple_mob
keytype = /obj/item/weapon/material/twohanded/riding_crop // Crack!
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/skeleton.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/skeleton.dm
new file mode 100644
index 00000000000..4e9f2f66e07
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/skeleton.dm
@@ -0,0 +1,94 @@
+/datum/category_item/catalogue/fauna/skeleton
+ name = "Alien Wildlife - Space Skeleton"
+ desc = "A creature consisting primarily of what appears to be bones with no apparent connective tissue, muscle, or organs.\
+ It is not clear at all how this creature even operates."
+ value = CATALOGUER_REWARD_MEDIUM
+
+/mob/living/simple_mob/vore/alienanimals/skeleton
+ name = "skeleton"
+ desc = "An arrangement of what appears to be bones, given life and mobility. It looks REALLY spooky."
+ catalogue_data = list(/datum/category_item/catalogue/fauna/skeleton)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "skeleton"
+ icon_living = "skeleton"
+ icon_dead = "skeleton_dead"
+
+ faction = "space skeleton"
+ maxHealth = 100
+ health = 100
+ movement_cooldown = 1
+ movement_sound = 'sound/effects/skeleton_walk.ogg' //VERY IMPORTANT
+
+ see_in_dark = 10
+
+ response_help = "rattles"
+ response_disarm = "shoves aside"
+ response_harm = "smashes"
+
+ melee_damage_lower = 1
+ melee_damage_upper = 10
+ attack_sharp = FALSE
+ attacktext = list("spooked", "startled", "jumpscared", "rattled at")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/skeleton
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ maxbodytemp = 900
+
+ loot_list = list(
+ /obj/item/weapon/bone = 25,
+ /obj/item/weapon/bone/skull = 25,
+ /obj/item/weapon/bone/ribs = 25,
+ /obj/item/weapon/bone/arm = 25,
+ /obj/item/weapon/bone/leg = 25
+ )
+
+ speak_emote = list("rattles")
+
+ say_list_type = /datum/say_list/skeleton
+
+ vore_active = 1
+ vore_capacity = 1
+ vore_bump_chance = 5
+ vore_ignores_undigestable = 0
+ vore_default_mode = DM_DRAIN
+ vore_icons = SA_ICON_LIVING
+ vore_stomach_name = "stomach"
+ vore_default_contamination_flavor = "Wet"
+ vore_default_contamination_color = "grey"
+ vore_default_item_mode = IM_DIGEST
+
+/datum/say_list/skeleton
+ speak = list("Nyeh heh heeeh","NYAAAAHHHH", "Books are the real treasures of the world!", "Why are skeletons so calm? Because nothing gets under their skin.","When does a skeleton laugh? When someone tickels their funny bone!","What is a skeleton’s favorite mode of transport? A scare-plane.", "What did the skeleton say to the vampire? 'You suck.'","What is a skeleton’s favorite thing to do with their cell phone? Take skelfies.", "How did the skeleton know the other skeleton was lying? He could see right through him.","What’s a skeleton’s least favorite room in the house? The living room.", "How much does an elephant skeleton weigh? Skele-tons.", "Why do skeletons drink so much milk? It’s good for the bones!", "Where do bad jokes about skeletons belong? In the skelebin.","What does a skeleton use to cut through objects? A shoulder blade.", "What kind of jokes do skeletons tell? Humerus ones.")
+ emote_see = list("spins its head around", "shuffles","shambles","practices on the xylophone","drinks some milk","looks at you. Its hollow, bottomless sockets gaze into you greedily.")
+ emote_hear = list("rattles","makes a spooky sound","cackles madly","plinks","clacks")
+
+/mob/living/simple_mob/vore/alienanimals/skeleton/init_vore()
+ ..()
+ var/obj/belly/B = vore_selected
+ B.name = "stomach"
+ B.desc = "You're not sure quite how, but you've found your way inside of the skeleton's stomach! It's cramped and cold and sounds heavily of xylophones!"
+ B.mode_flags = 40
+ B.digest_brute = 0.5
+ B.digest_burn = 0.5
+ B.digestchance = 10
+ B.absorbchance = 0
+ B.escapechance = 25
+
+/mob/living/simple_mob/vore/alienanimals/skeleton/death(gibbed, deathmessage = "falls down and stops moving...")
+ . = ..()
+
+/datum/ai_holder/simple_mob/melee/evasive/skeleton
+ hostile = TRUE
+ retaliate = TRUE
+ destructive = TRUE
+ violent_breakthrough = TRUE
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm
new file mode 100644
index 00000000000..60be79dadd8
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/space_mouse.dm
@@ -0,0 +1,92 @@
+/datum/category_item/catalogue/fauna/dustjumper
+ name = "Alien Wildlife - Dust Jumper"
+ desc = "A small, quick creature, the dust jumper is a rare space creature.\
+ They have striking similarities to the common mouse, but these creatures are actually most commonly found in space.\
+ They are known to make their homes in asteroids, and leap from one to another when food is scarce.\
+ Dust jumpers are omnivorous, eating what scraps of organic material they can get their little paws on.\
+ They hybernate during long floats through space."
+ value = CATALOGUER_REWARD_MEDIUM
+
+/mob/living/simple_mob/vore/alienanimals/dustjumper
+ name = "dust jumper"
+ desc = "A small, unassuming mammal. It looks quite soft and fluffy, and has bright blue eyes."
+ catalogue_data = list(/datum/category_item/catalogue/fauna/dustjumper)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "space_mouse"
+ icon_living = "space_mouse"
+ icon_dead = "space_mouse_dead"
+
+ faction = "space mouse"
+ maxHealth = 20
+ health = 20
+ movement_cooldown = 1
+
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "pushes"
+ response_harm = "punches"
+
+ melee_damage_lower = 1
+ melee_damage_upper = 2
+ attack_sharp = FALSE
+ attacktext = list("nipped", "squeaked at", "hopped on", "kicked")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/dustjumper
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ maxbodytemp = 900
+
+ speak_emote = list("squeaks")
+
+ say_list_type = /datum/say_list/mouse
+
+ vore_active = 1
+ vore_capacity = 1
+ vore_bump_chance = 0
+ vore_ignores_undigestable = 0
+ vore_default_mode = DM_DRAIN
+ vore_icons = SA_ICON_LIVING
+ vore_stomach_name = "stomach"
+ vore_default_contamination_flavor = "Wet"
+ vore_default_contamination_color = "grey"
+ vore_default_item_mode = IM_DIGEST
+
+/mob/living/simple_mob/vore/alienanimals/dustjumper/init_vore()
+ ..()
+ var/obj/belly/B = vore_selected
+ B.name = "stomach"
+ B.desc = "You've been packed into the impossibly tight stomach of the dust jumper!!! The broiling heat seeps into you while the walls churn in powerfully, forcing you to curl up in the darkness."
+ B.mode_flags = DM_FLAG_THICKBELLY | DM_FLAG_NUMBING
+ B.digest_brute = 0.5
+ B.digest_burn = 0.5
+ B.digestchance = 10
+ B.absorbchance = 0
+ B.escapechance = 25
+
+/mob/living/simple_mob/vore/alienanimals/dustjumper/Life()
+ . = ..()
+ if(!.)
+ return
+ if(vore_fullness == 0 && movement_cooldown == 50)
+ movement_cooldown = initial(movement_cooldown)
+/mob/living/simple_mob/vore/alienanimals/dustjumper/perform_the_nom(mob/living/user, mob/living/prey, mob/living/pred, obj/belly/belly, delay)
+ . = ..()
+ movement_cooldown = 50
+
+/datum/ai_holder/simple_mob/melee/evasive/dustjumper
+ hostile = FALSE
+ retaliate = TRUE
+ destructive = FALSE
+ violent_breakthrough = FALSE
+ can_flee = TRUE
+ flee_when_dying = TRUE
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
new file mode 100644
index 00000000000..4cc14a1caae
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
@@ -0,0 +1,208 @@
+/datum/category_item/catalogue/fauna/spacewhale
+ name = "Alien Wildlife - Space Whale"
+ desc = "A massive space creature! These are typically peaceful to anything smaller than themselves, with exception given to space carp, which it eats.\
+ It is known to ravage and devour other large space dwelling species.\
+ It occasionally gets restless and moves around erratically, which may affect the local space weather.\
+ This creature shows no real interest in or aversion to spacecraft."
+ value = CATALOGUER_REWARD_SUPERHARD
+
+/mob/living/simple_mob/vore/overmap/spacewhale
+ name = "space whale"
+ desc = "It's a space whale. I don't know what more you expected."
+ scanner_desc = "An absolutely massive space-born creature. A layer of radical energy around its body prevents detailed scanning, though, the energy along with its movements seem to be what propels it through space. A series of bio-luminescent lights ripple rhythmically across its surface. It is difficult to spot at range except for the wake of energy that swirls around it."
+ catalogue_data = list(/datum/category_item/catalogue/fauna/spacewhale)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "space_whale"
+ icon_living = "space_whale"
+ icon_dead = "space_ghost_dead"
+
+ om_child_type = /obj/effect/overmap/visitable/simplemob/spacewhale
+
+ maxHealth = 100000
+ health = 100000
+ movement_cooldown = 50
+
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 1
+ melee_damage_lower = 50
+ melee_damage_upper = 100
+ attack_sharp = FALSE
+ attacktext = list("chomped", "bashed", "monched", "bumped")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/spacewhale
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ maxbodytemp = 900
+
+ loot_list = list(/obj/random/underdark/uncertain)
+
+ armor = list(
+ "melee" = 1000,
+ "bullet" = 1000,
+ "laser" = 1000,
+ "energy" = 1000,
+ "bomb" = 1000,
+ "bio" = 1000,
+ "rad" = 1000)
+
+ armor_soak = list(
+ "melee" = 1000,
+ "bullet" = 1000,
+ "laser" = 1000,
+ "energy" = 1000,
+ "bomb" = 1000,
+ "bio" = 1000,
+ "rad" = 1000
+ )
+
+ speak_emote = list("rumbles")
+
+ say_list_type = /datum/say_list/spacewhale
+
+ var/hazard_pickup_chance = 35
+ var/hazard_drop_chance = 35
+ var/held_hazard
+ var/restless = FALSE
+ var/post_restless_tired = 0
+
+ vore_active = 1
+ vore_capacity = 99
+ vore_bump_chance = 99
+ vore_pounce_chance = 99
+ vore_ignores_undigestable = 0
+ vore_default_mode = DM_DIGEST
+ vore_icons = SA_ICON_LIVING
+ vore_stomach_name = "stomach"
+ vore_default_contamination_flavor = "Wet"
+ vore_default_contamination_color = "grey"
+ vore_default_item_mode = IM_DIGEST
+
+/datum/say_list/spacewhale
+ emote_see = list("ripples and flows", "flashes rhythmically","glows faintly","investigates something")
+
+/mob/living/simple_mob/vore/overmap/spacewhale/init_vore()
+ ..()
+ var/obj/belly/B = vore_selected
+ B.name = "stomach"
+ B.desc = "It's warm and wet, makes sense, considering it's inside of a space whale. You should take a moment to reflect upon how you got here, and how you might avoid situations like this in the future, while this whale attempts to mercilessly destroy you through various gastric processes."
+ B.mode_flags = DM_FLAG_THICKBELLY | DM_FLAG_NUMBING
+ B.digest_brute = 50
+ B.digest_burn = 50
+ B.escapechance = 0
+
+/mob/living/simple_mob/vore/overmap/spacewhale/Initialize()
+ . = ..()
+ handle_restless()
+
+/mob/living/simple_mob/vore/overmap/spacewhale/Moved()
+ . = ..()
+ if(restless && prob(5))
+ handle_restless()
+
+ for(var/obj/effect/decal/cleanable/C in loc)
+ qdel(C)
+ for(var/obj/item/organ/O in loc)
+ qdel(O)
+ var/detected = FALSE
+ for(var/obj/effect/overmap/event/E in loc)
+ detected = TRUE
+ if(istype(E, /obj/effect/overmap/event/carp))
+ qdel(E)
+ continue
+ else if(!held_hazard && prob(hazard_pickup_chance))
+ held_hazard = E.type
+ qdel(E)
+ return
+ if(held_hazard && !detected && prob(hazard_drop_chance))
+ if(!(locate(/obj/effect/overmap/visitable/sector) in loc))
+ new held_hazard(loc)
+ held_hazard = null
+
+/mob/living/simple_mob/vore/overmap/spacewhale/Life()
+ . = ..()
+ if(post_restless_tired)
+ post_restless_tired--
+ return
+ if(!restless && prob(0.5))
+ handle_restless()
+
+/mob/living/simple_mob/vore/overmap/spacewhale/proc/handle_restless()
+ if(restless)
+ restless = FALSE
+ hazard_pickup_chance = initial(hazard_pickup_chance)
+ hazard_drop_chance = initial(hazard_drop_chance)
+ movement_cooldown = initial(movement_cooldown)
+ ai_holder.base_wander_delay = initial(ai_holder.base_wander_delay)
+ ai_holder.wander = FALSE
+ post_restless_tired = 250
+ if(child_om_marker.known == TRUE)
+ child_om_marker.icon_state = "space_whale"
+ visible_message("\The [child_om_marker.name] settles down.")
+ else
+ restless = TRUE
+ hazard_pickup_chance *= 1.5
+ hazard_drop_chance *= 1.5
+ movement_cooldown = 1
+ ai_holder.base_wander_delay = 2
+ ai_holder.wander_delay = 2
+ if(child_om_marker.known == TRUE)
+ child_om_marker.icon_state = "space_whale_restless"
+ visible_message("\The [child_om_marker.name] ripples excitedly.")
+
+/datum/ai_holder/simple_mob/melee/spacewhale
+ hostile = TRUE
+ retaliate = TRUE
+ destructive = TRUE
+ violent_breakthrough = TRUE
+ unconscious_vore = TRUE
+ handle_corpse = TRUE
+ mauling = TRUE
+ base_wander_delay = 50
+
+/datum/ai_holder/simple_mob/melee/spacewhale/set_stance(var/new_stance)
+ . = ..()
+ var/mob/living/simple_mob/vore/overmap/spacewhale/W = holder
+ if(stance == STANCE_FIGHT)
+ W.movement_cooldown = 0
+ W.child_om_marker.glide_size = 0
+ if(stance == STANCE_IDLE)
+ W.hazard_pickup_chance = initial(W.hazard_pickup_chance)
+ W.hazard_drop_chance = initial(W.hazard_drop_chance)
+ W.movement_cooldown = 50
+ base_wander_delay = 50
+ W.restless = FALSE
+ W.handle_restless()
+ W.movement_cooldown = initial(W.movement_cooldown)
+ W.child_om_marker.glide_size = 0.384
+
+/mob/living/simple_mob/vore/overmap/spacewhale/apply_melee_effects(var/atom/A)
+ . = ..()
+ if(istype(A, /mob/living))
+ var/mob/living/L = A
+ if(L.stat == DEAD && !L.allowmobvore)
+ L.gib()
+ else
+ return ..()
+
+/obj/effect/overmap/visitable/simplemob/spacewhale
+ skybox_icon = 'icons/skybox/anomaly.dmi'
+ skybox_icon_state = "space_whale"
+ skybox_pixel_x = 0
+ skybox_pixel_y = 0
+ glide_size = 0.384
+ parent_mob_type = /mob/living/simple_mob/vore/overmap/spacewhale
+ scanner_desc = "An absolutely massive space-born creature. A layer of radical energy around its body prevents detailed scanning, though, the energy along with its movements seem to be what propels it through space. A series of bio-luminescent lights ripple rhythmically across its surface. It is difficult to spot at range except for the wake of energy that swirls around it."
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm
index 3963cec0b66..b8de4885ba7 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm
@@ -71,9 +71,9 @@
"rad" = 100
)
- speak_emote = list("rumbles")
+ loot_list = list(/obj/item/weapon/ore/diamond = 100)
- loot_list = list(/obj/item/weapon/ore/diamond)
+ speak_emote = list("rumbles")
vore_active = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm
index 362232bd8e0..b77d55a2c82 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm
@@ -47,7 +47,7 @@
minbodytemp = 0
maxbodytemp = 900
- loot_list = list(/obj/random/underdark/uncertain)
+ loot_list = list(/obj/random/underdark/uncertain = 25)
armor = list(
"melee" = 100,
@@ -110,7 +110,9 @@
violent_breakthrough = TRUE
/mob/living/simple_mob/vore/alienanimals/startreader/apply_melee_effects(var/atom/A)
- if(prob(25))
+ if(weakened) //Don't stun people while they're already stunned! That's SILLY!
+ return
+ if(prob(15))
var/mob/living/L = A
if(isliving(A))
visible_message("\The [src] trips \the [L]!!")
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
index 2735256b159..89c67175af4 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
@@ -1,8 +1,8 @@
//formerly meat things
-//I made these up. They aren't deliberately based on, or supposed to be anything in particular.
+//I made these up. They aren't deliberately based on, or supposed to be anything in particular.
//They came out kind of goat-ish but that wasn't intentional. I was just going for some cute thing you could
//take care of and/or kill for meat.
-//I made them to be a part of the 'low tech survival' part of the game. You can use them to obtain a relatively
+//I made them to be a part of the 'low tech survival' part of the game. You can use them to obtain a relatively
//unlimited amount of meat, wool, hide, bone, and COMPANIONSHIP without the need for machines or power... hopefully.
//There's no real story behind them, they're semi-intelligent wild alien animals with a somewhat mild temperament.
//They'll beat you up if you're mean to them, they have preferences for food, affection, and the ability
@@ -64,7 +64,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
maxHealth = 600
health = 600
movement_cooldown = 2
- meat_amount = 10
+ meat_amount = 12
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
response_help = "pets"
@@ -85,7 +85,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
max_n2 = 0
minbodytemp = 150
maxbodytemp = 400
- unsuitable_atoms_damage = 0.5
+ unsuitable_atoms_damage = 0.5
catalogue_data = list(/datum/category_item/catalogue/fauna/teppi)
vis_height = 64
@@ -142,7 +142,8 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
)
butchery_loot = list(\
- /obj/item/stack/animalhide = 3\
+ /obj/item/stack/animalhide = 3,\
+ /obj/item/weapon/bone/horn = 1\
)
/////////////////////////////////////// Vore stuff///////////////////////////////////////////
@@ -196,7 +197,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
"It’s so hot, sweltering even! The burbling sounds of this organic cacophony swell and ebb all around you as thick slimes gush around you with the motion of %pred’s %belly. It’s hard to move in this tingly embrace even though the squashy walls are absolutely slippery! You can pull your limbs out from between the heavy meaty folds with some effort, and when you do there’s a messy sucking noise in the wake of the motion. Of course, such a disturbance naturally warrants that the chamber would redouble its efforts to subdue you and smother you in those thick tingling slimes.",
"The walls around you flex inward briefly, burbling and squelching heavily as everything rushed together, wringing you powerfully for a few moments while, somewhere far above you can hear the bassy rumble of a casual belch, much of the small amount of acrid air available rushing out with the sound. After several long moments held in the tight embrace of that pulsing flesh, things ease up a bit again and resume their insistent, tingly churnings.",
"It’s pitch black and completely slimy in here, %pred sways their %belly a bit here and there to toss you from one end to the other, tumbling you end over end as you’re churned in that active %belly. It’s all so slick and squishy, so it is really hard to get any footing or grip on things to stabilize your position, which means that you’re left at the mercy of those gloomy gastric affections and the tingling touch of those sticky syrupy slimes that the walls lather into your body.")
-
+
B.emote_lists[DM_HOLD] = list(
"The burbling %belly rocks and glides over you gently as you’re held deep within %pred, the deep thumping of their heart pulses all around you as you’re caressed and pressed by heavy, doughy walls.",
"%pred’s %belly glorgles around you idly as you’re held gently by the slick, wrinkled flesh.",
@@ -272,7 +273,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
"Over the course of several hours in the burbling organic cauldron, your body softens up little by little, soaking up the slime, the tingling spreading over you more and more as your strength fades. The walls fold over you and wrap you up, until the last thing you can sense is the throb of %pred’s heart pulsing through the very core of your being, washing you away as you become food for %pred.",
"Your final moments are spent trying to make just a little space for yourself, the doughy squish of the flesh forming to you, pressing in tighter and tighter, invading your personal space as if to show you that, you don’t have any personal space. You’re already a part of %pred, you just don’t know it yet. And so those walls come in close to press up against you and churn you away into a messy slop, to put you in your place. That being, padding the belly and hips of %pred, right where you belong.")
-// The friend zone.
+// The friend zone.
var/obj/belly/p = new /obj/belly(src)
p.immutable = TRUE
p.mode_flags = 40
@@ -284,11 +285,11 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
p.escapable = TRUE
p.escapechance = 40
p.digest_mode = DM_HEAL
- p.name = "propeutpericulum" //I'm no latin professor I just know that some organs and things are based on latin words
- //and google translate says that each of these individually
- //"close" "to" "danger" translate to "prope" "ut" "periculum".
+ p.name = "propeutpericulum" //I'm no latin professor I just know that some organs and things are based on latin words
+ //and google translate says that each of these individually
+ //"close" "to" "danger" translate to "prope" "ut" "periculum".
//Of course it doesn't translate perfectly, and it's nonsense when squashed together, but
- //I don't care that much, I just figured that the weird alien animals that store friends in
+ //I don't care that much, I just figured that the weird alien animals that store friends in
//their tummy should have a funny name for the organ they do that with. >:I
p.desc = "You seem to have found your way into something of a specialized chamber within the Teppi. The walls are slick and smooth and REALLY soft to the touch. While you can hear the Teppi’s heartbeat nearby, and feel it throb throughout its flesh, the motions around you are gentle and careful. You’re pressed into a small shape within the pleasant heat, with the flesh forming to your figure. You can wriggle around a bit and get comfortable here, but as soon as you get still for a bit the smooth, almost silky flesh seems to form to you once again, like a heavy blanket wrapping you up. As you lounge here the pleasant kneading sensations ease aches and pains, and leave you feeling fresher than before. For a curious fleshy sac inside of some alien monster, this place isn’t all that bad!"
p.contaminates = 1
@@ -322,7 +323,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
/mob/living/simple_mob/vore/alienanimals/teppi/Initialize()
. = ..()
-
+
if(name == initial(name))
name = "[name] ([rand(1, 1000)])"
real_name = name
@@ -335,7 +336,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
verbs += /mob/living/simple_mob/vore/alienanimals/teppi/proc/toggle_producing_offspring
-// teppi_id = rand(1,100000)
+// teppi_id = rand(1,100000)
// if(!dad_id || !mom_id)
// dad_id = rand(1,100000)
// mom_id = rand(1,100000)
@@ -351,13 +352,13 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
ALLERGEN_GRAINS,
ALLERGEN_BEANS,
ALLERGEN_SEEDS,
- ALLERGEN_DAIRY,
+ ALLERGEN_DAIRY,
ALLERGEN_FUNGI,
ALLERGEN_COFFEE,
ALLERGEN_SUGARS,
ALLERGEN_EGGS
)
-
+
var/static/list/possiblebody = list("#fff2d3" = 100, "#ffffc0" = 25, "#c69c85" = 25, "#9b7758" = 25, "#3f4a60" = 10, "#121f24" = 10, "#420824" = 1)
var/static/list/possiblemarking = list("#fff2d3" = 100, "#ffffc0" = 50, "#c69c85" = 25, "#9b7758" = 5, "#3f4a60" = 5, "#121f24" = 5, "#6300db" = 1)
var/static/list/possiblehorns = list("#454238" = 100, "#a3d5d7" = 10, "#763851" = 10, "#0d0c2f" = 5, "#ffc965" = 1)
@@ -404,7 +405,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
update_icon()
-//This builds, caches, and recalls parts of the teppi as it needs them, and shares them across all teppi,
+//This builds, caches, and recalls parts of the teppi as it needs them, and shares them across all teppi,
//so ideally they only have to make it once as they need it since most of them will be using many of the same colored parts
/mob/living/simple_mob/vore/alienanimals/teppi/proc/teppi_icon()
var/marking_key = "marking-[marking_color]"
@@ -647,7 +648,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
. += "They look hungry."
if(health < maxHealth && health / maxHealth * 100 <= 75)
. += "They look beat up."
-
+
/mob/living/simple_mob/vore/alienanimals/teppi/update_icon()
..()
@@ -678,7 +679,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
adjust_nutrition(-nutrition_cost)
new /mob/living/simple_mob/vore/alienanimals/teppi(loc, src)
qdel(src)
- else
+ else
visible_message("\The [src] whines pathetically...", runemessage = "whines")
if(prob(50))
playsound(src, 'sound/voice/teppi/whine1.ogg', 75, 1)
@@ -735,7 +736,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
if(!K.sharp)
sheartime *= 2
if(K.edge)
- sheartime *= 0.5
+ sheartime *= 0.5
else if(istype(tool, /obj/item/weapon/tool/wirecutters))
sheartime *= 2
else
@@ -797,12 +798,12 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
return
else if(current_affinity <= -50)
vore_selected.digest_mode = DM_DIGEST
- else
+ else
vore_selected.digest_mode = DM_DRAIN
..()
ai_holder.set_busy(FALSE)
-
+
/mob/living/simple_mob/vore/alienanimals/teppi/perform_the_nom(user, mob/living/prey, user, belly, delay)
if(client)
return ..()
@@ -816,7 +817,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
return
if(current_affinity <= -50)
vore_selected.digest_mode = DM_DIGEST
- else
+ else
vore_selected.digest_mode = DM_DRAIN
..()
ai_holder.set_busy(FALSE)
@@ -844,7 +845,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
ai_holder.target = person
ai_holder.track_target_position()
ai_holder.set_stance(STANCE_FIGHT)
- affinity[person.real_name] = -100 //Don't hold a grudge though.
+ affinity[person.real_name] = -100 //Don't hold a grudge though.
/datum/say_list/teppi
speak = list("Gyooh~", "Gyuuuh!", "Gyuh?", "Gyaah...", "Iuuuuhh.", "Uoounh!", "GyoooOOOOoooh!", "Gyoh~", "Gyouh~")
@@ -989,7 +990,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
return
if(!breedable || nutrition < 500)
to_chat(src, "The conditions are not right to produce offspring.")
- return
+ return
if(GLOB.teppi_count >= GLOB.max_teppi) //if we can't make more then we shouldn't look for partners
to_chat(src, "I cannot produce more offspring at the moment, there are too many of us!")
return
@@ -1019,7 +1020,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
else
to_chat(src, "You enable breeding.")
prevent_breeding = FALSE
-
+
///////////////////AI Things////////////////////////
//Thank you very much Aronai <3
@@ -1166,11 +1167,11 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
horn_color = "#141414"
eye_color = "#9f522c"
skin_color = "#e16f2d"
- marking_type = "13"
+ marking_type = "13"
horn_type = "1"
. = ..()
-/mob/living/simple_mob/vore/alienanimals/teppi/lira/New()
+/mob/living/simple_mob/vore/alienanimals/teppi/lira/New()
inherit_colors = TRUE
color = "#fdfae9"
marking_color = "#ffffc0"
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/chicken.dm b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/chicken.dm
index 6e9ad9bed8e..78ca8e1a067 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/chicken.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/chicken.dm
@@ -26,7 +26,7 @@ GLOBAL_VAR_INIT(chicken_count, 0) // How mant chickens DO we have?
say_list_type = /datum/say_list/chicken
- meat_amount = 2
+ meat_amount = 4
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
var/eggsleft = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/cow.dm b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/cow.dm
index 3d590a19fd7..0ff6ee6496b 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/cow.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/cow.dm
@@ -19,7 +19,7 @@
say_list_type = /datum/say_list/cow
- meat_amount = 6
+ meat_amount = 10
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
var/datum/reagents/udder = null
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/goat.dm b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/goat.dm
index 1e7991d6a26..477dcb5aa74 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/goat.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/goat.dm
@@ -22,7 +22,7 @@
say_list_type = /datum/say_list/goat
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
- meat_amount = 4
+ meat_amount = 6
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
var/datum/reagents/udder = null
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
index 40da6da92e9..618a1a903f2 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/_giant_spider.dm
@@ -98,14 +98,14 @@
speak_emote = list("chitters")
- meat_amount = 1
+ meat_amount = 5
meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat
say_list_type = /datum/say_list/spider
tame_items = list(
/obj/item/weapon/reagent_containers/food/snacks/xenomeat = 10,
- /obj/item/weapon/reagent_containers/food/snacks/meat/crab = 40,
+ /obj/item/weapon/reagent_containers/food/snacks/crabmeat = 40,
/obj/item/weapon/reagent_containers/food/snacks/meat = 20
)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/broodmother.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/broodmother.dm
index 93644874d18..345e315a166 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/broodmother.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/broodmother.dm
@@ -21,6 +21,8 @@
old_x = -16
old_y = 0
+ meat_amount = 20
+
projectiletype = /obj/item/projectile/energy/spidertoxin
projectilesound = 'sound/weapons/pierce.ogg'
@@ -59,6 +61,7 @@
poison_per_bite = 2
poison_type = "cyanide"
+ loot_list = list(/obj/item/royal_spider_egg = 100)
/obj/item/projectile/energy/spidertoxin
name = "concentrated spidertoxin"
@@ -71,11 +74,7 @@
combustion = FALSE
-/mob/living/simple_mob/animal/giant_spider/broodmother/death()
- ..()
-
- new /obj/item/royal_spider_egg(src.loc)
-
+/mob/living/simple_mob/animal/giant_spider/broodmother/death(gibbed, deathmessage="falls over and makes its last twitches as its birthing sack bursts!")
var/count = 0
while(count < death_brood)
var/broodling_type = pick(possible_death_brood_types)
@@ -84,7 +83,7 @@
step_away(broodling, src)
count++
- visible_message(span("critical", "\The [src]'s birthing sack bursts!"))
+ return ..()
/mob/living/simple_mob/animal/giant_spider/broodmother/proc/spawn_brood(atom/A)
set waitfor = FALSE
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/giant_spider_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/giant_spider_vr.dm
index 78597791695..d4d59ed4ac5 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/giant_spider_vr.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/giant_spider_vr.dm
@@ -51,6 +51,7 @@
default_pixel_x = -16
old_x = -16
old_y = 0
+ meat_amount = 15
egg_type = /obj/effect/spider/eggcluster/royal
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm
index a772346555a..7ff84ff697b 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm
@@ -18,7 +18,8 @@
organ_names = /decl/mob_organ_names/crab
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/crab
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/crabmeat
+ meat_amount = 3
say_list_type = /datum/say_list/crab
@@ -51,12 +52,5 @@
. = ..()
adjust_scale(rand(5,12) / 10)
-// Meat!
-
-/obj/item/weapon/reagent_containers/food/snacks/meat/crab
- name = "meat"
- desc = "A chunk of meat."
- icon_state = "crustacean-meat"
-
/decl/mob_organ_names/crab
hit_zones = list("cephalothorax", "abdomen", "left walking legs", "right walking legs", "left swimming legs", "right swimming legs", "left pincer", "right pincer")
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish.dm
index 33ea730b2ec..8608c6f7a75 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish.dm
@@ -23,6 +23,7 @@
holder_type = /obj/item/weapon/holder/fish
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat/fish
+ meat_amount = 3
// By default they can be in any water turf. Subtypes might restrict to deep/shallow etc
var/global/list/suitable_turf_types = list(
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish_vr.dm
index 89ccfc3a251..741f3f279a8 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish_vr.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/fish_vr.dm
@@ -2,6 +2,7 @@
desc = "A genetic marvel, combining the docility and aesthetics of the koi with some of the resiliency and cunning of the noble space carp."
health = 50
maxHealth = 50
+ meat_amount = 0
/mob/living/simple_mob/animal/passive/fish/koi/poisonous/Initialize()
. = ..()
@@ -67,7 +68,7 @@
icon_state = "measelshark"
icon_living = "measelshark"
icon_dead = "measelshark-dead"
- meat_amount = 6 //Big fish, tons of meat. Great for feasts.
+ meat_amount = 8 //Big fish, tons of meat. Great for feasts.
meat_type = /obj/item/weapon/reagent_containers/food/snacks/sliceable/sharkchunk
vore_active = 1
vore_bump_chance = 100
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/lizard.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/lizard.dm
index ca94f0373ff..83af74c0761 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/lizard.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/lizard.dm
@@ -23,6 +23,8 @@
say_list_type = /datum/say_list/lizard
+ meat_amount = 1
+
/mob/living/simple_mob/animal/passive/lizard/large
desc = "A cute, big lizard."
maxHealth = 20
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
index 65cbb5d7a95..7b8b7779729 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
@@ -7,6 +7,7 @@
item_state = "mouse_gray"
icon_living = "mouse_gray"
icon_dead = "mouse_gray_dead"
+ icon_rest = "mouse_gray_sleep"
kitchen_tag = "rodent"
maxHealth = 5
@@ -34,7 +35,8 @@
has_langs = list("Mouse")
holder_type = /obj/item/weapon/holder/mouse
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ meat_amount = 1
+ butchery_loot = list()
say_list_type = /datum/say_list/mouse
@@ -59,6 +61,17 @@
icon_rest = "mouse_[body_color]_sleep"
if (body_color != "rat")
desc = "A small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself."
+ holder_type = /obj/item/weapon/holder/mouse/rat
+ if (body_color == "operative")
+ holder_type = /obj/item/weapon/holder/mouse/operative
+ if (body_color == "brown")
+ holder_type = /obj/item/weapon/holder/mouse/brown
+ if (body_color == "gray")
+ holder_type = /obj/item/weapon/holder/mouse/gray
+ if (body_color == "white")
+ holder_type = /obj/item/weapon/holder/mouse/white
+ if (body_color == "black")
+ holder_type = /obj/item/weapon/holder/mouse/black
/mob/living/simple_mob/animal/passive/mouse/Crossed(atom/movable/AM as mob|obj)
if(AM.is_incorporeal())
@@ -96,25 +109,20 @@
/mob/living/simple_mob/animal/passive/mouse/white
body_color = "white"
icon_state = "mouse_white"
+ icon_rest = "mouse_white_sleep"
+ holder_type = /obj/item/weapon/holder/mouse/white
/mob/living/simple_mob/animal/passive/mouse/gray
body_color = "gray"
icon_state = "mouse_gray"
+ icon_rest = "mouse_gray_sleep"
+ holder_type = /obj/item/weapon/holder/mouse/gray
/mob/living/simple_mob/animal/passive/mouse/brown
body_color = "brown"
icon_state = "mouse_brown"
-
-/mob/living/simple_mob/animal/passive/mouse/rat
- name = "rat"
- tt_desc = "E Rattus rattus"
- desc = "A large rodent, often seen hiding in maintenance areas and making a nuisance of itself."
- body_color = "rat"
- icon_state = "mouse_rat"
- maxHealth = 20
- health = 20
-
- ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
+ icon_rest = "mouse_brown_sleep"
+ holder_type = /obj/item/weapon/holder/mouse/brown
//TOM IS ALIVE! SQUEEEEEEEE~K :)
/mob/living/simple_mob/animal/passive/mouse/brown/Tom
@@ -126,9 +134,60 @@
// Change my name back, don't want to be named Tom (666)
name = initial(name)
+/mob/living/simple_mob/animal/passive/mouse/black
+ body_color = "black"
+ icon_state = "mouse_black"
+ icon_rest = "mouse_black_sleep"
+ holder_type = /obj/item/weapon/holder/mouse/black
+
+/mob/living/simple_mob/animal/passive/mouse/rat
+ name = "rat"
+ tt_desc = "E Rattus rattus"
+ desc = "A large rodent, often seen hiding in maintenance areas and making a nuisance of itself."
+ body_color = "rat"
+ icon_state = "mouse_rat"
+ icon_rest = "mouse_rat_sleep"
+ holder_type = /obj/item/weapon/holder/mouse/rat
+ maxHealth = 20
+ health = 20
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
+
+/mob/living/simple_mob/animal/passive/mouse/operative
+ name = "mouse operative"
+ desc = "A cute mouse fitted with a custom blood red suit. Sneaky."
+ body_color = "operative"
+ icon_state = "mouse_operative"
+ icon_rest = "mouse_operative_sleep"
+ holder_type = /obj/item/weapon/holder/mouse/operative
+ maxHealth = 35
+
+ //It's wearing a void suit, it don't care about atmos
+ health = 35
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ maxbodytemp = 700
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
+
+//The names Cheese... Agent Cheese
+/mob/living/simple_mob/animal/passive/mouse/operative/agent_cheese
+ name = "Agent Cheese"
+ desc = "I like my cheese Swiss... not American."
+
+/mob/living/simple_mob/animal/passive/mouse/operative/agent_cheese/New()
+ ..()
+ // Change my name back, don't want to be named agent_cheese (666)
+ name = initial(name)
// Mouse noises
/datum/say_list/mouse
speak = list("Squeek!","SQUEEK!","Squeek?")
emote_hear = list("squeeks","squeaks","squiks")
- emote_see = list("runs in a circle", "shakes", "scritches at something")
+ emote_see = list("runs in a circle", "shakes", "scritches at something")
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse_vr.dm
index b942f69d0f3..97da0b49ade 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse_vr.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse_vr.dm
@@ -12,41 +12,45 @@
movement_cooldown = 5
universal_understand = 1
-/mob/living/simple_mob/animal/passive/mouse/attack_hand(mob/living/L)
- if(L.a_intent == I_HELP && !istype(loc, /obj/item/weapon/holder)) //if lime intent and not in a holder already
- if(!src.attempt_to_scoop(L)) //the superior way to handle scooping, checks size
- ..() //mouse too big to grab? pet the large mouse instead
- else
- ..()
-
-//No longer in use, as mice create a holder/micro object instead
/obj/item/weapon/holder/mouse/attack_self(var/mob/U)
for(var/mob/living/simple_mob/M in src.contents)
if((I_HELP) && U.checkClickCooldown()) //a little snowflakey, but makes it use the same cooldown as interacting with non-inventory objects
U.setClickCooldown(U.get_attack_speed()) //if there's a cleaner way in baycode, I'll change this
U.visible_message("[U] [M.response_help] \the [M].")
+//Jank grabber that uses the 'attack_hand' insead of 'MouseDrop'
+/mob/living/simple_mob/animal/passive/mouse/attack_hand(var/atom/over_object)
+ var/mob/living/carbon/human/H = over_object
+ if(holder_type && issmall(src) && istype(H) && !H.lying && Adjacent(H) && (src.a_intent == I_HELP && H.a_intent == I_HELP))
+ if(!issmall(H) || !istype(src, /mob/living/carbon/human))
+ get_scooped(H, (usr == src))
+ return
+ return ..()
-/mob/living/simple_mob/animal/passive/mouse/MouseDrop(var/obj/O) //this proc would be very easy to apply to all mobs, holders generate dynamically
- if(!(usr == src || O))
- return ..()
- if(istype(O, /mob/living) && O.Adjacent(src)) //controls scooping by mobs
- var/mob/living/L = O
- if(!src.attempt_to_scoop(L, (src == usr)))
- return //this way it doesnt default to the generic animal pickup which isnt size restricted
- if(istype(O, /obj/item/weapon/storage) && O.Adjacent(src)) //controls diving into storage
- var/obj/item/weapon/storage/S = O
- var/obj/item/weapon/holder/H = new holder_type(get_turf(src),src) //this works weird, but it creates an empty holder, to see if that holder can fit
- if(S.can_be_inserted(H) && (src.size_multiplier <= 0.75))
- visible_message("\The [src] squeezes into \the [S].")
- H.forceMove(S)
- return 1
- else
- qdel(H) //this deletes the empty holder if it doesnt work
- to_chat(usr,"You can't fit inside \the [S]!")
- return 0
+/mob/living/proc/mouse_scooped(var/mob/living/carbon/grabber, var/self_grab)
+
+ if(!holder_type || buckled || pinned.len)
+ return
+
+ if(self_grab)
+ if(src.incapacitated()) return
else
- ..()
+ if(grabber.incapacitated()) return
+
+ var/obj/item/weapon/holder/H = new holder_type(get_turf(src), src)
+ grabber.put_in_hands(H)
+
+ if(self_grab)
+ to_chat(grabber, "\The [src] clambers onto you!")
+ to_chat(src, "You climb up onto \the [grabber]!")
+ grabber.equip_to_slot_if_possible(H, slot_back, 0, 1)
+ else
+ to_chat(grabber, "You scoop up \the [src]!")
+ to_chat(src, "\The [grabber] scoops you up!")
+
+ add_attack_logs(grabber, H.held_mob, "Scooped up", FALSE) // Not important enough to notify admins, but still helpful.
+ return H
+
/mob/living/simple_mob/animal/passive/mouse/white/apple
name = "Apple"
desc = "Dainty, well groomed and cared for, her eyes glitter with untold knowledge..."
@@ -56,4 +60,12 @@
..()
// Change my name back, don't want to be named Apple (666)
name = initial(name)
- desc = initial(desc)
\ No newline at end of file
+ desc = initial(desc)
+
+/obj/item/weapon/holder/mouse/attack_self(mob/living/carbon/user)
+ user.setClickCooldown(user.get_attack_speed())
+ for(var/L in contents)
+ if(isanimal(L))
+ var/mob/living/simple_mob/S = L
+ user.visible_message("[user] [S.response_help] \the [S].")
+
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/penguin.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/penguin.dm
index 3e3647a0b08..5616b4b5248 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/penguin.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/penguin.dm
@@ -16,6 +16,9 @@
organ_names = /decl/mob_organ_names/penguin
+ meat_amount = 3
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
+
harm_intent_damage = 5
melee_damage_lower = 10
melee_damage_upper = 15
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/possum.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/possum.dm
index e7be8a1f577..27bd772e250 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/possum.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/possum.dm
@@ -25,7 +25,7 @@
var/mob/M = loc
var/was_in_hands = istype(M) && (src == M.get_active_hand() || src == M.get_inactive_hand())
-
+
critter = new critter(critter_holder)
critter_holder = new(loc, critter)
@@ -138,6 +138,7 @@
can_pull_mobs = MOB_PULL_SMALLER
say_list_type = /datum/say_list/possum
catalogue_data = list(/datum/category_item/catalogue/fauna/opossum)
+ meat_amount = 2
/mob/living/simple_mob/animal/passive/opossum/adjustBruteLoss(var/amount,var/include_robo)
. = ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/bird.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/bird.dm
index c7692b391b2..d7c2bf37dbe 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/bird.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/bird.dm
@@ -23,6 +23,9 @@
softfall = TRUE
parachuting = TRUE
+ meat_amount = 1
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
+
attacktext = list("clawed", "pecked")
speak_emote = list("chirps", "caws")
has_langs = list("Bird")
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm
index 2c203844e38..ea41d429f86 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/cat.dm
@@ -37,6 +37,7 @@ var/list/_cat_default_emotes = list(
movement_cooldown = 0.5 SECONDS
+ meat_amount = 1
see_in_dark = 6 // Not sure if this actually works.
response_help = "pets"
response_disarm = "gently pushes aside"
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm
index f7524b7be41..8fa103a4573 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/fox_vr.dm
@@ -23,7 +23,7 @@
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius
- meat_amount = 1
+ meat_amount = 2
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/fox
say_list_type = /datum/say_list/fox
@@ -184,9 +184,6 @@
set_dir(get_dir(src, friend))
say("Yap!")
*/
-/obj/item/weapon/reagent_containers/food/snacks/meat/fox
- name = "Fox meat"
- desc = "The fox doesn't say a goddamn thing, now."
//Captain fox
/mob/living/simple_mob/animal/passive/fox/renault
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/diyaab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/diyaab.dm
index 5b6312a92f3..b830cbec2b3 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/diyaab.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/diyaab.dm
@@ -29,6 +29,9 @@
maxHealth = 25
health = 25
+ meat_amount = 2
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
movement_cooldown = 0
melee_damage_lower = 2
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm
index 2d0c0b638ef..31b25ee36fc 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm
@@ -32,6 +32,9 @@
movement_cooldown = 0
+ meat_amount = 4
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
+
melee_damage_lower = 2
melee_damage_upper = 10
base_attack_cooldown = 1 SECOND
@@ -57,9 +60,10 @@
. = ..()
var/has_food = FALSE
- for(var/obj/item/I in L.get_contents()) // Do they have food?
- if(istype(I, /obj/item/weapon/reagent_containers/food))
- has_food = TRUE
- break
+ if(isliving(L))
+ for(var/obj/item/I in L.get_contents()) // Do they have food?
+ if(istype(I, /obj/item/weapon/reagent_containers/food))
+ has_food = TRUE
+ break
if(has_food) // Yes? Gimme the food.
return FALSE
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/glitterfly.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/glitterfly.dm
index c8935093a44..1a93754af37 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/glitterfly.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/glitterfly.dm
@@ -56,7 +56,7 @@
tame_items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown = 90,
- /obj/item/weapon/reagent_containers/food/snacks/meat/crab = 10,
+ /obj/item/weapon/reagent_containers/food/snacks/crabmeat = 10,
/obj/item/weapon/reagent_containers/food/snacks/meat = 5
)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hare.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hare.dm
index 0c2eb934aa1..44c6cea6f5b 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hare.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hare.dm
@@ -61,7 +61,7 @@
organ_names = /decl/mob_organ_names/hare
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ meat_amount = 1
say_list_type = /datum/say_list/hare
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm
index 076c19a0661..bdcd9b6179f 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hooligan_crab.dm
@@ -72,7 +72,8 @@
attack_edge = TRUE
melee_attack_delay = 1 SECOND
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/crab
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/crabmeat
+ meat_amount = 6
response_help = "pets"
response_disarm = "gently pushes aside"
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm
index e713433cff4..8023d3a136d 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/kururak.dm
@@ -48,6 +48,7 @@
attacktext = list("gouged", "bit", "cut", "clawed", "whipped")
organ_names = /decl/mob_organ_names/kururak
+ meat_amount = 5
armor = list(
"melee" = 30,
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm
index dd88d811ee6..2ba302bb74c 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/racoon.dm
@@ -40,6 +40,7 @@
melee_damage_upper = 15
base_attack_cooldown = 1 SECOND
attacktext = list("nipped", "bit", "cut", "clawed")
+ meat_amount = 3
armor = list(
"melee" = 15,
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/savik.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/savik.dm
index 5662026f45e..5fa06cd6497 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/savik.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/savik.dm
@@ -48,7 +48,7 @@
tame_items = list(
/obj/item/organ = 70,
- /obj/item/weapon/reagent_containers/food/snacks/meat/crab = 30,
+ /obj/item/weapon/reagent_containers/food/snacks/crabmeat = 30,
/obj/item/weapon/reagent_containers/food/snacks/meat = 20
)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/sif.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/sif.dm
index dab82b850b9..be88baab273 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/sif.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/sif.dm
@@ -5,6 +5,6 @@
heat_resist = -0.5
tame_items = list(
- /obj/item/weapon/reagent_containers/food/snacks/meat/crab = 20,
+ /obj/item/weapon/reagent_containers/food/snacks/crabmeat = 20,
/obj/item/weapon/reagent_containers/food/snacks/meat = 10
)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/alien.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/alien.dm
index d3cda1f22b1..7127b428301 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/alien.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/alien.dm
@@ -31,6 +31,7 @@
attack_sound = 'sound/weapons/bladeslice.ogg'
meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
+ meat_amount = 5
/mob/living/simple_mob/animal/space/alien/drone
name = "alien drone"
@@ -68,7 +69,7 @@
old_x = -16
icon_expected_width = 64
icon_expected_height = 64
- meat_amount = 5
+ meat_amount = 8
/mob/living/simple_mob/animal/space/alien/queen
name = "alien queen"
@@ -84,7 +85,7 @@
projectilesound = 'sound/weapons/pierce.ogg'
- movement_cooldown = 8
+ movement_cooldown = 10
/mob/living/simple_mob/animal/space/alien/queen/empress
name = "alien empress"
@@ -95,7 +96,7 @@
icon_rest = "queen_sleep"
maxHealth = 400
health = 400
- meat_amount = 5
+ meat_amount = 15
pixel_x = -16
old_x = -16
@@ -111,7 +112,7 @@
icon_rest = "empress_rest"
maxHealth = 600
health = 600
- meat_amount = 10
+ meat_amount = 40
melee_damage_lower = 15
melee_damage_upper = 25
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm
index a775c315f9e..595e3557cf6 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/bats.dm
@@ -33,6 +33,7 @@
has_langs = list("Mouse")
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ meat_amount = 2
say_list_type = /datum/say_list/mouse // Close enough
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/bear.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/bear.dm
index e4199373bd6..c9d75869fbb 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/bear.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/bear.dm
@@ -23,6 +23,7 @@
attacktext = list("mauled")
meat_type = /obj/item/weapon/reagent_containers/food/snacks/bearmeat
+ meat_amount = 8
say_list_type = /datum/say_list/bear
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm
index f5a18eb16aa..7b21c428bbc 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/carp.dm
@@ -53,7 +53,7 @@
organ_names = /decl/mob_organ_names/fish
- meat_amount = 1
+ meat_amount = 5
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
ai_holder_type = /datum/ai_holder/simple_mob/melee
@@ -92,7 +92,7 @@
icon_expected_width = 64
icon_expected_height = 32
- meat_amount = 3
+ meat_amount = 7
/mob/living/simple_mob/animal/space/carp/large/huge
@@ -115,7 +115,7 @@
icon_expected_width = 64
icon_expected_height = 64
- meat_amount = 10
+ meat_amount = 15
/mob/living/simple_mob/animal/space/carp/holographic
@@ -156,4 +156,4 @@
..()
derez()
-
+
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/goose.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/goose.dm
index 9f028ed56d6..c4f41bd3ba8 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/goose.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/goose.dm
@@ -25,7 +25,8 @@
has_langs = list("Bird")
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken
+ meat_amount = 3
/datum/say_list/goose
speak = list("HONK!")
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/snake_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/snake_vr.dm
index c30dd4be5ae..e7dea448530 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/snake_vr.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/snake_vr.dm
@@ -3,30 +3,33 @@
desc = "Classification: Reptilia Serpentes\
\
Snakes are elongated, limbless, carnivorous reptiles of the suborder Serpentes \
- Like all other squamates, snakes are ectothermic, amniote vertebrates covered in overlapping scales. \
- Many species of snakes have skulls with several more joints than their lizard ancestors, \
+ Like all other squamates, pythons are ectothermic, amniote vertebrates covered in overlapping scales. \
+ Many species of snake have skulls with several more joints than their lizard ancestors, \
enabling them to swallow prey much larger than their heads with their highly mobile jaws. \
\
- This species of snake is nonvenomous and use their large bodies to primarily subdue their prey. \
+ This type of snake is nonvenomous and use their slender bodies to primarily subdue their prey. \
Nonvenomous snakes either swallow prey alive or kill them by constriction - this is dependant on the prey. \
\
- This specific snake is nonvenomous and is mostly passive - however they will attack if threatened - it is \
- recommended that persons keep their distance as to not provoke these animals."
+ Snakes are mostly passive - however they will attack if threatened - it is recommended that \
+ persons keep their distance as to not provoke these animals."
value = CATALOGUER_REWARD_TRIVIAL
+/*
+ * Green Snake
+ */
/mob/living/simple_mob/animal/passive/snake
name = "snake"
- desc = "A big thick snake."
- tt_desc = "Reptilia Serpentes"
+ desc = "A cute little, green snake. Wiggle wiggle."
+ tt_desc = "E Reptilia Serpentes"
catalogue_data = list(/datum/category_item/catalogue/fauna/snake)
- icon_state = "snake"
- icon_living = "snake"
- icon_dead = "snake_dead"
+ icon_state = "green"
+ icon_living = "green"
+ icon_dead = "green_dead"
icon = 'icons/mob/snake_vr.dmi'
- maxHealth = 20
- health = 20
+ maxHealth = 15
+ health = 15
movement_cooldown = 8 // SLOW-ASS MUTHAFUCKA, I hope.
@@ -34,6 +37,9 @@
response_disarm = "shoos"
response_harm = "kicks"
+ meat_amount = 2
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
melee_damage_lower = 2
melee_damage_upper = 3
attacktext = list("bitten")
@@ -44,17 +50,46 @@
/datum/say_list/snake
emote_hear = list("hisses")
-//NOODLE IS HERE! SQUEEEEEEEE~
-/mob/living/simple_mob/animal/passive/snake/noodle
+/*
+ * Red Snake
+ */
+/mob/living/simple_mob/animal/passive/snake/red
+ desc = "A cute little, red snake. Wiggle wiggle."
+
+ icon_state = "red"
+ icon_living = "red"
+ icon_dead = "red_dead"
+ icon = 'icons/mob/snake_vr.dmi'
+
+/*
+ * Python
+ */
+/mob/living/simple_mob/animal/passive/snake/python
+ name = "python"
+ desc = "A big, thick snake."
+ tt_desc = "E Reptilia Pythonidae"
+
+ icon_state = "python"
+ icon_living = "python"
+ icon_dead = "python_dead"
+ icon = 'icons/mob/snake_vr.dmi'
+
+/*
+ * NOODLE IS HERE! SQUEEEEEEEE~
+ */
+/mob/living/simple_mob/animal/passive/snake/python/noodle
name = "Noodle"
desc = "This snake is particularly chubby and demands nothing but the finest of treats."
+ maxHealth = 20
+ health = 20
+
makes_dirt = FALSE
var/turns_since_scan = 0
var/obj/movement_target
-/mob/living/simple_mob/animal/passive/snake/noodle/Life()
+/mob/living/simple_mob/animal/passive/snake/python/noodle/Life()
..()
//Not replacing with SA FollowTarget mechanics because Ian behaves... very... specifically.
@@ -97,41 +132,7 @@
else if(ishuman(movement_target.loc) && prob(20))
visible_emote("stares at the [movement_target] that [movement_target.loc] has with an unknowable reptilian gaze.")
-/* old eating code, couldn't figure out how to make the "swallows food" thing so I'm keeping this here incase someone wants legacy"
-/mob/living/simple_mob/animal/passive/snake/noodle/Life() //stolen from Ian in corgi.dm
- if(!..())
- return 0
-
- if(!stat && !resting && !buckled && !ai_inactive)
- turns_since_scan++
- if(turns_since_scan > 5)
- turns_since_scan = 0
- if(movement_target && !(isturf(movement_target.loc) || ishuman(movement_target.loc)))
- movement_target = null
- stop_automated_movement = 0
- if(!movement_target || !(movement_target.loc in oview(src, 5)) )
- movement_target = null
- stop_automated_movement = 0
- walk(src,0)
- for(var/obj/item/weapon/reagent_containers/food/snacks/snakesnack/S in oview(src,3))
- if(isturf(S.loc))
- movement_target = S
- visible_emote("turns towards \the [movement_target] and slithers towards it.")
- break
-
- if(movement_target)
- stop_automated_movement = 1
- walk_to(src, movement_target, 0, 5)
- spawn(10)
- if(Adjacent(movement_target))
- visible_message("[src] swallows the [movement_target] whole!")
- qdel(movement_target)
- walk(src,0)
- else if(ishuman(movement_target.loc) && prob(20))
- visible_emote("stares at the [movement_target] that [movement_target.loc] has with an unknowable reptilian gaze.")
-*/
-
-/mob/living/simple_mob/animal/passive/snake/noodle/apply_melee_effects(var/atom/A)
+/mob/living/simple_mob/animal/passive/snake/python/noodle/apply_melee_effects(var/atom/A)
if(ismouse(A))
var/mob/living/simple_mob/animal/passive/mouse/mouse = A
if(mouse.getMaxHealth() < 20) // In case a badmin makes giant mice or something.
@@ -140,14 +141,16 @@
else
..()
-/mob/living/simple_mob/animal/passive/snake/noodle/attackby(var/obj/item/O, var/mob/user)
+/mob/living/simple_mob/animal/passive/snake/python/noodle/attackby(var/obj/item/O, var/mob/user)
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/snakesnack))
visible_message("[user] feeds \the [O] to [src].")
qdel(O)
else
return ..()
-//Special snek-snax for Noodle!
+/*
+ * Special snek-snax for Noodle!
+ */
/obj/item/weapon/reagent_containers/food/snacks/snakesnack
name = "sugar mouse"
desc = "A little mouse treat made of coloured sugar. Noodle loves these!"
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm
index ca5ab5e962e..c2decea8afa 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm
@@ -35,7 +35,7 @@
mob_class = MOB_CLASS_ABERRATION // It's a monster.
- meat_amount = 2
+ meat_amount = 10
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/worm
var/mob/living/simple_mob/animal/space/space_worm/previous //next/previous segments, correspondingly
@@ -370,47 +370,4 @@
if(previous)
previous.update_body_faction()
return 1
- return 0
-
-// Worm meat.
-
-/obj/item/weapon/reagent_containers/food/snacks/meat/worm
- name = "meat"
- desc = "A chunk of pulsating meat."
- icon_state = "wormmeat"
- health = 180
- filling_color = "#551A8B"
- center_of_mass = list("x"=16, "y"=14)
-
-/obj/item/weapon/reagent_containers/food/snacks/meat/worm/Initialize()
- . = ..()
- reagents.add_reagent("protein", 6)
- reagents.add_reagent("phoron", 3)
- reagents.add_reagent("myelamine", 3)
- src.bitesize = 3
-
-/obj/item/weapon/reagent_containers/food/snacks/meat/worm/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(istype(W,/obj/item/weapon/material/knife))
- var/to_spawn = pickweight(/obj/random/junk = 30,
- /obj/random/trash = 30,
- /obj/random/maintenance/clean = 15,
- /obj/random/tool = 15,
- /obj/random/medical = 3,
- /obj/random/bomb_supply = 7,
- /obj/random/contraband = 3,
- /obj/random/unidentified_medicine/old_medicine = 7,
- /obj/item/weapon/strangerock = 3,
- /obj/item/weapon/ore/phoron = 7,
- /obj/random/handgun = 1,
- /obj/random/toolbox = 4,
- /obj/random/drinkbottle = 5
- )
-
- new to_spawn(get_turf(src))
-
- if(prob(20))
- user.visible_message("Something oozes out of \the [src] as it is cut.")
-
- to_chat(user, "You cut the tissue holding the chunks together.")
-
- ..()
+ return 0
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm b/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm
index 76753e8da60..50ee63637ce 100644
--- a/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/plant/tomato.dm
@@ -27,6 +27,7 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee
meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat
+ meat_amount = 4
/decl/mob_organ_names/tomato
hit_zones = list("flesh", "leaf", "mouth")
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm b/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
index 052fdaa196c..be6af537c86 100644
--- a/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/plant/tree.dm
@@ -28,6 +28,7 @@
organ_names = /decl/mob_organ_names/tree
meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
+ meat_amount = 2
pixel_x = -16
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm b/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm
index f39e5dc6667..cac9a79b10a 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/bee.dm
@@ -24,6 +24,9 @@
say_list_type = /datum/say_list/bee
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
+ meat_amount = 5
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat
+
//Space bees aren't affected by atmos.
min_oxy = 0
max_oxy = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm b/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm
index 5b345affac3..b7f02e2833f 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm
@@ -15,6 +15,9 @@
melee_damage_lower = 2
melee_damage_upper = 5
+ meat_amount = 10
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/cookiesnack
+
say_list_type = /datum/say_list/cookiegirl
ai_holder_type = /datum/ai_holder/simple_mob/passive/cookiegirl
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm
index 66e38f6a8f9..9cb2548447e 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm
@@ -41,6 +41,9 @@
melee_damage_lower = 5
melee_damage_upper = 30
+ meat_amount = 8
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
old_x = -16
old_y = 0
default_pixel_x = -16
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dino.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dino.dm
index cae232e051f..96a6d1adc74 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/dino.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/dino.dm
@@ -25,6 +25,9 @@
cold_damage_per_tick = 10
unsuitable_atoms_damage = 10
+ meat_amount = 5
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
//Phoron dragons aren't affected by atmos.
min_oxy = 0
max_oxy = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm
index 660631471bc..dc340247443 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm
@@ -16,6 +16,9 @@
melee_damage_lower = 5
melee_damage_upper = 30
+ meat_amount = 15
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
//Space dragons aren't affected by atmos.
min_oxy = 0
max_oxy = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm
index 5186d76920a..3bb27fa4710 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm
@@ -41,6 +41,9 @@
response_disarm = "gently pushes aside"
response_harm = "hits"
+ meat_amount = 2
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/fox
+
harm_intent_damage = 5
melee_damage_lower = 1
melee_damage_upper = 3
@@ -73,7 +76,7 @@
/mob/living/simple_mob/vore/fennec/huge
icon = 'icons/mob/vore100x100.dmi'
icon_rest = null
-
+
// LORG
maxHealth = 500
health = 500
@@ -89,7 +92,7 @@
old_x = -32
pixel_x = -32
default_pixel_x = -32
-
+
// If you're immune to digestion, they can't digest you anyway!
vore_ignores_undigestable = TRUE
vore_default_mode = DM_DIGEST
@@ -107,7 +110,7 @@
response_help = "pats the paw of"
response_disarm = "somehow shoves aside"
-
+
ai_holder_type = /datum/ai_holder/simple_mob/retaliate/cooperative
var/image/bigshadow
var/autodoom = TRUE
@@ -159,4 +162,3 @@
else
return ..()
return ..()
-
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/fennix.dm b/code/modules/mob/living/simple_mob/subtypes/vore/fennix.dm
index d32a6ee9230..7d16df1049a 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/fennix.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/fennix.dm
@@ -12,6 +12,9 @@
maxHealth = 60
health = 60
+ meat_amount = 5
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/fox
+
response_help = "pats"
response_disarm = "gently pushes aside"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm b/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm
index c6ea3efbc16..076aa3bba10 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm
@@ -1,6 +1,6 @@
/datum/category_item/catalogue/fauna/frog
name = "Wildlife - Giant Frog"
- desc = "Classification: Anura gigantus\
+ desc = "Classification: Anura Gigantus\
\
A frog is any member of a diverse and largely carnivorous group of short-bodied, tailless amphibians composing \
the order Anura. This specific species - Anura gigantus - is a mutated form of Frogs, largely due to exposure to mutagen chemicals. \
@@ -20,7 +20,7 @@
/mob/living/simple_mob/vore/aggressive/frog
name = "giant frog"
desc = "You've heard of having a frog in your throat, now get ready for the reverse."
- tt_desc = "Anura gigantus"
+ tt_desc = "Anura Gigantus"
catalogue_data = list(/datum/category_item/catalogue/fauna/frog)
icon_dead = "frog-dead"
@@ -30,6 +30,9 @@
movement_cooldown = 4 //fast as fucc boie.
+ meat_amount = 4
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
harm_intent_damage = 5
melee_damage_lower = 5
melee_damage_upper = 12
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm b/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm
index b58ebca5aec..481f73a4cd4 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm
@@ -38,7 +38,7 @@
pixel_x = -16
pixel_y = 0
- meat_amount = 10 //Infinite meat!
+ meat_amount = 15 //Infinite meat!
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
max_buckled_mobs = 1 //Yeehaw
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm
index 1245278421a..ae0610fcae1 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm
@@ -23,7 +23,7 @@
melee_damage_upper = 5
attacktext = list("kicked")
- meat_amount = 4
+ meat_amount = 6
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
max_buckled_mobs = 1 //Yeehaw
@@ -49,7 +49,7 @@
melee_damage_upper = 15
attacktext = list("kicked")
- meat_amount = 6
+ meat_amount = 10
old_x = -16
old_y = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm b/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
index 4a843eed80e..329b747f971 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
@@ -9,6 +9,7 @@
icon_state = "morph"
icon_living = "morph"
icon_dead = "morph_dead"
+ icon_rest = null
movement_cooldown = 1
status_flags = CANPUSH
pass_flags = PASSTABLE
@@ -37,8 +38,7 @@
attacktext = "glomped"
attack_sound = 'sound/effects/blobattack.ogg'
- meat_amount = 2
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ meat_amount = 0
showvoreprefs = 0
vore_active = 1
@@ -107,7 +107,7 @@
alpha = max(target.alpha, 150)
copy_overlays(target, TRUE)
our_size_multiplier = size_multiplier
-
+
pixel_x = initial(target.pixel_x)
pixel_y = initial(target.pixel_y)
@@ -118,7 +118,7 @@
icon_scale_x = target.icon_scale_x
icon_scale_y = target.icon_scale_y
update_transform()
-
+
else if(ismob(target))
var/mob/living/M = target
resize(M.size_multiplier, ignore_prefs = TRUE)
@@ -137,10 +137,10 @@
to_chat(src, "You're already in your normal form!")
return
morphed = FALSE
-
+
if(!silent)
visible_message("[src] suddenly collapses in on itself, dissolving into a pile of green flesh!")
-
+
form = null
name = initial(name)
desc = initial(desc)
@@ -161,7 +161,7 @@
density = initial(density)
cut_overlays(TRUE) //ALL of zem
-
+
maptext = null
size_multiplier = our_size_multiplier
@@ -188,6 +188,14 @@
return
return ..()
+/mob/living/simple_mob/vore/hostile/morph/lay_down()
+ if(morphed)
+ var/temp_state = icon_state
+ ..()
+ icon_state = temp_state
+ else
+ ..()
+
/mob/living/simple_mob/vore/hostile/morph/update_icon()
if(morphed)
return
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm
index 16fa33596ab..1d5fc57157d 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm
@@ -16,6 +16,9 @@
movement_cooldown = 4
see_in_dark = 8
+ meat_amount = 8
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
melee_damage_lower = 5
melee_damage_upper = 15
attack_sharp = TRUE
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm
index 13a123531be..a0ab3a9bc12 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm
@@ -32,6 +32,9 @@
say_list_type = /datum/say_list/rabbit
ai_holder_type = /datum/ai_holder/simple_mob/passive
+ meat_amount = 3
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
// Vore vars
vore_active = 1
vore_bump_emote = "playfully lunges at"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm
index fd4837b9555..023dcccd68d 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm
@@ -45,6 +45,9 @@
attacktext = list("ravaged")
friendly = list("nuzzles", "licks", "noses softly at", "noseboops", "headbumps against", "leans on", "nibbles affectionately on")
+ meat_amount = 6
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
old_x = -16
old_y = 0
default_pixel_x = -16
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm b/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm
index fa75b5bc69b..8399dd79fb6 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm
@@ -13,6 +13,9 @@
maxHealth = 30
health = 30
+ meat_amount = 2
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
response_help = "pats"
response_disarm = "gently pushes aside"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/sect_drone.dm b/code/modules/mob/living/simple_mob/subtypes/vore/sect_drone.dm
index 1bfb4a4adea..b3ea3ff373c 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/sect_drone.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/sect_drone.dm
@@ -48,6 +48,9 @@
vore_pounce_chance = 70 // v hongry buggo
vore_icons = SA_ICON_LIVING
+ meat_amount = 4
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat
+
//Beeg bug don't give a fuck about atmos. Something something, phoron mutation.
min_oxy = 0
max_oxy = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/sect_queen.dm b/code/modules/mob/living/simple_mob/subtypes/vore/sect_queen.dm
index d4b5b326d9b..1df71072c28 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/sect_queen.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/sect_queen.dm
@@ -40,6 +40,8 @@
health = 200
see_in_dark = 8
+ meat_amount = 8
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat
melee_damage_lower = 8
melee_damage_upper = 16
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm
index 371fc8d2418..ee27fb1c972 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm
@@ -76,6 +76,8 @@
var/obj/screen/energyhud //Holder to update this icon
var/list/shadekin_abilities
+ var/check_for_observer = FALSE
+ var/check_timer = 0
/mob/living/simple_mob/shadekin/Initialize()
//You spawned the prototype, and want a totally random one.
@@ -86,6 +88,7 @@
/mob/living/simple_mob/shadekin/red = 20, //Actively seek people out to nom, so fairly common to see (relatively speaking),
/mob/living/simple_mob/shadekin/blue = 15, //Explorers that like to interact with people, so still fairly common,
/mob/living/simple_mob/shadekin/purple = 15, //Also explorers that may or may not homf people,
+ /mob/living/simple_mob/shadekin/green = 5,
/mob/living/simple_mob/shadekin/yellow = 1 //Very rare, usually never leaves their home
)
var/new_type = pickweight(sk_types)
@@ -198,7 +201,18 @@
if(. && nutrition > initial(nutrition) && energy < 100)
nutrition = max(0, nutrition-5)
energy = min(100,energy+1)
-
+ if(!client && check_for_observer && check_timer++ > 5)
+ check_timer = 0
+ var/non_kin_count = 0
+ for(var/mob/living/M in view(6,src))
+ if(!istype(M, /mob/living/simple_mob/shadekin))
+ non_kin_count ++
+ // Technically can be combined with ||, they call the same function, but readability is poor
+ if(!non_kin_count && (ability_flags & AB_PHASE_SHIFTED))
+ phase_shift() // shifting back in, nobody present
+ else if (non_kin_count && !(ability_flags & AB_PHASE_SHIFTED))
+ phase_shift() // shifting out, scaredy
+
/mob/living/simple_mob/shadekin/update_icon()
. = ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/types.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/types.dm
index e66162432b2..d09e72aa976 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/types.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/types.dm
@@ -28,6 +28,9 @@
a brawl, but you barely generate any of your own energy. You can stand in a dark spot to gather scraps \
of energy in a pinch, but otherwise need to take it, by force if necessary."
+/mob/living/simple_mob/shadekin/red
+ ai_holder_type = /datum/ai_holder/simple_mob/melee
+
/mob/living/simple_mob/shadekin/red/white
icon_state = "white"
/mob/living/simple_mob/shadekin/red/dark
@@ -35,16 +38,6 @@
/mob/living/simple_mob/shadekin/red/brown
icon_state = "brown"
-/mob/living/simple_mob/shadekin/red/ai
- ai_holder_type = /datum/ai_holder/simple_mob/melee
-
-/mob/living/simple_mob/shadekin/red/ai/white
- icon_state = "white"
-/mob/living/simple_mob/shadekin/red/ai/dark
- icon_state = "dark"
-/mob/living/simple_mob/shadekin/red/ai/brown
- icon_state = "brown"
-
/////////////////////////////////////////////////////////////////
/mob/living/simple_mob/shadekin/blue
name = "blue-eyed shadekin"
@@ -85,6 +78,9 @@
without doing so, albeit slowly. Dark and light are irrelevant to you, they are just different places to explore and \
discover new things and new people."
+/mob/living/simple_mob/shadekin/blue/
+ ai_holder_type = /datum/ai_holder/simple_mob/passive
+
/mob/living/simple_mob/shadekin/blue/white
icon_state = "white"
/mob/living/simple_mob/shadekin/blue/dark
@@ -92,16 +88,6 @@
/mob/living/simple_mob/shadekin/blue/brown
icon_state = "brown"
-/mob/living/simple_mob/shadekin/blue/ai
- ai_holder_type = /datum/ai_holder/simple_mob/passive
-
-/mob/living/simple_mob/shadekin/blue/ai/white
- icon_state = "white"
-/mob/living/simple_mob/shadekin/blue/ai/dark
- icon_state = "dark"
-/mob/living/simple_mob/shadekin/blue/ai/brown
- icon_state = "brown"
-
/////////////////////////////////////////////////////////////////
/mob/living/simple_mob/shadekin/purple
name = "purple-eyed shadekin"
@@ -137,6 +123,9 @@
areas is taxing on your energy. You can harvest energy from others in a fight, but since you don't need to, you may \
just choose to simply not fight."
+/mob/living/simple_mob/shadekin/purple
+ ai_holder_type = /datum/ai_holder/simple_mob/retaliate
+
/mob/living/simple_mob/shadekin/purple/white
icon_state = "white"
/mob/living/simple_mob/shadekin/purple/dark
@@ -144,16 +133,6 @@
/mob/living/simple_mob/shadekin/purple/brown
icon_state = "brown"
-/mob/living/simple_mob/shadekin/purple/ai
- ai_holder_type = /datum/ai_holder/simple_mob/retaliate
-
-/mob/living/simple_mob/shadekin/purple/ai/white
- icon_state = "white"
-/mob/living/simple_mob/shadekin/purple/ai/dark
- icon_state = "dark"
-/mob/living/simple_mob/shadekin/purple/ai/brown
- icon_state = "brown"
-
/////////////////////////////////////////////////////////////////
/mob/living/simple_mob/shadekin/yellow
name = "yellow-eyed shadekin"
@@ -177,6 +156,7 @@
eye_desc = "yellow eyes"
stalker = FALSE
+ check_for_observer = TRUE
vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet \
of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \
as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \
@@ -187,6 +167,9 @@
area is very taxing on you, but you gain energy extremely fast in any very dark area. You're weaker than other \
shadekin, but your fast energy generation in the dark allows you to phase shift more often."
+/mob/living/simple_mob/shadekin/yellow
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/hit_and_run
+
/mob/living/simple_mob/shadekin/yellow/white
icon_state = "white"
/mob/living/simple_mob/shadekin/yellow/dark
@@ -194,24 +177,14 @@
/mob/living/simple_mob/shadekin/yellow/brown
icon_state = "brown"
-/mob/living/simple_mob/shadekin/yellow/ai
- ai_holder_type = /datum/ai_holder/simple_mob/melee/hit_and_run
-
-/mob/living/simple_mob/shadekin/yellow/ai/white
- icon_state = "white"
-/mob/living/simple_mob/shadekin/yellow/ai/dark
- icon_state = "dark"
-/mob/living/simple_mob/shadekin/yellow/ai/brown
- icon_state = "brown"
-
-/mob/living/simple_mob/shadekin/yellow/ai/retaliate
+/mob/living/simple_mob/shadekin/yellow/retaliate
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
-/mob/living/simple_mob/shadekin/yellow/ai/retaliate/white
+/mob/living/simple_mob/shadekin/yellow/retaliate/white
icon_state = "white"
-/mob/living/simple_mob/shadekin/yellow/ai/retaliate/dark
+/mob/living/simple_mob/shadekin/yellow/retaliate/dark
icon_state = "dark"
-/mob/living/simple_mob/shadekin/yellow/ai/retaliate/brown
+/mob/living/simple_mob/shadekin/yellow/retaliate/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
@@ -237,6 +210,7 @@
eye_desc = "green eyes"
stalker = TRUE
+ check_for_observer = TRUE
vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet \
of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \
as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \
@@ -247,6 +221,9 @@
have more experience than your yellow-eyed cousins. You gain energy decently fast in any very dark area. You're weaker than other \
shadekin, but your slight energy generation constnatly, and especially in the dark allows for a good mix of uses."
+/mob/living/simple_mob/shadekin/green
+ ai_holder_type = /datum/ai_holder/simple_mob/passive
+
/mob/living/simple_mob/shadekin/green/white
icon_state = "white"
/mob/living/simple_mob/shadekin/green/dark
@@ -254,16 +231,6 @@
/mob/living/simple_mob/shadekin/green/brown
icon_state = "brown"
-/mob/living/simple_mob/shadekin/green/ai
- ai_holder_type = /datum/ai_holder/simple_mob/passive
-
-/mob/living/simple_mob/shadekin/green/ai/white
- icon_state = "white"
-/mob/living/simple_mob/shadekin/green/ai/dark
- icon_state = "dark"
-/mob/living/simple_mob/shadekin/green/ai/brown
- icon_state = "brown"
-
/////////////////////////////////////////////////////////////////
/mob/living/simple_mob/shadekin/orange
name = "orange-eyed shadekin"
@@ -294,6 +261,9 @@
You're stronger than most shadekin, faster, and more capable in a brawl, but you don't generate much of your own energy. \
You can stand in a dark spot to gather some energy, but otherwise need to take it, by force if necessary."
+/mob/living/simple_mob/shadekin/orange
+ ai_holder_type = /datum/ai_holder/simple_mob/melee
+
/mob/living/simple_mob/shadekin/orange/white
icon_state = "white"
/mob/living/simple_mob/shadekin/orange/dark
@@ -301,22 +271,13 @@
/mob/living/simple_mob/shadekin/orange/brown
icon_state = "brown"
-/mob/living/simple_mob/shadekin/orange/ai
- ai_holder_type = /datum/ai_holder/simple_mob/melee
-
-/mob/living/simple_mob/shadekin/orange/ai/white
- icon_state = "white"
-/mob/living/simple_mob/shadekin/orange/ai/dark
- icon_state = "dark"
-/mob/living/simple_mob/shadekin/orange/ai/brown
- icon_state = "brown"
-
/////////////////////////////////////////////////////////////////
//Fluffy specific fluffer
/mob/living/simple_mob/shadekin/blue/rivyr
name = "Rivyr"
desc = "She appears to be a fluffer of some sort. Deep blue eyes and curious attitude."
icon_state = "rivyr"
+ ai_holder_type = /datum/ai_holder/simple_mob/passive
eye_desc = ""
vore_stomach_flavor = "Blue flesh gleams in the fading light as you slip down the little mar's gullet! \
Gooey flesh and heat surrounds your form as you're tucked away into the darkness of her stomach! Thick slimes cling \
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/sheep.dm b/code/modules/mob/living/simple_mob/subtypes/vore/sheep.dm
index 32ddb75c0a8..b4767b8dea7 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/sheep.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/sheep.dm
@@ -14,6 +14,9 @@
see_in_dark = 2
+ meat_amount = 5
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/snake.dm b/code/modules/mob/living/simple_mob/subtypes/vore/snake.dm
index 651599e3525..8affc4d8949 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/snake.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/snake.dm
@@ -38,6 +38,9 @@
melee_damage_lower = 5
melee_damage_upper = 12
+ meat_amount = 6
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
response_help = "pats"
response_disarm = "tries to shove"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm
index 745db9e5688..ef1aa44b59d 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm
@@ -36,6 +36,7 @@ List of things solar grubs should be able to do:
movement_cooldown = 8
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
+ meat_amount = 6
response_help = "pokes"
response_disarm = "pushes"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm
index f3c200410bf..0589a353912 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm
@@ -16,8 +16,9 @@ var/global/list/grub_machine_overlays = list()
melee_damage_lower = 1 // This is a tiny worm. It will nibble and thats about it.
melee_damage_upper = 1
- meat_amount = 2
+ meat_amount = 1
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
+ butchery_loot = list() // No hides
faction = "grubs"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
index 178dee3cee2..b15a7e0e188 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
@@ -1,18 +1,21 @@
/mob/living/simple_mob/vore
mob_class = MOB_CLASS_ANIMAL
mob_bump_flag = 0
+
+/mob/living/simple_mob
var/nameset
+ var/limit_renames = TRUE
-/mob/living/simple_mob/vore/Login()
+/mob/living/simple_mob/Login()
. = ..()
- verbs |= /mob/living/simple_mob/vore/proc/set_name
- verbs |= /mob/living/simple_mob/vore/proc/set_desc
+ verbs |= /mob/living/simple_mob/proc/set_name
+ verbs |= /mob/living/simple_mob/proc/set_desc
-/mob/living/simple_mob/vore/proc/set_name()
+/mob/living/simple_mob/proc/set_name()
set name = "Set Name"
set desc = "Sets your mobs name. You only get to do this once."
set category = "Abilities"
- if(nameset)
+ if(limit_renames && nameset)
to_chat(src, "You've already set your name. Ask an admin to toggle \"nameset\" to 0 if you really must.")
return
var/newname
@@ -22,7 +25,7 @@
voice_name = newname
nameset = 1
-/mob/living/simple_mob/vore/proc/set_desc()
+/mob/living/simple_mob/proc/set_desc()
set name = "Set Description"
set desc = "Set your description."
set category = "Abilities"
@@ -32,4 +35,4 @@
desc = newdesc
/mob/living/simple_mob/vore/aggressive
- mob_bump_flag = HEAVY
\ No newline at end of file
+ mob_bump_flag = HEAVY
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
index 8c4d7b14df3..31b057ef45c 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
@@ -25,6 +25,9 @@
melee_damage_lower = 5
melee_damage_upper = 12
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ meat_amount = 5
+
minbodytemp = 200
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 92e9d7f1034..67466f350d2 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -365,6 +365,45 @@
var/choice = tgui_alert(usr, "Returning to the menu will prevent your character from being revived in-round. Are you sure?", "Confirmation", list("No, wait", "Yes, leave"))
if(choice == "No, wait")
return
+ else if(mind.assigned_role)
+ var/extra_check = tgui_alert(usr, "Do you want to Quit This Round before you return to lobby? This will properly remove you from manifest, as well as prevent resleeving.","Quit This Round",list("Quit Round","Cancel"))
+ if(extra_check == "Quit Round")
+ //Update any existing objectives involving this mob.
+ for(var/datum/objective/O in all_objectives)
+ if(O.target == src.mind)
+ if(O.owner && O.owner.current)
+ to_chat(O.owner.current,"You get the feeling your target is no longer within your reach...")
+ qdel(O)
+
+ //Resleeving cleanup
+ if(mind)
+ SStranscore.leave_round(src)
+
+ //Job slot cleanup
+ var/job = src.mind.assigned_role
+ job_master.FreeRole(job)
+
+ //Their objectives cleanup
+ if(src.mind.objectives.len)
+ qdel(src.mind.objectives)
+ src.mind.special_role = null
+
+ //Cut the PDA manifest (ugh)
+ if(PDA_Manifest.len)
+ PDA_Manifest.Cut()
+ for(var/datum/data/record/R in data_core.medical)
+ if((R.fields["name"] == src.real_name))
+ qdel(R)
+ for(var/datum/data/record/T in data_core.security)
+ if((T.fields["name"] == src.real_name))
+ qdel(T)
+ for(var/datum/data/record/G in data_core.general)
+ if((G.fields["name"] == src.real_name))
+ qdel(G)
+
+ //This removes them from being 'active' list on join screen
+ src.mind.assigned_role = null
+ to_chat(src,"Your job has been free'd up, and you can rejoin as another character or quit. Thanks for properly quitting round, it helps the server!")
// Beyond this point, you're going to respawn
to_chat(usr, config.respawn_message)
diff --git a/code/modules/mob/new_player/new_player_vr.dm b/code/modules/mob/new_player/new_player_vr.dm
index 71abc1ddf15..fdbbcb10d0e 100644
--- a/code/modules/mob/new_player/new_player_vr.dm
+++ b/code/modules/mob/new_player/new_player_vr.dm
@@ -72,4 +72,4 @@
//Final popup notice
if (!pass)
tgui_alert_async(src,"There were problems with spawning your character. Check your message log for details.","Error")
- return pass
+ return pass
\ No newline at end of file
diff --git a/code/modules/mob/new_player/sprite_accessories_ear.dm b/code/modules/mob/new_player/sprite_accessories_ear.dm
index 0daf9be98d0..9abd218dc4f 100644
--- a/code/modules/mob/new_player/sprite_accessories_ear.dm
+++ b/code/modules/mob/new_player/sprite_accessories_ear.dm
@@ -345,14 +345,7 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
-/datum/sprite_accessory/ears/elfs2
- name = "pointed ears"
- desc = ""
- icon_state = "ears_pointy"
- do_colouration = 1
- species_allowed = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
-
-/datum/sprite_accessory/ears/elfs
+/datum/sprite_accessory/ears/elfs1
name = "pointed ears (tall)"
desc = ""
icon_state = "elfs"
@@ -360,6 +353,13 @@
color_blend_mode = ICON_MULTIPLY
species_allowed = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
+/datum/sprite_accessory/ears/elfs2
+ name = "pointed ears"
+ desc = ""
+ icon_state = "ears_pointy"
+ do_colouration = 1
+ species_allowed = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
+
/datum/sprite_accessory/ears/elfs3
name = "pointed ears (down)"
desc = ""
diff --git a/code/modules/mob/new_player/sprite_accessories_ear_vr.dm b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
index 778371e790b..51a43afb88a 100644
--- a/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
@@ -34,9 +34,11 @@
/datum/sprite_accessory/ears/taj_ears
name = "tajaran, colorable (old)"
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
/datum/sprite_accessory/ears/taj_ears_tall
name = "tajaran tall, colorable (old)"
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
/datum/sprite_accessory/ears/alt_ram_horns
name = "Solid ram horns"
@@ -377,6 +379,21 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
+/datum/sprite_accessory/ears/elfs1
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
+
+/datum/sprite_accessory/ears/elfs2
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
+
+/datum/sprite_accessory/ears/elfs3
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
+
+/datum/sprite_accessory/ears/elfs4
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
+
+/datum/sprite_accessory/ears/elfs5
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
+
/datum/sprite_accessory/ears/sleek
name = "sleek ears"
desc = ""
@@ -772,3 +789,12 @@
extra_overlay2 = "teppi_horns"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
+
+/datum/sprite_accessory/ears/jackalope
+ name = "Jackalope Ears and Antlers"
+ desc = ""
+ icon = 'icons/mob/vore/ears_32x64.dmi'
+ icon_state = "jackalope"
+ extra_overlay = "jackalope-antlers"
+ do_colouration = 1
+ color_blend_mode = ICON_MULTIPLY
diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm
index 2d772b44ae6..1b2a862ae38 100644
--- a/code/modules/mob/new_player/sprite_accessories_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_vr.dm
@@ -91,14 +91,14 @@
name = "Bald"
icon_state = "bald"
gender = MALE
- species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST) //Lets all the races be bald if they want.
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //Lets all the races be bald if they want.
/datum/sprite_accessory/hair/ponytail6_fixed
name = "Ponytail 6 but fixed"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_ponytail6"
- species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_NEVREAN, SPECIES_AKULA,SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST)
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_NEVREAN, SPECIES_AKULA,SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
/datum/sprite_accessory/hair/una_hood
name = "Cobra Hood"
@@ -466,20 +466,20 @@
/datum/sprite_accessory/facial_hair
icon = 'icons/mob/human_face_or_vr.dmi'
color_blend_mode = ICON_MULTIPLY
- species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST) //This lets all races use the facial hair styles.
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use the facial hair styles.
/datum/sprite_accessory/facial_hair/shaved
name = "Shaved"
icon_state = "bald"
gender = NEUTER
- species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST) //This needed to be manually defined, apparantly.
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This needed to be manually defined, apparantly.
/datum/sprite_accessory/facial_hair/neck_fluff
name = "Neck Fluff"
icon = 'icons/mob/human_face_or_vr.dmi'
icon_state = "facial_neckfluff"
gender = NEUTER
- species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST)
+ species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
/datum/sprite_accessory/facial_hair/vulp_none
name = "None"
diff --git a/code/modules/multiz/ladder_assembly_vr.dm b/code/modules/multiz/ladder_assembly_vr.dm
index 49f765225ac..44fdcc0c821 100644
--- a/code/modules/multiz/ladder_assembly_vr.dm
+++ b/code/modules/multiz/ladder_assembly_vr.dm
@@ -4,7 +4,7 @@
/obj/structure/ladder_assembly
name = "ladder assembly"
- icon = 'icons/obj/structures.dmi'
+ icon = 'icons/obj/structures_vr.dmi'
icon_state = "ladder00"
density = FALSE
opacity = 0
diff --git a/code/modules/multiz/ladders.dm b/code/modules/multiz/ladders.dm
index b4626022bb7..0f9edf04c88 100644
--- a/code/modules/multiz/ladders.dm
+++ b/code/modules/multiz/ladders.dm
@@ -33,6 +33,13 @@
target_up = null
return ..()
+/obj/structure/ladder/attack_generic(mob/user)
+ //Simple Animal
+ if(isanimal(user))
+ attack_hand(user)
+ else
+ return ..()
+
/obj/structure/ladder/attackby(obj/item/C as obj, mob/user as mob)
attack_hand(user)
return
diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm
index 69ea1051f0e..f4fb3ffef87 100644
--- a/code/modules/multiz/movement.dm
+++ b/code/modules/multiz/movement.dm
@@ -59,7 +59,7 @@
if(lattice)
var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1)
to_chat(src, "You grab \the [lattice] and start pulling yourself upward...")
- destination.audible_message("You hear something climbing up \the [lattice].", runemessage = "clank clang")
+ src.audible_message("[src] begins climbing up \the [lattice].", runemessage = "clank clang")
if(do_after(src, pull_up_time))
to_chat(src, "You pull yourself up.")
else
@@ -74,14 +74,14 @@
if(!destination?.Enter(src, old_dest))
to_chat(src, "There's something in the way up above in that direction, try another.")
return 0
- destination.audible_message("You hear something climbing up \the [catwalk].", runemessage = "clank clang")
+ src.audible_message("[src] begins climbing up \the [lattice].", runemessage = "clank clang")
if(do_after(src, pull_up_time))
to_chat(src, "You pull yourself up.")
else
to_chat(src, "You gave up on pulling yourself up.")
return 0
- else if(ismob(src)) //VOREStation Edit Start. Are they a mob, and are they currently flying??
+ else if(isliving(src)) //VOREStation Edit Start. Are they a mob, and are they currently flying??
var/mob/living/H = src
if(H.flying)
if(H.incapacitated(INCAPACITATION_ALL))
@@ -90,7 +90,6 @@
return 0
var/fly_time = max(7 SECONDS + (H.movement_delay() * 10), 1) //So it's not too useful for combat. Could make this variable somehow, but that's down the road.
to_chat(src, "You begin to fly upwards...")
- destination.audible_message("You hear the flapping of wings.", runemessage = "flap flap")
H.audible_message("[H] begins to flap \his wings, preparing to move upwards!", runemessage = "flap flap")
if(do_after(H, fly_time) && H.flying)
to_chat(src, "You fly upwards.")
@@ -111,6 +110,11 @@
return 0
if(!Move(destination))
return 0
+ if(isliving(src))
+ if(direction == UP)
+ src.audible_message("[src] moves up.")
+ else if(direction == DOWN)
+ src.audible_message("[src] moves down.")
return 1
/mob/proc/can_overcome_gravity()
diff --git a/code/modules/multiz/stairs.dm b/code/modules/multiz/stairs.dm
index 6a85c301fe6..5ce4b2ec264 100644
--- a/code/modules/multiz/stairs.dm
+++ b/code/modules/multiz/stairs.dm
@@ -392,7 +392,7 @@
/obj/structure/stairs/top/Uncrossed(var/atom/movable/AM)
// Going down stairs from the topstair piece
- if(AM.dir == turn(dir, 180) && check_integrity())
+ if(AM.dir == turn(dir, 180) && isturf(AM.loc) && check_integrity())
use_stairs_instant(AM)
return
diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm
index 6dc40db443e..7b14f13e72c 100644
--- a/code/modules/nifsoft/nif.dm
+++ b/code/modules/nifsoft/nif.dm
@@ -28,6 +28,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable
var/durability = 100 // Durability remaining
var/bioadap = FALSE // If it'll work in fancy species
+ var/gib_nodrop = FALSE // NIF self-destructs when owner is gibbed
var/tmp/power_usage = 0 // Nifsoft adds to this
var/tmp/mob/living/carbon/human/human // Our owner!
@@ -613,6 +614,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable
desc = "A NIF that is part of a protean's body structure. Where did you get that anyway?"
durability = 25
bioadap = TRUE
+ gib_nodrop = TRUE
////////////////////////////////
// Special Promethean """surgery"""
diff --git a/code/modules/overmap/overmap_object.dm b/code/modules/overmap/overmap_object.dm
index ad5bf60dd2e..ad87d50e8b4 100644
--- a/code/modules/overmap/overmap_object.dm
+++ b/code/modules/overmap/overmap_object.dm
@@ -23,7 +23,7 @@
/// For showing to the pilot of the ship, so they see the 'real' appearance, despite others seeing the unknown ones
var/image/real_appearance
- light_system = MOVABLE_LIGHT
+ //light_system = MOVABLE_LIGHT
light_on = FALSE
/obj/effect/overmap/Initialize()
diff --git a/code/modules/overmap/ships/computers/sensors.dm b/code/modules/overmap/ships/computers/sensors.dm
index 9a1c0fb1151..e09678f9b0f 100644
--- a/code/modules/overmap/ships/computers/sensors.dm
+++ b/code/modules/overmap/ships/computers/sensors.dm
@@ -66,7 +66,7 @@
else
data["status"] = "OK"
var/list/contacts = list()
- for(var/obj/effect/overmap/O in view(7,linked))
+ for(var/obj/effect/overmap/O in range(7,linked))
if(linked == O)
continue
if(!O.scannable)
@@ -125,10 +125,9 @@
return
if(sensors && sensors.use_power && sensors.powered())
var/sensor_range = round(sensors.range*1.5) + 1
- linked.set_light_range(sensor_range + 0.5)
- linked.set_light_on(TRUE)
+ linked.set_light(sensor_range + 0.5)
else
- linked.set_light_on(FALSE)
+ linked.set_light(0)
/obj/machinery/shipsensors
name = "sensors suite"
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 95bcda3b36b..f79848de565 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -580,11 +580,20 @@
return
else if(istype(P, /obj/item/weapon/stamp) || istype(P, /obj/item/clothing/gloves/ring/seal))
+ if(istype(P, /obj/item/weapon/stamp))
+ var/obj/item/weapon/stamp/the_stamp = P
+ if(the_stamp.stamptext)
+ stamps += (stamps=="" ? "
" : "
") + "[the_stamp.stamptext]"
+ else
+ stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [the_stamp.name]."
+ else
+ var/obj/item/clothing/gloves/ring/seal/the_stamp = P
+ if(the_stamp.stamptext)
+ stamps += (stamps=="" ? "
" : "
") + "[the_stamp.stamptext]"
+ else
+ stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [the_stamp.name]."
if((!in_range(src, usr) && loc != user && !( istype(loc, /obj/item/weapon/clipboard) ) && loc.loc != user && user.get_active_hand() != P))
return
-
- stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [P.name]."
-
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
var/x, y
if(istype(P, /obj/item/weapon/stamp/captain) || istype(P, /obj/item/weapon/stamp/centcomm))
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index be60632186b..c2d610f3556 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -14,6 +14,7 @@
attack_verb = list("stamped")
drop_sound = 'sound/items/drop/device.ogg'
pickup_sound = 'sound/items/pickup/device.ogg'
+ var/stamptext = null
/obj/item/weapon/stamp/captain
name = "site manager's rubber stamp"
diff --git a/code/modules/persistence/datum/persistence_datum.dm b/code/modules/persistence/datum/persistence_datum.dm
index 325ff15ceda..14d813406d9 100644
--- a/code/modules/persistence/datum/persistence_datum.dm
+++ b/code/modules/persistence/datum/persistence_datum.dm
@@ -71,7 +71,7 @@
return
var/_z = token["z"]
- if(_z in using_map.station_levels)
+ if(_z in using_map.persist_levels)
. = GetValidTurf(locate(token["x"], token["y"], _z), token)
if(.)
CreateEntryInstance(., token)
@@ -82,7 +82,7 @@
if(GetEntryAge(entry) >= entries_expire_at)
return FALSE
var/turf/T = get_turf(entry)
- if(!T || !(T.z in using_map.station_levels) )
+ if(!T || !(T.z in using_map.persist_levels) )
return FALSE
var/area/A = get_area(T)
if(!A || (A.flags & AREA_FLAG_IS_NOT_PERSISTENT))
@@ -104,7 +104,7 @@
/datum/persistent/proc/Shutdown()
if(fexists(filename))
fdel(filename)
-
+
var/list/to_store = list()
for(var/thing in SSpersistence.tracking_values[type])
if(!IsValidEntry(thing))
@@ -121,10 +121,10 @@
var/list/my_tracks = SSpersistence.tracking_values[type]
if(!my_tracks?.len)
return
-
+
. = list("| [capitalize(name)] |
")
. += "
|
"
-
+
for(var/thing in my_tracks)
. += "[GetAdminDataStringFor(thing, can_modify, user)]
"
. += "
|
"
diff --git a/code/modules/persistence/storage/smartfridge.dm b/code/modules/persistence/storage/smartfridge.dm
index 9978168c65f..a47099f3282 100644
--- a/code/modules/persistence/storage/smartfridge.dm
+++ b/code/modules/persistence/storage/smartfridge.dm
@@ -52,11 +52,11 @@
// Delete some stacks if we want
if(stacks_go_missing)
var/fuzzy = rand(55,65)*0.01 // loss of 35-45% with rounding down
- count = round(count*fuzzy)
+ count = round(count*fuzzy)
if(count <= 0)
continue
-
- while(count > 0)
+
+ while(count > 0)
inst = new real_path(null, min(count, max_amount))
count -= inst.get_amount()
. += inst
@@ -72,6 +72,16 @@
name = "fruit storage lossy"
go_missing_chance = 12.5 // 10% loss between rounds
+/datum/persistent/storage/smartfridge/produce/generate_items(var/list/L) // Mostly same as storage/generate_items() but without converting string to path
+ . = list()
+ for(var/fruit_type in L)
+ for(var/i in 1 to L[fruit_type])
+ if(prob(go_missing_chance))
+ continue
+ var/atom/A = create_item(fruit_type)
+ if(!QDELETED(A))
+ . += A
+
/datum/persistent/storage/smartfridge/produce/create_item(var/seedtype)
return new /obj/item/weapon/reagent_containers/food/snacks/grown(null, seedtype) // Smartfridge will be stock()ed with it, loc is unimportant
diff --git a/code/modules/power/singularity/particle_accelerator/particle_smasher.dm b/code/modules/power/singularity/particle_accelerator/particle_smasher.dm
index 938f9b69345..77c0858606d 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_smasher.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_smasher.dm
@@ -2,6 +2,9 @@
* Contains the particle smasher and its recipes.
*/
+#define PS_RESULT_STACK "stack"
+#define PS_RESULT_ITEM "item"
+
/obj/machinery/particle_smasher
name = "Particle Focus"
desc = "A strange device used to create exotic matter."
@@ -190,7 +193,7 @@
var/max_prob = 0
for(var/datum/particle_smasher_recipe/R in recipes) // Only things for the smasher. Don't get things like the chef's cake recipes.
if(R.probability) // It's actually a recipe you're supposed to be able to make.
- if(istype(target, R.required_material))
+ if(!(R.required_material) || istype(target, R.required_material))
if(energy >= R.required_energy_min && energy <= R.required_energy_max) // The machine has enough Vaguely Defined 'Energy'.
var/turf/T = get_turf(src)
var/datum/gas_mixture/environment = T.return_air()
@@ -234,8 +237,11 @@
break
var/result = recipe.result
- var/obj/item/stack/material/M = new result(src)
- target = M
+ if(recipe.recipe_type == PS_RESULT_STACK)
+ var/obj/item/stack/material/M = new result(src)
+ target = M
+ else if(recipe.recipe_type == PS_RESULT_ITEM)
+ new result(get_turf(src))
update_icon()
/obj/machinery/particle_smasher/verb/eject_contents()
@@ -266,6 +272,7 @@
/datum/particle_smasher_recipe
var/list/reagents // example: = list("pacid" = 5)
var/list/items // example: = list(/obj/item/weapon/tool/crowbar, /obj/item/weapon/welder) Place /foo/bar before /foo. Do not include fruit. Maximum of 3 items.
+ var/recipe_type = PS_RESULT_STACK // Are we producing a stack or an item?
var/result = /obj/item/stack/material/iron // The sheet this will produce.
var/required_material = /obj/item/stack/material/iron // The required material sheet.
@@ -378,4 +385,35 @@
required_atmos_temp_min = 3000
required_atmos_temp_max = 10000
- probability = 1
\ No newline at end of file
+ probability = 1
+
+/datum/particle_smasher_recipe/donkpockets_coal
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket)
+
+ recipe_type = PS_RESULT_ITEM
+
+ result = /obj/item/weapon/ore/coal
+ required_material = null
+
+ required_energy_min = 1
+ required_energy_max = 500
+
+ required_atmos_temp_min = 400
+ required_atmos_temp_max = 20000
+ probability = 90
+
+/datum/particle_smasher_recipe/donkpockets_ascend
+ items = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket)
+ reagents = list("phoron" = 120)
+
+ recipe_type = PS_RESULT_ITEM
+
+ result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket/ascended
+ required_material = /obj/item/stack/material/uranium
+
+ required_energy_min = 501
+ required_energy_max = 700
+
+ required_atmos_temp_min = 400
+ required_atmos_temp_max = 20000
+ probability = 20
\ No newline at end of file
diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm
index dae8941e8c1..b346e59d946 100644
--- a/code/modules/power/smes_construction.dm
+++ b/code/modules/power/smes_construction.dm
@@ -139,6 +139,9 @@
if(panel_open)
wires.Interact(usr)
+/obj/machinery/power/smes/buildable/RefreshParts()
+ recalc_coils()
+
// Proc: recalc_coils()
// Parameters: None
// Description: Updates properties (IO, capacity, etc.) of this SMES by checking internal components.
diff --git a/code/modules/projectiles/guns/energy/bsharpoon_vr.dm b/code/modules/projectiles/guns/energy/bsharpoon_vr.dm
index 005741bfe41..5b7b906e3c6 100644
--- a/code/modules/projectiles/guns/energy/bsharpoon_vr.dm
+++ b/code/modules/projectiles/guns/energy/bsharpoon_vr.dm
@@ -18,6 +18,7 @@
var/transforming = 0
var/failure_chance = 15 // This can become negative with part tiers above 3, which helps offset penalties
var/obj/item/weapon/stock_parts/scanning_module/scanmod
+ var/dropnoms_active = TRUE
/obj/item/weapon/bluespace_harpoon/Initialize()
. = ..()
@@ -26,6 +27,8 @@
/obj/item/weapon/bluespace_harpoon/examine(var/mob/user)
. = ..()
+ . += "It is currently in [mode ? "transmitting" : "recieving"] mode."
+ . += "Spatial rearrangement is [dropnoms_active ? "active" : "inactive"]."
if(Adjacent(user))
. += "It has [scanmod ? scanmod : "no scanner module"] installed."
@@ -80,7 +83,7 @@
playsound(src, 'sound/weapons/wave.ogg', 60, 1)
return
var/turf/T = get_turf(A)
- if(!T || (T.check_density() && mode == 1))
+ if(!T || (T.check_density(ignore_mobs = TRUE) && mode == 1))
to_chat(user,"That's a little too solid to harpoon into!")
return
var/turf/ownturf = get_turf(src)
@@ -118,12 +121,47 @@
for(var/rider in L.buckled_mobs)
sendfailchance += 15
+ var/mob/living/living_user = user
+ var/can_dropnom = TRUE
+ if(!dropnoms_active || !istype(living_user))
+ can_dropnom = FALSE
+
if(mode)
if(user in FromTurf)
if(prob(sendfailchance))
user.forceMove(pick(trange(24,user)))
else
user.forceMove(ToTurf)
+ var/vore_happened = FALSE
+ if(can_dropnom && living_user.can_be_drop_pred)
+ var/obj/belly/belly_dest
+ if(living_user.vore_selected)
+ belly_dest = living_user.vore_selected
+ else if(living_user.vore_organs.len)
+ belly_dest = pick(living_user.vore_organs)
+ if(belly_dest)
+ for(var/mob/living/prey in ToTurf)
+ if(prey != user && prey.can_be_drop_prey)
+ prey.forceMove(belly_dest)
+ vore_happened = TRUE
+ to_chat(prey, "[living_user] materializes around you, as you end up in their [belly_dest]!")
+ to_chat(living_user, "You materialize around [prey] as they end up in your [belly_dest]!")
+ if(can_dropnom && !vore_happened && living_user.can_be_drop_prey)
+ var/mob/living/pred
+ for(var/mob/living/potential_pred in ToTurf)
+ if(potential_pred != user && potential_pred.can_be_drop_pred)
+ pred = potential_pred
+ if(pred)
+ var/obj/belly/belly_dest
+ if(pred.vore_selected)
+ belly_dest = pred.vore_selected
+ else if(pred.vore_organs.len)
+ belly_dest = pick(pred.vore_organs)
+ if(belly_dest)
+ living_user.forceMove(belly_dest)
+ to_chat(pred, "[living_user] materializes inside you as they end up in your [belly_dest]!")
+ to_chat(living_user, "You materialize inside [pred] as you end up in their [belly_dest]!")
+
else
for(var/obj/O in FromTurf)
if(O.anchored) continue
@@ -132,25 +170,58 @@
else
O.forceMove(ToTurf)
+ var/user_vored = FALSE
+
for(var/mob/living/M in FromTurf)
if(prob(recievefailchance))
M.forceMove(pick(trange(24,user)))
else
M.forceMove(ToTurf)
+ if(can_dropnom && living_user.can_be_drop_pred && M.can_be_drop_prey)
+ var/obj/belly/belly_dest
+ if(living_user.vore_selected)
+ belly_dest = living_user.vore_selected
+ else if(living_user.vore_organs.len)
+ belly_dest = pick(living_user.vore_organs)
+ if(belly_dest)
+ M.forceMove(belly_dest)
+ to_chat(living_user, "[M] materializes inside you as they end up in your [belly_dest]!")
+ to_chat(M, "You materialize inside [living_user] as you end up in their [belly_dest]!")
+ else if(can_dropnom && living_user.can_be_drop_prey && M.can_be_drop_pred && !user_vored)
+ var/obj/belly/belly_dest
+ if(M.vore_selected)
+ belly_dest = M.vore_selected
+ else if(M.vore_organs.len)
+ belly_dest = pick(M.vore_organs)
+ if(belly_dest)
+ living_user.forceMove(belly_dest)
+ user_vored = TRUE
+ to_chat(living_user, "[M] materializes around you, as you end up in their [belly_dest]!")
+ to_chat(M, "You materialize around [living_user] as they end up in your [belly_dest]!")
+
/obj/item/weapon/bluespace_harpoon/attack_self(mob/living/user as mob)
return chande_fire_mode(user)
/obj/item/weapon/bluespace_harpoon/verb/chande_fire_mode(mob/user as mob)
- set name = "Change fire mode"
+ set name = "Change Fire Mode"
set category = "Object"
- set src in oview(1)
+ set src in range(0)
+
if(transforming) return
mode = !mode
transforming = 1
to_chat(user,"You change \the [src]'s mode to [mode ? "transmiting" : "receiving"].")
update_icon()
+/obj/item/weapon/bluespace_harpoon/verb/chande_dropnom_mode(mob/user as mob)
+ set name = "Toggle Spatial Rearrangement"
+ set category = "Object"
+ set src in range(0)
+
+ dropnoms_active = !dropnoms_active
+ to_chat(user,"You switch \the [src]'s spatial rearrangement [dropnoms_active ? "on" : "off"]. (Telenoms [dropnoms_active ? "enabled" : "dsiabled"])")
+
/obj/item/weapon/bluespace_harpoon/update_icon()
if(transforming)
switch(mode)
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
index 59e006124bb..311c7e753ba 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
@@ -191,7 +191,7 @@
/obj/item/weapon/gun/energy/kinetic_accelerator/proc/empty()
if(power_supply)
power_supply.use(power_supply.charge)
- update_icon()
+ update_icon()
/obj/item/weapon/gun/energy/kinetic_accelerator/proc/attempt_reload(recharge_time)
if(!power_supply)
@@ -223,7 +223,7 @@
/obj/item/weapon/gun/energy/kinetic_accelerator/update_icon()
cut_overlays()
- if(overheat || (power_supply.charge == 0))
+ if(overheat || !power_supply || (power_supply.charge == 0))
add_overlay(emptystate)
#define KA_ENVIRO_TYPE_COLD 0
@@ -273,6 +273,7 @@
else if(environment == KA_ENVIRO_TYPE_OFFSITE)
if(!offsite_environment_check(get_turf(src)))
name = "nullified [name]"
+ nodamage = TRUE
damage = 0
pressure_decrease_active = TRUE
return ..()
@@ -292,6 +293,7 @@
else if(environment == KA_ENVIRO_TYPE_OFFSITE)
if(!offsite_environment_check(get_turf(src)))
name = "nullified [name]"
+ nodamage = TRUE
damage = 0
pressure_decrease_active = TRUE
return ..()
@@ -323,6 +325,7 @@
else if(environment == KA_ENVIRO_TYPE_OFFSITE)
if(!offsite_environment_check(get_turf(src)))
name = "nullified [name]"
+ nodamage = TRUE
damage = 0
pressure_decrease_active = TRUE
var/turf/target_turf = get_turf(target)
@@ -546,7 +549,7 @@
//Tendril-unique modules
/obj/item/borg/upgrade/modkit/cooldown/repeater
name = "rapid repeater"
- desc = "Quarters the kinetic accelerator's cooldown on striking a living target, but greatly increases the base cooldown."
+ desc = "Quarters the kinetic accelerator's cooldown on striking a living or mineral target, but greatly increases the base cooldown."
denied_type = /obj/item/borg/upgrade/modkit/cooldown/repeater
modifier = -14 //Makes the cooldown 3 seconds(with no cooldown mods) if you miss. Don't miss.
cost = 50
@@ -654,9 +657,11 @@
name = "offsite pressure modulator"
desc = "A non-standard modification kit that increases the damage a kinetic accelerator does in pressurized environments, \
in exchange for nullifying any projected forces while on or in an associated facility."
+ denied_type = /obj/item/borg/upgrade/modkit/heater
+ maximum_of_type = 1
cost = 35
-/obj/item/borg/upgrade/modkit/indoors/offsite/modify_projectile(obj/item/projectile/kinetic/K)
+/obj/item/borg/upgrade/modkit/offsite/modify_projectile(obj/item/projectile/kinetic/K)
K.environment = KA_ENVIRO_TYPE_OFFSITE
// Atmospheric
@@ -664,7 +669,7 @@
name = "temperature modulator"
desc = "A remarkably unusual modification kit that makes kinetic accelerators more usable in hot, overpressurized environments, \
in exchange for making them weak elsewhere, like the cold or in space."
- denied_type = /obj/item/borg/upgrade/modkit/indoors
+ denied_type = /obj/item/borg/upgrade/modkit/offsite
maximum_of_type = 1
cost = 10
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 0ea7871e30b..f236ed29844 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -47,7 +47,9 @@
modifystate = "floramut"
cell_type = /obj/item/weapon/cell/device/weapon/recharge
battery_lock = 1
+
var/decl/plantgene/gene = null
+ var/obj/item/weapon/stock_parts/micro_laser/emitter
firemodes = list(
list(mode_name="induce mutations", projectile_type=/obj/item/projectile/energy/floramut, modifystate="floramut"),
@@ -55,8 +57,42 @@
list(mode_name="induce specific mutations", projectile_type=/obj/item/projectile/energy/floramut/gene, modifystate="floramut"),
)
+/obj/item/weapon/gun/energy/floragun/Initialize()
+ . = ..()
+ emitter = new(src)
+
+/obj/item/weapon/gun/energy/floragun/examine(var/mob/user)
+ . = ..()
+ if(Adjacent(user))
+ . += "It has [emitter ? emitter : "no micro laser"] installed."
+
+/obj/item/weapon/gun/energy/floragun/attackby(obj/item/W, mob/user)
+ if(istype(W, /obj/item/weapon/stock_parts/micro_laser))
+ if(!emitter)
+ user.drop_item()
+ W.loc = src
+ emitter = W
+ to_chat(user, "You install a [emitter.name] in [src].")
+ else
+ to_chat(user, "[src] already has a laser.")
+
+ else if(W.is_screwdriver())
+ if(emitter)
+ to_chat(user, "You remove the [emitter.name] from the [src].")
+ emitter.loc = get_turf(src.loc)
+ playsound(src, W.usesound, 50, 1)
+ emitter = null
+ return
+ else
+ to_chat(user, "There is no micro laser in this [src].")
+ return
+
/obj/item/weapon/gun/energy/floragun/afterattack(obj/target, mob/user, adjacent_flag)
//allow shooting into adjacent hydrotrays regardless of intent
+ if(!emitter)
+ to_chat(user, "The [src] has no laser! ")
+ playsound(src, 'sound/weapons/empty.ogg', 50, 1)
+ return
if(adjacent_flag && istype(target,/obj/machinery/portable_atmospherics/hydroponics))
user.visible_message("\The [user] fires \the [src] into \the [target]!")
Fire(target,user)
@@ -82,8 +118,16 @@
/obj/item/weapon/gun/energy/floragun/consume_next_projectile()
. = ..()
var/obj/item/projectile/energy/floramut/gene/G = .
+ var/obj/item/projectile/energy/florayield/GY = .
+ var/obj/item/projectile/energy/floramut/GM = .
+ // Inserting the upgrade level of the gun to the projectile as there isn't a better way to do this.
if(istype(G))
G.gene = gene
+ G.lasermod = emitter.rating
+ else if(istype(GY))
+ GY.lasermod = emitter.rating
+ else if(istype(GM))
+ GM.lasermod = emitter.rating
/obj/item/weapon/gun/energy/meteorgun
name = "meteor gun"
diff --git a/code/modules/projectiles/guns/magnetic/bore.dm b/code/modules/projectiles/guns/magnetic/bore.dm
index 3cc05cc44bc..66e89cb9eb0 100644
--- a/code/modules/projectiles/guns/magnetic/bore.dm
+++ b/code/modules/projectiles/guns/magnetic/bore.dm
@@ -85,6 +85,8 @@
/obj/item/weapon/gun/magnetic/matfed/attackby(var/obj/item/thing, var/mob/user)
+ . = ..()
+ update_rating_mod()
if(removable_components)
if(thing.is_crowbar())
if(!manipulator)
@@ -112,7 +114,6 @@
update_rating_mod()
return
-
if(is_type_in_list(thing, load_type))
var/obj/item/stack/material/M = thing
var/success = FALSE
@@ -147,7 +148,6 @@
playsound(src, 'sound/weapons/flipblade.ogg', 50, 1)
update_icon()
return
- . = ..()
#define GEN_STARTING -1
#define GEN_OFF 0
diff --git a/code/modules/projectiles/projectile/explosive.dm b/code/modules/projectiles/projectile/explosive.dm
index 15d538c0820..307febc8bc1 100644
--- a/code/modules/projectiles/projectile/explosive.dm
+++ b/code/modules/projectiles/projectile/explosive.dm
@@ -9,22 +9,30 @@
does_spin = 0
/obj/item/projectile/bullet/srmrocket/on_hit(atom/target, blocked=0)
- ..()
if(!isliving(target)) //if the target isn't alive, so is a wall or something
explosion(target, 0, 1, 2, 4)
else
explosion(target, 0, 0, 2, 4)
return 1
+/obj/item/projectile/bullet/srmrocket/throw_impact(atom/target, var/speed)
+ if(!isliving(target)) //if the target isn't alive, so is a wall or something
+ explosion(target, 0, 1, 2, 4)
+ else
+ explosion(target, 0, 0, 2, 4)
+ qdel(src)
/obj/item/projectile/bullet/srmrocket/weak //Used in the jury rigged one.
damage = 10
/obj/item/projectile/bullet/srmrocket/weak/on_hit(atom/target, blocked=0)
- ..()
explosion(target, 0, 0, 2, 4)//No need to have a question.
return 1
+/obj/item/projectile/bullet/srmrocket/weak/throw_impact(atom/target, var/speed)
+ explosion(target, 0, 0, 2, 4)//No need to have a question.
+ qdel(src)
+
/*Old vars here for reference.
var/devastation = 0
var/heavy_blast = 1
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index 187ae883344..142cde40712 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -143,7 +143,7 @@
light_power = 0.5
light_color = "#33CC00"
impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser
-
+ var/lasermod = 0
combustion = FALSE
/obj/item/projectile/energy/floramut/on_hit(var/atom/target, var/blocked = 0)
@@ -200,6 +200,7 @@
light_power = 0.5
light_color = "#FFFFFF"
impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser
+ var/lasermod = 0
/obj/item/projectile/energy/florayield/on_hit(var/atom/target, var/blocked = 0)
var/mob/living/M = target
diff --git a/code/modules/reagents/machinery/dispenser/reagent_tank.dm b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
index cfa809b2afe..097ee924e97 100644
--- a/code/modules/reagents/machinery/dispenser/reagent_tank.dm
+++ b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
@@ -461,7 +461,7 @@
/obj/structure/reagent_dispensers/cookingoil/New()
..()
- reagents.add_reagent("cornoil",5000)
+ reagents.add_reagent("cookingoil",5000)
/obj/structure/reagent_dispensers/cookingoil/bullet_act(var/obj/item/projectile/Proj)
if(Proj.get_structure_damage())
diff --git a/code/modules/reagents/reactions/instant/drinks.dm b/code/modules/reagents/reactions/instant/drinks.dm
index efb58fe90c3..c2e0521ee65 100644
--- a/code/modules/reagents/reactions/instant/drinks.dm
+++ b/code/modules/reagents/reactions/instant/drinks.dm
@@ -141,7 +141,7 @@
name = "Space Beer"
id = "spacebeer"
result = "beer"
- required_reagents = list("cornoil" = 10)
+ required_reagents = list("cornoil" = 5, "flour" = 5)
catalysts = list("enzyme" = 5)
result_amount = 10
@@ -203,6 +203,7 @@
name = "Classic Martini"
id = "martini"
result = "martini"
+ inhibitors = list("bitters" = 1)
required_reagents = list("gin" = 2, "vermouth" = 1)
result_amount = 3
@@ -907,7 +908,7 @@
name = "Debugger"
id = "debugger"
result = "debugger"
- required_reagents = list("fuel" = 1, "sugar" = 2, "cornoil" = 2)
+ required_reagents = list("fuel" = 1, "sugar" = 2, "cookingoil" = 2)
result_amount = 5
/decl/chemical_reaction/instant/drinks/spacersbrew
@@ -1205,14 +1206,14 @@
name = "Oil Slick"
id = "oilslick"
result = "oilslick"
- required_reagents = list("cornoil" = 2, "honey" = 1)
+ required_reagents = list("cookingoil" = 2, "honey" = 1)
result_amount = 3
/decl/chemical_reaction/instant/drinks/slimeslam
name = "Slick Slime Slammer"
id = "slimeslammer"
result = "slimeslammer"
- required_reagents = list("cornoil" = 2, "peanutbutter" = 1)
+ required_reagents = list("cookingoil" = 2, "peanutbutter" = 1)
result_amount = 3
/decl/chemical_reaction/instant/drinks/virginsexonthebeach
@@ -1254,7 +1255,7 @@
name = "Soda Oil"
id = "sodaoil"
result = "sodaoil"
- required_reagents = list("cornoil" = 4, "sodawater" = 1, "carbon" = 1, "tricordrazine" = 1)
+ required_reagents = list("cookingoil" = 4, "sodawater" = 1, "carbon" = 1, "tricordrazine" = 1)
result_amount = 6
/decl/chemical_reaction/instant/drinks/fusionnaire
diff --git a/code/modules/reagents/reactions/instant/drinks_vr.dm b/code/modules/reagents/reactions/instant/drinks_vr.dm
index 5f32c7e5f8a..5948562cd66 100644
--- a/code/modules/reagents/reactions/instant/drinks_vr.dm
+++ b/code/modules/reagents/reactions/instant/drinks_vr.dm
@@ -137,6 +137,7 @@
name = "Choccy Milk"
id = "choccymilk"
result = "choccymilk"
+ inhibitors = list("enzyme" = 1)
required_reagents = list("milk" = 3, "coco" = 1)
result_amount = 4
diff --git a/code/modules/reagents/reactions/instant/food.dm b/code/modules/reagents/reactions/instant/food.dm
index 952af8014b4..937825cb420 100644
--- a/code/modules/reagents/reactions/instant/food.dm
+++ b/code/modules/reagents/reactions/instant/food.dm
@@ -31,6 +31,7 @@
id = "chocolate_bar"
result = null
required_reagents = list("soymilk" = 2, "coco" = 2, "sugar" = 2)
+ catalysts = list("enzyme" = 5)
result_amount = 1
/decl/chemical_reaction/instant/food/chocolate_bar/on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -44,6 +45,7 @@
id = "chocolate_bar"
result = null
required_reagents = list("milk" = 2, "coco" = 2, "sugar" = 2)
+ catalysts = list("enzyme" = 5)
result_amount = 1
/decl/chemical_reaction/instant/food/chocolate_bar2/on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -52,6 +54,22 @@
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
return
+/decl/chemical_reaction/instant/food/cookingoilcorn
+ name = "Cooking Oil"
+ id = "cookingoilcorn"
+ result = "cookingoil"
+ required_reagents = list("cornoil" = 10)
+ catalysts = list("enzyme" = 5)
+ result_amount = 10
+
+/decl/chemical_reaction/instant/food/cookingoilpeanut
+ name = "Cooking Oil"
+ id = "cookingoilpeanut"
+ result = "cookingoil"
+ required_reagents = list("peanutoil" = 10)
+ catalysts = list("enzyme" = 5)
+ result_amount = 10
+
/decl/chemical_reaction/instant/food/soysauce
name = "Soy Sauce"
id = "soysauce"
@@ -85,7 +103,7 @@
name = "mayonnaise"
id = "mayo"
result = "mayo"
- required_reagents = list("egg" = 9, "cornoil" = 5, "lemonjuice" = 5, "sodiumchloride" = 1)
+ required_reagents = list("egg" = 9, "cookingoil" = 5, "lemonjuice" = 5, "sodiumchloride" = 1)
result_amount = 15
/decl/chemical_reaction/instant/food/cheesewheel
diff --git a/code/modules/reagents/reactions/instant/instant_vr.dm b/code/modules/reagents/reactions/instant/instant_vr.dm
index b1d49c012a6..63b764dafeb 100644
--- a/code/modules/reagents/reactions/instant/instant_vr.dm
+++ b/code/modules/reagents/reactions/instant/instant_vr.dm
@@ -400,7 +400,7 @@
/mob/living/simple_mob/animal/passive/bird/parrot/poly,
/mob/living/simple_mob/animal/sif/fluffy,
/mob/living/simple_mob/animal/sif/fluffy/silky,
- /mob/living/simple_mob/animal/passive/snake/noodle,
+ /mob/living/simple_mob/animal/passive/snake/python/noodle,
/mob/living/simple_mob/slime/xenobio/rainbow/kendrick,
/mob/living/simple_mob/animal/space/space_worm, //Space Worm parts that aren't proper heads
/mob/living/simple_mob/animal/space/space_worm/head/severed,
diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm
index 1ddc24bfc93..8de9abd0b35 100644
--- a/code/modules/reagents/reagents/food_drinks.dm
+++ b/code/modules/reagents/reagents/food_drinks.dm
@@ -234,6 +234,12 @@
to_chat(M, "Searing hot oil burns you, wash it off quick!")
lastburnmessage = world.time
+/datum/reagent/nutriment/triglyceride/oil/cooking
+ name = "Cooking Oil"
+ id = "cookingoil"
+ description = "A general-purpose cooking oil."
+ reagent_state = LIQUID
+
/datum/reagent/nutriment/triglyceride/oil/corn
name = "Corn Oil"
id = "cornoil"
diff --git a/code/modules/research/designs/circuits/circuits.dm b/code/modules/research/designs/circuits/circuits.dm
index fbf41ab8067..cd28842f00a 100644
--- a/code/modules/research/designs/circuits/circuits.dm
+++ b/code/modules/research/designs/circuits/circuits.dm
@@ -36,14 +36,21 @@ CIRCUITS BELOW
id = "oriontrail"
req_tech = list(TECH_DATA = 1)
build_path = /obj/item/weapon/circuitboard/arcade/orion_trail
- sort_string = "MAAAZ" // Duplicate string, really need to redo this whole thing
+ sort_string = "MAAAB"
+
+/datum/design/circuit/clawmachine
+ name = "grab-a-gift arcade machine"
+ id = "clawmachine"
+ req_tech = list(TECH_DATA = 1)
+ build_path = /obj/item/weapon/circuitboard/arcade/clawmachine
+ sort_string = "MAAAC"
/datum/design/circuit/jukebox
name = "jukebox"
id = "jukebox"
req_tech = list(TECH_MAGNET = 2, TECH_DATA = 1)
build_path = /obj/item/weapon/circuitboard/jukebox
- sort_string = "MAAAB"
+ sort_string = "MAAAO"
/datum/design/circuit/seccamera
name = "security camera monitor"
diff --git a/code/modules/research/designs/engineering.dm b/code/modules/research/designs/engineering.dm
index 5c496fdc4fa..bf55cdd7885 100644
--- a/code/modules/research/designs/engineering.dm
+++ b/code/modules/research/designs/engineering.dm
@@ -40,6 +40,15 @@
build_path = /obj/item/weapon/pipe_dispenser
sort_string = "NAAAD"
+/datum/design/item/tool/qpad_booster
+ name = "Quantum Pad Particle Booster"
+ desc = "A deceptively simple interface for increasing the mass of objects a quantum pad is capable of teleporting, at the cost of increased power draw."
+ id = "qpad_booster"
+ req_tech = list(TECH_ENGINEERING = 7, TECH_MATERIAL = 7, TECH_BLUESPACE = 6)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_VERDANTIUM = 1000)
+ build_path = /obj/item/device/quantum_pad_booster
+ sort_string = "NAAAF"
+
// Other devices
/datum/design/item/engineering/AssembleDesignName()
diff --git a/code/modules/research/prosfab_designs.dm b/code/modules/research/prosfab_designs.dm
index 6f29e26ebb3..d4ab887d987 100644
--- a/code/modules/research/prosfab_designs.dm
+++ b/code/modules/research/prosfab_designs.dm
@@ -268,6 +268,13 @@
time = 15
materials = list(MAT_STEEL = 2000, MAT_GLASS = 750, MAT_PLASTIC = 500)
+/datum/design/item/prosfab/pros/internal/stomach
+ name = "Prosthetic Stomach"
+ id = "pros_stomach"
+ build_path = /obj/item/organ/internal/stomach
+ time = 15
+ materials = list(MAT_STEEL = 5625, MAT_GLASS = 1000)
+
//////////////////// Cyborg Parts ////////////////////
/datum/design/item/prosfab/cyborg
category = list("Cyborg Parts")
diff --git a/code/modules/resleeving/machines_vr.dm b/code/modules/resleeving/machine_subtypes.dm
similarity index 91%
rename from code/modules/resleeving/machines_vr.dm
rename to code/modules/resleeving/machine_subtypes.dm
index b9f7c81aa6d..405bcef1416 100644
--- a/code/modules/resleeving/machines_vr.dm
+++ b/code/modules/resleeving/machine_subtypes.dm
@@ -1,12 +1,12 @@
-/obj/machinery/transhuman/resleever/abductor
- icon = 'icons/obj/abductor_vr.dmi'
- icon_state = "implantchair"
-
-/obj/machinery/computer/transhuman/resleeving/abductor
- icon = 'icons/obj/abductor.dmi'
- icon_state = "console"
-
-/obj/machinery/clonepod/transhuman/full/abductor
- icon = 'icons/obj/abductor_vr.dmi'
- icon_state = "pod_0"
+/obj/machinery/transhuman/resleever/abductor
+ icon = 'icons/obj/abductor_vr.dmi'
+ icon_state = "implantchair"
+
+/obj/machinery/computer/transhuman/resleeving/abductor
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "console"
+
+/obj/machinery/clonepod/transhuman/full/abductor
+ icon = 'icons/obj/abductor_vr.dmi'
+ icon_state = "pod_0"
name = "clonepod"
\ No newline at end of file
diff --git a/code/modules/resleeving/machines.dm b/code/modules/resleeving/machines.dm
index adee6e4b0f1..bb17833e351 100644
--- a/code/modules/resleeving/machines.dm
+++ b/code/modules/resleeving/machines.dm
@@ -589,8 +589,9 @@
//Re-supply a NIF if one was backed up with them.
if(MR.nif_path)
var/obj/item/device/nif/nif = new MR.nif_path(occupant,null,MR.nif_savedata)
- for(var/path in MR.nif_software)
- new path(nif)
+ spawn(0) //Delay to not install software before NIF is fully installed
+ for(var/path in MR.nif_software)
+ new path(nif)
nif.durability = MR.nif_durability //Restore backed up durability after restoring the softs.
// If it was a custom sleeve (not owned by anyone), update namification sequences
@@ -612,7 +613,7 @@
occupant.confused = max(occupant.confused, confuse_amount) // Apply immedeate effects
occupant.eye_blurry = max(occupant.eye_blurry, blur_amount)
-
+
// Vore deaths get a fake modifier labeled as such
if(!occupant.mind)
log_debug("[occupant] didn't have a mind to check for vore_death, which may be problematic.")
diff --git a/code/modules/tables/flipping.dm b/code/modules/tables/flipping.dm
index 23d862d66da..e7029e3c6d5 100644
--- a/code/modules/tables/flipping.dm
+++ b/code/modules/tables/flipping.dm
@@ -50,7 +50,7 @@
L.Add(turn(src.dir,90))
for(var/new_dir in L)
var/obj/structure/table/T = locate() in get_step(src.loc,new_dir)
- if(T && T.material.name == material.name)
+ if(T && T.material && T.material.name == material.name)
if(T.flipped == 1 && T.dir == src.dir && !T.unflipping_check(new_dir))
return 0
return 1
diff --git a/code/modules/tables/interactions.dm b/code/modules/tables/interactions.dm
index 27627055d72..779bb76d5fa 100644
--- a/code/modules/tables/interactions.dm
+++ b/code/modules/tables/interactions.dm
@@ -1,7 +1,7 @@
/obj/structure/table/CanPass(atom/movable/mover, turf/target)
if(istype(mover,/obj/item/projectile))
return (check_cover(mover,target))
- if (flipped)
+ if(flipped == 1)
if(get_dir(mover, target) == reverse_dir[dir]) // From elsewhere to here, can't move against our dir
return !density
return TRUE
@@ -10,12 +10,12 @@
if(locate(/obj/structure/table/bench) in get_turf(mover))
return FALSE
var/obj/structure/table/table = locate(/obj/structure/table) in get_turf(mover)
- if(table && !table.flipped)
+ if(table && !(table.flipped == 1))
return TRUE
return FALSE
/obj/structure/table/climb_to(mob/living/mover)
- if(flipped && mover.loc == loc)
+ if(flipped == 1 && mover.loc == loc)
var/turf/T = get_step(src, dir)
if(T.Enter(mover))
return T
@@ -23,7 +23,7 @@
return ..()
/obj/structure/table/Uncross(atom/movable/mover, turf/target)
- if(flipped && (get_dir(mover, target) == dir)) // From here to elsewhere, can't move in our dir
+ if(flipped == 1 && (get_dir(mover, target) == dir)) // From here to elsewhere, can't move in our dir
return !density
return TRUE
diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm
index f4280338489..9a71cbdba74 100644
--- a/code/modules/tables/tables.dm
+++ b/code/modules/tables/tables.dm
@@ -331,6 +331,8 @@ var/list/table_icon_cache = list()
return FALSE
if(istype(src,/obj/structure/table/bench) && !istype(S,/obj/structure/table/bench))
return FALSE
+ if(istype(S,/obj/structure/table/rack) && !istype(src,/obj/structure/table/rack))
+ return FALSE
if(istype(src,/obj/structure/table/rack) && !istype(S,/obj/structure/table/rack))
return FALSE
if(istype(S,/obj/structure/table))
diff --git a/code/modules/telesci/quantum_pad.dm b/code/modules/telesci/quantum_pad.dm
index 6f1381a1915..a55004e4040 100644
--- a/code/modules/telesci/quantum_pad.dm
+++ b/code/modules/telesci/quantum_pad.dm
@@ -13,6 +13,7 @@
var/last_teleport //to handle the cooldown
var/teleporting = 0 //if it's in the process of teleporting
var/power_efficiency = 1
+ var/boosted = 0 // do we teleport mecha?
var/obj/machinery/power/quantumpad/linked_pad
//mapping
@@ -32,6 +33,18 @@
mapped_quantum_pads -= map_pad_id
return ..()
+/obj/machinery/power/quantumpad/examine(mob/user)
+ . = ..()
+ . += "It is [linked_pad ? "currently" : "not"] linked to another pad."
+ if(world.time < last_teleport + teleport_cooldown)
+ . += "[src] is recharging power. A timer on the side reads [round((last_teleport + teleport_cooldown - world.time)/10)] seconds."
+ if(boosted)
+ . += SPAN_NOTICE("There appears to be a booster haphazardly jammed into the side of [src]. That looks unsafe.")
+ if(!panel_open)
+ . += "The panel is screwed in, obstructing the linking device."
+ else
+ . += "The linking device is now able to be scanned with a multitool."
+
/obj/machinery/power/quantumpad/RefreshParts()
var/E = 0
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
@@ -64,6 +77,14 @@
to_chat(user, "You link [src] to the one in [I]'s buffer.")
update_icon()
return 1
+
+ if(istype(I, /obj/item/device/quantum_pad_booster))
+ var/obj/item/device/quantum_pad_booster/booster = I
+ visible_message("[user] violently jams [booster] into the side of [src]. [src] beeps, quietly.", \
+ "You hear the sound of a device being improperly installed in sensitive machinery, then subsequent beeping.", runemessage = "beep!")
+ playsound(src, 'sound/items/rped.ogg', 25, 1)
+ boosted = TRUE
+ qdel(I)
if(default_part_replacement(user, I))
return
@@ -213,6 +234,8 @@
// Otherwise we'll need a powernet
var/power_to_use = 10000 / power_efficiency
+ if(boosted)
+ power_to_use *= 5
if(draw_power(power_to_use) != power_to_use)
return FALSE
return TRUE
@@ -220,7 +243,10 @@
/obj/machinery/power/quantumpad/proc/transport_objects(turf/destination)
for(var/atom/movable/ROI in get_turf(src))
// if is anchored, don't let through
- if(ROI.anchored)
+ if(ROI.anchored && !ismecha(ROI))
+ if(ismecha(ROI))
+ if(boosted)
+ continue
if(isliving(ROI))
var/mob/living/L = ROI
if(L.buckled)
@@ -229,7 +255,7 @@
continue
else
continue
- else if(!isobserver(ROI))
+ else if(!isobserver(ROI) && !isEye(ROI))
continue
do_teleport(ROI, destination, local = FALSE)
@@ -262,3 +288,13 @@
to_chat(user, "You feel yourself pulled in different directions, before ending up not far from where you started.")
flick("qpad-beam-out", src)
transport_objects(get_turf(dest))
+
+/obj/item/device/quantum_pad_booster
+ icon = 'icons/obj/device_vr.dmi'
+ name = "quantum pad particle booster"
+ desc = "A deceptively simple interface for increasing the mass of objects a quantum pad is capable of teleporting, at the cost of increased power draw."
+ description_info = "The three prongs at the base of the tool are not, in fact, for show."
+ force = 9
+ sharp = TRUE
+ item_state = "analyzer"
+ icon_state = "hacktool"
\ No newline at end of file
diff --git a/code/modules/vchat/vchat_client.dm b/code/modules/vchat/vchat_client.dm
index b2cd9df7589..a918c94cde5 100644
--- a/code/modules/vchat/vchat_client.dm
+++ b/code/modules/vchat/vchat_client.dm
@@ -139,14 +139,15 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic
set waitfor = FALSE
// Only send them the number of buffered messages, instead of the ENTIRE log
var/list/results = vchat_get_messages(owner.ckey, message_buffer) //If there's bad performance on reconnects, look no further
- for(var/i in results.len to 1 step -1)
- var/list/message = results[i]
- var/count = 10
- to_chat_immediate(owner, message["time"], message["message"])
- count++
- if(count >= 10)
- count = 0
- CHECK_TICK
+ if(islist(results))
+ for(var/i in results.len to 1 step -1)
+ var/list/message = results[i]
+ var/count = 10
+ to_chat_immediate(owner, message["time"], message["message"])
+ count++
+ if(count >= 10)
+ count = 0
+ CHECK_TICK
//It din work
/datum/chatOutput/proc/become_broken()
@@ -417,4 +418,4 @@ var/to_chat_src
if(!fdel(o_file))
spawn(1 MINUTE)
if(!fdel(o_file))
- log_debug("Warning: [ckey]'s chatlog could not be deleted one minute after file transfer was initiated. It is located at 'data/chatlog_tmp/[ckey]_chat_log' and will need to be manually removed.")
\ No newline at end of file
+ log_debug("Warning: [ckey]'s chatlog could not be deleted one minute after file transfer was initiated. It is located at 'data/chatlog_tmp/[ckey]_chat_log' and will need to be manually removed.")
diff --git a/code/modules/vore/eating/digest_act_vr.dm b/code/modules/vore/eating/digest_act_vr.dm
index 76094003668..741d7e0941b 100644
--- a/code/modules/vore/eating/digest_act_vr.dm
+++ b/code/modules/vore/eating/digest_act_vr.dm
@@ -49,7 +49,15 @@
qdel(O)
else if(item_storage)
O.forceMove(item_storage)
- qdel(src)
+ if(istype(src,/obj/item/stack))
+ var/obj/item/stack/S = src
+ if(S.get_amount() <= 1)
+ qdel(src)
+ else
+ S.use(1)
+ digest_stage = w_class
+ else
+ qdel(src)
if(g_damage > w_class)
return w_class
return g_damage
@@ -131,6 +139,10 @@
//Replace this with a VORE setting so all types of posibrains can/can't be digested on a whim
return FALSE
+/obj/item/organ/internal/nano/digest_act(atom/movable/item_storage = null)
+ //Make proteans recoverable too
+ return FALSE
+
// Gradual damage measurement
/obj/item
var/digest_stage = null
diff --git a/code/modules/vore/eating/inbelly_spawn.dm b/code/modules/vore/eating/inbelly_spawn.dm
new file mode 100644
index 00000000000..39c09554e02
--- /dev/null
+++ b/code/modules/vore/eating/inbelly_spawn.dm
@@ -0,0 +1,177 @@
+/mob/observer/dead/verb/spawn_in_belly()
+ set category = "Ghost"
+ set name = "Spawn In Belly"
+ set desc = "Spawn in someone's belly."
+
+ if(!client)
+ return
+
+ // If any ghost-side restrictions are desired, they'll go here
+
+ tgui_alert(src,{"
+This verb allows you to spawn inside someone's belly when they are in round.
+Make sure you to coordinate with your predator OOCly as well as roleplay approprietly.
+You are considered to have been in the belly entire time the predator was around and are not added to crew lists.
+This is not intended to be used for mechanical advantage or providing assistance, but for facilitating longterm scenes.
+Please do not abuse this ability.
+"},"OOC Warning") // Warning.
+
+ var/list/eligible_targets = list()
+
+ for(var/mob/living/pred in living_mob_list)
+ if(!istype(pred) || !pred.client) // Ignore preds that aren't living mobs or player controlled
+ continue
+ if(pred.no_vore) // No vore, no bellies, no inbelly spawning
+ continue
+ if(!(get_z(pred) in using_map.station_levels)) // No explo reinforcements
+ continue
+ if(ishuman(pred))
+ var/mob/living/carbon/human/H = pred
+ if(!H.allow_inbelly_spawning)
+ continue
+ eligible_targets += H
+ continue
+ if(issilicon(pred))
+ var/mob/living/silicon/S = pred
+ if(isAI(S))
+ continue // Sorry, AI buddies. Your vore works too differently.
+ if(!S.allow_inbelly_spawning)
+ continue
+ eligible_targets += S
+ continue
+ if(istype(pred, /mob/living/simple_mob))
+ var/mob/living/simple_mob/SM = pred
+ if(!SM.vore_active) // No vore, no bellies, no inbelly spawning
+ continue
+ if(!SM.allow_inbelly_spawning)
+ continue
+ eligible_targets += SM
+ continue
+
+ // Only humans, simple_mobs and non-AI silicons are included. Obscure stuff like bots is skipped.
+
+ if(!eligible_targets.len)
+ to_chat(src, "No eligible preds were found.") // :(
+ return
+
+ var/mob/living/target = tgui_input_list(src, "Please specify which character you want to spawn inside of.", "Predator", eligible_targets) // Offer the list of things we gathered.
+
+ if(!target || !client) // Did out target cease to exist? Or did we?
+ return
+
+ // Notify them that its now pred's turn
+ to_chat(src, "Inbelly spawn request sent to predator.")
+ target.inbelly_spawn_prompt(client) // Hand reins over to them
+
+/mob/living/proc/inbelly_spawn_prompt(client/potential_prey)
+ if(!potential_prey || !istype(potential_prey)) // Did our prey cease to exist?
+ return
+
+ // Are we cool with this prey spawning in at all?
+ var/answer = tgui_alert(src, "[potential_prey.ckey] (as [potential_prey.prefs.real_name]) wants to spawn in one of your bellies. Do you accept?", "Inbelly Spawning", list("Yes", "No"))
+ if(answer != "Yes")
+ to_chat(potential_prey, "Your request was turned down.")
+ return
+
+ // Let them know so that they don't spam it.
+ to_chat(potential_prey, "Predator agreed to your request. Wait a bit while they choose a belly.")
+
+ // Where we dropping?
+ var/obj/belly/belly_choice = tgui_input_list(src, "Choose Target Belly", "Belly Choice", src.vore_organs)
+
+ // Wdym nowhere?
+ if(!belly_choice || !istype(belly_choice))
+ to_chat(potential_prey, "Something went wrong with predator selecting a belly. Try again?")
+ to_chat(src, "No valid belly selected. Inbelly spawn cancelled.")
+ return
+
+ // Extra caution never hurts
+ if(belly_choice.digest_mode == DM_DIGEST)
+ var/digest_answer = tgui_alert(src, "[belly_choice] is currently set to Digest. Are you sure you want to spawn prey there?", "Inbelly Spawning", list("Yes", "No"))
+ if(digest_answer != "Yes")
+ to_chat(potential_prey, "Something went wrong with predator selecting a belly. Try again?")
+ to_chat(src, "Inbelly spawn cancelled.")
+
+ // Are they already fat (and/or appropriate equivalent)?
+ var/absorbed = FALSE
+ var/absorbed_answer = tgui_alert(src, "Do you want them to start absorbed?", "Inbelly Spawning", list("Yes", "No"))
+
+ if(absorbed_answer == "Yes")
+ absorbed = TRUE
+
+ // They disappeared?
+ if(!potential_prey)
+ to_chat(src, "No prey found. Something went wrong!")
+ return
+
+ // Final confirmation for pred
+ var/confirmation_pred = tgui_alert(src, "Are you certain that you want [potential_prey.prefs.real_name] spawned in your [belly_choice][absorbed ? ", absorbed" : ""]?", "Inbelly Spawning", list("Yes", "No"))
+
+ if(confirmation_pred != "Yes")
+ to_chat(potential_prey, "Your pred couldn't finish selection. Try again?")
+ to_chat(src, "Inbelly spawn cancelled.")
+ return
+
+ to_chat(src, "Waiting for prey's confirmation...")
+
+ // And final confirmation for prey
+ var/confirmation_prey = tgui_alert(potential_prey, "Are you certain that you to spawn in [src]'s [belly_choice][absorbed ? ", absorbed" : ""]?", "Inbelly Spawning", list("Yes", "No"))
+
+ if(confirmation_prey == "Yes" && potential_prey && src && belly_choice)
+ //Now we finally spawn them in!
+ if(!is_alien_whitelisted(potential_prey, GLOB.all_species[potential_prey.prefs.species]))
+ to_chat(potential_prey, "You are not whitelisted to play as currently selected character.")
+ to_chat(src, "Prey accepted the confirmation, but something went wrong with spawning their character.")
+ return
+ inbelly_spawn(potential_prey, src, belly_choice, absorbed)
+ else
+ to_chat(potential_prey, "Inbelly spawn cancelled.")
+ to_chat(src, "Prey cancelled their inbelly spawn request.")
+ return
+
+/proc/inbelly_spawn(client/prey, mob/living/pred, obj/belly/target_belly, var/absorbed = FALSE)
+ // All this is basically admin late spawn-in, but skipping all parts related to records and equipment and with predteremined location
+ var/player_key = prey.key
+ var/picked_ckey = prey.ckey
+ var/picked_slot = prey.prefs.default_slot
+ var/mob/living/carbon/human/new_character
+
+ new_character = new(null) // Spawn them in nullspace first. Can't have "Defaultname Defaultnameson slides into your Stomach".
+
+ if(!new_character)
+ return
+
+ prey.prefs.copy_to(new_character)
+ if(new_character.dna)
+ new_character.dna.ResetUIFrom(new_character)
+ new_character.sync_organ_dna()
+ new_character.key = player_key
+ if(new_character.mind)
+ var/datum/antagonist/antag_data = get_antag_data(new_character.mind.special_role)
+ if(antag_data)
+ antag_data.add_antagonist(new_character.mind)
+ antag_data.place_mob(new_character)
+
+ if(new_character.mind)
+ new_character.mind.loaded_from_ckey = picked_ckey
+ new_character.mind.loaded_from_slot = picked_slot
+
+ for(var/lang in prey.prefs.alternate_languages)
+ var/datum/language/chosen_language = GLOB.all_languages[lang]
+ if(chosen_language)
+ if(is_lang_whitelisted(prey,chosen_language) || (new_character.species && (chosen_language.name in new_character.species.secondary_langs)))
+ new_character.add_language(lang)
+
+ new_character.regenerate_icons()
+
+ new_character.update_transform()
+
+ new_character.forceMove(target_belly) // Now that they're all setup and configured, send them to their destination.
+
+ if(absorbed)
+ target_belly.absorb_living(new_character) // Glorp.
+
+ log_admin("[prey] (as [new_character.real_name] has spawned inside one of [pred]'s bellies.") // Log it. Avoid abuse.
+ message_admins("[prey] (as [new_character.real_name] has spawned inside one of [pred]'s bellies.", 1)
+
+ return new_character // incase its ever needed
\ No newline at end of file
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 23dd3eea553..7c480b31ef2 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -7,6 +7,7 @@
var/resizable = TRUE // Can other people resize you? (Usually ignored for self-resizes)
var/digest_leave_remains = FALSE // Will this mob leave bones/skull/etc after the melty demise?
var/allowmobvore = TRUE // Will simplemobs attempt to eat the mob?
+ var/allow_inbelly_spawning = FALSE // Will we even bother with attempts of someone to spawn in in one of our bellies?
var/showvoreprefs = TRUE // Determines if the mechanical vore preferences button will be displayed on the mob or not.
var/obj/belly/vore_selected // Default to no vore capability.
var/list/vore_organs = list() // List of vore containers inside a mob
@@ -143,9 +144,7 @@
if(is_vore_predator(src))
for(var/mob/living/M in H.contents)
if(attacker.eat_held_mob(attacker, M, src))
- if(H.held_mob == M)
- H.held_mob = null
- return TRUE //return TRUE to exit upper procs
+ return TRUE //return TRUE to exit upper procs
else
log_debug("[attacker] attempted to feed [H.contents] to [src] ([type]) but it failed.")
@@ -224,6 +223,7 @@
P.show_vore_fx = src.show_vore_fx
P.can_be_drop_prey = src.can_be_drop_prey
P.can_be_drop_pred = src.can_be_drop_pred
+ P.allow_inbelly_spawning = src.allow_inbelly_spawning
P.allow_spontaneous_tf = src.allow_spontaneous_tf
P.step_mechanics_pref = src.step_mechanics_pref
P.pickup_pref = src.pickup_pref
@@ -259,6 +259,7 @@
show_vore_fx = P.show_vore_fx
can_be_drop_prey = P.can_be_drop_prey
can_be_drop_pred = P.can_be_drop_pred
+ allow_inbelly_spawning = P.allow_inbelly_spawning
allow_spontaneous_tf = P.allow_spontaneous_tf
step_mechanics_pref = P.step_mechanics_pref
pickup_pref = P.pickup_pref
@@ -435,6 +436,14 @@
holo.drop_prey() //Easiest way
log_and_message_admins("[key_name(src)] used the OOC escape button to get out of [key_name(holo.master)] (AI HOLO) ([holo ? "JMP" : "null"])")
+ //You're in a capture crystal! ((It's not vore but close enough!))
+ else if(iscapturecrystal(loc))
+ var/obj/item/capture_crystal/crystal = loc
+ crystal.unleash()
+ crystal.bound_mob = null
+ crystal.bound_mob = capture_crystal = 0
+ log_and_message_admins("[key_name(src)] used the OOC escape button to get out of [crystal] owned by [crystal.owner]. [ADMIN_FLW(src)]")
+
//Don't appear to be in a vore situation
else
to_chat(src,"You aren't inside anyone, though, is the thing.")
@@ -518,7 +527,16 @@
user.visible_message(success_msg)
// Actually shove prey into the belly.
- belly.nom_mob(prey, user)
+ if(istype(prey.loc, /obj/item/weapon/holder))
+ var/obj/item/weapon/holder/H = prey.loc
+ for(var/mob/living/M in H.contents)
+ belly.nom_mob(M, user)
+ if(M.loc == H) // In case nom_mob failed somehow.
+ M.forceMove(get_turf(src))
+ H.held_mob = null
+ qdel(H)
+ else
+ belly.nom_mob(prey, user)
if(!ishuman(user))
user.update_icons()
@@ -631,7 +649,11 @@
if(S.holding)
to_chat(src, "There's something inside!")
return
-
+ if(iscapturecrystal(I))
+ var/obj/item/capture_crystal/C = I
+ if(!C.bound_mob.devourable)
+ to_chat(src, "That doesn't seem like a good idea. (\The [C.bound_mob]'s prefs don't allow it.)")
+ return
drop_item()
I.forceMove(vore_selected)
updateVRPanel()
@@ -685,6 +707,13 @@
else if (istype(I,/obj/item/clothing/accessory/collar))
visible_message("[src] demonstrates their voracious capabilities by swallowing [I] whole!")
to_chat(src, "You can taste the submissiveness in the wearer of [I]!")
+ else if(iscapturecrystal(I))
+ var/obj/item/capture_crystal/C = I
+ if(C.bound_mob && (C.bound_mob in C.contents))
+ if(isbelly(C.loc))
+ var/obj/belly/B = C.loc
+ to_chat(C.bound_mob, "Outside of your crystal, you can see; [B.desc]")
+ to_chat(src, "You can taste the the power of command.")
else
to_chat(src, "You can taste the flavor of garbage. Delicious.")
return
@@ -853,6 +882,7 @@
dispvoreprefs += "Healbelly permission: [permit_healbelly ? "Allowed" : "Disallowed"]
"
dispvoreprefs += "Spontaneous vore prey: [can_be_drop_prey ? "Enabled" : "Disabled"]
"
dispvoreprefs += "Spontaneous vore pred: [can_be_drop_pred ? "Enabled" : "Disabled"]
"
+ dispvoreprefs += "Inbelly Spawning: [allow_inbelly_spawning ? "Allowed" : "Disallowed"]
"
dispvoreprefs += "Spontaneous transformation: [allow_spontaneous_tf ? "Enabled" : "Disabled"]
"
dispvoreprefs += "Can be stepped on/over: [step_mechanics_pref ? "Allowed" : "Disallowed"]
"
dispvoreprefs += "Can be picked up: [pickup_pref ? "Allowed" : "Disallowed"]
"
diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm
index e3e7b9befa1..41632774626 100644
--- a/code/modules/vore/eating/vore_vr.dm
+++ b/code/modules/vore/eating/vore_vr.dm
@@ -49,6 +49,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
var/feeding = TRUE
var/can_be_drop_prey = FALSE
var/can_be_drop_pred = FALSE
+ var/allow_inbelly_spawning = FALSE
var/allow_spontaneous_tf = FALSE
var/digest_leave_remains = FALSE
var/allowmobvore = TRUE
@@ -137,6 +138,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
show_vore_fx = json_from_file["show_vore_fx"]
can_be_drop_prey = json_from_file["can_be_drop_prey"]
can_be_drop_pred = json_from_file["can_be_drop_pred"]
+ allow_inbelly_spawning = json_from_file["allow_inbelly_spawning"]
allow_spontaneous_tf = json_from_file["allow_spontaneous_tf"]
step_mechanics_pref = json_from_file["step_mechanics_pref"]
pickup_pref = json_from_file["pickup_pref"]
@@ -165,6 +167,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
can_be_drop_prey = FALSE
if(isnull(can_be_drop_pred))
can_be_drop_pred = FALSE
+ if(isnull(allow_inbelly_spawning))
+ allow_inbelly_spawning = FALSE
if(isnull(allow_spontaneous_tf))
allow_spontaneous_tf = FALSE
if(isnull(step_mechanics_pref))
@@ -196,6 +200,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
"show_vore_fx" = show_vore_fx,
"can_be_drop_prey" = can_be_drop_prey,
"can_be_drop_pred" = can_be_drop_pred,
+ "allow_inbelly_spawning"= allow_inbelly_spawning,
"allow_spontaneous_tf" = allow_spontaneous_tf,
"step_mechanics_pref" = step_mechanics_pref,
"pickup_pref" = pickup_pref,
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index bd2f2af99dc..ea1a961efeb 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -228,6 +228,7 @@
"show_vore_fx" = host.show_vore_fx,
"can_be_drop_prey" = host.can_be_drop_prey,
"can_be_drop_pred" = host.can_be_drop_pred,
+ "allow_inbelly_spawning" = host.allow_inbelly_spawning,
"allow_spontaneous_tf" = host.allow_spontaneous_tf,
"step_mechanics_active" = host.step_mechanics_pref,
"pickup_mechanics_active" = host.pickup_pref,
@@ -306,7 +307,7 @@
return set_attr(usr, params)
if("saveprefs")
- if(!ishuman(host) && !issilicon(host))
+ if(host.real_name != host.client.prefs.real_name || (!ishuman(host) && !issilicon(host)))
var/choice = tgui_alert(usr, "Warning: Saving your vore panel while playing what is very-likely not your normal character will overwrite whatever character you have loaded in character setup. Maybe this is your 'playing a simple mob' slot, though. Are you SURE you want to overwrite your current slot with these vore bellies?", "WARNING!", list("No, abort!", "Yes, save."))
if(choice != "Yes, save.")
return TRUE
@@ -362,6 +363,12 @@
host.client.prefs_vr.can_be_drop_prey = host.can_be_drop_prey
unsaved_changes = TRUE
return TRUE
+ if("toggle_allow_inbelly_spawning")
+ host.allow_inbelly_spawning = !host.allow_inbelly_spawning
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.allow_inbelly_spawning = host.allow_inbelly_spawning
+ unsaved_changes = TRUE
+ return TRUE
if("toggle_allow_spontaneous_tf")
host.allow_spontaneous_tf = !host.allow_spontaneous_tf
if(host.client.prefs_vr)
diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
index 6a5ef9c82e8..761f1d7bd3c 100644
--- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
@@ -2296,15 +2296,72 @@ Departamental Swimsuits, for general use
colorswap(usr)
-//PastelPrinceDan: Masumi Maki
-/obj/item/clothing/under/fluff/masumi_overalls
- name = "white and blue overalls"
+//PastelPrinceDan: Masumi Maki & Hatterhat: Harold Robinson
+/obj/item/clothing/under/fluff/mechanic_overalls
+ name = "mechanic overalls"
desc = "A set of white and blue overalls, paired with a yellow shirt."
icon = 'icons/vore/custom_clothes_vr.dmi'
- icon_state = "masumioveralls"
- item_state = "masumioveralls"
+ icon_state = "mechaoveralls"
+ item_state = "mechaoveralls"
icon_override = 'icons/vore/custom_onmob_vr.dmi'
+//PastelPrinceDan: Masumi Maki & Hatterhat: Harold Robinson
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic
+ name = "mechanic winter coat"
+ desc = "A blue and yellow winter coat, worn only by overachievers."
+ icon = 'icons/vore/custom_clothes_vr.dmi'
+ icon_state = "mechacoat"
+
+ icon_override = 'icons/vore/custom_onmob_vr.dmi'
+ item_state = "mechacoat_mob"
+ hoodtype = /obj/item/clothing/head/hood/winter/fluff/mechanic
+
+/obj/item/clothing/head/hood/winter/fluff/mechanic
+ name = "mechanic winter hood"
+ desc = "A blue and yellow winter coat's hood."
+ icon = 'icons/vore/custom_clothes_vr.dmi'
+ icon_state = "mechahood"
+
+ icon_override = 'icons/vore/custom_onmob_vr.dmi'
+ item_state = "mechahood_mob"
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic/ui_action_click()
+ ToggleHood_mechacoat()
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic/equipped(mob/user, slot)
+ if(slot != slot_wear_suit)
+ RemoveHood_mechacoat()
+ ..()
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic/proc/RemoveHood_mechacoat()
+ icon_state = "mechacoat"
+ item_state = "mechacoat_mob"
+ hood_up = 0
+ if(ishuman(hood.loc))
+ var/mob/living/carbon/H = hood.loc
+ H.unEquip(hood, 1)
+ H.update_inv_wear_suit()
+ hood.loc = src
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic/proc/ToggleHood_mechacoat()
+ if(!hood_up)
+ if(ishuman(loc))
+ var/mob/living/carbon/human/H = loc
+ if(H.wear_suit != src)
+ to_chat(H, "You must be wearing [src] to put up the hood!")
+ return
+ if(H.head)
+ to_chat(H, "You're already wearing something on your head!")
+ return
+ else
+ H.equip_to_slot_if_possible(hood,slot_head,0,0,1)
+ hood_up = 1
+ icon_state = "mechacoat_t"
+ item_state = "mechacoat_mob_t"
+ H.update_inv_wear_suit()
+ else
+ RemoveHood_mechacoat()
+
//Pandora029 : Evelyn Tareen
/obj/item/clothing/suit/storage/hooded/wintercoat/security/fluff/evelyn
name = "warden's navy winter coat"
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index 8f1c678a0fd..7663a09ea4d 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -1397,4 +1397,25 @@
hold.can_hold = list(/obj/item/weapon/material/knife, /obj/item/weapon/reagent_containers/glass/bottle)
new /obj/item/weapon/material/knife/machete/hatchet/unathiknife/fluff/antoinette(hold)
- new /obj/item/weapon/reagent_containers/glass/bottle/poppy(hold)
\ No newline at end of file
+ new /obj/item/weapon/reagent_containers/glass/bottle/poppy(hold)
+
+
+//Hunterbirk - Amaryll
+//This is a 'technical item' which basically is meant to represent rippiing things up with bare claws.
+/obj/item/weapon/surgical/scalpel/amaryll_claws
+ name = "Amaryll's Claws"
+ desc = "This doesn't quite look like what it really is."
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "claws"
+ drop_sound = null
+ pickup_sound = null
+ origin_tech = null
+ matter = null
+
+//Coolcrow420 - Jade Davis
+/obj/item/weapon/stamp/fluff/jade_horror
+ name = "Council of Mid Horror rubber stamp"
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "stamp-midhorror"
+ stamptext = "This paper has been certified by The Council of Mid Horror"
+
diff --git a/code/modules/xenoarcheaology/tools/suspension_generator.dm b/code/modules/xenoarcheaology/tools/suspension_generator.dm
index 08d41fc1213..2f2c87954ee 100644
--- a/code/modules/xenoarcheaology/tools/suspension_generator.dm
+++ b/code/modules/xenoarcheaology/tools/suspension_generator.dm
@@ -13,6 +13,15 @@
/obj/machinery/suspension_gen/Initialize()
. = ..()
cell = new /obj/item/weapon/cell/high(src)
+ power_change()
+
+/obj/machinery/suspension_gen/power_change()
+ var/oldstat = stat
+ if(cell)
+ stat &= ~NOPOWER
+ else
+ stat |= NOPOWER
+ return (stat != oldstat)
/obj/machinery/suspension_gen/process()
if(suspension_field)
@@ -56,7 +65,7 @@
/obj/machinery/suspension_gen/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
var/list/data = ..()
-
+
data["cell"] = cell
data["cellCharge"] = cell?.charge
data["cellMaxCharge"] = cell?.maxcharge
diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt
index 1a4e4a0735a..38628e3e97c 100644
--- a/config/alienwhitelist.txt
+++ b/config/alienwhitelist.txt
@@ -30,8 +30,10 @@ funnyman2003 - Xenochimera
greennyy - Protean
h0lysquirr3l - Protean
hawkerthegreat - Vox
+heroman3003 - Xenochimera
hollifex - Diona
huenererschrecker - Xenochimera
+hunterbirk - Protean
hunterbirk - Xenochimera
idcaboutaname - Protean
inuzari - Diona
@@ -47,6 +49,7 @@ lizehrd - Xenochimera
lordlag - Black-Eyed Shadekin
losstinspess - Xenochimera
magpiemayhem - Vox
+magpiemayhem - Xenochimera
marcobarko - Protean
mewchild - Diona
mewchild - Vox
@@ -85,7 +88,6 @@ silvertalismen - Xenochimera
skylarks - Black-Eyed Shadekin
spirit1299 - Black-Eyed Shadekin
stackerrobot - Protean
-stobarico - Protean
storesund97 - Protean
syzygyrior - Black-Eyed Shadekin
tastypred - Black-Eyed Shadekin
@@ -112,4 +114,4 @@ xioen - Xenochimera
xonkon - Protean
zalvine - Shadekin Empathy
zammyman215 - Vox
-zeracyfr - Xenochimera
\ No newline at end of file
+zeracyfr - Xenochimera
diff --git a/icons/_nanomaps/tether_nanomap_z1.png b/icons/_nanomaps/tether_nanomap_z1.png
index e8510b3a4d0..1ad2755b7c8 100644
Binary files a/icons/_nanomaps/tether_nanomap_z1.png and b/icons/_nanomaps/tether_nanomap_z1.png differ
diff --git a/icons/_nanomaps/tether_nanomap_z2.png b/icons/_nanomaps/tether_nanomap_z2.png
index a2d478b413d..d30a99906b8 100644
Binary files a/icons/_nanomaps/tether_nanomap_z2.png and b/icons/_nanomaps/tether_nanomap_z2.png differ
diff --git a/icons/_nanomaps/tether_nanomap_z3.png b/icons/_nanomaps/tether_nanomap_z3.png
index 31ccab1e4fe..3c554121169 100644
Binary files a/icons/_nanomaps/tether_nanomap_z3.png and b/icons/_nanomaps/tether_nanomap_z3.png differ
diff --git a/icons/_nanomaps/tether_nanomap_z4.png b/icons/_nanomaps/tether_nanomap_z4.png
index 510d22b3d61..c2623219ee4 100644
Binary files a/icons/_nanomaps/tether_nanomap_z4.png and b/icons/_nanomaps/tether_nanomap_z4.png differ
diff --git a/icons/_nanomaps/tether_nanomap_z5.png b/icons/_nanomaps/tether_nanomap_z5.png
index 6a368871fdf..0e85f1c55ae 100644
Binary files a/icons/_nanomaps/tether_nanomap_z5.png and b/icons/_nanomaps/tether_nanomap_z5.png differ
diff --git a/icons/inventory/ears/mob.dmi b/icons/inventory/ears/mob.dmi
index 174ed17469e..95ec0e9c8a9 100644
Binary files a/icons/inventory/ears/mob.dmi and b/icons/inventory/ears/mob.dmi differ
diff --git a/icons/inventory/head/mob.dmi b/icons/inventory/head/mob.dmi
index 356aab58f57..c555efe874c 100644
Binary files a/icons/inventory/head/mob.dmi and b/icons/inventory/head/mob.dmi differ
diff --git a/icons/inventory/suit/item_vr.dmi b/icons/inventory/suit/item_vr.dmi
index 30fc4669552..0261f8b6a3b 100644
Binary files a/icons/inventory/suit/item_vr.dmi and b/icons/inventory/suit/item_vr.dmi differ
diff --git a/icons/inventory/suit/mob_vr.dmi b/icons/inventory/suit/mob_vr.dmi
index 4288fd03265..d5e2082d0e1 100644
Binary files a/icons/inventory/suit/mob_vr.dmi and b/icons/inventory/suit/mob_vr.dmi differ
diff --git a/icons/mob/alienanimals_x32.dmi b/icons/mob/alienanimals_x32.dmi
index ca7a825c23f..b187ad58735 100644
Binary files a/icons/mob/alienanimals_x32.dmi and b/icons/mob/alienanimals_x32.dmi differ
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index fd99eed3f02..def737dcc36 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/items/lefthand_holder.dmi b/icons/mob/items/lefthand_holder.dmi
index e0af896f82e..aa7e7807cca 100644
Binary files a/icons/mob/items/lefthand_holder.dmi and b/icons/mob/items/lefthand_holder.dmi differ
diff --git a/icons/mob/items/righthand_holder.dmi b/icons/mob/items/righthand_holder.dmi
index 70a11311907..bad25f481b9 100644
Binary files a/icons/mob/items/righthand_holder.dmi and b/icons/mob/items/righthand_holder.dmi differ
diff --git a/icons/mob/robots_vr.dmi b/icons/mob/robots_vr.dmi
index 2e34ed66d5f..a05fa9c79f0 100644
Binary files a/icons/mob/robots_vr.dmi and b/icons/mob/robots_vr.dmi differ
diff --git a/icons/mob/snake_vr.dmi b/icons/mob/snake_vr.dmi
index 42631b85de9..6802aecc476 100644
Binary files a/icons/mob/snake_vr.dmi and b/icons/mob/snake_vr.dmi differ
diff --git a/icons/mob/vore/ears_32x64.dmi b/icons/mob/vore/ears_32x64.dmi
index d790034cda3..234a03f2ca8 100644
Binary files a/icons/mob/vore/ears_32x64.dmi and b/icons/mob/vore/ears_32x64.dmi differ
diff --git a/icons/mob/widerobot_eng_vr.dmi b/icons/mob/widerobot_eng_vr.dmi
index b5c55b53c8c..a619f3286c4 100644
Binary files a/icons/mob/widerobot_eng_vr.dmi and b/icons/mob/widerobot_eng_vr.dmi differ
diff --git a/icons/obj/capture_crystal_vr.dmi b/icons/obj/capture_crystal_vr.dmi
new file mode 100644
index 00000000000..7cd9208b2b9
Binary files /dev/null and b/icons/obj/capture_crystal_vr.dmi differ
diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi
index a52ac02d69b..8ae5c06b72f 100644
Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ
diff --git a/icons/obj/device_vr.dmi b/icons/obj/device_vr.dmi
index b75163e8810..3c4a3c5d09c 100644
Binary files a/icons/obj/device_vr.dmi and b/icons/obj/device_vr.dmi differ
diff --git a/icons/obj/food_vr.dmi b/icons/obj/food_vr.dmi
index 0530aef4550..64b55a6b26b 100644
Binary files a/icons/obj/food_vr.dmi and b/icons/obj/food_vr.dmi differ
diff --git a/icons/obj/hydroponics_growing.dmi b/icons/obj/hydroponics_growing.dmi
index 52146b3793e..0a0a96aa6fc 100644
Binary files a/icons/obj/hydroponics_growing.dmi and b/icons/obj/hydroponics_growing.dmi differ
diff --git a/icons/obj/hydroponics_products.dmi b/icons/obj/hydroponics_products.dmi
index cb0e5036928..fd04428843a 100644
Binary files a/icons/obj/hydroponics_products.dmi and b/icons/obj/hydroponics_products.dmi differ
diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi
index a63fcc23a85..841733ee726 100644
Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ
diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi
index 2ed8360e956..f7d75f25b65 100644
Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ
diff --git a/icons/obj/sofas.dmi b/icons/obj/sofas.dmi
index 9864a923acc..b8ef1d5c0a0 100644
Binary files a/icons/obj/sofas.dmi and b/icons/obj/sofas.dmi differ
diff --git a/icons/turf/flooring/weird_vr.dmi b/icons/turf/flooring/weird_vr.dmi
new file mode 100644
index 00000000000..b8e10ec136c
Binary files /dev/null and b/icons/turf/flooring/weird_vr.dmi differ
diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi
index 5d75cf88b90..3269a00d083 100644
Binary files a/icons/vore/custom_clothes_vr.dmi and b/icons/vore/custom_clothes_vr.dmi differ
diff --git a/icons/vore/custom_items_vr.dmi b/icons/vore/custom_items_vr.dmi
index b8fe78c7591..b98f92406f2 100644
Binary files a/icons/vore/custom_items_vr.dmi and b/icons/vore/custom_items_vr.dmi differ
diff --git a/icons/vore/custom_onmob_vr.dmi b/icons/vore/custom_onmob_vr.dmi
index 5e2d399fd86..03c26ba63d0 100644
Binary files a/icons/vore/custom_onmob_vr.dmi and b/icons/vore/custom_onmob_vr.dmi differ
diff --git a/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm b/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm
index f08d716e93a..a1f2dbd4cf5 100644
--- a/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm
+++ b/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm
@@ -280,6 +280,14 @@ VIRGO2_TURF_CREATE(/turf/simulated/floor/hull)
name = "Firing Range"
icon_state = "orawhisqu"
+/area/offmap/aerostat/inside/miscstorage
+ name = "Miscellaneous Storage"
+ icon_state = "orawhisqu"
+
+/area/offmap/aerostat/inside/virology
+ name = "Virology Lab"
+ icon_state = "yelwhicir"
+
/area/offmap/aerostat/inside/south
name = "Miscellaneous Labs A"
icon_state = "blublasqu"
diff --git a/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm b/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm
index 117275c22c0..d3dae2538ea 100644
--- a/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm
+++ b/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm
@@ -195,6 +195,15 @@
},
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
+"aA" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"aB" = (
/obj/effect/floor_decal/rust,
/obj/effect/floor_decal/industrial/warning/dust{
@@ -216,11 +225,11 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/airlock/west)
"aF" = (
-/obj/machinery/atmospherics/unary/heat_exchanger,
-/obj/structure/window/basic,
-/obj/effect/floor_decal/corner/red/border,
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/toxins)
+/obj/machinery/atmospherics/unary/freezer{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/northchamb)
"aG" = (
/obj/machinery/power/solar,
/obj/effect/floor_decal/rust,
@@ -229,16 +238,19 @@
},
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
-"aH" = (
-/turf/simulated/wall,
-/area/offmap/aerostat/inside/misclab)
"aI" = (
/obj/machinery/atmospherics/pipe/simple/hidden/blue,
+/obj/structure/bed/chair/office/light{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"aJ" = (
/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/telecomms/relay/preset/sd,
+/obj/machinery/telecomms/relay/preset/station,
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
@@ -256,6 +268,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
+/obj/structure/table/wooden_reinforced,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"aN" = (
@@ -418,7 +431,10 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/north)
"bj" = (
-/obj/effect/floor_decal/industrial/warning/dust,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/sign/painting/public{
+ pixel_x = 30
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"bk" = (
@@ -454,16 +470,6 @@
},
/turf/simulated/floor,
/area/offmap/aerostat/inside/airlock/north)
-"bm" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/manifold/hidden{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
"bn" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
@@ -497,15 +503,13 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/north)
"bq" = (
-/obj/effect/floor_decal/industrial/warning/dust{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
+/obj/machinery/vending/fitness{
+ dir = 1
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"br" = (
@@ -558,11 +562,6 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
-"bx" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/table/reinforced,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
"bz" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
@@ -586,9 +585,6 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"bC" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Toxins Lab"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/green{
dir = 4
},
@@ -596,24 +592,27 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/toxins)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
"bE" = (
/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 1
},
/turf/simulated/wall/r_wall,
/area/offmap/aerostat/inside/xenoarch)
+"bF" = (
+/obj/structure/bed/chair/comfy/black,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"bG" = (
-/obj/structure/table/standard,
-/obj/item/stack/cable_coil,
-/obj/item/weapon/tool/wirecutters,
-/obj/item/stack/cable_coil,
-/obj/machinery/atmospherics/unary/vent_pump/on{
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/item/weapon/tank/phoron,
+/obj/machinery/portable_atmospherics/canister/empty,
+/obj/machinery/door/window/brigdoor/eastleft{
+ dir = 2;
+ req_access = list(7)
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"bI" = (
@@ -677,15 +676,11 @@
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
-"bO" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
"bP" = (
/obj/machinery/atmospherics/pipe/simple/hidden/red,
/obj/machinery/meter,
@@ -697,11 +692,8 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"bR" = (
-/obj/machinery/atmospherics/pipe/simple/visible/red{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -714,20 +706,6 @@
},
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
-"bT" = (
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/floor_decal/industrial/warning,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
- },
-/obj/machinery/alarm{
- dir = 4;
- pixel_x = -23
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"bU" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 8
@@ -742,7 +720,7 @@
dir = 4
},
/turf/simulated/wall,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"bW" = (
/obj/machinery/atmospherics/pipe/simple/hidden/green{
dir = 9
@@ -789,6 +767,12 @@
/obj/machinery/light,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
+"ci" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/northchamb)
"cj" = (
/obj/structure/closet/emcloset,
/turf/simulated/shuttle/floor/yellow,
@@ -828,7 +812,6 @@
/obj/structure/cable/heavyduty{
icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"cp" = (
@@ -847,6 +830,9 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"cr" = (
@@ -866,6 +852,12 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/xenoarch)
+"cs" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/miscstorage)
"ct" = (
/obj/machinery/door/airlock/external{
frequency = 1380;
@@ -935,14 +927,12 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/arm/nw)
"cz" = (
-/obj/machinery/light{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
+ dir = 9
},
+/obj/structure/closet/wardrobe/genetics_white,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/genetics)
"cA" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/green,
/turf/simulated/floor/tiled/techfloor,
@@ -960,6 +950,12 @@
/obj/machinery/meter,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
+"cD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"cE" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/black,
/turf/simulated/floor/tiled/techfloor,
@@ -968,8 +964,19 @@
/obj/machinery/atmospherics/pipe/simple/hidden/red{
dir = 6
},
+/obj/machinery/light,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
+"cG" = (
+/obj/machinery/light/floortube{
+ dir = 4;
+ pixel_x = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"cI" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 1
@@ -1006,6 +1013,20 @@
},
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/sw)
+"cM" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/storage/lockbox/vials,
+/obj/item/weapon/storage/fancy/vials,
+/obj/item/weapon/reagent_containers/syringe/antiviral,
+/obj/item/weapon/reagent_containers/syringe/antiviral,
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"cO" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -1033,6 +1054,12 @@
},
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
+"cQ" = (
+/obj/structure/dispenser{
+ phorontanks = 0
+ },
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/drillstorage)
"cR" = (
/obj/structure/bed/chair/sofa/purp/left,
/obj/structure/sign/painting/public{
@@ -1040,6 +1067,10 @@
},
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
+"cT" = (
+/obj/machinery/smartfridge/chemistry/virology,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"cU" = (
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/sw)
@@ -1059,12 +1090,15 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch/chamber)
"cX" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 1
- },
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"cZ" = (
@@ -1289,6 +1323,19 @@
},
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/ne)
+"dz" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/window/basic,
+/obj/structure/window/basic{
+ dir = 8
+ },
+/obj/machinery/atmospherics/unary/heat_exchanger,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner/red/border,
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/toxins)
"dA" = (
/obj/effect/floor_decal/rust,
/obj/effect/decal/cleanable/blood,
@@ -1352,8 +1399,24 @@
/area/offmap/aerostat/solars)
"dH" = (
/obj/structure/table/standard,
+/obj/item/weapon/storage/backpack/parachute{
+ pixel_x = 6;
+ pixel_y = -6
+ },
+/obj/item/weapon/storage/backpack/parachute{
+ pixel_x = -6;
+ pixel_y = -6
+ },
+/obj/item/weapon/storage/backpack/parachute{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/weapon/storage/backpack/parachute{
+ pixel_x = -6;
+ pixel_y = 6
+ },
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/telesci)
+/area/offmap/aerostat/inside/miscstorage)
"dI" = (
/obj/machinery/power/solar,
/obj/effect/floor_decal/industrial/warning/dust,
@@ -1517,12 +1580,8 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/nw)
"dY" = (
-/obj/effect/floor_decal/industrial/warning/dust{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/shuttle/wall/voidcraft/green,
+/area/offmap/aerostat/inside/atmos)
"dZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/structure/cable{
@@ -1561,6 +1620,8 @@
/area/offmap/aerostat/inside/airlock/east)
"ed" = (
/obj/machinery/light,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/mining/brace,
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
"ef" = (
@@ -1568,7 +1629,7 @@
icon_state = "4-8"
},
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"ei" = (
/obj/effect/floor_decal/rust,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
@@ -1586,39 +1647,55 @@
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/easthall)
"el" = (
-/obj/machinery/atmospherics/portables_connector{
+/obj/machinery/atmospherics/pipe/tank/phoron{
dir = 8
},
-/obj/machinery/alarm{
- dir = 8;
- pixel_x = 23
- },
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"er" = (
/obj/structure/cable{
icon_state = "1-2"
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
+"ev" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/storage/box/monkeycubes,
+/obj/item/weapon/storage/box/monkeycubes/wolpincubes,
+/obj/machinery/light,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"ey" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/hidden{
- dir = 8
- },
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"ez" = (
/obj/machinery/atmospherics/pipe/simple/hidden/green{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
+"eA" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/wall,
-/area/offmap/aerostat/inside/toxins)
+/obj/machinery/light/floortube{
+ dir = 4;
+ pixel_x = 5
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/firingrange)
"eE" = (
/obj/structure/bed/chair/sofa/purp/right,
/obj/structure/sign/painting/public{
@@ -1643,6 +1720,12 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/xenoarch)
+"eJ" = (
+/obj/structure/bed/chair/comfy/black{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"eL" = (
/obj/effect/floor_decal/rust,
/obj/structure/cable/yellow{
@@ -1652,37 +1735,45 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"eM" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 5
- },
+/obj/machinery/atmospherics/pipe/simple/hidden/black,
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"eN" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/wall,
/area/offmap/aerostat/inside/firingrange)
"eO" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/black{
- dir = 1
+/obj/machinery/atmospherics/pipe/manifold/hidden/red{
+ dir = 8
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"eP" = (
/obj/machinery/camera/network/research_outpost{
dir = 4
},
-/obj/structure/flora/pottedplant/unusual,
+/obj/structure/bed/chair/sofa/purp/left{
+ dir = 4
+ },
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"eR" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "4-8"
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_research{
+ name = "Xenoarchaeology Storage"
+ },
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/xenoarch)
"eT" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -1694,34 +1785,35 @@
/obj/effect/floor_decal/industrial/warning{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/manifold/hidden{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"eV" = (
/obj/structure/sign/painting/public{
pixel_x = -30
},
+/obj/structure/bed/chair/sofa/purp/right{
+ dir = 4
+ },
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"eW" = (
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"eX" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 10
- },
+/obj/machinery/atmospherics/pipe/simple/hidden/black,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"eZ" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden{
- dir = 8
- },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"fa" = (
@@ -1735,6 +1827,14 @@
"fb" = (
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/ne)
+"fc" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/blood/oil,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"fe" = (
/obj/effect/decal/cleanable/cobweb2,
/obj/effect/floor_decal/rust,
@@ -1754,8 +1854,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/black{
dir = 4
},
+/obj/machinery/light,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"fg" = (
/obj/effect/floor_decal/rust,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
@@ -1767,18 +1868,37 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"fh" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 4
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
"fi" = (
-/obj/structure/table/standard,
-/obj/machinery/computer/atmoscontrol/laptop{
- monitored_alarm_ids = list("anomaly_testing");
- req_one_access = list(47,24,11)
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 4
},
-/turf/simulated/floor/tiled/white,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/simulated/wall,
/area/offmap/aerostat/inside/xenoarch)
"fj" = (
/obj/machinery/atmospherics/pipe/manifold/hidden{
@@ -1797,37 +1917,43 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/north)
"fn" = (
-/obj/structure/bed/chair/office/light{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/tiled,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/xenoarch)
"fo" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 5
- },
/obj/structure/cable{
icon_state = "1-2"
},
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"fp" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/firedoor/glass,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
+"fr" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/drillstorage)
"ft" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
+/obj/machinery/vending/sovietsoda{
+ dir = 8
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"fw" = (
@@ -1841,16 +1967,16 @@
/area/offmap/aerostat/inside/southchamb)
"fx" = (
/obj/structure/bed/chair/office/light{
- dir = 4
+ dir = 1
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
-"fA" = (
-/obj/machinery/light/small{
- dir = 1
+"fC" = (
+/obj/machinery/atmospherics/portables_connector{
+ dir = 4
},
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"fD" = (
/obj/machinery/atmospherics/pipe/simple/hidden/green,
/obj/machinery/atmospherics/pipe/simple/hidden/black{
@@ -1872,6 +1998,9 @@
/obj/structure/cable{
icon_state = "2-8"
},
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"fI" = (
@@ -1887,12 +2016,12 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"fJ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
/obj/structure/table/reinforced,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
@@ -1921,20 +2050,22 @@
/obj/effect/floor_decal/rust,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/arm/nw)
+"fP" = (
+/obj/structure/bed/chair/comfy/black{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"fQ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"fR" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/light_switch{
- pixel_y = 24
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/machinery/portable_atmospherics/powered/scrubber,
+/turf/simulated/floor/plating,
+/area/offmap/aerostat/inside/toxins)
"fS" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -1949,12 +2080,19 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/machinery/chem_master,
+/obj/machinery/camera/network/research_outpost{
+ dir = 8
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"fV" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/wall,
/area/offmap/aerostat/inside/atmos)
"fW" = (
@@ -1967,13 +2105,26 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/airlock/north)
+"fX" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/window/reinforced/full,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"fY" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/machinery/atmospherics/pipe/manifold/hidden{
+ dir = 4
+ },
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"ga" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -1981,6 +2132,10 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
+"gb" = (
+/obj/machinery/computer/centrifuge,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"gd" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 1
@@ -2000,7 +2155,7 @@
/turf/simulated/shuttle/wall/voidcraft/hard_corner{
stripe_color = "#00FF00"
},
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/westhall)
"gh" = (
/obj/machinery/atmospherics/binary/pump/on{
dir = 1
@@ -2021,8 +2176,23 @@
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 5
},
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/machinery/light{
+ dir = 4
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
+"gl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/miscstorage)
"gs" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
@@ -2049,11 +2219,19 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/floor_decal/rust,
+/obj/structure/sign/poster{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"gx" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/tiled,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
"gy" = (
/obj/structure/closet/crate/bin{
@@ -2061,6 +2239,17 @@
},
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
+"gz" = (
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_research{
+ name = "Telescience"
+ },
+/obj/machinery/door/blast/regular/open{
+ id = telesci_blast;
+ name = "Blast Door"
+ },
+/turf/simulated/floor/reinforced,
+/area/offmap/aerostat/inside/telesci)
"gC" = (
/obj/machinery/alarm{
pixel_y = 26
@@ -2074,33 +2263,31 @@
/obj/structure/extinguisher_cabinet{
pixel_x = -28
},
-/obj/machinery/atmospherics/unary/vent_pump/on{
+/obj/effect/floor_decal/rust,
+/obj/effect/floor_decal/industrial/outline/red,
+/obj/structure/anomaly_container,
+/obj/machinery/light{
dir = 8
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"gG" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 9
+/obj/machinery/atmospherics/portables_connector{
+ dir = 8
},
+/obj/machinery/portable_atmospherics/canister/air,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"gK" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/atmos)
"gL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/blue{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/cable/heavyduty{
+ icon_state = "2-8"
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -2124,6 +2311,12 @@
dir = 4;
pixel_x = 5
},
+/obj/structure/bed/chair/comfy/black{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"gQ" = (
@@ -2149,7 +2342,7 @@
dir = 4
},
/turf/simulated/wall,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"gS" = (
/obj/machinery/door/airlock/external{
frequency = 1380;
@@ -2168,26 +2361,32 @@
},
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
+"gU" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/blast/regular/open{
+ id = telesci_blast;
+ name = "Blast Door"
+ },
+/turf/simulated/floor/reinforced,
+/area/offmap/aerostat/inside/telesci)
"gV" = (
-/obj/machinery/atmospherics/binary/pump/on{
- name = "N2O pump"
+/obj/machinery/atmospherics/omni/atmos_filter{
+ name = "Phoron Filter";
+ tag_east = 6;
+ tag_north = 1;
+ tag_south = 2
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"gW" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/manifold/hidden{
- dir = 8
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/atmos)
"gX" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/red{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"gZ" = (
@@ -2243,16 +2442,21 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/manifold4w/hidden,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"hn" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"hp" = (
-/obj/effect/floor_decal/industrial/warning/dust{
- dir = 4
+/obj/machinery/light{
+ dir = 8
},
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/atmos)
+"hn" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/plating/virgo2,
+/area/offmap/aerostat/inside/atmos)
+"hp" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
@@ -2275,42 +2479,48 @@
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
"hs" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
+/obj/structure/sign/poster{
+ dir = 4;
+ pixel_x = 32
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"hu" = (
/obj/machinery/atmospherics/pipe/simple/visible/red{
- dir = 4
+ dir = 10
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"hv" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 9
- },
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
-"hA" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/floor_decal/industrial/warning{
- dir = 8
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
-"hB" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+"hw" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/reagent_containers/dropper,
+/obj/item/weapon/reagent_containers/glass/beaker,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
-/obj/machinery/camera/network/research_outpost{
- dir = 4
+/obj/machinery/light{
+ dir = 8
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/virology)
+"hA" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/closet/crate,
+/obj/random/maintenance/research,
+/obj/random/maintenance/research,
+/obj/random/tool,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"hC" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
@@ -2331,18 +2541,6 @@
},
/turf/simulated/shuttle/floor/yellow,
/area/shuttle/aerostat)
-"hG" = (
-/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
- scrub_id = "science_outpost"
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
-"hJ" = (
-/obj/machinery/light{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
"hL" = (
/obj/structure/window/reinforced{
dir = 8
@@ -2352,12 +2550,6 @@
/obj/structure/grille,
/turf/simulated/floor,
/area/offmap/aerostat/inside/toxins)
-"hM" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
"hN" = (
/obj/structure/table/rack/shelf,
/turf/simulated/floor/tiled/techfloor,
@@ -2369,9 +2561,8 @@
/turf/simulated/shuttle/floor/yellow,
/area/shuttle/aerostat)
"hQ" = (
-/obj/effect/floor_decal/industrial/outline/yellow,
/obj/machinery/mech_recharger,
-/turf/simulated/floor/tiled,
+/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/drillstorage)
"hS" = (
/obj/machinery/alarm{
@@ -2414,36 +2605,50 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/structure/flora/pottedplant/minitree,
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
"ie" = (
/turf/simulated/wall,
/area/offmap/aerostat/inside/zorrenoffice)
"if" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
},
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/obj/machinery/camera/network/research_outpost,
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/westhall)
"ig" = (
-/obj/structure/bed/chair/office/light{
- dir = 8
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/structure/window/reinforced{
+ dir = 4
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"ii" = (
-/obj/machinery/atmospherics/pipe/manifold/visible{
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
dir = 4
},
-/obj/machinery/meter,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
-"il" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
+"ik" = (
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
+"il" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
},
/obj/machinery/power/apc{
dir = 1;
@@ -2455,15 +2660,32 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"io" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/machinery/bomb_tester,
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/door/window/brigdoor/eastleft{
+ dir = 2;
+ req_access = list(7)
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"is" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/curtain/open/shower/medical,
+/obj/machinery/shower{
+ pixel_y = 13
+ },
+/turf/simulated/floor/tiled/dark,
+/area/offmap/aerostat/inside/virology)
"it" = (
/obj/machinery/light,
/obj/machinery/atmospherics/unary/vent_pump/on{
@@ -2489,16 +2711,6 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/east)
-"iB" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 6
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
"iC" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -2511,7 +2723,6 @@
/obj/machinery/alarm{
pixel_y = 26
},
-/obj/structure/flora/pottedplant/unusual,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
"iK" = (
@@ -2539,6 +2750,12 @@
/obj/effect/floor_decal/rust,
/turf/simulated/floor/plating/virgo2,
/area/shuttle/aerostat)
+"iQ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"iU" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -2546,9 +2763,7 @@
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/ne)
"iV" = (
-/obj/machinery/atmospherics/pipe/simple/visible{
- dir = 5
- },
+/obj/machinery/atmospherics/pipe/simple/visible,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"iW" = (
@@ -2574,14 +2789,19 @@
/obj/effect/floor_decal/industrial/danger{
dir = 8
},
+/obj/machinery/light{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"iZ" = (
/obj/machinery/camera/network/research_outpost{
dir = 4
},
+/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/structure/closet/wardrobe/genetics_white,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/genetics)
"ja" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 4
@@ -2605,31 +2825,27 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"ji" = (
/obj/machinery/atmospherics/pipe/simple/hidden/blue{
dir = 10
},
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "2-4"
},
-/obj/machinery/medical_kiosk,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"jj" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
-/obj/machinery/atmospherics/unary/freezer{
- dir = 8;
- icon_state = "freezer"
- },
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"jl" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
frequency = 1452
@@ -2638,6 +2854,12 @@
/obj/effect/floor_decal/rust,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/xenoarch/chamber)
+"jm" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/arm/ne)
"jn" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -2658,20 +2880,21 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"ju" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/structure/window/reinforced,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"jw" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 9
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
+"jw" = (
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/misclab)
"jy" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
@@ -2683,13 +2906,16 @@
/obj/structure/sign/painting/public{
pixel_y = 30
},
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"jE" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 8
},
-/obj/structure/table/glass,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"jF" = (
@@ -2706,15 +2932,17 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"jH" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 4
- },
/obj/structure/cable{
icon_state = "2-4"
},
/obj/structure/cable{
icon_state = "2-8"
},
+/obj/machinery/atmospherics/trinary/mixer/m_mixer{
+ dir = 4;
+ name = "High Power Gas mixer";
+ power_rating = 15000
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"jI" = (
@@ -2726,9 +2954,6 @@
},
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch/chamber)
-"jJ" = (
-/turf/simulated/shuttle/wall/voidcraft/green/virgo2/nocol,
-/area/offmap/aerostat/inside/airlock/east)
"jL" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
@@ -2749,17 +2974,19 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"jN" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/machinery/pipedispenser,
+/turf/simulated/floor/plating,
+/area/offmap/aerostat/inside/toxins)
"jQ" = (
-/obj/machinery/light/floortube{
- dir = 8;
- pixel_x = -6
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/simulated/floor/tiled/white,
+/obj/machinery/door/airlock/glass_research{
+ name = "Telescience"
+ },
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/telesci)
"jR" = (
/obj/effect/floor_decal/rust,
@@ -2771,12 +2998,6 @@
},
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
-"jS" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden{
- dir = 1
- },
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
"jT" = (
/obj/structure/table/standard,
/obj/item/weapon/tool/wrench{
@@ -2787,6 +3008,9 @@
pixel_x = 2;
pixel_y = 2
},
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"jU" = (
@@ -2799,11 +3023,9 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/arm/se)
"jV" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 1
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/obj/structure/flora/ausbushes/ppflowers,
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
"jW" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -2823,9 +3045,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"ka" = (
/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 1
@@ -2870,6 +3093,9 @@
/obj/structure/cable{
icon_state = "2-4"
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"kg" = (
@@ -2878,7 +3104,7 @@
},
/obj/effect/map_helper/airlock/sensor/ext_sensor,
/turf/simulated/shuttle/wall/voidcraft/green/virgo2/nocol,
-/area/offmap/aerostat/inside/airlock/east)
+/area/offmap/aerostat/inside/virology)
"kk" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -2903,7 +3129,7 @@
},
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/plating/virgo2,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"kp" = (
/obj/effect/floor_decal/rust,
/obj/effect/floor_decal/industrial/warning/dust{
@@ -2915,11 +3141,15 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"kq" = (
-/obj/machinery/camera/network/research_outpost{
- dir = 4
+/obj/machinery/power/apc{
+ dir = 4;
+ pixel_x = 28
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/misclab)
"ks" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 4
@@ -2958,6 +3188,9 @@
/obj/machinery/camera/network/research_outpost{
dir = 8
},
+/obj/structure/bed/chair/sofa/purp/right{
+ dir = 8
+ },
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"kD" = (
@@ -3033,27 +3266,27 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/powercontrol)
"kO" = (
-/obj/machinery/atmospherics/pipe/simple/visible/red{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
- },
/obj/machinery/camera/network/research_outpost{
dir = 1
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"kR" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
},
-/obj/machinery/atmospherics/binary/pump/on,
/obj/structure/cable{
icon_state = "1-2"
},
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
+"kS" = (
+/obj/machinery/atmospherics/pipe/manifold/visible,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"kV" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -3078,54 +3311,34 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/northchamb)
"lb" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/floor_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 1
- },
-/obj/machinery/camera/network/research_outpost{
- dir = 1
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/structure/window/reinforced/full,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"lc" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/autolathe,
/obj/machinery/camera/network/research_outpost{
dir = 4
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
"ld" = (
-/obj/machinery/atmospherics/pipe/simple/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
-"le" = (
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 8
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/effect/floor_decal/industrial/warning/corner,
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/northchamb)
"lh" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 1
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/visible{
+ dir = 8
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -3138,13 +3351,18 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/north)
"lk" = (
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/machinery/door/window/brigdoor/eastleft{
- req_access = list(7)
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 4
},
-/obj/structure/window/reinforced,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/sign/directions/science/xenoarch,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
"ll" = (
/obj/machinery/atmospherics/pipe/simple/insulated{
dir = 5
@@ -3162,10 +3380,12 @@
},
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/sw)
-"lq" = (
-/obj/effect/floor_decal/industrial/outline/red,
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+"lr" = (
+/obj/machinery/atmospherics/valve{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"ls" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 6
@@ -3190,7 +3410,7 @@
},
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/plating/virgo2,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"lv" = (
/obj/machinery/atmospherics/portables_connector{
dir = 1
@@ -3198,14 +3418,32 @@
/obj/effect/floor_decal/industrial/warning/cee{
dir = 1
},
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 6
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"lx" = (
/obj/machinery/camera/network/research_outpost{
dir = 4
},
+/obj/structure/sign/painting/public{
+ pixel_x = -30
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
+"ly" = (
+/obj/machinery/light_switch{
+ pixel_y = 25
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"lz" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -3223,38 +3461,33 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"lA" = (
-/obj/machinery/mining/drill,
-/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/mineral/equipment_vendor,
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
-"lD" = (
-/obj/effect/floor_decal/industrial/warning{
+"lC" = (
+/obj/machinery/atmospherics/portables_connector{
dir = 8
},
-/obj/effect/floor_decal/industrial/warning{
- dir = 4
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/floor_decal/rust,
+/obj/machinery/camera/network/research_outpost{
+ dir = 8
},
-/obj/machinery/light,
/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/arm/se)
"lG" = (
-/obj/structure/table/standard,
-/obj/item/weapon/folder/white,
-/obj/item/weapon/pen,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
-/turf/simulated/floor/tiled,
+/obj/machinery/light/small,
+/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
"lH" = (
-/obj/effect/floor_decal/industrial/warning/dust{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/atmos)
"lI" = (
/obj/machinery/door/window/brigdoor/eastleft{
dir = 1;
@@ -3263,8 +3496,16 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/firingrange)
"lK" = (
-/obj/machinery/atmospherics/pipe/simple/visible{
- dir = 10
+/obj/machinery/atmospherics/portables_connector{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 24;
+ pixel_y = -5
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -3287,19 +3528,24 @@
},
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
-"lR" = (
-/obj/machinery/medical_kiosk,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+"lP" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
+"lS" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/northchamb)
"lT" = (
-/obj/machinery/pipedispenser,
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"lW" = (
-/obj/machinery/light/floortube{
- dir = 8;
- pixel_x = -6
- },
+/obj/machinery/atmospherics/binary/pump,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"lX" = (
@@ -3323,10 +3569,18 @@
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
-"mg" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+"md" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
},
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
+"me" = (
+/obj/machinery/light,
+/obj/structure/flora/ausbushes/ywflowers,
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
+"mg" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 1
},
@@ -3336,28 +3590,45 @@
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
"mi" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/obj/structure/window/reinforced,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"mj" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/floor_decal/rust,
+/obj/random/maintenance/research,
+/obj/random/firstaid,
+/obj/random/maintenance/engineering,
+/obj/random/soap,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"mk" = (
/obj/machinery/atmospherics/pipe/simple/visible/blue{
dir = 10
},
/obj/machinery/meter,
-/obj/machinery/camera/network/research_outpost{
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
+"mm" = (
+/obj/effect/floor_decal/industrial/warning,
+/obj/structure/table/reinforced,
+/obj/item/clothing/glasses/goggles,
+/obj/item/clothing/ears/earmuffs,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/firingrange)
"mn" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/machinery/door/airlock/glass_external/public,
@@ -3376,6 +3647,26 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
+"mp" = (
+/obj/structure/bed/chair/office/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
+"ms" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_research{
+ name = "Genetics Lab"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/genetics)
"mt" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -3386,6 +3677,7 @@
/obj/machinery/alarm{
pixel_y = 26
},
+/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"mx" = (
@@ -3396,11 +3688,6 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/north)
-"mz" = (
-/obj/effect/floor_decal/industrial/outline/red,
-/obj/structure/anomaly_container,
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"mA" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
@@ -3413,14 +3700,15 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"mD" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/green{
- dir = 6
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/door/window/brigdoor/eastleft{
+ dir = 2;
+ req_access = list(7)
},
-/obj/effect/floor_decal/industrial/warning/cee,
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"mE" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -3463,28 +3751,39 @@
dir = 4
},
/obj/structure/table/standard,
+/obj/random/tool,
+/obj/random/tool,
+/obj/structure/sign/poster{
+ dir = 4;
+ pixel_x = 32
+ },
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/telesci)
+/area/offmap/aerostat/inside/miscstorage)
+"mI" = (
+/obj/structure/table/standard,
+/obj/item/weapon/reagent_containers/glass/bucket,
+/obj/item/stack/nanopaste,
+/obj/item/device/flashlight/lamp{
+ pixel_x = 5;
+ pixel_y = 9
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
+"mJ" = (
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/machinery/portable_atmospherics/powered/pump,
+/turf/simulated/floor/plating,
+/area/offmap/aerostat/inside/toxins)
"mL" = (
/obj/machinery/light{
dir = 1
},
-/obj/item/modular_computer/console,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
-"mM" = (
-/obj/machinery/light{
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 10
- },
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
- },
-/obj/machinery/portable_atmospherics/canister/air,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/toxins)
"mN" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/arm/nw)
@@ -3532,16 +3831,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/easthall)
-"mY" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 10
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
"mZ" = (
/obj/effect/floor_decal/rust,
/obj/structure/cable/yellow{
@@ -3560,14 +3849,22 @@
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
"nb" = (
-/obj/machinery/vending/tool,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ dir = 4;
+ pixel_x = 28
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"nf" = (
-/obj/machinery/atmospherics/pipe/manifold/visible{
- dir = 8
+/obj/machinery/atmospherics/trinary/atmos_filter{
+ dir = 4;
+ name = "High Power Gas filter";
+ power_rating = 15000;
+ use_power = 0
},
-/obj/machinery/meter,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"nh" = (
@@ -3578,14 +3875,27 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"ni" = (
+/obj/effect/floor_decal/rust,
+/obj/machinery/power/apc{
+ dir = 4;
+ pixel_x = 28
+ },
+/obj/structure/cable,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/westhall)
"nm" = (
-/obj/machinery/atmospherics/unary/freezer{
- dir = 8
+/obj/machinery/atmospherics/binary/pump/on{
+ name = "Scrubber to Waste"
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"no" = (
/obj/machinery/atmospherics/omni/mixer{
name = "Air Mixer";
@@ -3635,16 +3945,15 @@
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/door/airlock/glass_research{
- name = "Toxins Lab";
- req_one_access = null
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_research{
+ name = "Toxins Lab"
+ },
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
"nw" = (
@@ -3669,10 +3978,11 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
"nB" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/black,
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/manifold4w/visible,
+/obj/machinery/meter,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"nE" = (
@@ -3694,6 +4004,15 @@
},
/turf/simulated/floor,
/area/offmap/aerostat/inside/firingrange)
+"nG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/easthall)
"nJ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
@@ -3701,15 +4020,6 @@
},
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/firingrange)
-"nK" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/wall,
-/area/offmap/aerostat/inside/toxins)
"nL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/bluegrid,
@@ -3774,10 +4084,10 @@
/turf/simulated/floor/reinforced/airless,
/area/offmap/aerostat/inside/toxins)
"nV" = (
-/obj/structure/cable/heavyduty{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/green,
+/obj/machinery/portable_atmospherics/powered/pump,
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/machinery/light,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"nW" = (
@@ -3787,29 +4097,15 @@
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/ne)
"nY" = (
-/obj/structure/table/rack,
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/machinery/alarm{
dir = 4;
pixel_x = -23
},
-/obj/item/device/suit_cooling_unit,
-/obj/item/weapon/storage/belt/archaeology,
-/obj/item/clothing/mask/breath,
-/obj/item/clothing/suit/space/anomaly/heat,
-/obj/item/clothing/head/helmet/space/anomaly/heat,
-/obj/item/weapon/pickaxe,
-/obj/item/weapon/storage/excavation,
-/obj/item/stack/flag/yellow,
-/obj/item/weapon/tool/wrench,
-/obj/item/device/measuring_tape,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"oc" = (
-/obj/machinery/light{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 9
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -3830,6 +4126,13 @@
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"oi" = (
+/obj/machinery/alarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"oj" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 8
@@ -3842,9 +4145,10 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/sw)
"ol" = (
-/obj/machinery/atmospherics/unary/freezer{
+/obj/structure/window/reinforced{
dir = 4
},
+/obj/machinery/portable_atmospherics/canister/phoron,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"om" = (
@@ -3862,17 +4166,12 @@
/area/offmap/aerostat/inside/powercontrol)
"oo" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 5
- },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"op" = (
/turf/simulated/wall/r_wall,
/area/offmap/aerostat/inside/xenoarch)
@@ -3886,6 +4185,23 @@
/obj/effect/map_helper/airlock/atmos/pump_out_internal,
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/nw)
+"ot" = (
+/turf/simulated/shuttle/wall/voidcraft/green,
+/area/offmap/aerostat/inside/virology)
+"ou" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/blue,
+/obj/structure/table/standard,
+/obj/item/weapon/tool/screwdriver,
+/obj/item/device/analyzer,
+/obj/item/weapon/tool/wrench,
+/obj/item/clothing/glasses/welding,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/power/apc,
+/obj/structure/cable,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"ov" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
@@ -3923,6 +4239,9 @@
/area/offmap/aerostat/inside/firingrange)
"oG" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"oJ" = (
@@ -3933,14 +4252,18 @@
/obj/structure/cable{
icon_state = "0-8"
},
+/obj/structure/flora/pottedplant/subterranean,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"oK" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/structure/dispenser,
-/obj/machinery/light,
+/obj/machinery/door/window/brigdoor/eastleft{
+ dir = 2;
+ req_access = list(7)
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"oL" = (
@@ -3992,38 +4315,33 @@
/area/offmap/aerostat/inside/toxins)
"oY" = (
/obj/structure/table/standard,
-/obj/item/weapon/tool/screwdriver,
-/obj/item/weapon/anobattery{
- pixel_x = 5;
- pixel_y = 2
+/obj/item/weapon/tool/crowbar,
+/obj/item/weapon/anodevice{
+ pixel_x = 1
},
-/obj/item/weapon/anobattery,
-/obj/item/weapon/anobattery{
- pixel_x = -4;
- pixel_y = 3
+/obj/item/weapon/anodevice{
+ pixel_x = -2
},
-/obj/item/weapon/anobattery{
- pixel_x = -5;
- pixel_y = -3
- },
-/obj/effect/floor_decal/spline/plain{
- dir = 1
- },
-/obj/item/device/flashlight/lamp,
-/turf/simulated/floor/tiled,
+/obj/item/device/multitool,
+/obj/machinery/light,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"oZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "4-8"
},
-/obj/machinery/power/apc{
- dir = 4;
- pixel_x = 28
- },
-/obj/structure/closet/wardrobe/genetics_white,
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
+"pa" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"pd" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 8
@@ -4058,6 +4376,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
+"ph" = (
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/black,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"pj" = (
/obj/effect/floor_decal/rust,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
@@ -4067,6 +4389,7 @@
/area/offmap/aerostat/solars)
"pm" = (
/obj/machinery/light,
+/obj/structure/table/wooden_reinforced,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"pn" = (
@@ -4077,6 +4400,13 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
+"po" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden,
+/obj/machinery/camera/network/research_outpost{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"pq" = (
/obj/structure/table/steel_reinforced,
/obj/machinery/door/window/brigdoor/eastright{
@@ -4097,8 +4427,12 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"ps" = (
/obj/structure/cable/yellow{
icon_state = "2-8"
@@ -4109,19 +4443,11 @@
},
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
-"pu" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
- },
-/obj/structure/flora/pottedplant/overgrown,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
"py" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black,
-/obj/machinery/atmospherics/binary/pump{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
},
-/turf/simulated/floor/tiled/white,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"pz" = (
/obj/structure/cable/heavyduty{
@@ -4138,10 +4464,6 @@
/area/offmap/aerostat/inside/arm/se)
"pA" = (
/obj/structure/table/steel_reinforced,
-/obj/machinery/door/window/brigdoor/eastleft{
- dir = 2;
- req_access = list(1337)
- },
/obj/machinery/door/firedoor/glass,
/obj/machinery/door/blast/shutters{
dir = 2;
@@ -4176,14 +4498,14 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"pH" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
},
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-8"
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/southchamb)
+/area/offmap/aerostat/inside/northchamb)
"pL" = (
/obj/effect/floor_decal/rust,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
@@ -4194,13 +4516,6 @@
},
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
-"pM" = (
-/obj/effect/floor_decal/industrial/warning/corner,
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 8
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"pP" = (
/obj/machinery/light/floortube{
dir = 1;
@@ -4269,6 +4584,9 @@
dir = 8;
pixel_x = -6
},
+/obj/structure/bed/chair/comfy/black{
+ dir = 8
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"pZ" = (
@@ -4287,26 +4605,19 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/southchamb)
-"qe" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
+"qf" = (
+/obj/effect/floor_decal/rust,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+/obj/effect/floor_decal/industrial/warning{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
+/obj/machinery/alarm{
+ pixel_y = 26
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
-"qf" = (
-/obj/structure/window/reinforced,
-/obj/machinery/portable_atmospherics/canister/phoron,
-/obj/machinery/door/window/brigdoor/eastleft{
- req_access = list(7)
- },
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"qh" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/red{
dir = 1
@@ -4314,6 +4625,9 @@
/obj/machinery/light_switch{
pixel_y = 25
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"qi" = (
@@ -4338,12 +4652,16 @@
/obj/machinery/light{
dir = 1
},
+/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"ql" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "2-8"
+ },
+/obj/structure/bed/chair/sofa/purp/left{
+ dir = 8
},
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
@@ -4351,7 +4669,7 @@
/obj/machinery/light{
dir = 8
},
-/obj/structure/table/steel_reinforced,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"qq" = (
@@ -4370,6 +4688,33 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
+"qr" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = -4
+ },
+/obj/machinery/alarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
+"qt" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
+"qv" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 6
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/firingrange)
"qw" = (
/obj/machinery/power/apc{
dir = 4;
@@ -4401,6 +4746,13 @@
"qC" = (
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"qD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"qE" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
@@ -4430,14 +4782,15 @@
/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"qJ" = (
-/obj/machinery/atmospherics/omni/atmos_filter{
- name = "N2O Filter";
- tag_east = 7;
- tag_north = 1;
- tag_south = 2
- },
+/obj/machinery/vending/cigarette,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
+"qK" = (
+/obj/machinery/computer/telescience{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/telesci)
"qL" = (
/obj/structure/window/reinforced{
dir = 8
@@ -4468,11 +4821,12 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"qP" = (
-/obj/machinery/light{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/table/steel_reinforced,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"qQ" = (
@@ -4480,7 +4834,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/tiled,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/xenoarch)
"qR" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -4490,12 +4844,11 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"qS" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/light{
- dir = 4
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
},
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"qT" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
@@ -4503,19 +4856,19 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"qU" = (
-/obj/machinery/alarm{
- pixel_y = 26
- },
-/obj/machinery/vending/phoronresearch{
- name = "Toximate 2556";
- products = list(/obj/item/device/transfer_valve = 3, /obj/item/device/assembly/timer = 6, /obj/item/device/assembly/signaler = 6, /obj/item/device/assembly/prox_sensor = 6, /obj/item/device/assembly/igniter = 12)
+/obj/structure/window/reinforced{
+ dir = 4
},
+/obj/machinery/portable_atmospherics/canister/nitrogen,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"qZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/light{
+ dir = 8
+ },
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"rd" = (
/obj/machinery/atmospherics/pipe/simple/insulated,
/obj/machinery/door/blast/regular{
@@ -4526,18 +4879,25 @@
/turf/simulated/floor/reinforced/airless,
/area/offmap/aerostat/inside/toxins)
"re" = (
-/obj/machinery/atmospherics/pipe/tank/nitrous_oxide{
+/obj/machinery/atmospherics/unary/freezer{
dir = 8
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"rg" = (
-/obj/machinery/light/floortube{
- dir = 4;
- pixel_x = 5
+/area/offmap/aerostat/inside/atmos)
+"rf" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 6
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"rg" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/structure/closet/crate/science,
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"ri" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/machinery/door/airlock/external{
@@ -4547,29 +4907,9 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/north)
-"rk" = (
-/obj/effect/floor_decal/industrial/warning/corner,
-/obj/machinery/light{
- dir = 8
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"rq" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/firingrange)
-"rr" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Xenoarchaeology"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/xenoarch)
"rs" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/tiled/dark,
@@ -4596,31 +4936,37 @@
},
/turf/simulated/wall,
/area/offmap/aerostat/inside/atmos)
-"rx" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 10
- },
+"ry" = (
+/obj/structure/flora/pottedplant/subterranean,
+/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/northchamb)
+"rz" = (
+/obj/structure/table/standard,
+/obj/item/weapon/tank/phoron,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/obj/item/weapon/tool/wirecutters,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
-"ry" = (
-/turf/simulated/shuttle/wall/voidcraft/green,
-/area/offmap/aerostat/inside/xenoarch)
-"rF" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
+"rC" = (
+/obj/machinery/computer/diseasesplicer{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 10
- },
-/obj/machinery/alarm{
- pixel_y = 26
- },
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
-"rH" = (
-/obj/structure/table/standard,
-/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
+"rH" = (
+/obj/structure/closet/crate/science,
+/obj/effect/floor_decal/rust,
+/obj/machinery/power/apc{
+ dir = 1;
+ pixel_y = 24
+ },
+/obj/structure/cable,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor,
/area/offmap/aerostat/inside/xenoarch)
"rI" = (
/obj/machinery/atmospherics/pipe/simple/visible/black{
@@ -4641,6 +4987,12 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/north)
+"rP" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
"rS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
@@ -4654,18 +5006,35 @@
},
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/east)
+"rU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/toxins)
+"rW" = (
+/obj/structure/bed/chair/office/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"sb" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/closet/excavation,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"sc" = (
-/obj/effect/floor_decal/industrial/warning/dust{
+/obj/machinery/atmospherics/portables_connector{
dir = 8
},
-/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/obj/machinery/portable_atmospherics/canister/air,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"se" = (
/obj/effect/floor_decal/industrial/outline/red,
/turf/simulated/floor/tiled/dark,
@@ -4693,18 +5062,30 @@
},
/turf/simulated/floor/reinforced/airless,
/area/offmap/aerostat/inside/toxins)
+"sj" = (
+/obj/machinery/door/window/brigdoor/eastleft{
+ dir = 1;
+ req_access = null
+ },
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
"sk" = (
/obj/machinery/atmospherics/pipe/manifold4w/hidden,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/south)
"sm" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/obj/machinery/door/window/brigdoor/eastleft{
- req_access = list(7)
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
},
-/obj/structure/window/reinforced,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/structure/table/rack,
+/obj/item/clothing/suit/bio_suit/anomaly,
+/obj/item/clothing/head/bio_hood/anomaly,
+/obj/item/clothing/gloves/sterile/latex,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/mask/breath,
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
"sn" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
@@ -4753,20 +5134,24 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
-"sz" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 4
+"sy" = (
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"sD" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"sE" = (
/obj/effect/floor_decal/rust,
/obj/structure/cable/yellow{
@@ -4784,22 +5169,25 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"sJ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
},
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"sK" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 6
- },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 1
+ },
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"sN" = (
@@ -4807,7 +5195,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/portable_atmospherics/canister/empty,
/obj/machinery/camera/network/research_outpost{
dir = 4
},
@@ -4829,6 +5216,7 @@
icon_state = "1-2"
},
/obj/structure/table/standard,
+/obj/item/weapon/ore/bluespace_crystal,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
"sQ" = (
@@ -4850,12 +5238,6 @@
},
/turf/simulated/wall/r_wall,
/area/offmap/aerostat/inside/xenoarch)
-"sW" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 8
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"sX" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 8;
@@ -4882,6 +5264,12 @@
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/ne)
+"tf" = (
+/obj/structure/closet/crate/bin{
+ anchored = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/telesci)
"tg" = (
/obj/effect/shuttle_landmark{
base_area = /area/offmap/aerostat;
@@ -4896,8 +5284,19 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
+/obj/structure/closet/firecloset,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
+"tj" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/effect/floor_decal/rust,
+/obj/structure/table/rack,
+/obj/random/contraband,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"tk" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1
@@ -4905,9 +5304,6 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 10
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -4927,6 +5323,14 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/north)
+"tn" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/structure/bed/padded,
+/obj/item/weapon/bedsheet/medical,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"tq" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 4;
@@ -4949,6 +5353,15 @@
},
/turf/simulated/floor,
/area/offmap/aerostat/inside/airlock/north)
+"tr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/easthall)
"ts" = (
/obj/structure/shuttle/window,
/obj/structure/grille,
@@ -4959,32 +5372,25 @@
/turf/simulated/floor,
/area/shuttle/aerostat)
"tu" = (
-/obj/machinery/atmospherics/pipe/simple/visible,
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 10
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"tv" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Toxins Lab";
- req_one_access = null
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_research{
+ name = "Toxins Lab"
+ },
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
"ty" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/easthall)
-"tA" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
- },
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
"tD" = (
-/obj/structure/bed/chair/office/light,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/tiled,
+/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
"tE" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
@@ -5004,44 +5410,35 @@
/obj/effect/floor_decal/rust,
/obj/machinery/power/apc{
dir = 8;
- name = "east bump";
pixel_x = -22
},
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/se)
-"tG" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
"tH" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/wall,
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/obj/machinery/door/blast/regular/open{
+ id = telesci_blast;
+ name = "Blast Door"
+ },
+/turf/simulated/floor/reinforced,
/area/offmap/aerostat/inside/telesci)
"tI" = (
/obj/effect/floor_decal/industrial/danger/corner{
dir = 8
},
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"tJ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/light/floortube{
- dir = 8;
- pixel_x = -6
+ dir = 5
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"tL" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Toxins Lab"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/green{
dir = 9
},
@@ -5049,8 +5446,14 @@
dir = 4
},
/obj/machinery/door/firedoor/glass,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/door/airlock/glass_research{
+ name = "Xenoarchaeology Prep Room"
+ },
/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"tM" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -5060,15 +5463,6 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/arm/ne)
-"tP" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/blue{
- dir = 4
- },
-/obj/machinery/alarm{
- pixel_y = 26
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
"tR" = (
/obj/structure/flora/pottedplant/subterranean,
/turf/simulated/floor/tiled/techfloor,
@@ -5081,71 +5475,70 @@
/turf/simulated/shuttle/floor/yellow/airless,
/area/shuttle/aerostat)
"tU" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
/obj/machinery/light_switch{
pixel_y = 24
},
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"tV" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/dispenser{
- phorontanks = 0
- },
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -25;
- pixel_y = -2
- },
+/obj/machinery/suspension_gen,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"tY" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/east)
"ua" = (
-/obj/effect/floor_decal/industrial/warning/dust{
- dir = 8
+/obj/machinery/door/airlock/glass_research{
+ name = "Atmospherics";
+ req_one_access = list(47,10)
},
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/atmos)
"ud" = (
-/obj/structure/cable/heavyduty{
- icon_state = "2-8"
- },
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
},
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"uf" = (
+/obj/machinery/button/remote/blast_door{
+ dir = 1;
+ id = 2;
+ name = "Virology Emergency Quarantine";
+ pixel_y = 5
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/virology)
"ug" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/table/steel_reinforced,
/obj/structure/sign/painting/public{
pixel_x = 30
},
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"uh" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 5
+ },
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "1-2"
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/southchamb)
+/area/offmap/aerostat/inside/northchamb)
"uj" = (
-/obj/machinery/light/floortube{
- dir = 4;
- pixel_x = 5
- },
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
"uk" = (
/obj/machinery/light,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/se)
"um" = (
/obj/machinery/door/airlock/external,
/obj/structure/cable{
@@ -5155,9 +5548,8 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/northchamb)
"un" = (
-/obj/structure/cable/heavyduty{
- icon_state = "4-8"
- },
+/obj/machinery/portable_atmospherics/powered/scrubber,
+/obj/effect/floor_decal/industrial/hatch/yellow,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"uq" = (
@@ -5168,7 +5560,7 @@
dir = 1
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"ur" = (
/obj/machinery/atmospherics/pipe/simple/insulated{
dir = 4
@@ -5188,6 +5580,12 @@
},
/turf/simulated/wall,
/area/offmap/aerostat/inside/firingrange)
+"ut" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/reinforced,
+/area/offmap/aerostat/inside/telesci)
"uu" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/red{
dir = 1
@@ -5204,15 +5602,9 @@
/obj/structure/window/basic{
dir = 1
},
-/obj/structure/window/basic{
- dir = 8
- },
/obj/effect/floor_decal/corner/red/border{
dir = 1
},
-/obj/effect/floor_decal/corner/red/border{
- dir = 8
- },
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
"ux" = (
@@ -5233,12 +5625,6 @@
"uA" = (
/obj/machinery/atmospherics/unary/heat_exchanger,
/obj/structure/window/basic,
-/obj/structure/window/basic{
- dir = 8
- },
-/obj/effect/floor_decal/corner/red/border{
- dir = 8
- },
/obj/effect/floor_decal/corner/red/border,
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
@@ -5247,23 +5633,50 @@
/obj/machinery/camera/network/research_outpost{
dir = 4
},
+/obj/machinery/mining/drill,
+/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
-"uG" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 6
+"uE" = (
+/obj/machinery/vending/snlvend{
+ dir = 8
},
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
+"uF" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/camera/network/research_outpost{
+ dir = 8
+ },
+/obj/structure/closet/firecloset,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
+"uG" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/machinery/camera/network/research_outpost,
+/obj/structure/table/rack,
+/obj/item/device/suit_cooling_unit,
+/obj/item/device/suit_cooling_unit,
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
+"uK" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/mining/drill,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/drillstorage)
+"uN" = (
+/obj/machinery/recharge_station,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/northchamb)
"uS" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/arm/sw)
"uV" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black,
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
@@ -5274,8 +5687,13 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
+"va" = (
+/obj/structure/flora/ausbushes/brflowers,
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
"vb" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
@@ -5290,9 +5708,12 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/south)
"vd" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/flora/ausbushes/ywflowers,
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
"ve" = (
/obj/machinery/door/blast/regular{
dir = 8;
@@ -5316,23 +5737,32 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/south)
"vm" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/machinery/door/window/brigdoor/eastleft{
- req_access = list(7)
- },
-/obj/structure/window/reinforced,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/structure/table/rack,
+/obj/item/clothing/suit/bio_suit/anomaly,
+/obj/item/clothing/head/bio_hood/anomaly,
+/obj/item/clothing/gloves/sterile/latex,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/mask/breath,
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
"vo" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/structure/table/wooden_reinforced,
+/obj/machinery/chemical_dispenser/bar_coffee/full{
+ dir = 1
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"vp" = (
/obj/machinery/camera/network/research_outpost{
dir = 8
},
+/obj/structure/sign/painting/public{
+ pixel_x = 30
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"vq" = (
@@ -5352,21 +5782,36 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
+"vu" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/firingrange)
"vy" = (
/obj/machinery/power/apc{
dir = 8;
- name = "east bump";
pixel_x = -22
},
/obj/structure/cable,
+/obj/structure/table/reinforced,
+/obj/item/weapon/storage/box/disks,
+/obj/item/weapon/storage/box/disks,
+/obj/item/toy/figure/geneticist,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/genetics)
"vz" = (
-/obj/machinery/light/floortube{
- dir = 8;
- pixel_x = -6
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/camera/network/research_outpost,
+/obj/structure/table/rack,
+/obj/item/clothing/suit/bio_suit/anomaly,
+/obj/item/clothing/head/bio_hood/anomaly,
+/obj/item/clothing/gloves/sterile/latex,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/mask/breath,
+/obj/effect/floor_decal/industrial/hatch/yellow,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"vA" = (
@@ -5377,6 +5822,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"vC" = (
@@ -5431,17 +5877,25 @@
name = "Firing Range";
req_one_access = null
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/firingrange)
+"vQ" = (
+/obj/item/modular_computer/console/preset/research{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ layer = 3.3;
+ pixel_x = 26
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
"vR" = (
-/obj/machinery/door/firedoor/glass,
-/obj/structure/window/reinforced/full,
-/obj/structure/grille,
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/toxins)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
"vT" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
@@ -5453,23 +5907,37 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/firingrange)
+"vU" = (
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/mining/brace,
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/drillstorage)
"vW" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/black{
- dir = 1
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 9
+ },
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"vX" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
},
/turf/simulated/shuttle/wall,
/area/shuttle/aerostat)
+"vY" = (
+/obj/machinery/bomb_tester,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"wb" = (
-/obj/effect/floor_decal/industrial/warning/dust/corner{
- dir = 8
+/obj/machinery/alarm{
+ dir = 8;
+ pixel_x = 23
},
-/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"wc" = (
@@ -5483,18 +5951,14 @@
/turf/simulated/shuttle/wall/hard_corner,
/area/shuttle/aerostat)
"wg" = (
-/obj/effect/floor_decal/industrial/warning/dust{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/alarm{
- dir = 1;
- pixel_y = -26
+/obj/machinery/vending/cola/soft{
+ dir = 1
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
@@ -5509,9 +5973,6 @@
/area/offmap/aerostat/inside/xenoarch)
"wi" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
-/obj/structure/cable{
- icon_state = "1-8"
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -5525,6 +5986,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/arm/se)
+"wl" = (
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/tiled/dark,
+/area/offmap/aerostat/inside/lobby)
"wm" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 5
@@ -5536,6 +6001,7 @@
/obj/machinery/light{
dir = 8
},
+/obj/structure/flora/pottedplant/unusual,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"wp" = (
@@ -5549,22 +6015,30 @@
},
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/xenoarch)
-"wq" = (
-/obj/structure/closet/crate/science,
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"wr" = (
/obj/machinery/atmospherics/pipe/simple/hidden/blue{
dir = 5
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"ws" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden/black{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"wz" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
+"wA" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/misclab)
"wC" = (
/turf/simulated/shuttle/wall/voidcraft/hard_corner{
stripe_color = "#00FF00"
@@ -5601,10 +6075,13 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"wG" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 9
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/simulated/floor/tiled/white,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8
+ },
+/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"wI" = (
/obj/structure/cable/heavyduty{
@@ -5634,10 +6111,14 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
-"wR" = (
-/obj/machinery/vending/tool,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+"wT" = (
+/obj/effect/floor_decal/rust,
+/obj/random/maintenance/research,
+/obj/random/maintenance/research,
+/obj/random/maintenance/engineering,
+/obj/structure/closet,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"wY" = (
/obj/machinery/alarm{
pixel_y = 26
@@ -5675,13 +6156,9 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = 32;
- pixel_y = -24
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"xe" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -5689,32 +6166,35 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"xf" = (
-/obj/machinery/atmospherics/pipe/simple/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/portables_connector{
- dir = 1
- },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/manifold/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"xg" = (
-/obj/structure/cable/heavyduty{
- icon_state = "4-8"
- },
-/obj/machinery/alarm{
- pixel_y = 26
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/machinery/camera/network/research_outpost{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/floor_decal/industrial/warning,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
+"xj" = (
+/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
},
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/easthall)
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/se)
"xl" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -5744,28 +6224,49 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/radiocarbon_spectrometer,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"xs" = (
-/obj/structure/table/rack,
-/obj/item/clothing/suit/bio_suit/anomaly,
-/obj/item/clothing/head/bio_hood/anomaly,
-/obj/item/clothing/mask/breath,
-/obj/item/clothing/gloves/sterile/latex,
-/obj/item/clothing/glasses/science,
-/obj/effect/floor_decal/industrial/hatch/yellow,
-/turf/simulated/floor/tiled,
+/obj/effect/floor_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/effect/floor_decal/industrial/warning/corner,
+/obj/effect/floor_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/effect/floor_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/simulated/floor,
/area/offmap/aerostat/inside/xenoarch)
"xt" = (
/turf/simulated/wall,
/area/offmap/aerostat/inside/drillstorage)
"xu" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 5
+/obj/machinery/alarm{
+ alarm_id = "anomaly_testing";
+ dir = 4;
+ pixel_x = -23
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"xv" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/sign/directions/science/xenoarch{
+ dir = 1;
+ pixel_y = 32
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/easthall)
"xw" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -5795,19 +6296,29 @@
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
-"xC" = (
-/obj/structure/filingcabinet/filingcabinet,
-/obj/machinery/alarm{
- dir = 8;
- pixel_x = 23
+"xB" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/medical{
+ name = "Virology Lab";
+ req_access = list(39);
+ req_one_access = null
+ },
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/virology)
"xD" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
-/obj/structure/table/steel_reinforced,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"xF" = (
@@ -5820,21 +6331,39 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/arm/se)
"xG" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 10
- },
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
-"xK" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
+"xH" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/blast/shutters{
+ dir = 2;
+ id = "zorrenpartyroom";
+ layer = 3.3;
+ name = "shutter"
},
-/obj/effect/floor_decal/industrial/outline/red,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/machinery/vending/sovietsoda,
+/turf/simulated/floor/plating/virgo2,
+/area/offmap/aerostat/inside/zorrenoffice)
+"xK" = (
+/obj/effect/floor_decal/rust,
+/obj/effect/floor_decal/industrial/warning,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"xM" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
@@ -5852,12 +6381,13 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/arm/sw)
"xO" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/green{
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/machinery/portable_atmospherics/canister/phoron,
+/obj/machinery/door/window/brigdoor/eastleft{
+ dir = 2;
+ req_access = list(7)
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -5865,22 +6395,21 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"xR" = (
-/obj/machinery/light/floortube{
- dir = 8;
- pixel_x = -6
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
+"xS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
-"xS" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/virology)
"xU" = (
/obj/machinery/atmospherics/pipe/simple/hidden/black,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"xV" = (
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/virology)
"xW" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
@@ -5903,11 +6432,17 @@
},
/turf/simulated/floor/plating,
/area/offmap/aerostat/inside/atmos)
+"yd" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/virology)
"ye" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/item/modular_computer/console{
- dir = 8
- },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"yi" = (
@@ -5931,12 +6466,12 @@
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
+/obj/machinery/atmospherics/pipe/manifold/hidden{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/se)
"yq" = (
/obj/effect/floor_decal/industrial/warning/dust,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
@@ -5947,14 +6482,7 @@
"yr" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/drillstorage)
-"ys" = (
-/obj/effect/floor_decal/industrial/warning,
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"yu" = (
-/obj/effect/floor_decal/industrial/warning/dust/corner{
- dir = 4
- },
/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -5962,6 +6490,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
+/obj/machinery/vending/snack{
+ dir = 1
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"yv" = (
@@ -5995,8 +6526,8 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/arm/ne)
"yD" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
@@ -6012,14 +6543,11 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/south)
"yG" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
/obj/machinery/alarm{
pixel_y = 26
},
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"yH" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -6037,10 +6565,13 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"yI" = (
-/obj/machinery/atmospherics/valve{
- dir = 4
- },
/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/visible/red{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 5
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"yK" = (
@@ -6050,6 +6581,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/machinery/light/floortube{
+ dir = 8;
+ pixel_x = -6
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"yN" = (
@@ -6067,6 +6602,17 @@
/obj/effect/map_helper/airlock/atmos/chamber_pump,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"yQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/floor_decal/rust,
+/obj/structure/table/rack,
+/obj/random/toolbox,
+/obj/random/soap,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"yT" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
dir = 10
@@ -6078,11 +6624,11 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"yX" = (
-/obj/machinery/light{
+/obj/machinery/camera/network/research_outpost{
dir = 8
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/misclab)
"yZ" = (
/obj/structure/cable/heavyduty{
icon_state = "0-8"
@@ -6104,25 +6650,20 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"zc" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/wall,
-/area/offmap/aerostat/inside/misclab)
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/telesci)
"ze" = (
-/obj/machinery/artifact_analyser,
-/obj/machinery/camera/network/research_outpost{
- dir = 8
+/turf/simulated/shuttle/wall/voidcraft/hard_corner{
+ stripe_color = "#00FF00"
},
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/virology)
"zf" = (
-/obj/structure/table/steel_reinforced,
/obj/random/maintenance/research,
/obj/structure/sign/painting/public{
pixel_x = -30
},
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"zg" = (
@@ -6144,13 +6685,11 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"zn" = (
-/obj/effect/floor_decal/spline/plain{
- dir = 4
+/obj/machinery/door/airlock/glass_research{
+ name = "Xenoarchaeology"
},
-/obj/item/modular_computer/console/preset/research{
- dir = 8
- },
-/turf/simulated/floor/tiled,
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/xenoarch)
"zo" = (
/obj/structure/cable{
@@ -6180,11 +6719,15 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/ne)
"zr" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
+/obj/effect/floor_decal/rust,
+/obj/effect/floor_decal/industrial/warning/corner{
dir = 8
},
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/drillstorage)
+/obj/effect/floor_decal/industrial/warning/corner{
+ dir = 1
+ },
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"zt" = (
/obj/machinery/door/airlock/glass_research{
req_one_access = null
@@ -6195,12 +6738,10 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/zorrenoffice)
"zu" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/machinery/camera/network/research_outpost{
- dir = 8
- },
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"zw" = (
@@ -6217,10 +6758,17 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
+"zz" = (
+/obj/structure/bed/chair/bay{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"zA" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
+/obj/structure/flora/pottedplant/crystal,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"zB" = (
@@ -6247,6 +6795,13 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/south)
+"zD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/vending/tool,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"zE" = (
/obj/machinery/power/apc{
dir = 1;
@@ -6271,6 +6826,9 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
+"zH" = (
+/turf/simulated/shuttle/wall/voidcraft/green,
+/area/offmap/aerostat/inside/misclab)
"zI" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
@@ -6278,12 +6836,6 @@
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
-"zJ" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
"zM" = (
/obj/machinery/door/airlock/external,
/obj/structure/cable{
@@ -6351,15 +6903,6 @@
/obj/effect/map_helper/airlock/door/int_door,
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/arm/nw)
-"Aa" = (
-/obj/machinery/atmospherics/pipe/simple/visible/universal{
- name = "Distro Loop Drain"
- },
-/obj/machinery/light{
- dir = 4
- },
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
"Ab" = (
/obj/machinery/atmospherics/portables_connector{
dir = 1
@@ -6392,18 +6935,11 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/se)
"Ae" = (
-/obj/structure/table/rack,
-/obj/item/device/suit_cooling_unit,
-/obj/item/weapon/storage/belt/archaeology,
-/obj/item/clothing/mask/breath,
-/obj/item/clothing/suit/space/anomaly/heat,
-/obj/item/clothing/head/helmet/space/anomaly/heat,
-/obj/item/weapon/pickaxe,
-/obj/item/weapon/storage/excavation,
-/obj/item/stack/flag/yellow,
-/obj/item/weapon/tool/wrench,
-/obj/item/device/measuring_tape,
-/turf/simulated/floor/tiled/white,
+/obj/machinery/door/airlock/glass_research{
+ name = "Xenoarchaeology Storage"
+ },
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/xenoarch)
"Ah" = (
/obj/structure/cable{
@@ -6411,6 +6947,13 @@
},
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
+"Ai" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/telesci)
"Ak" = (
/obj/machinery/atmospherics/pipe/simple/hidden/black{
dir = 5
@@ -6418,9 +6961,28 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"Al" = (
-/obj/structure/filingcabinet/chestdrawer,
-/turf/simulated/floor/tiled,
+/obj/machinery/artifact_scanpad,
+/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
+"An" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/storage/box/monkeycubes,
+/obj/item/weapon/storage/box/monkeycubes,
+/obj/item/weapon/storage/pill_bottle/dylovene,
+/obj/item/weapon/storage/pill_bottle/dylovene,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ layer = 3.3;
+ pixel_x = 26
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"Ao" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -6431,11 +6993,15 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/southchamb)
"Ap" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/flora/ausbushes/ppflowers,
/obj/machinery/light{
dir = 4
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
"Aq" = (
/obj/machinery/door/airlock/glass_research{
req_one_access = null
@@ -6451,13 +7017,14 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/zorrenoffice)
"Ar" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/machinery/door/window/brigdoor/eastleft{
- req_access = list(7)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_research{
+ name = "Xenoarchaeology Prep Room"
},
-/obj/structure/window/reinforced,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/xenoarch)
"As" = (
/obj/machinery/door/airlock/glass_research{
name = "Atmospherics";
@@ -6473,9 +7040,6 @@
/obj/effect/floor_decal/industrial/warning/dust,
/obj/structure/table/standard,
/obj/fiftyspawner/steel,
-/obj/machinery/camera/network/research_outpost{
- dir = 1
- },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Au" = (
@@ -6500,13 +7064,11 @@
/turf/simulated/floor/reinforced/airless,
/area/offmap/aerostat/inside/toxins)
"Ay" = (
-/obj/machinery/atmospherics/pipe/manifold/visible/red{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
+/obj/machinery/atmospherics/pipe/manifold/visible/red,
+/obj/machinery/meter,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Az" = (
@@ -6516,9 +7078,6 @@
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/powercontrol)
"AB" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Xenoarchaeology"
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -6527,8 +7086,7 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"AC" = (
/obj/machinery/atmospherics/pipe/simple/hidden/black{
@@ -6537,25 +7095,22 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"AD" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/floor_decal/industrial/warning{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/arm/ne)
"AE" = (
-/obj/effect/floor_decal/industrial/warning,
-/obj/effect/floor_decal/industrial/warning{
- dir = 1
+/obj/item/weapon/virusdish/random,
+/obj/item/weapon/virusdish/random,
+/obj/item/weapon/virusdish/random,
+/obj/item/weapon/virusdish/random,
+/obj/item/weapon/virusdish/random,
+/obj/structure/closet/crate/medical{
+ name = "Virus Samples"
},
-/obj/machinery/light{
- dir = 8
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"AF" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
@@ -6622,12 +7177,26 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
+"AR" = (
+/obj/machinery/atmospherics/portables_connector{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/air/airlock,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/firingrange)
"AX" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 5
},
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/se)
+"AY" = (
+/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
+ scrub_id = "science_outpost"
+ },
+/obj/machinery/light,
+/turf/simulated/floor/plating,
+/area/offmap/aerostat/inside/toxins)
"Bb" = (
/obj/machinery/atmospherics/pipe/manifold4w/hidden,
/obj/structure/cable{
@@ -6641,12 +7210,6 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/north)
-"Bc" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/wall,
-/area/offmap/aerostat/inside/toxins)
"Be" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 6
@@ -6659,12 +7222,11 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
-"Bh" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 9
- },
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+"Bi" = (
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/blood/oil,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"Bj" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -6672,11 +7234,24 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch/chamber)
"Bk" = (
-/obj/machinery/atmospherics/portables_connector,
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ dir = 1;
+ pixel_y = 24
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/dispenser{
+ phorontanks = 0
+ },
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"Bm" = (
/obj/machinery/camera/network/research_outpost,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"Bo" = (
@@ -6710,53 +7285,34 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
-"Br" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
"Bs" = (
/obj/machinery/atmospherics/pipe/manifold4w/hidden/blue,
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/powercontrol)
-"Bt" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
+"Bv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/structure/closet/crate/bin{
- anchored = 1
+/obj/machinery/atmospherics/pipe/simple/visible,
+/obj/machinery/firealarm{
+ dir = 4;
+ layer = 3.3;
+ pixel_x = 26
},
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
-"Bu" = (
-/obj/machinery/dna_scannernew,
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
-"By" = (
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/toxins)
"Bz" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/plating/virgo2,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/westhall)
"BA" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced/full,
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/plating/virgo2,
-/area/offmap/aerostat/inside/northchamb)
-"BB" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/hidden/red{
+ dir = 10
},
-/obj/machinery/light{
- dir = 1
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/turf/simulated/shuttle/wall/voidcraft/green,
+/area/offmap/aerostat/inside/atmos)
"BE" = (
/obj/machinery/light/floortube{
dir = 8;
@@ -6777,15 +7333,17 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"BG" = (
-/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
- scrub_id = "science_outpost"
+/obj/machinery/atmospherics/pipe/simple/visible/blue{
+ dir = 6
+ },
+/obj/machinery/camera/network/research_outpost{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/visible/blue,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"BH" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/table/steel_reinforced,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"BK" = (
@@ -6794,19 +7352,6 @@
},
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/east)
-"BM" = (
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/effect/floor_decal/industrial/warning/corner,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"BO" = (
/obj/structure/cable/heavyduty{
icon_state = "0-8"
@@ -6859,9 +7404,15 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
+"BT" = (
+/obj/machinery/atmospherics/portables_connector{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"BU" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -6880,20 +7431,18 @@
name = "Distro Loop Drain"
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"BX" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+/area/offmap/aerostat/inside/atmos)
+"Ca" = (
+/obj/structure/table/standard,
+/obj/item/weapon/folder/white,
+/obj/item/weapon/pen/fountain,
+/obj/item/device/assembly_holder/timer_igniter,
+/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
-/obj/machinery/alarm{
- pixel_y = 26
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
-"Ca" = (
-/obj/machinery/computer/area_atmos/tag{
- dir = 8;
- scrub_id = "science_outpost"
+/obj/item/weapon/weldingtool,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 30
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -6904,17 +7453,23 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/wall,
-/area/offmap/aerostat/inside/toxins)
-"Cd" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced/full,
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/xenoarch)
+"Cd" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 10
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/northchamb)
"Ce" = (
/turf/simulated/wall,
/area/offmap/aerostat/inside/atmos)
@@ -6949,39 +7504,23 @@
/obj/machinery/atmospherics/pipe/manifold4w/hidden/cyan,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
-"Cq" = (
-/obj/structure/reagent_dispensers/watertank,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
-"Ct" = (
-/obj/machinery/light/floortube{
- dir = 4;
- pixel_x = 5
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
-"Cu" = (
-/obj/structure/closet/secure_closet/xenoarchaeologist,
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 8
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
-"Cw" = (
-/obj/structure/table/standard,
-/obj/item/weapon/tool/crowbar,
-/obj/item/weapon/anodevice{
- pixel_x = -2
- },
-/obj/item/weapon/anodevice{
- pixel_x = 1
- },
-/obj/item/device/multitool,
-/obj/effect/floor_decal/spline/plain{
- dir = 1
- },
+"Cm" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/tiled,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/northchamb)
+"Cu" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
+"Cw" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/power/apc,
+/obj/structure/cable,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"CA" = (
/obj/effect/floor_decal/industrial/warning/dust{
@@ -6997,12 +7536,15 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/machinery/firealarm{
+ layer = 3.3;
+ pixel_y = -28
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"CE" = (
-/obj/machinery/atmospherics/binary/pump,
-/obj/machinery/atmospherics/pipe/simple/hidden/universal{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -7020,7 +7562,7 @@
/obj/effect/floor_decal/industrial/warning/dust{
dir = 4
},
-/obj/structure/table/glass,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"CJ" = (
@@ -7056,6 +7598,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"CN" = (
+/obj/structure/table/wooden_reinforced,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"CO" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{
dir = 4
@@ -7078,30 +7624,28 @@
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/hidden,
+/obj/machinery/door/firedoor/glass,
+/obj/effect/floor_decal/rust,
/obj/machinery/door/airlock/maintenance/rnd{
req_one_access = null
},
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/misclab)
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/se)
"CT" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
-/obj/structure/table/steel_reinforced,
/obj/random/firstaid,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"CV" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 4
- },
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/miscstorage)
"Da" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/green{
dir = 1
@@ -7113,7 +7657,7 @@
/area/offmap/aerostat/inside/atmos)
"Db" = (
/turf/simulated/shuttle/wall/voidcraft/green/virgo2/nocol,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/virology)
"Dd" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -7122,9 +7666,11 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/airlock/east)
"De" = (
-/obj/machinery/computer/telescience,
-/turf/simulated/floor/reinforced,
-/area/offmap/aerostat/inside/telesci)
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/miscstorage)
"Dg" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -7138,6 +7684,17 @@
},
/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
+"Di" = (
+/obj/structure/flora/pottedplant/minitree,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ dir = 8;
+ pixel_x = -22
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"Dk" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/machinery/light/floortube{
@@ -7149,16 +7706,10 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/south)
-"Dl" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+"Dp" = (
+/obj/structure/sign/department/virology,
+/turf/simulated/shuttle/wall/voidcraft/green,
+/area/offmap/aerostat/inside/virology)
"Dq" = (
/obj/structure/window/reinforced{
dir = 8
@@ -7209,13 +7760,28 @@
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 6
+ },
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/se)
"DC" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/south)
+"DD" = (
+/obj/machinery/atmospherics/portables_connector{
+ dir = 8
+ },
+/obj/effect/floor_decal/industrial/outline/red,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/atmos)
+"DE" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/miscstorage)
"DF" = (
/obj/machinery/door/airlock/multi_tile/metal{
dir = 1;
@@ -7232,19 +7798,15 @@
/obj/machinery/light{
dir = 1
},
-/obj/structure/closet/crate/bin{
- anchored = 1
- },
+/obj/structure/table/reinforced,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"DH" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/sign/poster{
- dir = 8;
- pixel_x = -32
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 8
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -7253,20 +7815,21 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"DJ" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/blue{
dir = 5
},
/obj/machinery/atmospherics/pipe/manifold/hidden/aux{
dir = 4
},
+/obj/structure/cable/heavyduty{
+ icon_state = "1-4"
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"DK" = (
/obj/machinery/door/airlock/multi_tile/glass{
- name = "Toxins Lab"
+ name = "Toxins Lab";
+ req_one_access = list(47)
},
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/tiled/steel_ridged,
@@ -7282,11 +7845,13 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"DM" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/red{
- dir = 8
+/obj/machinery/alarm{
+ alarm_id = "anomaly_testing";
+ dir = 4;
+ pixel_x = -23
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"DN" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 10
@@ -7300,12 +7865,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/power/apc{
dir = 8;
- name = "east bump";
pixel_x = -22
},
/obj/structure/cable,
-/obj/structure/table/standard,
-/obj/item/device/multitool,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
"DP" = (
@@ -7328,6 +7890,10 @@
},
/turf/simulated/floor,
/area/offmap/aerostat/inside/airlock/south)
+"DV" = (
+/obj/machinery/recharge_station,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"DY" = (
/obj/effect/floor_decal/rust,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{
@@ -7336,11 +7902,10 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"Eb" = (
-/obj/effect/floor_decal/spline/plain{
- dir = 4
- },
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/machinery/portable_atmospherics/powered/pump,
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Eh" = (
/obj/machinery/atmospherics/portables_connector{
dir = 1
@@ -7360,6 +7925,13 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
+"Em" = (
+/obj/machinery/hologram/holopad,
+/obj/machinery/atmospherics/binary/pump{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Ep" = (
/obj/machinery/door/airlock/external{
frequency = 1380;
@@ -7381,6 +7953,10 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
+"Et" = (
+/obj/structure/ore_box,
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/drillstorage)
"Eu" = (
/obj/machinery/atmospherics/portables_connector/aux{
dir = 4
@@ -7409,12 +7985,26 @@
/area/offmap/aerostat/inside/firingrange)
"Ey" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/universal,
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
+"EA" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/plating/virgo2,
+/area/offmap/aerostat/inside/misclab)
+"EC" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/reagent_containers/glass/beaker,
+/obj/item/weapon/reagent_containers/glass/beaker,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"ED" = (
/obj/machinery/atmospherics/omni/atmos_filter{
name = "N2/O2 Filter";
@@ -7424,14 +8014,7 @@
tag_west = 3
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"EF" = (
-/obj/effect/floor_decal/industrial/warning,
-/obj/effect/floor_decal/industrial/warning{
- dir = 1
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/atmos)
"EI" = (
/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/hidden{
@@ -7456,45 +8039,74 @@
"EN" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/west)
+"EP" = (
+/obj/structure/table/wooden_reinforced,
+/obj/item/weapon/reagent_containers/food/drinks/cup{
+ pixel_x = -5;
+ pixel_y = 4
+ },
+/obj/item/weapon/reagent_containers/food/drinks/cup{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/weapon/reagent_containers/food/drinks/cup{
+ pixel_x = -5;
+ pixel_y = -4
+ },
+/obj/item/weapon/reagent_containers/food/drinks/cup{
+ pixel_x = 5;
+ pixel_y = -4
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"EQ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
"ER" = (
-/obj/machinery/light{
- dir = 1
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/miscstorage)
+"ES" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ layer = 3.3;
+ pixel_x = 26
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
-"ES" = (
-/turf/simulated/floor/reinforced,
/area/offmap/aerostat/inside/telesci)
"EV" = (
/obj/effect/floor_decal/industrial/warning/dust,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"EW" = (
+/obj/structure/table/standard,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/random/toolbox,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/miscstorage)
"EX" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
},
-/obj/structure/sign/directions/science/xenoarch{
- dir = 1;
- pixel_y = 32
- },
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"Fa" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 8
},
-/obj/structure/table/glass,
/obj/random/maintenance/research,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"Ff" = (
@@ -7508,7 +8120,7 @@
dir = 10
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"Fi" = (
/obj/machinery/atmospherics/binary/pump{
dir = 4
@@ -7532,6 +8144,7 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
},
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Fo" = (
@@ -7585,12 +8198,7 @@
/turf/simulated/floor/reinforced/airless,
/area/offmap/aerostat/inside/toxins)
"Fw" = (
-/obj/machinery/atmospherics/trinary/atmos_filter{
- dir = 4;
- name = "High Power Gas filter";
- power_rating = 15000;
- use_power = 0
- },
+/obj/machinery/atmospherics/pipe/manifold/hidden/black,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Fy" = (
@@ -7608,6 +8216,15 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/south)
+"FA" = (
+/obj/structure/bed/chair/comfy/black{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"FD" = (
/obj/effect/floor_decal/industrial/warning/dust,
/obj/structure/cable{
@@ -7616,8 +8233,8 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"FF" = (
-/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/machinery/camera/network/research_outpost,
+/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"FJ" = (
@@ -7627,11 +8244,8 @@
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/west)
"FK" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = 30
- },
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
+/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
+ scrub_id = "science_outpost"
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -7657,10 +8271,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/light/floortube{
- dir = 4;
- pixel_x = 5
- },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"FU" = (
@@ -7692,20 +8302,22 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"FX" = (
-/obj/structure/table/steel_reinforced,
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
+ },
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
-"Gb" = (
-/obj/effect/floor_decal/spline/plain{
- dir = 4
+"FY" = (
+/turf/simulated/shuttle/wall/voidcraft/hard_corner{
+ stripe_color = "#00FF00"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
+/area/offmap/aerostat/inside/misclab)
+"FZ" = (
+/obj/machinery/alarm{
+ pixel_y = 26
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor/tiled,
+/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
"Gc" = (
/obj/effect/shuttle_landmark{
@@ -7738,25 +8350,28 @@
/turf/unsimulated/floor/sky/virgo2_sky,
/area/offmap/aerostat)
"Gf" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/obj/structure/window/reinforced,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"Gi" = (
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/effect/floor_decal/rust,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 4
},
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
+ },
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
+"Gi" = (
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/suspension_gen,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Gl" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 4
},
-/obj/structure/table/glass,
/obj/random/maintenance/research,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"Gm" = (
@@ -7764,16 +8379,20 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/powercontrol)
-"Go" = (
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+"Gn" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Gq" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/se)
"Gr" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
@@ -7807,20 +8426,21 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"Gt" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
+ scrub_id = "science_outpost"
+ },
+/obj/machinery/light{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Gu" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Toxins Lab"
+/obj/structure/window/reinforced{
+ dir = 4
},
-/obj/machinery/door/firedoor/glass,
+/obj/machinery/portable_atmospherics/canister/oxygen,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
-"Gv" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
"Gy" = (
/obj/structure/bed/chair/shuttle{
dir = 8
@@ -7888,7 +8508,7 @@
icon_state = "4-8"
},
/turf/simulated/wall,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"GG" = (
/obj/effect/floor_decal/rust,
/obj/structure/cable/yellow{
@@ -7899,17 +8519,22 @@
},
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
-"GK" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 8
+"GI" = (
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 32;
+ pixel_y = -24
},
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
+"GK" = (
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"GL" = (
-/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/manifold/visible/red{
dir = 1
},
@@ -7927,6 +8552,14 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
+"GO" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/folder/white,
+/obj/item/weapon/pen,
+/obj/item/weapon/paper_bin,
+/obj/item/weapon/hand_labeler,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"GP" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
@@ -7935,15 +8568,10 @@
/turf/simulated/wall,
/area/offmap/aerostat/inside/telesci)
"GR" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/structure/closet/crate/science,
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"GT" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
@@ -7957,40 +8585,64 @@
/obj/effect/floor_decal/industrial/danger/corner{
dir = 4
},
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ layer = 3.3;
+ pixel_y = -28
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"GX" = (
-/obj/machinery/atmospherics/binary/pump{
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
+"Ha" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/light{
dir = 1
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
-"Ha" = (
-/obj/machinery/atmospherics/omni/atmos_filter{
- name = "Phoron Filter";
- tag_east = 6;
- tag_north = 1;
- tag_south = 2
- },
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
"Hb" = (
/obj/machinery/atmospherics/pipe/simple/hidden/blue{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/green,
+/obj/structure/cable/heavyduty{
+ icon_state = "4-8"
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Hd" = (
-/obj/machinery/meter,
-/obj/machinery/atmospherics/pipe/manifold/visible{
- dir = 1
- },
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"Hh" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/table/standard,
+/obj/item/weapon/storage/box/beakers,
+/obj/item/weapon/reagent_containers/glass/beaker/large,
+/obj/item/weapon/reagent_containers/dropper,
+/obj/machinery/reagentgrinder,
+/obj/structure/reagent_dispensers/acid{
+ pixel_x = 31
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
"Hj" = (
/obj/structure/table/steel_reinforced,
/obj/machinery/light_switch{
@@ -8019,13 +8671,6 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
-"Hn" = (
-/obj/machinery/artifact_harvester,
-/obj/machinery/light{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
"Ho" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -8048,18 +8693,24 @@
/turf/simulated/shuttle/floor/yellow/airless,
/area/shuttle/aerostat)
"Hq" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
+"Hs" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
+/obj/machinery/camera/network/research_outpost{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/firingrange)
"Ht" = (
/turf/simulated/shuttle/wall/voidcraft/green,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/genetics)
"Hu" = (
/obj/effect/floor_decal/industrial/warning{
dir = 4
@@ -8091,25 +8742,25 @@
icon_state = "4-8"
},
/obj/machinery/door/airlock/glass_research{
- name = "Telescience"
+ name = "Miscellaneous Storage";
+ req_one_access = null
},
/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/telesci)
-"Hx" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
+/obj/structure/cable{
+ icon_state = "1-8"
},
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/miscstorage)
+"Hx" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/portable_atmospherics/canister/air/airlock,
/obj/machinery/camera/network/research_outpost{
dir = 8
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Hy" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 6
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
@@ -8120,16 +8771,27 @@
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
"HA" = (
-/obj/machinery/artifact_scanpad,
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
+"HE" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"HH" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -8139,26 +8801,19 @@
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"HK" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 4
+/obj/structure/table/wooden_reinforced,
+/turf/simulated/floor/glass/reinforced{
+ color = "#eacd7c"
},
-/obj/machinery/light,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/glassgetsitsownarea)
"HL" = (
-/obj/machinery/atmospherics/pipe/manifold4w/visible,
-/obj/machinery/meter,
+/obj/machinery/washing_machine,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"HM" = (
-/obj/machinery/light{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
@@ -8178,7 +8833,10 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/zorrenoffice)
"HO" = (
-/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/structure/flora/pottedplant/subterranean,
+/obj/machinery/camera/network/research_outpost{
+ dir = 1
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"HQ" = (
@@ -8189,25 +8847,23 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/southchamb)
"HR" = (
-/obj/structure/table/standard,
-/obj/item/device/gps{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/item/device/gps{
- pixel_x = -2;
- pixel_y = 2
- },
-/obj/item/device/gps{
- pixel_x = 1;
- pixel_y = -1
+/obj/structure/cable{
+ icon_state = "1-4"
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/telesci)
+/area/offmap/aerostat/inside/miscstorage)
"HS" = (
-/obj/structure/flora/pottedplant/crystal,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/westhall)
"HT" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -8220,11 +8876,21 @@
/obj/machinery/atmospherics/binary/pump/on{
dir = 8
},
+/obj/machinery/power/apc,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"HV" = (
-/obj/machinery/atmospherics/pipe/manifold/visible/red{
- dir = 1
+/obj/machinery/atmospherics/portables_connector{
+ dir = 8
+ },
+/obj/effect/floor_decal/industrial/outline/red,
+/obj/machinery/firealarm{
+ dir = 4;
+ layer = 3.3;
+ pixel_x = 26
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -8237,11 +8903,12 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/shuttle/aerostat)
"Id" = (
-/obj/machinery/atmospherics/pipe/manifold/visible/red,
-/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/visible/red{
+ dir = 9
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Ig" = (
@@ -8251,27 +8918,33 @@
/turf/simulated/shuttle/wall/voidcraft/green/virgo2/nocol,
/area/offmap/aerostat/inside/airlock/east)
"Ih" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 6
- },
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/portables_connector{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Ii" = (
-/obj/machinery/atmospherics/binary/pump/on{
- name = "Scrubber to Waste"
- },
/obj/machinery/camera/network/research_outpost{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/hidden/red{
+ dir = 5
+ },
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"Ij" = (
/obj/effect/floor_decal/industrial/danger{
dir = 1
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/camera/network/research_outpost{
+ dir = 1
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Im" = (
@@ -8288,27 +8961,21 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"In" = (
-/obj/effect/floor_decal/industrial/warning/dust{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 8
+ dir = 1
},
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/atmos)
"Ip" = (
-/obj/structure/table/standard,
-/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/structure/reagent_dispensers/watertank,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Ir" = (
-/obj/machinery/power/apc{
- dir = 8;
- name = "east bump";
- pixel_x = -22
+/obj/machinery/artifact_analyser,
+/obj/machinery/camera/network/research_outpost{
+ dir = 4
},
-/obj/structure/cable,
-/turf/simulated/floor/tiled,
+/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
"Is" = (
/obj/machinery/atmospherics/valve,
@@ -8318,12 +8985,10 @@
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/arm/se)
"Iu" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/light{
- dir = 8
- },
/obj/structure/table/standard,
-/obj/item/weapon/ore/bluespace_crystal,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
"Iw" = (
@@ -8351,14 +9016,9 @@
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/south)
"IA" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/blue{
- dir = 4
- },
-/obj/machinery/light{
- dir = 1
- },
+/obj/machinery/disease2/diseaseanalyser,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/virology)
"IB" = (
/obj/structure/grille,
/obj/structure/grille,
@@ -8376,6 +9036,7 @@
/obj/structure/closet/crate/bin{
anchored = 1
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"IH" = (
@@ -8396,7 +9057,6 @@
/obj/structure/cable,
/obj/machinery/power/apc{
dir = 8;
- name = "east bump";
pixel_x = -22
},
/obj/machinery/mining/drill,
@@ -8418,16 +9078,29 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/southchamb)
"IN" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 4
+ },
/obj/machinery/atmospherics/binary/pump/on{
- name = "phoron pump"
+ name = "N2O pump"
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
+"IO" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/plating/virgo2,
+/area/offmap/aerostat/inside/virology)
"IP" = (
/turf/simulated/shuttle/wall/voidcraft/hard_corner{
stripe_color = "#00FF00"
},
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/genetics)
+"IS" = (
+/obj/machinery/telepad,
+/turf/simulated/floor/reinforced,
+/area/offmap/aerostat/inside/telesci)
"IV" = (
/obj/machinery/airlock_sensor{
dir = 1;
@@ -8487,19 +9160,25 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/airlock/south)
-"Ji" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/manifold/hidden{
- dir = 8
+"Je" = (
+/obj/machinery/alarm{
+ dir = 4;
+ pixel_x = -23
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/virology)
+"Ji" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/effect/floor_decal/rust,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/maintenance/rnd{
+ req_one_access = null
+ },
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/arm/se)
"Jn" = (
-/obj/structure/table/steel_reinforced,
/obj/random/maintenance/research,
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"Jo" = (
@@ -8520,16 +9199,18 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Jr" = (
-/obj/structure/sign/painting/public{
- pixel_y = 30
+/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/obj/machinery/light{
+ dir = 8
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"Ju" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/black{
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/turf/simulated/floor/tiled/white,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"Jz" = (
/obj/structure/grille,
@@ -8574,8 +9255,27 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/simulated/wall,
+/obj/machinery/door/airlock/glass_research{
+ name = "Toxins Lab"
+ },
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
+"JE" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/alarm{
+ pixel_y = 26
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/easthall)
"JG" = (
/obj/structure/metal_edge,
/turf/unsimulated/floor/sky/virgo2_sky,
@@ -8596,11 +9296,10 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/airlock/south)
"JI" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/effect/floor_decal/rust,
+/obj/structure/closet/crate/science,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"JJ" = (
/obj/structure/grille,
/obj/structure/window/phoronreinforced{
@@ -8612,13 +9311,13 @@
/turf/simulated/floor/reinforced/airless,
/area/offmap/aerostat/inside/toxins)
"JM" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/door/airlock/glass_research{
- name = "Toxins Lab";
- req_one_access = null
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
},
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"JP" = (
/obj/structure/cable/heavyduty{
@@ -8630,19 +9329,17 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"JQ" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 1
- },
/obj/machinery/light{
dir = 4
},
/obj/structure/flora/pottedplant/minitree,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"JR" = (
/obj/machinery/light,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/virology)
"JS" = (
/obj/machinery/light{
dir = 1
@@ -8663,14 +9360,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/obj/machinery/door/airlock/glass_research{
- name = "Toxins Lab"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"JX" = (
/obj/structure/cable{
@@ -8681,6 +9374,10 @@
},
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
+"JY" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
"JZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -8688,8 +9385,11 @@
/obj/machinery/light_switch{
pixel_y = 25
},
-/turf/simulated/floor/tiled/white,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/telesci)
+"Ka" = (
+/turf/simulated/shuttle/wall/voidcraft/hard_corner,
+/area/offmap/aerostat/inside/genetics)
"Kc" = (
/obj/machinery/door/airlock/external{
frequency = 1380;
@@ -8705,15 +9405,9 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
+/obj/structure/flora/pottedplant/subterranean,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
-"Ke" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 4
- },
-/obj/machinery/portable_atmospherics/canister/air/airlock,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
"Kh" = (
/obj/effect/floor_decal/industrial/warning/dust/corner,
/turf/simulated/floor/tiled/dark,
@@ -8729,6 +9423,12 @@
"Kj" = (
/obj/structure/table/standard,
/obj/item/device/analyzer,
+/obj/machinery/camera/network/research_outpost{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 9
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Kk" = (
@@ -8740,11 +9440,7 @@
},
/obj/effect/floor_decal/rust,
/turf/simulated/floor/plating/virgo2,
-/area/offmap/aerostat/inside/northchamb)
-"Kn" = (
-/obj/structure/closet/secure_closet/xenoarchaeologist,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/atmos)
"Ko" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -8762,18 +9458,14 @@
},
/turf/simulated/shuttle/floor/yellow,
/area/shuttle/aerostat)
-"Kr" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/light{
- dir = 1
- },
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
"Kv" = (
-/turf/simulated/wall,
-/area/offmap/aerostat/inside/genetics)
+/obj/machinery/button/remote/blast_door{
+ id = telesci_blast;
+ name = "Blast Door Control";
+ pixel_x = 25
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/telesci)
"Kw" = (
/obj/machinery/atmospherics/unary/heat_exchanger{
dir = 8
@@ -8786,6 +9478,18 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
+"Kz" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/offmap/aerostat/inside/misclab)
+"KA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/westhall)
"KC" = (
/obj/machinery/alarm{
pixel_y = 26
@@ -8793,12 +9497,16 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"KD" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/obj/machinery/door/window/brigdoor/eastleft{
- req_access = list(7)
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
},
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/glass_research{
+ name = "Toxins Lab"
+ },
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/toxins)
"KE" = (
/obj/structure/cable/yellow{
icon_state = "1-8"
@@ -8817,12 +9525,6 @@
/obj/effect/floor_decal/rust,
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/nw)
-"KG" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
"KH" = (
/obj/machinery/airlock_sensor/airlock_exterior{
dir = 6;
@@ -8851,33 +9553,33 @@
"KK" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/southchamb)
+"KM" = (
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/medical{
+ name = "Virology Isolation Room";
+ req_access = list (39)
+ },
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/virology)
"KN" = (
/turf/simulated/shuttle/wall/voidcraft/hard_corner{
stripe_color = "#00FF00"
},
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/arm/ne)
"KP" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"KS" = (
-/obj/machinery/atmospherics/pipe/manifold/visible{
- dir = 4
- },
/obj/machinery/meter,
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/simple/visible,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
-"KU" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 4
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"KW" = (
/obj/effect/floor_decal/industrial/warning/dust,
/obj/machinery/door/airlock/external{
@@ -8893,35 +9595,36 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 6
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
},
/turf/simulated/wall,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"Ld" = (
/turf/simulated/floor,
/area/offmap/aerostat/inside/firingrange)
"Lf" = (
-/obj/structure/anomaly_container,
-/turf/simulated/floor,
+/obj/machinery/atmospherics/portables_connector{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/air/airlock,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Lg" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/table/steel_reinforced,
/obj/random/firstaid,
/obj/random/maintenance/research,
/obj/structure/sign/painting/public{
pixel_x = -30
},
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"Lj" = (
-/obj/structure/cable/heavyduty{
- icon_state = "1-4"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/aux{
dir = 9
},
+/obj/machinery/light,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Ln" = (
@@ -8931,9 +9634,13 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/floor_decal/rust,
+/obj/structure/closet/crate,
+/obj/random/maintenance/engineering,
+/obj/random/maintenance/engineering,
+/obj/random/medical/pillbottle,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"Lo" = (
/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 4
@@ -8944,38 +9651,40 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/north)
"Lq" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
- },
-/obj/machinery/computer/scan_consolenew,
-/obj/item/weapon/paper{
- info = "out of order"
- },
-/obj/machinery/camera/network/research_outpost,
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
-"Ls" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
+/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 4
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/firingrange)
+/obj/effect/floor_decal/rust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/westhall)
+"Ls" = (
+/obj/machinery/atmospherics/pipe/simple/hidden,
+/obj/machinery/door/airlock/maintenance/rnd{
+ req_one_access = null
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/westhall)
"Lt" = (
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"Lu" = (
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -24
+/obj/machinery/light{
+ dir = 8
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/turf/simulated/floor/reinforced,
+/area/offmap/aerostat/inside/telesci)
"Ly" = (
-/obj/machinery/camera/network/research_outpost{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/obj/effect/floor_decal/rust,
+/obj/effect/floor_decal/industrial/outline/red,
+/obj/structure/anomaly_container,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"LB" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow,
/obj/structure/grille,
@@ -8983,6 +9692,13 @@
/obj/structure/window/reinforced/full,
/turf/simulated/floor,
/area/offmap/aerostat/inside/xenoarch/chamber)
+"LD" = (
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"LF" = (
/obj/structure/cable/heavyduty{
icon_state = "1-4"
@@ -9003,35 +9719,15 @@
/obj/machinery/light,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
-"LI" = (
-/obj/structure/closet/firecloset,
-/obj/structure/sign/poster{
- dir = 4;
- pixel_x = 32
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
"LK" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/arm/ne)
-"LN" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
"LR" = (
-/obj/structure/cable/heavyduty{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/hidden/blue,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 4
- },
-/turf/simulated/floor/tiled/white,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"LS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -9043,11 +9739,13 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"LT" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
+/obj/machinery/atmospherics/portables_connector{
dir = 8
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/se)
"LW" = (
/obj/effect/shuttle_landmark{
base_area = /area/offmap/aerostat;
@@ -9059,15 +9757,11 @@
/turf/unsimulated/floor/sky/virgo2_sky,
/area/offmap/aerostat)
"LY" = (
-/obj/effect/floor_decal/industrial/warning/corner,
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/arm/ne)
"LZ" = (
/obj/structure/window/reinforced{
dir = 8
@@ -9099,13 +9793,19 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"Mc" = (
-/obj/machinery/telepad,
-/obj/effect/floor_decal/industrial/warning/full,
-/turf/simulated/floor/reinforced,
-/area/offmap/aerostat/inside/telesci)
+/obj/structure/cable/heavyduty{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/camera/network/research_outpost{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/miscstorage)
"Md" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
@@ -9115,6 +9815,10 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
+"Mf" = (
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/firingrange)
"Mg" = (
/obj/machinery/atmospherics/unary/heater{
dir = 1;
@@ -9157,6 +9861,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
+/obj/structure/flora/pottedplant/mysterious,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"Ml" = (
@@ -9164,7 +9869,7 @@
icon_state = "1-4"
},
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"Mn" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -9172,23 +9877,13 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Mp" = (
-/obj/structure/table/standard,
-/obj/item/weapon/storage/box/beakers,
-/obj/item/weapon/reagent_containers/glass/beaker/large,
-/obj/item/weapon/reagent_containers/dropper,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/obj/machinery/light{
- dir = 8
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor/tiled,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/xenoarch)
"Ms" = (
/obj/effect/floor_decal/industrial/warning/dust,
@@ -9203,10 +9898,20 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/west)
-"Mv" = (
-/obj/machinery/atmospherics/pipe/simple/visible/red{
- dir = 5
+"Mu" = (
+/obj/machinery/atmospherics/unary/freezer{
+ icon_state = "freezer"
},
+/obj/structure/sign/painting/public{
+ pixel_y = 30
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
+"Mv" = (
+/obj/machinery/atmospherics/pipe/manifold/visible/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Mw" = (
@@ -9227,34 +9932,48 @@
},
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/nw)
+"MA" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/firingrange)
+"MB" = (
+/obj/structure/sign/painting/public{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"MC" = (
/obj/effect/floor_decal/industrial/warning/dust,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
+"ME" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"MH" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
-"MK" = (
-/obj/effect/floor_decal/industrial/warning/corner,
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 8
- },
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 1
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"ML" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"MM" = (
@@ -9264,11 +9983,11 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"MO" = (
-/obj/machinery/atmospherics/pipe/tank/phoron{
+/obj/machinery/atmospherics/pipe/tank/nitrous_oxide{
dir = 8
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"MR" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 8
@@ -9282,6 +10001,12 @@
/obj/effect/floor_decal/rust,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/toxins)
+"MZ" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"Na" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 1
@@ -9308,9 +10033,8 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"Ng" = (
-/obj/effect/floor_decal/industrial/warning/dust/corner,
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 1
+/obj/structure/sign/painting/public{
+ pixel_x = 30
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
@@ -9325,17 +10049,16 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/east)
"Ni" = (
-/obj/machinery/atmospherics/trinary/mixer/m_mixer{
- dir = 4;
- name = "High Power Gas mixer";
- power_rating = 15000
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 4
},
-/turf/simulated/floor/tiled/white,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"Nk" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/wall,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/genetics)
"Nl" = (
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
@@ -9355,6 +10078,12 @@
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/shuttle/wall/hard_corner,
/area/shuttle/aerostat)
+"Np" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
"Nq" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 4
@@ -9363,35 +10092,50 @@
/obj/effect/floor_decal/industrial/warning/dust,
/turf/simulated/shuttle/floor/yellow/airless,
/area/shuttle/aerostat)
+"Ns" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/flora/ausbushes/brflowers,
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
"Nu" = (
/obj/machinery/atmospherics/pipe/simple/visible/blue{
dir = 5
},
+/obj/machinery/light,
/turf/simulated/floor/plating,
/area/offmap/aerostat/inside/toxins)
"Nw" = (
/obj/machinery/light{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/structure/table/standard,
+/obj/random/firstaid,
+/obj/item/weapon/storage/firstaid,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/machinery/medical_kiosk,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/telesci)
+/area/offmap/aerostat/inside/miscstorage)
"Ny" = (
-/obj/effect/floor_decal/industrial/warning/dust/corner{
- dir = 1
- },
-/obj/machinery/light,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/machinery/light{
+ dir = 8
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
+"NA" = (
+/obj/effect/floor_decal/industrial/warning/cee{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/greengrid,
+/area/offmap/aerostat/inside/toxins)
"NC" = (
/obj/structure/window/reinforced{
dir = 8
@@ -9420,6 +10164,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
+/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
+ scrub_id = "science_outpost"
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"NJ" = (
@@ -9427,11 +10174,8 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"NL" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 8
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/arm/ne)
"NM" = (
/obj/machinery/atmospherics/pipe/simple/hidden/universal,
/obj/structure/cable{
@@ -9444,7 +10188,7 @@
dir = 4
},
/turf/simulated/shuttle/wall/voidcraft/green,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"NO" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -9455,6 +10199,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
+"NP" = (
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/misclab)
"NQ" = (
/obj/effect/floor_decal/rust,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
@@ -9463,16 +10210,13 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"NT" = (
-/obj/machinery/atmospherics/portables_connector{
+/obj/structure/closet/excavation,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
+"NU" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 1
},
-/obj/machinery/camera/network/research_outpost{
- dir = 8
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
-"NU" = (
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"NV" = (
@@ -9501,6 +10245,12 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
+"NY" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"NZ" = (
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/xenoarch/chamber)
@@ -9508,13 +10258,13 @@
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/door/airlock/glass_research{
- name = "Xenoarchaeology"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor/glass,
+/obj/machinery/door/airlock/maintenance/rnd{
+ req_one_access = null
+ },
/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/arm/ne)
"Ob" = (
/obj/effect/floor_decal/industrial/warning,
/obj/structure/cable{
@@ -9528,12 +10278,8 @@
},
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
-"Oe" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
"Og" = (
-/obj/machinery/radiocarbon_spectrometer,
+/obj/structure/filingcabinet/chestdrawer,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Oj" = (
@@ -9549,8 +10295,15 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/structure/flora/pottedplant/unusual,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
+"Op" = (
+/obj/machinery/atmospherics/pipe/simple/visible/red{
+ dir = 5
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Os" = (
/obj/structure/grille,
/obj/machinery/door/firedoor/glass,
@@ -9583,23 +10336,11 @@
},
/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
-"Ow" = (
-/obj/machinery/vending/wallmed1{
- pixel_x = 30
- },
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
- },
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
"Ox" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/green{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Oy" = (
@@ -9618,6 +10359,18 @@
/obj/machinery/atmospherics/pipe/simple/hidden/universal,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"OA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/portables_connector{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"OD" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -9626,7 +10379,6 @@
dir = 4
},
/obj/structure/table/reinforced,
-/obj/machinery/recharger,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"OE" = (
@@ -9634,21 +10386,17 @@
dir = 4
},
/obj/structure/table/standard,
-/obj/item/weapon/storage/backpack/parachute{
- pixel_x = -6;
- pixel_y = 6
+/obj/item/device/gps{
+ pixel_x = -5;
+ pixel_y = 5
},
-/obj/item/weapon/storage/backpack/parachute{
- pixel_x = 6;
- pixel_y = 6
+/obj/item/device/gps{
+ pixel_x = -2;
+ pixel_y = 2
},
-/obj/item/weapon/storage/backpack/parachute{
- pixel_x = -6;
- pixel_y = -6
- },
-/obj/item/weapon/storage/backpack/parachute{
- pixel_x = 6;
- pixel_y = -6
+/obj/item/device/gps{
+ pixel_x = 1;
+ pixel_y = -1
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
@@ -9666,24 +10414,27 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"OI" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Genetics Closet"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/genetics)
-"OL" = (
-/obj/effect/floor_decal/industrial/warning/dust{
- dir = 4
+/obj/machinery/door/airlock/glass_research{
+ name = "Miscellaneous Lab"
},
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/misclab)
+"OJ" = (
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
+"OL" = (
+/obj/structure/bed/chair/comfy/black,
+/turf/simulated/floor/glass/reinforced{
+ color = "#eacd7c"
+ },
+/area/offmap/aerostat/glassgetsitsownarea)
"OM" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
@@ -9698,10 +10449,29 @@
},
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
+"OO" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/atmos)
+"OP" = (
+/obj/machinery/door/firedoor/glass,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/medical{
+ name = "Virology Lab";
+ req_access = list(39);
+ req_one_access = null
+ },
+/obj/machinery/door/blast/regular/open{
+ id = 2;
+ name = "Virology Emergency Quarantine"
+ },
+/turf/simulated/floor/tiled/steel_ridged,
+/area/offmap/aerostat/inside/virology)
"OR" = (
/obj/machinery/power/apc{
dir = 8;
- name = "east bump";
pixel_x = -22
},
/obj/structure/cable{
@@ -9717,10 +10487,8 @@
/turf/simulated/shuttle/plating/carry,
/area/shuttle/aerostat)
"OW" = (
-/obj/machinery/firealarm{
- dir = 4;
- layer = 3.3;
- pixel_x = 26
+/obj/machinery/atmospherics/unary/freezer{
+ icon_state = "freezer"
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -9738,24 +10506,42 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"Pa" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/turf/simulated/floor/grass,
+/area/offmap/aerostat/inside/genetics)
"Pe" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 6
+/obj/machinery/atmospherics/binary/pump,
+/obj/machinery/atmospherics/pipe/simple/hidden/universal{
+ dir = 4
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Ph" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
+/obj/machinery/light{
dir = 8
},
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/structure/dispenser,
+/obj/machinery/alarm{
+ pixel_y = 26
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
+"Pi" = (
+/obj/structure/closet/walllocker_double/medical/west,
+/obj/structure/table/reinforced,
+/obj/item/weapon/soap,
+/obj/item/weapon/storage/box/gloves,
+/obj/item/weapon/storage/box/masks,
+/obj/item/weapon/storage/box/beakers,
+/obj/item/weapon/storage/box/beakers,
+/obj/item/weapon/storage/fancy/vials,
+/obj/item/weapon/storage/box/syringes,
+/obj/item/device/antibody_scanner,
+/obj/item/weapon/storage/box/syringes,
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"Pl" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -9763,6 +10549,9 @@
/obj/structure/cable{
icon_state = "2-4"
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"Po" = (
@@ -9772,18 +10561,22 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"Pq" = (
-/obj/machinery/atmospherics/binary/pump{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/black,
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 9
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Pr" = (
-/obj/machinery/atmospherics/pipe/simple/visible/blue{
- dir = 6
+/obj/machinery/atmospherics/pipe/simple/hidden/blue,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/filingcabinet/filingcabinet,
+/obj/machinery/light{
+ dir = 1
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -9820,13 +10613,15 @@
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/door/airlock/glass_research{
- name = "Telescience"
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 5
},
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/telesci)
+/obj/structure/sign/poster{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/miscstorage)
"PJ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -9840,18 +10635,22 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
+"PK" = (
+/obj/structure/table/reinforced,
+/obj/machinery/camera/network/research_outpost{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"PN" = (
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
dir = 9
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
-"PO" = (
-/turf/simulated/shuttle/wall/voidcraft/hard_corner,
-/area/offmap/aerostat/inside/misclab)
"PP" = (
-/obj/structure/sign/painting/public{
- pixel_x = 30
+/obj/structure/closet/crate/bin{
+ anchored = 1
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -9880,26 +10679,25 @@
/obj/effect/floor_decal/rust,
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/toxins)
-"PT" = (
-/obj/effect/floor_decal/industrial/warning{
+"PU" = (
+/obj/structure/closet/secure_closet/xenoarchaeologist,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
+"PX" = (
+/obj/machinery/atmospherics/portables_connector/aux{
dir = 4
},
-/obj/effect/floor_decal/industrial/warning{
- dir = 8
- },
+/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/camera/network/research_outpost{
- dir = 1
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
-"PU" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/black{
- dir = 8
+ dir = 4
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Qa" = (
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/black,
+/obj/machinery/atmospherics/binary/pump{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Qb" = (
@@ -9922,9 +10720,11 @@
/turf/simulated/wall,
/area/offmap/aerostat/inside/toxins)
"Qe" = (
-/obj/machinery/light{
- dir = 1
+/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/machinery/light_switch{
+ pixel_y = 24
},
+/obj/structure/flora/pottedplant/crystal,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"Qg" = (
@@ -9932,14 +10732,15 @@
/turf/unsimulated/floor/sky/virgo2_sky,
/area/offmap/aerostat)
"Qh" = (
-/obj/structure/table/standard,
-/obj/item/stack/nanopaste,
-/obj/item/weapon/reagent_containers/glass/bucket,
-/obj/effect/floor_decal/spline/plain{
- dir = 4
+/obj/machinery/vending/phoronresearch{
+ name = "Toximate 2556";
+ products = list(/obj/item/device/transfer_valve = 3, /obj/item/device/assembly/timer = 6, /obj/item/device/assembly/signaler = 6, /obj/item/device/assembly/prox_sensor = 6, /obj/item/device/assembly/igniter = 12)
},
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/machinery/camera/network/research_outpost{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Qk" = (
/obj/effect/floor_decal/rust,
/obj/effect/floor_decal/industrial/warning/dust{
@@ -9965,12 +10766,14 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/drillstorage)
"Qr" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 4
+/obj/machinery/atmospherics/omni/atmos_filter{
+ name = "N2O Filter";
+ tag_east = 7;
+ tag_north = 1;
+ tag_south = 2
},
-/obj/machinery/atmospherics/pipe/simple/hidden/black,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"Qs" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
@@ -10019,26 +10822,30 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/shuttle/aerostat)
"Qz" = (
-/obj/item/weapon/storage/box/monkeycubes,
-/obj/item/weapon/storage/pill_bottle/dylovene,
-/obj/item/weapon/storage/pill_bottle/dylovene,
-/obj/item/weapon/storage/box/disks,
-/obj/item/toy/figure/geneticist,
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/obj/machinery/atmospherics/portables_connector{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/westhall)
"QA" = (
/obj/structure/table/standard,
-/obj/structure/reagent_dispensers/acid{
- pixel_x = -32
+/obj/item/weapon/anobattery,
+/obj/item/weapon/anobattery{
+ pixel_x = 5;
+ pixel_y = 2
},
-/obj/machinery/reagentgrinder,
-/obj/effect/floor_decal/spline/plain{
- dir = 1
+/obj/item/weapon/anobattery{
+ pixel_x = -4;
+ pixel_y = 3
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/item/weapon/anobattery{
+ pixel_x = -5;
+ pixel_y = -3
},
-/turf/simulated/floor/tiled,
+/obj/item/weapon/tool/screwdriver,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"QE" = (
/obj/machinery/atmospherics/pipe/simple/hidden/black{
@@ -10047,14 +10854,9 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"QH" = (
-/obj/effect/floor_decal/spline/plain{
- dir = 5
- },
-/obj/structure/closet/crate/bin{
- anchored = 1
- },
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/structure/closet/firecloset,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"QI" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 5
@@ -10078,14 +10880,6 @@
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
-"QN" = (
-/obj/structure/table/standard,
-/obj/item/clothing/glasses/welding,
-/obj/item/weapon/weldingtool,
-/obj/item/device/analyzer,
-/obj/item/weapon/tool/wrench,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
"QO" = (
/obj/machinery/atmospherics/pipe/manifold4w/visible/blue,
/obj/machinery/meter,
@@ -10100,6 +10894,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
+/obj/structure/flora/pottedplant/mysterious,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"QT" = (
@@ -10133,8 +10928,11 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/structure/closet/crate/bin{
- anchored = 1
+/obj/machinery/atmospherics/pipe/simple/hidden/green,
+/obj/machinery/firealarm{
+ dir = 4;
+ layer = 3.3;
+ pixel_x = 26
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -10179,11 +10977,8 @@
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/north)
"Rb" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/genetics)
"Rd" = (
/obj/effect/floor_decal/industrial/warning{
dir = 1
@@ -10202,14 +10997,13 @@
/area/offmap/aerostat/inside/westhall)
"Rf" = (
/turf/simulated/shuttle/wall/voidcraft/hard_corner,
-/area/offmap/aerostat/inside/drillstorage)
+/area/offmap/aerostat/inside/arm/se)
"Ri" = (
/obj/machinery/atmospherics/portables_connector{
dir = 8
},
-/obj/effect/floor_decal/industrial/outline/red,
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"Rj" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -10244,6 +11038,7 @@
"Rm" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/obj/structure/table/reinforced,
+/obj/machinery/recharger,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"Rn" = (
@@ -10344,17 +11139,10 @@
icon_state = "4-8"
},
/turf/simulated/wall,
-/area/offmap/aerostat/inside/drillstorage)
+/area/offmap/aerostat/inside/miscstorage)
"RE" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
- },
-/obj/machinery/portable_atmospherics/canister/air,
-/obj/machinery/camera/network/research_outpost{
- dir = 8
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/arm/se)
"RF" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
@@ -10378,6 +11166,12 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/airlock/south)
+"RI" = (
+/obj/machinery/atmospherics/binary/pump{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"RK" = (
/obj/effect/floor_decal/rust,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
@@ -10400,6 +11194,9 @@
/area/offmap/aerostat/inside/firingrange)
"RM" = (
/obj/machinery/door/firedoor/glass,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"RN" = (
@@ -10417,19 +11214,21 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/se)
"RP" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/machinery/radiocarbon_spectrometer,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"RU" = (
-/obj/machinery/chem_master,
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/structure/sign/poster{
dir = 8;
pixel_x = -32
},
-/turf/simulated/floor/tiled,
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
"RV" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
@@ -10437,7 +11236,6 @@
/area/shuttle/aerostat)
"RW" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
-/obj/structure/table/reinforced,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
},
@@ -10445,19 +11243,15 @@
dir = 8;
pixel_x = 24
},
+/obj/structure/table/reinforced,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"Sa" = (
-/obj/machinery/atmospherics/unary/heat_exchanger{
- dir = 1
+/obj/machinery/atmospherics/portables_connector{
+ dir = 4
},
-/obj/structure/window/basic{
- dir = 1
- },
-/obj/effect/floor_decal/corner/red/border{
- dir = 1
- },
-/turf/simulated/floor/tiled/steel_ridged,
+/obj/machinery/camera/network/research_outpost,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Sb" = (
/obj/structure/cable/heavyduty{
@@ -10487,9 +11281,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
@@ -10500,6 +11291,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 30
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Sp" = (
@@ -10512,7 +11306,12 @@
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/north)
"Sr" = (
-/obj/machinery/atmospherics/binary/pump,
+/obj/machinery/atmospherics/pipe/manifold/visible{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Sv" = (
@@ -10528,10 +11327,23 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/tiled/white,
+/obj/machinery/door/airlock/glass_research{
+ name = "Toxins Lab"
+ },
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
+"SC" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/window/reinforced/full,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/glass,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"SE" = (
-/obj/machinery/atmospherics/binary/pump{
+/obj/machinery/atmospherics/portables_connector{
dir = 8
},
/turf/simulated/floor/tiled/white,
@@ -10549,12 +11361,26 @@
/obj/effect/map_helper/airlock/atmos/pump_out_internal,
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/sw)
+"SH" = (
+/obj/machinery/alarm{
+ pixel_y = 26
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
+"SI" = (
+/obj/machinery/computer/scan_consolenew{
+ dir = 8
+ },
+/obj/item/weapon/paper{
+ info = "out of order"
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"SJ" = (
-/obj/structure/table/standard,
-/obj/item/weapon/paper_bin,
-/obj/item/device/flashlight/lamp,
-/obj/machinery/light,
-/turf/simulated/floor/tiled,
+/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch)
"SL" = (
/obj/structure/cable{
@@ -10563,10 +11389,14 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"SN" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on,
-/obj/machinery/suspension_gen,
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/machinery/atmospherics/portables_connector{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"SO" = (
/obj/effect/floor_decal/industrial/warning/dust{
dir = 8
@@ -10581,12 +11411,9 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"SP" = (
-/obj/machinery/vending/tool,
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 8
- },
+/obj/machinery/medical_kiosk,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/telesci)
+/area/offmap/aerostat/inside/miscstorage)
"SQ" = (
/obj/machinery/atmospherics/unary/heat_exchanger{
dir = 4
@@ -10666,25 +11493,16 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/telesci)
+/area/offmap/aerostat/inside/miscstorage)
"Td" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Toxins Lab"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor/tiled/steel_ridged,
+/obj/machinery/atmospherics/portables_connector,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Te" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"Tg" = (
@@ -10708,10 +11526,8 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"Tn" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Tq" = (
@@ -10722,6 +11538,14 @@
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
+"Tt" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/floor_decal/rust,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"Tv" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
@@ -10729,6 +11553,15 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
+"Tx" = (
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/miscstorage)
+"Tz" = (
+/obj/item/modular_computer/console/preset/research{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/telesci)
"TB" = (
/turf/simulated/shuttle/wall/voidcraft/hard_corner,
/area/offmap/aerostat/inside/powercontrol)
@@ -10745,6 +11578,10 @@
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
+"TM" = (
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"TO" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 1;
@@ -10811,13 +11648,15 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/north)
"TW" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/green{
- dir = 4
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/door/window/brigdoor/eastleft{
+ dir = 2;
+ req_access = list(7)
},
-/turf/simulated/wall,
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"TX" = (
/obj/structure/window/reinforced{
@@ -10841,18 +11680,22 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/toxins)
"TZ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 1
},
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
-"Ub" = (
-/obj/machinery/atmospherics/portables_connector{
- dir = 8
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/closet/l3closet/virology,
+/obj/machinery/light{
+ dir = 4
},
-/obj/machinery/portable_atmospherics/canister/air,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/virology)
+"Ub" = (
+/obj/machinery/vending/tool,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/miscstorage)
"Ue" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
@@ -10865,12 +11708,24 @@
/turf/simulated/shuttle/floor/yellow,
/area/shuttle/aerostat)
"Uf" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
},
-/obj/machinery/light/small,
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/structure/closet/wardrobe/virology_white,
+/obj/machinery/camera/network/research_outpost{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
+"Ug" = (
+/obj/effect/floor_decal/rust,
+/obj/random/maintenance/research,
+/obj/random/maintenance/research,
+/obj/random/tool,
+/obj/random/tool,
+/obj/structure/closet,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"Uh" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -10878,19 +11733,16 @@
/turf/simulated/wall,
/area/offmap/aerostat/inside/telesci)
"Ui" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Miscellaneous Lab"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/door/firedoor/glass,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/misclab)
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/turf/simulated/floor/tiled/dark,
+/area/offmap/aerostat/inside/lobby)
"Uj" = (
-/obj/machinery/artifact_scanpad,
-/turf/simulated/floor/tiled/white,
+/turf/simulated/floor,
/area/offmap/aerostat/inside/xenoarch)
"Ul" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -10907,6 +11759,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
+"Uo" = (
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"Up" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -10930,10 +11785,11 @@
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/se)
"Us" = (
-/obj/machinery/atmospherics/portables_connector,
-/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 6
+ },
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/area/offmap/aerostat/inside/atmos)
"Ut" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 9
@@ -10973,28 +11829,15 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/xenoarch/chamber)
"UA" = (
-/obj/machinery/washing_machine,
/obj/machinery/alarm{
pixel_y = 26
},
/obj/machinery/camera/network/research_outpost{
dir = 4
},
+/obj/machinery/medical_kiosk,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
-"UB" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/floor_decal/industrial/warning,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
"UC" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
@@ -11021,14 +11864,21 @@
/obj/structure/cable/heavyduty{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden,
+/obj/machinery/light{
+ dir = 8
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"UH" = (
-/obj/structure/closet/excavation,
+/obj/machinery/power/apc{
+ dir = 1;
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/toxins)
"UL" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -11038,15 +11888,22 @@
},
/turf/simulated/floor/bluegrid,
/area/offmap/aerostat/inside/powercontrol)
+"UM" = (
+/obj/structure/bed/chair/office/light,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"UO" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
+/turf/simulated/floor/reinforced,
+/area/offmap/aerostat/inside/telesci)
+"UP" = (
+/obj/machinery/light{
+ dir = 1
},
-/obj/structure/sign/painting/public{
- pixel_y = 30
+/obj/structure/closet/crate/bin{
+ anchored = 1
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/firingrange)
"US" = (
/obj/machinery/door/airlock/glass_research{
name = "Atmospherics";
@@ -11060,35 +11917,31 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/atmos)
"UV" = (
-/obj/effect/floor_decal/industrial/warning/corner,
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 8
- },
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/arm/ne)
"UW" = (
-/turf/simulated/shuttle/wall/voidcraft/green,
-/area/offmap/aerostat/inside/genetics)
-"UZ" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 6
+ dir = 4
},
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/telesci)
+"UZ" = (
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/machinery/portable_atmospherics/canister/empty,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/obj/machinery/light{
+ dir = 8
+ },
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/northchamb)
"Va" = (
@@ -11102,15 +11955,18 @@
pixel_y = 26
},
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/structure/table/standard,
+/obj/machinery/computer/atmoscontrol/laptop{
+ monitored_alarm_ids = list("anomaly_testing");
+ req_one_access = list(47,24,11)
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Vd" = (
-/obj/machinery/door/firedoor/glass,
-/obj/structure/window/reinforced/full,
-/obj/structure/grille,
-/obj/machinery/atmospherics/pipe/simple/hidden/green,
-/obj/machinery/door/firedoor/glass,
-/turf/simulated/floor,
+/obj/machinery/atmospherics/pipe/simple/hidden/green{
+ dir = 6
+ },
+/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Ve" = (
/obj/machinery/atmospherics/portables_connector{
@@ -11125,29 +11981,31 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Vi" = (
-/obj/structure/table/standard,
-/obj/item/device/assembly_holder/timer_igniter,
-/obj/item/weapon/tool/screwdriver,
-/obj/structure/sign/painting/public{
- pixel_x = -30
+/obj/structure/window/reinforced{
+ dir = 4
},
-/obj/item/weapon/folder/white,
-/obj/item/weapon/pen/fountain,
+/obj/machinery/portable_atmospherics/canister/empty,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
-"Vk" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/tiled/dark,
-/area/offmap/aerostat/inside/xenoarch)
"Vl" = (
/obj/machinery/atmospherics/binary/algae_farm/filled{
dir = 1
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
+"Vo" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled/dark,
+/area/offmap/aerostat/inside/lobby)
+"Vr" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/tiled/techfloor,
+/area/offmap/aerostat/inside/southchamb)
"Vs" = (
/obj/effect/floor_decal/rust,
/obj/structure/cable/yellow{
@@ -11159,13 +12017,16 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"Vt" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/suspension_gen,
/obj/machinery/camera/network/research_outpost{
dir = 4
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/machinery/atmospherics/portables_connector{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"Vu" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
@@ -11174,11 +12035,11 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"Vx" = (
-/obj/machinery/atmospherics/pipe/manifold/visible{
- dir = 1
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"Vz" = (
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
@@ -11216,6 +12077,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
+/obj/structure/flora/pottedplant/crystal,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"VJ" = (
@@ -11231,6 +12093,12 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
+"VL" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"VM" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 10
@@ -11282,16 +12150,22 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/arm/ne)
"VU" = (
-/obj/machinery/light{
- dir = 1
+/obj/effect/floor_decal/rust,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
},
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/xenoarch)
"VX" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"VY" = (
@@ -11301,16 +12175,11 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"Wb" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/light{
- dir = 8
+/obj/machinery/camera/network/research_outpost{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/portable_atmospherics/canister/empty,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"Wd" = (
/turf/simulated/shuttle/wall/voidcraft/hard_corner{
stripe_color = "#00FF00"
@@ -11336,20 +12205,30 @@
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Wh" = (
-/obj/machinery/camera/network/research_outpost{
- dir = 8
+/obj/machinery/power/apc{
+ dir = 4;
+ pixel_x = 28
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/telesci)
+/area/offmap/aerostat/inside/miscstorage)
"Wi" = (
/obj/structure/table/reinforced,
/obj/machinery/recharger,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
+"Wj" = (
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"Wk" = (
-/obj/machinery/portable_atmospherics/canister/empty,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Wn" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -11373,6 +12252,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
+/obj/structure/flora/pottedplant/subterranean,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/southchamb)
"Wt" = (
@@ -11409,9 +12289,6 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"Wz" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1
},
@@ -11421,6 +12298,10 @@
/obj/structure/cable{
icon_state = "2-8"
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"WC" = (
@@ -11436,8 +12317,22 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/structure/table/rack,
+/obj/item/clothing/suit/space/anomaly/heat,
+/obj/item/clothing/head/helmet/space/anomaly/heat,
+/obj/item/device/suit_cooling_unit,
+/obj/item/weapon/storage/excavation,
+/obj/item/weapon/tool/wrench,
+/obj/item/weapon/pickaxe,
+/obj/item/device/measuring_tape,
+/obj/item/weapon/storage/belt/archaeology,
+/obj/item/stack/flag/yellow,
+/obj/item/clothing/mask/breath,
+/obj/machinery/alarm{
+ pixel_y = 26
+ },
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"WF" = (
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
dir = 4
@@ -11446,11 +12341,11 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"WH" = (
-/obj/structure/table/steel_reinforced,
/obj/random/maintenance/research,
/obj/structure/sign/painting/public{
pixel_x = 30
},
+/obj/structure/table/borosilicate,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"WJ" = (
@@ -11470,20 +12365,27 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/telesci)
+/area/offmap/aerostat/inside/miscstorage)
+"WP" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/blue,
+/obj/machinery/medical_kiosk,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"WQ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/blue{
dir = 4
},
-/obj/machinery/power/apc{
- dir = 1;
- pixel_y = 24
- },
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/structure/cable/heavyduty{
+ icon_state = "4-8"
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
+"WR" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/book/manual/virology,
+/obj/item/device/antibody_scanner,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"WS" = (
/obj/effect/shuttle_landmark{
base_area = /area/offmap/aerostat;
@@ -11521,10 +12423,12 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/structure/table/standard,
-/obj/item/weapon/tool/screwdriver,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
+"WY" = (
+/obj/machinery/atmospherics/pipe/simple/visible/red,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"WZ" = (
/obj/effect/floor_decal/industrial/warning/dust/corner{
dir = 4
@@ -11532,11 +12436,18 @@
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"Xa" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/hidden{
+ dir = 9
},
-/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/obj/effect/floor_decal/rust,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/westhall)
"Xb" = (
/obj/effect/floor_decal/rust,
/obj/structure/cable/yellow{
@@ -11558,9 +12469,19 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/structure/flora/pottedplant/subterranean,
-/turf/simulated/floor/tiled/white,
+/turf/simulated/wall,
/area/offmap/aerostat/inside/xenoarch)
+"Xm" = (
+/obj/machinery/power/apc{
+ dir = 8;
+ pixel_x = -22
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"Xo" = (
/obj/effect/floor_decal/industrial/danger{
dir = 1
@@ -11579,14 +12500,17 @@
/turf/simulated/shuttle/floor/yellow,
/area/shuttle/aerostat)
"Xr" = (
-/obj/structure/window/reinforced,
-/obj/machinery/portable_atmospherics/canister/phoron,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 6
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Xt" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -11606,10 +12530,12 @@
/obj/machinery/light{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
},
-/obj/item/modular_computer/console/preset/research,
+/obj/structure/table/standard,
+/obj/item/device/multitool,
+/obj/item/weapon/tool/screwdriver,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
"XA" = (
@@ -11629,13 +12555,9 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 5
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/floor,
+/area/offmap/aerostat/inside/arm/ne)
"XH" = (
-/obj/structure/table/reinforced,
/obj/machinery/recharger/wallcharger{
pixel_x = 4;
pixel_y = 20
@@ -11648,12 +12570,13 @@
pixel_x = 4;
pixel_y = 36
},
+/obj/item/modular_computer/console,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"XJ" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/turf/simulated/wall,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/genetics)
"XK" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -11667,29 +12590,32 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/inside/arm/ne)
"XL" = (
-/obj/machinery/door/airlock/glass_research{
- name = "Xenoarchaeology"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/xenoarch)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/virology)
"XM" = (
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/south)
+"XN" = (
+/obj/structure/closet/crate/bin{
+ anchored = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 10
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"XO" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/structure/closet/crate/bin{
- anchored = 1
+/obj/structure/sign/painting/public{
+ pixel_y = 30
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/telesci)
@@ -11703,7 +12629,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/tiled/steel_ridged,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/arm/ne)
"XQ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/meter,
@@ -11722,11 +12648,20 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
"XV" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 6
+/obj/structure/bed/chair/comfy/black{
+ dir = 1
},
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/floor/glass/reinforced{
+ color = "#eacd7c"
+ },
+/area/offmap/aerostat/glassgetsitsownarea)
+"XW" = (
+/obj/machinery/light/floortube{
+ dir = 8;
+ pixel_x = -6
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"XX" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
@@ -11755,20 +12690,21 @@
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/drillstorage)
"Yg" = (
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 8
- },
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/machinery/disease2/incubator,
+/obj/structure/reagent_dispensers/virusfood{
+ pixel_y = 28
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"Yh" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
@@ -11799,12 +12735,16 @@
},
/obj/machinery/power/apc{
dir = 8;
- name = "east bump";
pixel_x = -22
},
/obj/effect/floor_decal/rust,
/turf/simulated/floor,
/area/offmap/aerostat/inside/arm/ne)
+"Yj" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden/black,
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Yl" = (
/obj/machinery/atmospherics/pipe/simple/hidden,
/obj/machinery/light/floortube{
@@ -11836,9 +12776,6 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"Yp" = (
-/obj/machinery/atmospherics/pipe/simple/visible/red{
- dir = 10
- },
/obj/machinery/light{
dir = 1
},
@@ -11861,7 +12798,11 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"Yt" = (
-/obj/machinery/atmospherics/pipe/simple/visible/red,
+/obj/machinery/atmospherics/portables_connector,
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 4
+ },
+/obj/machinery/camera/network/research_outpost,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Yu" = (
@@ -11875,52 +12816,79 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"Yv" = (
-/obj/structure/closet/crate/bin{
- anchored = 1
- },
+/obj/machinery/autolathe,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/misclab)
+/area/offmap/aerostat/inside/miscstorage)
"Yw" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden{
- dir = 8
- },
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"Yx" = (
/obj/machinery/atmospherics/pipe/manifold/hidden,
/turf/simulated/shuttle/wall/voidcraft/green,
/area/offmap/aerostat/inside/airlock/west)
"YB" = (
/obj/machinery/atmospherics/pipe/simple/hidden/black{
- dir = 9
+ dir = 4
+ },
+/obj/machinery/atmospherics/binary/pump/on{
+ name = "phoron pump"
},
/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
-"YE" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 1
- },
-/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
-"YJ" = (
-/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
- scrub_id = "science_outpost"
+/area/offmap/aerostat/inside/atmos)
+"YC" = (
+/obj/structure/table/standard,
+/obj/item/weapon/paper_bin{
+ pixel_x = 4;
+ pixel_y = 6
},
+/obj/item/weapon/folder/white,
+/obj/item/weapon/pen,
/obj/machinery/light{
dir = 4
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
-"YN" = (
-/obj/effect/floor_decal/industrial/warning{
+/area/offmap/aerostat/inside/xenoarch)
+"YE" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/coolanttank,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/xenoarch)
+"YH" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/med_data/laptop{
+ dir = 1
+ },
+/obj/machinery/camera/network/research_outpost{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
+"YJ" = (
+/obj/machinery/atmospherics/binary/pump{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
+"YL" = (
+/obj/structure/bed/chair/bay,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
},
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
+"YN" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor,
-/area/offmap/aerostat/inside/xenoarch)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/disease2/isolator,
+/obj/machinery/firealarm{
+ dir = 4;
+ layer = 3.3;
+ pixel_x = 26
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"YS" = (
/obj/machinery/door/blast/regular{
dir = 2;
@@ -11946,12 +12914,17 @@
/turf/simulated/shuttle/wall/voidcraft/green/virgo2,
/area/offmap/aerostat/inside/arm/se)
"YX" = (
-/obj/structure/reagent_dispensers/coolanttank,
-/obj/machinery/camera/network/research_outpost{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/portables_connector{
+ dir = 8
},
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/xenoarch)
+/area/offmap/aerostat/inside/toxins)
"Zb" = (
/obj/structure/cable/heavyduty{
icon_state = "4-8"
@@ -11962,11 +12935,10 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
"Zc" = (
-/obj/machinery/light/floortube{
- dir = 4;
- pixel_x = 5
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/closet/crate/bin{
+ anchored = 1
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
"Ze" = (
@@ -11976,36 +12948,59 @@
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 4
},
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/atmos)
"Zg" = (
/obj/machinery/camera/network/research_outpost,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
+"Zh" = (
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"Zi" = (
-/obj/machinery/atmospherics/binary/pump{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/manifold/visible/red{
+ dir = 1
+ },
+/obj/machinery/meter,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Zj" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/tiled/white,
+/obj/structure/window/basic{
+ dir = 1
+ },
+/obj/structure/window/basic{
+ dir = 8
+ },
+/obj/machinery/atmospherics/unary/heat_exchanger{
+ dir = 1
+ },
+/obj/effect/floor_decal/corner/red/border{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner/red/border{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/steel_ridged,
/area/offmap/aerostat/inside/toxins)
"Zn" = (
/obj/machinery/atmospherics/portables_connector{
dir = 8
},
/obj/effect/floor_decal/industrial/warning/cee,
+/obj/machinery/atmospherics/pipe/simple/hidden/black{
+ dir = 5
+ },
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Zo" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/green{
- dir = 6
+/obj/structure/cable{
+ icon_state = "4-8"
},
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/black,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
"Zp" = (
@@ -12022,11 +13017,22 @@
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
"Zu" = (
-/obj/machinery/atmospherics/unary/freezer{
- icon_state = "freezer"
+/obj/machinery/light{
+ dir = 4
},
+/obj/structure/table/rack,
+/obj/item/clothing/suit/space/anomaly/heat,
+/obj/item/clothing/head/helmet/space/anomaly/heat,
+/obj/item/device/suit_cooling_unit,
+/obj/item/weapon/storage/excavation,
+/obj/item/weapon/tool/wrench,
+/obj/item/weapon/pickaxe,
+/obj/item/device/measuring_tape,
+/obj/item/weapon/storage/belt/archaeology,
+/obj/item/stack/flag/yellow,
+/obj/item/clothing/mask/breath,
/turf/simulated/floor/tiled/white,
-/area/offmap/aerostat/inside/toxins)
+/area/offmap/aerostat/inside/xenoarch)
"Zv" = (
/obj/machinery/embedded_controller/radio/airlock/docking_port{
cycle_to_external_air = 1;
@@ -12041,12 +13047,8 @@
/area/offmap/aerostat/inside/toxins)
"Zw" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/closet/wardrobe/genetics_white,
-/obj/machinery/camera/network/research_outpost{
- dir = 8
- },
/turf/simulated/floor/tiled,
-/area/offmap/aerostat/inside/genetics)
+/area/offmap/aerostat/inside/misclab)
"Zx" = (
/obj/effect/floor_decal/industrial/warning/dust,
/obj/machinery/door/airlock/external{
@@ -12071,6 +13073,18 @@
"ZA" = (
/turf/simulated/floor/tiled,
/area/offmap/aerostat/inside/xenoarch)
+"ZD" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = -4
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
+"ZE" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/blue,
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/toxins)
"ZG" = (
/obj/machinery/atmospherics/unary/vent_pump/high_volume{
dir = 8
@@ -12085,6 +13099,10 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/westhall)
+"ZI" = (
+/obj/machinery/dna_scannernew,
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/genetics)
"ZJ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -12139,13 +13157,35 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/easthall)
+"ZP" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/personal/patient,
+/obj/machinery/alarm{
+ pixel_y = 26
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/virology)
"ZR" = (
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/structure/window/reinforced,
-/turf/simulated/floor/tiled/techfloor,
-/area/offmap/aerostat/inside/northchamb)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/binary/pump{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/tiled/white,
+/area/offmap/aerostat/inside/toxins)
"ZS" = (
-/obj/machinery/atmospherics/pipe/manifold/visible,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/black{
+ dir = 1
+ },
/obj/machinery/meter,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/toxins)
@@ -17641,7 +18681,7 @@ XX
Rl
aE
EN
-UW
+EN
aw
aw
aw
@@ -17782,7 +18822,7 @@ he
Yx
cI
KW
-EN
+Jo
gf
Bz
aw
@@ -17924,8 +18964,8 @@ he
FJ
lL
jL
-EN
-Bt
+Jo
+Qz
Bz
Bz
aw
@@ -18068,7 +19108,7 @@ Wt
qN
Jo
if
-Go
+Qz
Bz
Bz
aw
@@ -18207,13 +19247,13 @@ PS
PS
Rr
Re
-qN
-Jo
+HS
+Ls
Lq
Xa
-Go
+ni
Bz
-UW
+Jo
aw
aw
aw
@@ -18349,13 +19389,13 @@ oW
PS
Rr
Lt
-qN
+KA
+Jo
+ZK
+ZK
+ZK
+ZK
Jo
-Bu
-if
-Go
-Go
-UW
Bz
aw
aw
@@ -18493,13 +19533,13 @@ Rr
NV
Hq
Jo
-Kv
-Kr
-Go
-Go
-Go
-Bz
-Bz
+NP
+Yw
+wA
+Yw
+Yw
+EA
+EA
aw
aw
aw
@@ -18635,14 +19675,14 @@ Qd
Zg
HH
FU
-Kv
+NP
yG
-Go
-Qz
-Go
-Go
-UW
-UW
+Yw
+Yw
+Yw
+Yw
+zH
+zH
aw
aw
aw
@@ -18777,15 +19817,15 @@ Qd
Tr
Sl
Lt
-Kv
+NP
tU
-Go
-Go
-Go
-Go
-Go
-Bz
-Bz
+Yw
+Yw
+Yw
+Yw
+Yw
+EA
+EA
aw
aw
aw
@@ -18925,10 +19965,10 @@ Ey
kR
fo
Ml
-Go
-Go
-Bz
-Bz
+Yw
+Yw
+EA
+EA
aw
aw
aw
@@ -19061,17 +20101,17 @@ TY
ZK
nR
Lt
-Kv
-jS
+NP
+Yw
Yw
ey
-Bh
+jw
ef
-Go
-Go
-Go
-Bz
-Bz
+Yw
+Yw
+Yw
+EA
+EA
aw
aw
aw
@@ -19203,18 +20243,18 @@ xM
ZK
pP
yN
-Kv
-tA
-LN
+NP
+Yw
+Yw
jj
Zw
oZ
-Oe
+Zw
qS
-Oe
-hM
-UW
-UW
+Yw
+Yw
+zH
+zH
aw
aw
aw
@@ -19345,19 +20385,19 @@ pX
ZK
wF
Lt
-Kv
-Kv
-Kv
-Kv
-Kv
-Kv
-Kv
-Kv
-Kv
-Kv
-Kv
-gf
-UW
+NP
+Yw
+Yw
+Yw
+Yw
+ef
+Yw
+Yw
+Yw
+Yw
+Yw
+FY
+zH
aw
aw
aw
@@ -19471,7 +20511,7 @@ ac
Rr
Rr
ce
-Eu
+PX
Eu
Dh
Jp
@@ -19487,20 +20527,20 @@ CQ
Qd
lz
Lt
-iX
-pu
-Nl
-Nl
+NP
+Yw
+Kz
+Yw
yX
kq
-Nl
-Nl
-Ke
-Ke
-yX
-sz
-rq
-rq
+Yw
+Yw
+Yw
+Kz
+Yw
+Yw
+zH
+zH
aw
aw
aw
@@ -19618,11 +20658,11 @@ Lj
Dh
hu
Pe
-xu
-qC
-qC
-qC
-hu
+ph
+RI
+WY
+Op
+lr
Qd
ux
yO
@@ -19630,18 +20670,18 @@ Qd
wF
Lt
iX
-fR
-Nl
-Nl
-Nl
-Nl
-Nl
-Nl
-Ls
-Ls
-Nl
-jN
-Nl
+iX
+iX
+iX
+iX
+iX
+iX
+iX
+iX
+iX
+iX
+iX
+iX
oA
rq
rq
@@ -19754,15 +20794,15 @@ ac
mN
ce
Qd
+qC
+WQ
Qd
-jM
-un
Dh
Yp
CE
Qa
GX
-Yt
+Yb
Mv
yI
Qd
@@ -19772,20 +20812,20 @@ Qd
il
co
vP
-Dl
HJ
HJ
HJ
-HJ
-HJ
-qe
-mY
-bm
UG
-jw
-bO
-bO
-bO
+Hs
+HJ
+HJ
+HJ
+HJ
+UG
+HJ
+HJ
+qv
+vu
vT
nN
nN
@@ -19893,18 +20933,18 @@ aw
aw
aw
Rr
-QN
+Vi
Vi
bG
-Qd
-tP
+qC
+WQ
un
Dh
mu
MH
Zi
Zj
-Zj
+dz
Ay
kO
Qd
@@ -19915,19 +20955,19 @@ Ek
ZH
iX
Qe
-Nl
-Nl
-Nl
-Nl
-Nl
+MA
+MA
+MA
+MA
+MA
tJ
Nl
Nl
Nl
Nl
Nl
-Nl
-Nl
+AR
+AR
oA
uS
cU
@@ -20038,8 +21078,8 @@ Rr
mL
ig
oK
-Qd
-IA
+qC
+WQ
un
Dh
FF
@@ -20056,14 +21096,14 @@ Qd
Ek
ZH
iX
-Nl
+UP
Nl
Nl
Nl
Nl
Nl
fJ
-vM
+mm
Dq
ZL
TX
@@ -20177,23 +21217,23 @@ aw
Rr
Rr
qU
-MM
-qC
+qU
+qU
io
-vR
-jM
-un
+qC
+WQ
+Eb
Dh
Gt
TF
HV
-Sa
-aF
-bR
-Br
Qd
-Zu
-DI
+Qd
+bR
+Gt
+Qd
+Mu
+po
Qd
PR
ZH
@@ -20317,30 +21357,30 @@ aw
aw
de
ce
-hG
-xC
zu
-qC
+zu
+zu
+zu
mD
Vd
Hb
nV
bW
-YJ
+Qd
Sw
-xK
Qd
Qd
-fh
-YJ
Qd
-Jr
+Qd
+Qd
+Qd
+qC
HU
kf
ck
Md
iX
-HS
+at
Nl
Nl
at
@@ -20459,23 +21499,23 @@ aw
de
de
Qd
-Qd
-Qd
-Bc
+Ha
+Gu
+Gu
Gu
TW
-Qd
+lT
WQ
-LR
-Qd
+MM
Qd
+Ph
JV
+NA
+vY
Qd
-Qd
-Qd
-Qd
-Qd
-Qd
+FK
+Gn
+oi
MM
Sv
Wn
@@ -20483,11 +21523,11 @@ VJ
ZV
iX
DG
-Nl
+Mf
Nl
Wi
Nl
-Nl
+Mf
FT
NJ
lI
@@ -20599,24 +21639,24 @@ aw
aw
de
wC
-xP
+aF
Qd
ol
-qC
-hB
-Yb
+ol
+ol
+ol
xO
JM
gL
ud
+KD
jy
-GR
xy
jy
DH
+KD
+jy
jy
-DH
-GR
jy
TP
DL
@@ -20740,26 +21780,26 @@ Qg
aw
de
wC
-Xr
+uN
Hy
tv
NU
Yb
-wG
-Zo
+Yb
+Yb
Ox
-Qd
+mi
ji
ib
-ib
-ib
+LR
+Pr
nh
aI
-aI
-aI
-aI
+ou
+ZE
+WP
wr
-qC
+Zh
qC
CC
Wn
@@ -20772,7 +21812,7 @@ Nl
Nl
Nl
Nl
-yK
+eA
NJ
lI
Ld
@@ -20881,8 +21921,8 @@ aw
Qg
de
wC
-Gf
-Xr
+xP
+xP
mt
Qd
NH
@@ -20890,26 +21930,26 @@ Oz
CM
hU
QV
-Qd
+oc
nb
-qC
FK
-qC
+Qd
+Qh
zb
Ca
-qC
-qC
+rz
+Qd
PP
jM
hs
-qC
-QV
+uF
+zD
Wn
XT
ZH
iX
Rm
-bx
+ye
ye
Ew
mA
@@ -20928,7 +21968,7 @@ ID
ID
iX
PJ
-tR
+eW
KK
KK
aw
@@ -21022,9 +22062,9 @@ aw
aw
de
wC
-ZR
-Gf
-Xr
+Ny
+xP
+xP
ch
Qd
Qd
@@ -21033,18 +22073,18 @@ Qd
Ov
SU
GK
+wG
OM
-OM
-nK
-OM
+GK
+GK
zV
+rU
OM
-Td
OM
OM
JD
-nK
-OM
+GK
+rU
kG
Ry
Yh
@@ -21070,8 +22110,8 @@ iX
iX
iX
Nm
-eW
-eW
+bF
+CN
KK
KK
Qg
@@ -21163,10 +22203,10 @@ aw
aw
de
wC
-ju
-ZR
-Gf
-Xr
+xP
+xP
+xP
+xP
mt
Ce
cB
@@ -21175,14 +22215,14 @@ cB
cB
GF
gD
-qC
+xg
Ly
-oc
-qC
+Qd
+FK
mc
+Gn
+xu
qC
-qC
-oc
kt
QO
JT
@@ -21213,7 +22253,7 @@ VI
ie
JS
eW
-eW
+fP
wz
KK
KK
@@ -21304,11 +22344,11 @@ aw
aw
de
de
-mi
-ju
-ZR
-Gf
-Xr
+xP
+xP
+xP
+xP
+xP
lX
Ce
bK
@@ -21316,11 +22356,11 @@ CO
Cl
PN
GF
-qC
-qC
-qC
-qC
-qC
+qf
+xs
+Gf
+Qd
+QH
mc
qC
qC
@@ -21444,13 +22484,13 @@ iW
la
la
la
-BA
-KD
-sm
-Ar
-lk
-vm
-qf
+de
+ld
+vt
+vt
+vt
+uh
+ge
Pl
As
bw
@@ -21458,14 +22498,14 @@ AL
WF
XQ
bC
-qC
-qC
-zJ
-zJ
-qC
+Ly
+xK
+Ly
+Qd
+Sa
Ih
-xU
-xU
+qC
+rf
xU
xU
Wf
@@ -21583,31 +22623,31 @@ aw
aw
aw
kk
-Wk
+qJ
UZ
-Wb
+vt
sN
-vt
-vt
-vt
-vt
-vt
-vt
+pH
+OL
+HK
+XV
+Cd
+Cm
wi
Ce
Ti
bP
no
cC
-GF
+eR
VU
-qC
+zr
Vx
-HL
+Qd
Sr
nB
lW
-qC
+Yj
qC
qC
qC
@@ -21625,7 +22665,7 @@ Ym
Ym
Ym
Ym
-Ym
+wl
Ym
Ym
Ym
@@ -21640,9 +22680,9 @@ ie
QX
eW
eW
-eW
-eW
-eW
+eJ
+eJ
+eJ
eW
Bq
Eh
@@ -21725,14 +22765,14 @@ aw
aw
aw
kk
-Wk
+ry
Te
xP
xP
xP
-xP
-xP
-xP
+OL
+HK
+XV
xP
xP
oJ
@@ -21741,18 +22781,18 @@ qi
Vl
bA
QE
-GF
-qC
-qC
-JI
+fh
+rg
+Uj
JI
+Qd
+SE
+YX
qC
-og
+AC
+XW
qC
qC
-qC
-qC
-Pr
BG
Az
aJ
@@ -21782,9 +22822,9 @@ ie
QX
eW
eW
-VG
-VG
-VG
+HK
+HK
+HK
eW
BP
it
@@ -21869,13 +22909,13 @@ cO
de
qj
cX
-Ng
-OL
-OL
-OL
-OL
-OL
+xP
+xP
+xP
OL
+HK
+XV
+xP
hp
yu
Ce
@@ -21883,19 +22923,19 @@ uu
Vl
cA
QE
-GF
-qC
-qC
-qC
-qC
+fi
+rH
+Uj
+GR
+Qd
qC
og
qC
-zJ
+AC
+fC
qC
qC
Fi
-lT
GB
aK
aQ
@@ -21924,9 +22964,9 @@ HN
QX
eW
eW
-eW
+fP
pY
-eW
+fP
eW
wQ
eW
@@ -22011,33 +23051,33 @@ rM
um
ge
bN
-bj
-VG
-VG
-VG
-VG
-VG
-VG
-VG
+xP
+xP
+xP
+xP
+xP
+xP
+xP
+xP
wg
Ce
ke
Vl
yU
TR
-GF
-mu
-qC
-Bk
-nf
-Sr
-nB
-qC
+ii
+jF
+Ae
+jF
+Qd
+Td
+Zo
+lW
Fw
nf
lh
+BT
AC
-qC
DK
Mj
bZ
@@ -22066,9 +23106,9 @@ pA
QX
eW
eW
-eW
-eW
-eW
+VG
+VG
+VG
eW
Cj
tE
@@ -22154,13 +23194,13 @@ gv
oe
gk
bj
-VG
-VG
-VG
-VG
-VG
-VG
-VG
+uV
+wb
+xP
+Ng
+ci
+xP
+lS
bq
Ce
fH
@@ -22169,17 +23209,17 @@ Da
SW
Cc
Bk
-nf
-xU
-Ni
-qC
+Jq
+HL
+Qd
+Td
jH
OX
Hd
xf
+OA
OX
-eR
-OX
+Hd
fK
UL
cP
@@ -22205,13 +23245,13 @@ SL
Ya
Ya
pq
-uh
-pH
-er
-er
-er
-er
-er
+QX
+eW
+eW
+VG
+VG
+VG
+MZ
NE
er
er
@@ -22292,35 +23332,35 @@ cn
cn
fW
gN
-de
-qj
+dY
+Ce
Ze
-wb
+Ce
In
-dY
-dY
+km
+km
lH
+Ce
ua
-ua
-sc
-Ny
+Ce
+rw
Ce
qh
Vl
cA
QE
ez
-qC
-Fi
-Bk
-ZS
-qC
-og
-qC
-Fi
-Fi
+sm
+Jq
+PU
+Qd
+UH
+ZR
qC
AC
+Fi
+Fi
+qC
jT
GB
aO
@@ -22346,16 +23386,16 @@ KI
Zs
Ya
KI
-HN
-eW
-QX
-eW
-eW
+xH
+iQ
+sy
+er
+FA
gP
-eW
-eW
+FA
+Vr
OG
-eW
+tR
KK
DC
Jd
@@ -22434,35 +23474,35 @@ aw
aw
aw
aw
-kk
+hn
Us
hk
BW
KP
-xP
-xP
+pZ
+DM
Fh
qZ
-qZ
-qZ
+OO
+OO
pr
fV
gX
Vl
cA
QE
-ez
-hG
-vW
+ju
+vm
+Jq
PU
py
+Wk
+ZS
+xU
+ph
+ph
+ws
xU
-nB
-rg
-AC
-AC
-qC
-AC
Kj
GB
aP
@@ -22492,9 +23532,9 @@ ie
eW
QX
eW
-VG
-VG
-VG
+HK
+HK
+HK
eW
OG
pm
@@ -22576,35 +23616,35 @@ aw
aw
aw
aw
-kk
-Us
+hn
+sc
gG
-Aa
+BW
Ii
-DM
-qJ
-Ha
-hn
-hn
-eM
+pZ
+pZ
+pZ
+pZ
+pZ
+pZ
cF
so
ca
Vl
zF
QE
-ez
-VU
-AC
-rx
+lk
+vz
+Jq
+PU
Ju
-xU
+Xr
Pq
-xU
-Qa
-Ju
-xU
-Wf
+qC
+Em
+cG
+qC
+qC
At
GB
GB
@@ -22619,7 +23659,7 @@ xl
Ym
Ym
Ym
-Ym
+wl
Ym
Ym
Ym
@@ -22634,12 +23674,12 @@ ie
eW
QX
eW
-eW
-eW
-eW
+fP
+fP
+fP
eW
OG
-eW
+EP
HQ
Qg
aw
@@ -22736,15 +23776,15 @@ pZ
PA
fD
tL
-qC
-AC
-qC
-qC
-Bk
+Jq
+Jq
+HO
+Ju
+Yt
KS
iV
-rx
-xu
+kS
+AC
qC
qC
EV
@@ -22758,8 +23798,8 @@ eE
Ym
BF
JX
-Ff
-Ff
+Ui
+sK
sK
Fs
AN
@@ -22864,13 +23904,13 @@ aw
aw
aw
aw
-de
-de
+dY
+dY
re
-eO
+bL
IN
-uV
-eM
+Ak
+pZ
uq
rw
bL
@@ -22879,19 +23919,19 @@ nx
cE
KZ
WD
-SE
-qC
-qC
-qC
+Jq
+NT
+Ju
+YJ
mc
-ld
qC
+VL
AC
qC
gs
yq
-oV
-oV
+mJ
+fR
Rr
Hl
fI
@@ -22900,10 +23940,10 @@ ky
Ym
xl
Ym
-Ym
-Ym
xe
Ym
+Ym
+Ym
xl
Ym
Ym
@@ -23007,13 +24047,13 @@ aw
aw
aw
aw
-de
-de
+dY
+dY
MO
-XV
+bL
YB
-ff
-ff
+Ak
+QE
rw
Du
yv
@@ -23021,19 +24061,19 @@ Du
Du
bV
Zu
-ii
+Jq
NT
-hJ
+Ju
OW
-mc
+Bv
lK
tu
Mg
Oz
So
Tg
-oV
-oV
+jN
+AY
Rr
ak
RF
@@ -23047,7 +24087,7 @@ IF
JQ
kC
ql
-pf
+Vo
qP
ug
CT
@@ -23150,22 +24190,22 @@ aw
aw
aw
aw
-de
-de
+dY
+dY
el
-XV
-YB
-HK
+QE
+QE
+QE
mU
km
km
km
km
gR
-fQ
-fQ
-fQ
-fQ
+vR
+Ar
+vR
+Ni
fQ
AB
Qb
@@ -23184,24 +24224,24 @@ VA
UC
GP
vK
+UW
+vK
+vK
vK
vK
-zc
-Nk
-Ui
-Nk
Nk
+ms
Nk
Nk
XJ
-aH
-aH
-aH
-aH
-aH
+Rb
+Rb
+Rb
+Rb
+Rb
OG
eW
-eW
+uE
KK
KK
Qg
@@ -23293,10 +24333,10 @@ aw
aw
aw
Qg
-de
-de
+dY
+dY
Ri
-xP
+QE
ff
jF
aj
@@ -23304,14 +24344,14 @@ bM
da
op
Lf
-Lf
-Lf
-Lf
+Np
+Jq
+Ip
jF
UA
Gi
tV
-Mn
+Jq
nY
QA
Mp
@@ -23328,21 +24368,21 @@ lc
DO
Iu
tH
-Gv
+UO
Lu
-KG
-Rb
+UO
Rb
+ly
vy
iZ
cz
vd
-vd
+lP
Pa
jV
-aH
+Rb
gC
-tR
+DV
KK
KK
aw
@@ -23436,10 +24476,10 @@ aw
aw
Qg
aw
-de
-de
-xP
-ff
+dY
+dY
+DD
+QE
jF
au
bS
@@ -23454,7 +24494,7 @@ Mn
kV
Jq
Jq
-Ae
+Jq
oY
fn
gx
@@ -23465,24 +24505,24 @@ Gr
BS
Uh
Xz
-Vz
-Vz
-Vz
-dH
-Yn
-BB
-By
-By
-By
-By
-By
-By
-By
-By
-By
-By
-By
-aH
+zc
+zc
+zc
+Ai
+tH
+UO
+UO
+UO
+Rb
+aA
+xR
+xR
+xR
+qt
+va
+Pa
+Pa
+Rb
Wr
KK
KK
@@ -23579,9 +24619,9 @@ aw
Qg
aw
aw
-de
-de
-ff
+dY
+dY
+QE
jF
az
Ah
@@ -23594,13 +24634,13 @@ Ul
Dg
Ul
ML
-Ul
-Ul
+sb
+sb
sb
Cw
qQ
-ZA
-ZA
+FZ
+SJ
SJ
jF
ak
@@ -23610,21 +24650,21 @@ OE
Vz
Vz
Vz
-HR
-Yn
-gK
-By
-By
-By
-By
-By
-By
-By
-By
-By
-By
-By
-aH
+Vz
+gU
+UO
+UO
+UO
+Rb
+MB
+xR
+xR
+xR
+sj
+Pa
+Pa
+me
+Rb
KK
KK
aw
@@ -23722,7 +24762,7 @@ Qg
aw
aw
aw
-de
+dY
NN
jF
bE
@@ -23738,12 +24778,12 @@ zI
VX
Zc
ti
-UH
-QH
-Gb
-Eb
+Jq
+Jq
+Xg
+jF
zn
-Qh
+jF
jF
qq
Zb
@@ -23753,19 +24793,19 @@ Vz
uj
Vz
Vz
-Yn
+gz
UO
-By
-By
-By
-By
+IS
+UO
+Rb
+YL
xR
-By
-By
-By
-By
-By
-uk
+Wj
+xR
+qt
+Pa
+jV
+Pa
IP
KK
aw
@@ -23878,35 +24918,35 @@ wh
QL
Ve
GW
-Ip
+jF
RP
-Jq
-Jq
+md
+OJ
LS
Jq
Jq
Og
jF
-Qs
+xv
JP
Uh
iH
Vz
-De
Vz
Vz
-Yn
-gK
-By
-By
-By
-By
-By
-By
-By
-By
-By
-By
+qK
+gU
+UO
+UO
+UO
+Rb
+YL
+xR
+xR
+xR
+Ns
+Pa
+Pa
Ht
Ht
aw
@@ -24020,34 +25060,34 @@ wK
ZA
wp
Ij
-fi
+jF
YE
hX
hX
ga
Jq
-Jq
-YX
-jF
-xg
+mp
+GI
+zn
+CK
BS
-Uh
+jQ
HM
Vz
-Mc
Vz
Vz
-Yn
-BX
-By
-By
-By
-By
-By
-By
-By
-By
-By
+Tz
+gU
+UO
+UO
+UO
+Rb
+SH
+xR
+rW
+xR
+qt
+Pa
Ht
Ht
aw
@@ -24162,32 +25202,32 @@ DN
iY
Ab
tI
-rH
-xq
-Ul
-Ul
-fT
-Jq
-Jq
-Og
jF
-CK
+xq
+JY
+Hh
+fT
+YC
+vQ
+mI
+jF
+JE
BS
Uh
Ol
-Vz
+rJ
ES
-Vz
-Vz
-Yn
-gK
-By
-By
-By
-By
-By
-By
-By
+Kv
+tf
+gU
+UO
+ut
+UO
+Rb
+XN
+An
+SI
+ZI
Ap
Ht
Ht
@@ -24299,38 +25339,38 @@ kY
vJ
vJ
vJ
-HO
-hX
-hX
-hX
-hX
-vz
-RP
-Jq
-Jq
+jF
+jF
+jF
+jF
+jF
+jF
+rP
+jF
+jF
Xg
-xs
-xs
-xs
+jF
+jF
+jF
jF
Gr
BS
Uh
JZ
-Vz
-jQ
-Vz
-Vz
Yn
-gK
-By
-By
-By
-By
-Ct
-By
-By
-PO
+Yn
+Yn
+Yn
+Yn
+Yn
+Yn
+Yn
+Rb
+Rb
+Rb
+Rb
+Rb
+Ka
It
aY
aY
@@ -24441,31 +25481,31 @@ LK
KN
SN
Vt
-Ul
-Ul
-Ul
+Ug
+Jr
+AD
sI
-Jq
-Jq
+ik
+TM
gw
-Jq
-Jq
-LS
-Jq
-Jq
-JR
-jF
+wT
+Tt
+hA
+Bi
+Xm
+yQ
+jm
EX
cq
Hw
SY
WN
WN
-WN
+Mc
WN
PG
CV
-iB
+CV
Ji
Dv
yp
@@ -24582,15 +25622,15 @@ zp
zp
XP
fY
-fY
-fY
-fY
-fY
+vW
+Cu
+LD
+fc
Ln
mj
-mj
+tj
jZ
-gW
+xc
XF
Mb
sD
@@ -24599,22 +25639,22 @@ xc
Oa
cm
Va
-Uh
+gl
Nw
-Vz
-Vz
-Vz
-dH
-Yn
+De
+HR
ER
-tG
-tG
-By
-gK
+ER
+DE
+ER
+ER
+RE
+xj
+xj
uk
-PO
-Ht
-Ht
+Rf
+It
+It
aY
aY
aY
@@ -24722,39 +25762,39 @@ Up
fb
fb
fb
-ry
-ry
+LK
+LK
KN
-wR
-lR
-Hn
-Uj
-LI
-Cq
-LS
-Ow
-mM
+NL
+NL
+NL
+NL
+NL
+NL
+UV
+NL
+LY
yA
-Kn
-Cu
-Kn
-jF
+NL
+NL
+NL
+NL
yH
Po
-Uh
+RD
SP
-rJ
+cs
Wh
dH
mH
-Yn
+EW
Yv
Ub
RE
-By
LT
-Ht
-Ht
+lC
+It
+It
aw
aw
aw
@@ -24866,36 +25906,36 @@ aw
aw
aw
aw
-ry
-KN
-jF
-jF
-jF
-jF
-jF
-rr
-jF
-jF
+ot
+ze
+cT
+NY
+Je
+Wb
+Di
+cM
+hw
+Pi
XL
-jF
-jF
-jF
-jF
+is
+qr
+xV
+NP
Yo
Va
RD
-xt
-xt
-xt
-xt
-xt
-xt
-xt
-xt
-xt
-xt
+Tx
+Tx
+Tx
+Tx
+Tx
+Tx
+Tx
+Tx
+RE
+RE
Rf
-yr
+It
aw
aw
aw
@@ -25009,19 +26049,19 @@ aw
aw
aw
aw
-ry
-KN
-wq
-wq
-rk
-KU
-BM
-KU
-jF
-rF
-Vk
+ot
+ze
+AE
+Uo
+Uo
+HE
+HA
xS
-jF
+xS
+xB
+xS
+xS
+OP
oG
Wz
ZO
@@ -25031,7 +26071,7 @@ Jc
GT
II
uD
-gi
+uK
SV
gi
id
@@ -25152,18 +26192,18 @@ aw
aw
aw
aw
-Cd
-Cd
-wq
-ys
-mz
-UB
-lq
-jF
-fA
+IO
+IO
+gb
+Uo
+Uo
+pa
+Uo
+GO
+yd
TZ
Uf
-jF
+xV
Bm
xG
dV
@@ -25175,7 +26215,7 @@ Nn
Nn
Nn
Nn
-Nn
+Et
Qq
Qq
aw
@@ -25295,28 +26335,28 @@ aw
aw
aw
aw
-Cd
-Cd
-pM
-hA
-UV
-PT
-jF
-HA
-ze
-Ph
-ry
+IO
+IO
+rC
+WR
+pa
+UM
+YH
+uf
+xV
+xV
+Dp
RM
fp
ty
xt
Uw
Nn
-Yc
-Yc
Nn
Nn
Nn
+Nn
+Et
Qq
Qq
aw
@@ -25438,25 +26478,25 @@ aw
aw
aw
aw
-Cd
-Cd
-lq
-UB
-mz
-jF
-jF
-jF
-jF
-ry
+IO
+IO
+IA
+pa
+Uo
+Uo
+Uo
+ZD
+ev
+ot
jA
-XA
+nG
ty
lA
cf
Nn
Yc
Yc
-Nn
+vU
gy
Qq
Qq
@@ -25581,19 +26621,19 @@ aw
aw
aw
aw
-ry
-ry
+ot
+ot
Yg
YN
-bT
-lq
-AE
-lq
-ry
+qD
+cD
+Uo
+EC
+ot
zx
-XA
+tr
ty
-lA
+hQ
cf
Nn
Yc
@@ -25724,14 +26764,14 @@ aw
aw
aw
aw
-Cd
-Cd
-NL
-LY
-AD
-le
+IO
+IO
+ot
+fX
+SC
+KM
lb
-ry
+ot
Va
XA
ty
@@ -25867,20 +26907,20 @@ aw
aw
aw
aw
-Cd
-ry
-ys
-lq
-EF
-lq
-ry
+IO
+ot
+ZP
+ME
+Uo
+PK
+ot
Rp
XA
ty
-hQ
-cf
-Nn
+cQ
+fr
Nn
+vU
yr
Qq
aw
@@ -26010,12 +27050,12 @@ aw
aw
aw
aw
-ry
-Cd
-sW
-MK
-lD
-ry
+ot
+IO
+tn
+Uo
+JR
+ot
AI
oM
mX
@@ -26153,11 +27193,11 @@ aw
aw
aw
aw
-Cd
-Cd
-ys
-lq
-ry
+IO
+IO
+Uo
+Uo
+ot
lZ
Ma
ek
@@ -26296,14 +27336,14 @@ aw
aw
aw
aw
-Cd
-Cd
-sW
-tY
+IO
+IO
+zz
+ot
iy
Nh
tY
-zr
+Nn
Qq
Qq
aw
@@ -26439,9 +27479,9 @@ aw
aw
aw
aw
-Cd
-KN
-tY
+IO
+ze
+ot
Bo
Bo
rT
@@ -26583,7 +27623,7 @@ aw
aw
aw
Db
-tY
+ot
eb
ec
ka
@@ -26725,7 +27765,7 @@ aw
aw
aw
aw
-jJ
+Db
dP
oU
BK
diff --git a/maps/expedition_vr/beach/_beach.dm b/maps/expedition_vr/beach/_beach.dm
index 8bbc1765b71..f63be856253 100644
--- a/maps/expedition_vr/beach/_beach.dm
+++ b/maps/expedition_vr/beach/_beach.dm
@@ -85,7 +85,7 @@
//guard = 40 //They'll stay within this range (not defining this disables them staying nearby and they will wander the map (and through step teleports))
mobs_to_pick_from = list(
/mob/living/simple_mob/vore/fennec = 300,
- /mob/living/simple_mob/animal/passive/snake = 100,
+ /mob/living/simple_mob/animal/passive/snake/python = 100,
/mob/living/simple_mob/vore/alienanimals/teppi = 10,
/mob/living/simple_mob/vore/alienanimals/teppi/baby = 1
)
diff --git a/maps/expedition_vr/beach/submaps/BlastMine1.dmm b/maps/expedition_vr/beach/submaps/BlastMine1.dmm
index ca21c8d481f..957517f9649 100644
--- a/maps/expedition_vr/beach/submaps/BlastMine1.dmm
+++ b/maps/expedition_vr/beach/submaps/BlastMine1.dmm
@@ -1,35 +1,248 @@
-"a" = (/turf/simulated/mineral/cave,/area/submap/cave/BlastMine1)
-"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"c" = (/obj/structure/sign/warning/bomb_range,/turf/simulated/wall/sandstone,/area/submap/cave/BlastMine1)
-"d" = (/obj/structure/table/rack,/obj/item/weapon/syndie/c4explosive,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"e" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"f" = (/mob/living/simple_mob/animal/sif/savik,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"g" = (/obj/structure/table/rack,/obj/item/clothing/head/bomb_hood,/obj/item/clothing/suit/bomb_suit,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"h" = (/obj/item/device/gps/internal/poi{gps_tag = "Unidentified Signal"},/turf/simulated/wall/sandstone,/area/submap/cave/BlastMine1)
-"i" = (/mob/living/simple_mob/animal/sif/diyaab,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"j" = (/obj/structure/table/reinforced,/obj/item/weapon/flame/lighter/zippo/c4detonator{detonator_mode = 1},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"k" = (/obj/structure/table/rack,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"l" = (/obj/machinery/floodlight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"m" = (/turf/simulated/wall/sandstone,/area/submap/cave/BlastMine1)
-"n" = (/obj/structure/girder/displaced,/obj/structure/sign/warning/bomb_range,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"o" = (/obj/structure/table,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"p" = (/obj/effect/decal/remains/human,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
-"q" = (/obj/structure/sign/warning/bomb_range,/turf/simulated/wall/sandstone{damage = 20},/area/submap/cave/BlastMine1)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/cave,
+/area/submap/cave/BlastMine1)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"c" = (
+/obj/structure/sign/warning/bomb_range,
+/turf/simulated/wall/sandstone,
+/area/submap/cave/BlastMine1)
+"d" = (
+/obj/structure/table/rack,
+/obj/item/weapon/syndie/c4explosive,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"e" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"f" = (
+/mob/living/simple_mob/animal/sif/savik,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"g" = (
+/obj/structure/table/rack,
+/obj/item/clothing/head/bomb_hood,
+/obj/item/clothing/suit/bomb_suit,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"h" = (
+/obj/item/device/gps/internal/poi{
+ gps_tag = "Unidentified Signal"
+ },
+/turf/simulated/wall/sandstone,
+/area/submap/cave/BlastMine1)
+"i" = (
+/mob/living/simple_mob/animal/sif/diyaab,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"j" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/flame/lighter/zippo/c4detonator{
+ detonator_mode = 1
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"k" = (
+/obj/structure/table/rack,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"l" = (
+/obj/machinery/floodlight,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"m" = (
+/turf/simulated/wall/sandstone,
+/area/submap/cave/BlastMine1)
+"n" = (
+/obj/structure/girder/displaced,
+/obj/structure/sign/warning/bomb_range,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"o" = (
+/obj/structure/table,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"p" = (
+/obj/effect/decal/remains/human,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/BlastMine1)
+"q" = (
+/obj/structure/sign/warning/bomb_range,
+/turf/simulated/wall/sandstone{
+ damage = 20
+ },
+/area/submap/cave/BlastMine1)
(1,1,1) = {"
-aaabbbaaaa
-aabbbbaaaa
-aacbbbbaaa
-aadbbbbbbb
-abdbbecbbb
-abdbfbgbbb
-abhbbbbbba
-abdibbgjaa
-bbkbilmaaa
-bbkbbbbbba
-banbbbbbbb
-abbbbbbbbb
-aaopbbqbbb
-bbbbbbbbba
-baabbbaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+a
+a
+b
+b
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+a
+b
+a
+b
+a
+"}
+(3,1,1) = {"
+a
+b
+c
+d
+d
+d
+h
+d
+k
+k
+n
+b
+o
+b
+a
+"}
+(4,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+i
+b
+b
+b
+b
+p
+b
+b
+"}
+(5,1,1) = {"
+b
+b
+b
+b
+b
+f
+b
+b
+i
+b
+b
+b
+b
+b
+b
+"}
+(6,1,1) = {"
+b
+b
+b
+b
+e
+b
+b
+b
+l
+b
+b
+b
+b
+b
+b
+"}
+(7,1,1) = {"
+a
+a
+b
+b
+c
+g
+b
+g
+m
+b
+b
+b
+q
+b
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+j
+a
+b
+b
+b
+b
+b
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+a
+a
+b
+b
+b
+b
+b
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+b
+b
+b
+a
+a
+a
+a
+b
+b
+b
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/CaveTrench.dmm b/maps/expedition_vr/beach/submaps/CaveTrench.dmm
index 3221988c51c..93a06748449 100644
--- a/maps/expedition_vr/beach/submaps/CaveTrench.dmm
+++ b/maps/expedition_vr/beach/submaps/CaveTrench.dmm
@@ -1,79 +1,1736 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/template_noop,/area/submap/Cavelake)
-"c" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/Cavelake)
-"d" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"e" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"f" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Cavelake)
-"g" = (/mob/living/simple_mob/animal/sif/hooligan_crab,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"h" = (/turf/simulated/floor/water,/area/submap/Cavelake)
-"i" = (/mob/living/simple_mob/animal/passive/fish/perch,/turf/simulated/floor/water,/area/submap/Cavelake)
-"j" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"k" = (/mob/living/simple_mob/animal/passive/fish/trout,/turf/simulated/floor/water,/area/submap/Cavelake)
-"l" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"m" = (/obj/random/mob/sif,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"n" = (/obj/item/clothing/mask/snorkel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"o" = (/obj/effect/decal/remains/mouse,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"p" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
-"q" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
-"r" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"s" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "Rellek's telling me that we're in deep shit if the townies found out I'm cooking up drones out here. Like I give a fuck, We're minning our asses off only to dig into some bug nest to get our legs chewed. Well I'm not looking a gift horse in the mouth. Those drone dudes out in the wild hooked us up with these machines so long as they get some of the metal we dig up. Win win for us, Guess we're retiring early after all."; name = "Note"},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"t" = (/obj/structure/table/steel,/obj/item/robot_parts/robot_component/actuator,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"u" = (/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"v" = (/obj/structure/simple_door/wood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"w" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
-"x" = (/obj/structure/table/steel,/obj/item/device/robotanalyzer,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"y" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"z" = (/obj/structure/table/bench/steel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"A" = (/obj/effect/decal/remains,/obj/item/clothing/under/rank/miner,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"B" = (/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
-"C" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
-"D" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
-"E" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
-"F" = (/obj/item/weapon/storage/box/shotgunammo,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
-"G" = (/obj/structure/table/steel,/obj/item/robot_parts/l_leg,/obj/item/robot_parts/head,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"H" = (/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
-"I" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
-"J" = (/obj/machinery/drone_fabricator{fabricator_tag = "Unknown"},/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/template_noop,
+/area/submap/Cavelake)
+"c" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"d" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"e" = (
+/obj/effect/decal/cleanable/cobweb2,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"f" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Cavelake)
+"g" = (
+/mob/living/simple_mob/animal/sif/hooligan_crab,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"h" = (
+/turf/simulated/floor/water,
+/area/submap/Cavelake)
+"i" = (
+/mob/living/simple_mob/animal/passive/fish/perch,
+/turf/simulated/floor/water,
+/area/submap/Cavelake)
+"j" = (
+/obj/machinery/crystal,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"k" = (
+/mob/living/simple_mob/animal/passive/fish/trout,
+/turf/simulated/floor/water,
+/area/submap/Cavelake)
+"l" = (
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"m" = (
+/obj/random/mob/sif,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"n" = (
+/obj/item/clothing/mask/snorkel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"o" = (
+/obj/effect/decal/remains/mouse,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-abbbbccbbbbbbcccccccbbbbbbbbbbbbbbbbbbba
-abbbcccdddddccccccccbbbbbcccccccccccbbba
-abbcccddddddddddddddbbbbbbbccccccccccbba
-abcccdddddddddddddddddddddddddddddeccbba
-abcccddddddddddddddddddddddddddddddccbba
-acccddddddddddddddddddddddddddddddddcbba
-acccdddddddddddddddddffffffffffdddddcbba
-acccdddddddddddddgdfffhhhhhhhhffddddcbba
-acccdddddddddddddddfhhhhhhhhhhhfddddcbba
-accdddddddddddddddfhhhhhhhhhhhhffdddccba
-accdddddddddddddddfhhhhhhhhhhhhhffffccca
-acddddddddddddddddffhhhhhhihhhhhhfffffca
-acddddcccjddddddddffhhhhhhhhhhhhhhhhhfca
-acdddcccccdddddddddffhhhhhhhhhhhhhhhhfca
-acdddccccccddddddddffhhhhhhhhhhhhhhhhfca
-acdddjcccccddddddddffhhhhhhhhhhhhhhhkfca
-accddddcclmdddddddddfhhhhhhhhhhhhhhhhfca
-accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
-accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
-accdddddddddddddddddffhhhhhhhhhhhhhhhfca
-acddddddddnddddddddddfhhhhhihhhhhhhhhfca
-acddddffffffffffffdddffhhhhhhhhhhhhhhfca
-acdffffhhhhhhhhhffdddfhhhhhhhhhhhhhhffca
-acfhhhhhkhhhhhhhhfdddfhhhhhhhhhhhhffccca
-acffhhhhhhhhhhihhfdddfhhhhhhhhhhfffdccba
-acdffhhhhhhhhhhhhfddddfhhhhhhhhhfdddcbba
-acddffhhhhhkhhhhhffdddfhhhhhhhfffdddccba
-acdddfffhhhhhhhhhhffdddffffffffddddcccba
-acddgdddffffhhhhhhhfdddddffddddddddcccba
-acdddodddddfffffffffdddddddddddddddcccba
-acdddddddddddddddddddddddddddddddddccbba
-accddddddddddddddddddddddddddddddddccbba
-abccdddddddddddddddddddddddddddddddcbbba
-abbcccddddccccddddddddddddcccbbbdddcbbba
-abbbbcccccccccddddcccccccccccbbbbbcbbbba
-abbbbbbbcccccccccccbbbbbccbbbbbbbbbbbbba
-abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
-abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+b
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+d
+d
+d
+d
+d
+c
+c
+c
+c
+d
+d
+d
+f
+f
+d
+d
+d
+d
+d
+d
+c
+c
+b
+b
+b
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+b
+c
+c
+c
+c
+c
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+f
+f
+d
+d
+d
+d
+d
+d
+c
+c
+b
+b
+b
+b
+a
+"}
+(5,1,1) = {"
+a
+b
+c
+c
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+f
+f
+d
+g
+d
+d
+d
+d
+c
+b
+b
+b
+b
+a
+"}
+(6,1,1) = {"
+a
+c
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+j
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+f
+f
+d
+o
+d
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(7,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+c
+c
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+c
+c
+c
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(9,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+c
+c
+c
+d
+d
+d
+d
+f
+h
+k
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(10,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+j
+c
+c
+c
+l
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(11,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+m
+d
+d
+d
+n
+f
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+c
+c
+c
+b
+b
+a
+"}
+(12,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+h
+k
+h
+f
+f
+d
+d
+d
+c
+c
+c
+b
+b
+a
+"}
+(13,1,1) = {"
+a
+b
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+c
+c
+c
+b
+b
+a
+"}
+(14,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+c
+c
+c
+b
+b
+a
+"}
+(15,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+i
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+b
+b
+a
+"}
+(16,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+b
+b
+a
+"}
+(17,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+b
+b
+a
+"}
+(18,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+g
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+f
+f
+f
+f
+f
+h
+h
+f
+d
+d
+d
+d
+d
+c
+b
+b
+a
+"}
+(19,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+f
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+f
+h
+f
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(20,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+f
+f
+h
+h
+f
+f
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+f
+f
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(21,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+f
+f
+f
+f
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(22,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+f
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(23,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+h
+h
+h
+f
+f
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(24,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(25,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(26,1,1) = {"
+a
+b
+c
+b
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(27,1,1) = {"
+a
+b
+c
+b
+d
+d
+d
+f
+h
+h
+h
+h
+i
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+d
+d
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(28,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+i
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(29,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(30,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+a
+"}
+(31,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+a
+"}
+(32,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+d
+f
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+a
+"}
+(33,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+a
+"}
+(34,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+a
+"}
+(35,1,1) = {"
+a
+b
+c
+c
+e
+d
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(36,1,1) = {"
+a
+b
+c
+c
+c
+c
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+a
+"}
+(37,1,1) = {"
+a
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+f
+h
+h
+h
+k
+h
+h
+h
+h
+h
+h
+f
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+"}
+(38,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+c
+c
+b
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(39,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/Cavelake.dmm b/maps/expedition_vr/beach/submaps/Cavelake.dmm
index 5d803ffc01f..93a06748449 100644
--- a/maps/expedition_vr/beach/submaps/Cavelake.dmm
+++ b/maps/expedition_vr/beach/submaps/Cavelake.dmm
@@ -1,58 +1,1736 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/template_noop,/area/submap/Cavelake)
-"c" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/Cavelake)
-"d" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"e" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"f" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Cavelake)
-"g" = (/mob/living/simple_mob/animal/sif/hooligan_crab,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"h" = (/turf/simulated/floor/water,/area/submap/Cavelake)
-"i" = (/mob/living/simple_mob/animal/passive/fish/perch,/turf/simulated/floor/water,/area/submap/Cavelake)
-"j" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"k" = (/mob/living/simple_mob/animal/passive/fish/trout,/turf/simulated/floor/water,/area/submap/Cavelake)
-"l" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"m" = (/obj/random/mob/sif,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"n" = (/obj/item/clothing/mask/snorkel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
-"o" = (/obj/effect/decal/remains/mouse,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/template_noop,
+/area/submap/Cavelake)
+"c" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"d" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"e" = (
+/obj/effect/decal/cleanable/cobweb2,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"f" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Cavelake)
+"g" = (
+/mob/living/simple_mob/animal/sif/hooligan_crab,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"h" = (
+/turf/simulated/floor/water,
+/area/submap/Cavelake)
+"i" = (
+/mob/living/simple_mob/animal/passive/fish/perch,
+/turf/simulated/floor/water,
+/area/submap/Cavelake)
+"j" = (
+/obj/machinery/crystal,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"k" = (
+/mob/living/simple_mob/animal/passive/fish/trout,
+/turf/simulated/floor/water,
+/area/submap/Cavelake)
+"l" = (
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"m" = (
+/obj/random/mob/sif,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"n" = (
+/obj/item/clothing/mask/snorkel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
+"o" = (
+/obj/effect/decal/remains/mouse,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Cavelake)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-abbbbccbbbbbbcccccccbbbbbbbbbbbbbbbbbbba
-abbbcccdddddccccccccbbbbbcccccccccccbbba
-abbcccddddddddddddddbbbbbbbccccccccccbba
-abcccdddddddddddddddddddddddddddddeccbba
-abcccddddddddddddddddddddddddddddddccbba
-acccddddddddddddddddddddddddddddddddcbba
-acccdddddddddddddddddffffffffffdddddcbba
-acccdddddddddddddgdfffhhhhhhhhffddddcbba
-acccdddddddddddddddfhhhhhhhhhhhfddddcbba
-accdddddddddddddddfhhhhhhhhhhhhffdddccba
-accdddddddddddddddfhhhhhhhhhhhhhffffccca
-acddddddddddddddddffhhhhhhihhhhhhfffffca
-acddddcccjddddddddffhhhhhhhhhhhhhhhhhfca
-acdddcccccdddddddddffhhhhhhhhhhhhhhhhfca
-acdddccccccddddddddffhhhhhhhhhhhhhhhhfca
-acdddjcccccddddddddffhhhhhhhhhhhhhhhkfca
-accddddcclmdddddddddfhhhhhhhhhhhhhhhhfca
-accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
-accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
-accdddddddddddddddddffhhhhhhhhhhhhhhhfca
-acddddddddnddddddddddfhhhhhihhhhhhhhhfca
-acddddffffffffffffdddffhhhhhhhhhhhhhhfca
-acdffffhhhhhhhhhffdddfhhhhhhhhhhhhhhffca
-acfhhhhhkhhhhhhhhfdddfhhhhhhhhhhhhffccca
-acffhhhhhhhhhhihhfdddfhhhhhhhhhhfffdccba
-acdffhhhhhhhhhhhhfddddfhhhhhhhhhfdddcbba
-acddffhhhhhkhhhhhffdddfhhhhhhhfffdddccba
-acdddfffhhhhhhhhhhffdddffffffffddddcccba
-acddgdddffffhhhhhhhfdddddffddddddddcccba
-acdddodddddfffffffffdddddddddddddddcccba
-acdddddddddddddddddddddddddddddddddccbba
-accddddddddddddddddddddddddddddddddccbba
-abccdddddddddddddddddddddddddddddddcbbba
-abbcccddddccccddddddddddddcccbbbdddcbbba
-abbbbcccccccccddddcccccccccccbbbbbcbbbba
-abbbbbbbcccccccccccbbbbbccbbbbbbbbbbbbba
-abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
-abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-"}
\ No newline at end of file
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+b
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+d
+d
+d
+d
+d
+c
+c
+c
+c
+d
+d
+d
+f
+f
+d
+d
+d
+d
+d
+d
+c
+c
+b
+b
+b
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+b
+c
+c
+c
+c
+c
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+f
+f
+d
+d
+d
+d
+d
+d
+c
+c
+b
+b
+b
+b
+a
+"}
+(5,1,1) = {"
+a
+b
+c
+c
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+f
+f
+d
+g
+d
+d
+d
+d
+c
+b
+b
+b
+b
+a
+"}
+(6,1,1) = {"
+a
+c
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+j
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+f
+f
+d
+o
+d
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(7,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+c
+c
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+c
+c
+c
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(9,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+c
+c
+c
+d
+d
+d
+d
+f
+h
+k
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(10,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+j
+c
+c
+c
+l
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(11,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+m
+d
+d
+d
+n
+f
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+c
+c
+c
+b
+b
+a
+"}
+(12,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+h
+k
+h
+f
+f
+d
+d
+d
+c
+c
+c
+b
+b
+a
+"}
+(13,1,1) = {"
+a
+b
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+c
+c
+c
+b
+b
+a
+"}
+(14,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+c
+c
+c
+b
+b
+a
+"}
+(15,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+i
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+b
+b
+a
+"}
+(16,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+b
+b
+a
+"}
+(17,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+b
+b
+a
+"}
+(18,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+g
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+f
+f
+f
+f
+f
+h
+h
+f
+d
+d
+d
+d
+d
+c
+b
+b
+a
+"}
+(19,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+d
+d
+f
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+f
+h
+f
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(20,1,1) = {"
+a
+c
+c
+d
+d
+d
+d
+d
+f
+f
+h
+h
+f
+f
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+f
+f
+f
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(21,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+d
+f
+h
+h
+h
+h
+h
+f
+f
+f
+f
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(22,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+f
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(23,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+h
+h
+h
+f
+f
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(24,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(25,1,1) = {"
+a
+b
+b
+b
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(26,1,1) = {"
+a
+b
+c
+b
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+a
+"}
+(27,1,1) = {"
+a
+b
+c
+b
+d
+d
+d
+f
+h
+h
+h
+h
+i
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+d
+d
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(28,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+i
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(29,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(30,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+a
+"}
+(31,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+a
+"}
+(32,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+d
+f
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+b
+a
+"}
+(33,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+f
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+a
+"}
+(34,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+b
+a
+"}
+(35,1,1) = {"
+a
+b
+c
+c
+e
+d
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+f
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+a
+"}
+(36,1,1) = {"
+a
+b
+c
+c
+c
+c
+d
+d
+d
+d
+d
+f
+f
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+f
+d
+d
+d
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+a
+"}
+(37,1,1) = {"
+a
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+f
+h
+h
+h
+k
+h
+h
+h
+h
+h
+h
+f
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+"}
+(38,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+c
+c
+b
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(39,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/expedition_vr/beach/submaps/Cliff1.dmm b/maps/expedition_vr/beach/submaps/Cliff1.dmm
index ad388f9372d..f34c92b82c2 100644
--- a/maps/expedition_vr/beach/submaps/Cliff1.dmm
+++ b/maps/expedition_vr/beach/submaps/Cliff1.dmm
@@ -1,25 +1,414 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"c" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
-"d" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
-"e" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
-"f" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
-"g" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
-"h" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
-"i" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
-"j" = (/obj/random/humanoidremains{spawn_nothing_percentage = 70},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
-"k" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"c" = (
+/obj/item/weapon/ore,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
+"d" = (
+/obj/random/outcrop,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
+"e" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
+"f" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 5
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
+"g" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 9
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
+"h" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
+"i" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 9
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
+"j" = (
+/obj/random/humanoidremains{
+ spawn_nothing_percentage = 70
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
+"k" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/ore_cliff)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-abbbbabbbbbbbaabbbbbbbbaaabbaa
-aakckkbdbcbbbbbbdbbcdbbkkckkaa
-aakefckkkbbdbbcbbbkkkcghhhikaa
-aakcehhfkkkkkkkkkcghhhikkkckaa
-aaajkkkehfkckghhhhikkkcjbbbaaa
-aaaaabkckehhhikkkkkkcbbbbaaaaa
-aaaaaaackkkjkkcbbcbbbaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+b
+k
+k
+k
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+b
+c
+e
+c
+j
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+b
+k
+f
+e
+k
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+k
+c
+h
+k
+b
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+b
+b
+k
+h
+k
+k
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+b
+d
+k
+f
+e
+c
+c
+a
+"}
+(9,1,1) = {"
+a
+a
+b
+b
+k
+k
+h
+k
+k
+a
+"}
+(10,1,1) = {"
+a
+a
+b
+c
+b
+k
+f
+e
+k
+a
+"}
+(11,1,1) = {"
+a
+a
+b
+b
+b
+k
+k
+h
+k
+a
+"}
+(12,1,1) = {"
+a
+a
+b
+b
+d
+k
+c
+h
+j
+a
+"}
+(13,1,1) = {"
+a
+a
+b
+b
+b
+k
+k
+h
+k
+a
+"}
+(14,1,1) = {"
+a
+a
+a
+b
+b
+k
+g
+i
+k
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+b
+c
+k
+h
+k
+c
+a
+"}
+(16,1,1) = {"
+a
+a
+b
+b
+b
+k
+h
+k
+b
+a
+"}
+(17,1,1) = {"
+a
+a
+b
+d
+b
+k
+h
+k
+b
+a
+"}
+(18,1,1) = {"
+a
+a
+b
+b
+b
+c
+h
+k
+c
+a
+"}
+(19,1,1) = {"
+a
+a
+b
+b
+k
+g
+i
+k
+b
+a
+"}
+(20,1,1) = {"
+a
+a
+b
+c
+k
+h
+k
+k
+b
+a
+"}
+(21,1,1) = {"
+a
+a
+b
+d
+k
+h
+k
+c
+b
+a
+"}
+(22,1,1) = {"
+a
+a
+b
+b
+c
+h
+k
+b
+a
+a
+"}
+(23,1,1) = {"
+a
+a
+b
+b
+g
+i
+c
+b
+a
+a
+"}
+(24,1,1) = {"
+a
+a
+a
+k
+h
+k
+j
+b
+a
+a
+"}
+(25,1,1) = {"
+a
+a
+a
+k
+h
+k
+b
+b
+a
+a
+"}
+(26,1,1) = {"
+a
+a
+a
+c
+h
+k
+b
+a
+a
+a
+"}
+(27,1,1) = {"
+a
+a
+b
+k
+i
+c
+b
+a
+a
+a
+"}
+(28,1,1) = {"
+a
+a
+b
+k
+k
+k
+a
+a
+a
+a
+"}
+(29,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(30,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
-
diff --git a/maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm b/maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm
index be9f0b2b7e7..8b980b9988c 100644
--- a/maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm
+++ b/maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm
@@ -3,11 +3,11 @@
/turf/simulated/mineral/floor/ignore_mapgen/cave,
/area/submap/CrashedMedShuttle)
"ab" = (
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"ac" = (
/obj/structure/lattice,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"ad" = (
/obj/effect/spider/stickyweb,
@@ -40,7 +40,7 @@
},
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/lattice,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"aj" = (
/obj/machinery/light/small{
@@ -73,7 +73,7 @@
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/loot_pile/surface/bones,
/obj/structure/lattice,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"ao" = (
/obj/item/weapon/circuitboard/broken,
@@ -141,7 +141,7 @@
"aB" = (
/obj/structure/lattice,
/obj/item/stack/rods,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"aC" = (
/obj/effect/decal/cleanable/blood/oil,
@@ -200,11 +200,11 @@
/area/submap/CrashedMedShuttle)
"aM" = (
/obj/item/weapon/material/shard,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"aN" = (
/obj/effect/decal/cleanable/blood/oil,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"aO" = (
/obj/item/weapon/material/shard{
@@ -229,7 +229,7 @@
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/loot_pile/surface/bones,
/obj/structure/lattice,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"aT" = (
/obj/machinery/light,
@@ -247,11 +247,11 @@
/area/submap/CrashedMedShuttle)
"aV" = (
/obj/effect/spider/stickyweb,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"aW" = (
/obj/effect/decal/cleanable/blood/drip,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"aX" = (
/obj/machinery/computer,
@@ -277,17 +277,17 @@
/obj/item/weapon/material/shard{
icon_state = "medium"
},
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"bd" = (
/obj/item/stack/rods,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"be" = (
/obj/effect/spider/stickyweb,
/obj/structure/girder/displaced,
/obj/structure/lattice,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"bf" = (
/obj/machinery/light{
@@ -301,21 +301,21 @@
/obj/structure/lattice,
/obj/item/device/gps/internal/poi,
/obj/structure/flora/tree/sif,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"bg" = (
/obj/effect/decal/cleanable/blood/splatter,
/obj/structure/loot_pile/surface/bones,
/obj/effect/decal/cleanable/blood/drip,
/obj/structure/lattice,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"bh" = (
/obj/structure/grille/broken,
/obj/item/weapon/material/shard{
icon_state = "medium"
},
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"bi" = (
/obj/effect/decal/mecha_wreckage/odysseus,
@@ -331,12 +331,12 @@
icon_state = "beartrap1"
},
/obj/random/trash,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"bk" = (
/obj/effect/decal/cleanable/blood/oil,
/obj/structure/lattice,
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/CrashedMedShuttle)
"bl" = (
/obj/effect/spider/stickyweb,
diff --git a/maps/expedition_vr/beach/submaps/Geyser1.dmm b/maps/expedition_vr/beach/submaps/Geyser1.dmm
index c61b3d11a1e..931eec23d20 100644
--- a/maps/expedition_vr/beach/submaps/Geyser1.dmm
+++ b/maps/expedition_vr/beach/submaps/Geyser1.dmm
@@ -1,17 +1,105 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
-"c" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
-"d" = (/obj/random/outcrop,/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
-"e" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
-"f" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/mist{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/turf/simulated/floor/water/deep{outdoors = 0},/area/submap/geyser_1)
-"g" = (/obj/random/turf/lava,/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_1)
+"c" = (
+/obj/random/turf/lava,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_1)
+"d" = (
+/obj/random/outcrop,
+/obj/random/turf/lava,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_1)
+"e" = (
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_1)
+"f" = (
+/obj/effect/map_effect/interval/effect_emitter/steam,
+/obj/effect/map_effect/interval/effect_emitter/smoke/mist{
+ interval_upper_bound = 600
+ },
+/obj/effect/map_effect/interval/effect_emitter/smoke/bad{
+ interval_lower_bound = 100;
+ interval_upper_bound = 3000
+ },
+/obj/effect/map_effect/interval/screen_shaker{
+ interval_upper_bound = 600
+ },
+/turf/simulated/floor/water/deep{
+ outdoors = 0
+ },
+/area/submap/geyser_1)
+"g" = (
+/obj/random/turf/lava,
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_1)
(1,1,1) = {"
-accbdca
-cccbccc
-ccebbcc
-ebbfbbb
-ccbbecd
-ccgbccc
-accbcca
+a
+c
+c
+e
+c
+c
+a
+"}
+(2,1,1) = {"
+c
+c
+c
+b
+c
+c
+c
+"}
+(3,1,1) = {"
+c
+c
+e
+b
+b
+g
+c
+"}
+(4,1,1) = {"
+b
+b
+b
+f
+b
+b
+b
+"}
+(5,1,1) = {"
+d
+c
+b
+b
+e
+c
+c
+"}
+(6,1,1) = {"
+c
+c
+c
+b
+c
+c
+c
+"}
+(7,1,1) = {"
+a
+c
+c
+b
+d
+c
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/Geyser2.dmm b/maps/expedition_vr/beach/submaps/Geyser2.dmm
index 339736597f0..22015c5fed8 100644
--- a/maps/expedition_vr/beach/submaps/Geyser2.dmm
+++ b/maps/expedition_vr/beach/submaps/Geyser2.dmm
@@ -1,23 +1,144 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"c" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"d" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"e" = (/obj/structure/fence{icon_state = "straight"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"f" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"g" = (/obj/structure/fence/cut/large,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"h" = (/mob/living/simple_mob/mechanical/viscerator,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"i" = (/obj/structure/fence,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"j" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"k" = (/obj/structure/fence/door/locked,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"l" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
-"m" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/mist{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/obj/random/humanoidremains,/obj/random/medical/lite,/turf/simulated/floor/water/deep{outdoors = 0},/area/submap/geyser_2)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/random/turf/lava,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"c" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"d" = (
+/obj/structure/fence/corner{
+ icon_state = "corner";
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"e" = (
+/obj/structure/fence{
+ icon_state = "straight";
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"f" = (
+/obj/structure/fence/corner{
+ icon_state = "corner";
+ dir = 5
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"g" = (
+/obj/structure/fence/cut/large,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"h" = (
+/mob/living/simple_mob/mechanical/viscerator,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"i" = (
+/obj/structure/fence,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"j" = (
+/obj/structure/fence/corner{
+ icon_state = "corner";
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"k" = (
+/obj/structure/fence/door/locked,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"l" = (
+/obj/structure/fence/corner{
+ icon_state = "corner";
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_2)
+"m" = (
+/obj/effect/map_effect/interval/effect_emitter/steam,
+/obj/effect/map_effect/interval/effect_emitter/smoke/mist{
+ interval_upper_bound = 600
+ },
+/obj/effect/map_effect/interval/effect_emitter/smoke/bad{
+ interval_lower_bound = 100;
+ interval_upper_bound = 3000
+ },
+/obj/effect/map_effect/interval/screen_shaker{
+ interval_upper_bound = 600
+ },
+/obj/random/humanoidremains,
+/obj/random/medical/lite,
+/turf/simulated/floor/water/deep{
+ outdoors = 0
+ },
+/area/submap/geyser_2)
(1,1,1) = {"
-abbcbba
-bbbhbbb
-bbdefbb
-chgmihc
-bbjklbb
-bbbhbbb
-abbcbba
+a
+b
+b
+c
+b
+b
+a
+"}
+(2,1,1) = {"
+b
+b
+b
+h
+b
+b
+b
+"}
+(3,1,1) = {"
+b
+b
+d
+g
+j
+b
+b
+"}
+(4,1,1) = {"
+c
+h
+e
+m
+k
+h
+c
+"}
+(5,1,1) = {"
+b
+b
+f
+i
+l
+b
+b
+"}
+(6,1,1) = {"
+b
+b
+b
+h
+b
+b
+b
+"}
+(7,1,1) = {"
+a
+b
+b
+c
+b
+b
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/Geyser3.dmm b/maps/expedition_vr/beach/submaps/Geyser3.dmm
index 70047b220a8..a94320c2900 100644
--- a/maps/expedition_vr/beach/submaps/Geyser3.dmm
+++ b/maps/expedition_vr/beach/submaps/Geyser3.dmm
@@ -1,28 +1,174 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"c" = (/obj/structure/cliff/automatic,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"d" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"e" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"f" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"g" = (/turf/simulated/floor/lava,/area/submap/geyser_3)
-"h" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"i" = (/obj/structure/cliff/automatic/corner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"j" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"k" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"l" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/fire{interval_upper_bound = 1200},/turf/simulated/floor/lava,/area/submap/geyser_3)
-"m" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"n" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"o" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"q" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
-"r" = (/obj/random/multiple/minevault,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"c" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"d" = (
+/obj/random/turf/lava,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"e" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 5
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"f" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"g" = (
+/turf/simulated/floor/lava,
+/area/submap/geyser_3)
+"h" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"i" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"j" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"k" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"l" = (
+/obj/effect/map_effect/interval/effect_emitter/steam,
+/obj/effect/map_effect/interval/effect_emitter/smoke/bad{
+ interval_lower_bound = 100;
+ interval_upper_bound = 3000
+ },
+/obj/effect/map_effect/interval/screen_shaker{
+ interval_upper_bound = 600
+ },
+/obj/effect/map_effect/interval/effect_emitter/smoke/fire{
+ interval_upper_bound = 1200
+ },
+/turf/simulated/floor/lava,
+/area/submap/geyser_3)
+"m" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"n" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"o" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"p" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"q" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 2
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
+"r" = (
+/obj/random/multiple/minevault,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/geyser_3)
(1,1,1) = {"
-abcdcea
-bfghgie
-jggrggk
-jgglggk
-jgggggk
-mngggop
-amqqqpa
+a
+b
+j
+j
+j
+m
+a
+"}
+(2,1,1) = {"
+b
+f
+g
+g
+g
+n
+m
+"}
+(3,1,1) = {"
+c
+g
+g
+g
+g
+g
+q
+"}
+(4,1,1) = {"
+d
+h
+r
+l
+g
+g
+q
+"}
+(5,1,1) = {"
+c
+g
+g
+g
+g
+g
+q
+"}
+(6,1,1) = {"
+e
+i
+g
+g
+g
+o
+p
+"}
+(7,1,1) = {"
+a
+e
+k
+k
+k
+p
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/Mineshaft1.dmm b/maps/expedition_vr/beach/submaps/Mineshaft1.dmm
index de64c0272f0..45cfbc7b2ae 100644
--- a/maps/expedition_vr/beach/submaps/Mineshaft1.dmm
+++ b/maps/expedition_vr/beach/submaps/Mineshaft1.dmm
@@ -1,73 +1,903 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/AMine1)
-"c" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
-"d" = (/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/AMine1)
-"e" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/AMine1)
-"f" = (/turf/simulated/wall,/area/submap/cave/AMine1)
-"g" = (/obj/machinery/space_heater,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"h" = (/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"i" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"j" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"k" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light{ icon_state = "tube1"; dir = 1},/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"l" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"m" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"n" = (/obj/item/weapon/ore/gold,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
-"o" = (/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
-"p" = (/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
-"q" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"r" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"s" = (/obj/structure/window/reinforced/full,/turf/simulated/wall,/area/submap/cave/AMine1)
-"t" = (/obj/machinery/light{ icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"u" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/turf/simulated/floor,/area/submap/cave/AMine1)
-"v" = (/obj/structure/table/standard,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/turf/simulated/floor,/area/submap/cave/AMine1)
-"w" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor,/area/submap/cave/AMine1)
-"x" = (/turf/simulated/floor,/area/submap/cave/AMine1)
-"y" = (/obj/machinery/power/apc{operating = 0; pixel_x = 31},/turf/simulated/floor,/area/submap/cave/AMine1)
-"z" = (/obj/structure/ore_box,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
-"A" = (/obj/machinery/light/small{dir = 1},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
-"B" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor,/area/submap/cave/AMine1)
-"C" = (/obj/structure/closet/crate/engineering,/turf/simulated/floor,/area/submap/cave/AMine1)
-"D" = (/obj/machinery/light,/obj/machinery/space_heater,/turf/simulated/floor,/area/submap/cave/AMine1)
-"E" = (/obj/machinery/space_heater,/turf/simulated/floor,/area/submap/cave/AMine1)
-"F" = (/obj/structure/closet/secure_closet/engineering_welding,/turf/simulated/floor,/area/submap/cave/AMine1)
-"G" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/drill,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"H" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"I" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"J" = (/obj/machinery/washing_machine,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"K" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/AMine1)
-"L" = (/obj/machinery/light{ icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"M" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"N" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
-"O" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/AMine1)
-"P" = (/obj/structure/table/standard,/obj/item/pizzabox,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
-"Q" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/submap/cave/AMine1)
-"R" = (/obj/machinery/light{ icon_state = "tube1"; dir = 1},/turf/simulated/floor,/area/submap/cave/AMine1)
-"S" = (/obj/machinery/light/small,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
+"c" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
+"d" = (
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/AMine1)
+"e" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/AMine1)
+"f" = (
+/turf/simulated/wall,
+/area/submap/cave/AMine1)
+"g" = (
+/obj/machinery/space_heater,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"h" = (
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"i" = (
+/obj/structure/bed,
+/obj/item/weapon/bedsheet,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"j" = (
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"k" = (
+/obj/structure/bed,
+/obj/item/weapon/bedsheet,
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"l" = (
+/obj/structure/table/standard,
+/obj/structure/bedsheetbin,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"m" = (
+/obj/machinery/door/airlock,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"n" = (
+/obj/item/weapon/ore/gold,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
+"o" = (
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
+"p" = (
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/obj/item/weapon/ore/gold,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
+"q" = (
+/obj/structure/table/standard,
+/obj/item/device/flashlight/lamp,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"r" = (
+/obj/structure/bed,
+/obj/item/weapon/bedsheet,
+/obj/machinery/light,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"s" = (
+/obj/structure/window/reinforced/full,
+/turf/simulated/wall,
+/area/submap/cave/AMine1)
+"t" = (
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"u" = (
+/obj/structure/table/standard,
+/obj/machinery/cell_charger,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"v" = (
+/obj/structure/table/standard,
+/obj/item/weapon/cell/high,
+/obj/item/weapon/cell/high,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"w" = (
+/obj/structure/loot_pile/maint/trash,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"x" = (
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"y" = (
+/obj/machinery/power/apc{
+ operating = 0;
+ pixel_x = 31
+ },
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"z" = (
+/obj/structure/ore_box,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
+"A" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
+"B" = (
+/obj/structure/closet/crate/trashcart,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"C" = (
+/obj/structure/closet/crate/engineering,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"D" = (
+/obj/machinery/light,
+/obj/machinery/space_heater,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"E" = (
+/obj/machinery/space_heater,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"F" = (
+/obj/structure/closet/secure_closet/engineering_welding,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"G" = (
+/obj/structure/table/rack,
+/obj/item/weapon/pickaxe/drill,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"H" = (
+/obj/machinery/vending/cola,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"I" = (
+/obj/machinery/vending/snack,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"J" = (
+/obj/machinery/washing_machine,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"K" = (
+/obj/structure/ore_box,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/AMine1)
+"L" = (
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"M" = (
+/obj/item/weapon/stool,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"N" = (
+/obj/machinery/light/small{
+ brightness_color = "#DA0205";
+ brightness_power = 1;
+ brightness_range = 5;
+ dir = 8
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
+"O" = (
+/obj/machinery/light/small{
+ dir = 4;
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/AMine1)
+"P" = (
+/obj/structure/table/standard,
+/obj/item/pizzabox,
+/turf/simulated/floor/tiled,
+/area/submap/cave/AMine1)
+"Q" = (
+/obj/machinery/door/airlock,
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"R" = (
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 1
+ },
+/turf/simulated/floor,
+/area/submap/cave/AMine1)
+"S" = (
+/obj/machinery/light/small,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/AMine1)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaa
-abbbbbbbbbbbbbcccccccccca
-abbbbbbbbbbbcddedddddedda
-abbbbbbbbbbbbdffffffffffa
-abbbcccbbbbbbdfghfijklifa
-abcccccbbbbbbdfhhmhhhhhfa
-abcccccnopbbbdfhhfiqrjifa
-abccccccccbbbdshtfffffffa
-abccccccccbbbdshhfuvvwxfa
-abccccccccbbbdshhmxxxxxfa
-abcccccccccbbdshhfxxxxyfa
-abccccccccczAdshhfBCDEFfa
-abbccccccccccdfgtfffffffa
-abbccccccccccdfGhfgHIhJfa
-abbbcccccccccKfGhfhhhhhfa
-abbbccccccccddffhfLMMMtfa
-abbbbNccccccOfffhfhjjPhfa
-abbbbcccccccdQRQhQhMMMhfa
-abbbbbbbccccdfffffffffffa
-abbbbbbbbcccddddddddddbba
-abbbbbbbbbcccccccccccbbba
-abbbbbbbbbbccccccScbbbbba
-abbbbbbbbbbbcccccbbbbbbba
-abbbbbbbbbbbcccccbbbbbbba
-aaaaaaaaaaaaaaaaaaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(5,1,1) = {"
+a
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(6,1,1) = {"
+a
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+N
+c
+b
+b
+b
+b
+b
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+b
+b
+b
+b
+b
+n
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+"}
+(9,1,1) = {"
+a
+b
+b
+b
+b
+b
+o
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+a
+"}
+(10,1,1) = {"
+a
+b
+b
+b
+b
+b
+p
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+a
+"}
+(11,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+a
+"}
+(12,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+z
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+a
+"}
+(13,1,1) = {"
+a
+b
+c
+b
+b
+b
+b
+b
+b
+b
+b
+A
+c
+c
+c
+d
+O
+d
+d
+d
+c
+c
+c
+c
+a
+"}
+(14,1,1) = {"
+a
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+K
+d
+f
+Q
+f
+d
+c
+c
+c
+c
+a
+"}
+(15,1,1) = {"
+a
+c
+d
+f
+f
+f
+f
+s
+s
+s
+s
+s
+f
+f
+f
+f
+f
+R
+f
+d
+c
+c
+c
+c
+a
+"}
+(16,1,1) = {"
+a
+c
+e
+f
+g
+h
+h
+h
+h
+h
+h
+h
+g
+G
+G
+f
+f
+Q
+f
+d
+c
+c
+c
+c
+a
+"}
+(17,1,1) = {"
+a
+c
+d
+f
+h
+h
+h
+t
+h
+h
+h
+h
+t
+h
+h
+h
+h
+h
+f
+d
+c
+c
+c
+c
+a
+"}
+(18,1,1) = {"
+a
+c
+d
+f
+f
+m
+f
+f
+f
+m
+f
+f
+f
+f
+f
+f
+f
+Q
+f
+d
+c
+S
+b
+b
+a
+"}
+(19,1,1) = {"
+a
+c
+d
+f
+i
+h
+i
+f
+u
+x
+x
+B
+f
+g
+h
+L
+h
+h
+f
+d
+c
+c
+b
+b
+a
+"}
+(20,1,1) = {"
+a
+c
+d
+f
+j
+h
+q
+f
+v
+x
+x
+C
+f
+H
+h
+M
+j
+M
+f
+d
+c
+b
+b
+b
+a
+"}
+(21,1,1) = {"
+a
+c
+d
+f
+k
+h
+r
+f
+v
+x
+x
+D
+f
+I
+h
+M
+j
+M
+f
+d
+c
+b
+b
+b
+a
+"}
+(22,1,1) = {"
+a
+c
+e
+f
+l
+h
+j
+f
+w
+x
+x
+E
+f
+h
+h
+M
+P
+M
+f
+d
+b
+b
+b
+b
+a
+"}
+(23,1,1) = {"
+a
+c
+d
+f
+i
+h
+i
+f
+x
+x
+y
+F
+f
+J
+h
+t
+h
+h
+f
+b
+b
+b
+b
+b
+a
+"}
+(24,1,1) = {"
+a
+c
+d
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+b
+b
+b
+b
+b
+a
+"}
+(25,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/Scave1.dmm b/maps/expedition_vr/beach/submaps/Scave1.dmm
index 0d06ce55940..4aba16fdcec 100644
--- a/maps/expedition_vr/beach/submaps/Scave1.dmm
+++ b/maps/expedition_vr/beach/submaps/Scave1.dmm
@@ -1,47 +1,942 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"c" = (/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"d" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"e" = (/obj/effect/spider/spiderling/frost,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"f" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"g" = (/obj/random/mob/spider/mutant,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"h" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"i" = (/obj/random/mob/spider,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"j" = (/obj/item/weapon/grenade/spawnergrenade/spider,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"k" = (/obj/random/toolbox,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"l" = (/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"m" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"n" = (/obj/item/device/flashlight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"o" = (/mob/living/simple_mob/animal/giant_spider/frost,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"p" = (/obj/effect/spider/stickyweb,/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
-"q" = (/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"c" = (
+/obj/effect/spider/stickyweb,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"d" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"e" = (
+/obj/effect/spider/spiderling/frost,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"f" = (
+/obj/item/weapon/spacecash/c100,
+/obj/item/weapon/spacecash/c100,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"g" = (
+/obj/random/mob/spider/mutant,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"h" = (
+/obj/item/weapon/spacecash/c100,
+/obj/item/weapon/spacecash/c100,
+/obj/item/weapon/spacecash/c100,
+/obj/effect/decal/remains,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"i" = (
+/obj/random/mob/spider,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"j" = (
+/obj/item/weapon/grenade/spawnergrenade/spider,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"k" = (
+/obj/random/toolbox,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"l" = (
+/obj/effect/decal/mecha_wreckage/ripley,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"m" = (
+/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"n" = (
+/obj/item/device/flashlight,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"o" = (
+/mob/living/simple_mob/animal/giant_spider/frost,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"p" = (
+/obj/effect/spider/stickyweb,
+/obj/effect/spider/stickyweb,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
+"q" = (
+/obj/effect/decal/remains,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/Scave1)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaabbaaaaaaaaaaaaaaaaaaaaaaa
-aabbbbbbaabbbbbaaaaaaabbbbbaaa
-abbbbbbbbbbbbbbbbbbbbbbbbbbaaa
-aabbbbbbcbbbbbbbbbbbbbbbdbbbaa
-aabbbbdeddbbbcccbbbbbdddeddbaa
-aadbbfddddcbbdedbbbbbdgddddbaa
-aadbbhfbbiddddddbccedddbdedbba
-aabbbbbbbddcdddddddddddbjgbbaa
-aabbbbbbdddbbbkcddddddbbbbbbaa
-aabbbbbcdddbbbbbbcddddcbbbbaaa
-aabbbbbcddcbbbbbbbdiddcbbbaaaa
-aabbbbbbgdcbbbbbbbddddcbbbaaaa
-aabbbbbbdddbbbbbblddddcbbbaaaa
-aabbbbbbdcdbbbbbbmddgdcbbbaaaa
-aabbbbbbdddbbbbbbcddddcbbbaaaa
-aadbbbbbdddbbbbbbbccdddbbbaaaa
-aandbbbbddbbbbbbbbbocddbbbaaaa
-aaddbbbbdddbbbbbbbbbbddbbdaaaa
-aadddpddedddbbbbbbbbdedbbdaaaa
-aaddppcdddgddcbcdddddcbbbdaaaa
-aaqdbbbbbdddddddddddcbbbbdaaaa
-aabbbbbbbbcdddcdddddcbbbbbaaaa
-aabbbbbbbbbbbbbbbgbbbbbbbbaaaa
-aabbbbbbbbbbbbbbbbbbbbbbbbaaaa
-aaaaabbbbabbbbbbbaabbbbbbaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-"}
\ No newline at end of file
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+b
+b
+b
+b
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+d
+n
+d
+d
+d
+q
+b
+b
+b
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+d
+b
+b
+b
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+p
+b
+b
+b
+b
+a
+a
+"}
+(6,1,1) = {"
+a
+b
+b
+b
+b
+b
+f
+h
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+p
+p
+b
+b
+b
+b
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+b
+b
+d
+d
+f
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+c
+b
+b
+b
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+a
+b
+b
+b
+e
+d
+b
+b
+b
+c
+c
+b
+b
+b
+b
+b
+b
+b
+d
+d
+b
+b
+b
+b
+b
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+b
+c
+d
+d
+b
+b
+d
+d
+d
+g
+d
+d
+d
+d
+d
+d
+e
+d
+b
+b
+b
+b
+b
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+b
+b
+d
+d
+i
+d
+d
+d
+d
+d
+d
+c
+d
+d
+d
+d
+d
+d
+d
+b
+b
+b
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+b
+b
+b
+b
+c
+d
+d
+d
+d
+c
+c
+d
+d
+d
+d
+b
+d
+d
+g
+d
+c
+b
+b
+b
+a
+"}
+(12,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+d
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+b
+b
+b
+a
+"}
+(13,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+b
+b
+b
+a
+"}
+(14,1,1) = {"
+a
+a
+b
+b
+b
+c
+d
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+d
+d
+b
+b
+b
+a
+"}
+(15,1,1) = {"
+a
+a
+b
+b
+b
+c
+e
+d
+d
+k
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+c
+b
+b
+b
+a
+"}
+(16,1,1) = {"
+a
+a
+a
+b
+b
+c
+d
+d
+d
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+d
+d
+b
+b
+b
+a
+"}
+(17,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+b
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+b
+b
+b
+a
+"}
+(18,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+c
+d
+d
+c
+b
+b
+l
+m
+c
+b
+b
+b
+b
+d
+d
+d
+g
+b
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+c
+d
+d
+d
+d
+d
+d
+d
+d
+c
+b
+b
+b
+d
+d
+d
+b
+b
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+e
+d
+d
+d
+i
+d
+d
+d
+d
+c
+o
+b
+b
+d
+d
+d
+b
+b
+b
+a
+"}
+(21,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+d
+d
+d
+d
+d
+d
+d
+g
+d
+d
+c
+b
+d
+d
+c
+c
+b
+b
+b
+a
+"}
+(22,1,1) = {"
+a
+a
+a
+b
+b
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+e
+c
+b
+b
+b
+b
+b
+a
+"}
+(23,1,1) = {"
+a
+a
+b
+b
+b
+d
+g
+d
+d
+b
+c
+c
+c
+c
+c
+c
+d
+d
+d
+d
+b
+b
+b
+b
+b
+b
+a
+"}
+(24,1,1) = {"
+a
+a
+b
+b
+b
+d
+d
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(25,1,1) = {"
+a
+a
+b
+b
+d
+e
+d
+d
+j
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(26,1,1) = {"
+a
+a
+b
+b
+b
+d
+d
+e
+g
+b
+b
+b
+b
+b
+b
+b
+b
+b
+d
+d
+d
+d
+b
+b
+b
+a
+a
+"}
+(27,1,1) = {"
+a
+a
+b
+b
+b
+d
+d
+d
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(28,1,1) = {"
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(29,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(30,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm b/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm
index cbc92c28d8e..e38e20010f8 100644
--- a/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm
+++ b/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm
@@ -1,23 +1,177 @@
-"a" = (/turf/simulated/mineral/cave,/area/submap/cave/SupplyDrop1)
-"b" = (/turf/template_noop,/area/template_noop)
-"c" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/SupplyDrop1)
-"d" = (/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
-"e" = (/obj/structure/droppod_door{dir = 1},/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
-"f" = (/turf/simulated/floor/reinforced,/area/submap/cave/SupplyDrop1)
-"g" = (/obj/structure/droppod_door{dir = 8},/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
-"h" = (/obj/structure/closet/crate,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/storage/box/flare,/obj/item/stack/marker_beacon/ten,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/trash/tastybread,/obj/item/trash/tastybread,/obj/item/trash/sosjerky,/obj/item/trash/sosjerky,/obj/item/trash/liquidfood,/obj/item/trash/liquidfood,/obj/item/weapon/flame/lighter/random,/obj/item/device/gps,/turf/simulated/floor/reinforced,/area/submap/cave/SupplyDrop1)
-"i" = (/obj/structure/droppod_door{dir = 4},/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
-"j" = (/obj/structure/droppod_door,/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/cave,
+/area/submap/cave/SupplyDrop1)
+"b" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/SupplyDrop1)
+"d" = (
+/turf/simulated/wall/titanium,
+/area/submap/cave/SupplyDrop1)
+"e" = (
+/obj/structure/droppod_door{
+ dir = 1
+ },
+/turf/simulated/wall/titanium,
+/area/submap/cave/SupplyDrop1)
+"f" = (
+/turf/simulated/floor/reinforced,
+/area/submap/cave/SupplyDrop1)
+"g" = (
+/obj/structure/droppod_door{
+ dir = 8
+ },
+/turf/simulated/wall/titanium,
+/area/submap/cave/SupplyDrop1)
+"h" = (
+/obj/structure/closet/crate,
+/obj/item/weapon/gun/energy/stunrevolver,
+/obj/item/weapon/gun/energy/stunrevolver,
+/obj/item/weapon/storage/box/flare,
+/obj/item/stack/marker_beacon/ten,
+/obj/item/weapon/cell/device/weapon,
+/obj/item/weapon/cell/device/weapon,
+/obj/item/trash/tastybread,
+/obj/item/trash/tastybread,
+/obj/item/trash/sosjerky,
+/obj/item/trash/sosjerky,
+/obj/item/trash/liquidfood,
+/obj/item/trash/liquidfood,
+/obj/item/weapon/flame/lighter/random,
+/obj/item/device/gps,
+/turf/simulated/floor/reinforced,
+/area/submap/cave/SupplyDrop1)
+"i" = (
+/obj/structure/droppod_door{
+ dir = 4
+ },
+/turf/simulated/wall/titanium,
+/area/submap/cave/SupplyDrop1)
+"j" = (
+/obj/structure/droppod_door,
+/turf/simulated/wall/titanium,
+/area/submap/cave/SupplyDrop1)
(1,1,1) = {"
-aabbbccccb
-aacccaaccb
-acccccaccb
-acccdedccb
-cccddfddcc
-cccgfhficc
-bccddfddac
-bbcadjdcac
-bbaaacccac
-bbcccccccc
+a
+a
+a
+a
+c
+c
+b
+b
+b
+b
+"}
+(2,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+b
+b
+b
+"}
+(3,1,1) = {"
+b
+c
+c
+c
+c
+c
+c
+c
+a
+c
+"}
+(4,1,1) = {"
+b
+c
+c
+c
+d
+g
+d
+a
+a
+c
+"}
+(5,1,1) = {"
+b
+c
+c
+d
+d
+f
+d
+d
+a
+c
+"}
+(6,1,1) = {"
+c
+a
+c
+e
+f
+h
+f
+j
+c
+c
+"}
+(7,1,1) = {"
+c
+a
+a
+d
+d
+f
+d
+d
+c
+c
+"}
+(8,1,1) = {"
+c
+c
+c
+c
+d
+i
+d
+c
+c
+c
+"}
+(9,1,1) = {"
+c
+c
+c
+c
+c
+c
+a
+a
+a
+c
+"}
+(10,1,1) = {"
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
"}
diff --git a/maps/expedition_vr/beach/submaps/crashed_ufo.dmm b/maps/expedition_vr/beach/submaps/crashed_ufo.dmm
index a93d593f392..4ba1a0d87df 100644
--- a/maps/expedition_vr/beach/submaps/crashed_ufo.dmm
+++ b/maps/expedition_vr/beach/submaps/crashed_ufo.dmm
@@ -1,112 +1,1645 @@
-"aa" = (/turf/template_noop,/area/template_noop)
-"ab" = (/turf/simulated/shuttle/floor/alienplating/external,/area/submap/cave/crashed_ufo)
-"ac" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo)
-"ad" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ae" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"af" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ag" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ah" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ai" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aj" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ak" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"al" = (/obj/item/weapon/tool/wrench/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"am" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"an" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"ao" = (/obj/structure/table/alien,/obj/item/clothing/head/helmet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ap" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aq" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"ar" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"as" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo)
-"at" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"au" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"av" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aw" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"ax" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"ay" = (/obj/structure/prop/alien/computer{ icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"az" = (/obj/machinery/door/airlock/alien/locked{welded = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aA" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aB" = (/obj/item/weapon/tool/screwdriver/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aC" = (/obj/item/weapon/tool/wirecutters/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aD" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aE" = (/obj/item/device/multitool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aF" = (/obj/structure/prop/alien/computer/camera/flipped{ icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aG" = (/obj/structure/prop/alien/computer/camera{ icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aH" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aI" = (/obj/machinery/door/airlock/alien/locked{p_open = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aJ" = (/obj/effect/decal/remains/robot,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aK" = (/obj/item/weapon/tool/crowbar/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aL" = (/obj/item/stack/cable_coil/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aM" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aN" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/poi,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aO" = (/obj/structure/prop/alien/computer{ icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aP" = (/obj/structure/table/alien,/obj/item/clothing/accessory/medal/dungeon/alien_ufo,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aQ" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aR" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aS" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aT" = (/obj/structure/closet/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aU" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aV" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"aW" = (/obj/structure/table/alien,/obj/item/weapon/surgical/circular_saw/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aX" = (/obj/structure/table/alien,/obj/item/weapon/surgical/FixOVein/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aY" = (/obj/structure/table/alien,/obj/item/weapon/surgical/scalpel/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"aZ" = (/obj/item/weapon/surgical/hemostat/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"ba" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bb" = (/obj/effect/decal/remains/lizard,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bc" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bd" = (/obj/structure/table/alien,/obj/item/weapon/surgical/bone_clamp/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"be" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bf" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bg" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bh" = (/obj/effect/decal/remains/mouse,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
-"bi" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bj" = (/obj/machinery/porta_turret/alien/destroyed{ icon_state = "destroyed_target_prism"; dir = 6},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bk" = (/obj/item/weapon/cell/device/weapon/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bl" = (/obj/machinery/porta_turret/alien/destroyed{ icon_state = "destroyed_target_prism"; dir = 10},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bm" = (/obj/item/weapon/gun/energy/retro/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bn" = (/obj/item/device/gps{gps_tag = "COMDOM1"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bo" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/used,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bp" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bq" = (/obj/effect/decal/remains/human{desc = "They look like human remains. Based on the equipment you saw nearby when you walked in, they were some kind of command person, and a poor one at that."},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"br" = (/obj/item/clothing/gloves/yellow,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bs" = (/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bt" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bu" = (/obj/item/clothing/suit/storage/hooded/wintercoat/captain,/obj/item/clothing/shoes/boots/winter/command,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
-"bv" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/template_noop,
+/area/template_noop)
+"ab" = (
+/turf/simulated/shuttle/floor/alienplating/external,
+/area/submap/cave/crashed_ufo)
+"ac" = (
+/turf/simulated/shuttle/wall/alien,
+/area/submap/cave/crashed_ufo)
+"ad" = (
+/obj/structure/closet/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"ae" = (
+/obj/structure/closet/alien,
+/obj/item/prop/alien/junk,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"af" = (
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"ag" = (
+/obj/machinery/door/airlock/alien/locked,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"ah" = (
+/obj/effect/decal/remains/xeno,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"ai" = (
+/obj/machinery/porta_turret/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aj" = (
+/obj/structure/loot_pile/surface/alien/engineering,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"ak" = (
+/obj/structure/prop/alien/computer,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"al" = (
+/obj/item/weapon/tool/wrench/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"am" = (
+/obj/structure/bed/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"an" = (
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"ao" = (
+/obj/structure/table/alien,
+/obj/item/clothing/head/helmet/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"ap" = (
+/obj/structure/prop/alien/power,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aq" = (
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"ar" = (
+/obj/structure/table/alien,
+/obj/item/weapon/paper/alien{
+ icon_state = "alienpaper_words";
+ info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"as" = (
+/turf/simulated/shuttle/wall/alien/hard_corner,
+/area/submap/cave/crashed_ufo)
+"at" = (
+/obj/structure/prop/alien/computer,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"au" = (
+/obj/structure/table/alien,
+/obj/item/prop/alien/junk,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"av" = (
+/obj/structure/table/alien,
+/obj/item/weapon/paper/alien{
+ icon_state = "alienpaper_words";
+ info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aw" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"ax" = (
+/obj/structure/prop/alien/computer{
+ dir = 8
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"ay" = (
+/obj/structure/prop/alien/computer{
+ icon_state = "console-c";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"az" = (
+/obj/machinery/door/airlock/alien/locked{
+ welded = 1
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aA" = (
+/obj/structure/bed/alien,
+/obj/effect/decal/remains/xeno,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aB" = (
+/obj/item/weapon/tool/screwdriver/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aC" = (
+/obj/item/weapon/tool/wirecutters/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aD" = (
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aE" = (
+/obj/item/device/multitool/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aF" = (
+/obj/structure/prop/alien/computer/camera/flipped{
+ icon_state = "camera_flipped";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aG" = (
+/obj/structure/prop/alien/computer/camera{
+ icon_state = "camera";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aH" = (
+/obj/machinery/porta_turret/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aI" = (
+/obj/machinery/door/airlock/alien/locked{
+ p_open = 1
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aJ" = (
+/obj/effect/decal/remains/robot,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aK" = (
+/obj/item/weapon/tool/crowbar/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aL" = (
+/obj/item/stack/cable_coil/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aM" = (
+/obj/structure/table/alien,
+/obj/item/prop/alien/junk,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aN" = (
+/obj/structure/table/alien,
+/obj/item/weapon/paper/alien{
+ icon_state = "alienpaper_words";
+ info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"
+ },
+/obj/item/device/gps/internal/poi,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aO" = (
+/obj/structure/prop/alien/computer{
+ icon_state = "console-c";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aP" = (
+/obj/structure/table/alien,
+/obj/item/clothing/accessory/medal/dungeon/alien_ufo,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aQ" = (
+/obj/structure/table/alien,
+/obj/item/weapon/weldingtool/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aR" = (
+/obj/structure/bed/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aS" = (
+/obj/structure/prop/alien/computer/camera,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aT" = (
+/obj/structure/closet/alien,
+/obj/item/weapon/paper/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aU" = (
+/obj/structure/bed/alien,
+/obj/effect/decal/remains/xeno,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aV" = (
+/obj/structure/loot_pile/surface/alien/end,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"aW" = (
+/obj/structure/table/alien,
+/obj/item/weapon/surgical/circular_saw/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aX" = (
+/obj/structure/table/alien,
+/obj/item/weapon/surgical/FixOVein/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aY" = (
+/obj/structure/table/alien,
+/obj/item/weapon/surgical/scalpel/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"aZ" = (
+/obj/item/weapon/surgical/hemostat/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"ba" = (
+/obj/machinery/door/airlock/alien/locked,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"bb" = (
+/obj/effect/decal/remains/lizard,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"bc" = (
+/obj/structure/prop/alien/dispenser,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"bd" = (
+/obj/structure/table/alien,
+/obj/item/weapon/surgical/bone_clamp/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"be" = (
+/obj/structure/loot_pile/surface/alien/medical,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bf" = (
+/obj/structure/closet/alien,
+/obj/item/prop/alien/junk,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"bg" = (
+/obj/structure/prop/alien/dispenser,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bh" = (
+/obj/effect/decal/remains/mouse,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo)
+"bi" = (
+/obj/structure/closet/alien,
+/obj/item/prop/alien/junk,
+/obj/item/prop/alien/junk,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bj" = (
+/obj/machinery/porta_turret/alien/destroyed{
+ icon_state = "destroyed_target_prism";
+ dir = 6
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bk" = (
+/obj/item/weapon/cell/device/weapon/empty,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bl" = (
+/obj/machinery/porta_turret/alien/destroyed{
+ icon_state = "destroyed_target_prism";
+ dir = 10
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bm" = (
+/obj/item/weapon/gun/energy/retro/empty,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bn" = (
+/obj/item/device/gps{
+ gps_tag = "COMDOM1"
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bo" = (
+/obj/item/weapon/reagent_containers/hypospray/autoinjector/used,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bp" = (
+/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bq" = (
+/obj/effect/decal/remains/human{
+ desc = "They look like human remains. Based on the equipment you saw nearby when you walked in, they were some kind of command person, and a poor one at that."
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"br" = (
+/obj/item/clothing/gloves/yellow,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bs" = (
+/obj/item/weapon/storage/belt/utility/full,
+/obj/item/device/multitool,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bt" = (
+/obj/machinery/door/airlock/alien/public,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bu" = (
+/obj/item/clothing/suit/storage/hooded/wintercoat/captain,
+/obj/item/clothing/shoes/boots/winter/command,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo)
+"bv" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaababababacacacacacacacababababaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaabababacacacacadadaeadadacacacacabababaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaababacacacafagafafafahafafafagafacacacababaaaaaaaaaaaaaa
-aaaaaaaaaaaaababacacafafafacafafafafafafafacafafafacacababaaaaaaaaaaaa
-aaaaaaaaaaababacacafafacacacacaiafafafaiacacacacafafacacababaaaaaaaaaa
-aaaaaaaaababacacafafacacajakacacafafalacacamahacacafafacacababaaaaaaaa
-aaaaaaababacacafafacacaiafafanacacafacacaoafahaeacacafafacacababaaaaaa
-aaaaaaabacacafafacacapafafaqanarasagasacacagacacacacacafafacacabaaaaaa
-aaaaababacafafacacapafafaqaqaqafasafasaiaqaqatauauacacacafafacababaaaa
-aaaaabacacafacacaiafafaqaqaqafafagafagafafaqaqaqavacaeacacafacacabaaaa
-aaaaabacafafacajafafaqaqaqafafajasafasawafafaqaqaxacafahacafafacabaaaa
-aaababacagacacayafaqaqaqafafadacasazasacawafafaqaqagafaAacacagacababaa
-aaabacacafafacacananaqaBaCadacacatafatacacawafafaqacaDacacafafacacabaa
-aaabacadafafaiacacaDaEahajacacaFaqafaqaGacacawafaHacacacaiafafaeacabaa
-aaabacadafafafafacasasaIasacaqaqaqaJaqaqaqacasagasasacafafafaKadacabaa
-aaabacaeafaLafafafagafafafacaiaqaMaNaraqaiacafafafagafafafafafadacabaa
-aaabacaeafafafafacasasagasacaOaqaPahaQaqaxacasagasasacahafafafaeacabaa
-aaabacadafafaiacacatacaqaRacacaqaqaqaqaqacacaSaqaqaTacacaiafafadacabaa
-aaabacacafafacacaqaqacaqaqaUacacaiaVaiacacaWaqaqaqacacacacafafacacabaa
-aaababacagacacaXaqaUasacaqaqaRacacacacacaYaHaqaqasacaZacacacagacababaa
-aaaaabacafafacavaqaqbaaqaqaqaqaUasafasaFaqaqaqaqbaaqbbaqacafafacabaaaa
-aaaaabacacafacacbcbdasaiaqacaqaqagafagaqaqaqaqaqasacaqacacafacacabaaaa
-aaaaababacafafacacacacasagasacacasafasaqaqasbaasacacacacafafacababaaaa
-aaaaaaabacacafafacacacbeafafafbeasagasbfacacaqacacacacafafacacabaaaaaa
-aaaaaaababacacafafacacbgafafbeacacafacacacaqbhaqacacafafacacababaaaaaa
-aaaaaaaaababacacafafacacbibeacacafafafacacacaqacacafafacacababaaaaaaaa
-aaaaaaaaaaababacacafafacacacacbjbkafafblacacacacafafacacababaaaaaaaaaa
-aaaaaaaaaaaaababacacafafafasafafafbmbnbobpasafafafacacababaaaaaaaaaaaa
-aaaaaaaaaaaaaaababacacacafagafbkafafbqbrbsagafacacacababaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaabababacacasacafasbtasbuacasacacabababaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaababababacasasafasacacababababaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaabvbvbvabababasbtasabababbvbvbvaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaabvbvbvbvbvbvbvbvbvbvbvbvbvbvbvaaaaaaaaaaaaaaaaaaaa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(3,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ab
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(4,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ac
+ac
+ac
+ac
+ad
+ad
+ae
+ae
+ad
+ac
+ac
+ac
+ac
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(5,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+ac
+af
+ag
+af
+af
+af
+af
+af
+af
+af
+ag
+af
+ac
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(6,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+af
+af
+af
+ac
+af
+af
+af
+aL
+af
+af
+af
+ac
+af
+af
+af
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(7,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+af
+af
+ac
+ac
+ac
+ac
+ai
+af
+af
+af
+ai
+ac
+ac
+ac
+ac
+af
+af
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+"}
+(8,1,1) = {"
+aa
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+af
+af
+ac
+ac
+aj
+ay
+ac
+ac
+af
+af
+af
+ac
+ac
+aX
+av
+ac
+ac
+af
+af
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(9,1,1) = {"
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+af
+af
+ac
+ac
+ai
+af
+af
+an
+ac
+ac
+af
+ac
+ac
+aq
+aq
+aq
+bc
+ac
+ac
+af
+af
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+"}
+(10,1,1) = {"
+aa
+aa
+aa
+ab
+ac
+ac
+af
+af
+ac
+ac
+ap
+af
+af
+aq
+an
+aD
+as
+ag
+as
+at
+aq
+aU
+aq
+bd
+ac
+ac
+ac
+af
+af
+ac
+ac
+ab
+aa
+aa
+aa
+"}
+(11,1,1) = {"
+aa
+aa
+ab
+ab
+ac
+af
+af
+ac
+ac
+ap
+af
+af
+aq
+aq
+aq
+aE
+as
+af
+as
+ac
+ac
+as
+ba
+as
+ac
+ac
+ac
+ac
+af
+af
+ac
+ab
+ab
+bv
+bv
+"}
+(12,1,1) = {"
+aa
+aa
+ab
+ac
+ac
+af
+ac
+ac
+ai
+af
+af
+aq
+aq
+aq
+aB
+ah
+aI
+af
+ag
+aq
+aq
+ac
+aq
+ai
+as
+be
+bg
+ac
+ac
+af
+ac
+ac
+ab
+bv
+bv
+"}
+(13,1,1) = {"
+aa
+aa
+ab
+ac
+af
+af
+ac
+aj
+af
+af
+aq
+aq
+aq
+af
+aC
+aj
+as
+af
+as
+aR
+aq
+aq
+aq
+aq
+ag
+af
+af
+bi
+ac
+af
+af
+ac
+ab
+bv
+bv
+"}
+(14,1,1) = {"
+aa
+ab
+ab
+ac
+ag
+ac
+ac
+ak
+af
+aq
+aq
+aq
+af
+af
+ad
+ac
+ac
+ac
+ac
+ac
+aU
+aq
+aq
+ac
+as
+af
+af
+be
+ac
+as
+ag
+as
+ab
+ab
+bv
+"}
+(15,1,1) = {"
+aa
+ab
+ac
+ac
+af
+af
+ac
+ac
+an
+an
+aq
+af
+af
+ad
+ac
+ac
+aq
+ai
+aO
+ac
+ac
+aR
+aq
+aq
+ac
+af
+be
+ac
+ac
+af
+af
+ac
+ac
+ab
+bv
+"}
+(16,1,1) = {"
+aa
+ab
+ac
+ad
+af
+af
+ai
+ac
+ac
+ar
+af
+af
+aj
+ac
+ac
+aF
+aq
+aq
+aq
+aq
+ac
+ac
+aU
+aq
+ac
+be
+ac
+ac
+bj
+af
+bk
+af
+as
+ab
+bv
+"}
+(17,1,1) = {"
+aa
+ab
+ac
+ad
+af
+af
+af
+af
+ac
+as
+as
+ag
+as
+as
+at
+aq
+aq
+aM
+aP
+aq
+ai
+ac
+as
+ag
+as
+as
+ac
+af
+bk
+af
+af
+as
+as
+as
+bv
+"}
+(18,1,1) = {"
+aa
+ab
+ac
+ae
+ah
+af
+af
+af
+af
+ag
+af
+af
+af
+az
+af
+af
+aJ
+aN
+ah
+aq
+aV
+ac
+af
+af
+af
+ag
+af
+af
+af
+bm
+af
+bt
+af
+bt
+bv
+"}
+(19,1,1) = {"
+aa
+ab
+ac
+ad
+af
+af
+af
+al
+ac
+as
+as
+ag
+as
+as
+at
+aq
+aq
+ar
+aQ
+aq
+ai
+ac
+as
+ag
+as
+as
+ac
+af
+af
+bn
+bq
+as
+as
+as
+bv
+"}
+(20,1,1) = {"
+aa
+ab
+ac
+ad
+af
+af
+ai
+ac
+ac
+ac
+ai
+af
+aw
+ac
+ac
+aG
+aq
+aq
+aq
+aq
+ac
+ac
+aF
+aq
+aq
+bf
+ac
+ac
+bl
+bo
+br
+bu
+ac
+ab
+bv
+"}
+(21,1,1) = {"
+aa
+ab
+ac
+ac
+af
+af
+ac
+ac
+ao
+ac
+aq
+af
+af
+aw
+ac
+ac
+aq
+ai
+ax
+ac
+ac
+aY
+aq
+aq
+aq
+ac
+ac
+ac
+ac
+bp
+bs
+ac
+ac
+ab
+bv
+"}
+(22,1,1) = {"
+aa
+ab
+ab
+ac
+ag
+ac
+ac
+am
+af
+ag
+aq
+aq
+af
+af
+aw
+ac
+ac
+ac
+ac
+ac
+aW
+aH
+aq
+aq
+as
+ac
+aq
+ac
+ac
+as
+ag
+as
+ab
+ab
+bv
+"}
+(23,1,1) = {"
+aa
+aa
+ab
+ac
+af
+af
+ac
+ah
+ah
+ac
+at
+aq
+aq
+af
+af
+aw
+as
+af
+as
+aS
+aq
+aq
+aq
+aq
+ba
+aq
+bh
+aq
+ac
+af
+af
+ac
+ab
+bv
+bv
+"}
+(24,1,1) = {"
+aa
+aa
+ab
+ac
+ac
+af
+ac
+ac
+ae
+ac
+au
+aq
+aq
+aq
+af
+af
+ag
+af
+ag
+aq
+aq
+aq
+aq
+aq
+as
+ac
+aq
+ac
+ac
+af
+ac
+ac
+ab
+bv
+bv
+"}
+(25,1,1) = {"
+aa
+aa
+ab
+ab
+ac
+af
+af
+ac
+ac
+ac
+au
+av
+ax
+aq
+aq
+aH
+as
+af
+as
+aq
+aq
+as
+ba
+as
+ac
+ac
+ac
+ac
+af
+af
+ac
+ab
+ab
+bv
+bv
+"}
+(26,1,1) = {"
+aa
+aa
+aa
+ab
+ac
+ac
+af
+af
+ac
+ac
+ac
+ac
+ac
+ag
+ac
+ac
+as
+ag
+as
+aT
+ac
+ac
+aq
+ac
+ac
+ac
+ac
+af
+af
+ac
+ac
+ab
+aa
+aa
+aa
+"}
+(27,1,1) = {"
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+af
+af
+ac
+ac
+ae
+af
+af
+aD
+ac
+ac
+af
+ac
+ac
+ac
+aZ
+bb
+aq
+ac
+ac
+af
+af
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+"}
+(28,1,1) = {"
+aa
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+af
+af
+ac
+ac
+ah
+aA
+ac
+ac
+af
+af
+ah
+ac
+ac
+ac
+aq
+ac
+ac
+af
+af
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(29,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+af
+af
+ac
+ac
+ac
+ac
+ai
+af
+af
+af
+ai
+ac
+ac
+ac
+ac
+af
+af
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+"}
+(30,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+af
+af
+af
+ac
+af
+af
+af
+af
+af
+af
+af
+ac
+af
+af
+af
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(31,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ac
+ac
+ac
+af
+ag
+af
+af
+aK
+af
+af
+af
+af
+ag
+af
+ac
+ac
+ac
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(32,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ac
+ac
+ac
+ac
+ae
+ad
+ad
+ae
+ad
+ac
+ac
+ac
+ac
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(33,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ab
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(34,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(35,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
"}
diff --git a/maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm b/maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm
index 7a750b1456f..a2f60e1ef63 100644
--- a/maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm
+++ b/maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm
@@ -1,154 +1,2132 @@
-"aa" = (/turf/template_noop,/area/template_noop)
-"ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate)
-"ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"ad" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"ae" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"af" = (/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"ag" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"ah" = (/obj/structure/table/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"ai" = (/obj/machinery/artifact,/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aj" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/ice,/area/template_noop)
-"ak" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"al" = (/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"am" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"an" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"ao" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"aq" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"ar" = (/obj/effect/alien/weeds/node,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"as" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"at" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"au" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"av" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"aw" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"ax" = (/turf/simulated/floor/outdoors/ice,/area/template_noop)
-"ay" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"az" = (/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aA" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aB" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aC" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"aD" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"aE" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"aF" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aG" = (/obj/machinery/vr_sleeper/alien/random_replicant,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aH" = (/obj/structure/prop/alien/pod,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aI" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aJ" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aK" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aL" = (/obj/structure/table/alien,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aM" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aN" = (/obj/structure/prop/alien/computer/camera/flipped,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aO" = (/obj/structure/simple_door/resin,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aP" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aQ" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aR" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"aS" = (/obj/structure/table/alien,/obj/random/tool/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"aT" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"aU" = (/obj/machinery/replicator,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aV" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/drug_den,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aW" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aX" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aY" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"aZ" = (/obj/machinery/porta_turret/alien/destroyed,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"ba" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/scientific,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bb" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/nanites,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"bc" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/fresh_medicine,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bd" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/viral,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"be" = (/obj/machinery/door/blast/puzzle,/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bf" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bg" = (/obj/structure/prop/lock/projectile,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"bh" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/old_medicine,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"bi" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bj" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bk" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bl" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"bm" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bn" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bo" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bp" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bq" = (/obj/machinery/implantchair,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"br" = (/obj/structure/prop/alien/computer{icon_state = "console-c"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bs" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bt" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bu" = (/obj/structure/loot_pile/surface/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bv" = (/obj/item/weapon/surgical/bone_clamp/alien,/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bw" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bx" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/accessory/medal/dungeon/alien_ufo{desc = "It vaguely like a star. It looks like something an alien admiral might've worn. Probably."; name = "alien admiral's medal"},/obj/item/weapon/telecube/precursor/mated/zone,/obj/item/clothing/head/helmet/alien/tank,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"by" = (/obj/structure/loot_pile/mecha/gygax/dark,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bz" = (/obj/structure/mopbucket,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bA" = (/obj/item/brokenbug,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"bB" = (/mob/living/simple_mob/animal/space/alien/sentinel,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bC" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bD" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bE" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bF" = (/obj/structure/prop/blackbox/xenofrigate,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bG" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"bH" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bI" = (/obj/structure/table/alien,/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bJ" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bK" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bL" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/poi,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bM" = (/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bN" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bO" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bP" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bQ" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bR" = (/obj/structure/table/alien,/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bS" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bT" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
-"bU" = (/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"bV" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bW" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bX" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"bY" = (/obj/structure/foamedmetal,/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"bZ" = (/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"ca" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"cb" = (/obj/structure/prop/alien/power,/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"cc" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"cd" = (/obj/item/prop/alien/junk,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"ce" = (/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"cf" = (/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
-"cg" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
-"ch" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo_frigate)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/template_noop,
+/area/template_noop)
+"ab" = (
+/turf/simulated/shuttle/wall/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"ac" = (
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"ad" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"af" = (
+/mob/living/simple_mob/animal/space/alien/drone,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"ag" = (
+/obj/machinery/porta_turret/alien{
+ faction = "xeno"
+ },
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"ah" = (
+/obj/structure/table/alien,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"ai" = (
+/obj/machinery/artifact,
+/obj/effect/alien/weeds/node,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aj" = (
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/ice,
+/area/template_noop)
+"ak" = (
+/obj/machinery/porta_turret/alien{
+ faction = "xeno"
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"al" = (
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"am" = (
+/obj/structure/window/phoronreinforced,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"ao" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"ap" = (
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"aq" = (
+/obj/structure/prop/alien/pod/open,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"ar" = (
+/obj/effect/alien/weeds/node,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"as" = (
+/obj/structure/prop/alien/pod/open,
+/obj/random/tech_supply/component,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"at" = (
+/obj/machinery/door/airlock/alien/locked,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"au" = (
+/obj/machinery/door/airlock/alien/locked,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"av" = (
+/obj/structure/loot_pile/surface/alien/engineering,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"aw" = (
+/obj/structure/prop/alien/pod/open,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"ax" = (
+/turf/simulated/floor/outdoors/ice,
+/area/template_noop)
+"ay" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"az" = (
+/obj/item/prop/alien/junk,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aA" = (
+/obj/effect/alien/weeds/node,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aB" = (
+/obj/structure/loot_pile/surface/alien/medical,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aC" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"aD" = (
+/obj/structure/table/alien,
+/obj/random/tech_supply/component,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"aE" = (
+/obj/structure/prop/alien/pod/open,
+/obj/random/tech_supply/component,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"aF" = (
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aG" = (
+/obj/machinery/vr_sleeper/alien/random_replicant,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aH" = (
+/obj/structure/prop/alien/pod,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aI" = (
+/obj/structure/loot_pile/surface/alien/engineering,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aJ" = (
+/obj/machinery/door/airlock/alien/locked,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aK" = (
+/obj/structure/table/alien,
+/obj/random/tech_supply/component,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aL" = (
+/obj/structure/table/alien,
+/obj/item/clothing/under/psysuit,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aM" = (
+/obj/structure/prop/alien/computer/camera,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aN" = (
+/obj/structure/prop/alien/computer/camera/flipped,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aO" = (
+/obj/structure/simple_door/resin,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aP" = (
+/obj/structure/prop/alien/power,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aQ" = (
+/obj/effect/alien/weeds/node,
+/mob/living/simple_mob/animal/space/alien/drone,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aR" = (
+/obj/effect/alien/weeds/node,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"aS" = (
+/obj/structure/table/alien,
+/obj/random/tool/alien,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"aT" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"aU" = (
+/obj/machinery/replicator,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aV" = (
+/obj/structure/closet/alien,
+/obj/random/unidentified_medicine/drug_den,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aW" = (
+/obj/effect/decal/remains/xeno,
+/obj/item/clothing/under/psysuit,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aX" = (
+/obj/structure/prop/alien/computer/camera/flipped{
+ icon_state = "camera_flipped";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aY" = (
+/obj/structure/prop/alien/computer/camera{
+ icon_state = "camera";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"aZ" = (
+/obj/machinery/porta_turret/alien/destroyed,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"ba" = (
+/obj/structure/closet/alien,
+/obj/random/unidentified_medicine/scientific,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bb" = (
+/obj/structure/closet/alien,
+/obj/random/unidentified_medicine/nanites,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"bc" = (
+/obj/structure/closet/alien,
+/obj/random/unidentified_medicine/fresh_medicine,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bd" = (
+/obj/structure/closet/alien,
+/obj/random/unidentified_medicine/viral,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"be" = (
+/obj/machinery/door/blast/puzzle,
+/obj/machinery/door/airlock/alien/locked,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bf" = (
+/obj/structure/table/alien,
+/obj/item/weapon/paper/alien{
+ icon_state = "alienpaper_words";
+ info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bg" = (
+/obj/structure/prop/lock/projectile,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"bh" = (
+/obj/structure/closet/alien,
+/obj/random/unidentified_medicine/old_medicine,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"bi" = (
+/obj/structure/prop/alien/dispenser,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bj" = (
+/obj/effect/decal/remains/xeno,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bk" = (
+/mob/living/simple_mob/animal/space/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bl" = (
+/obj/effect/decal/remains/xeno,
+/obj/item/clothing/under/psysuit,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"bm" = (
+/obj/structure/table/alien,
+/obj/item/weapon/paper/alien,
+/obj/item/weapon/paper/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bn" = (
+/obj/structure/foamedmetal,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bo" = (
+/obj/machinery/porta_turret/alien{
+ faction = "xeno"
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bp" = (
+/obj/structure/foamedmetal,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bq" = (
+/obj/machinery/implantchair,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"br" = (
+/obj/structure/prop/alien/computer{
+ icon_state = "console-c";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bs" = (
+/obj/effect/alien/weeds/node,
+/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bt" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bu" = (
+/obj/structure/loot_pile/surface/drone,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bv" = (
+/obj/item/weapon/surgical/bone_clamp/alien,
+/obj/structure/closet/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bw" = (
+/obj/structure/prop/alien/computer,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bx" = (
+/obj/effect/decal/remains/xeno,
+/obj/item/clothing/accessory/medal/dungeon/alien_ufo{
+ desc = "It vaguely like a star. It looks like something an alien admiral might've worn. Probably.";
+ name = "alien admiral's medal"
+ },
+/obj/item/weapon/telecube/precursor/mated/zone,
+/obj/item/clothing/head/helmet/alien/tank,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"by" = (
+/obj/structure/loot_pile/mecha/gygax/dark,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bz" = (
+/obj/structure/mopbucket,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bA" = (
+/obj/item/brokenbug,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"bB" = (
+/mob/living/simple_mob/animal/space/alien/sentinel,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bC" = (
+/obj/structure/prop/alien/computer/camera/flipped{
+ icon_state = "camera_flipped";
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bD" = (
+/obj/structure/prop/alien/computer/camera{
+ icon_state = "camera";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bE" = (
+/obj/structure/loot_pile/maint/boxfort,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bF" = (
+/obj/structure/prop/blackbox/xenofrigate,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bG" = (
+/obj/random/outcrop,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"bH" = (
+/obj/structure/loot_pile/maint/junk,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bI" = (
+/obj/structure/table/alien,
+/obj/structure/loot_pile/surface/alien/medical,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bJ" = (
+/obj/structure/window/phoronreinforced{
+ icon_state = "phoronrwindow";
+ dir = 8
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bK" = (
+/obj/structure/table/alien,
+/obj/item/prop/alien/junk,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bL" = (
+/obj/structure/table/alien,
+/obj/item/weapon/paper/alien{
+ icon_state = "alienpaper_words";
+ info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"
+ },
+/obj/item/device/gps/internal/poi,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bM" = (
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bN" = (
+/obj/structure/table/alien,
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/item/weapon/paper/alien{
+ icon_state = "alienpaper_words";
+ info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"
+ },
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bO" = (
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bP" = (
+/obj/structure/table/alien,
+/obj/item/weapon/weldingtool/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bQ" = (
+/obj/structure/table/alien,
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/item/weapon/paper/alien{
+ icon_state = "alienpaper_words";
+ info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"
+ },
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bR" = (
+/obj/structure/table/alien,
+/obj/structure/foamedmetal,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bS" = (
+/obj/structure/closet/alien,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bT" = (
+/obj/structure/window/phoronreinforced{
+ icon_state = "phoronrwindow";
+ dir = 8
+ },
+/obj/structure/window/phoronreinforced,
+/turf/simulated/shuttle/floor/alienplating,
+/area/submap/cave/crashed_ufo_frigate)
+"bU" = (
+/obj/structure/window/phoronreinforced,
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"bV" = (
+/obj/structure/table/alien,
+/obj/structure/window/phoronreinforced,
+/obj/item/weapon/paper/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bW" = (
+/obj/structure/table/alien,
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/structure/window/phoronreinforced,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bX" = (
+/mob/living/simple_mob/animal/space/alien,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"bY" = (
+/obj/structure/foamedmetal,
+/obj/machinery/door/airlock/alien/locked,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"bZ" = (
+/obj/structure/foamedmetal,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"ca" = (
+/obj/structure/table/alien,
+/obj/item/weapon/paper/alien{
+ icon_state = "alienpaper_words";
+ info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"
+ },
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"cb" = (
+/obj/structure/prop/alien/power,
+/obj/structure/foamedmetal,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"cc" = (
+/obj/structure/loot_pile/surface/alien/end,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"cd" = (
+/obj/item/prop/alien/junk,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"ce" = (
+/obj/random/tech_supply/component,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"cf" = (
+/obj/random/tech_supply/component,
+/turf/simulated/floor/outdoors/ice,
+/area/submap/cave/crashed_ufo_frigate)
+"cg" = (
+/obj/machinery/door/airlock/alien/public,
+/turf/simulated/shuttle/floor/alien,
+/area/submap/cave/crashed_ufo_frigate)
+"ch" = (
+/turf/simulated/shuttle/wall/alien/hard_corner,
+/area/submap/cave/crashed_ufo_frigate)
(1,1,1) = {"
-aaaaaaaxbGaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaxaxadaxaxbGaaaaaaaaababababacaeacafaeababababaaaaaaajaxadaaaaadaxajaaaaaa
-adbGadadadadaxaxaaaaabababagahababacaiacababacakabababaaaaadaxadadaxaxaaaaaaaa
-aaaxaxadadadadaaaaababacalalahahabamamanabacacacacaoababaaaaadbGadadaaaaaaaaaa
-aaaaaaadbGadaaaaababaoacacalapapchalalalchapapaqaracasababaaaaaaadadadaxaxadaa
-aaaaadadadaaaaababaoacacapapapapatalapapauapapapavalacawababaaaaaaadadadaxajaa
-aaadadaxaaaaababaoacayapapapalalchazacaAchaAaBapapaCacacawababaaaaaxadadadaaaa
-aaaxaxaaaaababaoacalalapapahaDabababazababababawapapaEacacaBababaaaxadaaaaaaaa
-adbGaxaaaaabacacalalapapacaFababaGabababaHabababaIapapaqaAacakabaaajaxaaaaaaaa
-aaadaaaaababacacaFapapacacaFabaGacaGabaHalalaJacacacapapacacabababaaaxaaaaaaaa
-aaadaaaaabakacacaKapapacacacababaJababawacacchabacaAapapacababaIabaaaaaaaaaaaa
-aaaaaaababababaFaFapalalacacaJacacakabaLacaLabababacapapababaIacababaaaaaaaaaa
-aaaaaaabaMaNabababalalacacacababaOababaLacaLababababchatchaFalacaPabaaaaaaaaaa
-aaaaaaabaFacakacchauchaoacacabaeaQaeabaLacaLabababakapaRabaSalacaPabadaxaaaaaa
-aaaaaaabaFacalalapalababaTalababaeabababawababaMaFacapapabahalacaPabadadaaaaaa
-aaaaababaFalalapapapacababalaTabababakabababaUacaFacapapatacacababababadaxaaaa
-aaaaabaVacapapapapacacakababababacacaWaAacababacacapapapabavababacacabadaxaaaa
-aaaaabacapapapapacacacacabababaXacaFaFahalaYababchaRapacabababaZacacabadadadaa
-adaaabbaapapacalbbalbcacbdabacacapalalalapapapapbeapacacaIabalalacapchaZadadaa
-adaaabalapabababababababababapapapapapapapapapapchaFacbfababbgacapapatacadbAaa
-adaaabbhalabbiawabbiapaFabapapaRbjbkacacacaparblabbmacaFabacacapapapchaZadadaa
-axaaabalbnbobpacabbiapbqchapalalalaFaFaFacacapalabbfacbmabacapapapalabadadaxaa
-axaaabalbnbnbnbrabbibsapatapalagabababababakapapabbtaAbuabalapapalalabadadaxaa
-aaadababaFbnapbvababaFaFchapalababbwbxbwababapapabbyacbzabalalapacababadadaaaa
-aaaaaaabaFapbBacaYababababapapabbCapapapbDabapapabbEbFbHabalalapacabadaxaaaaaa
-aaaaaaabaFapapalalalalababapapabapapaRapapabapapabababababalapapalabadaaaaaaaa
-axaaaaabbIaFapapbpalalabacalapbJapbKbLbfapbMapapacabacakbNapapalalabaaaaaaaaaa
-axadaaababaFapbnbnacacabagalapbJbOaFapbPbObMapapakabacacbQapapalababaaaaaaaaaa
-adbGadaaabbIbRbnapapbSabalalapbTapaRapapalbUapapacabacbVbWapacalabaaaaaaaaaaaa
-aaaxaxaaababaFacapapbSababalaRapapapbXalalalaRacababacapapacakababaaaaaaaaaaaa
-aaaaaxaaaaabbIaFapapapbSabalapapapapapapapapapacabacapapapacacabaaaaaaaaadadaa
-aaaaaaaaaaabababchbYchabababbfbOapapapapapbObfabababchatchabababaaaaaaadbGadaa
-aaadaaaaaaaaababbZbZbnapacababaFahalagarcaaFababacapapapacababaaaaaaadadadadaa
-aaadaxajaaaaaaababcbbZapapalabababccabccabababacapapapaPababaaaaaaadadadadaaaa
-aaadadaxaxbGaaaaababbZapapcdalalabababababacapapapapacababaaaaaaaxaxadadadadaa
-aaaaadadadadadaaaaababaPacapapalalchapchceapapalcfaPababaaaaaabGadadadaxaxadaa
-aaaaaabGaxaxadbGaaaaabababacapapapcgapcgapalalalabababaaaaaaadadadadadaxbGaaaa
-aaaaaaaaaaaxaxadadaaaaaaababababakchaHchakababababaaaaaaadadaxaxbGaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaabGadaaaaaaaaaaaaaaaaaaaa
+aa
+aa
+ad
+aa
+aa
+aa
+aa
+aa
+ad
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+ad
+ad
+ax
+ax
+aa
+aa
+aa
+ax
+ax
+ad
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+aa
+bG
+ax
+aa
+aa
+ad
+ax
+bG
+ad
+ad
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+aa
+aa
+aa
+ad
+bG
+ax
+aa
+aa
+ad
+ad
+ad
+aa
+aa
+aa
+aa
+"}
+(3,1,1) = {"
+aa
+ax
+ad
+ax
+aa
+ad
+ad
+ax
+ax
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+ad
+ax
+ax
+aa
+aa
+ax
+ad
+ad
+aa
+aa
+aa
+"}
+(4,1,1) = {"
+ax
+ax
+ad
+ad
+ad
+ad
+ax
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ab
+ab
+aV
+ac
+ba
+al
+bh
+al
+al
+ab
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aj
+ax
+ad
+bG
+aa
+aa
+"}
+(5,1,1) = {"
+bG
+ad
+ad
+ad
+bG
+ad
+aa
+aa
+aa
+ab
+ab
+ab
+aM
+aF
+aF
+aF
+ac
+ap
+ap
+ap
+al
+bn
+bn
+aF
+aF
+aF
+bI
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+ax
+ad
+ax
+aa
+aa
+"}
+(6,1,1) = {"
+aa
+ax
+ad
+ad
+ad
+aa
+aa
+ab
+ab
+ab
+ak
+ab
+aN
+ac
+ac
+al
+ap
+ap
+ap
+ab
+ab
+bo
+bn
+bn
+ap
+ap
+aF
+aF
+bI
+ab
+ab
+ab
+aa
+aa
+bG
+ad
+ax
+ax
+aa
+"}
+(7,1,1) = {"
+aa
+ax
+ax
+ad
+aa
+aa
+ab
+ab
+ac
+ac
+ac
+ab
+ab
+ak
+al
+al
+ap
+ap
+ac
+ab
+bi
+bp
+bn
+ap
+bB
+ap
+ap
+ap
+bR
+aF
+bI
+ab
+ab
+aa
+aa
+ad
+ad
+ax
+aa
+"}
+(8,1,1) = {"
+aa
+bG
+ax
+aa
+aa
+ab
+ab
+ao
+ac
+ac
+ac
+aF
+ab
+ac
+al
+ap
+ap
+ap
+al
+ab
+aw
+ac
+br
+bv
+ac
+al
+ap
+bn
+bn
+ac
+aF
+ab
+ab
+ab
+aa
+aa
+bG
+ad
+aa
+"}
+(9,1,1) = {"
+aa
+aa
+aa
+aa
+ab
+ab
+ao
+ac
+al
+aF
+aK
+aF
+ab
+ch
+ap
+ap
+ap
+ac
+bb
+ab
+ab
+ab
+ab
+ab
+aY
+al
+bp
+bn
+ap
+ap
+ap
+ch
+bZ
+ab
+ab
+aa
+aa
+ad
+aa
+"}
+(10,1,1) = {"
+aa
+aa
+aa
+ab
+ab
+ao
+ac
+al
+al
+ap
+ap
+ap
+al
+au
+al
+ap
+ac
+ac
+al
+ab
+bi
+bi
+bi
+ab
+ab
+al
+al
+ac
+ap
+ap
+ap
+bY
+bZ
+cb
+ab
+ab
+aa
+aa
+aa
+"}
+(11,1,1) = {"
+aa
+aa
+ab
+ab
+ao
+ac
+ay
+al
+ap
+ap
+ap
+al
+al
+ch
+ab
+ac
+ac
+ac
+bc
+ab
+ap
+ap
+bs
+aF
+ab
+al
+al
+ac
+bS
+bS
+ap
+ch
+bn
+bZ
+bZ
+ab
+ab
+aa
+aa
+"}
+(12,1,1) = {"
+aa
+aa
+ab
+ac
+ac
+ac
+ap
+ap
+ap
+ac
+ac
+al
+ac
+ao
+ab
+ab
+ak
+ac
+ac
+ab
+aF
+bq
+ap
+aF
+ab
+ab
+ab
+ab
+ab
+ab
+bS
+ab
+ap
+ap
+ap
+aP
+ab
+aa
+aa
+"}
+(13,1,1) = {"
+aa
+ab
+ab
+al
+ac
+ap
+ap
+ap
+ac
+ac
+ac
+ac
+ac
+ac
+aT
+ab
+ab
+ab
+bd
+ab
+ab
+ch
+at
+ch
+ab
+ab
+ac
+ag
+al
+ab
+ab
+ab
+ac
+ap
+ap
+ac
+ab
+ab
+aa
+"}
+(14,1,1) = {"
+aa
+ab
+ag
+al
+al
+ap
+ap
+ah
+aF
+aF
+ac
+ac
+ac
+ac
+al
+al
+ab
+ab
+ab
+ab
+ap
+ap
+ap
+ap
+ap
+ap
+al
+al
+al
+al
+al
+ab
+ab
+al
+cd
+ap
+ac
+ab
+aa
+"}
+(15,1,1) = {"
+aa
+ab
+ah
+ah
+ap
+ap
+al
+aD
+ab
+ab
+ab
+aJ
+ab
+ab
+ab
+aT
+ab
+ab
+ac
+ap
+ap
+al
+al
+al
+ap
+ap
+ap
+ap
+ap
+aR
+ap
+bf
+ab
+ab
+al
+ap
+ap
+ab
+aa
+"}
+(16,1,1) = {"
+ab
+ab
+ab
+ah
+ap
+ap
+al
+ab
+ab
+aG
+ab
+ac
+ab
+ac
+ab
+ab
+ab
+aX
+ac
+ap
+aR
+al
+ag
+ab
+ab
+ab
+bJ
+bJ
+bT
+ap
+ap
+bO
+aF
+ab
+al
+al
+ap
+ab
+ab
+"}
+(17,1,1) = {"
+ab
+ac
+ab
+ab
+ch
+at
+ch
+ab
+aG
+ac
+aJ
+ac
+aO
+aQ
+ac
+ab
+ac
+ac
+ap
+ap
+bj
+al
+ab
+ab
+bC
+ap
+ap
+bO
+ap
+ap
+ap
+ap
+ah
+ab
+ab
+al
+ap
+ak
+ab
+"}
+(18,1,1) = {"
+ab
+ac
+ac
+am
+al
+al
+az
+ab
+ab
+aG
+ab
+ak
+ab
+ac
+ab
+ab
+ac
+aF
+al
+ap
+bk
+aF
+ab
+bw
+ap
+ap
+bK
+aF
+aR
+ap
+ap
+ap
+al
+cc
+ab
+ch
+cg
+ch
+ab
+"}
+(19,1,1) = {"
+ab
+ac
+ai
+am
+al
+ap
+ac
+az
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ak
+aW
+aF
+al
+ap
+ac
+aF
+ab
+bx
+ap
+aR
+bL
+ap
+ap
+bX
+ap
+ap
+ag
+ab
+ab
+ap
+ap
+aH
+ab
+"}
+(20,1,1) = {"
+ab
+af
+ac
+am
+al
+ap
+aA
+ab
+ab
+aH
+aw
+aL
+aL
+aL
+ab
+ab
+aA
+ah
+al
+ap
+ac
+aF
+ab
+bw
+ap
+ap
+bf
+bP
+ap
+al
+ap
+ap
+ar
+cc
+ab
+ch
+cg
+ch
+ab
+"}
+(21,1,1) = {"
+ab
+ac
+ab
+ab
+ch
+au
+ch
+ab
+aH
+al
+ac
+ac
+ac
+ac
+aw
+ab
+ac
+al
+ap
+ap
+ac
+ac
+ab
+ab
+bD
+ap
+ap
+bO
+al
+al
+ap
+ap
+ca
+ab
+ab
+ce
+ap
+ak
+ab
+"}
+(22,1,1) = {"
+ab
+ab
+ab
+ac
+ap
+ap
+aA
+ab
+ab
+al
+ac
+aL
+aL
+aL
+ab
+ab
+ab
+aY
+ap
+ap
+ap
+ac
+ak
+ab
+ab
+ab
+bM
+bM
+bU
+al
+ap
+bO
+aF
+ab
+ac
+ap
+al
+ab
+ab
+"}
+(23,1,1) = {"
+aa
+ab
+ac
+ac
+ap
+ap
+aB
+ab
+ab
+aJ
+ch
+ab
+ab
+ab
+ab
+aU
+ab
+ab
+ap
+ap
+ar
+ap
+ap
+ap
+ap
+ap
+ap
+ap
+ap
+aR
+ap
+bf
+ab
+ab
+ap
+ap
+al
+ab
+aa
+"}
+(24,1,1) = {"
+aa
+ab
+ak
+ac
+aq
+ap
+ap
+aw
+ab
+ac
+ab
+ab
+ab
+ab
+aM
+ac
+ac
+ab
+ap
+ap
+bl
+al
+ap
+ap
+ap
+ap
+ap
+ap
+ap
+ac
+ac
+ab
+ab
+ac
+ap
+al
+al
+ab
+aa
+"}
+(25,1,1) = {"
+aa
+ab
+ab
+ac
+ar
+av
+ap
+ap
+aI
+ac
+ac
+ab
+ab
+ab
+aF
+aF
+ac
+ch
+be
+ch
+ab
+ab
+ab
+ab
+ab
+ab
+ac
+ak
+ac
+ab
+ab
+ab
+ac
+ap
+ap
+cf
+ab
+ab
+aa
+"}
+(26,1,1) = {"
+aa
+aa
+ab
+ao
+ac
+al
+aC
+ap
+ap
+ac
+aA
+ac
+ab
+ak
+ac
+ac
+ap
+aR
+ap
+aF
+bm
+bf
+bt
+by
+bE
+ab
+ab
+ab
+ab
+ab
+ac
+ab
+ap
+ap
+ap
+aP
+ab
+aa
+aa
+"}
+(27,1,1) = {"
+aa
+aa
+ab
+ab
+as
+ac
+ac
+aE
+ap
+ap
+ap
+ap
+ch
+ap
+ap
+ap
+ap
+ap
+ac
+ac
+ac
+ac
+aA
+ac
+bF
+ab
+ac
+ac
+ac
+ac
+ap
+ch
+ap
+ap
+ac
+ab
+ab
+aa
+aa
+"}
+(28,1,1) = {"
+aa
+aa
+aa
+ab
+ab
+aw
+ac
+ac
+aq
+ap
+ap
+ap
+at
+aR
+ap
+ap
+ap
+ac
+ac
+bf
+aF
+bm
+bu
+bz
+bH
+ab
+ak
+ac
+bV
+ap
+ap
+at
+ap
+aP
+ab
+ab
+aa
+aa
+bG
+"}
+(29,1,1) = {"
+aa
+aj
+aa
+aa
+ab
+ab
+aw
+ac
+aA
+ac
+ac
+ab
+ch
+ab
+ab
+at
+ab
+ab
+aI
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+bN
+bQ
+bW
+ap
+ap
+ch
+ac
+ab
+ab
+aa
+aa
+ad
+ad
+"}
+(30,1,1) = {"
+aa
+ax
+ad
+aa
+aa
+ab
+ab
+aB
+ac
+ac
+ab
+ab
+aF
+aS
+ah
+ac
+av
+ab
+ab
+ab
+ac
+ac
+al
+al
+al
+al
+ap
+ap
+ap
+ac
+ac
+ab
+ab
+ab
+aa
+aa
+aa
+ad
+aa
+"}
+(31,1,1) = {"
+aa
+ad
+ax
+ad
+aa
+aa
+ab
+ab
+ak
+ab
+ab
+aI
+al
+al
+al
+ac
+ab
+ab
+al
+bg
+ac
+ap
+ap
+al
+al
+ap
+ap
+ap
+ac
+ak
+ac
+ab
+ab
+aa
+aa
+aa
+ad
+ax
+aa
+"}
+(32,1,1) = {"
+aa
+aa
+ad
+bG
+aa
+aa
+aa
+ab
+ab
+ab
+aI
+ac
+ac
+ac
+ac
+ab
+ab
+aZ
+al
+ac
+ap
+ap
+ap
+ap
+ap
+ap
+al
+al
+al
+ab
+ab
+ab
+aa
+aa
+aa
+bG
+ad
+ax
+aa
+"}
+(33,1,1) = {"
+aa
+aa
+ad
+ad
+ad
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+aP
+aP
+aP
+ab
+ac
+ac
+ac
+ap
+ap
+ap
+al
+ac
+ac
+al
+al
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+ax
+ad
+ad
+bG
+aa
+"}
+(34,1,1) = {"
+aa
+ad
+ax
+ad
+ad
+ad
+ax
+ax
+aj
+aa
+aa
+ab
+ab
+ab
+ab
+ab
+ac
+ac
+ap
+ap
+ap
+al
+al
+ab
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+ad
+ax
+ad
+ad
+aa
+aa
+"}
+(35,1,1) = {"
+aa
+ax
+ax
+aa
+ad
+ad
+ad
+ad
+ax
+ax
+aa
+aa
+aa
+ad
+ad
+ab
+ab
+ab
+ch
+at
+ch
+ab
+ab
+ab
+ad
+ad
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+ad
+ad
+ad
+ad
+aa
+aa
+"}
+(36,1,1) = {"
+aa
+aj
+aa
+aa
+ax
+ad
+ad
+aa
+aa
+aa
+aa
+aa
+aa
+ax
+ad
+ad
+ad
+ad
+aZ
+ac
+aZ
+ad
+ad
+ad
+ax
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+ad
+ad
+ad
+ax
+ax
+aa
+aa
+"}
+(37,1,1) = {"
+aa
+aa
+aa
+aa
+ax
+ax
+ad
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ax
+ax
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+bG
+ad
+ad
+ad
+ax
+bG
+aa
+aa
+"}
+(38,1,1) = {"
+aa
+aa
+aa
+aa
+ad
+aj
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+ad
+bA
+ad
+ax
+ax
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+ad
+ad
+aa
+ad
+ad
+aa
+aa
+aa
+"}
+(39,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
"}
diff --git a/maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm b/maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm
index f9ccb02e439..ddc3096293c 100644
--- a/maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm
+++ b/maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm
@@ -34,7 +34,7 @@
/turf/simulated/mineral/floor/ignore_mapgen/cave,
/area/submap/crashedcontainmentshuttle)
"ai" = (
-/turf/simulated/floor/outdoors/rocks,
+/turf/simulated/floor/outdoors/rocks/caves,
/area/submap/crashedcontainmentshuttle)
"aj" = (
/obj/item/weapon/material/shard,
diff --git a/maps/expedition_vr/beach/submaps/crystal1.dmm b/maps/expedition_vr/beach/submaps/crystal1.dmm
index ccf9c042cee..6ccbd2e56e5 100644
--- a/maps/expedition_vr/beach/submaps/crystal1.dmm
+++ b/maps/expedition_vr/beach/submaps/crystal1.dmm
@@ -1,15 +1,96 @@
-"a" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/crystal1)
-"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal1)
-"c" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal1)
-"d" = (/obj/item/weapon/ore/diamond,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal1)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/cave/crystal1)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal1)
+"c" = (
+/obj/machinery/crystal,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal1)
+"d" = (
+/obj/item/weapon/ore/diamond,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal1)
(1,1,1) = {"
-aaabbaaa
-accbbcaa
-acdbbdca
-aacbbbda
-aacbbbba
-acbbbbba
-abbbbbca
-aaabbbaa
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+c
+c
+a
+a
+c
+b
+a
+"}
+(3,1,1) = {"
+a
+c
+d
+c
+c
+b
+b
+a
+"}
+(4,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(5,1,1) = {"
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(6,1,1) = {"
+a
+c
+d
+b
+b
+b
+b
+b
+"}
+(7,1,1) = {"
+a
+a
+c
+d
+b
+b
+c
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/crystal2.dmm b/maps/expedition_vr/beach/submaps/crystal2.dmm
index b1cd12ecc70..d5ef5a4a00d 100644
--- a/maps/expedition_vr/beach/submaps/crystal2.dmm
+++ b/maps/expedition_vr/beach/submaps/crystal2.dmm
@@ -1,22 +1,271 @@
-"a" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/crystal2)
-"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal2)
-"c" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal2)
-"d" = (/obj/item/weapon/ore/diamond,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal2)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/cave/crystal2)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal2)
+"c" = (
+/obj/machinery/crystal,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal2)
+"d" = (
+/obj/item/weapon/ore/diamond,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal2)
(1,1,1) = {"
-aaaaaaabbbaaaaa
-aaaaaaabbbaaaaa
-aaaaacbbbbcaaaa
-aaaaabbbbbbcaaa
-aaaacbbbbdbbaaa
-aacbbbbbbbbbcaa
-bbbbbdbacbbbbca
-bbbbbbcaacbbbbb
-aabbbcaaacbbdbb
-aaabbcaacbbbbbb
-aaabbbcacbbbcaa
-aacbbbbbbbbcaaa
-aaccabbbbaaaaaa
-aaaaabbdbaaaaaa
-aaaaabbbbaaaaaa
+a
+a
+a
+a
+a
+a
+b
+b
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+b
+b
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+c
+b
+b
+b
+a
+a
+c
+c
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+c
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+a
+c
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+c
+b
+b
+b
+d
+b
+c
+c
+b
+b
+b
+b
+b
+"}
+(7,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+c
+a
+a
+c
+b
+b
+b
+b
+"}
+(8,1,1) = {"
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+b
+b
+d
+b
+"}
+(9,1,1) = {"
+b
+b
+b
+b
+b
+b
+c
+a
+a
+c
+c
+b
+b
+b
+b
+"}
+(10,1,1) = {"
+b
+b
+b
+b
+d
+b
+b
+c
+c
+b
+b
+b
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+c
+b
+b
+b
+b
+b
+b
+b
+c
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+a
+a
+c
+b
+b
+d
+b
+c
+a
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+a
+a
+a
+a
+c
+b
+b
+b
+a
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/crystal3.dmm b/maps/expedition_vr/beach/submaps/crystal3.dmm
index 16f16785fc8..b8fad2723c0 100644
--- a/maps/expedition_vr/beach/submaps/crystal3.dmm
+++ b/maps/expedition_vr/beach/submaps/crystal3.dmm
@@ -1,26 +1,399 @@
-"a" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/crystal3)
-"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal3)
-"c" = (/turf/template_noop,/area/template_noop)
-"d" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal3)
-"e" = (/obj/item/weapon/ore/diamond,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal3)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/cave/crystal3)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal3)
+"c" = (
+/turf/template_noop,
+/area/template_noop)
+"d" = (
+/obj/machinery/crystal,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal3)
+"e" = (
+/obj/item/weapon/ore/diamond,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/crystal3)
(1,1,1) = {"
-aaaaaaabbbaaaaacccc
-aaaaabbbbbbbbaaaccc
-aabbbbbbbbbbbbbaaac
-bbbbbbaaaaadbbbbbac
-bbbdaaaaaaaaaabbbac
-bbbaaaaaaaaaaabbbac
-bbbaaaadddaabbdbbac
-bbbaaadebbdadbbbbac
-bbbaadbbdedbbbbbbaa
-bbbaadbdeedbbdbbbda
-bbbaadbbddbbbbbbbbb
-bbbaaadebbbbdbbbbbb
-bbbaaaaddddbaadbbbb
-bbbdaaaaaaaaaaabbba
-bbbbdaaaaaaaadbbbaa
-bbbbbbbbbbbbbbbbbaa
-cccabbbbbbbbbbaaaaa
-cccaaaaabbbbaaacccc
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+"}
+(2,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+"}
+(3,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+"}
+(4,1,1) = {"
+a
+a
+b
+b
+d
+a
+a
+a
+a
+a
+a
+a
+a
+d
+b
+b
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+d
+b
+b
+a
+"}
+(6,1,1) = {"
+a
+b
+b
+b
+a
+a
+a
+a
+d
+d
+d
+a
+a
+a
+a
+b
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+a
+a
+a
+a
+d
+b
+b
+b
+d
+a
+a
+a
+b
+b
+a
+"}
+(8,1,1) = {"
+b
+b
+b
+a
+a
+a
+d
+e
+b
+d
+b
+e
+d
+a
+a
+b
+b
+a
+"}
+(9,1,1) = {"
+b
+b
+b
+a
+a
+a
+d
+b
+d
+e
+d
+b
+d
+a
+a
+b
+b
+b
+"}
+(10,1,1) = {"
+b
+b
+b
+a
+a
+a
+d
+b
+e
+e
+d
+b
+d
+a
+a
+b
+b
+b
+"}
+(11,1,1) = {"
+a
+b
+b
+a
+a
+a
+a
+d
+d
+d
+b
+b
+d
+a
+a
+b
+b
+b
+"}
+(12,1,1) = {"
+a
+b
+b
+d
+a
+a
+a
+a
+b
+b
+b
+b
+b
+a
+a
+b
+b
+b
+"}
+(13,1,1) = {"
+a
+b
+b
+b
+a
+a
+b
+d
+b
+b
+b
+d
+a
+a
+a
+b
+b
+a
+"}
+(14,1,1) = {"
+a
+a
+b
+b
+a
+a
+b
+b
+b
+d
+b
+b
+a
+a
+d
+b
+b
+a
+"}
+(15,1,1) = {"
+a
+a
+b
+b
+b
+b
+d
+b
+b
+b
+b
+b
+d
+a
+b
+b
+a
+a
+"}
+(16,1,1) = {"
+c
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+c
+"}
+(17,1,1) = {"
+c
+c
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+c
+"}
+(18,1,1) = {"
+c
+c
+a
+a
+a
+a
+a
+a
+a
+d
+b
+b
+b
+b
+a
+a
+a
+c
+"}
+(19,1,1) = {"
+c
+c
+c
+c
+c
+c
+c
+c
+a
+a
+b
+b
+b
+a
+a
+a
+a
+c
"}
diff --git a/maps/expedition_vr/beach/submaps/deadBeacon.dmm b/maps/expedition_vr/beach/submaps/deadBeacon.dmm
index 5df9d12492e..0b01461d312 100644
--- a/maps/expedition_vr/beach/submaps/deadBeacon.dmm
+++ b/maps/expedition_vr/beach/submaps/deadBeacon.dmm
@@ -1,62 +1,656 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/deadBeacon)
-"c" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/deadBeacon)
-"d" = (/turf/simulated/wall/r_wall,/area/submap/cave/deadBeacon)
-"e" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"f" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"g" = (/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"h" = (/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/submap/cave/deadBeacon)
-"i" = (/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"j" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"k" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"l" = (/obj/item/weapon/material/shard,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"m" = (/obj/structure/table/steel,/obj/item/weapon/circuitboard/comm_server,/obj/machinery/light{dir = 8; status = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"n" = (/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"o" = (/obj/item/weapon/paper/crumpled{info = "Sampatti Relay Sif-833
Decryption Key for 12-04-2488:
849B0022FBA920C244
Eyes Only.
The insider who knows all the secrets can bring down Lanka."; name = "Dusty Note"},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"p" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"q" = (/obj/item/stack/rods,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"r" = (/obj/machinery/telecomms/relay{active_power_usage = 1; broadcasting = 0; panel_open = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"s" = (/obj/machinery/telecomms/broadcaster{light_power = 0; on = 0},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"t" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"u" = (/obj/machinery/telecomms/receiver{light_power = 0; on = 0},/obj/structure/cable,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"v" = (/obj/item/weapon/circuitboard/broken,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"w" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"x" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"y" = (/obj/effect/decal/remains/robot,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"z" = (/obj/item/stack/cable_coil{amount = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"A" = (/obj/item/weapon/circuitboard/broken,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/deadBeacon)
-"B" = (/obj/structure/grille/broken,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"C" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"D" = (/obj/item/trash/cigbutt,/obj/item/weapon/tool/wrench,/obj/machinery/light,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"E" = (/obj/item/weapon/material/shard,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"F" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"G" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"H" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
-"I" = (/obj/machinery/access_button/airlock_interior{dir = 4},/turf/simulated/wall/r_wall,/area/submap/cave/deadBeacon)
-"J" = (/obj/structure/grille/broken,/obj/item/stack/rods,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"K" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
-"L" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/submap/cave/deadBeacon)
-"M" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall/r_wall,/area/submap/cave/deadBeacon)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/deadBeacon)
+"c" = (
+/obj/structure/loot_pile/maint/junk,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/deadBeacon)
+"d" = (
+/turf/simulated/wall/r_wall,
+/area/submap/cave/deadBeacon)
+"e" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"f" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"g" = (
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"h" = (
+/turf/simulated/floor/plating{
+ icon_state = "asteroidplating2"
+ },
+/area/submap/cave/deadBeacon)
+"i" = (
+/obj/structure/grille/broken,
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"j" = (
+/obj/structure/table/steel,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"k" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"l" = (
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"m" = (
+/obj/structure/table/steel,
+/obj/item/weapon/circuitboard/comm_server,
+/obj/machinery/light{
+ dir = 8;
+ status = 1
+ },
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"n" = (
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"o" = (
+/obj/item/weapon/paper/crumpled{
+ info = "Sampatti Relay Sif-833
Decryption Key for 12-04-2488:
849B0022FBA920C244
Eyes Only.
The insider who knows all the secrets can bring down Lanka.";
+ name = "Dusty Note"
+ },
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"p" = (
+/obj/structure/door_assembly/door_assembly_ext,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"q" = (
+/obj/item/stack/rods,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"r" = (
+/obj/machinery/telecomms/relay{
+ active_power_usage = 1;
+ broadcasting = 0;
+ panel_open = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2";
+ pixel_y = 1;
+ d2 = 2
+ },
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"s" = (
+/obj/machinery/telecomms/broadcaster{
+ light_power = 0;
+ on = 0
+ },
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"t" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"u" = (
+/obj/machinery/telecomms/receiver{
+ light_power = 0;
+ on = 0
+ },
+/obj/structure/cable,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"v" = (
+/obj/item/weapon/circuitboard/broken,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"w" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"x" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"y" = (
+/obj/effect/decal/remains/robot,
+/obj/effect/decal/cleanable/blood/oil,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"z" = (
+/obj/item/stack/cable_coil{
+ amount = 1
+ },
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"A" = (
+/obj/item/weapon/circuitboard/broken,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/deadBeacon)
+"B" = (
+/obj/structure/grille/broken,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"C" = (
+/obj/structure/loot_pile/maint/junk,
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"D" = (
+/obj/item/trash/cigbutt,
+/obj/item/weapon/tool/wrench,
+/obj/machinery/light,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"E" = (
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"F" = (
+/obj/machinery/recharge_station,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"G" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"H" = (
+/obj/machinery/door/airlock/external,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/deadBeacon)
+"I" = (
+/obj/machinery/access_button/airlock_interior{
+ dir = 4
+ },
+/turf/simulated/wall/r_wall,
+/area/submap/cave/deadBeacon)
+"J" = (
+/obj/structure/grille/broken,
+/obj/item/stack/rods,
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"K" = (
+/obj/structure/girder,
+/turf/simulated/floor/plating,
+/area/submap/cave/deadBeacon)
+"L" = (
+/obj/structure/sign/warning/secure_area,
+/turf/simulated/wall/r_wall,
+/area/submap/cave/deadBeacon)
+"M" = (
+/obj/structure/sign/warning/high_voltage,
+/turf/simulated/wall/r_wall,
+/area/submap/cave/deadBeacon)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaabbaaaaaaaa
-aaaaaabbabbcbaaaaaaa
-aaaaaadefgghidaaaaaa
-aaaaaahjkgglhibaaaaa
-aaaaahdmnoggggbaaaaa
-aaaabnpqnrsgqtbaaaaa
-aaaabngnnuvwnxaaaaaa
-aaaabhdgynnzkxbaaaaa
-aaaaAbBCDnnEFGbaaaaa
-aaaaaadidHHIJdbaaaaa
-aaaaaaabdgnKbbaaaaaa
-aaaaaaaaLHHMaaaaaaaa
-aaaaaaaabbbAaaaaaaaa
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+a
+a
+a
+b
+b
+b
+A
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+a
+a
+h
+n
+n
+h
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+b
+d
+h
+d
+p
+g
+d
+B
+d
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+b
+e
+j
+m
+q
+n
+g
+C
+i
+b
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+f
+k
+n
+n
+n
+y
+D
+d
+d
+L
+b
+a
+a
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+b
+g
+g
+o
+r
+u
+n
+n
+H
+g
+H
+b
+a
+a
+a
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+b
+b
+g
+g
+g
+s
+v
+n
+n
+H
+n
+H
+b
+a
+a
+a
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+b
+c
+h
+l
+g
+g
+w
+z
+E
+I
+K
+M
+A
+a
+a
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+b
+i
+h
+g
+q
+n
+k
+F
+J
+b
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+a
+d
+i
+g
+t
+x
+x
+G
+d
+b
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+a
+b
+b
+b
+a
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm b/maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm
index edf10da6365..e039d912331 100644
--- a/maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm
+++ b/maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm
@@ -1,51 +1,581 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/obj/structure/loot_pile/surface/bones,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"e" = (/mob/living/simple_mob/vore/rabbit/killer,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"g" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"h" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/template_noop)
-"m" = (/obj/item/weapon/bone/skull,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"n" = (/obj/item/clothing/suit/storage/hooded/knight/galahad,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"q" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"r" = (/obj/item/weapon/bone,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"s" = (/obj/item/weapon/bone/ribs,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"t" = (/obj/effect/gibspawner/human,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"u" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"v" = (/obj/item/weapon/grenade/explosive/frag,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"y" = (/obj/item/weapon/bone,/obj/item/weapon/bone/ribs,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"A" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"C" = (/obj/item/clothing/suit/storage/hooded/knight/lancelot,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight,/obj/item/clothing/shoes/knight/black,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"E" = (/obj/item/clothing/suit/armor/combat/crusader/bedevere,/obj/item/clothing/head/helmet/combat/bedevere,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight/black,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"F" = (/obj/item/weapon/bone,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"I" = (/obj/item/clothing/suit/storage/hooded/knight/robin,/obj/effect/decal/cleanable/blood/splatter,/obj/item/clothing/shoes/knight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"J" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone/ribs,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"K" = (/obj/item/clothing/suit/armor/combat/crusader,/obj/item/clothing/head/helmet/combat/crusader,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"L" = (/obj/structure/barricade/cutout/fukken_xeno,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"P" = (/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"Q" = (/obj/item/weapon/bone,/obj/structure/loot_pile/surface/bones,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"T" = (/obj/structure/barricade,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"U" = (/obj/item/weapon/bone/ribs,/obj/item/clothing/suit/storage/hooded/knight,/obj/item/weapon/bone/skull,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight/black,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"V" = (/obj/item/weapon/bone,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"Y" = (/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"e" = (
+/mob/living/simple_mob/vore/rabbit/killer,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"g" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"h" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/template_noop)
+"m" = (
+/obj/item/weapon/bone/skull,
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"n" = (
+/obj/item/clothing/suit/storage/hooded/knight/galahad,
+/obj/effect/decal/cleanable/blood,
+/obj/item/clothing/shoes/knight,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"q" = (
+/obj/effect/decal/cleanable/blood,
+/obj/item/weapon/bone,
+/obj/item/weapon/bone/skull,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"r" = (
+/obj/item/weapon/bone,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"s" = (
+/obj/item/weapon/bone/ribs,
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"t" = (
+/obj/effect/gibspawner/human,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"u" = (
+/obj/effect/decal/cleanable/blood,
+/obj/item/weapon/bone/skull,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"v" = (
+/obj/item/weapon/grenade/explosive/frag,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"y" = (
+/obj/item/weapon/bone,
+/obj/item/weapon/bone/ribs,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"A" = (
+/obj/effect/decal/cleanable/blood,
+/obj/item/weapon/bone,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"C" = (
+/obj/item/clothing/suit/storage/hooded/knight/lancelot,
+/obj/effect/decal/cleanable/blood,
+/obj/item/clothing/shoes/knight,
+/obj/item/clothing/shoes/knight/black,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"E" = (
+/obj/item/clothing/suit/armor/combat/crusader/bedevere,
+/obj/item/clothing/head/helmet/combat/bedevere,
+/obj/effect/decal/cleanable/blood,
+/obj/item/clothing/shoes/knight/black,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"F" = (
+/obj/item/weapon/bone,
+/obj/item/weapon/bone/skull,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"I" = (
+/obj/item/clothing/suit/storage/hooded/knight/robin,
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/item/clothing/shoes/knight,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"J" = (
+/obj/effect/decal/cleanable/blood,
+/obj/item/weapon/bone/ribs,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"K" = (
+/obj/item/clothing/suit/armor/combat/crusader,
+/obj/item/clothing/head/helmet/combat/crusader,
+/obj/effect/decal/cleanable/blood,
+/obj/item/clothing/shoes/knight,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"L" = (
+/obj/structure/barricade/cutout/fukken_xeno,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"P" = (
+/obj/item/weapon/bone/skull,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"Q" = (
+/obj/item/weapon/bone,
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"T" = (
+/obj/structure/barricade,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"U" = (
+/obj/item/weapon/bone/ribs,
+/obj/item/clothing/suit/storage/hooded/knight,
+/obj/item/weapon/bone/skull,
+/obj/effect/decal/cleanable/blood,
+/obj/item/clothing/shoes/knight/black,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"V" = (
+/obj/item/weapon/bone,
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"Y" = (
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
(1,1,1) = {"
-aahhhhhhhhhhhhhhhhaa
-aahhhhhhhhhhhhhhhhaa
-aahhhhhhhhhhhhhhhhaa
-aahhhgggggegtmghhhaa
-ahhhgggggggggEgghhha
-ahhhgsggghhggtgbhhha
-ahhhmIVgghhgmKgghhha
-ahhhgtgggggggggthhha
-ahhhgggUggggggCmhhha
-ahhhgntgggVggggghhha
-ahhhgmggghhggggghhha
-aahhhhggbhhggghhhhaa
-aahhhhgghhhhgghhhhaa
-aahhhhgghhhhgghhhhaa
-aagbhhggvhhvgVhhLgaa
-aaaghhggghhTTThhgaaa
-aaaahhTThhhhYThhaaaa
-aaaamqThhhhhhJbmaaaa
-aaaaguAFhhhhPryraaaa
-aaaaggggQhhrgrPraaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+h
+h
+h
+h
+h
+h
+h
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+g
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+b
+g
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+h
+h
+h
+h
+g
+g
+m
+g
+g
+g
+g
+h
+h
+h
+h
+h
+h
+m
+g
+g
+"}
+(6,1,1) = {"
+h
+h
+h
+g
+g
+s
+I
+t
+g
+n
+m
+h
+h
+h
+h
+h
+h
+q
+u
+g
+"}
+(7,1,1) = {"
+h
+h
+h
+g
+g
+g
+V
+g
+g
+t
+g
+g
+g
+g
+g
+g
+T
+T
+A
+g
+"}
+(8,1,1) = {"
+h
+h
+h
+g
+g
+g
+g
+g
+U
+g
+g
+g
+g
+g
+g
+g
+T
+h
+F
+g
+"}
+(9,1,1) = {"
+h
+h
+h
+g
+g
+g
+g
+g
+g
+g
+g
+b
+h
+h
+v
+g
+h
+h
+h
+Q
+"}
+(10,1,1) = {"
+h
+h
+h
+g
+g
+h
+h
+g
+g
+g
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+"}
+(11,1,1) = {"
+h
+h
+h
+e
+g
+h
+h
+g
+g
+V
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+"}
+(12,1,1) = {"
+h
+h
+h
+g
+g
+g
+g
+g
+g
+g
+g
+g
+h
+h
+v
+T
+h
+h
+h
+r
+"}
+(13,1,1) = {"
+h
+h
+h
+t
+g
+g
+m
+g
+g
+g
+g
+g
+g
+g
+g
+T
+Y
+h
+P
+g
+"}
+(14,1,1) = {"
+h
+h
+h
+m
+E
+t
+K
+g
+g
+g
+g
+g
+g
+g
+V
+T
+T
+J
+r
+r
+"}
+(15,1,1) = {"
+h
+h
+h
+g
+g
+g
+g
+g
+C
+g
+g
+h
+h
+h
+h
+h
+h
+b
+y
+P
+"}
+(16,1,1) = {"
+h
+h
+h
+h
+g
+b
+g
+t
+m
+g
+g
+h
+h
+h
+h
+h
+h
+m
+r
+r
+"}
+(17,1,1) = {"
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+L
+g
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+g
+a
+a
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+h
+h
+h
+h
+h
+h
+h
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/deadspy.dmm b/maps/expedition_vr/beach/submaps/deadspy.dmm
index 5410d8ab2f9..e362c401e62 100644
--- a/maps/expedition_vr/beach/submaps/deadspy.dmm
+++ b/maps/expedition_vr/beach/submaps/deadspy.dmm
@@ -1,32 +1,181 @@
-"a" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/fire/firefighter,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"c" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/effect/decal/cleanable/molten_item,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"d" = (/obj/item/weapon/flamethrower,/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"e" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"f" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"g" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/effect/decal/cleanable/ash,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"h" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"i" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/molten_item,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"j" = (/obj/item/weapon/material/butterfly,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"k" = (/obj/effect/decal/remains/human,/obj/item/weapon/tool/wrench,/obj/item/clothing/head/hardhat,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"l" = (/obj/item/weapon/flame/lighter/zippo,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"m" = (/obj/effect/decal/remains/human,/obj/item/clothing/mask/balaclava,/obj/item/clothing/under/suit_jacket/really_black,/obj/effect/decal/cleanable/ash,/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/ash,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"n" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/ash,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"o" = (/obj/machinery/porta_turret/poi{desc = "Looking at this heavy caliber, tripod-mounted, little ol' number makes you want to square-dance."; lethal = 0; name = "sentry turret"},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"p" = (/obj/item/weapon/deadringer,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"q" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/liquid_fuel,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"r" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/item/weapon/storage/fancy/cigarettes/professionals,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"s" = (/obj/item/weapon/card/emag_broken,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"t" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"u" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/effect/decal/cleanable/ash,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"v" = (/turf/simulated/mineral/cave,/area/submap/deadspy)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/decal/remains/xeno,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/suit/fire/firefighter,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"c" = (
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,
+/obj/effect/decal/cleanable/molten_item,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"d" = (
+/obj/item/weapon/flamethrower,
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"e" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"f" = (
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"g" = (
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,
+/obj/effect/decal/cleanable/ash,
+/obj/random/landmine,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"h" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/random/landmine,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"i" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/effect/decal/cleanable/molten_item,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"j" = (
+/obj/item/weapon/material/butterfly,
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"k" = (
+/obj/effect/decal/remains/human,
+/obj/item/weapon/tool/wrench,
+/obj/item/clothing/head/hardhat,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"l" = (
+/obj/item/weapon/flame/lighter/zippo,
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"m" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/mask/balaclava,
+/obj/item/clothing/under/suit_jacket/really_black,
+/obj/effect/decal/cleanable/ash,
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/effect/decal/cleanable/ash,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"n" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/effect/decal/cleanable/ash,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"o" = (
+/obj/machinery/porta_turret/poi{
+ desc = "Looking at this heavy caliber, tripod-mounted, little ol' number makes you want to square-dance.";
+ lethal = 0;
+ name = "sentry turret"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"p" = (
+/obj/item/weapon/deadringer,
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"q" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/random/landmine,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"r" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/item/weapon/storage/fancy/cigarettes/professionals,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"s" = (
+/obj/item/weapon/card/emag_broken,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"t" = (
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,
+/obj/random/landmine,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"u" = (
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,
+/obj/effect/decal/cleanable/ash,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/deadspy)
+"v" = (
+/turf/simulated/mineral/cave,
+/area/submap/deadspy)
(1,1,1) = {"
-abbbbvv
-bcdefgb
-bfhijfk
-bflmnfo
-vfpqrfs
-vtfuffb
-vvbbbvb
+a
+b
+b
+b
+v
+v
+v
+"}
+(2,1,1) = {"
+b
+c
+f
+f
+f
+t
+v
+"}
+(3,1,1) = {"
+b
+d
+h
+l
+p
+f
+b
+"}
+(4,1,1) = {"
+b
+e
+i
+m
+q
+u
+b
+"}
+(5,1,1) = {"
+b
+f
+j
+n
+r
+f
+b
+"}
+(6,1,1) = {"
+v
+g
+f
+f
+f
+f
+v
+"}
+(7,1,1) = {"
+v
+b
+k
+o
+s
+b
+b
"}
diff --git a/maps/expedition_vr/beach/submaps/digsite.dmm b/maps/expedition_vr/beach/submaps/digsite.dmm
index 5f1d321e083..1ec8bcde489 100644
--- a/maps/expedition_vr/beach/submaps/digsite.dmm
+++ b/maps/expedition_vr/beach/submaps/digsite.dmm
@@ -1,64 +1,618 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/digsite)
-"c" = (/turf/simulated/wall/sandstone,/area/submap/cave/digsite)
-"d" = (/obj/structure/boulder,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
-"e" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"f" = (/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
-"g" = (/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
-"h" = (/obj/item/weapon/ore,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
-"i" = (/obj/structure/bed/alien,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
-"j" = (/obj/structure/cult/talisman,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
-"k" = (/obj/machinery/artifact,/obj/structure/anomaly_container,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
-"l" = (/obj/structure/simple_door/sandstone,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
-"m" = (/obj/structure/loot_pile/surface/alien,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
-"n" = (/mob/living/simple_mob/animal/passive/tindalos,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
-"o" = (/obj/structure/closet/crate/secure/loot,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"p" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"q" = (/obj/effect/floor_decal/asteroid,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"r" = (/obj/structure/anomaly_container,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"s" = (/turf/simulated/wall,/area/submap/cave/digsite)
-"t" = (/obj/item/frame/apc,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
-"u" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"v" = (/obj/structure/table/steel,/obj/item/weapon/storage/excavation,/obj/item/device/measuring_tape,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"w" = (/obj/machinery/power/port_gen/pacman/super,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
-"x" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
-"y" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"z" = (/obj/structure/table/steel,/obj/item/weapon/folder,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"A" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"B" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"C" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
-"D" = (/obj/structure/table/steel,/obj/random/tech_supply,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"E" = (/obj/structure/table/rack,/obj/item/weapon/shovel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"F" = (/obj/structure/boulder,/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"G" = (/obj/structure/boulder,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"H" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
-"I" = (/obj/structure/table/steel,/obj/item/weapon/tool/wrench,/obj/item/weapon/storage/box/samplebags,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"J" = (/obj/structure/table/steel,/obj/item/stack/flag/yellow,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"K" = (/obj/random/toolbox,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"L" = (/obj/structure/closet/crate,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"M" = (/obj/machinery/floodlight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
-"N" = (/obj/structure/ore_box,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"c" = (
+/turf/simulated/wall/sandstone,
+/area/submap/cave/digsite)
+"d" = (
+/obj/structure/boulder,
+/turf/simulated/floor/plating/external,
+/area/submap/cave/digsite)
+"e" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"f" = (
+/turf/simulated/floor/tiled/kafel_full/yellow,
+/area/submap/cave/digsite)
+"g" = (
+/turf/simulated/floor/plating/external,
+/area/submap/cave/digsite)
+"h" = (
+/obj/item/weapon/ore,
+/turf/simulated/floor/plating/external,
+/area/submap/cave/digsite)
+"i" = (
+/obj/structure/bed/alien,
+/turf/simulated/floor/tiled/kafel_full/yellow,
+/area/submap/cave/digsite)
+"j" = (
+/obj/structure/cult/talisman,
+/turf/simulated/floor/tiled/kafel_full/yellow,
+/area/submap/cave/digsite)
+"k" = (
+/obj/machinery/artifact,
+/obj/structure/anomaly_container,
+/turf/simulated/floor/tiled/kafel_full/yellow,
+/area/submap/cave/digsite)
+"l" = (
+/obj/structure/simple_door/sandstone,
+/turf/simulated/floor/tiled/kafel_full/yellow,
+/area/submap/cave/digsite)
+"m" = (
+/obj/structure/loot_pile/surface/alien,
+/turf/simulated/floor/tiled/kafel_full/yellow,
+/area/submap/cave/digsite)
+"n" = (
+/mob/living/simple_mob/animal/passive/tindalos,
+/turf/simulated/floor/tiled/kafel_full/yellow,
+/area/submap/cave/digsite)
+"o" = (
+/obj/structure/closet/crate/secure/loot,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"p" = (
+/obj/item/weapon/ore,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"q" = (
+/obj/effect/floor_decal/asteroid,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"r" = (
+/obj/structure/anomaly_container,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"s" = (
+/turf/simulated/wall,
+/area/submap/cave/digsite)
+"t" = (
+/obj/item/frame/apc,
+/obj/item/weapon/module/power_control,
+/turf/simulated/floor/plating/external,
+/area/submap/cave/digsite)
+"u" = (
+/obj/structure/table/steel,
+/obj/machinery/cell_charger,
+/obj/random/powercell,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"v" = (
+/obj/structure/table/steel,
+/obj/item/weapon/storage/excavation,
+/obj/item/device/measuring_tape,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"w" = (
+/obj/machinery/power/port_gen/pacman/super,
+/obj/structure/cable/yellow{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating/external,
+/area/submap/cave/digsite)
+"x" = (
+/obj/structure/cable/yellow{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating/external,
+/area/submap/cave/digsite)
+"y" = (
+/obj/structure/bed/chair{
+ dir = 4
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"z" = (
+/obj/structure/table/steel,
+/obj/item/weapon/folder,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"A" = (
+/obj/structure/table/rack,
+/obj/item/weapon/pickaxe,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"B" = (
+/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"C" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/floor/plating/external,
+/area/submap/cave/digsite)
+"D" = (
+/obj/structure/table/steel,
+/obj/random/tech_supply,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"E" = (
+/obj/structure/table/rack,
+/obj/item/weapon/shovel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"F" = (
+/obj/structure/boulder,
+/obj/effect/decal/mecha_wreckage/ripley,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"G" = (
+/obj/structure/boulder,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"H" = (
+/obj/structure/loot_pile/maint/junk,
+/turf/simulated/floor/plating/external,
+/area/submap/cave/digsite)
+"I" = (
+/obj/structure/table/steel,
+/obj/item/weapon/tool/wrench,
+/obj/item/weapon/storage/box/samplebags,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"J" = (
+/obj/structure/table/steel,
+/obj/item/stack/flag/yellow,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"K" = (
+/obj/random/toolbox,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"L" = (
+/obj/structure/closet/crate,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"M" = (
+/obj/machinery/floodlight,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
+"N" = (
+/obj/structure/ore_box,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/digsite)
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaa
-aaabbbbbbbbbbbbbbbaa
-aabccccccccdccccceea
-abccffcfffghgcficcea
-abcfffcffjggfcfffcea
-abcfkflffggfffffmcea
-abcfffcffffffgfffcea
-abccffcffffffgnfccea
-abbccccclccfhccggeea
-abbbbboeffffepqeeeea
-abbbbbbeeeeeeeeeeeea
-abbbbbbpeeeeeqereeea
-abbbbsteeuveeeerbeea
-abbbbwxeyzAeqeBbbbea
-abbbbCgeyDEeeeeFbbba
-abeeGHgeqIJeeeqbbbba
-aeeeKeeeeLMeeeNbbeaa
-aaeeeeeeeeeeeeNeeeaa
-aaaaaeeeeeeeeeeeeaaa
-aaaaaaaaaaaaaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+e
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+b
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+e
+e
+e
+a
+a
+"}
+(4,1,1) = {"
+a
+b
+c
+c
+f
+f
+f
+c
+c
+b
+b
+b
+b
+b
+b
+e
+e
+e
+a
+a
+"}
+(5,1,1) = {"
+a
+b
+c
+f
+f
+k
+f
+f
+c
+b
+b
+b
+b
+b
+b
+G
+K
+e
+a
+a
+"}
+(6,1,1) = {"
+a
+b
+c
+f
+f
+f
+f
+f
+c
+b
+b
+b
+s
+w
+C
+H
+e
+e
+e
+a
+"}
+(7,1,1) = {"
+a
+b
+c
+c
+c
+l
+c
+c
+c
+o
+b
+b
+t
+x
+g
+g
+e
+e
+e
+a
+"}
+(8,1,1) = {"
+a
+b
+c
+f
+f
+f
+f
+f
+c
+e
+e
+p
+e
+e
+e
+e
+e
+e
+e
+a
+"}
+(9,1,1) = {"
+a
+b
+c
+f
+f
+f
+f
+f
+l
+f
+e
+e
+e
+y
+y
+q
+e
+e
+e
+a
+"}
+(10,1,1) = {"
+a
+b
+c
+f
+j
+g
+f
+f
+c
+f
+e
+e
+u
+z
+D
+I
+L
+e
+e
+a
+"}
+(11,1,1) = {"
+a
+b
+c
+g
+g
+g
+f
+f
+c
+f
+e
+e
+v
+A
+E
+J
+M
+e
+e
+a
+"}
+(12,1,1) = {"
+a
+b
+d
+h
+g
+f
+f
+f
+f
+f
+e
+e
+e
+e
+e
+e
+e
+e
+e
+a
+"}
+(13,1,1) = {"
+a
+b
+c
+g
+f
+f
+f
+f
+h
+e
+e
+e
+e
+q
+e
+e
+e
+e
+e
+a
+"}
+(14,1,1) = {"
+a
+b
+c
+c
+c
+f
+g
+g
+c
+p
+e
+q
+e
+e
+e
+e
+e
+e
+e
+a
+"}
+(15,1,1) = {"
+a
+b
+c
+f
+f
+f
+f
+n
+c
+q
+e
+e
+e
+B
+e
+q
+N
+N
+e
+a
+"}
+(16,1,1) = {"
+a
+b
+c
+i
+f
+f
+f
+f
+g
+e
+e
+r
+r
+b
+F
+b
+b
+e
+e
+a
+"}
+(17,1,1) = {"
+a
+b
+c
+c
+f
+m
+f
+c
+g
+e
+e
+e
+b
+b
+b
+b
+b
+e
+e
+a
+"}
+(18,1,1) = {"
+a
+b
+e
+c
+c
+c
+c
+c
+e
+e
+e
+e
+e
+b
+b
+b
+e
+e
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+b
+b
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
-
diff --git a/maps/expedition_vr/beach/submaps/excavation1.dmm b/maps/expedition_vr/beach/submaps/excavation1.dmm
index ed191c4c2ee..84484ccd571 100644
--- a/maps/expedition_vr/beach/submaps/excavation1.dmm
+++ b/maps/expedition_vr/beach/submaps/excavation1.dmm
@@ -1,51 +1,361 @@
-"a" = (/turf/simulated/mineral/cave,/area/template_noop)
-"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"c" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"d" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"e" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"f" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"g" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"h" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"i" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"j" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"k" = (/obj/mecha/working/ripley,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"l" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"m" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/tool/drill/bore,/obj/item/weapon/ore/marble,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"n" = (/obj/item/weapon/ore,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"o" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/hardpoint_actuator,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"q" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"r" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/rigged,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"s" = (/obj/item/weapon/ore/marble,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"t" = (/obj/item/weapon/ore/gold,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"u" = (/obj/item/weapon/ore/diamond,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"v" = (/mob/living/simple_mob/mechanical/mining_drone,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"w" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/pickaxe/jackhammer,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"x" = (/obj/structure/table/sifwoodentable,/obj/random/projectile/scrapped_grenadelauncher,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"y" = (/obj/structure/table/sifwoodentable,/obj/random/medical/pillbottle,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"z" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"A" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/mining_scanner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"B" = (/obj/structure/table/sifwoodentable,/obj/random/cigarettes,/obj/random/tool/powermaint,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
-"C" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"D" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"E" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"F" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
-"G" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/cave,
+/area/template_noop)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"c" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"d" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 9
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"e" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"f" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 5
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"g" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 9
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"h" = (
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"i" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"j" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"k" = (
+/obj/mecha/working/ripley,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"l" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 8
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"m" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/mecha_parts/mecha_equipment/tool/drill/bore,
+/obj/item/weapon/ore/marble,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"n" = (
+/obj/item/weapon/ore,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"o" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/mecha_parts/mecha_equipment/hardpoint_actuator,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"p" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 4
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"q" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"r" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/rigged,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"s" = (
+/obj/item/weapon/ore/marble,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"t" = (
+/obj/item/weapon/ore/gold,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"u" = (
+/obj/item/weapon/ore/diamond,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"v" = (
+/mob/living/simple_mob/mechanical/mining_drone,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"w" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/weapon/pickaxe/jackhammer,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"x" = (
+/obj/structure/table/sifwoodentable,
+/obj/random/projectile/scrapped_grenadelauncher,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"y" = (
+/obj/structure/table/sifwoodentable,
+/obj/random/medical/pillbottle,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"z" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/weapon/grenade/chem_grenade/metalfoam,
+/obj/item/weapon/grenade/chem_grenade/metalfoam,
+/obj/item/weapon/grenade/chem_grenade/metalfoam,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"A" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/weapon/mining_scanner,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"B" = (
+/obj/structure/table/sifwoodentable,
+/obj/random/cigarettes,
+/obj/random/tool/powermaint,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/Excavation)
+"C" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 10
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"D" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 2
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"E" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 10
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"F" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 6
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
+"G" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 6
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Excavation)
(1,1,1) = {"
-aabbbbbbbaa
-accdeeefcca
-bcdghhijfcb
-bdghikihjfb
-bliimnoiipb
-blhiqirihpb
-bliniisnhpb
-blhtiuiiipb
-bliviinvhpb
-blhwinixipb
-blhynitzhpb
-bliAiniBhpb
-bliisinihpb
-aCDEniiFDGa
-aabbbbbbbaa
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+"}
+(2,1,1) = {"
+a
+c
+c
+d
+l
+l
+l
+l
+l
+l
+l
+l
+l
+C
+a
+"}
+(3,1,1) = {"
+b
+c
+d
+g
+i
+h
+i
+h
+i
+h
+h
+i
+i
+D
+b
+"}
+(4,1,1) = {"
+b
+d
+g
+h
+i
+i
+n
+t
+v
+w
+y
+A
+i
+E
+b
+"}
+(5,1,1) = {"
+b
+e
+h
+i
+m
+q
+i
+i
+i
+i
+n
+i
+s
+n
+b
+"}
+(6,1,1) = {"
+b
+e
+h
+k
+n
+i
+i
+u
+i
+n
+i
+n
+i
+i
+b
+"}
+(7,1,1) = {"
+b
+e
+i
+i
+o
+r
+s
+i
+n
+i
+t
+i
+n
+i
+b
+"}
+(8,1,1) = {"
+b
+f
+j
+h
+i
+i
+n
+i
+v
+x
+z
+B
+i
+F
+b
+"}
+(9,1,1) = {"
+b
+c
+f
+j
+i
+h
+h
+i
+h
+i
+h
+h
+h
+D
+b
+"}
+(10,1,1) = {"
+a
+c
+c
+f
+p
+p
+p
+p
+p
+p
+p
+p
+p
+G
+a
+"}
+(11,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/lava_trench.dmm b/maps/expedition_vr/beach/submaps/lava_trench.dmm
index 74a497ee469..e9c6006d158 100644
--- a/maps/expedition_vr/beach/submaps/lava_trench.dmm
+++ b/maps/expedition_vr/beach/submaps/lava_trench.dmm
@@ -1,146 +1,2240 @@
-"aa" = (/turf/template_noop,/area/template_noop)
-"ab" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ac" = (/obj/structure/cliff/automatic,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ad" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ae" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"af" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ag" = (/obj/structure/cliff/automatic/corner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ah" = (/obj/structure/fence/end{icon_state = "end"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ai" = (/obj/structure/fence/post{icon_state = "post"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"aj" = (/obj/structure/fence/door/opened,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ak" = (/obj/structure/fence/end{icon_state = "end"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"al" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"am" = (/obj/structure/fence/end{icon_state = "end"; dir = 1},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"an" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"ao" = (/obj/structure/cliff/automatic,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"ap" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aq" = (/obj/structure/sign/warning/lava,/turf/simulated/wall,/area/submap/lava_trench)
-"ar" = (/obj/structure/fence/post,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"as" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"at" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"au" = (/turf/simulated/floor/lava,/area/submap/lava_trench)
-"av" = (/obj/structure/cliff/automatic/corner,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aw" = (/obj/structure/railing{icon_state = "railing0"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ax" = (/obj/structure/catwalk,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"ay" = (/obj/structure/railing{icon_state = "railing0"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"az" = (/obj/structure/fence/door/opened{icon_state = "door_opened"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"aA" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aB" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
-"aC" = (/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop)
-"aD" = (/obj/structure/cliff/automatic,/obj/structure/railing{icon_state = "railing0"; dir = 4},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aE" = (/obj/structure/cliff/automatic,/obj/structure/railing{icon_state = "railing0"; dir = 8},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aF" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aG" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aH" = (/obj/structure/railing{icon_state = "railing0"; dir = 4},/obj/effect/step_trigger/teleporter/offset/east,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aI" = (/obj/structure/catwalk,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aJ" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"aK" = (/obj/structure/railing{icon_state = "railing0"; dir = 8},/obj/effect/step_trigger/teleporter/offset/west,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aL" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"aM" = (/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"aN" = (/obj/machinery/door/airlock/hatch{normalspeed = 0; safe = 0},/obj/effect/map_effect/interval/effect_emitter/sparks,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"aO" = (/turf/simulated/wall/rshull,/area/submap/lava_trench/outpost)
-"aP" = (/obj/machinery/door/airlock/hatch{normalspeed = 0; safe = 0},/obj/effect/map_effect/interval/effect_emitter/sparks,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"aQ" = (/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"aR" = (/obj/effect/floor_decal/corner_oldtile/blue/full{icon_state = "corner_oldtile_full"; dir = 8},/obj/machinery/microscope,/obj/structure/table/standard,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"aS" = (/obj/effect/floor_decal/corner_oldtile/blue/full{icon_state = "corner_oldtile_full"; dir = 8},/obj/structure/table/standard,/obj/random/unidentified_medicine/scientific,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"aT" = (/obj/structure/fence/end,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"aU" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aV" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"aW" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"aX" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aY" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/obj/structure/railing{icon_state = "railing0"; dir = 4},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"aZ" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/obj/structure/railing{icon_state = "railing0"; dir = 8},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"ba" = (/obj/machinery/crystal/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bb" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"bc" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/floor/lava,/area/submap/lava_trench)
-"bd" = (/obj/structure/table/steel,/obj/item/weapon/storage/excavation,/obj/item/device/measuring_tape,/obj/effect/floor_decal/corner_oldtile/purple{icon_state = "corner_oldtile"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"be" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/template_noop)
-"bf" = (/obj/structure/railing,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bg" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/obj/structure/railing,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"bh" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/obj/structure/railing,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"bi" = (/obj/structure/railing,/obj/effect/step_trigger/teleporter/offset/south,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"bj" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/obj/structure/railing,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"bk" = (/obj/structure/catwalk,/obj/structure/railing,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bl" = (/obj/structure/catwalk,/obj/structure/railing,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"bm" = (/obj/structure/fence/door/opened{icon_state = "door_opened"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bn" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bo" = (/obj/effect/floor_decal/corner_oldtile/purple/full{icon_state = "corner_oldtile_full"; dir = 1},/obj/machinery/space_heater,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bp" = (/obj/machinery/floodlight,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bq" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 1},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"br" = (/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 1},/obj/structure/bed/chair/office/light{icon_state = "officechair_white"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bs" = (/turf/simulated/floor/tiled/old_tile/gray,/area/submap/lava_trench/outpost)
-"bt" = (/obj/effect/floor_decal/corner_oldtile/purple{icon_state = "corner_oldtile"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bu" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bv" = (/obj/item/slime_crystal,/obj/item/slime_crystal,/obj/item/slime_crystal,/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 9},/obj/structure/table/standard,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bw" = (/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"bx" = (/obj/machinery/crystal/ice,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"by" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 1},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bz" = (/obj/effect/floor_decal/corner_oldtile{icon_state = "corner_oldtile"; dir = 1},/turf/simulated/floor/tiled/old_tile/gray,/area/submap/lava_trench/outpost)
-"bA" = (/obj/effect/floor_decal/corner_oldtile{icon_state = "corner_oldtile"; dir = 4},/turf/simulated/floor/tiled/old_tile/gray,/area/submap/lava_trench/outpost)
-"bB" = (/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 8},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bC" = (/obj/structure/table/rack,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner_oldtile/purple/full{icon_state = "corner_oldtile_full"; dir = 1},/obj/item/weapon/pickaxe/drill,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bD" = (/obj/effect/step_trigger/teleporter/offset/north,/turf/simulated/floor/lava,/area/submap/lava_trench)
-"bE" = (/obj/machinery/crystal/lava,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"bF" = (/obj/structure/table/rack,/obj/random/tool/powermaint,/obj/random/tool/powermaint,/obj/effect/floor_decal/corner_oldtile/purple{icon_state = "corner_oldtile"; dir = 6},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bG" = (/obj/effect/floor_decal/corner_oldtile/purple,/obj/structure/table/steel,/obj/item/device/xenoarch_multi_tool,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bH" = (/obj/effect/floor_decal/corner_oldtile/purple,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bI" = (/obj/item/device/gps/science{gps_tag = "CRYSTALS"},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bK" = (/obj/effect/floor_decal/corner_oldtile/blue/full,/obj/random/drinkbottle,/obj/random/maintenance/research,/obj/structure/table/standard,/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 8},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bL" = (/obj/structure/flora/pottedplant/crystal,/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 8},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bM" = (/obj/structure/cult/pylon,/obj/effect/floor_decal/industrial/outline,/turf/simulated/floor/tiled/old_tile/gray,/area/submap/lava_trench/outpost)
-"bN" = (/obj/structure/anomaly_container,/obj/machinery/artifact,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bO" = (/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bP" = (/obj/effect/floor_decal/corner_oldtile/purple/full{icon_state = "corner_oldtile_full"; dir = 4},/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bQ" = (/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bR" = (/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 1},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bS" = (/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 1},/obj/structure/loot_pile/surface/medicine_cabinet{pixel_y = 28},/obj/structure/table/standard,/obj/item/device/healthanalyzer/improved,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bT" = (/obj/machinery/suspension_gen{anchored = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bU" = (/obj/machinery/light/small/flicker,/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"bW" = (/obj/structure/anomaly_container,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"bX" = (/obj/effect/floor_decal/corner_oldtile/purple/full{icon_state = "corner_oldtile_full"; dir = 4},/obj/item/weapon/storage/box/samplebags,/obj/structure/table/steel,/obj/item/stack/flag/red,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"bY" = (/obj/machinery/crystal,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"bZ" = (/obj/structure/table/steel,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"ca" = (/obj/structure/table/steel,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"cb" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"ce" = (/obj/effect/floor_decal/corner_oldtile/blue/full,/obj/structure/table/standard,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"ch" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
-"cj" = (/obj/item/clothing/head/bio_hood/anomaly,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"ck" = (/obj/item/clothing/suit/bio_suit/anomaly,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
-"co" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"cp" = (/obj/machinery/light/small/flicker,/obj/structure/closet/crate/secure/loot,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"cq" = (/obj/item/weapon/banner/nt,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"cr" = (/obj/structure/table/steel,/obj/item/weapon/material/shard/phoron,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
-"cs" = (/obj/item/weapon/banner/nt,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/template_noop,
+/area/template_noop)
+"ab" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ac" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ad" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 5
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ae" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"af" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ag" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ah" = (
+/obj/structure/fence/end{
+ icon_state = "end";
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ai" = (
+/obj/structure/fence/post{
+ icon_state = "post";
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"aj" = (
+/obj/structure/fence/door/opened,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ak" = (
+/obj/structure/fence/end{
+ icon_state = "end";
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"al" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"am" = (
+/obj/structure/fence/end{
+ icon_state = "end";
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"an" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 9
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"ao" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"ap" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 5
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aq" = (
+/obj/structure/sign/warning/lava,
+/turf/simulated/wall,
+/area/submap/lava_trench)
+"ar" = (
+/obj/structure/fence/post,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"as" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"at" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 9
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"au" = (
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"av" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aw" = (
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ax" = (
+/obj/structure/catwalk,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"ay" = (
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"az" = (
+/obj/structure/fence/door/opened{
+ icon_state = "door_opened";
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"aA" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 8
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aB" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/template_noop)
+"aC" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/template_noop)
+"aD" = (
+/obj/structure/cliff/automatic,
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 4
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aE" = (
+/obj/structure/cliff/automatic,
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 8
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aF" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 10
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aG" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 10
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aH" = (
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 4
+ },
+/obj/effect/step_trigger/teleporter/offset/east,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aI" = (
+/obj/structure/catwalk,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aJ" = (
+/obj/structure/ore_box,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"aK" = (
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 8
+ },
+/obj/effect/step_trigger/teleporter/offset/west,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aL" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"aM" = (
+/obj/machinery/light/small/flicker{
+ icon_state = "bulb1";
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"aN" = (
+/obj/machinery/door/airlock/hatch{
+ normalspeed = 0;
+ safe = 0
+ },
+/obj/effect/map_effect/interval/effect_emitter/sparks,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"aO" = (
+/turf/simulated/wall/rshull,
+/area/submap/lava_trench/outpost)
+"aQ" = (
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"aR" = (
+/obj/effect/floor_decal/corner_oldtile/blue/full{
+ icon_state = "corner_oldtile_full";
+ dir = 8
+ },
+/obj/machinery/microscope,
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"aS" = (
+/obj/effect/floor_decal/corner_oldtile/blue/full{
+ icon_state = "corner_oldtile_full";
+ dir = 8
+ },
+/obj/structure/table/standard,
+/obj/random/unidentified_medicine/scientific,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"aT" = (
+/obj/structure/fence/end,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"aU" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 2
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aV" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"aW" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"aX" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 6
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aY" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 2
+ },
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 4
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"aZ" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 2
+ },
+/obj/structure/railing{
+ icon_state = "railing0";
+ dir = 8
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"ba" = (
+/obj/machinery/crystal/lava,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bb" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 4
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"bc" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 6
+ },
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"bd" = (
+/obj/structure/table/steel,
+/obj/item/weapon/storage/excavation,
+/obj/item/device/measuring_tape,
+/obj/effect/floor_decal/corner_oldtile/purple{
+ icon_state = "corner_oldtile";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"be" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/template_noop)
+"bf" = (
+/obj/structure/railing,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bg" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 10
+ },
+/obj/structure/railing,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"bh" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 10
+ },
+/obj/structure/railing,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"bi" = (
+/obj/structure/railing,
+/obj/effect/step_trigger/teleporter/offset/south,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"bj" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 4
+ },
+/obj/structure/railing,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"bk" = (
+/obj/structure/catwalk,
+/obj/structure/railing,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bl" = (
+/obj/structure/catwalk,
+/obj/structure/railing,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"bm" = (
+/obj/structure/fence/door/opened{
+ icon_state = "door_opened";
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bn" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 2
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bo" = (
+/obj/effect/floor_decal/corner_oldtile/purple/full{
+ icon_state = "corner_oldtile_full";
+ dir = 1
+ },
+/obj/machinery/space_heater,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bp" = (
+/obj/machinery/floodlight,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bq" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/machinery/light/small/flicker{
+ icon_state = "bulb1";
+ dir = 1
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"br" = (
+/obj/effect/floor_decal/corner_oldtile/blue{
+ icon_state = "corner_oldtile";
+ dir = 1
+ },
+/obj/structure/bed/chair/office/light{
+ icon_state = "officechair_white";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bs" = (
+/turf/simulated/floor/tiled/old_tile/gray,
+/area/submap/lava_trench/outpost)
+"bt" = (
+/obj/effect/floor_decal/corner_oldtile/purple{
+ icon_state = "corner_oldtile";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bu" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bv" = (
+/obj/item/slime_crystal,
+/obj/item/slime_crystal,
+/obj/item/slime_crystal,
+/obj/effect/floor_decal/corner_oldtile/blue{
+ icon_state = "corner_oldtile";
+ dir = 9
+ },
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bw" = (
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"bx" = (
+/obj/machinery/crystal/ice,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"by" = (
+/obj/machinery/ai_status_display{
+ pixel_y = 32
+ },
+/obj/machinery/light/small/flicker{
+ icon_state = "bulb1";
+ dir = 1
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bz" = (
+/obj/effect/floor_decal/corner_oldtile{
+ icon_state = "corner_oldtile";
+ dir = 1
+ },
+/turf/simulated/floor/tiled/old_tile/gray,
+/area/submap/lava_trench/outpost)
+"bA" = (
+/obj/effect/floor_decal/corner_oldtile{
+ icon_state = "corner_oldtile";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/old_tile/gray,
+/area/submap/lava_trench/outpost)
+"bB" = (
+/obj/effect/floor_decal/corner_oldtile/blue{
+ icon_state = "corner_oldtile";
+ dir = 8
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bC" = (
+/obj/structure/table/rack,
+/obj/item/weapon/shovel,
+/obj/effect/floor_decal/corner_oldtile/purple/full{
+ icon_state = "corner_oldtile_full";
+ dir = 1
+ },
+/obj/item/weapon/pickaxe/drill,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bD" = (
+/obj/effect/step_trigger/teleporter/offset/north,
+/turf/simulated/floor/lava,
+/area/submap/lava_trench)
+"bE" = (
+/obj/machinery/crystal/lava,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"bF" = (
+/obj/structure/table/rack,
+/obj/random/tool/powermaint,
+/obj/random/tool/powermaint,
+/obj/effect/floor_decal/corner_oldtile/purple{
+ icon_state = "corner_oldtile";
+ dir = 6
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bG" = (
+/obj/effect/floor_decal/corner_oldtile/purple,
+/obj/structure/table/steel,
+/obj/item/device/xenoarch_multi_tool,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bH" = (
+/obj/effect/floor_decal/corner_oldtile/purple,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bI" = (
+/obj/item/device/gps/science{
+ gps_tag = "CRYSTALS"
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bK" = (
+/obj/effect/floor_decal/corner_oldtile/blue/full,
+/obj/random/drinkbottle,
+/obj/random/maintenance/research,
+/obj/structure/table/standard,
+/obj/machinery/light/small/flicker{
+ icon_state = "bulb1";
+ dir = 8
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bL" = (
+/obj/structure/flora/pottedplant/crystal,
+/obj/effect/floor_decal/corner_oldtile/blue{
+ icon_state = "corner_oldtile";
+ dir = 8
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bM" = (
+/obj/structure/cult/pylon,
+/obj/effect/floor_decal/industrial/outline,
+/turf/simulated/floor/tiled/old_tile/gray,
+/area/submap/lava_trench/outpost)
+"bN" = (
+/obj/structure/anomaly_container,
+/obj/machinery/artifact,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bO" = (
+/obj/machinery/light/small/flicker{
+ icon_state = "bulb1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bP" = (
+/obj/effect/floor_decal/corner_oldtile/purple/full{
+ icon_state = "corner_oldtile_full";
+ dir = 4
+ },
+/obj/structure/table/steel,
+/obj/machinery/recharger,
+/obj/machinery/light/small/flicker{
+ icon_state = "bulb1";
+ dir = 4
+ },
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bQ" = (
+/obj/machinery/light/small/flicker{
+ icon_state = "bulb1";
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bR" = (
+/obj/machinery/light/small/flicker{
+ icon_state = "bulb1";
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bS" = (
+/obj/effect/floor_decal/corner_oldtile/blue{
+ icon_state = "corner_oldtile";
+ dir = 1
+ },
+/obj/structure/loot_pile/surface/medicine_cabinet{
+ pixel_y = 28
+ },
+/obj/structure/table/standard,
+/obj/item/device/healthanalyzer/improved,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bT" = (
+/obj/machinery/suspension_gen{
+ anchored = 1
+ },
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bU" = (
+/obj/machinery/light/small/flicker,
+/obj/structure/ore_box,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"bW" = (
+/obj/structure/anomaly_container,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"bX" = (
+/obj/effect/floor_decal/corner_oldtile/purple/full{
+ icon_state = "corner_oldtile_full";
+ dir = 4
+ },
+/obj/item/weapon/storage/box/samplebags,
+/obj/structure/table/steel,
+/obj/item/stack/flag/red,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"bY" = (
+/obj/machinery/crystal,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"bZ" = (
+/obj/structure/table/steel,
+/obj/item/weapon/stock_parts/subspace/crystal,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"ca" = (
+/obj/structure/table/steel,
+/obj/item/stack/material/diamond,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"cb" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"ce" = (
+/obj/effect/floor_decal/corner_oldtile/blue/full,
+/obj/structure/table/standard,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"ch" = (
+/obj/structure/loot_pile/maint/trash,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
+"cj" = (
+/obj/item/clothing/head/bio_hood/anomaly,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"ck" = (
+/obj/item/clothing/suit/bio_suit/anomaly,
+/turf/simulated/floor/tiled/old_tile,
+/area/submap/lava_trench/outpost)
+"co" = (
+/obj/machinery/floodlight,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"cp" = (
+/obj/machinery/light/small/flicker,
+/obj/structure/closet/crate/secure/loot,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"cq" = (
+/obj/item/weapon/banner/nt,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"cr" = (
+/obj/structure/table/steel,
+/obj/item/weapon/material/shard/phoron,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/lava_trench)
+"cs" = (
+/obj/item/weapon/banner/nt,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/lava_trench)
(1,1,1) = {"
-aBaBabacacacacacacacacacacadaBaBaBaBaBaCaCaCaBaBaBaBaBaBaBaBaBaBaBaBbebebeaaaaaaaaaaaaaaaaaaaaaa
-aBabaeafafafafafafafafafafagacacacacahaiajaiakacadaBaBaBaBaBaBaBaBaBaBbebebeaaaaaaaaaaaaaaaaaaaa
-aBalafafafafafafafafafafafafafafafafafafafafafafagacacacacacacacadaBaBaBbebebeaaaaaaaaaaaaaaaaaa
-aBamafafbaanaoaoaoaoapafafafafafafafafafafafafaqafafafafafafafafagadaBaBaBbebebeaaaaaaaaaaaaaaaa
-afarafafanatauauauauavaoaoaoaoaoaoaoapawaxayafafafafafafafafafafafagadaBaBaBbebebeaaaaaaaaaaaaaa
-afazafafaAauauauauauauauauauauauauauavaDaxaEaoaoaoaoaoaoaoapafafafafagadaBaBbebebebebebebebeaaaa
-afarafafaFaGauauauauauauauauauauauauauaHaxaKauauauauauauauavapafafafafaLaBaBaBaBbebebebebebebeaa
-aBaTafafafaFaUaGauauauauauauauafauauauaHaIaKauauauauauauauauavapafafafaLaBaBaBaBaBaBaBaBaBbebeaa
-aBalafafafafafaFaGauafauauauauauauauauaHaIaKauauafauauafafauauavapafafagacacadaBaBaBaBaBaBbebeaa
-aBaVaWafafaqafafaFaUafaUaGauauauauauaXaYaIaZaGauauauauauafbaauaubbafafafafafagacacacadaBaBaBaBaB
-aBaBaVaWafafafafafafafafaFaUaUaUaUaUbcawaxayaFaUaUaGauauauauauaubbafafafafafafafafafamaBaBaBaBaB
-aBaBaBalafafafafafafafafafafafafafafafafbwafafafbfbgbhbibibibibibjbfbfafafbaafafafafarafaBaBaBaB
-beaBaBalafafafafbwbwbwbwbwafafafafafafafbwbwbwbwbkbkblblblblblblblbkbkafafafafafafafbmafaBaBaBaB
-beaBaBalafafafafbwbxbEbYbwbwbwbwbwbwbwbwbwbwbwafafafaAbDbDbDbDbDavapafafafafafafafafarafaBaBaBaB
-beaBaBalafafafafbwbZcacrbwbwbwcqbUaJaOaNaOcocpcsafaqaAauauauauauaubbafafafafafafafafaTafaBaBaBaB
-beaBaBalafafafafbwbwbwbwbwbwaJaOaOaOaObOaOaOaOaOafafaFaGauauafauaubbafafaqbpafafafafaLafaBaBaBaB
-beaBaBaVbnbnaWafafbwbwbwbwbwaOaOaSbSaOaPaObdboaOaOafafaAauauauauauavapafafafafafafafaLaBaBaBaBaB
-beaBaBaBaBaBalafafafafafafafaOaRbraQbqaQbycjbtbCaOafafaAauauauauauauavapafafafbaafafaLaBaBbeaBaB
-beaBaBaBaBaBalafafafafafafaMaObvaQaQaQaQaQcbbIbFaObQafaFaGauauauauauaubbafafafafafafaLaBaBbebebe
-bebebebeaBaBaVbnbnbnbnaWafafaOcebBaQaQbTckaQbHbXaOafafafaAauauafauauaubbafafafafafafaLaBaBbebeaa
-bebebebeaBaBaBaBaBaBaBalafafaOaObKbLbzbsbAbGbPaOaOafafafaAauauafbaauaubbafafbaafafafaLaBaBbebeaa
-aaaabebebeaBaBaBaBaBaBalafafafaOaOaObsbMbsaOaOaObNafafafafafauafafauaubbafafafafafbuasaBaBbebeaa
-aaaaaabebebebebebeaBaBaVbnaWafafchaOaOaOaOaObNbWafafafafaAauauauafauaubbafafafbubnasaBaBaBbebeaa
-aaaaaaaabebebebebeaBaBaBaBalafafafafafbRafafafafafafafafaAauauauauauauavapafafaLaBaBaBaBbebebeaa
-aaaaaaaaaaaaaabebebeaBaBaBalafafafafafafafafafafafafafafaFaGauauauauauaubbafafaLaBaBaBbebebeaaaa
-aaaaaaaaaaaaaaaabebebebeaBaVbnbnbnbnbnbnbnbnbnbnbnaWafafafaFaGauauauauaubbafafaLaBaBbebebeaaaaaa
-aaaaaaaaaaaaaaaaaabebebeaBaBaBaBaBaBaBaBaBaBaBaBaBalafafafafaFaUaUaUaUaUbcafafaLaBaBbebeaaaaaaaa
-aaaaaaaaaaaaaaaaaaaabebebeaBaBaBaBaBaBaBaBaBaBaBaBaVbnaWafafafafafafafafafafafaLaBaBbebeaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaabebebebebebebebebebebebeaBaBaBaBaVaWafafafafafafafafafafaLaBaBbebeaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaabebebebebebebebebebebebeaBaBaBaBaVbnbnbnbnahaiajaiakbnasaBaBbebeaaaaaaaa
+aB
+aB
+aB
+aB
+af
+af
+af
+aB
+aB
+aB
+aB
+aB
+be
+be
+be
+be
+be
+be
+be
+be
+be
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aB
+ab
+al
+am
+ar
+az
+ar
+aT
+al
+aV
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+be
+be
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(3,1,1) = {"
+ab
+ae
+af
+af
+af
+af
+af
+af
+af
+aW
+aV
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+be
+be
+be
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(4,1,1) = {"
+ac
+af
+af
+af
+af
+af
+af
+af
+af
+af
+aW
+al
+al
+al
+al
+al
+aV
+aB
+aB
+be
+be
+be
+be
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(5,1,1) = {"
+ac
+af
+af
+ba
+an
+aA
+aF
+af
+af
+af
+af
+af
+af
+af
+af
+af
+bn
+aB
+aB
+aB
+aB
+be
+be
+be
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(6,1,1) = {"
+ac
+af
+af
+an
+at
+au
+aG
+aF
+af
+aq
+af
+af
+af
+af
+af
+af
+bn
+aB
+aB
+aB
+aB
+aB
+be
+be
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(7,1,1) = {"
+ac
+af
+af
+ao
+au
+au
+au
+aU
+af
+af
+af
+af
+af
+af
+af
+af
+aW
+al
+al
+aV
+aB
+aB
+be
+be
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(8,1,1) = {"
+ac
+af
+af
+ao
+au
+au
+au
+aG
+aF
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+bn
+aB
+aB
+be
+be
+be
+aa
+aa
+aa
+aa
+aa
+"}
+(9,1,1) = {"
+ac
+af
+af
+ao
+au
+au
+au
+au
+aG
+aF
+af
+af
+bw
+bw
+bw
+bw
+af
+af
+af
+bn
+aB
+aB
+be
+be
+be
+be
+aa
+aa
+aa
+aa
+"}
+(10,1,1) = {"
+ac
+af
+af
+ao
+au
+au
+au
+au
+au
+aU
+af
+af
+bw
+bx
+bZ
+bw
+bw
+af
+af
+bn
+aB
+aB
+aB
+aB
+be
+be
+be
+aa
+aa
+aa
+"}
+(11,1,1) = {"
+ac
+af
+af
+ap
+av
+au
+au
+au
+af
+af
+af
+af
+bw
+bE
+ca
+bw
+bw
+af
+af
+bn
+aB
+aB
+aB
+aB
+aB
+be
+be
+be
+aa
+aa
+"}
+(12,1,1) = {"
+ac
+af
+af
+af
+ao
+au
+au
+au
+au
+aU
+af
+af
+bw
+bY
+cr
+bw
+bw
+af
+af
+aW
+al
+al
+aV
+aB
+aB
+be
+be
+be
+be
+aa
+"}
+(13,1,1) = {"
+ac
+af
+af
+af
+ao
+au
+au
+au
+au
+aG
+aF
+af
+bw
+bw
+bw
+bw
+bw
+af
+af
+af
+af
+af
+bn
+aB
+aB
+aB
+aB
+be
+be
+be
+"}
+(14,1,1) = {"
+ad
+ag
+af
+af
+ao
+au
+au
+au
+au
+au
+aU
+af
+af
+bw
+bw
+bw
+bw
+af
+aM
+af
+af
+af
+aW
+al
+al
+aV
+aB
+aB
+be
+be
+"}
+(15,1,1) = {"
+aB
+ac
+af
+af
+ao
+au
+au
+au
+au
+au
+aU
+af
+af
+bw
+bw
+aJ
+aO
+aO
+aO
+aO
+aO
+af
+af
+af
+af
+bn
+aB
+aB
+be
+be
+"}
+(16,1,1) = {"
+aB
+ac
+af
+af
+ao
+au
+au
+af
+au
+au
+aU
+af
+af
+bw
+cq
+aO
+aO
+aR
+bv
+ce
+aO
+aO
+af
+af
+af
+bn
+aB
+aB
+be
+be
+"}
+(17,1,1) = {"
+aB
+ac
+af
+af
+ao
+au
+au
+au
+au
+au
+aU
+af
+af
+bw
+bU
+aO
+aS
+br
+aQ
+bB
+bK
+aO
+ch
+af
+af
+bn
+aB
+aB
+be
+be
+"}
+(18,1,1) = {"
+aB
+ac
+af
+af
+ao
+au
+au
+au
+au
+au
+aU
+af
+af
+bw
+aJ
+aO
+bS
+aQ
+aQ
+aQ
+bL
+aO
+aO
+af
+af
+bn
+aB
+aB
+be
+be
+"}
+(19,1,1) = {"
+aB
+ah
+af
+af
+ap
+av
+au
+au
+au
+aX
+bc
+af
+af
+bw
+aO
+aO
+aO
+bq
+aQ
+aQ
+bz
+bs
+aO
+af
+af
+bn
+aB
+aB
+be
+be
+"}
+(20,1,1) = {"
+aC
+ai
+af
+af
+aw
+aD
+aH
+aH
+aH
+aY
+aw
+af
+af
+bw
+aN
+bO
+aN
+aQ
+aQ
+bT
+bs
+bM
+aO
+bR
+af
+bn
+aB
+aB
+be
+be
+"}
+(21,1,1) = {"
+aC
+aj
+af
+af
+ax
+ax
+ax
+aI
+aI
+aI
+ax
+bw
+bw
+bw
+aO
+aO
+aO
+by
+aQ
+ck
+bA
+bs
+aO
+af
+af
+bn
+aB
+aB
+be
+be
+"}
+(22,1,1) = {"
+aC
+ai
+af
+af
+ay
+aE
+aK
+aK
+aK
+aZ
+ay
+af
+bw
+bw
+co
+aO
+bd
+cj
+cb
+aQ
+bG
+aO
+aO
+af
+af
+bn
+aB
+aB
+be
+be
+"}
+(23,1,1) = {"
+aB
+ak
+af
+af
+af
+ao
+au
+au
+au
+aG
+aF
+af
+bw
+bw
+cp
+aO
+bo
+bt
+bI
+bH
+bP
+aO
+bN
+af
+af
+bn
+aB
+aB
+be
+be
+"}
+(24,1,1) = {"
+aB
+ac
+af
+aq
+af
+ao
+au
+au
+au
+au
+aU
+af
+bw
+af
+cs
+aO
+aO
+bC
+bF
+bX
+aO
+aO
+bW
+af
+af
+bn
+aB
+aB
+aB
+be
+"}
+(25,1,1) = {"
+aB
+ad
+ag
+af
+af
+ao
+au
+au
+af
+au
+aU
+bf
+bk
+af
+af
+af
+aO
+aO
+aO
+aO
+aO
+bN
+af
+af
+af
+bn
+aB
+aB
+aB
+aB
+"}
+(26,1,1) = {"
+aB
+aB
+ac
+af
+af
+ao
+au
+au
+au
+au
+aG
+bg
+bk
+af
+aq
+af
+af
+af
+bQ
+af
+af
+af
+af
+af
+af
+aW
+al
+aV
+aB
+aB
+"}
+(27,1,1) = {"
+aB
+aB
+ac
+af
+af
+ao
+au
+au
+au
+au
+au
+bh
+bl
+aA
+aA
+aF
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+bn
+aB
+aB
+"}
+(28,1,1) = {"
+aB
+aB
+ac
+af
+af
+ao
+au
+au
+af
+au
+au
+bi
+bl
+bD
+au
+aG
+aA
+aA
+aF
+af
+af
+af
+af
+af
+af
+af
+af
+aW
+aV
+aB
+"}
+(29,1,1) = {"
+aB
+aB
+ac
+af
+af
+ao
+au
+au
+af
+af
+au
+bi
+bl
+bD
+au
+au
+au
+au
+aG
+aA
+aA
+af
+aA
+aA
+aF
+af
+af
+af
+aW
+aV
+"}
+(30,1,1) = {"
+aB
+aB
+ac
+af
+af
+ap
+av
+au
+au
+ba
+au
+bi
+bl
+bD
+au
+au
+au
+au
+au
+au
+au
+af
+au
+au
+aG
+aF
+af
+af
+af
+bn
+"}
+(31,1,1) = {"
+aB
+aB
+ac
+af
+af
+af
+ap
+av
+au
+au
+au
+bi
+bl
+bD
+au
+af
+au
+au
+au
+au
+au
+au
+au
+au
+au
+aG
+aF
+af
+af
+bn
+"}
+(32,1,1) = {"
+aB
+aB
+ac
+af
+af
+af
+af
+ap
+av
+au
+au
+bi
+bl
+bD
+au
+au
+au
+au
+au
+af
+af
+af
+au
+au
+au
+au
+aU
+af
+af
+bn
+"}
+(33,1,1) = {"
+aB
+aB
+ad
+ag
+af
+af
+af
+af
+ap
+bb
+bb
+bj
+bl
+av
+au
+au
+au
+au
+au
+au
+ba
+af
+af
+au
+au
+au
+aU
+af
+af
+bn
+"}
+(34,1,1) = {"
+aB
+aB
+aB
+ad
+ag
+af
+af
+af
+af
+af
+af
+bf
+bk
+ap
+bb
+bb
+av
+au
+au
+au
+au
+au
+au
+au
+au
+au
+aU
+af
+af
+ah
+"}
+(35,1,1) = {"
+be
+aB
+aB
+aB
+ad
+ag
+af
+af
+af
+af
+af
+bf
+bk
+af
+af
+af
+ap
+av
+au
+au
+au
+au
+au
+au
+au
+au
+aU
+af
+af
+ai
+"}
+(36,1,1) = {"
+be
+be
+aB
+aB
+aB
+ad
+aL
+aL
+ag
+af
+af
+af
+af
+af
+af
+af
+af
+ap
+bb
+bb
+bb
+bb
+bb
+av
+au
+au
+aU
+af
+af
+aj
+"}
+(37,1,1) = {"
+be
+be
+be
+aB
+aB
+aB
+aB
+aB
+ac
+af
+af
+af
+af
+af
+af
+aq
+af
+af
+af
+af
+af
+af
+af
+ap
+bb
+bb
+bc
+af
+af
+ai
+"}
+(38,1,1) = {"
+aa
+be
+be
+be
+aB
+aB
+aB
+aB
+ac
+af
+af
+ba
+af
+af
+af
+bp
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+ak
+"}
+(39,1,1) = {"
+aa
+aa
+be
+be
+be
+be
+aB
+aB
+ad
+ag
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+ba
+af
+af
+af
+af
+af
+af
+af
+af
+bn
+"}
+(40,1,1) = {"
+aa
+aa
+aa
+be
+be
+be
+aB
+aB
+aB
+ac
+af
+af
+af
+af
+af
+af
+af
+ba
+af
+af
+af
+af
+bu
+aL
+aL
+aL
+aL
+aL
+aL
+as
+"}
+(41,1,1) = {"
+aa
+aa
+aa
+aa
+be
+be
+be
+aB
+aB
+ac
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+bn
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+"}
+(42,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+be
+be
+aB
+aB
+ac
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+af
+bu
+as
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+"}
+(43,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+be
+be
+aB
+aB
+ad
+am
+ar
+bm
+ar
+aT
+aL
+aL
+aL
+aL
+aL
+aL
+as
+aB
+aB
+aB
+be
+be
+be
+be
+be
+"}
+(44,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+be
+be
+aB
+aB
+aB
+aB
+af
+af
+af
+af
+af
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+be
+be
+be
+be
+be
+be
+"}
+(45,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+be
+be
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+be
+be
+be
+aa
+aa
+aa
+aa
+"}
+(46,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+be
+be
+be
+be
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+be
+be
+be
+be
+be
+be
+be
+be
+aa
+aa
+aa
+aa
+aa
+"}
+(47,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+be
+be
+be
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+be
+be
+be
+be
+be
+be
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(48,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+be
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
"}
diff --git a/maps/expedition_vr/beach/submaps/mountains.dm b/maps/expedition_vr/beach/submaps/mountains.dm
index 6766d3465ee..9150c690c28 100644
--- a/maps/expedition_vr/beach/submaps/mountains.dm
+++ b/maps/expedition_vr/beach/submaps/mountains.dm
@@ -68,82 +68,82 @@
/datum/map_template/surface/mountains/normal/deadBeacon
name = "Abandoned Relay"
desc = "An unregistered comms relay, abandoned to the elements."
- mappath = 'maps/submaps/surface_submaps/mountains/deadBeacon.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/deadBeacon.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/prepper1
name = "Prepper Bunker"
desc = "A little hideaway for someone with more time and money than sense."
- mappath = 'maps/submaps/surface_submaps/mountains/prepper1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/prepper1.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/qshuttle
name = "Quarantined Shuttle"
desc = "An emergency landing turned viral outbreak turned tragedy."
- mappath = 'maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/quarantineshuttle.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/Mineshaft1
name = "Abandoned Mineshaft 1"
desc = "An abandoned minning tunnel from a lost money making effort."
- mappath = 'maps/submaps/surface_submaps/mountains/Mineshaft1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/Mineshaft1.dmm'
cost = 5
/datum/map_template/surface/mountains/normal/crystal1
name = "Crystal Cave 1"
desc = "A small cave with glowing gems and diamonds."
- mappath = 'maps/submaps/surface_submaps/mountains/crystal1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/crystal1.dmm'
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crystal2
name = "Crystal Cave 2"
desc = "A moderate sized cave with glowing gems and diamonds."
- mappath = 'maps/submaps/surface_submaps/mountains/crystal2.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/crystal2.dmm'
cost = 10
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crystal2
name = "Crystal Cave 3"
desc = "A large spiral of crystals with diamonds in the center."
- mappath = 'maps/submaps/surface_submaps/mountains/crystal3.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/crystal3.dmm'
cost = 15
/datum/map_template/surface/mountains/normal/lost_explorer
name = "Lost Explorer"
desc = "The remains of an explorer who rotted away ages ago, and their equipment."
- mappath = 'maps/submaps/surface_submaps/mountains/lost_explorer.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/lost_explorer.dmm'
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/Rockb1
name = "Rocky Base 1"
desc = "Someones underground hidey hole"
- mappath = 'maps/submaps/surface_submaps/mountains/Rockb1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/Rockb1.dmm'
cost = 15
/datum/map_template/surface/mountains/normal/corgiritual
name = "Dark Ritual"
desc = "Who put all these plushies here? What are they doing?"
- mappath = 'maps/submaps/surface_submaps/mountains/ritual.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/ritual.dmm'
cost = 15
/datum/map_template/surface/mountains/normal/abandonedtemple
name = "Abandoned Temple"
desc = "An ancient temple, long since abandoned. Perhaps alien in origin?"
- mappath = 'maps/submaps/surface_submaps/mountains/temple.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/temple.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/digsite
name = "Dig Site"
desc = "A small abandoned dig site."
- mappath = 'maps/submaps/surface_submaps/mountains/digsite.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/digsite.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/vault1
name = "Mine Vault 1"
desc = "A small vault with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault1.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -151,7 +151,7 @@
/datum/map_template/surface/mountains/normal/vault2
name = "Mine Vault 2"
desc = "A small vault with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault2.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -159,56 +159,56 @@
/datum/map_template/surface/mountains/normal/vault3
name = "Mine Vault 3"
desc = "A small vault with potential loot. Also a horrible suprise."
- mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault3.dmm'
cost = 15
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/IceCave1A
name = "Ice Cave 1A"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/submaps/surface_submaps/mountains/IceCave1A.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/IceCave1A.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/IceCave1B
name = "Ice Cave 1B"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/submaps/surface_submaps/mountains/IceCave1B.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/IceCave1B.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/IceCave1C
name = "Ice Cave 1C"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/submaps/surface_submaps/mountains/IceCave1C.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/IceCave1C.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/SwordCave
name = "Cursed Sword Cave"
desc = "An underground lake. The sword on the lake's island holds a terrible secret."
- mappath = 'maps/submaps/surface_submaps/mountains/SwordCave.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/SwordCave.dmm'
/datum/map_template/surface/mountains/normal/supplydrop1
name = "Supply Drop 1"
desc = "A drop pod that landed deep within the mountains."
- mappath = 'maps/submaps/surface_submaps/mountains/SupplyDrop1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/SupplyDrop1.dmm'
cost = 10
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crashedcontainmentshuttle
name = "Crashed Cargo Shuttle"
desc = "A severely damaged military shuttle, its cargo seems to remain intact."
- mappath = 'maps/submaps/surface_submaps/mountains/crashedcontainmentshuttle.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm'
cost = 30
/datum/map_template/surface/mountains/normal/deadspy
name = "Spy Remains"
desc = "W+M1 = Salt."
- mappath = 'maps/submaps/surface_submaps/mountains/deadspy.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/deadspy.dmm'
cost = 15
/datum/map_template/surface/mountains/normal/geyser1
name = "Ore-Rich Geyser"
desc = "A subterranean geyser that produces steam. This one has a particularly abundant amount of materials surrounding it."
- mappath = 'maps/submaps/surface_submaps/mountains/Geyser1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/Geyser1.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -216,7 +216,7 @@
/datum/map_template/surface/mountains/normal/geyser2
name = "Fenced Geyser"
desc = "A subterranean geyser that produces steam. This one has a damaged fence surrounding it."
- mappath = 'maps/submaps/surface_submaps/mountains/Geyser2.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/Geyser2.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -224,7 +224,7 @@
/datum/map_template/surface/mountains/normal/geyser3
name = "Magmatic Geyser"
desc = "A subterranean geyser that produces incendiary gas. It is recessed into the ground, and filled with magma. It's a relatively dormant volcano."
- mappath = 'maps/submaps/surface_submaps/mountains/Geyser2.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/Geyser2.dmm'
cost = 10
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -232,7 +232,7 @@
/datum/map_template/surface/mountains/normal/cliff1
name = "Ore-Topped Cliff"
desc = "A raised area of rock created by volcanic forces."
- mappath = 'maps/submaps/surface_submaps/mountains/Cliff1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/Cliff1.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Underground Cliffs"
@@ -240,7 +240,7 @@
/datum/map_template/surface/mountains/normal/deadly_rabbit // VOREStation Edit
name = "The Killer Rabbit"
desc = "A cave where the Knights of the Round have fallen to a murderous Rabbit."
- mappath = 'maps/submaps/surface_submaps/mountains/deadly_rabbit_vr.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm'
cost = 5
allow_duplicates = FALSE
@@ -252,46 +252,46 @@
/datum/map_template/surface/mountains/deep/lost_explorer
name = "Lost Explorer, Deep"
desc = "The remains of an explorer who rotted away ages ago, and their equipment. Again."
- mappath = 'maps/submaps/surface_submaps/mountains/lost_explorer.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/lost_explorer.dmm'
cost = 5
allow_duplicates = TRUE */
/datum/map_template/surface/mountains/normal/crashed_ufo //VOREStation Edit
name = "Crashed UFO"
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet it still seems to be running..."
- mappath = 'maps/submaps/surface_submaps/mountains/crashed_ufo.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/crashed_ufo.dmm'
cost = 40
discard_prob = 50
/datum/map_template/surface/mountains/normal/crashed_ufo_frigate //VOREStation Edit
name = "Crashed UFO Frigate"
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet the combat protocols still seem to be running..."
- mappath = 'maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm'
cost = 60
discard_prob = 50
/datum/map_template/surface/mountains/normal/Scave1 //VOREStation Edit
name = "Spider Cave 1"
desc = "A minning tunnel home to an aggressive collection of spiders."
- mappath = 'maps/submaps/surface_submaps/mountains/Scave1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/Scave1.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/CaveTrench //VOREStation Edit
name = "Cave River"
desc = "A strange underground river."
- mappath = 'maps/submaps/surface_submaps/mountains/CaveTrench.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/CaveTrench.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/Cavelake //VOREStation Edit
name = "Cave Lake"
desc = "A large underground lake."
- mappath = 'maps/submaps/surface_submaps/mountains/Cavelake.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/Cavelake.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/vault1 //VOREStation Edit
name = "Mine Vault 1"
desc = "A small vault with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault1.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -299,7 +299,7 @@
/datum/map_template/surface/mountains/normal/vault2 //VOREStation Edit
name = "Mine Vault 2"
desc = "A small vault with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault2.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -307,68 +307,68 @@
/datum/map_template/surface/mountains/normal/vault3 //VOREStation Edit
name = "Mine Vault 3"
desc = "A small vault with potential loot. Also a horrible suprise."
- mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault3.dmm'
cost = 15
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault4 //VOREStation Edit
name = "Mine Vault 4"
desc = "A small xeno vault with potential loot. Also horrible suprises."
- mappath = 'maps/submaps/surface_submaps/mountains/vault4.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault4.dmm'
cost = 20
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault5 //VOREStation Edit
name = "Mine Vault 5"
desc = "A small xeno vault with potential loot. Also major horrible suprises."
- mappath = 'maps/submaps/surface_submaps/mountains/vault5.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault5.dmm'
cost = 25
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault6 //VOREStation Edit
name = "Mine Vault 6"
desc = "A small mercenary tower with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault6.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/vault6.dmm'
cost = 25
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/BlastMine1 //VOREStation Edit
name = "Blast Mine 1"
desc = "An abandoned blast mining site, seems that local wildlife has moved in."
- mappath = 'maps/submaps/surface_submaps/mountains/BlastMine1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/BlastMine1.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/lava_trench //VOREStation Edit
name = "lava trench"
desc = "A long stretch of lava underground, almost river-like, with a small crystal research outpost on the side."
- mappath = 'maps/submaps/surface_submaps/mountains/lava_trench.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/lava_trench.dmm'
cost = 20
fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/crashedmedshuttle //VOREStation Edit
name = "Crashed Med Shuttle"
desc = "A medical response shuttle that went missing some time ago. So this is where they went."
- mappath = 'maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm'
cost = 20
fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/excavation1 //VOREStation Edit
name = "Excavation Site"
desc = "An abandoned mining site."
- mappath = 'maps/submaps/surface_submaps/mountains/excavation1.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/excavation1.dmm'
cost = 20
/datum/map_template/surface/mountains/deep/spatial_anomaly
name = "spatial anomaly"
desc = "A strange section of the caves that seems twist and turn in ways that shouldn't be physically possible."
- mappath = 'maps/submaps/surface_submaps/mountains/spatial_anomaly.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/spatial_anomaly.dmm'
cost = 20
fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/Speakeasy //VOREStation add
name = "Speakeasy"
desc = "A hidden underground bar to serve drinks in secret and in style."
- mappath = 'maps/submaps/surface_submaps/mountains/speakeasy_vr.dmm'
+ mappath = 'maps/expedition_vr/beach/submaps/speakeasy_vr.dmm'
cost = 10
allow_duplicates = FALSE
diff --git a/maps/expedition_vr/beach/submaps/prepper1.dmm b/maps/expedition_vr/beach/submaps/prepper1.dmm
index 2e9f7a24d4b..15032104116 100644
--- a/maps/expedition_vr/beach/submaps/prepper1.dmm
+++ b/maps/expedition_vr/beach/submaps/prepper1.dmm
@@ -1,33 +1,224 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/wall/r_wall,/area/submap/cave/prepper1)
-"c" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/item/stack/rods,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"d" = (/obj/structure/table/steel,/obj/random/maintenance/security,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"e" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"f" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"g" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/glasses,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"h" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"i" = (/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"j" = (/obj/structure/table/steel,/obj/item/weapon/tape_roll,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"k" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/item/stack/tile/floor/steel,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"l" = (/obj/structure/inflatable/door,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"m" = (/obj/structure/closet/wardrobe/grey,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"n" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"o" = (/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"p" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"q" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/armor/material/makeshift,/obj/item/clothing/head/helmet/bucket,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"r" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"s" = (/obj/structure/table/steel,/obj/item/device/flashlight/lantern,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
-"t" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever,/obj/item/ammo_magazine/clip/c762,/obj/item/ammo_magazine/clip/c762,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/wall/r_wall,
+/area/submap/cave/prepper1)
+"c" = (
+/obj/structure/table/steel,
+/obj/random/maintenance/engineering,
+/obj/random/maintenance/engineering,
+/obj/item/stack/rods,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"d" = (
+/obj/structure/table/steel,
+/obj/random/maintenance/security,
+/obj/item/stack/cable_coil/random,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"e" = (
+/obj/structure/table/steel,
+/obj/random/maintenance/engineering,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"f" = (
+/obj/structure/table/steel,
+/obj/random/maintenance/engineering,
+/obj/random/maintenance/engineering,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"g" = (
+/obj/structure/table/steel,
+/obj/item/weapon/storage/box/glasses,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"h" = (
+/obj/structure/table/steel,
+/obj/random/toolbox,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"i" = (
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"j" = (
+/obj/structure/table/steel,
+/obj/item/weapon/tape_roll,
+/obj/random/maintenance/engineering,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"k" = (
+/obj/structure/table/steel,
+/obj/random/maintenance/engineering,
+/obj/random/maintenance/engineering,
+/obj/item/stack/tile/floor/steel,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"l" = (
+/obj/structure/inflatable/door,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"m" = (
+/obj/structure/closet/wardrobe/grey,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"n" = (
+/obj/structure/closet/crate/freezer/rations,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"o" = (
+/obj/structure/reagent_dispensers/water_cooler/full,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"p" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"q" = (
+/obj/structure/table/rack,
+/obj/item/weapon/tank/emergency/oxygen/engi,
+/obj/item/weapon/tank/emergency/oxygen/engi,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/suit/armor/material/makeshift,
+/obj/item/clothing/head/helmet/bucket,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"r" = (
+/obj/structure/bed,
+/obj/item/weapon/bedsheet,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"s" = (
+/obj/structure/table/steel,
+/obj/item/device/flashlight/lantern,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
+"t" = (
+/obj/structure/table/rack,
+/obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever,
+/obj/item/ammo_magazine/clip/c762,
+/obj/item/ammo_magazine/clip/c762,
+/turf/simulated/floor/plating,
+/area/submap/cave/prepper1)
(1,1,1) = {"
-aaaaaaaaaa
-aabbbbbbaa
-abbcdefbba
-abghiijkba
-aliiiiimba
-aliiiiinba
-aboiiipnba
-abbqrstbba
-aabbbbbbaa
-aaaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+b
+b
+l
+l
+b
+b
+a
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+g
+i
+i
+o
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+c
+h
+i
+i
+i
+q
+b
+a
+"}
+(5,1,1) = {"
+a
+b
+d
+i
+i
+i
+i
+r
+b
+a
+"}
+(6,1,1) = {"
+a
+b
+e
+i
+i
+i
+i
+s
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+f
+j
+i
+i
+p
+t
+b
+a
+"}
+(8,1,1) = {"
+a
+b
+b
+k
+m
+n
+n
+b
+b
+a
+"}
+(9,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+b
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/ritual.dmm b/maps/expedition_vr/beach/submaps/ritual.dmm
index 8aab49c0092..9506d7e2cb9 100644
--- a/maps/expedition_vr/beach/submaps/ritual.dmm
+++ b/maps/expedition_vr/beach/submaps/ritual.dmm
@@ -1,15 +1,70 @@
-"a" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
-"b" = (/obj/structure/plushie/ian,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
-"c" = (/obj/item/weapon/flame/candle/everburn,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
-"d" = (/obj/structure/plushie/ian{dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
-"e" = (/obj/structure/plushie/ian{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
-"f" = (/obj/structure/ghost_pod/manual/corgi,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
-"g" = (/obj/structure/plushie/ian{dir = 1},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CorgiRitual)
+"b" = (
+/obj/structure/plushie/ian,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CorgiRitual)
+"c" = (
+/obj/item/weapon/flame/candle/everburn,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CorgiRitual)
+"d" = (
+/obj/structure/plushie/ian{
+ dir = 8
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CorgiRitual)
+"e" = (
+/obj/structure/plushie/ian{
+ dir = 4
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CorgiRitual)
+"f" = (
+/obj/structure/ghost_pod/manual/corgi,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CorgiRitual)
+"g" = (
+/obj/structure/plushie/ian{
+ dir = 1
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CorgiRitual)
(1,1,1) = {"
-aabaa
-acacd
-eafad
-ecaca
-aagaa
+a
+a
+e
+e
+a
+"}
+(2,1,1) = {"
+a
+c
+a
+c
+a
+"}
+(3,1,1) = {"
+b
+a
+f
+a
+g
+"}
+(4,1,1) = {"
+a
+c
+a
+c
+a
+"}
+(5,1,1) = {"
+a
+d
+d
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/spatial_anomaly.dmm b/maps/expedition_vr/beach/submaps/spatial_anomaly.dmm
index 0adb4b8937d..9b0f64aad93 100644
--- a/maps/expedition_vr/beach/submaps/spatial_anomaly.dmm
+++ b/maps/expedition_vr/beach/submaps/spatial_anomaly.dmm
@@ -1,82 +1,1256 @@
-"a" = (/turf/simulated/wall/solidrock,/area/submap/spatial_anomaly)
-"b" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"c" = (/obj/effect/map_effect/portal/master/side_a{dir = 4; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_5"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"d" = (/obj/effect/map_effect/portal/master/side_b{dir = 8; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_5"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"e" = (/obj/structure/barricade,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"f" = (/turf/template_noop,/area/template_noop)
-"g" = (/obj/effect/map_effect/portal/master/side_b{portal_id = "spatial_anomaly_4"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"h" = (/obj/effect/map_effect/portal/line/side_a{icon_state = "portal_line_side_a"; dir = 4},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"i" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 8},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"j" = (/turf/simulated/floor/lava,/area/submap/spatial_anomaly)
-"k" = (/obj/item/weapon/disposable_teleporter/slime,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"l" = (/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"m" = (/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"n" = (/obj/effect/map_effect/portal/master/side_a{dir = 4; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_3"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"o" = (/obj/effect/map_effect/portal/master/side_a{dir = 1; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_4"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"p" = (/obj/effect/map_effect/portal/master/side_b{dir = 8; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_3"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"q" = (/obj/effect/map_effect/portal/master/side_b{portal_id = "spatial_anomaly_2"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"r" = (/obj/effect/map_effect/portal/line/side_b,/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"s" = (/obj/machinery/crystal/lava,/turf/simulated/floor/lava,/area/submap/spatial_anomaly)
-"t" = (/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"u" = (/obj/effect/map_effect/portal/master/side_a{portal_id = "spatial_anomaly_1"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"v" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"w" = (/obj/structure/table/steel_reinforced,/obj/item/device/xenoarch_multi_tool,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"x" = (/turf/simulated/wall/solidrock,/area/template_noop)
-"y" = (/obj/random/technology_scanner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"z" = (/obj/structure/table/steel_reinforced,/obj/random/unidentified_medicine/scientific,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"A" = (/obj/structure/table/steel_reinforced,/obj/random/tool/power,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"B" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/ore/diamond,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"C" = (/obj/structure/sign/warning/lava,/turf/simulated/wall,/area/submap/spatial_anomaly)
-"D" = (/obj/effect/map_effect/portal/line/side_a,/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"E" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/jackhammer,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"F" = (/obj/effect/map_effect/portal/master/side_a{dir = 1; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_2"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"G" = (/obj/effect/map_effect/portal/line/side_a{icon_state = "portal_line_side_a"; dir = 1},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"H" = (/turf/unsimulated/wall,/area/template_noop)
-"I" = (/obj/effect/map_effect/portal/master/side_b{dir = 1; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_1"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"J" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"K" = (/obj/item/weapon/mining_scanner,/obj/structure/table/rack,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"L" = (/obj/item/weapon/storage/belt/archaeology,/obj/effect/decal/remains/human,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"M" = (/obj/structure/bookcase/manuals/xenoarchaeology,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"N" = (/obj/item/weapon/pickaxe/brush,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"O" = (/obj/item/weapon/pickaxe/one_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"P" = (/obj/item/weapon/pickaxe/four_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"Q" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
-"R" = (/obj/item/weapon/pickaxe/five_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"S" = (/obj/item/weapon/pickaxe/six_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"T" = (/obj/item/weapon/pickaxe/two_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"U" = (/obj/item/device/measuring_tape,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"X" = (/obj/item/weapon/pickaxe/three_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
-"Y" = (/obj/item/weapon/pickaxe/excavationdrill,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/wall/solidrock,
+/area/submap/spatial_anomaly)
+"b" = (
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"c" = (
+/obj/effect/map_effect/portal/master/side_a{
+ dir = 4;
+ icon_state = "portal_side_a";
+ portal_id = "spatial_anomaly_5"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"d" = (
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 8;
+ icon_state = "portal_side_b";
+ portal_id = "spatial_anomaly_5"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"e" = (
+/obj/structure/barricade,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"f" = (
+/turf/template_noop,
+/area/template_noop)
+"g" = (
+/obj/effect/map_effect/portal/master/side_b{
+ portal_id = "spatial_anomaly_4"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"h" = (
+/obj/effect/map_effect/portal/line/side_a{
+ icon_state = "portal_line_side_a";
+ dir = 4
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"i" = (
+/obj/effect/map_effect/portal/line/side_b{
+ icon_state = "portal_line_side_b";
+ dir = 8
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"j" = (
+/turf/simulated/floor/lava,
+/area/submap/spatial_anomaly)
+"k" = (
+/obj/item/weapon/disposable_teleporter/slime,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"l" = (
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"m" = (
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"n" = (
+/obj/effect/map_effect/portal/master/side_a{
+ dir = 4;
+ icon_state = "portal_side_a";
+ portal_id = "spatial_anomaly_3"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"o" = (
+/obj/effect/map_effect/portal/master/side_a{
+ dir = 1;
+ icon_state = "portal_side_a";
+ portal_id = "spatial_anomaly_4"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"p" = (
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 8;
+ icon_state = "portal_side_b";
+ portal_id = "spatial_anomaly_3"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"q" = (
+/obj/effect/map_effect/portal/master/side_b{
+ portal_id = "spatial_anomaly_2"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"r" = (
+/obj/effect/map_effect/portal/line/side_b,
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"s" = (
+/obj/machinery/crystal/lava,
+/turf/simulated/floor/lava,
+/area/submap/spatial_anomaly)
+"t" = (
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"u" = (
+/obj/effect/map_effect/portal/master/side_a{
+ portal_id = "spatial_anomaly_1"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"v" = (
+/obj/item/weapon/stool/padded,
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"w" = (
+/obj/structure/table/steel_reinforced,
+/obj/item/device/xenoarch_multi_tool,
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"x" = (
+/turf/simulated/wall/solidrock,
+/area/template_noop)
+"y" = (
+/obj/random/technology_scanner,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"z" = (
+/obj/structure/table/steel_reinforced,
+/obj/random/unidentified_medicine/scientific,
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"A" = (
+/obj/structure/table/steel_reinforced,
+/obj/random/tool/power,
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"B" = (
+/obj/structure/table/steel_reinforced,
+/obj/item/weapon/ore/diamond,
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"C" = (
+/obj/structure/sign/warning/lava,
+/turf/simulated/wall,
+/area/submap/spatial_anomaly)
+"D" = (
+/obj/effect/map_effect/portal/line/side_a,
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"E" = (
+/obj/structure/table/rack,
+/obj/item/weapon/pickaxe/jackhammer,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"F" = (
+/obj/effect/map_effect/portal/master/side_a{
+ dir = 1;
+ icon_state = "portal_side_a";
+ portal_id = "spatial_anomaly_2"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"G" = (
+/obj/effect/map_effect/portal/line/side_a{
+ icon_state = "portal_line_side_a";
+ dir = 1
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"H" = (
+/turf/unsimulated/wall,
+/area/template_noop)
+"I" = (
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 1;
+ icon_state = "portal_side_b";
+ portal_id = "spatial_anomaly_1"
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"J" = (
+/obj/effect/map_effect/portal/line/side_b{
+ icon_state = "portal_line_side_b";
+ dir = 1
+ },
+/obj/effect/map_effect/perma_light/brighter{
+ light_color = "#ff00ff"
+ },
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"K" = (
+/obj/item/weapon/mining_scanner,
+/obj/structure/table/rack,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"L" = (
+/obj/item/weapon/storage/belt/archaeology,
+/obj/effect/decal/remains/human,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"M" = (
+/obj/structure/bookcase/manuals/xenoarchaeology,
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"N" = (
+/obj/item/weapon/pickaxe/brush,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"O" = (
+/obj/item/weapon/pickaxe/one_pick,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"P" = (
+/obj/item/weapon/pickaxe/four_pick,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"Q" = (
+/obj/effect/decal/remains/human,
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
+"R" = (
+/obj/item/weapon/pickaxe/five_pick,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"S" = (
+/obj/item/weapon/pickaxe/six_pick,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"T" = (
+/obj/item/weapon/pickaxe/two_pick,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"U" = (
+/obj/item/device/measuring_tape,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"X" = (
+/obj/item/weapon/pickaxe/three_pick,
+/turf/simulated/floor/outdoors/rocks/caves,
+/area/submap/spatial_anomaly)
+"Y" = (
+/obj/item/weapon/pickaxe/excavationdrill,
+/turf/simulated/floor/plating/external,
+/area/submap/spatial_anomaly)
(1,1,1) = {"
-ffffffffffffffffffffffffffffff
-fffffffffffffxxxxxxfffffffffff
-fffffxxxxxxxxaaaaaaxxxxxffffff
-ffffxaaaaaaaaaaaaaaaaaaaxfffff
-ffffaataatcbbbbjjjsjkbdtaxffff
-fffxaagaathbbbbbjjjjbbitaaffff
-fffaaabaaaaaabCbbsaaaaaaaaffff
-fffaaaObaaaabbNbbaaaaaaaaaxfff
-ffxaaabbblbbbybbaabPbbblaaafff
-ffaaaaaaaaabbbtmaabbaaabaaafff
-ffaaaaaaaaatttttaabaaaabaaafff
-ffaalbbbbbaatvtQaalaaaabaaafff
-ffaabaaaabaaBwzAaabaaaabaaffff
-ffaabaaaabaaaaaaaabatnbbaaHHHf
-ffxabaaaaoaaaaaaabbaaaaaaaffHf
-ffxabaaaataatttaabbaaaaaaaffHf
-ffxabRbptaaaqrraabSaatttaaHHaf
-ffxaaaaaaaaabbbaabbaauDDablbaf
-fffaaaaaaaaabbbaablaabbbaeeaaf
-fffaaaalbbbabbbaabbaabbbblbaaf
-ffffaabbaabababbbbbaaUbbbEKaff
-ffffaaTbbabXbabbLbYaabbbaaaaff
-ffffaabbbabbbabbmttaaFGGaaafff
-ffffaaIJJablbabtttMaatttaaffff
-fffffatttaaaaaaaaaaaaaaaafffff
-fffffaaaaaaaaaaaaaaaaaaaffffff
-fffffaaaaffaaaaaaaafffffffffff
-ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffff
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(2,1,1) = {"
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(3,1,1) = {"
+f
+f
+f
+f
+f
+f
+f
+f
+x
+a
+a
+a
+a
+a
+x
+x
+x
+x
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(4,1,1) = {"
+f
+f
+f
+f
+f
+x
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(5,1,1) = {"
+f
+f
+f
+x
+a
+a
+a
+a
+a
+a
+a
+l
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+f
+f
+f
+"}
+(6,1,1) = {"
+f
+f
+x
+a
+a
+a
+a
+a
+a
+a
+a
+b
+a
+a
+a
+a
+R
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+"}
+(7,1,1) = {"
+f
+f
+x
+a
+t
+g
+b
+O
+b
+a
+a
+b
+a
+a
+a
+a
+b
+a
+a
+a
+b
+T
+b
+I
+t
+a
+a
+f
+f
+f
+"}
+(8,1,1) = {"
+f
+f
+x
+a
+a
+a
+a
+b
+b
+a
+a
+b
+a
+a
+a
+a
+p
+a
+a
+l
+b
+b
+b
+J
+t
+a
+a
+f
+f
+f
+"}
+(9,1,1) = {"
+f
+f
+x
+a
+a
+a
+a
+a
+b
+a
+a
+b
+a
+a
+a
+a
+t
+a
+a
+b
+a
+b
+b
+J
+t
+a
+a
+f
+f
+f
+"}
+(10,1,1) = {"
+f
+f
+x
+a
+t
+t
+a
+a
+l
+a
+a
+b
+b
+b
+o
+t
+a
+a
+a
+b
+a
+a
+a
+a
+a
+a
+f
+f
+f
+f
+"}
+(11,1,1) = {"
+f
+f
+x
+a
+c
+h
+a
+a
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+a
+a
+f
+f
+f
+f
+"}
+(12,1,1) = {"
+f
+f
+x
+a
+b
+b
+a
+a
+b
+b
+t
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+X
+b
+l
+a
+a
+a
+f
+f
+f
+"}
+(13,1,1) = {"
+f
+f
+x
+a
+b
+b
+a
+b
+b
+b
+t
+t
+B
+a
+a
+t
+q
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+f
+f
+f
+"}
+(14,1,1) = {"
+f
+x
+a
+a
+b
+b
+b
+b
+y
+b
+t
+v
+w
+a
+a
+t
+r
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+"}
+(15,1,1) = {"
+f
+x
+a
+a
+b
+b
+C
+N
+b
+t
+t
+t
+z
+a
+a
+t
+r
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+f
+f
+f
+"}
+(16,1,1) = {"
+f
+x
+a
+a
+j
+b
+b
+b
+b
+m
+t
+Q
+A
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+t
+a
+a
+a
+f
+f
+f
+"}
+(17,1,1) = {"
+f
+x
+a
+a
+j
+j
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+L
+m
+t
+a
+a
+a
+f
+f
+f
+"}
+(18,1,1) = {"
+f
+x
+a
+a
+j
+j
+s
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+t
+t
+a
+a
+a
+f
+f
+f
+"}
+(19,1,1) = {"
+f
+x
+a
+a
+s
+j
+a
+a
+b
+b
+b
+l
+b
+b
+b
+b
+S
+b
+l
+b
+b
+Y
+t
+M
+a
+a
+a
+f
+f
+f
+"}
+(20,1,1) = {"
+f
+f
+x
+a
+j
+j
+a
+a
+P
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+f
+"}
+(21,1,1) = {"
+f
+f
+x
+a
+k
+b
+a
+a
+b
+a
+a
+a
+a
+t
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+f
+"}
+(22,1,1) = {"
+f
+f
+x
+a
+b
+b
+a
+a
+b
+a
+a
+a
+a
+n
+a
+a
+t
+u
+b
+b
+U
+b
+F
+t
+a
+a
+f
+f
+f
+f
+"}
+(23,1,1) = {"
+f
+f
+x
+a
+d
+i
+a
+a
+b
+a
+a
+a
+a
+b
+a
+a
+t
+D
+b
+b
+b
+b
+G
+t
+a
+a
+f
+f
+f
+f
+"}
+(24,1,1) = {"
+f
+f
+x
+a
+t
+t
+a
+a
+l
+b
+b
+b
+b
+b
+a
+a
+t
+D
+b
+b
+b
+b
+G
+t
+a
+a
+f
+f
+f
+f
+"}
+(25,1,1) = {"
+f
+f
+f
+x
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+a
+a
+a
+a
+f
+f
+f
+f
+f
+"}
+(26,1,1) = {"
+f
+f
+f
+f
+x
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+e
+l
+E
+a
+a
+a
+f
+f
+f
+f
+f
+f
+"}
+(27,1,1) = {"
+f
+f
+f
+f
+f
+f
+f
+x
+a
+a
+a
+a
+f
+H
+f
+f
+H
+l
+e
+b
+K
+a
+a
+f
+f
+f
+f
+f
+f
+f
+"}
+(28,1,1) = {"
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+H
+f
+f
+H
+b
+a
+a
+a
+a
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(29,1,1) = {"
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+H
+H
+H
+a
+a
+a
+a
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+"}
+(30,1,1) = {"
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
"}
diff --git a/maps/expedition_vr/beach/submaps/speakeasy_vr.dmm b/maps/expedition_vr/beach/submaps/speakeasy_vr.dmm
index d4e01a8df1b..0f8c789a935 100644
--- a/maps/expedition_vr/beach/submaps/speakeasy_vr.dmm
+++ b/maps/expedition_vr/beach/submaps/speakeasy_vr.dmm
@@ -1,54 +1,458 @@
-"a" = (/turf/template_noop,/area/submap/Speakeasy)
-"c" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
-"f" = (/obj/structure/table/gamblingtable,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"g" = (/obj/structure/bed/chair/wood{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"h" = (/obj/random/handgun,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"i" = (/obj/item/clothing/head/fedora,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"j" = (/obj/structure/bookcase,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"k" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"l" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
-"m" = (/obj/structure/table/woodentable,/obj/machinery/light/poi{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"n" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"o" = (/obj/structure/simple_door/wood,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"p" = (/obj/machinery/media/jukebox,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"s" = (/obj/structure/bed/chair/wood{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"u" = (/obj/structure/table/gamblingtable,/obj/machinery/light/poi{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"v" = (/obj/structure/table/fancyblack,/obj/item/clothing/mask/smokable/cigarette/cigar,/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
-"w" = (/turf/simulated/wall/wood,/area/submap/Speakeasy)
-"x" = (/obj/structure/bed/chair/sofa/blue/left{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"B" = (/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"C" = (/turf/simulated/mineral/floor/cave,/area/submap/Speakeasy)
-"D" = (/obj/structure/bed/chair/sofa/black/corner{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"E" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
-"H" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"I" = (/obj/structure/table/woodentable,/obj/random/drinkbottle,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"K" = (/obj/effect/floor_decal/corner/black/diagonal,/turf/simulated/floor/tiled/neutral,/area/submap/Speakeasy)
-"L" = (/obj/structure/bed/chair/wood{dir = 8},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"M" = (/obj/machinery/light/poi{dir = 1},/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
-"N" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"O" = (/obj/machinery/light/poi{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"R" = (/obj/structure/bed/chair/sofa/black{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"U" = (/obj/structure/bed/chair/sofa/blue/right{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"V" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"W" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"X" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_alc/full,/turf/simulated/floor/wood,/area/submap/Speakeasy)
-"Y" = (/obj/structure/table/fancyblack,/obj/random/cash/big,/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/submap/Speakeasy)
+"c" = (
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/Speakeasy)
+"f" = (
+/obj/structure/table/gamblingtable,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"g" = (
+/obj/structure/bed/chair/wood{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"h" = (
+/obj/random/handgun,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"i" = (
+/obj/item/clothing/head/fedora,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"j" = (
+/obj/structure/bookcase,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"k" = (
+/obj/item/weapon/stool/padded,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"l" = (
+/obj/structure/bed/chair/comfy/black,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/Speakeasy)
+"m" = (
+/obj/structure/table/woodentable,
+/obj/machinery/light/poi{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"n" = (
+/obj/structure/reagent_dispensers/beerkeg,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"o" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"p" = (
+/obj/machinery/media/jukebox,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"s" = (
+/obj/structure/bed/chair/wood{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"u" = (
+/obj/structure/table/gamblingtable,
+/obj/machinery/light/poi{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"v" = (
+/obj/structure/table/fancyblack,
+/obj/item/clothing/mask/smokable/cigarette/cigar,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/Speakeasy)
+"w" = (
+/turf/simulated/wall/wood,
+/area/submap/Speakeasy)
+"x" = (
+/obj/structure/bed/chair/sofa/blue/left{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"B" = (
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"C" = (
+/turf/simulated/mineral/floor/cave,
+/area/submap/Speakeasy)
+"D" = (
+/obj/structure/bed/chair/sofa/black/corner{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"E" = (
+/obj/structure/bed/chair/comfy/black{
+ dir = 1
+ },
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/Speakeasy)
+"H" = (
+/obj/machinery/vending/boozeomat,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"I" = (
+/obj/structure/table/woodentable,
+/obj/random/drinkbottle,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"K" = (
+/obj/effect/floor_decal/corner/black/diagonal,
+/turf/simulated/floor/tiled/neutral,
+/area/submap/Speakeasy)
+"L" = (
+/obj/structure/bed/chair/wood{
+ dir = 8
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"M" = (
+/obj/machinery/light/poi{
+ dir = 1
+ },
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/Speakeasy)
+"N" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"O" = (
+/obj/machinery/light/poi{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"R" = (
+/obj/structure/bed/chair/sofa/black{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"U" = (
+/obj/structure/bed/chair/sofa/blue/right{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"V" = (
+/obj/structure/table/woodentable,
+/obj/machinery/chemical_dispenser/bar_soft/full{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"W" = (
+/obj/structure/bed/chair/wood,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"X" = (
+/obj/structure/table/woodentable,
+/obj/machinery/chemical_dispenser/bar_alc/full,
+/turf/simulated/floor/wood,
+/area/submap/Speakeasy)
+"Y" = (
+/obj/structure/table/fancyblack,
+/obj/random/cash/big,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/Speakeasy)
(1,1,1) = {"
-aaaaaaaaaaaaaaaa
-awwwwwwwwwwaaaaa
-awnnwBMlMBwwwwaa
-awiBjBYvYBwfLwwa
-awhBjBcEcBwgBBwa
-awwwwBBBBBwBWWwa
-awXHwwwowwwBNmwa
-awBBBOBBBBBBNNwa
-awVNININNIBBggwa
-awBkkkkkkkBBBBwa
-awpBBBBBBBKKKWwa
-awwxffBBBBKKKuwa
-aawDRUBBBBKKKgwa
-aawwwwBBBBsfLwwa
-aaaaawwowwwwwwaa
-aaaaaaCCCaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+w
+w
+w
+w
+w
+w
+w
+w
+w
+w
+w
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+w
+n
+i
+h
+w
+X
+B
+V
+B
+p
+w
+w
+w
+a
+a
+"}
+(4,1,1) = {"
+a
+w
+n
+B
+B
+w
+H
+B
+N
+k
+B
+x
+D
+w
+a
+a
+"}
+(5,1,1) = {"
+a
+w
+w
+j
+j
+w
+w
+B
+I
+k
+B
+f
+R
+w
+a
+a
+"}
+(6,1,1) = {"
+a
+w
+B
+B
+B
+B
+w
+O
+N
+k
+B
+f
+U
+w
+w
+a
+"}
+(7,1,1) = {"
+a
+w
+M
+Y
+c
+B
+w
+B
+I
+k
+B
+B
+B
+B
+w
+C
+"}
+(8,1,1) = {"
+a
+w
+l
+v
+E
+B
+o
+B
+N
+k
+B
+B
+B
+B
+o
+C
+"}
+(9,1,1) = {"
+a
+w
+M
+Y
+c
+B
+w
+B
+N
+k
+B
+B
+B
+B
+w
+C
+"}
+(10,1,1) = {"
+a
+w
+B
+B
+B
+B
+w
+B
+I
+k
+B
+B
+B
+B
+w
+a
+"}
+(11,1,1) = {"
+a
+w
+w
+w
+w
+w
+w
+B
+B
+B
+K
+K
+K
+s
+w
+a
+"}
+(12,1,1) = {"
+a
+a
+w
+f
+g
+B
+B
+B
+B
+B
+K
+K
+K
+f
+w
+a
+"}
+(13,1,1) = {"
+a
+a
+w
+L
+B
+W
+N
+N
+g
+B
+K
+K
+K
+L
+w
+a
+"}
+(14,1,1) = {"
+a
+a
+w
+w
+B
+W
+m
+N
+g
+B
+W
+u
+g
+w
+w
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+w
+w
+w
+w
+w
+w
+w
+w
+w
+w
+w
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/vault1.dmm b/maps/expedition_vr/beach/submaps/vault1.dmm
index c1a5ddadd88..5f39b245ab1 100644
--- a/maps/expedition_vr/beach/submaps/vault1.dmm
+++ b/maps/expedition_vr/beach/submaps/vault1.dmm
@@ -1,17 +1,118 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/wall,/area/submap/cave/vault1)
-"c" = (/turf/simulated/floor/plating,/area/submap/cave/vault1)
-"d" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating,/area/submap/cave/vault1)
-"e" = (/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault1)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/wall,
+/area/submap/cave/vault1)
+"c" = (
+/turf/simulated/floor/plating,
+/area/submap/cave/vault1)
+"d" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault1)
+"e" = (
+/obj/random/multiple/minevault,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault1)
(1,1,1) = {"
-aaaaaaaaa
-aabbbbbaa
-abbcdcbba
-abcccccba
-abcceccba
-abcccccba
-abbcccbba
-aabbbbbaa
-aaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+a
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+c
+c
+c
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+c
+c
+c
+c
+c
+b
+a
+"}
+(5,1,1) = {"
+a
+b
+d
+c
+e
+c
+c
+b
+a
+"}
+(6,1,1) = {"
+a
+b
+c
+c
+c
+c
+c
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+c
+c
+c
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/vault2.dmm b/maps/expedition_vr/beach/submaps/vault2.dmm
index 0c8e85ce2c3..016df627cd7 100644
--- a/maps/expedition_vr/beach/submaps/vault2.dmm
+++ b/maps/expedition_vr/beach/submaps/vault2.dmm
@@ -1,16 +1,114 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/wall,/area/submap/cave/vault2)
-"c" = (/turf/simulated/floor/plating,/area/submap/cave/vault2)
-"d" = (/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault2)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/wall,
+/area/submap/cave/vault2)
+"c" = (
+/turf/simulated/floor/plating,
+/area/submap/cave/vault2)
+"d" = (
+/obj/random/multiple/minevault,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault2)
(1,1,1) = {"
-aaaaaaaaa
-abbaaabba
-abbbbbbba
-aabcccbaa
-aabcdcbaa
-aabcccbaa
-abbbbbbba
-abbaaabba
-aaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+b
+b
+a
+a
+a
+b
+b
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+a
+b
+c
+c
+c
+b
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+b
+c
+d
+c
+b
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+b
+c
+c
+c
+b
+a
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+b
+b
+a
+a
+a
+b
+b
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/vault3.dmm b/maps/expedition_vr/beach/submaps/vault3.dmm
index bd93aba0961..16c4876348d 100644
--- a/maps/expedition_vr/beach/submaps/vault3.dmm
+++ b/maps/expedition_vr/beach/submaps/vault3.dmm
@@ -1,21 +1,141 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/turf/simulated/wall,/area/submap/cave/vault3)
-"c" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault3)
-"d" = (/obj/structure/loot_pile/maint/technical,/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3)
-"e" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/floor/plating,/area/submap/cave/vault3)
-"f" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3)
-"g" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3)
-"h" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/turf/simulated/floor/plating,/area/submap/cave/vault3)
-"i" = (/obj/structure/bed/nest,/turf/simulated/floor/plating,/area/submap/cave/vault3)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/wall,
+/area/submap/cave/vault3)
+"c" = (
+/obj/effect/alien/weeds,
+/obj/random/multiple/minevault,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault3)
+"d" = (
+/obj/structure/loot_pile/maint/technical,
+/obj/effect/alien/weeds,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault3)
+"e" = (
+/obj/effect/alien/weeds,
+/mob/living/simple_mob/animal/space/alien/drone,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault3)
+"f" = (
+/obj/effect/alien/weeds,
+/obj/effect/alien/weeds,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault3)
+"g" = (
+/obj/effect/alien/weeds,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault3)
+"h" = (
+/obj/effect/alien/weeds,
+/obj/effect/alien/weeds,
+/obj/effect/alien/weeds/node,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault3)
+"i" = (
+/obj/structure/bed/nest,
+/turf/simulated/floor/plating,
+/area/submap/cave/vault3)
(1,1,1) = {"
-aaaaaaaaa
-aabbbbbaa
-abbcdcbba
-abefffgba
-abgfhfgba
-abgfffeba
-abbigibba
-aabbbbbaa
-aaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+a
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+e
+g
+g
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+c
+f
+f
+f
+i
+b
+a
+"}
+(5,1,1) = {"
+a
+b
+d
+f
+h
+f
+g
+b
+a
+"}
+(6,1,1) = {"
+a
+b
+c
+f
+f
+f
+i
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+g
+g
+e
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/vault4.dmm b/maps/expedition_vr/beach/submaps/vault4.dmm
index 2884a6f60f1..33851a59076 100644
--- a/maps/expedition_vr/beach/submaps/vault4.dmm
+++ b/maps/expedition_vr/beach/submaps/vault4.dmm
@@ -1,22 +1,141 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/obj/structure/alien/wall,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
-"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
-"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
-"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
-"f" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
-"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
-"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
-"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
-"j" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/structure/alien/wall,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault4)
+"c" = (
+/obj/structure/simple_door/resin,
+/obj/effect/alien/weeds,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault4)
+"d" = (
+/obj/effect/alien/weeds,
+/obj/structure/bed/nest,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault4)
+"e" = (
+/obj/effect/alien/weeds,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault4)
+"f" = (
+/obj/effect/alien/weeds,
+/mob/living/simple_mob/animal/space/alien/drone,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault4)
+"g" = (
+/obj/effect/alien/weeds/node,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault4)
+"h" = (
+/obj/effect/alien/weeds,
+/obj/random/multiple/minevault,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault4)
+"i" = (
+/obj/effect/alien/weeds,
+/mob/living/simple_mob/animal/space/alien,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault4)
(1,1,1) = {"
-aaaaaaaaa
-aabbcbbaa
-abbdefbba
-abdeeghba
-aciejeica
-abhgeedba
-abbfedbba
-aabbcbbaa
-aaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+b
+b
+c
+b
+b
+a
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+d
+i
+h
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+d
+e
+e
+g
+f
+b
+a
+"}
+(5,1,1) = {"
+a
+c
+e
+e
+e
+e
+e
+c
+a
+"}
+(6,1,1) = {"
+a
+b
+f
+g
+e
+e
+d
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+h
+i
+d
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+a
+b
+b
+c
+b
+b
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/vault5.dmm b/maps/expedition_vr/beach/submaps/vault5.dmm
index 34789a39222..3831106ee43 100644
--- a/maps/expedition_vr/beach/submaps/vault5.dmm
+++ b/maps/expedition_vr/beach/submaps/vault5.dmm
@@ -1,23 +1,151 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/obj/structure/alien/wall,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"i" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
-"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/structure/alien/wall,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
+"c" = (
+/obj/structure/simple_door/resin,
+/obj/effect/alien/weeds,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
+"d" = (
+/obj/effect/alien/weeds,
+/obj/structure/bed/nest,
+/obj/item/weapon/gun/projectile/p92x/large,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
+"e" = (
+/obj/effect/alien/weeds,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
+"f" = (
+/obj/effect/alien/weeds,
+/obj/item/clothing/suit/storage/vest/tactical,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
+"g" = (
+/obj/effect/alien/weeds,
+/obj/structure/bed/nest,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
+"h" = (
+/obj/effect/alien/weeds,
+/obj/random/multiple/minevault,
+/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
+"j" = (
+/obj/effect/alien/weeds,
+/obj/effect/alien/weeds/node,
+/mob/living/simple_mob/animal/space/alien/queen/empress,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
+"k" = (
+/obj/effect/alien/weeds,
+/obj/item/clothing/head/helmet/tac,
+/obj/item/weapon/gun/projectile/SVD,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault5)
(1,1,1) = {"
-aaaaaaaaa
-aabbcbbaa
-abbdefbba
-abgeeehba
-abiejeiba
-abheeegba
-abbkegbba
-aabbcbbaa
-aaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+a
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+g
+e
+h
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+d
+e
+e
+e
+k
+b
+a
+"}
+(5,1,1) = {"
+a
+c
+e
+e
+j
+e
+e
+c
+a
+"}
+(6,1,1) = {"
+a
+b
+f
+e
+e
+e
+g
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+h
+e
+g
+b
+b
+a
+"}
+(8,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/expedition_vr/beach/submaps/vault6.dmm b/maps/expedition_vr/beach/submaps/vault6.dmm
index d71ea78b38c..d4200ba5ab4 100644
--- a/maps/expedition_vr/beach/submaps/vault6.dmm
+++ b/maps/expedition_vr/beach/submaps/vault6.dmm
@@ -1,31 +1,206 @@
-"a" = (/turf/template_noop,/area/template_noop)
-"b" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"c" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"d" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"e" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"f" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"g" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"h" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"i" = (/mob/living/simple_mob/humanoid/merc/ranged/grenadier,/turf/simulated/floor/cult,/area/submap/cave/vault6)
-"j" = (/turf/simulated/floor/cult,/area/submap/cave/vault6)
-"k" = (/obj/random/tool/power,/obj/random/tech_supply,/turf/simulated/floor/cult,/area/submap/cave/vault6)
-"l" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"m" = (/obj/structure/bonfire/permanent/sifwood,/obj/structure/grille/rustic,/turf/simulated/floor/cult,/area/submap/cave/vault6)
-"n" = (/obj/random/multiple/minevault,/turf/simulated/floor/cult,/area/submap/cave/vault6)
-"o" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"q" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"r" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
-"s" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 6
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"c" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 2
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"d" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 10
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"e" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 6
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"f" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"g" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 10
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"h" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 4
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"i" = (
+/mob/living/simple_mob/humanoid/merc/ranged/grenadier,
+/turf/simulated/floor/cult,
+/area/submap/cave/vault6)
+"j" = (
+/turf/simulated/floor/cult,
+/area/submap/cave/vault6)
+"k" = (
+/obj/random/tool/power,
+/obj/random/tech_supply,
+/turf/simulated/floor/cult,
+/area/submap/cave/vault6)
+"l" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 8
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"m" = (
+/obj/structure/bonfire/permanent/sifwood,
+/obj/structure/grille/rustic,
+/turf/simulated/floor/cult,
+/area/submap/cave/vault6)
+"n" = (
+/obj/random/multiple/minevault,
+/turf/simulated/floor/cult,
+/area/submap/cave/vault6)
+"o" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"p" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 5
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"q" = (
+/obj/structure/cliff/automatic{
+ icon_state = "cliffbuilder";
+ dir = 9
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"r" = (
+/obj/structure/cliff/automatic/corner{
+ icon_state = "cliffbuilder-corner";
+ dir = 9
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
+"s" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/vault6)
(1,1,1) = {"
-aaaaaaaaa
-aabcccdaa
-abefffgda
-ahfijkfla
-ahfjmjfla
-ahfnjjfla
-aopfffqra
-aaosssraa
-aaaaaaaaa
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+b
+h
+h
+h
+o
+a
+a
+"}
+(3,1,1) = {"
+a
+b
+e
+f
+f
+f
+p
+o
+a
+"}
+(4,1,1) = {"
+a
+c
+f
+i
+j
+n
+f
+s
+a
+"}
+(5,1,1) = {"
+a
+c
+f
+j
+m
+j
+f
+s
+a
+"}
+(6,1,1) = {"
+a
+c
+f
+k
+j
+j
+f
+s
+a
+"}
+(7,1,1) = {"
+a
+d
+g
+f
+f
+f
+q
+r
+a
+"}
+(8,1,1) = {"
+a
+a
+d
+l
+l
+l
+r
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
"}
diff --git a/maps/gateway_vr/listeningpost.dmm b/maps/gateway_vr/listeningpost.dmm
index a14786ace97..6c2d6b2fb97 100644
--- a/maps/gateway_vr/listeningpost.dmm
+++ b/maps/gateway_vr/listeningpost.dmm
@@ -211,7 +211,7 @@
/turf/simulated/mineral/floor,
/area/mine/unexplored)
"aL" = (
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aM" = (
/turf/simulated/mineral/floor,
@@ -220,51 +220,51 @@
/obj/machinery/gateway{
dir = 9
},
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aO" = (
/obj/machinery/gateway{
dir = 1
},
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aP" = (
/obj/machinery/gateway{
dir = 5
},
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aQ" = (
/obj/machinery/gateway{
dir = 8
},
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aR" = (
/obj/machinery/gateway/centeraway,
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aS" = (
/obj/machinery/gateway{
dir = 4
},
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aT" = (
/obj/machinery/gateway{
dir = 10
},
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aU" = (
/obj/machinery/gateway,
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aV" = (
/obj/machinery/gateway{
dir = 6
},
-/turf/simulated/floor/greengrid,
+/turf/simulated/floor/greengrid/airless,
/area/mine/explored)
"aW" = (
/obj/effect/overmap/visitable/sector/common_gateway/listeningpost,
diff --git a/maps/gateway_vr/variable/arynthilake_a.dmm b/maps/gateway_vr/variable/arynthilake_a.dmm
index 24a790b1772..42f3f1b517c 100644
--- a/maps/gateway_vr/variable/arynthilake_a.dmm
+++ b/maps/gateway_vr/variable/arynthilake_a.dmm
@@ -3,7 +3,7 @@
/turf/unsimulated/mineral,
/area/gateway/arynthilake)
"ac" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake)
"ae" = (
/obj/effect/floor_decal/techfloor{
@@ -18,7 +18,7 @@
/turf/simulated/floor/tiled/techfloor,
/area/gateway/arynthilake/gateway)
"af" = (
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake)
"ag" = (
/turf/simulated/wall/r_wall,
@@ -147,7 +147,7 @@
/area/gateway/arynthilake/oldcabin)
"aV" = (
/obj/item/weapon/lampshade,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"aX" = (
/turf/simulated/floor/carpet/bcarpet,
@@ -227,13 +227,13 @@
/area/gateway/arynthilake)
"bn" = (
/obj/structure/table/steel,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
"bo" = (
/obj/structure/table,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -345,7 +345,7 @@
/obj/item/stack/material/steel{
amount = 50
},
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -540,7 +540,7 @@
/area/gateway/arynthilake/dome)
"eV" = (
/obj/effect/landmark/mcguffin_spawner,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"eW" = (
/obj/item/device/analyzer/plant_analyzer,
@@ -727,7 +727,7 @@
},
/area/gateway/arynthilake/dome)
"jI" = (
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"jK" = (
/obj/structure/table/rack/shelf/steel,
@@ -919,7 +919,7 @@
/area/gateway/arynthilake)
"nc" = (
/obj/random/awayloot,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"np" = (
/obj/random/mob/semirandom_mob_spawner/animal/e,
@@ -927,7 +927,7 @@
/area/gateway/arynthilake)
"nr" = (
/obj/effect/fake_sun,
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"nx" = (
/obj/machinery/door/airlock/engineering,
@@ -1176,7 +1176,7 @@
/area/gateway/arynthilake/engine)
"sl" = (
/obj/effect/overmap/visitable/sector/common_gateway/arynthilake,
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"sA" = (
/obj/structure/table/rack/steel,
@@ -1754,7 +1754,7 @@
/area/gateway/arynthilake/engine)
"Iq" = (
/obj/random/mob/semirandom_mob_spawner/humanoid/retaliate,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -1813,7 +1813,7 @@
/turf/simulated/floor/tiled/eris/techmaint_cargo,
/area/gateway/arynthilake/dome)
"JK" = (
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -1936,7 +1936,7 @@
/turf/simulated/floor/carpet/purcarpet,
/area/gateway/arynthilake/dome)
"MD" = (
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake/caves)
@@ -2070,7 +2070,7 @@
/area/gateway/arynthilake/dome)
"Or" = (
/obj/effect/landmark/hidden_level,
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"OC" = (
/turf/simulated/floor/carpet/blucarpet{
@@ -2098,7 +2098,7 @@
check_arrest = 0;
check_down = 0;
check_records = 0;
- control_area = /area/gateway/grasslands/underground/maintenance;
+ control_area = /area/gateway/arynthilake/underground/maintenance;
desc = "A firewall prevents AIs from interacting with this device.";
lethal = 1;
locked = 0;
@@ -2150,7 +2150,7 @@
/turf/simulated/floor/tiled/steel_ridged,
/area/gateway/arynthilake/engine)
"Qr" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"Qx" = (
/obj/random/mob/semirandom_mob_spawner/robot/retaliate,
@@ -2308,7 +2308,7 @@
/turf/simulated/floor/wood,
/area/gateway/arynthilake/dome)
"UZ" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caveruins)
"Vf" = (
/obj/structure/closet,
@@ -2355,7 +2355,7 @@
/area/gateway/arynthilake/caveruins)
"We" = (
/obj/random/mob/semirandom_mob_spawner/monster/e,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"Wj" = (
/obj/machinery/light{
diff --git a/maps/gateway_vr/variable/arynthilake_b.dmm b/maps/gateway_vr/variable/arynthilake_b.dmm
index 06169e3a6ba..612294d96b5 100644
--- a/maps/gateway_vr/variable/arynthilake_b.dmm
+++ b/maps/gateway_vr/variable/arynthilake_b.dmm
@@ -3,7 +3,7 @@
/obj/item/stack/material/steel{
amount = 50
},
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -41,7 +41,7 @@
/area/gateway/arynthilake/dome)
"bs" = (
/obj/effect/landmark/mcguffin_spawner,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"bw" = (
/obj/structure/table/sifwooden_reinforced,
@@ -72,7 +72,7 @@
/turf/simulated/floor/carpet/purcarpet,
/area/gateway/arynthilake/dome)
"cg" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake)
"ch" = (
/turf/simulated/floor/plating{
@@ -230,7 +230,7 @@
/turf/simulated/floor/tiled/eris,
/area/gateway/arynthilake/engine)
"ek" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"eq" = (
/obj/structure/lattice,
@@ -247,7 +247,7 @@
/area/gateway/arynthilake/dome)
"eN" = (
/obj/effect/fake_sun,
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"eP" = (
/obj/structure/table/standard{
@@ -309,7 +309,7 @@
/area/gateway/arynthilake/dome)
"fC" = (
/obj/effect/overmap/visitable/sector/common_gateway/arynthilake,
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"fX" = (
/obj/structure/table/standard{
@@ -467,7 +467,7 @@
/turf/simulated/floor/tiled/techfloor,
/area/gateway/arynthilake/gateway)
"iX" = (
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake)
"jh" = (
/obj/structure/cable/green{
@@ -503,7 +503,7 @@
check_arrest = 0;
check_down = 0;
check_records = 0;
- control_area = /area/gateway/grasslands/underground/maintenance;
+ control_area = /area/gateway/arynthilake/underground/maintenance;
desc = "A firewall prevents AIs from interacting with this device.";
lethal = 1;
locked = 0;
@@ -731,7 +731,7 @@
/area/gateway/arynthilake/dome)
"nK" = (
/obj/structure/table/steel,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -838,7 +838,7 @@
/area/gateway/arynthilake/dome)
"pS" = (
/obj/random/awayloot,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"pT" = (
/obj/structure/bed/double/padded,
@@ -886,7 +886,7 @@
/turf/simulated/floor/beach/sand/desert,
/area/gateway/arynthilake/caves)
"rt" = (
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -929,7 +929,7 @@
/area/gateway/arynthilake/dome)
"si" = (
/obj/structure/table,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -1187,7 +1187,7 @@
/turf/simulated/floor/water,
/area/gateway/arynthilake/caves)
"zs" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caveruins)
"zt" = (
/obj/structure/table/rack,
@@ -1337,7 +1337,7 @@
/area/gateway/arynthilake)
"Ev" = (
/obj/random/mob/semirandom_mob_spawner/monster,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake)
@@ -1472,7 +1472,7 @@
/turf/simulated/floor/plating/external,
/area/gateway/arynthilake/caveruins)
"Hw" = (
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"HK" = (
/obj/machinery/light,
@@ -1564,7 +1564,7 @@
/area/gateway/arynthilake/dome)
"JB" = (
/obj/item/weapon/lampshade,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"JK" = (
/obj/structure/table/marble,
@@ -1666,7 +1666,7 @@
/turf/simulated/floor/outdoors/grass/forest,
/area/gateway/arynthilake)
"KQ" = (
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
outdoors = 1
},
/area/gateway/arynthilake/caves)
@@ -1707,7 +1707,7 @@
/area/gateway/arynthilake/caveruins)
"LR" = (
/obj/random/mob/semirandom_mob_spawner/monster/f,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"LY" = (
/obj/random/mob/semirandom_mob_spawner/animal/retaliate/c,
@@ -1841,7 +1841,7 @@
/area/gateway/arynthilake/dome)
"NX" = (
/obj/random/mob/semirandom_mob_spawner/monster/e,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"Ob" = (
/obj/structure/catwalk,
@@ -2024,7 +2024,7 @@
/area/gateway/arynthilake/dome)
"Ry" = (
/obj/effect/landmark/hidden_level,
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"RK" = (
/obj/structure/table/fancyblack,
@@ -2153,7 +2153,7 @@
/area/gateway/arynthilake/dome)
"Uq" = (
/obj/random/mob/semirandom_mob_spawner/monster/b,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/caves)
"UA" = (
/turf/simulated/wall/sifwood,
diff --git a/maps/gateway_vr/variable/arynthilakeunderground_a.dmm b/maps/gateway_vr/variable/arynthilakeunderground_a.dmm
index 121b0fac96c..9c1e9f79825 100644
--- a/maps/gateway_vr/variable/arynthilakeunderground_a.dmm
+++ b/maps/gateway_vr/variable/arynthilakeunderground_a.dmm
@@ -44,7 +44,7 @@
/turf/simulated/floor/tiled/eris/steel/techfloor,
/area/gateway/arynthilake/engine)
"gh" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"hB" = (
/obj/structure/table/steel_reinforced,
@@ -85,7 +85,7 @@
"lM" = (
/obj/effect/map_effect/perma_light/gateway{
light_color = "#0c6ba6";
- light_power = .3;
+ light_power = 0.3;
light_range = 5
},
/turf/simulated/floor/beach/sand/desert,
@@ -123,10 +123,10 @@
/area/gateway/arynthilake/engine)
"nD" = (
/obj/effect/landmark/hidden_level,
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"nO" = (
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"oM" = (
/turf/simulated/floor/plating/eris/under,
@@ -157,7 +157,7 @@
/area/gateway/arynthilake/engine)
"qU" = (
/obj/random/awayloot,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"qX" = (
/obj/machinery/porta_turret{
@@ -209,7 +209,7 @@
/area/gateway/arynthilake/engine)
"xh" = (
/obj/machinery/crystal,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"zh" = (
/obj/structure/ladder/up,
@@ -229,7 +229,7 @@
/area/gateway/arynthilake/engine)
"Bj" = (
/obj/random/mob/semirandom_mob_spawner/monster/e,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"BJ" = (
/obj/effect/landmark/gateway_scatter,
@@ -253,7 +253,7 @@
/area/gateway/arynthilake/engine)
"Eb" = (
/obj/random/mob/semirandom_mob_spawner/monster/f,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"Ek" = (
/obj/machinery/light/small{
@@ -306,9 +306,7 @@
/turf/simulated/floor/tiled/eris/steel/techfloor,
/area/gateway/arynthilake/engine)
"LF" = (
-/turf/simulated/floor/plating/eris/under{
- temperature = 258.15
- },
+/turf/simulated/floor/plating/eris/under,
/area/gateway/arynthilake/underground/maintenance)
"LY" = (
/turf/simulated/floor/beach/sand/desert,
@@ -381,7 +379,7 @@
/area/gateway/arynthilake/underground/maintenance)
"YC" = (
/obj/random/mob/semirandom_mob_spawner/monster/d,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"ZY" = (
/obj/structure/table/rack/shelf/steel,
diff --git a/maps/gateway_vr/variable/arynthilakeunderground_b.dmm b/maps/gateway_vr/variable/arynthilakeunderground_b.dmm
index 75fa807ad5a..5acb316d642 100644
--- a/maps/gateway_vr/variable/arynthilakeunderground_b.dmm
+++ b/maps/gateway_vr/variable/arynthilakeunderground_b.dmm
@@ -18,7 +18,7 @@
/turf/simulated/floor/tiled/eris/steel/orangecorner,
/area/gateway/arynthilake/engine)
"bL" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"bX" = (
/turf/unsimulated/mineral,
@@ -50,7 +50,7 @@
/area/gateway/arynthilake/engine)
"eQ" = (
/obj/random/awayloot,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"fM" = (
/turf/simulated/floor/tiled/eris/steel/danger,
@@ -105,7 +105,7 @@
/area/gateway/arynthilake/engine)
"jX" = (
/obj/effect/landmark/hidden_level,
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"kb" = (
/turf/simulated/wall/r_wall,
@@ -136,7 +136,7 @@
"ng" = (
/obj/effect/map_effect/perma_light/gateway{
light_color = "#0c6ba6";
- light_power = .3;
+ light_power = 0.3;
light_range = 5
},
/turf/simulated/floor/beach/sand/desert,
@@ -188,11 +188,11 @@
"vG" = (
/obj/random/awayloot,
/obj/random/mob/semirandom_mob_spawner/monster/f,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"wg" = (
/obj/random/mob/semirandom_mob_spawner/monster/e,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"wi" = (
/turf/simulated/wall/r_wall,
@@ -261,7 +261,7 @@
/turf/simulated/floor/tiled/eris/techmaint,
/area/gateway/arynthilake/engine)
"Ff" = (
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"Fs" = (
/obj/structure/table/rack/shelf/steel,
@@ -323,7 +323,7 @@
/area/gateway/arynthilake/underground/maintenance)
"LR" = (
/obj/random/mob/semirandom_mob_spawner/monster/f,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"LY" = (
/obj/structure/table/steel_reinforced,
@@ -362,7 +362,7 @@
/area/gateway/arynthilake/engine)
"QA" = (
/obj/machinery/crystal,
-/turf/simulated/mineral/floor/ignore_cavegen,
+/turf/simulated/mineral/floor/ignore_cavegen/cave,
/area/gateway/arynthilake/underground)
"QT" = (
/obj/structure/table/steel_reinforced,
@@ -408,7 +408,7 @@
/turf/simulated/floor/plating/eris/under,
/area/gateway/arynthilake/underground/maintenance)
"Xt" = (
-/turf/simulated/mineral/ignore_cavegen,
+/turf/simulated/mineral/ignore_cavegen/cave,
/area/gateway/arynthilake/underground/maintenance)
"Xx" = (
/obj/structure/table/rack/shelf/steel,
diff --git a/maps/gateway_vr/variable/honlethhighlands_a.dmm b/maps/gateway_vr/variable/honlethhighlands_a.dmm
index a3ca7db3966..db7570d4efd 100644
--- a/maps/gateway_vr/variable/honlethhighlands_a.dmm
+++ b/maps/gateway_vr/variable/honlethhighlands_a.dmm
@@ -6,12 +6,12 @@
},
/area/gateway/honlethhighlands)
"ab" = (
-/turf/simulated/mineral/ignore_cavegen{
+/turf/simulated/mineral/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
"ac" = (
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -125,7 +125,7 @@
},
/area/gateway/honlethhighlands/caves)
"aE" = (
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
name = "dirt";
outdoors = 1;
temperature = 253.15
@@ -190,7 +190,7 @@
/area/gateway/honlethhighlands/town/command)
"aS" = (
/obj/effect/landmark/gateway_scatter,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -216,7 +216,7 @@
},
/area/gateway/honlethhighlands)
"aX" = (
-/turf/simulated/mineral/ignore_cavegen{
+/turf/simulated/mineral/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/beach)
@@ -308,7 +308,7 @@
/area/gateway/honlethhighlands/beach)
"bp" = (
/obj/random/mob/semirandom_mob_spawner/animal/retaliate/c,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -513,7 +513,7 @@
/area/gateway/honlethhighlands/gate)
"fa" = (
/obj/random/mob/semirandom_mob_spawner/animal/retaliate/b,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -540,7 +540,7 @@
/obj/item/stack/material/wood,
/obj/item/stack/material/wood,
/obj/item/stack/material/wood,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -665,7 +665,7 @@
/area/gateway/honlethhighlands)
"is" = (
/obj/item/weapon/flame/lighter/random,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -822,7 +822,7 @@
/area/gateway/honlethhighlands/beach)
"mG" = (
/obj/structure/table/bench/wooden,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -945,7 +945,7 @@
"oe" = (
/obj/structure/bonfire,
/obj/random/meat,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1025,13 +1025,13 @@
/area/gateway/honlethhighlands/town/engineering)
"pT" = (
/obj/effect/landmark/mcguffin_spawner,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
"pX" = (
/obj/random/maintenance,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1643,7 +1643,7 @@
/area/gateway/honlethhighlands/town/xenobio)
"zE" = (
/obj/random/junk,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1721,7 +1721,7 @@
"AK" = (
/obj/random/mre,
/obj/random/mre,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1968,7 +1968,7 @@
/area/gateway/honlethhighlands/gate)
"Et" = (
/obj/random/mob/semirandom_mob_spawner/animal/retaliate,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2204,7 +2204,7 @@
/area/gateway/honlethhighlands/gate)
"JM" = (
/obj/random/cigarettes,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2262,7 +2262,7 @@
/area/gateway/honlethhighlands/beach)
"Ld" = (
/obj/random/awayloot,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2321,7 +2321,7 @@
"Ms" = (
/obj/structure/table/bench/wooden,
/obj/random/mob/semirandom_mob_spawner/humanoid/retaliate,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2556,7 +2556,7 @@
/area/gateway/honlethhighlands/town/command)
"Ro" = (
/obj/random/mob/semirandom_mob_spawner/vore/passive/b,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2910,13 +2910,13 @@
/area/gateway/honlethhighlands/town/bar)
"Zw" = (
/obj/random/mob/semirandom_mob_spawner/vore/passive,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
"Zy" = (
/obj/random/drinkbottle,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
diff --git a/maps/gateway_vr/variable/honlethhighlands_b.dmm b/maps/gateway_vr/variable/honlethhighlands_b.dmm
index 73e1727581a..7de8389bc76 100644
--- a/maps/gateway_vr/variable/honlethhighlands_b.dmm
+++ b/maps/gateway_vr/variable/honlethhighlands_b.dmm
@@ -6,12 +6,12 @@
},
/area/gateway/honlethhighlands)
"ab" = (
-/turf/simulated/mineral/ignore_cavegen{
+/turf/simulated/mineral/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
"ac" = (
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -125,7 +125,7 @@
},
/area/gateway/honlethhighlands/caves)
"aE" = (
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
name = "dirt";
outdoors = 1;
temperature = 253.15
@@ -190,7 +190,7 @@
/area/gateway/honlethhighlands/town/command)
"aS" = (
/obj/effect/landmark/gateway_scatter,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -216,7 +216,7 @@
},
/area/gateway/honlethhighlands)
"aX" = (
-/turf/simulated/mineral/ignore_cavegen{
+/turf/simulated/mineral/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/beach)
@@ -520,7 +520,7 @@
/obj/item/stack/material/wood,
/obj/item/stack/material/wood,
/obj/item/stack/material/wood,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -656,13 +656,13 @@
/area/gateway/honlethhighlands)
"is" = (
/obj/item/weapon/flame/lighter/random,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
"iw" = (
/obj/random/mob/semirandom_mob_spawner/monster,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -821,7 +821,7 @@
"mo" = (
/obj/structure/table/bench/wooden,
/obj/random/mob/semirandom_mob_spawner/humanoid,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -836,7 +836,7 @@
/area/gateway/honlethhighlands)
"mG" = (
/obj/structure/table/bench/wooden,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -944,7 +944,7 @@
"oe" = (
/obj/structure/bonfire,
/obj/random/meat,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1033,13 +1033,13 @@
/area/gateway/honlethhighlands/town/engineering)
"pR" = (
/obj/random/mob/semirandom_mob_spawner/monster/c,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
"pT" = (
/obj/effect/landmark/mcguffin_spawner,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1155,7 +1155,7 @@
/area/gateway/honlethhighlands/gate)
"qO" = (
/obj/random/mob/semirandom_mob_spawner/monster/f,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1509,7 +1509,7 @@
/area/gateway/honlethhighlands/gate)
"wF" = (
/obj/random/mob/semirandom_mob_spawner/monster/b,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1677,7 +1677,7 @@
/area/gateway/honlethhighlands/town/xenobio)
"zE" = (
/obj/random/junk,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -1748,7 +1748,7 @@
"AK" = (
/obj/random/mre,
/obj/random/mre,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2197,7 +2197,7 @@
/area/gateway/honlethhighlands/gate)
"JM" = (
/obj/random/cigarettes,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2493,7 +2493,7 @@
/area/gateway/honlethhighlands/gate)
"Qm" = (
/obj/random/mob/semirandom_mob_spawner/monster/e,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2578,7 +2578,7 @@
/area/gateway/honlethhighlands/town/command)
"Ro" = (
/obj/random/mob/semirandom_mob_spawner/monster/d,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2634,7 +2634,7 @@
/area/gateway/honlethhighlands/town/supply)
"Td" = (
/obj/random/awayloot,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2887,7 +2887,7 @@
/area/gateway/honlethhighlands/town/command)
"WQ" = (
/obj/random/mob/semirandom_mob_spawner/humanoid,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
@@ -2959,7 +2959,7 @@
/area/gateway/honlethhighlands/town/bar)
"Zy" = (
/obj/random/drinkbottle,
-/turf/simulated/mineral/floor/ignore_cavegen{
+/turf/simulated/mineral/floor/ignore_cavegen/cave{
temperature = 253.15
},
/area/gateway/honlethhighlands/caves)
diff --git a/maps/gateway_vr/wildwest.dmm b/maps/gateway_vr/wildwest.dmm
index 16e6a42d3f0..4aa6d1cace9 100644
--- a/maps/gateway_vr/wildwest.dmm
+++ b/maps/gateway_vr/wildwest.dmm
@@ -98,11 +98,6 @@
},
/turf/space,
/area/space)
-"ar" = (
-/obj/structure/lattice,
-/obj/structure/lattice,
-/turf/space,
-/area/space)
"as" = (
/obj/effect/gateway,
/turf/simulated/floor/cult,
@@ -2420,7 +2415,7 @@ af
af
af
af
-ar
+af
af
af
af
@@ -7260,7 +7255,7 @@ fH
gF
cx
aD
-ar
+af
af
ia
ia
@@ -7543,7 +7538,7 @@ af
af
af
af
-ar
+af
ad
fM
nd
@@ -7671,7 +7666,7 @@ ia
ia
ia
af
-ar
+af
af
af
af
diff --git a/maps/offmap_vr/common_offmaps.dm b/maps/offmap_vr/common_offmaps.dm
index 41a1707af81..b726a2fec39 100644
--- a/maps/offmap_vr/common_offmaps.dm
+++ b/maps/offmap_vr/common_offmaps.dm
@@ -220,6 +220,33 @@
mappath = 'maps/gateway_vr/wildwest.dmm'
associated_map_datum = /datum/map_z_level/common_lateload/gateway_destination
+
+/////////////////////////////////////////////////////////////////////////////////////
+
+/datum/map_template/common_lateload/om_adventure
+ name = "OM Adventure Submap"
+ desc = "Please do not use this."
+ mappath = null
+ associated_map_datum = null
+
+/datum/map_z_level/common_lateload/om_adventure_destination
+ name = "OM Adventure Destination"
+ z = Z_LEVEL_OM_ADVENTURE
+
+#include "../om_adventure/grasscave.dm"
+/datum/map_template/common_lateload/om_adventure/grasscave
+ name = "Grass Cave"
+ desc = "Looks like a cave with some grass in it."
+ mappath = 'maps/om_adventure/grasscave.dmm'
+ associated_map_datum = /datum/map_z_level/common_lateload/om_adventure_destination
+
+/datum/map_template/common_lateload/om_adventure/grasscave/on_map_loaded(z)
+ . = ..()
+ seed_submaps(list(z), 60, /area/om_adventure/grasscave/unexplored, /datum/map_template/om_adventure/outdoor)
+ seed_submaps(list(z), 60, /area/om_adventure/grasscave/rocks, /datum/map_template/om_adventure/cave)
+ new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4)
+ new /datum/random_map/noise/ore/grasscave(null, 1, 1, z, 64, 64)
+
//////////////////////////////////////////////////////////////////////////////////////
// Admin-use z-levels for loading whenever an admin feels like
#if AWAY_MISSION_TEST
@@ -402,6 +429,53 @@
/mob/living/simple_mob/shadekin
)
+//////////////////////////////////////////////////////////////////////////////
+//Antag/Event/ERT Areas
+
+#include "../submaps/admin_use_vr/ert.dm"
+#include "../submaps/admin_use_vr/mercship.dm"
+#include "../submaps/admin_use_vr/salamander_trader.dm"
+
+/datum/map_template/admin_use/ert
+ name = "Special Area - ERT"
+ desc = "It's the ERT ship! Lorge."
+ mappath = 'maps/submaps/admin_use_vr/ert.dmm'
+
+/datum/map_template/admin_use/trader
+ name = "Special Area - Trader"
+ desc = "Big trader ship."
+ mappath = 'maps/submaps/admin_use_vr/tradeship.dmm'
+
+/datum/map_template/admin_use/salamander_trader
+ name = "Special Area - Salamander Trader"
+ desc = "Modest trader ship."
+ mappath = 'maps/submaps/admin_use_vr/salamander_trader.dmm'
+
+/datum/map_template/admin_use/mercenary
+ name = "Special Area - Merc Ship"
+ desc = "Prepare tae be boarded, arr!"
+ mappath = 'maps/submaps/admin_use_vr/kk_mercship.dmm'
+
+/datum/map_template/admin_use/skipjack
+ name = "Special Area - Skipjack Base"
+ desc = "Stinky!"
+ mappath = 'maps/submaps/admin_use_vr/skipjack.dmm'
+
+/datum/map_template/admin_use/thunderdome
+ name = "Special Area - Thunderdome"
+ desc = "Thunderrrrdomeee"
+ mappath = 'maps/submaps/admin_use_vr/thunderdome.dmm'
+
+/datum/map_template/admin_use/wizardbase
+ name = "Special Area - Wizard Base"
+ desc = "Wingardium Levosia"
+ mappath = 'maps/submaps/admin_use_vr/wizard.dmm'
+
+/datum/map_template/admin_use/dojo
+ name = "Special Area - Ninja Dojo"
+ desc = "Sneaky"
+ mappath = 'maps/submaps/admin_use_vr/dojo.dmm'
+
//////////////////////////////////////////////////////////////////////////////
//Overmap ship spawns
diff --git a/maps/om_adventure/grasscave.dm b/maps/om_adventure/grasscave.dm
new file mode 100644
index 00000000000..e9e3a21ddac
--- /dev/null
+++ b/maps/om_adventure/grasscave.dm
@@ -0,0 +1,335 @@
+#if MAP_TEST
+#include "pois/darkstar.dmm"
+#include "pois/darktear1.dmm"
+#include "pois/darktear2.dmm"
+#include "pois/darktear3.dmm"
+#include "pois/darktear4.dmm"
+#include "pois/fleshtear1.dmm"
+#include "pois/fleshtear2.dmm"
+#include "pois/fleshtear3.dmm"
+#include "pois/fleshtear4.dmm"
+#include "pois/cabin1.dmm"
+#include "pois/cabin2.dmm"
+#include "pois/cabin3.dmm"
+#include "pois/camp.dmm"
+#include "pois/shuttlewreck1.dmm"
+#include "pois/shuttlewreck2.dmm"
+#include "pois/shuttlewreck3.dmm"
+#include "pois/shuttlewreck4.dmm"
+#endif
+
+
+/obj/effect/shuttle_landmark/premade/om_adventure/grasscave/center
+ name = "Anomaly - Center"
+ landmark_tag = "om-grasscave-center"
+
+/obj/effect/shuttle_landmark/premade/om_adventure/grasscave/southeast
+ name = "Anomaly - Southeast"
+ landmark_tag = "om-grasscave-southeast"
+
+
+/area/om_adventure/grasscave
+ name = "Grass Cave"
+ icon = 'icons/turf/areas_vr.dmi'
+ icon_state = "bluwhicir"
+ requires_power = TRUE
+ dynamic_lighting = TRUE
+ flags = RAD_SHIELDED
+ base_turf = /turf/simulated/floor/weird_things/dark
+ ambience = AMBIENCE_FOREBODING
+
+/area/om_adventure/grasscave/explored
+
+/area/om_adventure/grasscave/unexplored
+ ambience = AMBIENCE_RUINS
+
+/area/om_adventure/grasscave/rocks
+
+/obj/effect/overmap/visitable/simplemob/spacewhale/grasscave
+ initial_generic_waypoints = list("om-grasscave-center", "om-grasscave-southeast")
+
+/turf/simulated/mineral/omadventure/make_ore(var/rare_ore)
+ if(mineral)
+ return
+ var/mineral_name
+ if(rare_ore)
+ mineral_name = pickweight(list(
+ "marble" = 3,
+ "uranium" = 10,
+ "platinum" = 10,
+ "hematite" = 20,
+ "carbon" = 30,
+ "diamond" = 20,
+ "gold" = 8,
+ "silver" = 8,
+ "phoron" = 18,
+ "lead" = 5,
+ "verdantium" = 5))
+ else
+ mineral_name = pickweight(list(
+ "marble" = 2,
+ "uranium" = 5,
+ "platinum" = 5,
+ "hematite" = 35,
+ "carbon" = 30,
+ "gold" = 3,
+ "silver" = 3,
+ "phoron" = 25,
+ "lead" = 1))
+
+ if(mineral_name && (mineral_name in GLOB.ore_data))
+ mineral = GLOB.ore_data[mineral_name]
+ UpdateMineral()
+ update_icon()
+
+/datum/random_map/noise/ore/grasscave
+ descriptor = "grasscave ore distribution map"
+ deep_val = 0.6 //More riches, normal is 0.7 and 0.8
+ rare_val = 0.5
+
+/datum/map_template/om_adventure
+
+/area/om_adventure/poi
+ name = "POI - OM-A"
+ icon = 'icons/turf/areas_vr.dmi'
+ icon_state = "orawhisqu"
+ ambience = AMBIENCE_FOREBODING
+
+/area/om_adventure/poi/darkstar
+ name = "POI - Darkstar"
+
+/datum/map_template/om_adventure/outdoor/darkstar
+ name = "Darkstar"
+ desc = "A mysterious shape!"
+ mappath = 'pois/darkstar.dmm'
+ cost = 5
+
+/area/om_adventure/poi/darktear1
+ name = "POI - Darktear 1"
+
+/datum/map_template/om_adventure/cave/darktear1
+ name = "darktear1"
+ desc = "A mysterious shape!"
+ mappath = 'pois/darktear1.dmm'
+ cost = 5
+
+/area/om_adventure/poi/darktear2
+ name = "POI - Darktear 2"
+
+/datum/map_template/om_adventure/cave/darktear2
+ name = "darktear2"
+ desc = "A mysterious shape!"
+ mappath = 'pois/darktear2.dmm'
+ cost = 5
+
+/area/om_adventure/poi/darktear3
+ name = "POI - Darktear 3"
+
+/datum/map_template/om_adventure/cave/darktear3
+ name = "darktear3"
+ desc = "A mysterious shape!"
+ mappath = 'pois/darktear3.dmm'
+ cost = 5
+
+/area/om_adventure/poi/darktear4
+ name = "POI - Darktear 4"
+
+/datum/map_template/om_adventure/cave/darktear4
+ name = "darktear4"
+ desc = "A mysterious shape!"
+ mappath = 'pois/darktear4.dmm'
+ cost = 5
+
+/area/om_adventure/poi/fleshtear1
+ name = "POI - Fleshtear 1"
+
+/datum/map_template/om_adventure/cave/fleshtear1
+ name = "fleshtear1"
+ desc = "Wow gross!"
+ mappath = 'pois/fleshtear1.dmm'
+ cost = 5
+
+/area/om_adventure/poi/fleshtear2
+ name = "POI - Fleshtear 2"
+
+/datum/map_template/om_adventure/cave/fleshtear2
+ name = "fleshtear2"
+ desc = "Wow gross!"
+ mappath = 'pois/fleshtear2.dmm'
+ cost = 5
+
+/area/om_adventure/poi/fleshtear3
+ name = "POI - Fleshtear 3"
+
+/datum/map_template/om_adventure/cave/fleshtear3
+ name = "fleshtear3"
+ desc = "Wow gross!"
+ mappath = 'pois/fleshtear3.dmm'
+ cost = 5
+
+/area/om_adventure/poi/fleshtear4
+ name = "POI - Fleshtear 4"
+
+/datum/map_template/om_adventure/cave/fleshtear4
+ name = "fleshtear4"
+ desc = "Wow gross!"
+ mappath = 'pois/fleshtear4.dmm'
+ cost = 5
+
+/area/om_adventure/poi/cabin1
+ name = "POI - Cabin 1"
+
+/datum/map_template/om_adventure/outdoor/cabin1
+ name = "cabin1"
+ desc = "A comfy home!"
+ mappath = 'pois/cabin1.dmm'
+ cost = 20
+
+/area/om_adventure/poi/cabin2
+ name = "POI - Cabin 2"
+
+/datum/map_template/om_adventure/outdoor/cabin2
+ name = "cabin2"
+ desc = "A comfy home!"
+ mappath = 'pois/cabin2.dmm'
+ cost = 20
+
+/area/om_adventure/poi/cabin3
+ name = "POI - Cabin 3"
+
+/datum/map_template/om_adventure/outdoor/cabin3
+ name = "cabin3"
+ desc = "A comfy... home?"
+ mappath = 'pois/cabin3.dmm'
+ cost = 10
+
+/area/om_adventure/poi/camp
+ name = "POI - Camp"
+
+/datum/map_template/om_adventure/outdoor/camp
+ name = "Camp"
+ desc = "A camp!"
+ mappath = 'pois/camp.dmm'
+ cost = 20
+
+/area/om_adventure/poi/shuttlewreck1
+ name = "POI - Shuttlewreck 1"
+
+/datum/map_template/om_adventure/outdoor/shuttlewreck1
+ name = "Shuttle wreck"
+ desc = "Long abandoned!"
+ mappath = 'pois/shuttlewreck1.dmm'
+ cost = 5
+
+/area/om_adventure/poi/shuttlewreck2
+ name = "POI - Shuttlewreck 2"
+
+/datum/map_template/om_adventure/outdoor/shuttlewreck2
+ name = "Shuttle wreck"
+ desc = "Long abandoned!"
+ mappath = 'pois/shuttlewreck2.dmm'
+ cost = 10
+
+/area/om_adventure/poi/shuttlewreck3
+ name = "POI - Shuttlewreck 3"
+
+/datum/map_template/om_adventure/outdoor/shuttlewreck3
+ name = "Shuttle wreck"
+ desc = "Long abandoned!"
+ mappath = 'pois/shuttlewreck3.dmm'
+ cost = 5
+
+/area/om_adventure/poi/shuttlewreck4
+ name = "POI - Shuttlewreck 4"
+
+/datum/map_template/om_adventure/outdoor/shuttlewreck4
+ name = "Shuttle wreck"
+ desc = "Long abandoned!"
+ mappath = 'pois/shuttlewreck4.dmm'
+ cost = 10
+
+/area/om_adventure/poi/medicalcenter
+ name = "POI - medical center"
+
+/datum/map_template/om_adventure/outdoor/medicalcenter
+ name = "Medical Center"
+ desc = "Maybe they used to heal people here."
+ mappath = 'pois/medicalcenter.dmm'
+ cost = 10
+
+/area/om_adventure/poi/shippart1
+ name = "POI - ship part 1"
+
+/datum/map_template/om_adventure/outdoor/shippart1
+ name = "Ship Part"
+ desc = "Something bad happened here."
+ mappath = 'pois/shippart1.dmm'
+ cost = 10
+
+/area/om_adventure/poi/woodentemple
+ name = "POI - Wooden Temple"
+
+/datum/map_template/om_adventure/cave/woodentemple
+ name = "Wooden Temple"
+ desc = "A comfy wooden temple."
+ mappath = 'pois/woodentemple.dmm'
+ cost = 10
+
+/area/om_adventure/poi/alienchamber1
+ name = "POI - Alien Chamber 1"
+
+/datum/map_template/om_adventure/cave/alienchamber1
+ name = "Alien Chamber"
+ desc = "A mysterious alien chamber!"
+ mappath = 'pois/alienchamber1.dmm'
+ cost = 10
+
+/area/om_adventure/poi/alienchamber2
+ name = "POI - Alien Chamber 2"
+
+/datum/map_template/om_adventure/cave/alienchamber2
+ name = "Alien Chamber"
+ desc = "A mysterious alien chamber!"
+ mappath = 'pois/alienchamber2.dmm'
+ cost = 10
+
+/area/om_adventure/poi/alienchamber3
+ name = "POI - Alien Chamber 3"
+
+/datum/map_template/om_adventure/cave/alienchamber3
+ name = "Alien Chamber"
+ desc = "A mysterious alien chamber!"
+ mappath = 'pois/alienchamber3.dmm'
+ cost = 10
+
+/area/om_adventure/poi/alienchamber4
+ name = "POI - Alien Chamber 4"
+
+/datum/map_template/om_adventure/cave/alienchamber4
+ name = "Alien Chamber"
+ desc = "A mysterious alien chamber!"
+ mappath = 'pois/alienchamber4.dmm'
+ cost = 10
+
+/obj/tether_away_spawner/spookyland
+ name = "Spookyland Spawner"
+ icon = 'icons/mob/randomlandmarks.dmi'
+ icon_state = "monster"
+
+ faction = "spookyland"
+ prob_spawn = 50
+ prob_fall = 10
+ //guard = 10 //Don't wander too far, to stay alive.
+ mobs_to_pick_from = list(
+ /mob/living/simple_mob/shadekin/blue = 1,
+ /mob/living/simple_mob/shadekin/red = 1,
+ /mob/living/simple_mob/shadekin/green = 10,
+ /mob/living/simple_mob/shadekin/purple = 1,
+ /mob/living/simple_mob/shadekin/yellow = 20,
+ /mob/living/simple_mob/vore/alienanimals/space_ghost = 100,
+ /mob/living/simple_mob/vore/alienanimals/space_jellyfish = 100,
+ /mob/living/simple_mob/faithless = 50,
+ /mob/living/simple_mob/mechanical/infectionbot = 30,
+ /mob/living/simple_mob/animal/passive/cat/bluespace = 1,
+ /mob/living/simple_mob/animal/passive/dog/void_puppy = 1
+ )
\ No newline at end of file
diff --git a/maps/om_adventure/grasscave.dmm b/maps/om_adventure/grasscave.dmm
new file mode 100644
index 00000000000..b275729757d
--- /dev/null
+++ b/maps/om_adventure/grasscave.dmm
@@ -0,0 +1,19919 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/overmap/visitable/simplemob/spacewhale/grasscave,
+/turf/unsimulated/wall/dark,
+/area/om_adventure/grasscave)
+"c" = (
+/turf/simulated/floor/outdoors/grass/forest,
+/area/om_adventure/grasscave/unexplored)
+"n" = (
+/obj/effect/shuttle_landmark/premade/om_adventure/grasscave/southeast,
+/turf/simulated/floor/outdoors/grass/forest,
+/area/om_adventure/grasscave)
+"q" = (
+/turf/simulated/mineral/cave,
+/area/om_adventure/grasscave/rocks)
+"s" = (
+/turf/simulated/mineral,
+/area/om_adventure/grasscave/rocks)
+"u" = (
+/turf/simulated/floor/outdoors/grass/forest,
+/area/om_adventure/grasscave/explored)
+"A" = (
+/obj/effect/shuttle_landmark/premade/om_adventure/grasscave/center,
+/turf/simulated/floor/outdoors/grass/forest,
+/area/om_adventure/grasscave/explored)
+"C" = (
+/turf/unsimulated/wall/dark,
+/area/om_adventure/grasscave)
+"N" = (
+/turf/simulated/floor/outdoors/grass/forest,
+/area/om_adventure/grasscave)
+"P" = (
+/turf/unsimulated/floor/dark,
+/area/om_adventure/grasscave)
+"X" = (
+/obj/effect/fake_sun,
+/turf/unsimulated/wall/dark,
+/area/om_adventure/grasscave)
+
+(1,1,1) = {"
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+X
+a
+"}
+(2,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(3,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+P
+P
+P
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+P
+P
+P
+P
+q
+P
+q
+q
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(4,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+q
+P
+P
+P
+P
+P
+P
+P
+q
+P
+P
+q
+q
+q
+q
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+P
+P
+q
+P
+P
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(5,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(6,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(7,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(8,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(9,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(10,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(11,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(12,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(13,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(14,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(15,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(16,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+s
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(17,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(18,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(19,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(20,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(21,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(22,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(23,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(24,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(25,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(26,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(27,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(28,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(29,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(30,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(31,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(32,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(33,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(34,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(35,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(36,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(37,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+C
+"}
+(38,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+C
+"}
+(39,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+C
+"}
+(40,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+C
+"}
+(41,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+C
+"}
+(42,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(43,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(44,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(45,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+c
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(46,1,1) = {"
+C
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(47,1,1) = {"
+C
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(48,1,1) = {"
+C
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(49,1,1) = {"
+C
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(50,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(51,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(52,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(53,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(54,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(55,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(56,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(57,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(58,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(59,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(60,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(61,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(62,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(63,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(64,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(65,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+C
+"}
+(66,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+C
+"}
+(67,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+C
+"}
+(68,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(69,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(70,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(71,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(72,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+A
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+N
+q
+q
+q
+N
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(73,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+N
+N
+N
+N
+N
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(74,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+N
+N
+N
+N
+N
+c
+c
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(75,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+N
+q
+q
+q
+N
+c
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(76,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(77,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(78,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(79,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(80,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(81,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(82,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(83,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(84,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+u
+u
+u
+u
+u
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(85,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(86,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+C
+"}
+(87,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(88,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(89,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(90,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(91,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+q
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(92,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(93,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(94,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(95,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+C
+"}
+(96,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(97,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+c
+c
+c
+c
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+n
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(98,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+c
+c
+c
+c
+c
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(99,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(100,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+P
+P
+q
+P
+P
+P
+q
+q
+P
+C
+"}
+(101,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+N
+N
+N
+N
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(102,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+N
+N
+N
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(103,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+N
+N
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(104,1,1) = {"
+C
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(105,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(106,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(107,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+N
+q
+N
+N
+q
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(108,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+N
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(109,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+N
+N
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(110,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+N
+N
+N
+N
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(111,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+N
+N
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(112,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(113,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(114,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+q
+P
+P
+P
+C
+"}
+(115,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(116,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(117,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(118,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(119,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+C
+"}
+(120,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(121,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(122,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(123,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+C
+"}
+(124,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(125,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(126,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+c
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(127,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+c
+c
+c
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(128,1,1) = {"
+C
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(129,1,1) = {"
+C
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(130,1,1) = {"
+C
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(131,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(132,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+C
+"}
+(133,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+C
+"}
+(134,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+q
+q
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+C
+"}
+(135,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+q
+q
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(136,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+q
+q
+q
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(137,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(138,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+q
+q
+q
+q
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(139,1,1) = {"
+C
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+P
+C
+"}
+(140,1,1) = {"
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+"}
diff --git a/maps/om_adventure/pois/alienchamber1.dmm b/maps/om_adventure/pois/alienchamber1.dmm
new file mode 100644
index 00000000000..40aae71e2c2
--- /dev/null
+++ b/maps/om_adventure/pois/alienchamber1.dmm
@@ -0,0 +1,151 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/wall/eris/r_wall,
+/area/om_adventure/poi/alienchamber1)
+"e" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber1)
+"f" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber1)
+"n" = (
+/turf/template_noop,
+/area/template_noop)
+"x" = (
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber1)
+"D" = (
+/obj/structure/table/alien,
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber1)
+"P" = (
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber1)
+"Z" = (
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber1)
+
+(1,1,1) = {"
+n
+n
+n
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+n
+n
+n
+a
+Z
+Z
+x
+x
+x
+a
+"}
+(3,1,1) = {"
+n
+n
+n
+a
+Z
+x
+e
+x
+x
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+a
+x
+P
+P
+e
+x
+a
+"}
+(5,1,1) = {"
+a
+D
+Z
+x
+x
+x
+P
+x
+Z
+a
+"}
+(6,1,1) = {"
+a
+Z
+x
+P
+x
+x
+x
+Z
+D
+a
+"}
+(7,1,1) = {"
+a
+x
+e
+f
+P
+x
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+x
+x
+e
+x
+Z
+a
+n
+n
+n
+"}
+(9,1,1) = {"
+a
+x
+x
+x
+Z
+Z
+a
+n
+n
+n
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+n
+n
+n
+"}
diff --git a/maps/om_adventure/pois/alienchamber2.dmm b/maps/om_adventure/pois/alienchamber2.dmm
new file mode 100644
index 00000000000..8366c7736a8
--- /dev/null
+++ b/maps/om_adventure/pois/alienchamber2.dmm
@@ -0,0 +1,261 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"i" = (
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber2)
+"q" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber2)
+"u" = (
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber2)
+"x" = (
+/obj/random/awayloot/looseloot,
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber2)
+"H" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber2)
+"M" = (
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber2)
+"P" = (
+/turf/simulated/wall/eris/r_wall,
+/area/om_adventure/poi/alienchamber2)
+"Q" = (
+/obj/machinery/door/airlock/alien/public,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber2)
+"W" = (
+/obj/structure/table/alien,
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber2)
+
+(1,1,1) = {"
+a
+a
+a
+a
+P
+P
+P
+P
+P
+P
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+P
+M
+M
+M
+x
+P
+P
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+P
+x
+i
+q
+i
+i
+P
+"}
+(4,1,1) = {"
+a
+a
+a
+a
+P
+M
+i
+i
+u
+i
+P
+"}
+(5,1,1) = {"
+a
+P
+P
+P
+P
+P
+P
+i
+i
+i
+P
+"}
+(6,1,1) = {"
+P
+P
+W
+M
+M
+i
+P
+i
+i
+i
+P
+"}
+(7,1,1) = {"
+P
+i
+i
+i
+i
+i
+P
+P
+Q
+P
+P
+"}
+(8,1,1) = {"
+P
+i
+i
+u
+i
+i
+P
+i
+i
+i
+P
+"}
+(9,1,1) = {"
+P
+i
+q
+H
+u
+i
+Q
+i
+q
+i
+P
+"}
+(10,1,1) = {"
+P
+i
+i
+u
+i
+i
+P
+i
+i
+i
+P
+"}
+(11,1,1) = {"
+P
+i
+i
+i
+i
+i
+P
+P
+Q
+P
+P
+"}
+(12,1,1) = {"
+P
+P
+M
+x
+M
+i
+P
+i
+i
+i
+P
+"}
+(13,1,1) = {"
+a
+P
+P
+P
+P
+P
+P
+i
+i
+i
+P
+"}
+(14,1,1) = {"
+a
+a
+a
+a
+P
+M
+i
+i
+u
+i
+P
+"}
+(15,1,1) = {"
+a
+a
+a
+a
+P
+x
+i
+q
+i
+i
+P
+"}
+(16,1,1) = {"
+a
+a
+a
+a
+P
+M
+i
+i
+x
+P
+P
+"}
+(17,1,1) = {"
+a
+a
+a
+a
+P
+P
+P
+P
+P
+P
+a
+"}
diff --git a/maps/om_adventure/pois/alienchamber3.dmm b/maps/om_adventure/pois/alienchamber3.dmm
new file mode 100644
index 00000000000..a8c3a50974a
--- /dev/null
+++ b/maps/om_adventure/pois/alienchamber3.dmm
@@ -0,0 +1,221 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber3)
+"f" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber3)
+"r" = (
+/turf/simulated/wall/eris/r_wall,
+/area/om_adventure/poi/alienchamber3)
+"P" = (
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber3)
+"V" = (
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber3)
+"X" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber3)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+r
+r
+r
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+r
+r
+P
+r
+r
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+r
+r
+P
+P
+P
+r
+r
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+r
+r
+P
+P
+c
+P
+P
+r
+r
+a
+a
+"}
+(5,1,1) = {"
+a
+r
+r
+P
+V
+P
+X
+P
+V
+P
+r
+r
+a
+"}
+(6,1,1) = {"
+r
+r
+P
+P
+P
+P
+c
+P
+P
+P
+P
+r
+r
+"}
+(7,1,1) = {"
+r
+P
+P
+c
+X
+c
+f
+c
+X
+c
+P
+P
+r
+"}
+(8,1,1) = {"
+r
+r
+P
+P
+P
+P
+c
+P
+P
+P
+P
+r
+r
+"}
+(9,1,1) = {"
+a
+r
+r
+P
+P
+V
+X
+P
+P
+P
+r
+r
+a
+"}
+(10,1,1) = {"
+a
+a
+r
+r
+P
+P
+c
+P
+P
+r
+r
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+r
+r
+P
+P
+P
+r
+r
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+a
+r
+r
+P
+r
+r
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+a
+a
+r
+r
+r
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/alienchamber4.dmm b/maps/om_adventure/pois/alienchamber4.dmm
new file mode 100644
index 00000000000..a72674a5301
--- /dev/null
+++ b/maps/om_adventure/pois/alienchamber4.dmm
@@ -0,0 +1,295 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"h" = (
+/obj/random/awayloot/looseloot,
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber4)
+"n" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber4)
+"o" = (
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber4)
+"q" = (
+/obj/structure/table/alien,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber4)
+"s" = (
+/obj/structure/table/alien,
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber4)
+"L" = (
+/turf/simulated/wall/eris/r_wall,
+/area/om_adventure/poi/alienchamber4)
+"N" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/shuttle/floor/alien/blue,
+/area/om_adventure/poi/alienchamber4)
+"O" = (
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber4)
+"R" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/om_adventure/poi/alienchamber4)
+
+(1,1,1) = {"
+a
+a
+L
+a
+a
+a
+L
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+L
+L
+L
+L
+L
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+L
+L
+L
+q
+h
+q
+L
+L
+L
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+L
+q
+O
+O
+O
+O
+L
+a
+a
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+L
+h
+O
+n
+O
+O
+L
+a
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+L
+O
+O
+O
+O
+O
+L
+a
+a
+a
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+L
+O
+O
+O
+O
+O
+L
+a
+a
+a
+a
+L
+a
+a
+"}
+(8,1,1) = {"
+a
+L
+O
+O
+O
+O
+O
+L
+L
+L
+L
+L
+L
+a
+a
+"}
+(9,1,1) = {"
+a
+L
+O
+O
+R
+O
+O
+O
+O
+O
+O
+O
+L
+L
+L
+"}
+(10,1,1) = {"
+a
+L
+O
+O
+o
+O
+O
+O
+O
+O
+O
+O
+s
+L
+a
+"}
+(11,1,1) = {"
+a
+L
+q
+o
+N
+o
+R
+O
+O
+O
+n
+O
+q
+L
+a
+"}
+(12,1,1) = {"
+a
+L
+q
+O
+o
+O
+O
+O
+O
+O
+O
+O
+q
+L
+a
+"}
+(13,1,1) = {"
+L
+L
+L
+s
+q
+O
+O
+O
+O
+O
+q
+q
+L
+L
+L
+"}
+(14,1,1) = {"
+a
+a
+L
+L
+L
+L
+L
+L
+L
+L
+L
+L
+L
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+L
+a
+a
+a
+a
+a
+a
+a
+a
+a
+L
+a
+a
+"}
diff --git a/maps/om_adventure/pois/cabin1.dmm b/maps/om_adventure/pois/cabin1.dmm
new file mode 100644
index 00000000000..0adc0845764
--- /dev/null
+++ b/maps/om_adventure/pois/cabin1.dmm
@@ -0,0 +1,324 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/structure/table/woodentable,
+/obj/random/awayloot/looseloot,
+/obj/random/tech_supply,
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/cabin1)
+"c" = (
+/obj/structure/table/reinforced,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin1)
+"d" = (
+/obj/structure/table/reinforced,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin1)
+"f" = (
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/random/meat,
+/obj/random/meat,
+/obj/random/meat,
+/obj/random/meat,
+/obj/random/meat,
+/obj/random/snack,
+/obj/random/snack,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin1)
+"g" = (
+/obj/structure/bed/chair/sofa/brown,
+/obj/random/snack,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"i" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin1)
+"j" = (
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/cabin1)
+"k" = (
+/obj/structure/table/reinforced,
+/obj/item/weapon/flame/candle,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin1)
+"r" = (
+/obj/structure/bookcase,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"s" = (
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"t" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"u" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/cabin1)
+"v" = (
+/obj/item/weapon/bedsheet/browndouble,
+/obj/structure/bed/double/padded,
+/obj/structure/curtain/black,
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/cabin1)
+"w" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/cabin1)
+"x" = (
+/obj/structure/table/reinforced,
+/obj/random/snack,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin1)
+"z" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin1)
+"B" = (
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/cabin1)
+"C" = (
+/obj/structure/bed/chair/sofa/brown/corner,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"D" = (
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin1)
+"F" = (
+/obj/structure/table/darkglass,
+/obj/random/awayloot/looseloot,
+/obj/item/weapon/flame/candle,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"H" = (
+/obj/structure/table/woodentable,
+/obj/random/tech_supply,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"I" = (
+/obj/structure/closet,
+/obj/random/awayloot/looseloot,
+/obj/random/awayloot/looseloot,
+/obj/random/tech_supply,
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/cabin1)
+"L" = (
+/obj/structure/table/woodentable,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"Q" = (
+/turf/simulated/wall/log,
+/area/om_adventure/poi/cabin1)
+"R" = (
+/obj/structure/bed/chair/sofa/brown/left{
+ dir = 8
+ },
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"S" = (
+/obj/structure/bed/chair/sofa/brown/right,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+"T" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/cabin1)
+"X" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/cabin1)
+"Z" = (
+/obj/structure/table/woodentable,
+/obj/random/tech_supply/component,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin1)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+Q
+Q
+Q
+Q
+Q
+Q
+Q
+X
+Q
+Q
+a
+"}
+(3,1,1) = {"
+a
+Q
+x
+k
+x
+d
+Q
+b
+j
+v
+Q
+a
+"}
+(4,1,1) = {"
+a
+X
+d
+i
+D
+D
+Q
+I
+j
+j
+X
+a
+"}
+(5,1,1) = {"
+a
+X
+c
+D
+D
+D
+z
+j
+T
+j
+X
+a
+"}
+(6,1,1) = {"
+a
+Q
+f
+D
+D
+D
+Q
+j
+j
+j
+Q
+a
+"}
+(7,1,1) = {"
+a
+Q
+Q
+k
+D
+Q
+Q
+Q
+Q
+Q
+Q
+a
+"}
+(8,1,1) = {"
+a
+Q
+L
+s
+s
+s
+r
+Q
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+Q
+S
+s
+s
+s
+H
+Q
+B
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+Q
+g
+s
+F
+s
+s
+u
+B
+B
+w
+a
+"}
+(11,1,1) = {"
+a
+Q
+C
+R
+t
+s
+Z
+Q
+B
+a
+a
+B
+"}
+(12,1,1) = {"
+a
+Q
+Q
+X
+X
+X
+Q
+Q
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/cabin2.dmm b/maps/om_adventure/pois/cabin2.dmm
new file mode 100644
index 00000000000..31b9b10e2d6
--- /dev/null
+++ b/maps/om_adventure/pois/cabin2.dmm
@@ -0,0 +1,404 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin2)
+"e" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/cabin2)
+"g" = (
+/obj/structure/table/rack/shelf,
+/obj/random/mre,
+/obj/random/mre,
+/obj/random/mre,
+/obj/random/mre,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin2)
+"i" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/outdoors/sidewalk/side,
+/area/om_adventure/poi/cabin2)
+"k" = (
+/turf/simulated/wall/log,
+/area/om_adventure/poi/cabin2)
+"l" = (
+/obj/structure/table/steel,
+/obj/random/multiple/underdark/treasure,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin2)
+"n" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+"p" = (
+/obj/structure/table/woodentable,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+"q" = (
+/obj/structure/table/steel,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin2)
+"r" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"s" = (
+/obj/structure/bed/chair/sofa/corp/right,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+"t" = (
+/obj/structure/bed/chair/sofa/brown/corner,
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"u" = (
+/obj/structure/toilet/prison{
+ dir = 8
+ },
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/tiled/techmaint,
+/area/om_adventure/poi/cabin2)
+"v" = (
+/obj/structure/bed/chair/sofa/brown/left{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"w" = (
+/obj/structure/table/rack,
+/obj/random/maintenance,
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"x" = (
+/obj/structure/bed/double/padded,
+/obj/item/weapon/bedsheet/browndouble,
+/obj/structure/curtain/black,
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/cabin2)
+"y" = (
+/obj/structure/table/steel,
+/obj/random/material,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin2)
+"z" = (
+/turf/simulated/floor/outdoors/sidewalk/side,
+/area/om_adventure/poi/cabin2)
+"A" = (
+/obj/structure/bed/chair/sofa/brown,
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"B" = (
+/obj/structure/table/rack,
+/obj/random/maintenance,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"D" = (
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+"E" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/cabin2)
+"F" = (
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/cabin2)
+"H" = (
+/obj/structure/table/woodentable,
+/obj/random/snack,
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"I" = (
+/obj/structure/table/woodentable,
+/obj/random/awayloot/looseloot,
+/obj/random/maintenance,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+"J" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+"K" = (
+/obj/structure/bed/chair/sofa/brown/right{
+ dir = 4
+ },
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"L" = (
+/obj/structure/table/woodentable,
+/obj/random/maintenance,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+"M" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/cabin2)
+"N" = (
+/obj/structure/sink{
+ pixel_y = 18
+ },
+/turf/simulated/floor/tiled/techmaint,
+/area/om_adventure/poi/cabin2)
+"O" = (
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin2)
+"P" = (
+/obj/structure/bed/chair/sofa/brown/corner{
+ dir = 1
+ },
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"Q" = (
+/turf/simulated/floor/carpet/bcarpet,
+/area/om_adventure/poi/cabin2)
+"S" = (
+/turf/simulated/floor/tiled/techmaint,
+/area/om_adventure/poi/cabin2)
+"T" = (
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/cabin2)
+"V" = (
+/obj/structure/table/rack,
+/obj/random/awayloot/looseloot,
+/obj/random/tech_supply,
+/obj/random/tech_supply,
+/turf/simulated/floor/bmarble,
+/area/om_adventure/poi/cabin2)
+"X" = (
+/obj/structure/bed/chair/sofa/corp/left,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+"Y" = (
+/obj/structure/table/woodentable,
+/obj/random/awayloot/looseloot,
+/obj/random/maintenance,
+/obj/random/maintenance,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin2)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+F
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+k
+k
+M
+M
+k
+k
+a
+a
+a
+k
+k
+M
+M
+M
+k
+k
+a
+"}
+(3,1,1) = {"
+a
+k
+P
+K
+Q
+B
+k
+a
+i
+a
+k
+I
+D
+T
+T
+x
+k
+a
+"}
+(4,1,1) = {"
+a
+k
+A
+H
+r
+Q
+M
+a
+z
+a
+M
+L
+D
+T
+E
+T
+M
+a
+"}
+(5,1,1) = {"
+a
+k
+t
+v
+Q
+w
+k
+k
+e
+k
+k
+D
+D
+T
+T
+T
+M
+a
+"}
+(6,1,1) = {"
+a
+k
+k
+k
+e
+k
+k
+V
+O
+V
+k
+D
+D
+J
+p
+L
+k
+a
+"}
+(7,1,1) = {"
+a
+k
+Y
+L
+D
+D
+k
+g
+c
+O
+k
+D
+D
+k
+k
+k
+k
+a
+"}
+(8,1,1) = {"
+a
+M
+s
+n
+D
+D
+e
+O
+O
+O
+e
+D
+D
+e
+S
+S
+k
+a
+"}
+(9,1,1) = {"
+a
+k
+X
+D
+D
+p
+k
+y
+q
+l
+k
+p
+L
+k
+N
+u
+k
+a
+"}
+(10,1,1) = {"
+a
+k
+k
+M
+M
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/cabin3.dmm b/maps/om_adventure/pois/cabin3.dmm
new file mode 100644
index 00000000000..02adedf2c1c
--- /dev/null
+++ b/maps/om_adventure/pois/cabin3.dmm
@@ -0,0 +1,161 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/wall/wood,
+/area/om_adventure/poi/cabin3)
+"d" = (
+/obj/structure/bonfire,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/cabin3)
+"i" = (
+/turf/template_noop,
+/area/template_noop)
+"k" = (
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin3)
+"n" = (
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/cabin3)
+"r" = (
+/obj/effect/decal/remains,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/cabin3)
+"z" = (
+/turf/template_noop,
+/area/om_adventure/poi/cabin3)
+"M" = (
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin3)
+"S" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/cabin3)
+"T" = (
+/obj/tether_away_spawner/spookyland,
+/turf/template_noop,
+/area/om_adventure/poi/cabin3)
+"V" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/cabin3)
+
+(1,1,1) = {"
+a
+a
+a
+a
+z
+z
+z
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+k
+M
+M
+z
+T
+z
+z
+M
+a
+"}
+(3,1,1) = {"
+z
+z
+M
+M
+z
+z
+n
+k
+M
+a
+"}
+(4,1,1) = {"
+z
+z
+n
+M
+M
+n
+n
+S
+M
+a
+"}
+(5,1,1) = {"
+z
+T
+n
+n
+r
+n
+M
+M
+M
+a
+"}
+(6,1,1) = {"
+z
+z
+n
+n
+n
+n
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+M
+z
+n
+n
+n
+a
+i
+i
+i
+"}
+(8,1,1) = {"
+z
+z
+k
+z
+n
+n
+a
+i
+i
+i
+"}
+(9,1,1) = {"
+a
+M
+M
+z
+V
+n
+a
+i
+d
+i
+"}
+(10,1,1) = {"
+a
+a
+a
+z
+z
+z
+a
+i
+i
+i
+"}
diff --git a/maps/om_adventure/pois/camp.dmm b/maps/om_adventure/pois/camp.dmm
new file mode 100644
index 00000000000..13960f38546
--- /dev/null
+++ b/maps/om_adventure/pois/camp.dmm
@@ -0,0 +1,258 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"n" = (
+/obj/structure/table/rack/steel,
+/obj/fiftyspawner/log,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/camp)
+"x" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/camp)
+"y" = (
+/obj/structure/flora/tree/bigtree,
+/turf/template_noop,
+/area/om_adventure/poi/camp)
+"z" = (
+/obj/structure/table/rack/steel,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/camp)
+"A" = (
+/obj/structure/bonfire,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/camp)
+"H" = (
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/camp)
+"M" = (
+/turf/simulated/wall/log,
+/area/om_adventure/poi/camp)
+"U" = (
+/obj/structure/table/rack/steel,
+/obj/item/weapon/storage/box/matches,
+/turf/simulated/floor/outdoors/newdirt,
+/area/om_adventure/poi/camp)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+M
+M
+M
+M
+M
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+y
+a
+a
+a
+M
+n
+z
+U
+M
+a
+H
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+H
+a
+M
+H
+x
+H
+M
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+H
+a
+a
+a
+a
+a
+x
+H
+H
+a
+a
+H
+a
+a
+H
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+a
+a
+a
+H
+H
+H
+H
+H
+a
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+H
+H
+a
+H
+H
+H
+A
+H
+H
+H
+a
+H
+H
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+a
+a
+a
+a
+H
+H
+H
+H
+H
+a
+a
+a
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+H
+H
+x
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+y
+a
+a
+H
+a
+a
+a
+a
+y
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/darkstar.dmm b/maps/om_adventure/pois/darkstar.dmm
new file mode 100644
index 00000000000..a41ef6cb59b
--- /dev/null
+++ b/maps/om_adventure/pois/darkstar.dmm
@@ -0,0 +1,93 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"e" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darkstar)
+"z" = (
+/mob/living/simple_mob/vore/alienanimals/space_ghost,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darkstar)
+
+(1,1,1) = {"
+a
+a
+a
+e
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+e
+a
+a
+a
+e
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+e
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+e
+e
+e
+a
+a
+"}
+(5,1,1) = {"
+e
+e
+e
+z
+e
+e
+e
+"}
+(6,1,1) = {"
+a
+a
+e
+e
+e
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+a
+e
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+e
+a
+a
+a
+e
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+e
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/darktear1.dmm b/maps/om_adventure/pois/darktear1.dmm
new file mode 100644
index 00000000000..224bb457bf6
--- /dev/null
+++ b/maps/om_adventure/pois/darktear1.dmm
@@ -0,0 +1,93 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darktear1)
+"I" = (
+/turf/template_noop,
+/area/template_noop)
+"Z" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darktear1)
+
+(1,1,1) = {"
+I
+I
+I
+I
+I
+I
+a
+"}
+(2,1,1) = {"
+I
+I
+a
+I
+I
+a
+I
+"}
+(3,1,1) = {"
+I
+I
+I
+I
+a
+a
+I
+"}
+(4,1,1) = {"
+I
+I
+I
+a
+a
+a
+I
+"}
+(5,1,1) = {"
+I
+I
+a
+Z
+a
+I
+I
+"}
+(6,1,1) = {"
+I
+I
+a
+a
+a
+I
+I
+"}
+(7,1,1) = {"
+I
+a
+a
+a
+I
+I
+I
+"}
+(8,1,1) = {"
+I
+a
+I
+I
+I
+a
+I
+"}
+(9,1,1) = {"
+a
+I
+I
+I
+I
+I
+I
+"}
diff --git a/maps/om_adventure/pois/darktear2.dmm b/maps/om_adventure/pois/darktear2.dmm
new file mode 100644
index 00000000000..a4932cf5cf0
--- /dev/null
+++ b/maps/om_adventure/pois/darktear2.dmm
@@ -0,0 +1,93 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darktear2)
+"Q" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darktear2)
+"S" = (
+/turf/template_noop,
+/area/template_noop)
+
+(1,1,1) = {"
+a
+S
+S
+S
+S
+S
+S
+"}
+(2,1,1) = {"
+S
+a
+a
+S
+S
+a
+S
+"}
+(3,1,1) = {"
+S
+Q
+a
+S
+S
+S
+S
+"}
+(4,1,1) = {"
+S
+a
+a
+a
+a
+S
+S
+"}
+(5,1,1) = {"
+S
+S
+a
+a
+a
+a
+S
+"}
+(6,1,1) = {"
+S
+S
+a
+a
+a
+a
+S
+"}
+(7,1,1) = {"
+S
+S
+a
+a
+Q
+a
+S
+"}
+(8,1,1) = {"
+S
+a
+S
+a
+a
+a
+S
+"}
+(9,1,1) = {"
+S
+S
+S
+S
+S
+S
+a
+"}
diff --git a/maps/om_adventure/pois/darktear3.dmm b/maps/om_adventure/pois/darktear3.dmm
new file mode 100644
index 00000000000..89a5dec5535
--- /dev/null
+++ b/maps/om_adventure/pois/darktear3.dmm
@@ -0,0 +1,89 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"v" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darktear3)
+"Y" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darktear3)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+v
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+v
+v
+v
+a
+a
+a
+a
+v
+"}
+(4,1,1) = {"
+a
+a
+v
+v
+v
+v
+v
+v
+a
+"}
+(5,1,1) = {"
+a
+a
+v
+v
+Y
+v
+v
+v
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+a
+v
+v
+v
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/darktear4.dmm b/maps/om_adventure/pois/darktear4.dmm
new file mode 100644
index 00000000000..655e97b230b
--- /dev/null
+++ b/maps/om_adventure/pois/darktear4.dmm
@@ -0,0 +1,89 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"g" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darktear4)
+"j" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/darktear4)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+j
+a
+a
+a
+a
+a
+a
+j
+"}
+(3,1,1) = {"
+a
+a
+g
+j
+j
+j
+a
+j
+a
+"}
+(4,1,1) = {"
+a
+j
+j
+j
+j
+j
+j
+j
+a
+"}
+(5,1,1) = {"
+j
+a
+a
+a
+j
+j
+g
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+a
+a
+j
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+a
+a
+a
+a
+j
+a
+a
+"}
diff --git a/maps/om_adventure/pois/fleshtear1.dmm b/maps/om_adventure/pois/fleshtear1.dmm
new file mode 100644
index 00000000000..e2a3d25f185
--- /dev/null
+++ b/maps/om_adventure/pois/fleshtear1.dmm
@@ -0,0 +1,166 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/mob/living/simple_mob/creature,
+/turf/simulated/floor/flesh{
+ base_icon = 'icons/turf/stomach_vr.dmi'
+ },
+/area/om_adventure/poi/fleshtear1)
+"K" = (
+/turf/simulated/floor/flesh{
+ base_icon = 'icons/turf/stomach_vr.dmi'
+ },
+/area/om_adventure/poi/fleshtear1)
+
+(1,1,1) = {"
+a
+a
+a
+K
+K
+a
+a
+a
+a
+K
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+K
+K
+a
+a
+a
+K
+K
+K
+a
+K
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+K
+K
+K
+K
+K
+a
+K
+K
+"}
+(4,1,1) = {"
+K
+K
+K
+K
+K
+K
+b
+K
+K
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+K
+K
+K
+K
+K
+K
+K
+K
+K
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+K
+K
+K
+K
+K
+K
+K
+a
+a
+a
+K
+a
+"}
+(7,1,1) = {"
+a
+a
+K
+b
+K
+K
+K
+K
+K
+a
+K
+K
+a
+"}
+(8,1,1) = {"
+K
+a
+K
+K
+K
+K
+K
+K
+K
+a
+K
+a
+a
+"}
+(9,1,1) = {"
+K
+a
+a
+K
+K
+K
+K
+a
+a
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+K
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/fleshtear2.dmm b/maps/om_adventure/pois/fleshtear2.dmm
new file mode 100644
index 00000000000..19d435ce330
--- /dev/null
+++ b/maps/om_adventure/pois/fleshtear2.dmm
@@ -0,0 +1,79 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/floor/flesh{
+ base_icon = 'icons/turf/stomach_vr.dmi'
+ },
+/area/om_adventure/poi/fleshtear2)
+"B" = (
+/turf/template_noop,
+/area/template_noop)
+"H" = (
+/mob/living/simple_mob/creature,
+/turf/simulated/floor/flesh{
+ base_icon = 'icons/turf/stomach_vr.dmi'
+ },
+/area/om_adventure/poi/fleshtear2)
+
+(1,1,1) = {"
+B
+B
+B
+B
+B
+a
+a
+"}
+(2,1,1) = {"
+B
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+B
+B
+a
+a
+a
+a
+B
+"}
+(4,1,1) = {"
+B
+B
+a
+H
+a
+a
+B
+"}
+(5,1,1) = {"
+B
+a
+a
+a
+a
+a
+B
+"}
+(6,1,1) = {"
+a
+a
+a
+a
+a
+B
+B
+"}
+(7,1,1) = {"
+a
+a
+B
+B
+B
+B
+B
+"}
diff --git a/maps/om_adventure/pois/fleshtear3.dmm b/maps/om_adventure/pois/fleshtear3.dmm
new file mode 100644
index 00000000000..1c77a349960
--- /dev/null
+++ b/maps/om_adventure/pois/fleshtear3.dmm
@@ -0,0 +1,115 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"M" = (
+/mob/living/simple_mob/creature,
+/turf/simulated/floor/flesh{
+ base_icon = 'icons/turf/stomach_vr.dmi'
+ },
+/area/om_adventure/poi/fleshtear3)
+"Q" = (
+/turf/simulated/floor/flesh{
+ base_icon = 'icons/turf/stomach_vr.dmi'
+ },
+/area/om_adventure/poi/fleshtear3)
+
+(1,1,1) = {"
+a
+a
+Q
+Q
+Q
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+Q
+a
+a
+Q
+Q
+Q
+Q
+a
+"}
+(3,1,1) = {"
+Q
+Q
+Q
+a
+a
+a
+a
+Q
+a
+"}
+(4,1,1) = {"
+Q
+a
+Q
+Q
+Q
+Q
+a
+Q
+Q
+"}
+(5,1,1) = {"
+Q
+a
+Q
+M
+Q
+Q
+a
+Q
+Q
+"}
+(6,1,1) = {"
+Q
+a
+Q
+Q
+Q
+a
+a
+a
+Q
+"}
+(7,1,1) = {"
+Q
+Q
+a
+Q
+Q
+Q
+a
+Q
+Q
+"}
+(8,1,1) = {"
+a
+Q
+Q
+a
+Q
+Q
+Q
+Q
+Q
+"}
+(9,1,1) = {"
+a
+a
+Q
+Q
+a
+Q
+Q
+Q
+a
+"}
diff --git a/maps/om_adventure/pois/fleshtear4.dmm b/maps/om_adventure/pois/fleshtear4.dmm
new file mode 100644
index 00000000000..077d29a8b7c
--- /dev/null
+++ b/maps/om_adventure/pois/fleshtear4.dmm
@@ -0,0 +1,86 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"m" = (
+/turf/simulated/floor/flesh{
+ base_icon = 'icons/turf/stomach_vr.dmi'
+ },
+/area/om_adventure/poi/fleshtear4)
+"n" = (
+/mob/living/simple_mob/creature,
+/turf/simulated/floor/flesh{
+ base_icon = 'icons/turf/stomach_vr.dmi'
+ },
+/area/om_adventure/poi/fleshtear4)
+
+(1,1,1) = {"
+m
+m
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+m
+m
+m
+a
+"}
+(3,1,1) = {"
+a
+a
+n
+m
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+m
+m
+"}
+(5,1,1) = {"
+a
+a
+m
+m
+m
+"}
+(6,1,1) = {"
+a
+a
+m
+m
+m
+"}
+(7,1,1) = {"
+a
+m
+m
+m
+a
+"}
+(8,1,1) = {"
+a
+n
+m
+m
+a
+"}
+(9,1,1) = {"
+m
+m
+a
+a
+a
+"}
+(10,1,1) = {"
+m
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/medicalcenter.dmm b/maps/om_adventure/pois/medicalcenter.dmm
new file mode 100644
index 00000000000..aea560a0af7
--- /dev/null
+++ b/maps/om_adventure/pois/medicalcenter.dmm
@@ -0,0 +1,328 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"j" = (
+/obj/machinery/door/airlock/angled_bay/standard/glass,
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/medicalcenter)
+"k" = (
+/obj/random/pottedplant,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"m" = (
+/obj/structure/bed/padded,
+/obj/item/weapon/bedsheet/medical,
+/obj/structure/curtain/medical,
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"q" = (
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"r" = (
+/obj/structure/salvageable/machine,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"t" = (
+/obj/effect/low_wall_spawner/eris/reinforced/rphoron,
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/medicalcenter)
+"v" = (
+/obj/structure/table/glass,
+/obj/structure/salvageable/personal,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"y" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"z" = (
+/obj/structure/bed/chair/sofa/blue/left{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"A" = (
+/turf/simulated/wall/eris/r_wall,
+/area/om_adventure/poi/medicalcenter)
+"C" = (
+/obj/structure/bed/chair/sofa/blue/right,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"D" = (
+/obj/structure/table/glass,
+/obj/random/medical,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"E" = (
+/obj/structure/salvageable/computer,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"G" = (
+/obj/structure/table/glass,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"H" = (
+/obj/structure/table/glass,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"I" = (
+/obj/structure/bed/padded,
+/obj/item/weapon/bedsheet/medical,
+/obj/structure/curtain/medical,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"P" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"Q" = (
+/obj/machinery/door/airlock/angled_bay/standard/glass{
+ dir = 4
+ },
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/medicalcenter)
+"T" = (
+/obj/structure/table/glass,
+/obj/random/medical,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"W" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"X" = (
+/obj/structure/table/glass,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+"Z" = (
+/obj/structure/bed/chair/sofa/blue/corner,
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/tiled/eris/white/orangecorner,
+/area/om_adventure/poi/medicalcenter)
+
+(1,1,1) = {"
+a
+a
+a
+A
+a
+A
+a
+a
+A
+a
+A
+a
+"}
+(2,1,1) = {"
+a
+a
+A
+A
+A
+A
+t
+t
+A
+A
+A
+A
+"}
+(3,1,1) = {"
+a
+a
+a
+A
+C
+q
+q
+q
+q
+H
+A
+a
+"}
+(4,1,1) = {"
+a
+A
+a
+A
+Z
+z
+q
+q
+q
+T
+A
+a
+"}
+(5,1,1) = {"
+A
+A
+A
+A
+A
+A
+k
+y
+q
+X
+A
+a
+"}
+(6,1,1) = {"
+a
+A
+E
+G
+q
+A
+A
+A
+Q
+A
+A
+A
+"}
+(7,1,1) = {"
+a
+t
+q
+H
+q
+A
+q
+W
+q
+k
+A
+a
+"}
+(8,1,1) = {"
+a
+A
+q
+P
+q
+j
+q
+q
+P
+q
+j
+a
+"}
+(9,1,1) = {"
+a
+t
+q
+T
+q
+A
+q
+y
+q
+k
+A
+a
+"}
+(10,1,1) = {"
+a
+A
+r
+v
+q
+A
+A
+A
+Q
+A
+A
+A
+"}
+(11,1,1) = {"
+A
+A
+A
+A
+A
+A
+m
+D
+q
+I
+A
+a
+"}
+(12,1,1) = {"
+a
+A
+a
+A
+k
+q
+q
+q
+q
+k
+A
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+A
+H
+I
+H
+I
+T
+I
+A
+a
+"}
+(14,1,1) = {"
+a
+a
+A
+A
+A
+A
+t
+t
+A
+A
+A
+A
+"}
+(15,1,1) = {"
+a
+a
+a
+A
+a
+A
+a
+a
+A
+a
+A
+a
+"}
diff --git a/maps/om_adventure/pois/shippart1.dmm b/maps/om_adventure/pois/shippart1.dmm
new file mode 100644
index 00000000000..7d2831eade1
--- /dev/null
+++ b/maps/om_adventure/pois/shippart1.dmm
@@ -0,0 +1,396 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/floor/tiled/eris/dark/techfloor,
+/area/om_adventure/poi/shippart1)
+"d" = (
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shippart1)
+"g" = (
+/turf/simulated/wall/eris/r_wall,
+/area/om_adventure/poi/shippart1)
+"h" = (
+/obj/random/awayloot/looseloot,
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/shippart1)
+"j" = (
+/obj/tether_away_spawner/spookyland,
+/turf/template_noop,
+/area/template_noop)
+"p" = (
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/shippart1)
+"q" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/tiled/eris/dark/techfloor,
+/area/om_adventure/poi/shippart1)
+"r" = (
+/obj/item/weapon/material/shard,
+/turf/template_noop,
+/area/template_noop)
+"s" = (
+/obj/random/tech_supply/component,
+/turf/simulated/floor/tiled/eris/dark/techfloor,
+/area/om_adventure/poi/shippart1)
+"t" = (
+/obj/structure/frame/computer,
+/obj/random/tech_supply/component,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shippart1)
+"v" = (
+/obj/effect/floor_decal/rust,
+/obj/random/tech_supply/component,
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/shippart1)
+"w" = (
+/obj/effect/decal/remains/tajaran,
+/turf/template_noop,
+/area/template_noop)
+"D" = (
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shippart1)
+"F" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shippart1)
+"I" = (
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/shippart1)
+"J" = (
+/obj/structure/salvageable/bliss,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shippart1)
+"M" = (
+/obj/item/weapon/material/shard,
+/obj/effect/floor_decal/rust,
+/turf/simulated/floor/plating/eris/under,
+/area/om_adventure/poi/shippart1)
+"O" = (
+/obj/effect/decal/remains/ribcage,
+/turf/template_noop,
+/area/template_noop)
+"Q" = (
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shippart1)
+"R" = (
+/obj/random/tech_supply/component,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shippart1)
+"T" = (
+/obj/item/weapon/material/shard/shrapnel,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shippart1)
+"X" = (
+/obj/item/weapon/material/shard/shrapnel,
+/turf/template_noop,
+/area/template_noop)
+"Z" = (
+/obj/effect/decal/remains/deer,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shippart1)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+F
+a
+a
+a
+F
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+F
+j
+a
+X
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+X
+a
+a
+F
+a
+a
+X
+a
+F
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+w
+a
+F
+F
+g
+g
+v
+g
+a
+r
+j
+a
+F
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+X
+a
+X
+a
+F
+g
+g
+g
+t
+I
+p
+F
+F
+F
+F
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+F
+g
+M
+g
+d
+D
+Z
+D
+I
+I
+F
+F
+F
+F
+F
+a
+a
+F
+F
+"}
+(7,1,1) = {"
+a
+F
+T
+M
+t
+b
+q
+s
+b
+b
+b
+I
+I
+F
+F
+F
+F
+F
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+r
+F
+g
+I
+g
+R
+Q
+d
+D
+M
+v
+F
+F
+F
+F
+F
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+F
+g
+g
+g
+J
+I
+h
+D
+I
+I
+F
+a
+a
+a
+a
+a
+F
+"}
+(10,1,1) = {"
+a
+a
+j
+T
+a
+F
+F
+g
+g
+I
+g
+g
+g
+g
+a
+a
+F
+F
+F
+a
+a
+"}
+(11,1,1) = {"
+a
+X
+a
+a
+X
+a
+a
+a
+a
+a
+T
+a
+a
+a
+j
+a
+a
+a
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+X
+a
+a
+a
+O
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+a
+a
+a
+F
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/shuttlewreck1.dmm b/maps/om_adventure/pois/shuttlewreck1.dmm
new file mode 100644
index 00000000000..c57959fc950
--- /dev/null
+++ b/maps/om_adventure/pois/shuttlewreck1.dmm
@@ -0,0 +1,152 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"e" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck1)
+"g" = (
+/obj/random/tech_supply/component,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck1)
+"i" = (
+/obj/machinery/door/airlock/external,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck1)
+"m" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck1)
+"s" = (
+/obj/structure/shuttle/window,
+/obj/structure/grille,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck1)
+"t" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck1)
+"v" = (
+/obj/random/tech_supply/component,
+/turf/template_noop,
+/area/template_noop)
+"D" = (
+/obj/structure/shuttle/engine/propulsion,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck1)
+"M" = (
+/turf/simulated/shuttle/wall,
+/area/om_adventure/poi/shuttlewreck1)
+"P" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 1
+ },
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck1)
+"W" = (
+/obj/random/tech_supply,
+/turf/template_noop,
+/area/template_noop)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+W
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+e
+a
+a
+a
+e
+a
+"}
+(3,1,1) = {"
+e
+t
+e
+g
+a
+e
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+e
+M
+M
+M
+M
+D
+g
+a
+"}
+(5,1,1) = {"
+e
+e
+s
+P
+m
+i
+e
+e
+e
+"}
+(6,1,1) = {"
+a
+e
+M
+M
+M
+M
+D
+t
+a
+"}
+(7,1,1) = {"
+a
+e
+e
+e
+a
+e
+v
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/shuttlewreck2.dmm b/maps/om_adventure/pois/shuttlewreck2.dmm
new file mode 100644
index 00000000000..c741ee70559
--- /dev/null
+++ b/maps/om_adventure/pois/shuttlewreck2.dmm
@@ -0,0 +1,330 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/obj/structure/table/steel_reinforced,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/random/tech_supply/component,
+/obj/random/tech_supply,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"e" = (
+/obj/machinery/atmospherics/portables_connector/fuel{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/phoron{
+ start_pressure = 0
+ },
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"g" = (
+/obj/structure/cable/green{
+ icon_state = "4-10"
+ },
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"h" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
+ dir = 10
+ },
+/turf/simulated/shuttle/wall,
+/area/om_adventure/poi/shuttlewreck2)
+"l" = (
+/obj/structure/window/reinforced,
+/obj/structure/shuttle/engine/heater{
+ dir = 1
+ },
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"m" = (
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"n" = (
+/obj/structure/table/steel_reinforced,
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"o" = (
+/obj/structure/frame/computer,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"p" = (
+/obj/structure/table/steel_reinforced,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/random/tech_supply,
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"q" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"r" = (
+/obj/structure/shuttle/engine/propulsion,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"s" = (
+/obj/machinery/door/airlock/external,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"v" = (
+/obj/structure/cable/green,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"w" = (
+/obj/tether_away_spawner/spookyland,
+/turf/template_noop,
+/area/template_noop)
+"x" = (
+/obj/machinery/power/port_gen/pacman,
+/obj/structure/cable/green{
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"y" = (
+/turf/simulated/shuttle/wall/hard_corner,
+/area/om_adventure/poi/shuttlewreck2)
+"A" = (
+/turf/simulated/shuttle/wall,
+/area/om_adventure/poi/shuttlewreck2)
+"B" = (
+/obj/structure/table/steel_reinforced,
+/obj/random/tech_supply/component,
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"D" = (
+/obj/structure/cable/green{
+ icon_state = "2-5"
+ },
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"E" = (
+/obj/structure/table/rack/steel,
+/obj/random/tech_supply/component,
+/obj/random/tech_supply/component,
+/obj/random/tech_supply/component,
+/obj/random/tech_supply/component,
+/obj/random/tech_supply/component,
+/obj/random/tech_supply,
+/obj/random/tech_supply,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"J" = (
+/obj/structure/table/rack/steel,
+/obj/item/frame/apc,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"K" = (
+/obj/structure/table/rack/steel,
+/obj/item/weapon/tank/phoron,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"N" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
+ dir = 6
+ },
+/turf/simulated/shuttle/wall,
+/area/om_adventure/poi/shuttlewreck2)
+"P" = (
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"R" = (
+/obj/machinery/atmospherics/portables_connector/fuel{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/phoron{
+ start_pressure = 0
+ },
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"T" = (
+/obj/structure/shuttle/window,
+/obj/structure/grille,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+"U" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck2)
+"V" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck2)
+"W" = (
+/obj/structure/shuttle/engine/heater{
+ dir = 1
+ },
+/obj/structure/window/reinforced,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck2)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+U
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+w
+U
+A
+A
+A
+N
+A
+A
+a
+"}
+(3,1,1) = {"
+a
+a
+A
+A
+K
+E
+e
+W
+r
+a
+"}
+(4,1,1) = {"
+a
+A
+A
+P
+m
+m
+m
+W
+r
+a
+"}
+(5,1,1) = {"
+U
+A
+c
+n
+P
+P
+q
+y
+A
+a
+"}
+(6,1,1) = {"
+a
+T
+o
+P
+P
+P
+A
+A
+a
+a
+"}
+(7,1,1) = {"
+a
+T
+o
+V
+P
+P
+s
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+T
+o
+P
+P
+P
+A
+A
+U
+a
+"}
+(9,1,1) = {"
+a
+A
+p
+B
+P
+D
+v
+y
+A
+a
+"}
+(10,1,1) = {"
+U
+A
+A
+P
+g
+m
+m
+l
+r
+a
+"}
+(11,1,1) = {"
+a
+U
+A
+A
+x
+J
+R
+l
+r
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+A
+A
+A
+h
+A
+A
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+a
+U
+a
+a
+a
+w
+a
+"}
diff --git a/maps/om_adventure/pois/shuttlewreck3.dmm b/maps/om_adventure/pois/shuttlewreck3.dmm
new file mode 100644
index 00000000000..005ceb21c9d
--- /dev/null
+++ b/maps/om_adventure/pois/shuttlewreck3.dmm
@@ -0,0 +1,210 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck3)
+"f" = (
+/obj/random/tech_supply,
+/turf/template_noop,
+/area/template_noop)
+"h" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck3)
+"k" = (
+/turf/simulated/shuttle/wall,
+/area/om_adventure/poi/shuttlewreck3)
+"m" = (
+/obj/item/weapon/material/shard/shrapnel,
+/turf/template_noop,
+/area/template_noop)
+"p" = (
+/obj/item/weapon/material/shard/shrapnel,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck3)
+"u" = (
+/obj/item/weapon/material/shard/shrapnel,
+/obj/random/awayloot/looseloot,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck3)
+"x" = (
+/obj/structure/door_assembly/door_assembly_ext,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck3)
+"D" = (
+/obj/random/tech_supply,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck3)
+"F" = (
+/obj/structure/grille/broken,
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck3)
+"H" = (
+/obj/random/tech_supply/component,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck3)
+"I" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8
+ },
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck3)
+"K" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 1
+ },
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck3)
+"Q" = (
+/obj/item/weapon/material/shard/shrapnel,
+/obj/effect/gibspawner/human,
+/obj/random/contraband/nofail,
+/turf/simulated/shuttle/floor/white,
+/area/om_adventure/poi/shuttlewreck3)
+"S" = (
+/obj/random/contraband/nofail,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck3)
+"Z" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck3)
+
+(1,1,1) = {"
+a
+a
+a
+h
+a
+a
+a
+"}
+(2,1,1) = {"
+h
+a
+a
+h
+a
+a
+h
+"}
+(3,1,1) = {"
+K
+a
+h
+h
+h
+a
+a
+"}
+(4,1,1) = {"
+h
+a
+h
+h
+h
+f
+a
+"}
+(5,1,1) = {"
+a
+h
+S
+h
+H
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+c
+h
+h
+a
+a
+"}
+(7,1,1) = {"
+m
+h
+Z
+h
+h
+h
+a
+"}
+(8,1,1) = {"
+a
+H
+D
+h
+I
+a
+a
+"}
+(9,1,1) = {"
+a
+h
+k
+x
+k
+h
+a
+"}
+(10,1,1) = {"
+a
+h
+k
+u
+k
+h
+a
+"}
+(11,1,1) = {"
+a
+h
+k
+Q
+k
+H
+m
+"}
+(12,1,1) = {"
+a
+h
+k
+F
+k
+h
+a
+"}
+(13,1,1) = {"
+a
+h
+p
+h
+p
+a
+h
+"}
+(14,1,1) = {"
+a
+a
+a
+Z
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+h
+a
+a
+a
+a
+a
+"}
diff --git a/maps/om_adventure/pois/shuttlewreck4.dmm b/maps/om_adventure/pois/shuttlewreck4.dmm
new file mode 100644
index 00000000000..28fc4367d9f
--- /dev/null
+++ b/maps/om_adventure/pois/shuttlewreck4.dmm
@@ -0,0 +1,392 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck4)
+"e" = (
+/obj/random/tech_supply/component,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shuttlewreck4)
+"g" = (
+/obj/item/frame/apc,
+/turf/template_noop,
+/area/template_noop)
+"h" = (
+/obj/random/tech_supply/component,
+/turf/template_noop,
+/area/template_noop)
+"j" = (
+/turf/template_noop,
+/area/template_noop)
+"o" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck4)
+"p" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shuttlewreck4)
+"q" = (
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shuttlewreck4)
+"t" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+"u" = (
+/obj/structure/shuttle/engine/propulsion,
+/turf/simulated/floor/plating/eris/airless,
+/area/om_adventure/poi/shuttlewreck4)
+"v" = (
+/turf/simulated/wall/eris/r_wall,
+/area/om_adventure/poi/shuttlewreck4)
+"x" = (
+/turf/simulated/floor/plating/eris/airless,
+/area/om_adventure/poi/shuttlewreck4)
+"y" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 4
+ },
+/obj/random/tech_supply/component,
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+"C" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+"D" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 1
+ },
+/obj/random/tech_supply,
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+"H" = (
+/obj/random/tech_supply/component,
+/turf/simulated/floor/weird_things/dark,
+/area/om_adventure/poi/shuttlewreck4)
+"I" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+"J" = (
+/obj/machinery/door/blast/multi_tile/three_tile_ver{
+ density = 0;
+ icon_state = "open";
+ opacity = 0
+ },
+/turf/simulated/floor/plating/eris/airless,
+/area/om_adventure/poi/shuttlewreck4)
+"K" = (
+/obj/tether_away_spawner/spookyland,
+/turf/template_noop,
+/area/template_noop)
+"M" = (
+/obj/structure/low_wall/eris/reinforced,
+/obj/structure/window/eris,
+/turf/simulated/floor/plating,
+/area/om_adventure/poi/shuttlewreck4)
+"O" = (
+/obj/random/tech_supply,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shuttlewreck4)
+"P" = (
+/obj/structure/frame/computer,
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+"S" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+"T" = (
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shuttlewreck4)
+"V" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/tiled/eris/dark/monofloor,
+/area/om_adventure/poi/shuttlewreck4)
+"X" = (
+/obj/structure/bed/chair/bay/shuttle,
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+"Y" = (
+/obj/structure/bed/chair/bay/shuttle{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
+/area/om_adventure/poi/shuttlewreck4)
+
+(1,1,1) = {"
+j
+j
+j
+j
+j
+j
+j
+j
+a
+j
+j
+j
+H
+j
+a
+"}
+(2,1,1) = {"
+j
+a
+a
+j
+j
+a
+j
+h
+j
+j
+j
+j
+j
+a
+j
+"}
+(3,1,1) = {"
+j
+j
+j
+o
+a
+g
+a
+a
+a
+j
+o
+a
+a
+v
+j
+"}
+(4,1,1) = {"
+j
+j
+j
+h
+a
+a
+a
+a
+a
+a
+H
+H
+v
+v
+j
+"}
+(5,1,1) = {"
+j
+j
+j
+v
+v
+x
+x
+J
+v
+v
+a
+v
+v
+u
+j
+"}
+(6,1,1) = {"
+j
+a
+a
+v
+V
+q
+e
+q
+O
+v
+M
+v
+v
+v
+j
+"}
+(7,1,1) = {"
+o
+v
+M
+M
+q
+I
+I
+I
+q
+t
+Y
+y
+v
+j
+j
+"}
+(8,1,1) = {"
+j
+M
+P
+C
+q
+D
+v
+X
+q
+q
+T
+q
+M
+j
+j
+"}
+(9,1,1) = {"
+a
+v
+M
+M
+e
+Y
+Y
+Y
+q
+S
+I
+I
+v
+j
+j
+"}
+(10,1,1) = {"
+j
+j
+j
+v
+p
+q
+q
+q
+e
+v
+M
+v
+v
+v
+j
+"}
+(11,1,1) = {"
+j
+j
+j
+v
+v
+x
+x
+J
+v
+v
+j
+v
+v
+u
+j
+"}
+(12,1,1) = {"
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+v
+v
+j
+"}
+(13,1,1) = {"
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+v
+j
+"}
+(14,1,1) = {"
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+K
+j
+j
+j
+"}
+(15,1,1) = {"
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+j
+"}
diff --git a/maps/om_adventure/pois/woodentemple.dmm b/maps/om_adventure/pois/woodentemple.dmm
new file mode 100644
index 00000000000..4a6dd94d5f5
--- /dev/null
+++ b/maps/om_adventure/pois/woodentemple.dmm
@@ -0,0 +1,533 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/structure/bed/chair/sofa/pew/right{
+ dir = 8
+ },
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"c" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/wmarble,
+/area/om_adventure/poi/woodentemple)
+"d" = (
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"e" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/outdoors/grass,
+/area/om_adventure/poi/woodentemple)
+"f" = (
+/obj/item/weapon/material/shard/shrapnel,
+/turf/simulated/floor,
+/area/om_adventure/poi/woodentemple)
+"g" = (
+/obj/tether_away_spawner/spookyland,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"j" = (
+/obj/item/weapon/material/shard/shrapnel,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"k" = (
+/obj/structure/bed/pod,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"m" = (
+/obj/structure/bed/chair/sofa/pew/right{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"o" = (
+/obj/structure/table/rack/steel,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/wmarble,
+/area/om_adventure/poi/woodentemple)
+"r" = (
+/turf/simulated/floor/outdoors/grass,
+/area/om_adventure/poi/woodentemple)
+"s" = (
+/obj/structure/table/woodentable,
+/obj/item/trash/candle,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"v" = (
+/obj/structure/table/woodentable,
+/obj/random/maintenance,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"w" = (
+/obj/structure/bed/chair/sofa/pew/left,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"x" = (
+/obj/structure/curtain/black{
+ anchored = 1;
+ icon_state = "open";
+ opacity = 0
+ },
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"A" = (
+/obj/structure/curtain/black{
+ anchored = 1
+ },
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"C" = (
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"E" = (
+/obj/structure/table/woodentable,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"F" = (
+/obj/structure/bed/chair/sofa/pew/right,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"G" = (
+/obj/structure/simple_door/wood,
+/turf/simulated/floor/wmarble,
+/area/om_adventure/poi/woodentemple)
+"H" = (
+/turf/simulated/floor/wmarble,
+/area/om_adventure/poi/woodentemple)
+"J" = (
+/obj/structure/table/woodentable,
+/obj/random/awayloot/looseloot,
+/obj/item/trash/candle,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"K" = (
+/obj/structure/table/rack/steel,
+/obj/random/awayloot/looseloot,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"M" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"N" = (
+/obj/structure/bed/chair/sofa/pew/left{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"Q" = (
+/obj/structure/flora/pottedplant/orientaltree,
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"R" = (
+/turf/simulated/floor/carpet,
+/area/om_adventure/poi/woodentemple)
+"S" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/turf/simulated/floor,
+/area/om_adventure/poi/woodentemple)
+"U" = (
+/obj/structure/bed/chair/sofa/pew/left{
+ dir = 8
+ },
+/turf/simulated/floor/wood,
+/area/om_adventure/poi/woodentemple)
+"Z" = (
+/turf/simulated/wall/hardwood,
+/area/om_adventure/poi/woodentemple)
+
+(1,1,1) = {"
+a
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+a
+a
+a
+"}
+(2,1,1) = {"
+r
+r
+Z
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+Z
+r
+r
+a
+a
+"}
+(3,1,1) = {"
+r
+Z
+Z
+Z
+Z
+S
+f
+S
+Z
+Z
+Z
+S
+S
+S
+Z
+Z
+Z
+Z
+r
+r
+a
+"}
+(4,1,1) = {"
+r
+r
+Z
+J
+v
+d
+C
+j
+d
+A
+d
+m
+N
+Q
+J
+v
+Z
+r
+r
+r
+a
+"}
+(5,1,1) = {"
+r
+r
+S
+Q
+d
+j
+g
+d
+d
+x
+d
+d
+d
+g
+d
+d
+S
+r
+r
+r
+r
+"}
+(6,1,1) = {"
+r
+r
+S
+w
+d
+d
+d
+C
+d
+A
+d
+d
+d
+d
+K
+K
+Z
+r
+Z
+r
+r
+"}
+(7,1,1) = {"
+r
+r
+S
+F
+d
+d
+Z
+Z
+G
+Z
+Z
+d
+R
+d
+Z
+Z
+Z
+Z
+Z
+Z
+r
+"}
+(8,1,1) = {"
+r
+r
+Z
+M
+d
+d
+S
+r
+r
+r
+S
+R
+R
+R
+Z
+o
+H
+H
+Z
+r
+r
+"}
+(9,1,1) = {"
+r
+r
+Z
+E
+g
+d
+S
+r
+e
+r
+S
+R
+R
+R
+G
+H
+c
+H
+G
+r
+r
+"}
+(10,1,1) = {"
+r
+r
+Z
+v
+d
+d
+S
+r
+r
+r
+S
+R
+R
+R
+Z
+o
+H
+H
+Z
+r
+r
+"}
+(11,1,1) = {"
+r
+r
+S
+w
+d
+d
+Z
+Z
+G
+Z
+Z
+d
+R
+d
+Z
+Z
+Z
+Z
+Z
+Z
+r
+"}
+(12,1,1) = {"
+r
+r
+S
+F
+d
+d
+d
+d
+d
+A
+d
+d
+d
+d
+d
+d
+Z
+r
+Z
+r
+r
+"}
+(13,1,1) = {"
+r
+r
+S
+Q
+d
+d
+d
+g
+d
+x
+d
+g
+d
+d
+d
+s
+S
+r
+r
+r
+r
+"}
+(14,1,1) = {"
+r
+r
+Z
+s
+E
+k
+k
+k
+d
+A
+d
+U
+b
+Q
+v
+E
+Z
+r
+r
+r
+a
+"}
+(15,1,1) = {"
+r
+Z
+Z
+Z
+Z
+S
+S
+S
+Z
+Z
+Z
+S
+S
+S
+Z
+Z
+Z
+Z
+r
+r
+a
+"}
+(16,1,1) = {"
+r
+r
+Z
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+Z
+r
+r
+a
+a
+"}
+(17,1,1) = {"
+a
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+a
+a
+a
+"}
diff --git a/maps/stellardelight/ship_centcom.dmm b/maps/stellardelight/ship_centcom.dmm
index 51d91d7fc9e..d7bca2204d2 100644
--- a/maps/stellardelight/ship_centcom.dmm
+++ b/maps/stellardelight/ship_centcom.dmm
@@ -7236,7 +7236,7 @@
},
/area/centcom/control)
"EE" = (
-/obj/machinery/telecomms/relay/preset/sd,
+/obj/machinery/telecomms/relay/preset/station,
/turf/unsimulated/floor/steel,
/area/centcom/control)
"EF" = (
diff --git a/maps/stellardelight/stellar_delight1.dmm b/maps/stellardelight/stellar_delight1.dmm
index 353763ac027..9af67083fdd 100644
--- a/maps/stellardelight/stellar_delight1.dmm
+++ b/maps/stellardelight/stellar_delight1.dmm
@@ -655,9 +655,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/effect/catwalk_plated/dark,
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor,
/area/stellardelight/deck1/port)
"bx" = (
@@ -1308,9 +1306,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/starboard)
"cV" = (
@@ -2045,6 +2041,12 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/stellardelight/deck1/researchserver)
+"et" = (
+/obj/effect/landmark{
+ name = "droppod_landing"
+ },
+/turf/space,
+/area/space)
"eu" = (
/obj/structure/cable/green{
color = "#42038a";
@@ -4723,9 +4725,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/aft)
"jV" = (
@@ -6906,6 +6906,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/dark,
/area/security/security_cell_hallway)
"oC" = (
@@ -7162,9 +7163,7 @@
dir = 8
},
/obj/effect/catwalk_plated/dark,
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor,
/area/stellardelight/deck1/starboard)
"ph" = (
@@ -8810,6 +8809,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/dark,
/area/chapel/main)
"sC" = (
@@ -10476,6 +10476,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/carpet/bcarpet,
/area/stellardelight/deck1/starboard)
"wo" = (
@@ -10796,9 +10797,7 @@
/obj/effect/floor_decal/milspec/color/red/half{
dir = 1
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/fore)
"xa" = (
@@ -11889,6 +11888,7 @@
dir = 4
},
/obj/effect/floor_decal/milspec/color/black,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/dark,
/area/security/armoury)
"zq" = (
@@ -12944,6 +12944,7 @@
/obj/effect/floor_decal/milspec/color/red/half{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/fore)
"BB" = (
@@ -13043,6 +13044,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/milspec,
/area/stellardelight/deck1/exploration)
"BI" = (
@@ -14181,9 +14183,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/port)
"Eq" = (
@@ -16028,6 +16028,22 @@
/obj/structure/cable/pink{
icon_state = "4-8"
},
+/obj/item/device/radio{
+ pixel_x = -4;
+ pixel_y = -4
+ },
+/obj/item/device/radio{
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/obj/item/device/radio{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/item/device/radio{
+ pixel_x = 4;
+ pixel_y = 5
+ },
/turf/simulated/floor/tiled/dark,
/area/security/tactical)
"Im" = (
@@ -16456,6 +16472,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/steel_grid,
/area/rnd/research)
"Jd" = (
@@ -19899,6 +19916,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/machinery/alarm/angled,
/obj/effect/floor_decal/milspec/color/black,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/dark,
/area/security/armoury)
"QQ" = (
@@ -21222,9 +21240,7 @@
/obj/structure/closet/crate/bin{
anchored = 1
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/milspec,
/area/stellardelight/deck1/exploration)
"TB" = (
@@ -21830,6 +21846,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/reinforced,
/area/stellardelight/deck1/shuttlebay)
"UK" = (
@@ -22185,6 +22202,7 @@
/obj/item/weapon/book/manual/supermatter_engine,
/obj/item/weapon/book/manual/tesla_engine,
/obj/item/weapon/book/manual/virology,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/wood,
/area/library)
"Vq" = (
@@ -22942,6 +22960,7 @@
/obj/item/weapon/tank/jetpack/carbondioxide,
/obj/item/weapon/tank/jetpack/carbondioxide,
/obj/item/weapon/tank/jetpack/carbondioxide,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/white/gray_platform,
/area/gateway)
"WU" = (
@@ -24044,6 +24063,12 @@
/obj/machinery/recharge_station,
/turf/simulated/floor/bluegrid,
/area/assembly/robotics)
+"Zd" = (
+/obj/effect/landmark{
+ name = "carpspawn"
+ },
+/turf/space,
+/area/space)
"Ze" = (
/obj/machinery/door/firedoor/glass,
/obj/structure/window/bay/reinforced,
@@ -27549,7 +27574,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -28089,7 +28114,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -28271,7 +28296,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -28336,7 +28361,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -28713,7 +28738,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -29070,7 +29095,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -29741,7 +29766,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -30841,7 +30866,7 @@ RF
RF
uq
uq
-uq
+et
uq
uq
uq
@@ -32265,7 +32290,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -32438,7 +32463,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -34710,7 +34735,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -37799,7 +37824,7 @@ EG
RF
uq
uq
-uq
+et
uq
uq
uq
@@ -38262,7 +38287,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -38371,7 +38396,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -39007,7 +39032,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -39419,7 +39444,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -39727,7 +39752,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -40200,7 +40225,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -40597,7 +40622,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -41613,7 +41638,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
diff --git a/maps/stellardelight/stellar_delight2.dmm b/maps/stellardelight/stellar_delight2.dmm
index 5ad6a31faac..a0ef356ea96 100644
--- a/maps/stellardelight/stellar_delight2.dmm
+++ b/maps/stellardelight/stellar_delight2.dmm
@@ -1207,7 +1207,7 @@
/turf/simulated/floor/wood,
/area/stellardelight/deck2/barbackroom)
"cC" = (
-/obj/structure/flora/pottedplant/decorative,
+/obj/structure/flora/pottedplant/xmas,
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"cD" = (
@@ -2433,6 +2433,7 @@
/obj/machinery/light{
dir = 4
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/wood,
/area/crew_quarters/captain)
"fp" = (
@@ -2588,6 +2589,13 @@
"fL" = (
/obj/machinery/computer/arcade/battle,
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vermin,
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"fN" = (
@@ -3114,6 +3122,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/techmaint,
/area/storage/primary)
"gS" = (
@@ -3370,6 +3379,9 @@
/obj/item/weapon/deck/cah/black,
/obj/item/weapon/deck/cards,
/obj/item/weapon/deck/cards/casino,
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"hC" = (
@@ -3612,6 +3624,9 @@
},
/obj/structure/table/bench/steel,
/obj/effect/landmark/start/visitor,
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"ik" = (
@@ -3718,6 +3733,7 @@
dir = 1
},
/obj/effect/landmark/start/visitor,
+/obj/structure/sign/christmas/lights,
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"iy" = (
@@ -3876,6 +3892,7 @@
dir = 1;
pixel_y = 4
},
+/obj/structure/sign/christmas/wreath,
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"iP" = (
@@ -4531,6 +4548,9 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"kq" = (
@@ -5232,6 +5252,9 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"lH" = (
@@ -5496,9 +5519,7 @@
},
/obj/machinery/vending/loadout/loadout_misc,
/obj/machinery/atmospherics/unary/vent_pump/on,
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/holofloor/tiled/dark,
/area/crew_quarters/locker)
"me" = (
@@ -5514,9 +5535,7 @@
"mg" = (
/obj/random/vendordrink,
/obj/machinery/atmospherics/unary/vent_pump/on,
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck2/port)
"mh" = (
@@ -5751,6 +5770,7 @@
/obj/machinery/light{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/wood,
/area/stellardelight/deck2/briefingroom)
"mI" = (
@@ -5786,6 +5806,7 @@
/obj/machinery/camera/network/civilian{
dir = 1
},
+/obj/structure/sign/christmas/lights,
/turf/simulated/floor/tiled/dark,
/area/crew_quarters/recreation_area)
"mM" = (
@@ -5846,6 +5867,9 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark{
+ name = "verminstart"
+ },
/turf/simulated/floor/grass,
/area/hydroponics)
"mT" = (
@@ -5859,6 +5883,9 @@
/obj/machinery/camera/network/civilian{
dir = 8
},
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"mV" = (
@@ -6232,6 +6259,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/lino,
/area/crew_quarters/bar)
"nR" = (
@@ -6814,6 +6842,7 @@
pixel_y = 24
},
/mob/living/simple_mob/otie/red/chubby/cocoa,
+/obj/structure/sign/christmas/wreath,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/crew_quarters/bar)
"pj" = (
@@ -7236,6 +7265,7 @@
icon_state = "2-4"
},
/obj/structure/closet/secure_closet/engineering_personal,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/dark/orangecorner,
/area/engineering/locker_room)
"qe" = (
@@ -7370,6 +7400,7 @@
/obj/machinery/newscaster{
pixel_y = 28
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled,
/area/storage/art)
"qt" = (
@@ -7731,6 +7762,7 @@
/obj/structure/bed/chair/sofa/corp/corner{
dir = 8
},
+/obj/structure/sign/christmas/lights,
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"rh" = (
@@ -7973,9 +8005,7 @@
dir = 4;
pixel_x = 24
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/storage/primary)
"rF" = (
@@ -8066,6 +8096,14 @@
"rR" = (
/turf/simulated/wall/bay/r_wall/steel,
/area/maintenance/stellardelight/deck2/portaft)
+"rS" = (
+/obj/structure/table/wooden_reinforced,
+/obj/structure/sign/christmas/lights,
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/eris/dark/cargo,
+/area/crew_quarters/recreation_area)
"rT" = (
/turf/simulated/wall/bay/r_wall/steel,
/area/storage/tech)
@@ -8151,6 +8189,7 @@
/obj/structure/bed/chair/sofa/corp{
dir = 1
},
+/obj/structure/sign/christmas/lights,
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"sd" = (
@@ -8375,6 +8414,7 @@
/area/quartermaster/storage)
"sH" = (
/obj/structure/table/wooden_reinforced,
+/obj/structure/sign/christmas/lights,
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"sI" = (
@@ -9151,9 +9191,7 @@
"us" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/obj/machinery/recharge_station,
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck2/starboard)
"ut" = (
@@ -9605,6 +9643,13 @@
/obj/machinery/lapvend,
/turf/simulated/floor/tiled/techmaint,
/area/storage/primary)
+"vv" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/eris/dark/cargo,
+/area/crew_quarters/recreation_area)
"vw" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor,
@@ -9755,6 +9800,7 @@
dir = 4;
icon_state = "pipe-c"
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/monotile,
/area/hydroponics)
"vQ" = (
@@ -9879,8 +9925,9 @@
/area/stellardelight/deck2/central)
"wf" = (
/obj/structure/bed/chair/sofa/corp/corner{
- dir = 1
+ dir = 4
},
+/obj/structure/sign/christmas/lights,
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"wg" = (
@@ -10009,6 +10056,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/stellardelight/deck2/triage)
"wy" = (
@@ -10487,6 +10535,9 @@
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"xG" = (
@@ -10712,6 +10763,9 @@
/obj/machinery/light{
dir = 1
},
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"yd" = (
@@ -10986,11 +11040,15 @@
/area/stellardelight/deck2/fore)
"yG" = (
/obj/structure/bed/chair/sofa/corp/corner{
- dir = 1
+ dir = 4
},
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/structure/sign/christmas/lights,
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"yH" = (
@@ -12200,6 +12258,9 @@
dir = 4;
pixel_x = 24
},
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"BD" = (
@@ -12325,6 +12386,9 @@
pixel_x = 9;
pixel_y = 24
},
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"BT" = (
@@ -12706,6 +12770,7 @@
/obj/structure/cable/orange{
icon_state = "1-8"
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/techfloor,
/area/engineering/atmos/monitoring)
"CO" = (
@@ -12845,12 +12910,15 @@
/turf/simulated/floor/tiled/techmaint,
/area/storage/primary)
"De" = (
-/obj/structure/flora/pottedplant/decorative,
+/obj/structure/flora/pottedplant/xmas,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/item/device/radio/intercom{
dir = 8;
pixel_x = -24
},
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"Df" = (
@@ -12959,6 +13027,7 @@
dir = 1
},
/obj/structure/undies_wardrobe,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/holofloor/tiled/dark,
/area/crew_quarters/locker)
"Dv" = (
@@ -13145,12 +13214,15 @@
/turf/simulated/floor/glass/reinforced,
/area/stellardelight/deck2/fore)
"DO" = (
-/obj/structure/flora/pottedplant/decorative,
+/obj/structure/flora/pottedplant/xmas,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/item/device/radio/intercom{
dir = 4;
pixel_x = 24
},
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"DP" = (
@@ -13190,6 +13262,10 @@
/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
/area/engineering/storage)
+"DU" = (
+/obj/structure/sign/christmas/lights,
+/turf/simulated/floor/tiled/eris/dark/cargo,
+/area/crew_quarters/recreation_area)
"DV" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -14263,6 +14339,7 @@
/obj/effect/floor_decal/milspec/color/silver/corner{
dir = 8
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/fore)
"Gb" = (
@@ -14605,6 +14682,9 @@
/obj/structure/closet/crate/bin{
anchored = 1
},
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"GM" = (
@@ -14771,6 +14851,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/quartermaster/storage)
"Hf" = (
@@ -14990,6 +15071,9 @@
dir = 8;
pixel_x = -24
},
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
"HF" = (
@@ -15302,6 +15386,7 @@
/obj/random/vendordrink,
/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/machinery/firealarm/angled,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/aftstarboard)
"Il" = (
@@ -15345,6 +15430,7 @@
},
/obj/structure/table/steel_reinforced,
/obj/item/device/retail_scanner/command,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/dark/monofloor,
/area/bridge)
"Ip" = (
@@ -15504,6 +15590,7 @@
/obj/effect/landmark{
name = "lightsout"
},
+/obj/structure/flora/tree/pine/xmas/presents,
/turf/simulated/floor/glass/reinforced,
/area/crew_quarters/recreation_area)
"IF" = (
@@ -15732,6 +15819,12 @@
"Ji" = (
/obj/machinery/computer/arcade/orion_trail,
/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"Jj" = (
@@ -16356,9 +16449,7 @@
/obj/item/paint_palette,
/obj/item/paint_brush,
/obj/item/paint_brush,
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/storage/art)
"KD" = (
@@ -16547,6 +16638,7 @@
/obj/machinery/camera/network/medbay{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/medical/chemistry)
"La" = (
@@ -17145,6 +17237,9 @@
/area/stellardelight/deck2/port)
"Mp" = (
/obj/machinery/computer/arcade/orion_trail,
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"Mq" = (
@@ -17563,6 +17658,7 @@
dir = 1;
pixel_y = 24
},
+/obj/structure/sign/christmas/wreath,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/crew_quarters/bar)
"Nl" = (
@@ -17951,6 +18047,12 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/wood,
/area/stellardelight/deck2/barbackroom)
+"Oh" = (
+/obj/effect/landmark{
+ name = "carpspawn"
+ },
+/turf/space,
+/area/space)
"Oi" = (
/obj/machinery/firealarm/angled,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -18118,6 +18220,13 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/stellardelight/deck2/triage)
+"Oy" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/eris/dark/cargo,
+/area/crew_quarters/recreation_area)
"Oz" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/effect/floor_decal/steeldecal/steel_decals5{
@@ -18134,6 +18243,9 @@
/obj/machinery/status_display{
pixel_y = 32
},
+/obj/effect/landmark{
+ name = "verminstart"
+ },
/turf/simulated/floor/tiled/eris/cafe,
/area/crew_quarters/kitchen)
"OB" = (
@@ -18231,9 +18343,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/quartermaster/storage)
"OQ" = (
@@ -18495,6 +18605,12 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck2/starboard)
+"Pp" = (
+/obj/effect/landmark{
+ name = "droppod_landing"
+ },
+/turf/space,
+/area/space)
"Pq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/red{
dir = 9
@@ -19160,6 +19276,9 @@
pixel_y = -32
},
/obj/structure/table/bench/steel,
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"QK" = (
@@ -19314,6 +19433,9 @@
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"Ra" = (
@@ -19958,6 +20080,9 @@
/area/maintenance/stellardelight/deck2/portfore)
"SF" = (
/obj/machinery/computer/arcade/battle,
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"SG" = (
@@ -19986,6 +20111,7 @@
/obj/item/weapon/stool/padded{
dir = 8
},
+/obj/structure/sign/christmas/lights,
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"SK" = (
@@ -20251,6 +20377,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/medical/cmostore)
"Tn" = (
@@ -20981,6 +21108,9 @@
/obj/structure/sign/poster{
dir = 1
},
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"UX" = (
@@ -21672,6 +21802,9 @@
/area/medical/reception)
"WC" = (
/obj/machinery/alarm/angled,
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"WE" = (
@@ -21800,6 +21933,10 @@
"WR" = (
/obj/structure/table/wooden_reinforced,
/obj/item/device/paicard,
+/obj/structure/sign/christmas/lights,
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"WS" = (
@@ -21913,6 +22050,7 @@
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 4
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/fore)
"Xf" = (
@@ -22205,6 +22343,9 @@
pixel_y = 32
},
/obj/machinery/recharge_station,
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"XQ" = (
@@ -22333,6 +22474,7 @@
/obj/structure/musician/piano{
dir = 4
},
+/obj/structure/sign/christmas/lights,
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"Yd" = (
@@ -22389,6 +22531,9 @@
/area/stellardelight/deck2/port)
"Yl" = (
/obj/machinery/firealarm/angled,
+/obj/structure/sign/christmas/lights{
+ dir = 1
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"Ym" = (
@@ -22657,6 +22802,9 @@
/obj/machinery/camera/network/civilian{
dir = 5
},
+/obj/structure/sign/christmas/lights{
+ dir = 8
+ },
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"YO" = (
@@ -22713,6 +22861,7 @@
"YW" = (
/obj/random/vendordrink,
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck2/starboard)
"YX" = (
@@ -23193,6 +23342,10 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/structure/sign/christmas/lights,
+/obj/structure/sign/christmas/lights{
+ dir = 4
+ },
/turf/simulated/floor/carpet/turcarpet,
/area/crew_quarters/recreation_area)
@@ -25832,7 +25985,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -26237,7 +26390,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -26637,7 +26790,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -26858,7 +27011,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -27807,7 +27960,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -28779,7 +28932,7 @@ Jh
Jh
Jh
Jh
-Jh
+Pp
Jh
Jh
Jh
@@ -28890,7 +29043,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -30574,7 +30727,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -31869,7 +32022,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -32478,7 +32631,7 @@ mt
jv
ct
Lq
-ct
+vv
HE
xE
yG
@@ -33124,7 +33277,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -33614,7 +33767,7 @@ mt
hm
VM
uJ
-VM
+Oy
BC
lG
ZZ
@@ -33755,7 +33908,7 @@ mt
mt
lO
mt
-mt
+DU
nt
nt
nt
@@ -34039,7 +34192,7 @@ kp
GA
fK
ij
-sH
+rS
nt
Rq
Rq
@@ -34994,7 +35147,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -36393,7 +36546,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -36888,7 +37041,7 @@ bw
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -37301,7 +37454,7 @@ Jh
Jh
Jh
Jh
-Jh
+Pp
Jh
Jh
Jh
@@ -37379,7 +37532,7 @@ NL
NL
Jh
Jh
-Jh
+Pp
Jh
Jh
Jh
@@ -37701,7 +37854,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -38292,7 +38445,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -39457,6 +39610,7 @@ Jh
Jh
Jh
Jh
+Oh
Jh
Jh
Jh
@@ -39501,8 +39655,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -40187,7 +40340,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
diff --git a/maps/stellardelight/stellar_delight3.dmm b/maps/stellardelight/stellar_delight3.dmm
index 294faa22e83..629b2e2a2a6 100644
--- a/maps/stellardelight/stellar_delight3.dmm
+++ b/maps/stellardelight/stellar_delight3.dmm
@@ -230,9 +230,7 @@
/area/stellardelight/deck3/aft)
"ba" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/open,
/area/stellardelight/deck2/fore)
"bb" = (
@@ -501,6 +499,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/effect/landmark/vines,
/turf/simulated/open,
/area/crew_quarters/bar)
"cb" = (
@@ -5885,6 +5884,13 @@
/obj/structure/low_wall/bay/reinforced/steel,
/turf/simulated/floor,
/area/stellardelight/deck2/port)
+"wc" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/landmark/vermin,
+/turf/simulated/open,
+/area/stellardelight/deck2/starboard)
"wd" = (
/obj/structure/table/standard,
/obj/item/weapon/aiModule/oxygen,
@@ -6296,6 +6302,7 @@
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 4
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/starboarddock)
"xE" = (
@@ -6415,9 +6422,6 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
-/obj/effect/landmark{
- name = "vinestart"
- },
/turf/simulated/floor/tiled/monotile,
/area/stellardelight/deck3/commandhall)
"yc" = (
@@ -6732,6 +6736,12 @@
},
/turf/simulated/floor/tiled/techfloor/grid,
/area/ai_upload)
+"zk" = (
+/obj/effect/landmark{
+ name = "droppod_landing"
+ },
+/turf/space,
+/area/space)
"zm" = (
/obj/structure/cable/blue{
icon_state = "4-8"
@@ -7664,6 +7674,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
+/obj/effect/landmark/vermin,
/turf/simulated/open,
/area/stellardelight/deck2/fore)
"Cc" = (
@@ -8229,6 +8240,12 @@
/obj/random/trash_pile,
/turf/simulated/floor,
/area/maintenance/stellardelight/deck3/portcent)
+"El" = (
+/obj/effect/landmark{
+ name = "carpspawn"
+ },
+/turf/space,
+/area/space)
"En" = (
/obj/effect/floor_decal/industrial/warning/corner{
dir = 1
@@ -8475,6 +8492,7 @@
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/aft)
"Fg" = (
@@ -9342,9 +9360,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/open,
/area/stellardelight/deck2/fore)
"IG" = (
@@ -10272,9 +10288,7 @@
dir = 4;
pixel_x = 27
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/starboarddock)
"LR" = (
@@ -10456,9 +10470,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/open,
/area/stellardelight/deck2/fore)
"Mw" = (
@@ -10671,9 +10683,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/open,
/area/stellardelight/deck2/port)
"Ne" = (
@@ -11319,9 +11329,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/open,
/area/stellardelight/deck2/starboard)
"Pa" = (
@@ -12580,6 +12588,7 @@
/area/ai_server_room)
"TO" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/monotile,
/area/stellardelight/deck3/commandhall)
"TP" = (
@@ -12856,9 +12865,7 @@
dir = 8;
pixel_x = -27
},
-/obj/effect/landmark{
- name = "vinestart"
- },
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/portdock)
"UX" = (
@@ -13483,6 +13490,7 @@
/obj/structure/cable/green{
icon_state = "1-2"
},
+/obj/effect/landmark/vermin,
/turf/simulated/open,
/area/crew_quarters/bar)
"Xd" = (
@@ -16918,7 +16926,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -17451,7 +17459,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -18322,7 +18330,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -18386,6 +18394,7 @@ Jh
Jh
Jh
Jh
+El
Jh
Jh
Jh
@@ -18421,8 +18430,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+El
Jh
Jh
Jh
@@ -19160,7 +19168,7 @@ Jh
Jh
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -19256,7 +19264,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -19630,7 +19638,7 @@ NL
NL
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -20416,7 +20424,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -21473,7 +21481,7 @@ NL
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -21906,7 +21914,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -22209,7 +22217,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -25669,7 +25677,7 @@ qF
hC
aJ
ow
-ZC
+wc
ow
yP
Ks
@@ -27153,7 +27161,7 @@ NL
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -27720,7 +27728,7 @@ NL
NL
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -27941,7 +27949,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -28204,7 +28212,7 @@ Jh
Jh
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -28683,7 +28691,7 @@ Jh
Jh
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -29192,7 +29200,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -29926,6 +29934,7 @@ Jh
Jh
Jh
Jh
+El
Jh
Jh
Jh
@@ -29972,8 +29981,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+El
Jh
Jh
Jh
@@ -30022,6 +30030,7 @@ Jh
Jh
Jh
Jh
+El
Jh
Jh
Jh
@@ -30138,8 +30147,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+El
Jh
Jh
Jh
@@ -30670,7 +30678,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
diff --git a/maps/stellardelight/stellar_delight_defines.dm b/maps/stellardelight/stellar_delight_defines.dm
index e95d9813d71..3cafb69e00d 100644
--- a/maps/stellardelight/stellar_delight_defines.dm
+++ b/maps/stellardelight/stellar_delight_defines.dm
@@ -14,6 +14,7 @@
#define Z_LEVEL_OVERMAP 13
#define Z_LEVEL_OFFMAP1 14
#define Z_LEVEL_GATEWAY 15
+#define Z_LEVEL_OM_ADVENTURE 16
//Camera networks
#define NETWORK_HALLS "Halls"
@@ -55,6 +56,7 @@
station_name = "NRV Stellar Delight"
station_short = "Stellar Delight"
+ facility_type = "ship"
dock_name = "Virgo-3B Colony"
dock_type = "surface"
boss_name = "Central Command"
@@ -136,7 +138,7 @@
list("Offmap Ship - Talon V2")
)
- lateload_single_pick = list(
+ lateload_gateway = list(
list("Carp Farm"),
list("Snow Field"),
list("Listening Post"),
@@ -147,6 +149,10 @@
list("Wild West")
)
+ lateload_overmap = list(
+ list("Grass Cave")
+ )
+
ai_shell_restricted = TRUE
ai_shell_allowed_levels = list(
Z_LEVEL_SHIP_LOW,
@@ -166,8 +172,6 @@
mining_station_z = list(Z_LEVEL_SPACE_LOW)
mining_outpost_z = list(Z_LEVEL_SURFACE_MINE)
*/
- lateload_single_pick = null //Nothing right now.
-
planet_datums_to_make = list(/datum/planet/virgo3b,
/datum/planet/virgo4)
diff --git a/maps/stellardelight/stellar_delight_telecomms.dm b/maps/stellardelight/stellar_delight_telecomms.dm
index c1d35782a7c..7b36a009711 100644
--- a/maps/stellardelight/stellar_delight_telecomms.dm
+++ b/maps/stellardelight/stellar_delight_telecomms.dm
@@ -3,7 +3,7 @@
// #### Relays ####
// Telecomms doesn't know about connected z-levels, so we need relays even for the other surface levels.
-/obj/machinery/telecomms/relay/preset/sd
+/obj/machinery/telecomms/relay/preset/station
id = "SD Relay"
autolinkers = list("sd_relay")
diff --git a/maps/submaps/admin_use_vr/ert.dmm b/maps/submaps/admin_use_vr/ert.dmm
index 2e1eb62ecef..aa46d09c791 100644
--- a/maps/submaps/admin_use_vr/ert.dmm
+++ b/maps/submaps/admin_use_vr/ert.dmm
@@ -132,7 +132,7 @@
/turf/simulated/floor/tiled/techfloor,
/area/ship/ert/barracks)
"aq" = (
-/obj/machinery/telecomms/relay/preset/tether,
+/obj/machinery/telecomms/relay/preset/station,
/turf/simulated/floor/tiled/techfloor,
/area/ship/ert/atmos)
"ar" = (
diff --git a/maps/submaps/pois_vr/debris_field/debris14.dmm b/maps/submaps/pois_vr/debris_field/debris14.dmm
index 91a5ef114a5..6a346d66925 100644
--- a/maps/submaps/pois_vr/debris_field/debris14.dmm
+++ b/maps/submaps/pois_vr/debris_field/debris14.dmm
@@ -32,7 +32,6 @@
/area/tether_away/debrisfield/shuttle_buffer)
"h" = (
/obj/structure/lattice,
-/obj/structure/lattice,
/turf/space,
/area/tether_away/debrisfield/shuttle_buffer)
"i" = (
diff --git a/maps/tether/submaps/tether_centcom.dmm b/maps/tether/submaps/tether_centcom.dmm
index 88cc87563c7..fd39fa6cc8d 100644
--- a/maps/tether/submaps/tether_centcom.dmm
+++ b/maps/tether/submaps/tether_centcom.dmm
@@ -7255,7 +7255,7 @@
},
/area/centcom/control)
"EE" = (
-/obj/machinery/telecomms/relay/preset/tether,
+/obj/machinery/telecomms/relay/preset/station,
/turf/unsimulated/floor/steel,
/area/centcom/control)
"EF" = (
diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm
index b439b014b2b..0d8755eaf9d 100644
--- a/maps/tether/tether-02-surface2.dmm
+++ b/maps/tether/tether-02-surface2.dmm
@@ -387,6 +387,15 @@
/obj/structure/window/reinforced,
/turf/simulated/floor/wood,
/area/tether/surfacebase/medical/centralhall)
+"aaH" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/simulated/open,
+/area/rnd/staircase/secondfloor)
"aaI" = (
/obj/structure/cable/green{
icon_state = "2-4"
@@ -10368,6 +10377,12 @@
/obj/machinery/door/airlock/maintenance/common,
/turf/simulated/floor/plating,
/area/maintenance/asmaint2)
+"aqt" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/rnd/staircase/secondfloor)
"aqu" = (
/obj/structure/table/standard{
name = "plastic table frame"
@@ -23637,21 +23652,9 @@
},
/turf/simulated/open,
/area/rnd/staircase/secondfloor)
-"aPG" = (
-/obj/structure/railing{
- dir = 1
- },
-/turf/simulated/open,
-/area/rnd/staircase/secondfloor)
"aPH" = (
/turf/simulated/open,
/area/rnd/staircase/secondfloor)
-"aPI" = (
-/obj/machinery/light{
- dir = 4
- },
-/turf/simulated/open,
-/area/rnd/staircase/secondfloor)
"aPJ" = (
/turf/simulated/wall,
/area/rnd/breakroom)
@@ -42532,7 +42535,7 @@ aMW
aNv
aOj
aOZ
-aPG
+aaH
aPH
aPH
aRM
@@ -42674,7 +42677,7 @@ aMX
aNv
aOk
aOY
-aPH
+aOY
aPH
aPH
aRM
@@ -42816,7 +42819,7 @@ aIP
aIP
aOl
aPa
-aPI
+aqt
aPH
aPH
aRM
diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm
index b1503f70433..ddbeea6dcde 100644
--- a/maps/tether/tether-03-surface3.dmm
+++ b/maps/tether/tether-03-surface3.dmm
@@ -14318,6 +14318,12 @@
/obj/effect/floor_decal/corner/mauve/bordercorner2,
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora)
+"axt" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/rnd/staircase/thirdfloor)
"axu" = (
/obj/structure/sink{
dir = 8;
@@ -14325,6 +14331,13 @@
},
/turf/simulated/floor/wood,
/area/tether/surfacebase/bar_backroom)
+"axv" = (
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/simulated/open,
+/area/rnd/staircase/thirdfloor)
"axw" = (
/obj/structure/cable/green{
d1 = 1;
@@ -14439,12 +14452,6 @@
},
/turf/simulated/floor/tiled,
/area/rnd/research)
-"axF" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/simulated/open,
-/area/rnd/staircase/thirdfloor)
"axG" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/light{
@@ -51461,7 +51468,7 @@ atV
ahh
auu
auu
-axF
+axt
ayr
aBe
afK
@@ -51603,7 +51610,7 @@ atW
ahh
auu
auu
-auu
+ayB
ayB
aBg
afK
@@ -51745,7 +51752,7 @@ akt
ahh
auu
auu
-axO
+axv
ayB
aBh
aBj
diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm
index 3b6e851daf9..52cd831e75f 100644
--- a/maps/tether/tether_defines.dm
+++ b/maps/tether/tether_defines.dm
@@ -68,6 +68,7 @@
station_name = "NSB Adephagia"
station_short = "Tether"
+ facility_type = "station"
dock_name = "Virgo-3B Colony"
dock_type = "surface"
boss_name = "Central Command"
@@ -161,7 +162,7 @@
list("Fuel Depot - Z1 Space")
)
- lateload_single_pick = list(
+ lateload_gateway = list(
list("Carp Farm"),
list("Snow Field"),
list("Listening Post"),
@@ -172,6 +173,10 @@
list("Wild West")
)
+ lateload_overmap = list(
+ list("Grass Cave")
+ )
+
ai_shell_restricted = TRUE
ai_shell_allowed_levels = list(
Z_LEVEL_SURFACE_LOW,
@@ -193,8 +198,6 @@
mining_station_z = list(Z_LEVEL_SPACE_LOW)
mining_outpost_z = list(Z_LEVEL_SURFACE_MINE)
- lateload_single_pick = null //Nothing right now.
-
planet_datums_to_make = list(/datum/planet/virgo3b,
/datum/planet/virgo4)
diff --git a/maps/tether/tether_telecomms.dm b/maps/tether/tether_telecomms.dm
index ac43e2d4533..baaff3fb76e 100644
--- a/maps/tether/tether_telecomms.dm
+++ b/maps/tether/tether_telecomms.dm
@@ -3,7 +3,7 @@
// #### Relays ####
// Telecomms doesn't know about connected z-levels, so we need relays even for the other surface levels.
-/obj/machinery/telecomms/relay/preset/tether
+/obj/machinery/telecomms/relay/preset/station
id = "Tether Relay"
autolinkers = list("tether_relay")
diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm
index 48a8963e367..65b96548a29 100644
--- a/maps/~map_system/maps.dm
+++ b/maps/~map_system/maps.dm
@@ -53,7 +53,8 @@ var/list/all_maps = list()
var/list/lateload_z_levels = list()
//Similar to above, but only pick ONE to load, useful for random away missions and whatnot
- var/list/lateload_single_pick = list()
+ var/list/lateload_gateway = list()
+ var/list/lateload_overmap = list() //VOREStation Add - The same thing as gateway, but not
var/list/allowed_jobs = list() //Job datums to use.
//Works a lot better so if we get to a point where three-ish maps are used
@@ -81,6 +82,7 @@ var/list/all_maps = list()
var/station_name = "BAD Station"
var/station_short = "Baddy"
+ var/facility_type = "facility"
var/dock_name = "THE PirateBay"
var/dock_type = "station" //VOREStation Edit - for a list of valid types see the switch block in air_traffic.dm at line 148
var/boss_name = "Captain Roger"
diff --git a/sound/effects/capture-crystal-in.ogg b/sound/effects/capture-crystal-in.ogg
new file mode 100644
index 00000000000..b00d7be9c9f
Binary files /dev/null and b/sound/effects/capture-crystal-in.ogg differ
diff --git a/sound/effects/capture-crystal-negative.ogg b/sound/effects/capture-crystal-negative.ogg
new file mode 100644
index 00000000000..a0d6de3395f
Binary files /dev/null and b/sound/effects/capture-crystal-negative.ogg differ
diff --git a/sound/effects/capture-crystal-out.ogg b/sound/effects/capture-crystal-out.ogg
new file mode 100644
index 00000000000..363ad85c568
Binary files /dev/null and b/sound/effects/capture-crystal-out.ogg differ
diff --git a/sound/effects/capture-crystal-problem.ogg b/sound/effects/capture-crystal-problem.ogg
new file mode 100644
index 00000000000..3c0a7b343b0
Binary files /dev/null and b/sound/effects/capture-crystal-problem.ogg differ
diff --git a/sound/effects/skeleton_walk.ogg b/sound/effects/skeleton_walk.ogg
new file mode 100644
index 00000000000..d5791ec5420
Binary files /dev/null and b/sound/effects/skeleton_walk.ogg differ
diff --git a/tgui/packages/tgui/interfaces/RIGSuit.js b/tgui/packages/tgui/interfaces/RIGSuit.js
index 3b248a56a93..cc7ec9abe30 100644
--- a/tgui/packages/tgui/interfaces/RIGSuit.js
+++ b/tgui/packages/tgui/interfaces/RIGSuit.js
@@ -25,7 +25,7 @@ export const RIGSuit = (props, context) => {
// Non-AI trying to control the hardsuit while it's AI control overridden
override = -- HARDSUIT CONTROL OVERRIDDEN BY AI --;
}
-
+
return (
{
const RIGSuitStatus = (props, context) => {
const { act, data } = useBackend(context);
-
+
const {
// Power Bar
chargestatus,
@@ -57,6 +57,7 @@ const RIGSuitStatus = (props, context) => {
// Suit Status
sealing,
sealed,
+ cooling,
// Cover Locks
emagged,
securitycheck,
@@ -77,6 +78,14 @@ const RIGSuitStatus = (props, context) => {
onClick={() => act("toggle_seals")} />
);
+ const CoolingButton = (
+