diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm
index b512065f61..c1606e77f6 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/_helpers/game.dm b/code/_helpers/game.dm
index ed4734f355..c9727a8a98 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 8f760c3cc9..455732fa7c 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 2eecbe69ed..314689541e 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 4ed43a3481..9df293f417 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 06bf16e255..832a84784d 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/persistence.dm b/code/controllers/subsystems/persistence.dm
index f238621b3e..e20c83e5a5 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 c471c47c81..6a342f5820 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 56a9c38c8a..9c30d686cc 100644
--- a/code/datums/supplypacks/misc_vr.dm
+++ b/code/datums/supplypacks/misc_vr.dm
@@ -100,7 +100,7 @@
cost = 250
containertype = /obj/structure/closet/crate/secure/gear
containername = "solgov medical hardsuit crate" //YW EDIT
- access = access_medical
+ 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 3b46c6be3f..82a3d087c9 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 d00efc79b6..4c684abb99 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 c1f25830b4..9919fc3ee4 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 = "ClawMachine", 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/wall_frames.dm b/code/game/machinery/wall_frames.dm
index 83fdefe442..be00cab96a 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/objects/effects/semirandom_mobs_vr.dm b/code/game/objects/effects/semirandom_mobs_vr.dm
index b7008b4627..e6b26da087 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 ccde6e9c60..ca3f7241c3 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 164e069398..70640f2bb8 100644
--- a/code/game/objects/items/devices/denecrotizer_vr.dm
+++ b/code/game/objects/items/devices/denecrotizer_vr.dm
@@ -95,6 +95,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 7b9dd4d96c..02b202574c 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 0000000000..002b381c81
--- /dev/null
+++ b/code/game/objects/items/weapons/capture_crystal.dm
@@ -0,0 +1,752 @@
+/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 influince 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"]."))
+ else if(bound_mob.client)
+ var/transmit_msg
+ transmit_msg = sanitizeSafe(input(usr, "What is your command?", "Command", null) as text, MAX_NAME_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]'")
+ 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].")
+
+/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(!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_and_message_admins("I got [capture_chance].")
+ 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)
+
+//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)
+ else 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)
+ else 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
+ unleash(user, target)
+ 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.")
+ 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.")
+ else if(M.client) //Is it player controlled?
+ capture_player(M, user) //We have to do things a little differently if so.
+ 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)
+ 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)
+ 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?
+ unleash(U) //Yes, let's let it out!
+ 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, atom/target)
+ 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!
+ if(!M.client && !M.ghostjoin)
+ M.ghostjoin = 1 //Players playing mobs is fun!
+ 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 744cc130e2..1a19b98910 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/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 78eb6d5d48..aa0e4598ea 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 c67b06d840..a9e567c6c0 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 0d3a17c23f..9030e874ac 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 d0cee5dff0..be1222aabe 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 cbb95e955f..417d5b13a5 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
@@ -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 17d67f912c..af7092d9d6 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 96795f446d..4780c89f36 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/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm
index 94e6604cfd..3e4319d7e1 100644
--- a/code/game/objects/structures/trash_pile_vr.dm
+++ b/code/game/objects/structures/trash_pile_vr.dm
@@ -256,7 +256,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 0000000000..b1ef1fa4fb
--- /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/modules/admin/verbs/smite_vr.dm b/code/modules/admin/verbs/smite_vr.dm
index 51e4411906..750a8c0bea 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 7d0508a0fd..cf55eacec4 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 fae7e35118..d922f10669 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 f70d4fa114..4db2d5ebe5 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -715,9 +715,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)
@@ -824,7 +824,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 299e742cfd..61603361f5 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 27c4732b37..62d3fcc8ae 100644
--- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
@@ -394,6 +394,7 @@
// G CKEYS
// H CKEYS
+
/datum/gear/fluff/lauren_medal
path = /obj/item/clothing/accessory/medal/conduct
display_name = "Lauren's Medal"
@@ -412,6 +413,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 +833,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/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm
index 0e5b6a2420..c342fb9b3e 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 60a207bcc8..fff3bb6af4 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_vr.dm b/code/modules/client/preferences_vr.dm
index 5dda608597..9aebb70bfc 100644
--- a/code/modules/client/preferences_vr.dm
+++ b/code/modules/client/preferences_vr.dm
@@ -4,6 +4,8 @@
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
var/job_talon_low = 0
@@ -71,7 +73,7 @@
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."
@@ -84,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 = "Toggle 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/spacesuits/rig/modules/specific/crusher_gauntlets.dm b/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm
index 3dff20284f..9d156a1361 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 0000000000..92dcd87dd3
--- /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/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm
index 577709649c..bb692272c0 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
diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm
index c5831535ed..9b39c418f0 100644
--- a/code/modules/economy/vending_machines_vr.dm
+++ b/code/modules/economy/vending_machines_vr.dm
@@ -3938,7 +3938,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 +4394,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/wallrot.dm b/code/modules/events/wallrot.dm
index 311003a05e..6c87fb8572 100644
--- a/code/modules/events/wallrot.dm
+++ b/code/modules/events/wallrot.dm
@@ -7,10 +7,13 @@
// 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()
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index 51ec3d82e6..1401a12e63 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."
@@ -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 c95ddd3d1d..e7a16f5364 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 f310e3b698..dce6f234cf 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!"
diff --git a/code/modules/food/kitchen/smartfridge/engineering.dm b/code/modules/food/kitchen/smartfridge/engineering.dm
index 2798854537..035af9aebb 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/gamemaster/event2/events/everyone/infestation.dm b/code/modules/gamemaster/event2/events/everyone/infestation.dm
index f51456f362..512679d2fc 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/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index a5c2c1b138..9f0442ec0b 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -620,8 +620,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 6e8797bf70..2db25d26fb 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/mob/death.dm b/code/modules/mob/death.dm
index b3ccb1898e..2504553775 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 3848a6c413..7bce6c10e4 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)
@@ -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 958db0dc9f..19fc538eb6 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 b46abcac01..14adae33a3 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 0d3edc90c8..43bab179d6 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/species/species_hud.dm b/code/modules/mob/living/carbon/human/species/species_hud.dm
index 9212e9e199..bf0c36b777 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/living.dm b/code/modules/mob/living/living.dm
index b8b0e70d57..a28cc3a4eb 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 76694553f6..133961a631 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 38f59adbc5..a2876c61aa 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 920c125a8c..2bb65ec9e3 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
@@ -75,7 +75,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
@@ -84,7 +85,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
@@ -94,7 +96,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
@@ -103,7 +106,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
@@ -112,7 +116,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
@@ -121,7 +126,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
@@ -130,7 +136,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
@@ -139,14 +146,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
@@ -154,14 +164,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 b3b9667ea8..b6c037440a 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 ae34c725bd..dd8d5f38f9 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 c03c6b8015..46e888d925 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 057373b4c7..adf7d00976 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 53a46e09ad..ebe36b48f0 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/overmap_mob_vr.dm b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm
new file mode 100644
index 0000000000..d9b544cc73
--- /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/subtypes/animal/alien animals/skeleton.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/skeleton.dm
new file mode 100644
index 0000000000..4e9f2f66e0
--- /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 0000000000..60be79dadd
--- /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 0000000000..ded1f6ad6a
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
@@ -0,0 +1,201 @@
+/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 = "It's a space whale! Woah!"
+ 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
+
+ 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(!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)
+ 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
\ No newline at end of file
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 3963cec0b6..b8de4885ba 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 362232bd8e..b77d55a2c8 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 2735256b15..89c67175af 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 a8c470d3fc..e8f44b020b 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 3d590a19fd..0ff6ee6496 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 1e7991d6a2..477dcb5aa7 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 e6dfc3f708..66c14c7b38 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 93644874d1..345e315a16 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 cc6bdcdb78..61645e9b69 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 a772346555..7ff84ff697 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 33ea730b2e..8608c6f7a7 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 89ccfc3a25..741f3f279a 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 ca94f0373f..83af74c076 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 65cbb5d7a9..7b8b777972 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 b942f69d0f..97da0b49ad 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 3e3647a0b0..5616b4b524 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 e7be8a1f57..27bd772e25 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 c7692b391b..d7c2bf37db 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 2c203844e3..ea41d429f8 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 f7524b7be4..8fa103a457 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 989ca0266b..f78b468a92 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
@@ -28,7 +28,12 @@
maxHealth = 25
health = 25
+
+ meat_amount = 2
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
minbodytemp = 175 //yw edit, Makes mobs survive cryogaia temps
+
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 2d0c0b638e..31b25ee36f 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 c8935093a4..1a93754af3 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 0c2eb934aa..44c6cea6f5 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 076c19a066..bdcd9b6179 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 0ea7bfb5c8..3a7999f015 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 a94bdb2659..937c45143b 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 bb1445b6f2..2fc4b202a4 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
@@ -49,7 +49,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 dab82b850b..be88baab27 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 d3cda1f22b..7127b42830 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 a775c315f9..595e3557cf 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 e4199373bd..c9d75869fb 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 f5a18eb16a..7b21c428bb 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 9f028ed56d..c4f41bd3ba 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 c30dd4be5a..e7dea44853 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 ca5ab5e962..c2decea8af 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 76753e8da6..50ee63637c 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 052fdaa196..be6af537c8 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 f39e5dc666..cac9a79b10 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 5b345affac..b7f02e2833 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 36bff0acfd..b9d57d316a 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 cae232e051..96a6d1adc7 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 660631471b..dc34024744 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 5186d76920..3bb27fa471 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 d32a6ee923..7d16df1049 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 c6ea3efbc1..076aa3bba1 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 b58ebca5ae..481f73a4cd 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 1245278421..ae0610fcae 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 4a843eed80..329b747f97 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 16fa33596a..1d5fc57157 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 13a123531b..a0ab3a9bc1 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 fd4837b955..023dcccd68 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 fa75b5bc69..8399dd79fb 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 1bfb4a4ade..b3ea3ff373 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 d4b5b326d9..1df71072c2 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 371fc8d241..ee27fb1c97 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 e66162432b..d09e72aa97 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 32ddb75c0a..b4767b8dea 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 651599e352..8affc4d894 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 745db9e568..ef1aa44b59 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 f3c200410b..0589a35391 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/wolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
index 8c4d7b14df..31b057ef45 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/new_player/new_player_vr.dm b/code/modules/mob/new_player/new_player_vr.dm
index 71abc1ddf1..fdbbcb10d0 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_vr.dm b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
index 4651023252..f653e882eb 100644
--- a/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
@@ -772,3 +772,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 fa5cc8ba6a..d96cd9e611 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 49f765225a..44fdcc0c82 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/overmap/overmap_object.dm b/code/modules/overmap/overmap_object.dm
index ad5bf60dd2..ad87d50e8b 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 9a1c0fb115..e09678f9b0 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/persistence/datum/persistence_datum.dm b/code/modules/persistence/datum/persistence_datum.dm
index 325ff15ced..14d813406d 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/projectiles/guns/energy/kinetic_accelerator_vr.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
index 4a1955d7a7..311c7e753b 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
@@ -661,7 +661,7 @@
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
diff --git a/code/modules/projectiles/guns/magnetic/bore.dm b/code/modules/projectiles/guns/magnetic/bore.dm
index 3cc05cc44b..66e89cb9eb 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 15d538c082..307febc8bc 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/reagents/reactions/instant/drinks.dm b/code/modules/reagents/reactions/instant/drinks.dm
index abd16b2279..c2e0521ee6 100644
--- a/code/modules/reagents/reactions/instant/drinks.dm
+++ b/code/modules/reagents/reactions/instant/drinks.dm
@@ -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
diff --git a/code/modules/reagents/reactions/instant/food.dm b/code/modules/reagents/reactions/instant/food.dm
index da16f25173..937825cb42 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)
diff --git a/code/modules/reagents/reactions/instant/instant_vr.dm b/code/modules/reagents/reactions/instant/instant_vr.dm
index 3a7e84537c..89febfacbb 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/research/designs/circuits/circuits.dm b/code/modules/research/designs/circuits/circuits.dm
index fbf41ab806..cd28842f00 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/prosfab_designs.dm b/code/modules/research/prosfab_designs.dm
index 6f29e26ebb..d4ab887d98 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 b9f7c81aa6..405bcef141 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 921b704c96..3f161271e3 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 23d862d66d..e7029e3c6d 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 27627055d7..779bb76d5f 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 f428033848..9a71cbdba7 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/vchat/vchat_client.dm b/code/modules/vchat/vchat_client.dm
index b2cd9df758..a918c94cde 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 7609400366..3d0486fd79 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
diff --git a/code/modules/vore/eating/inbelly_spawn.dm b/code/modules/vore/eating/inbelly_spawn.dm
new file mode 100644
index 0000000000..39c09554e0
--- /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 23dd3eea55..3050fc846e 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
@@ -258,7 +258,7 @@
permit_healbelly = P.permit_healbelly
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
@@ -434,6 +434,14 @@
var/obj/effect/overlay/aiholo/holo = loc
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
@@ -518,7 +526,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 +648,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 +706,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 +881,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 e3e7b9befa..4163277462 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 54ce371dff..ea1a961efe 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,
@@ -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 2a6a91cc58..5bb399b0d0 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 9850bde4a6..a3799ebcf6 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -1393,4 +1393,16 @@
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
\ No newline at end of file
diff --git a/code/modules/xenoarcheaology/tools/suspension_generator.dm b/code/modules/xenoarcheaology/tools/suspension_generator.dm
index 08d41fc121..2f2c87954e 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/icons/inventory/ears/mob.dmi b/icons/inventory/ears/mob.dmi
index 174ed17469..95ec0e9c8a 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 356aab58f5..c555efe874 100644
Binary files a/icons/inventory/head/mob.dmi and b/icons/inventory/head/mob.dmi differ
diff --git a/icons/mob/alienanimals_x32.dmi b/icons/mob/alienanimals_x32.dmi
index b531aeb9ec..b187ad5873 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 fd99eed3f0..def737dcc3 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 0c5e48a55e..aa7e7807cc 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 432a86f0d5..bad25f481b 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 e4a3a1f755..a05fa9c79f 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 42631b85de..6802aecc47 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 d790034cda..0fb0a0667d 100644
Binary files a/icons/mob/vore/ears_32x64.dmi and b/icons/mob/vore/ears_32x64.dmi differ
diff --git a/icons/obj/capture_crystal_vr.dmi b/icons/obj/capture_crystal_vr.dmi
new file mode 100644
index 0000000000..7cd9208b2b
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 a52ac02d69..8ae5c06b72 100644
Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ
diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi
index a63fcc23a8..841733ee72 100644
Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ
diff --git a/icons/turf/flooring/weird_vr.dmi b/icons/turf/flooring/weird_vr.dmi
new file mode 100644
index 0000000000..b8e10ec136
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 5d75cf88b9..3269a00d08 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 b8fe78c759..9b84b0f92c 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 5e2d399fd8..03c26ba63d 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 f08d716e93..a1f2dbd4cf 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 117275c22c..672aa8791d 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,11 +238,14 @@
},
/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" = (
@@ -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 8bbc1765b7..f63be85625 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/mountains.dm b/maps/expedition_vr/beach/submaps/mountains.dm
index 6766d3465e..9150c690c2 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/gateway_vr/listeningpost.dmm b/maps/gateway_vr/listeningpost.dmm
index a14786ace9..6c2d6b2fb9 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 4ff8269251..42f3f1b517 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{
@@ -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 f3be0775bf..612294d96b 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{
@@ -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 54d03f71a6..9c1e9f7982 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,
@@ -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 ca1b2d01c9..5acb316d64 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,
@@ -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 a3ca7db396..db7570d4ef 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 73e1727581..7de8389bc7 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 16e6a42d3f..4aa6d1cace 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 41a1707af8..feef13888c 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
diff --git a/maps/om_adventure/grasscave.dm b/maps/om_adventure/grasscave.dm
new file mode 100644
index 0000000000..e9e3a21dda
--- /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 0000000000..b275729757
--- /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 0000000000..40aae71e2c
--- /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 0000000000..8366c7736a
--- /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 0000000000..a8c3a50974
--- /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 0000000000..a72674a530
--- /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 0000000000..0adc084576
--- /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 0000000000..31b9b10e2d
--- /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 0000000000..02adedf2c1
--- /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 0000000000..13960f3854
--- /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 0000000000..a41ef6cb59
--- /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 0000000000..224bb457bf
--- /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 0000000000..a4932cf5cf
--- /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 0000000000..89a5dec553
--- /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 0000000000..655e97b230
--- /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 0000000000..e2a3d25f18
--- /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 0000000000..19d435ce33
--- /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 0000000000..1c77a34996
--- /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 0000000000..077d29a8b7
--- /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 0000000000..aea560a0af
--- /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 0000000000..7d2831eade
--- /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 0000000000..c57959fc95
--- /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 0000000000..c741ee7055
--- /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 0000000000..005ceb21c9
--- /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 0000000000..28fc4367d9
--- /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 0000000000..4a6dd94d5f
--- /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/stellar_delight_defines.dm b/maps/stellardelight/stellar_delight_defines.dm
index d3fef20cb1..4803c47bdf 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"
@@ -137,7 +138,7 @@
list("Offmap Ship - Talon V2")
)
- lateload_single_pick = list(
+ lateload_overmap = list(
list("Carp Farm"),
list("Snow Field"),
list("Listening Post"),
@@ -148,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,
@@ -167,7 +172,7 @@
mining_station_z = list(Z_LEVEL_SPACE_LOW)
mining_outpost_z = list(Z_LEVEL_SURFACE_MINE)
*/
- lateload_single_pick = null //Nothing right now.
+ lateload_gateway = null //Nothing right now.
planet_datums_to_make = list(/datum/planet/virgo3b,
/datum/planet/virgo4)
diff --git a/maps/submaps/pois_vr/debris_field/debris14.dmm b/maps/submaps/pois_vr/debris_field/debris14.dmm
index 91a5ef114a..6a346d6692 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/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm
index b439b014b2..0d8755eaf9 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 9308c82448..4434bb45f7 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 a7010f6abb..87813d3acf 100644
--- a/maps/tether/tether_defines.dm
+++ b/maps/tether/tether_defines.dm
@@ -162,7 +162,7 @@
list("Fuel Depot - Z1 Space")
)
- lateload_single_pick = list(
+ lateload_gateway = list(
list("Carp Farm"),
list("Snow Field"),
list("Listening Post"),
@@ -194,7 +194,7 @@
mining_station_z = list(Z_LEVEL_SPACE_LOW)
mining_outpost_z = list(Z_LEVEL_SURFACE_MINE)
- lateload_single_pick = null //Nothing right now.
+ lateload_gateway = null //Nothing right now.
planet_datums_to_make = list(/datum/planet/virgo3b,
/datum/planet/virgo4)
diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm
index f0439982a4..8c301e6d47 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
diff --git a/sound/effects/capture-crystal-in.ogg b/sound/effects/capture-crystal-in.ogg
new file mode 100644
index 0000000000..b00d7be9c9
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 0000000000..a0d6de3395
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 0000000000..363ad85c56
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 0000000000..3c0a7b343b
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 0000000000..d5791ec542
Binary files /dev/null and b/sound/effects/skeleton_walk.ogg differ
diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js
index 50ee6263a3..4138384f3b 100644
--- a/tgui/packages/tgui/interfaces/VorePanel.js
+++ b/tgui/packages/tgui/interfaces/VorePanel.js
@@ -703,6 +703,7 @@ const VoreUserPreferences = (props, context) => {
show_vore_fx,
can_be_drop_prey,
can_be_drop_pred,
+ allow_inbelly_spawning,
allow_spontaneous_tf,
step_mechanics_active,
pickup_mechanics_active,
@@ -821,6 +822,20 @@ const VoreUserPreferences = (props, context) => {
disabled: "Spontaneous Pred Disabled",
},
},
+ inbelly_spawning: {
+ action: "toggle_allow_inbelly_spawning",
+ test: allow_inbelly_spawning,
+ tooltip: {
+ main: "This toggle is ghosts being able to spawn in one of your bellies."
+ + " You will have to confirm again when they attempt to.",
+ enable: "Click here to allow prey to spawn in you.",
+ disable: "Click here to prevent prey from spawning in you.",
+ },
+ content: {
+ enabled: "Inbelly Spawning Allowed",
+ disabled: "Inbelly Spawning Forbidden",
+ },
+ },
noisy: {
action: "toggle_noisy",
test: noisy,
@@ -955,34 +970,37 @@ const VoreUserPreferences = (props, context) => {
-
+
-
+
+
+
+
-
+
-
+
-
+
-
+