diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm
index ac38f40302..c241a84994 100644
--- a/code/_helpers/game.dm
+++ b/code/_helpers/game.dm
@@ -262,13 +262,13 @@ var/mobs_radio_range_fired = 1 //CHOMPEdit
/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)
@@ -285,14 +285,17 @@ var/mobs_radio_range_fired = 1 //CHOMPEdit
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 d1f942c426..850ec24c38 100644
--- a/code/_helpers/global_lists_vr.dm
+++ b/code/_helpers/global_lists_vr.dm
@@ -231,6 +231,7 @@ var/global/list/edible_trash = list(/obj/item/broken_device,
/obj/item/weapon/storage/wallet,
/obj/item/weapon/storage/vore_egg,
/obj/item/weapon/bikehorn/tinytether,
+ /obj/item/capture_crystal,
/obj/item/weapon/material/kitchen, //chompstation addition start
/obj/item/weapon/storage/mre,
/obj/item/weapon/storage/mrebag,
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..e8df77bd35 100644
--- a/code/controllers/subsystems/persistence.dm
+++ b/code/controllers/subsystems/persistence.dm
@@ -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/supplypacks/misc_vr.dm b/code/datums/supplypacks/misc_vr.dm
index cab1b8279b..dbe2143e03 100644
--- a/code/datums/supplypacks/misc_vr.dm
+++ b/code/datums/supplypacks/misc_vr.dm
@@ -100,8 +100,8 @@
)
cost = 250
containertype = /obj/structure/closet/crate/secure/gear
- containername = "Solgov medical hardsuit crate"
- access = access_medical
+ containername = "Solgov engineering hardsuit crate"
+ access = access_engine
// CHOMPStation EDIT End
diff --git a/code/datums/vending/stored_item.dm b/code/datums/vending/stored_item.dm
index 3b46c6be3f..453ca4fe31 100644
--- a/code/datums/vending/stored_item.dm
+++ b/code/datums/vending/stored_item.dm
@@ -91,7 +91,9 @@
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)
- return S
\ No newline at end of file
+ return S
diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm
index d00efc79b6..e3e3863ba9 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),
@@ -378,4 +379,4 @@
return
return ..()
// END ROBOT ORGAN PRINTER
-*/
\ No newline at end of file
+*/
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index cc2753f56f..8ec6dfa2b1 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, 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, 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, "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 83adeac8b3..ced4911bce 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 cb4ebbaf0f..c7cf0e7875 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/taskmanager_ch.dm b/code/game/objects/items/weapons/taskmanager_ch.dm
index f8cb181abc..8d3ef847e4 100644
--- a/code/game/objects/items/weapons/taskmanager_ch.dm
+++ b/code/game/objects/items/weapons/taskmanager_ch.dm
@@ -102,7 +102,7 @@
scancount = 0
scanned = list()
scannables = list(/obj/machinery/deployable/barrier,/obj/machinery/flasher/portable,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/taperecorder,
- /mob/living/simple_mob/animal/passive/snake/noodle,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/reagent_containers/spray/pepper,
+ /mob/living/simple_mob/animal/passive/snake/python/noodle,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/reagent_containers/spray/pepper,
/obj/item/weapon/storage/box/handcuffs,/obj/item/clothing/glasses/sunglasses/sechud/aviator,/obj/machinery/computer/secure_data,/obj/machinery/computer/security,
/obj/item/weapon/storage/briefcase/crimekit,/obj/machinery/microscope,/obj/machinery/dnaforensics,/obj/machinery/flasher,/obj/structure/closet/secure_closet/brig,
/obj/structure/closet/secure_closet/warden,/obj/machinery/vending/security,/obj/structure/closet/secure_closet/hos2,/obj/structure/closet/secure_closet/hos,
diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm
index a98edbf598..a3b83216d1 100644
--- a/code/game/objects/random/mapping.dm
+++ b/code/game/objects/random/mapping.dm
@@ -1455,4 +1455,194 @@
/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.
+
+/obj/random/underdark
+ name = "random underdark loot"
+ desc = "Random loot for Underdark."
+ icon = 'icons/obj/items.dmi'
+ icon_state = "spickaxe"
+
+/obj/random/underdark/item_to_spawn()
+ return pick(prob(3);/obj/random/multiple/underdark/miningdrills,
+ prob(3);/obj/random/multiple/underdark/ores,
+ prob(2);/obj/random/multiple/underdark/treasure,
+ prob(1);/obj/random/multiple/underdark/mechtool)
+
+/obj/random/underdark/uncertain
+ icon_state = "upickaxe"
+ spawn_nothing_percentage = 65 //only 33% to spawn loot
+
+/obj/random/multiple/underdark/miningdrills
+ name = "random underdark mining tool loot"
+ desc = "Random mining tool loot for Underdark."
+ icon = 'icons/obj/items.dmi'
+ icon_state = "spickaxe"
+
+/obj/random/multiple/underdark/miningdrills/item_to_spawn()
+ return pick(
+ prob(10);list(/obj/item/weapon/pickaxe/silver),
+ prob(8);list(/obj/item/weapon/pickaxe/drill),
+ prob(6);list(/obj/item/weapon/pickaxe/jackhammer),
+ prob(5);list(/obj/item/weapon/pickaxe/gold),
+ prob(4);list(/obj/item/weapon/pickaxe/plasmacutter),
+ prob(2);list(/obj/item/weapon/pickaxe/diamond),
+ prob(1);list(/obj/item/weapon/pickaxe/diamonddrill)
+ )
+
+/obj/random/multiple/underdark/ores
+ name = "random underdark mining ore loot"
+ desc = "Random mining utility loot for Underdark."
+ icon = 'icons/obj/mining.dmi'
+ icon_state = "satchel"
+
+/obj/random/multiple/underdark/ores/item_to_spawn()
+ return pick(
+ prob(9);list(
+ /obj/item/weapon/storage/bag/ore,
+ /obj/item/weapon/shovel,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen
+ ),
+ prob(7);list(
+ /obj/item/weapon/storage/bag/ore,
+ /obj/item/weapon/pickaxe,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium
+ ),
+ prob(4);list(
+ /obj/item/clothing/suit/radiation,
+ /obj/item/clothing/head/radiation,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium),
+ prob(2);list(
+ /obj/item/device/flashlight/lantern,
+ /obj/item/clothing/glasses/material,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond
+ ),
+ prob(1);list(
+ /obj/item/weapon/mining_scanner,
+ /obj/item/weapon/shovel/spade,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium
+ )
+ )
+
+/obj/random/multiple/underdark/treasure
+ name = "random underdark treasure"
+ desc = "Random treasure loot for Underdark."
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "cashbag"
+
+/obj/random/multiple/underdark/treasure/item_to_spawn()
+ return pick(
+ prob(5);list(
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/item/clothing/head/pirate
+ ),
+ prob(4);list(
+ /obj/item/weapon/storage/bag/cash,
+ /obj/item/weapon/spacecash/c500,
+ /obj/item/weapon/spacecash/c100,
+ /obj/item/weapon/spacecash/c50
+ ),
+ prob(3);list(
+ /obj/item/clothing/head/hardhat/orange,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold),
+ prob(1);list(
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/diamond,
+ /obj/item/stack/material/diamond,
+ /obj/item/stack/material/diamond
+ )
+ )
+
+/obj/random/multiple/underdark/mechtool
+ name = "random underdark mech equipment"
+ desc = "Random mech equipment loot for Underdark."
+ icon = 'icons/mecha/mecha_equipment.dmi'
+ icon_state = "mecha_clamp"
+
+/obj/random/multiple/underdark/mechtool/item_to_spawn()
+ return pick(
+ prob(12);list(/obj/item/mecha_parts/mecha_equipment/tool/drill),
+ prob(10);list(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp),
+ prob(8);list(/obj/item/mecha_parts/mecha_equipment/generator),
+ prob(7);list(/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot/rigged),
+ prob(6);list(/obj/item/mecha_parts/mecha_equipment/repair_droid),
+ prob(3);list(/obj/item/mecha_parts/mecha_equipment/gravcatapult),
+ prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser),
+ prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/flamer/rigged),
+ prob(1);list(/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill),
+ )
+//VOREStation Add End
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..a25d90fbba 100644
--- a/code/game/objects/structures/artstuff.dm
+++ b/code/game/objects/structures/artstuff.dm
@@ -316,22 +316,11 @@
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"
desc = "Art or \"Art\"? You decide."
@@ -589,4 +578,4 @@
QDEL_NULL(P.current_canvas)
P.update_appearance()
loaded = FALSE
- log_and_message_admins("[key_name_admin(user)] has deleted persistent painting made by [author].")
\ No newline at end of file
+ log_and_message_admins("[key_name_admin(user)] has deleted persistent painting made by [author].")
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 459f907195..a646583e34 100644
--- a/code/game/objects/structures/trash_pile_vr.dm
+++ b/code/game/objects/structures/trash_pile_vr.dm
@@ -263,7 +263,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/simulated.dm b/code/game/turfs/simulated.dm
index fca6b3c35b..5b9af521c5 100644
--- a/code/game/turfs/simulated.dm
+++ b/code/game/turfs/simulated.dm
@@ -124,7 +124,7 @@
bloodDNA = null
- if(src.wet || (dirtslip && (dirt > 50 || outdoors))) //CHOMPEdit
+ if(src.wet || (dirtslip && (dirt > 50 || outdoors == 1))) //CHOMPEdit
if(M.buckled || (src.wet == 1 && M.m_intent == "walk"))
return
@@ -139,6 +139,8 @@
floor_type = "dirty"
else if(outdoors)
floor_type = "uneven"
+ if(src.wet == 0 && M.m_intent == "walk")
+ return
//CHOMPEdit End
switch(src.wet)
if(2) // Lube
@@ -188,4 +190,4 @@
else if( istype(M, /mob/living/silicon/robot ))
new /obj/effect/decal/cleanable/blood/oil(src)
else if(ishuman(M))
- add_blood(M)
\ No newline at end of file
+ add_blood(M)
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/ai/ai_holder_targeting.dm b/code/modules/ai/ai_holder_targeting.dm
index 68e8a1737c..371419c128 100644
--- a/code/modules/ai/ai_holder_targeting.dm
+++ b/code/modules/ai/ai_holder_targeting.dm
@@ -4,7 +4,8 @@
var/hostile = FALSE // Do we try to hurt others?
var/retaliate = FALSE // Attacks whatever struck it first. Mobs will still attack back if this is false but hostile is true.
var/mauling = FALSE // Attacks unconscious mobs
- var/handle_corpse = FALSE // Allows AI to acknowledge corpses (e.g. nurse spiders)
+ var/unconscious_vore = TRUE //VOREStation Add - allows a mob to go for unconcious targets IF their vore prefs align
+ var/handle_corpse = FALSE // Allows AI to acknowledge corpses (e.g. nurse spiders)
var/atom/movable/target = null // The thing (mob or object) we're trying to kill.
var/atom/movable/preferred_target = null// If set, and if given the chance, we will always prefer to target this over other options.
@@ -128,6 +129,14 @@
if(L.stat == UNCONSCIOUS) // Do we have mauling? Yes? Then maul people who are sleeping but not SSD
if(mauling)
return TRUE
+ //VOREStation Add Start
+ else if(unconscious_vore && L.allowmobvore)
+ var/mob/living/simple_mob/vore/eater = holder
+ if(eater.will_eat(L))
+ return TRUE
+ else
+ return FALSE
+ //VOREStation Add End
else
return FALSE
if(holder.IIsAlly(L))
diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index 1cdbb79b27..210a9d1539 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -855,7 +855,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 f16815d356..48390196fd 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)
@@ -170,7 +170,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)
@@ -206,7 +206,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 cc93376399..d2ffd563e0 100644
--- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
@@ -344,6 +344,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
diff --git a/code/modules/client/preference_setup/loadout/loadout_mask.dm b/code/modules/client/preference_setup/loadout/loadout_mask.dm
index 2c89ce66cb..a313f3023d 100644
--- a/code/modules/client/preference_setup/loadout/loadout_mask.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_mask.dm
@@ -46,13 +46,13 @@
/datum/gear/mask/gaiter
display_name = "neck gaiter selection"
- path = /obj/item/clothing/mask/gaiter
+ path = /obj/item/clothing/accessory/gaiter
cost = 1
/datum/gear/mask/gaiter/New()
..()
var/list/gaiters = list()
- for(var/gaiter in typesof(/obj/item/clothing/mask/gaiter))
- var/obj/item/clothing/mask/gaiter_type = gaiter
+ for(var/gaiter in typesof(/obj/item/clothing/accessory/gaiter))
+ var/obj/item/clothing/accessory/gaiter_type = gaiter
gaiters[initial(gaiter_type.name)] = gaiter_type
gear_tweaks += new/datum/gear_tweak/path(sortTim(gaiters, /proc/cmp_text_asc))
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/vore/09_misc.dm b/code/modules/client/preference_setup/vore/09_misc.dm
index 2273cc586b..8f3d467ff5 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..3ddf1f5c41 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!
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 3a79b7177a..7f15afe180 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -362,33 +362,6 @@
src.icon_state = "flushed"
return
-//Gaiter scarves
-/obj/item/clothing/mask/gaiter
- name = "red neck gaiter"
- desc = "A slightly worn neck gaiter, it's loose enough to be worn comfortably like a scarf. Commonly used by outdoorsmen and mercenaries, both to keep warm and keep debris away from the face."
- icon_state = "gaiter_red"
-
-/obj/item/clothing/mask/gaiter/attack_self(mob/user as mob)
- if(src.icon_state == initial(icon_state))
- src.icon_state = "[icon_state]_up"
- to_chat(user, "You pull the gaiter up over your nose.")
- else
- src.icon_state = initial(icon_state)
- to_chat(user, "You tug the gaiter down around your neck.")
- update_clothing_icon() //so our mob-overlays update
-
-/obj/item/clothing/mask/gaiter/tan
- name = "tan neck gaiter"
- icon_state = "gaiter_tan"
-
-/obj/item/clothing/mask/gaiter/gray
- name = "gray neck gaiter"
- icon_state = "gaiter_gray"
-
-/obj/item/clothing/mask/gaiter/green
- name = "green neck gaiter"
- icon_state = "gaiter_green"
-
/obj/item/clothing/mask/mouthwheat
name = "mouth wheat"
desc = "100% synthetic \"Country Girls LLC.\" brand mouth wheat. Warning: not for actual consumption."
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/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index ca03efdec5..ec338f1d5c 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -455,4 +455,73 @@
name = "sash"
desc = "A plain, unadorned sash."
icon_state = "sash"
- slot = ACCESSORY_SLOT_OVER
\ No newline at end of file
+ slot = ACCESSORY_SLOT_OVER
+
+//Gaiter scarves
+/obj/item/clothing/accessory/gaiter
+ name = "red neck gaiter"
+ desc = "A slightly worn neck gaiter, it's loose enough to be worn comfortably like a scarf. Commonly used by outdoorsmen and mercenaries, both to keep warm and keep debris away from the face."
+ icon_state = "gaiter_red"
+ slot_flags = SLOT_MASK | SLOT_TIE
+ body_parts_covered = FACE
+ w_class = ITEMSIZE_SMALL
+ slot = ACCESSORY_SLOT_INSIGNIA // snowflakey, i know, shut up
+ item_flags = FLEXIBLEMATERIAL
+ var/breath_masked = FALSE
+ var/obj/item/clothing/mask/breath/breathmask
+ action_button_name = "Pull On Gaiter"
+
+/obj/item/clothing/accessory/gaiter/update_clothing_icon()
+ . = ..()
+ if(ismob(src.loc))
+ var/mob/M = src.loc
+ M.update_inv_wear_mask()
+
+/obj/item/clothing/accessory/gaiter/attackby(obj/item/I, mob/user)
+ if(istype(I, /obj/item/clothing/mask/breath))
+ to_chat(user, SPAN_NOTICE("You tuck [I] behind [src]."))
+ breathmask = I
+ breath_masked = TRUE
+ user.drop_from_inventory(I, drop_location())
+ I.forceMove(src)
+ item_flags &= ~FLEXIBLEMATERIAL
+ . = ..()
+
+/obj/item/clothing/accessory/gaiter/AltClick(mob/user)
+ . = ..()
+ if(breath_masked && breathmask)
+ to_chat(user, SPAN_NOTICE("You pull [breathmask] out from behind [src], and it drops to your feet."))
+ breathmask.forceMove(drop_location())
+ breathmask = null
+ breath_masked = FALSE
+ item_flags &= ~AIRTIGHT
+ item_flags |= FLEXIBLEMATERIAL
+
+/obj/item/clothing/accessory/gaiter/attack_self(mob/user)
+ var/gaiterstring = "You pull [src] "
+ if(src.icon_state == initial(icon_state))
+ src.icon_state = "[icon_state]_up"
+ gaiterstring += "up over your nose[breath_masked ? " and secure the mask tucked underneath." : "."]"
+ if(breath_masked)
+ item_flags |= AIRTIGHT
+ else
+ src.icon_state = initial(icon_state)
+ gaiterstring += "down around your neck[breath_masked ? " and dislodge the mask tucked underneath." : "."]"
+ body_parts_covered &= ~FACE
+ if(breath_masked)
+ item_flags &= ~AIRTIGHT
+ to_chat(user, SPAN_NOTICE(gaiterstring))
+ qdel(mob_overlay) // we're gonna need to refresh these
+ update_clothing_icon() //so our mob-overlays update
+
+/obj/item/clothing/accessory/gaiter/tan
+ name = "tan neck gaiter"
+ icon_state = "gaiter_tan"
+
+/obj/item/clothing/accessory/gaiter/gray
+ name = "gray neck gaiter"
+ icon_state = "gaiter_gray"
+
+/obj/item/clothing/accessory/gaiter/green
+ name = "green neck gaiter"
+ icon_state = "gaiter_green"
diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm
index df3c102fed..ea010cf8ee 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 2b1e12aa92..0e757f7ed9 100644
--- a/code/modules/economy/vending_machines_vr.dm
+++ b/code/modules/economy/vending_machines_vr.dm
@@ -2786,7 +2786,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,
@@ -3242,7 +3242,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 e09cc50d2f..1909fc5d00 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 61b5921157..5b18636bf6 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -854,32 +854,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..."
@@ -894,21 +868,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."
@@ -933,69 +892,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."
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 132bba78ec..0175a9dc81 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..4f0d2bb9d8 100644
--- a/code/modules/food/kitchen/smartfridge/engineering.dm
+++ b/code/modules/food/kitchen/smartfridge/engineering.dm
@@ -17,9 +17,11 @@
var/amount = I.get_amount()
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)
@@ -27,4 +29,4 @@
for(var/datum/stored_item/stack/I as anything in item_records)
if(istype(O, I.item_path)) // Typecheck should evaluate material-specific subtype
return I
- return null
\ No newline at end of file
+ return null
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 174fb7ad91..5f7a02aa18 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/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 5819575697..7bce6c10e4 100644
--- a/code/modules/mob/holder.dm
+++ b/code/modules/mob/holder.dm
@@ -129,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)
@@ -268,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 c361959976..e1a8120d88 100644
--- a/code/modules/mob/living/carbon/give.dm
+++ b/code/modules/mob/living/carbon/give.dm
@@ -15,9 +15,10 @@
to_chat(src, "You don't have anything in your hands to give to \the [target].")
return
- if(tgui_alert(target,"[src] wants to give you \a [I]. Will you accept it?","Item Offer",list("Yes","No")) == "No") //VOREStation Edit - make yes on the left to be consistent with other dialogs
- target.visible_message("\The [src] tried to hand \the [I] to \the [target], \
- but \the [target] didn't want it.")
+ 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("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
if(!I) 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 5b2d45a29e..1ad95b35fd 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/robot/robot_modules/station_ch.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_ch.dm
index 1c0a3fdb78..bc26c9bfa6 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/station_ch.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/station_ch.dm
@@ -19,4 +19,7 @@
src.modules += new /obj/item/weapon/surgical/FixOVein/cyborg(src)
src.modules += new /obj/item/weapon/surgical/bonesetter/cyborg(src)
src.modules += new /obj/item/weapon/surgical/circular_saw/cyborg(src)
- src.modules += new /obj/item/weapon/surgical/surgicaldrill/cyborg(src)
\ No newline at end of file
+ src.modules += new /obj/item/weapon/surgical/surgicaldrill/cyborg(src)
+ src.modules += new /obj/item/weapon/surgical/bioregen(src)
+ src.modules += new /obj/item/weapon/gripper/no_use/organ(src)
+ src.modules += new /obj/item/weapon/reagent_containers/dropper(src)
\ No newline at end of file
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 706b2825b9..8d47dae506 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
@@ -96,7 +96,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
@@ -105,7 +106,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
@@ -115,7 +117,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
@@ -124,7 +127,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
@@ -133,7 +137,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
@@ -142,7 +147,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
@@ -151,7 +157,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
@@ -160,14 +167,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
@@ -175,14 +185,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 f693e8f454..e74af2ec68 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 86fc492c54..c6c2a72277 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/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/jellyfish.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm
new file mode 100644
index 0000000000..1393213736
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm
@@ -0,0 +1,171 @@
+GLOBAL_VAR_CONST(max_jellyfish, 50)
+GLOBAL_VAR_INIT(jellyfish_count, 0)
+
+
+/datum/category_item/catalogue/fauna/space_jellyfish
+ name = "Alien Wildlife - Space Jellyfish"
+ desc = "A hostile space predator. \
+ This space jellyfish uses hypnotic patterns to lure in prey, which it then wraps in tentacles to leech energy from.\
+ It is somewhat weak, but uses unknown means to stun prey. It uses the energy of its prey to replicate itself. \
+ These creatures can quickly grow out of control if left to feed and reproduce unchecked. \
+ Notable weakness to rapid cooling from ice based weaponry.\
+ The flesh is typically non-toxic and quite delicious. Their cores are considered a delicacy in many regions."
+ value = CATALOGUER_REWARD_EASY
+
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish
+ name = "space jellyfish"
+ desc = "A semi-translucent space creature, possessing of tentacles and a hypnotizing, flashing bio-luminescent display."
+ tt_desc = "Semaeostomeae Stellarus"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/space_jellyfish)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "space_jellyfish"
+ icon_living = "space_jellyfish"
+ icon_dead = "space_jellyfish_dead"
+ has_eye_glow = TRUE
+ hovering = TRUE
+
+
+ faction = "jellyfish"
+ maxHealth = 100
+ health = 100
+ nutrition = 150
+ pass_flags = PASSTABLE
+ movement_cooldown = 3.25
+
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 1
+ melee_damage_lower = 1
+ melee_damage_upper = 2
+ attack_sharp = FALSE
+ attack_sound = 'sound/weapons/tap.ogg'
+ attacktext = list("drained", "bludgeoned", "wraped", "tentacle whipped")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/jellyfish
+
+ 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("thrumms")
+
+ meat_amount = 0
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/jellyfishcore
+
+ say_list_type = /datum/say_list/jellyfish
+
+ vore_active = 1
+ vore_capacity = 1
+ vore_bump_chance = 25
+ vore_ignores_undigestable = 0
+ vore_default_mode = DM_DRAIN
+ vore_icons = SA_ICON_LIVING
+ vore_stomach_name = "internal chamber"
+ vore_default_contamination_flavor = "Wet"
+ vore_default_contamination_color = "grey"
+ vore_default_item_mode = IM_DIGEST
+
+ var/reproduction_cooldown = 0
+
+/datum/say_list/jellyfish
+ emote_see = list("flickers", "flashes", "looms","pulses","sways","shimmers hypnotically")
+
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/init_vore()
+ ..()
+ var/obj/belly/B = vore_selected
+ B.name = "internal chamber"
+ B.desc = "It's smooth and translucent. You can see the world around you distort and wobble with the movement of the space jellyfish. It floats casually, while the delicate flesh seems to form to you. It's surprisingly cool, and flickers with its own light. You're on display for all to see, trapped within the confines of this strange space alien!"
+ B.mode_flags = 40
+ B.digest_brute = 0.5
+ B.digest_burn = 0.5
+ B.digestchance = 0
+ B.absorbchance = 0
+ B.escapechance = 15
+
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/apply_melee_effects(var/atom/A)
+ if(isliving(A))
+ var/mob/living/L = A
+ var/leech = rand(1,100)
+ if(L.nutrition)
+ L.adjust_nutrition(-leech)
+ adjust_nutrition(leech)
+ if(prob(25))
+ L.adjustHalLoss(leech)
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/New(newloc, jellyfish)
+ GLOB.jellyfish_count ++
+ var/mob/living/simple_mob/vore/alienanimals/space_jellyfish/parent = jellyfish
+ if(parent)
+ parent.faction = faction
+ ..()
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/death()
+ . = ..()
+ new /obj/item/weapon/reagent_containers/food/snacks/jellyfishcore(loc, nutrition)
+ GLOB.jellyfish_count --
+ qdel(src)
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/Life()
+ . = ..()
+ if(client)
+ return
+ reproduce()
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/proc/reproduce()
+ if(reproduction_cooldown > 0)
+ reproduction_cooldown --
+ return
+ if(GLOB.jellyfish_count >= GLOB.max_jellyfish)
+ return
+ if(nutrition < 500)
+ return
+ if(prob(10))
+ new /mob/living/simple_mob/vore/alienanimals/space_jellyfish(loc, src)
+ adjust_nutrition(-400)
+ reproduction_cooldown = 60
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/Process_Spacemove(var/check_drift = 0)
+ return TRUE
+
+/datum/ai_holder/simple_mob/melee/evasive/jellyfish
+ hostile = TRUE
+ cooperative = FALSE
+ retaliate = TRUE
+ speak_chance = 2
+ wander = TRUE
+ unconscious_vore = TRUE
+
+/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore
+ name = "jellyfish core"
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "jellyfish_core"
+ desc = "The pulsing core of a space jellyfish! ... It smells delicious."
+ nutriment_amt = 50
+ bitesize = 1000
+ nutriment_desc = list("heavenly space meat" = 100)
+
+ var/inherited_nutriment = 0
+
+/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore/New(newloc, inherit)
+ inherited_nutriment = inherit
+ . = ..()
+
+/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore/Initialize()
+ nutriment_amt += inherited_nutriment
+ . = ..()
+ reagents.add_reagent("nutriment", nutriment_amt, nutriment_desc)
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
new file mode 100644
index 0000000000..b8de4885ba
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm
@@ -0,0 +1,219 @@
+/datum/category_item/catalogue/fauna/space_ghost
+ name = "Alien Wildlife - Space Ghost"
+ desc = "A mysterious and unknown creature made of radical energy.\
+ This creature's energy interferes the nervous system in many kinds of creatures, which may result in hallucinations.\
+ This creature's lack of a physical form leaves it quite resistant to physical damage.\
+ Smaller variants of this creature seem to be vulnerable to bright light.\
+ While both variants are quite vulnerable to laser and energy weapons."
+ value = CATALOGUER_REWARD_EASY
+
+
+/mob/living/simple_mob/vore/alienanimals/space_ghost
+ name = "space ghost"
+ desc = "A pulsing mass of darkness that seems to have gained sentience."
+ tt_desc = "?????"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/space_ghost)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "space_ghost"
+ icon_living = "space_ghost"
+ icon_dead = "space_ghost_dead"
+ has_eye_glow = TRUE
+ hovering = TRUE
+ pass_flags = PASSTABLE
+
+ faction = "space ghost"
+ maxHealth = 50
+ health = 50
+ movement_cooldown = 3.25
+
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 0
+ melee_damage_lower = 1
+ melee_damage_upper = 1
+ attack_sharp = FALSE
+ attacktext = list("spooked", "startled", "jumpscared", "screamed at")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/space_ghost
+
+ 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 = 999999
+
+ armor = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 100)
+
+ armor_soak = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 100
+ )
+
+ loot_list = list(/obj/item/weapon/ore/diamond = 100)
+
+ speak_emote = list("rumbles")
+
+ vore_active = 0
+
+ projectiletype = /mob/living/simple_mob/vore/alienanimals/spooky_ghost
+ projectilesound = null
+ projectile_accuracy = 0
+ projectile_dispersion = 0
+
+ needs_reload = TRUE
+ reload_max = 1
+ reload_count = 0
+ reload_time = 7 SECONDS
+
+
+/datum/ai_holder/simple_mob/ranged/kiting/space_ghost
+ hostile = TRUE
+ retaliate = TRUE
+ destructive = TRUE
+ violent_breakthrough = TRUE
+ speak_chance = 0
+
+/mob/living/simple_mob/vore/alienanimals/space_ghost/apply_melee_effects(var/atom/A)
+ var/mob/living/L = A
+ L.hallucination += 50
+
+/mob/living/simple_mob/vore/alienanimals/space_ghost/shoot(atom/A) //We're shooting ghosts at people and need them to have the same faction as their parent, okay?
+ if(!projectiletype)
+ return
+ if(A == get_turf(src))
+ return
+ face_atom(A)
+ if(reload_count >= reload_max)
+ return
+ var/mob/living/simple_mob/P = new projectiletype(loc, src)
+
+ if(!P)
+ return
+ if(needs_reload)
+ reload_count++
+
+ P.faction = faction
+ playsound(src, projectilesound, 80, 1)
+
+/mob/living/simple_mob/vore/alienanimals/space_ghost/death(gibbed, deathmessage = "fades away!")
+ . = ..()
+ qdel(src)
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost
+ name = "space ghost"
+ desc = "A pulsing mass of darkness that seems to have gained sentience."
+ tt_desc = "?????"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/space_ghost)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "spookyghost-1"
+ icon_living = "spookyghost-1"
+ icon_dead = "space_ghost_dead"
+ hovering = TRUE
+ pass_flags = PASSTABLE
+
+ faction = "space ghost"
+ maxHealth = 5
+ health = 5
+ movement_cooldown = 1
+
+ see_in_dark = 10
+ alpha = 128
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 0
+ melee_damage_lower = 1
+ melee_damage_upper = 1
+ attack_sharp = FALSE
+ attacktext = list("spooked", "startled", "jumpscared", "screamed at")
+
+ 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 = 999999
+
+ armor = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 100)
+
+ armor_soak = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 100
+ )
+
+ speak_emote = list("rumbles")
+
+ vore_active = 0
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/space_ghost
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost/Initialize()
+ . = ..()
+ icon_living = "spookyghost-[rand(1,2)]"
+ icon_state = icon_living
+ addtimer(CALLBACK(src, .proc/death), 2 MINUTES)
+ update_icon()
+
+/datum/ai_holder/simple_mob/melee/space_ghost
+ hostile = TRUE
+ retaliate = TRUE
+ destructive = TRUE
+ violent_breakthrough = TRUE
+ speak_chance = 0
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost/death(gibbed, deathmessage = "fades away!")
+ . = ..()
+ qdel(src)
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost/apply_melee_effects(var/atom/A)
+ var/mob/living/L = A
+ L.hallucination += rand(1,50)
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost/Life()
+ . = ..()
+ var/turf/T = get_turf(src)
+ if(!T)
+ return
+ if(T.get_lumcount() >= 0.5)
+ adjustBruteLoss(1)
\ No newline at end of file
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
new file mode 100644
index 0000000000..b77d55a2c8
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm
@@ -0,0 +1,177 @@
+/datum/category_item/catalogue/fauna/startreader
+ name = "Alien Wildlife - Star Treader"
+ desc = "A hard shelled creature that lives on asteroids.\
+ It is quite durable and very opportunistic in its feeding habits.\
+ It is vulnerable to extreme vibrations, and from the bottom."
+ value = CATALOGUER_REWARD_EASY
+
+
+/mob/living/simple_mob/vore/alienanimals/startreader
+ name = "asteroid star treader"
+ desc = "A slow, hard shelled creature that stalks asteroids."
+ tt_desc = "Testudines Stellarus"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/startreader)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "startreader"
+ icon_living = "startreader"
+ icon_dead = "startreader_dead"
+
+ faction = "space turtle"
+ maxHealth = 1000
+ health = 1000
+ movement_cooldown = 20
+
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 1
+ melee_damage_lower = 1
+ melee_damage_upper = 10
+ attack_sharp = FALSE
+ attacktext = list("chomped", "bashed", "monched", "bumped")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/startreader
+
+ 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 = 25)
+
+ armor = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 100,
+ "energy" = 100,
+ "bomb" = 0,
+ "bio" = 100,
+ "rad" = 100)
+
+ armor_soak = list(
+ "melee" = 30,
+ "bullet" = 30,
+ "laser" = 10,
+ "energy" = 10,
+ "bomb" = 0,
+ "bio" = 100,
+ "rad" = 100
+ )
+
+ speak_emote = list("rumbles")
+
+ say_list_type = /datum/say_list/startreader
+
+ vore_active = 1
+ vore_capacity = 2
+ vore_bump_chance = 25
+ vore_ignores_undigestable = 0
+ vore_default_mode = DM_DRAIN
+ vore_icons = SA_ICON_LIVING
+ vore_stomach_name = "gastric sac"
+ vore_default_contamination_flavor = "Wet"
+ vore_default_contamination_color = "grey"
+ vore_default_item_mode = IM_DIGEST
+
+ var/flipped = FALSE
+ var/flip_cooldown = 0
+
+/datum/say_list/startreader
+ emote_see = list("bobs", "digs around","gnashes at something","yawns","snaps at something")
+ emote_hear = list("thrumms","clicks","rattles","groans","burbles")
+
+
+/mob/living/simple_mob/vore/alienanimals/startreader/init_vore()
+ ..()
+ var/obj/belly/B = vore_selected
+ B.name = "gastric sac"
+ B.desc = "It's cramped and hot! You're forced into a small ball as your shape is squeezed into the slick, wet chamber. Despite being swallowed into the creature, you find that you actually stretch out of the top a ways, and can JUST BARELY wiggle around..."
+ B.mode_flags = 40
+ B.digest_brute = 0.5
+ B.digest_burn = 0.5
+ B.digestchance = 10
+ B.absorbchance = 0
+ B.escapechance = 15
+
+/datum/ai_holder/simple_mob/melee/startreader
+ hostile = TRUE
+ retaliate = TRUE
+ destructive = TRUE
+ violent_breakthrough = TRUE
+
+/mob/living/simple_mob/vore/alienanimals/startreader/apply_melee_effects(var/atom/A)
+ 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]!!")
+ L.weakened += rand(1,10)
+
+/mob/living/simple_mob/vore/alienanimals/startreader/Life()
+ . = ..()
+ if(flip_cooldown == 1)
+ flip_cooldown = 0
+ flipped = FALSE
+ handle_flip()
+ visible_message("\The [src] rights itself!!!")
+ return
+ if(flip_cooldown)
+ flip_cooldown --
+ SetStunned(2)
+
+/mob/living/simple_mob/vore/alienanimals/startreader/proc/handle_flip()
+ if(flipped)
+ armor = list(
+ "melee" = 0,
+ "bullet" = 0,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 0)
+
+ armor_soak = list(
+ "melee" = 0,
+ "bullet" = 0,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 0
+ )
+ icon_living = "startreader_flipped"
+ AdjustStunned(flip_cooldown)
+ else
+ armor = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 100,
+ "energy" = 100,
+ "bomb" = 0,
+ "bio" = 100,
+ "rad" = 100)
+
+ armor_soak = list(
+ "melee" = 30,
+ "bullet" = 30,
+ "laser" = 10,
+ "energy" = 10,
+ "bomb" = 0,
+ "bio" = 100,
+ "rad" = 100
+ )
+ icon_living = "startreader"
+ SetStunned(0)
+
+ update_icon()
\ No newline at end of file
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 cda1d9a948..9222975f1f 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
@@ -143,7 +143,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///////////////////////////////////////////
@@ -197,7 +198,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.",
@@ -273,7 +274,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
@@ -285,11 +286,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
@@ -323,7 +324,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
@@ -336,7 +337,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)
@@ -352,13 +353,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)
@@ -405,7 +406,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]"
@@ -648,7 +649,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()
..()
@@ -679,7 +680,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)
@@ -749,7 +750,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
@@ -811,12 +812,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 ..()
@@ -830,7 +831,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)
@@ -858,7 +859,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~")
@@ -1003,7 +1004,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
@@ -1033,7 +1034,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
@@ -1180,11 +1181,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 9ba9437fa7..a8ec4d3894 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 2af3c8f6e7..c63ac35fa8 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,7 +51,8 @@
default_pixel_x = -16
old_x = -16
old_y = 0
-
+ meat_amount = 15
+
egg_type = /obj/effect/spider/eggcluster/royal
/mob/living/simple_mob/animal/giant_spider/webslinger/event // YW CHANGE
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 3df06d1a33..60520b51e5 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
@@ -63,6 +65,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())
@@ -100,25 +113,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
@@ -130,6 +138,57 @@
// 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
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..954279ab76 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 1140250fb2..7ec636defd 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
@@ -186,9 +186,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..b830cbec2b 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,10 @@
maxHealth = 25
health = 25
- minbodytemp = 175 //yw edit, Makes mobs survive cryogaia temps
+
+ meat_amount = 2
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
movement_cooldown = 0
melee_damage_lower = 2
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/duck.dm
index 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 1f848b1be1..2ed5f51d87 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 0d66b7e977..239533ef74 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 fd5c7ca68e..071aef71ca 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm
@@ -39,6 +39,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
@@ -85,7 +88,7 @@
/mob/living/simple_mob/vore/fennec/huge
icon = 'icons/mob/vore100x100.dmi'
icon_rest = null
-
+
// LORG
maxHealth = 500
health = 500
@@ -101,7 +104,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
@@ -119,7 +122,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
@@ -171,4 +174,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 a3d1c331a4..07bcf6b99d 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 047f83e024..c5fa952264 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..ad9601398b 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
@@ -37,8 +37,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
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 2b5103a128..0ff9d3d44c 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 d5eb37d0d1..3e60529764 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 9af88b36cf..4740aa24d2 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 eb2b3c4d3e..ffb042c1df 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 21dc7aa5f5..8b0f99329d 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 600fb6fd53..1eee080207 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 12fe006460..3feecd4d03 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm
@@ -43,6 +43,7 @@ var/global/list/moth_amount = 0 // Chompstation Addition, Rykka waz here. *pawst
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 d3cae84552..3b339b71be 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/sprite_accessories_ear_vr.dm b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
index 779b681523..4b6f558753 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 0c8c108c82..772bc92d85 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"
@@ -465,20 +465,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 lets all races use the facial hair styles.
/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 78da290a26..955a35377f 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))
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
index f486d897d2..3b95676eee 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
@@ -30,6 +30,13 @@
if(environment.temperature > HEATMODE_TEMP - 30)
. = TRUE
+/proc/offsite_environment_check(turf/simulated/T)
+ . = TRUE
+ if(!istype(T))
+ return
+ if(T.z in using_map.station_levels)
+ . = FALSE
+
/obj/item/weapon/gun/energy/kinetic_accelerator
name = "proto-kinetic accelerator"
desc = "A self recharging, ranged mining tool that does increased damage in low pressure."
@@ -184,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)
@@ -216,11 +223,12 @@
/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
#define KA_ENVIRO_TYPE_HOT 1
+#define KA_ENVIRO_TYPE_OFFSITE 2
//Projectiles
/obj/item/projectile/kinetic
@@ -262,6 +270,12 @@
name = "weakened [name]"
damage = damage * pressure_decrease
pressure_decrease_active = TRUE
+ else if(environment == KA_ENVIRO_TYPE_OFFSITE)
+ if(!offsite_environment_check(get_turf(src)))
+ name = "nullified [name]"
+ nodamage = TRUE
+ damage = 0
+ pressure_decrease_active = TRUE
return ..()
/obj/item/projectile/kinetic/attack_mob(mob/living/target_mob, distance, miss_modifier)
@@ -276,6 +290,12 @@
name = "weakened [name]"
damage = damage * pressure_decrease
pressure_decrease_active = TRUE
+ else if(environment == KA_ENVIRO_TYPE_OFFSITE)
+ if(!offsite_environment_check(get_turf(src)))
+ name = "nullified [name]"
+ nodamage = TRUE
+ damage = 0
+ pressure_decrease_active = TRUE
return ..()
/obj/item/projectile/kinetic/on_range()
@@ -302,6 +322,12 @@
name = "weakened [name]"
damage = damage * pressure_decrease
pressure_decrease_active = TRUE
+ else if(environment == KA_ENVIRO_TYPE_OFFSITE)
+ if(!offsite_environment_check(get_turf(src)))
+ name = "nullified [name]"
+ nodamage = TRUE
+ damage = 0
+ pressure_decrease_active = TRUE
var/turf/target_turf = get_turf(target)
if(!target_turf)
target_turf = get_turf(src)
@@ -391,8 +417,8 @@
if(forcemove)
forceMove(get_turf(KA))
+//use this one to modify the projectile itself
/obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/item/projectile/kinetic/K)
-
//use this one for effects you want to trigger before any damage is done at all and before damage is decreased by pressure
/obj/item/borg/upgrade/modkit/proc/projectile_prehit(obj/item/projectile/kinetic/K, atom/target, obj/item/weapon/gun/energy/kinetic_accelerator/KA)
//use this one for effects you want to trigger before mods that do damage
@@ -420,6 +446,7 @@
/obj/item/borg/upgrade/modkit/damage/modify_projectile(obj/item/projectile/kinetic/K)
K.damage += modifier
+
//Cooldown
/obj/item/borg/upgrade/modkit/cooldown
name = "cooldown decrease"
@@ -522,7 +549,7 @@
//Tendril-unique modules
/obj/item/borg/upgrade/modkit/cooldown/repeater
name = "rapid repeater"
- desc = "Quarters the kinetic accelerator's cooldown on striking a living target, but greatly increases the base cooldown."
+ desc = "Quarters the kinetic accelerator's cooldown on striking a living or mineral target, but greatly increases the base cooldown."
denied_type = /obj/item/borg/upgrade/modkit/cooldown/repeater
modifier = -14 //Makes the cooldown 3 seconds(with no cooldown mods) if you miss. Don't miss.
cost = 50
@@ -547,7 +574,6 @@
modifier = 2.5 //Not a very effective method of healing.
cost = 20
var/static/list/damage_heal_order = list(BRUTE, BURN, OXY)
-
/obj/item/borg/upgrade/modkit/lifesteal/projectile_prehit(obj/item/projectile/kinetic/K, atom/target, obj/item/weapon/gun/energy/kinetic_accelerator/KA)
if(isliving(target) && isliving(K.firer))
var/mob/living/L = target
@@ -582,7 +608,6 @@
cost = 30
var/maximum_bounty = 25
var/list/bounties_reaped = list()
-
/obj/item/borg/upgrade/modkit/bounty/projectile_prehit(obj/item/projectile/kinetic/K, atom/target, obj/item/weapon/gun/energy/kinetic_accelerator/KA)
if(isliving(target))
var/mob/living/L = target
@@ -593,7 +618,6 @@
SM.reward_target = null
qdel(SM)
L.apply_status_effect(STATUS_EFFECT_SYPHONMARK, src)
-
/obj/item/borg/upgrade/modkit/bounty/projectile_strike(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/weapon/gun/energy/kinetic_accelerator/KA)
if(isliving(target))
var/mob/living/L = target
@@ -603,7 +627,6 @@
kill_modifier *= K.pressure_decrease
var/armor = L.run_armor_check(K.def_zone, K.flag, null, null, K.armour_penetration)
L.apply_damage(bounties_reaped[L.type]*kill_modifier, K.damage_type, K.def_zone, armor)
-
/obj/item/borg/upgrade/modkit/bounty/proc/get_kill(mob/living/L)
var/bonus_mod = 1
if(ismegafauna(L)) //megafauna reward
@@ -616,7 +639,7 @@
//Indoors
/obj/item/borg/upgrade/modkit/indoors
- name = "decrease pressure penalty"
+ name = "hacked pressure modulator"
desc = "A remarkably illegal modification kit that increases the damage a kinetic accelerator does in pressurized environments."
modifier = 2
denied_type = /obj/item/borg/upgrade/modkit/indoors
@@ -626,14 +649,25 @@
/obj/item/borg/upgrade/modkit/indoors/modify_projectile(obj/item/projectile/kinetic/K)
K.pressure_decrease *= modifier
+/obj/item/borg/upgrade/modkit/offsite
+ name = "offsite pressure modulator"
+ desc = "A non-standard modification kit that increases the damage a kinetic accelerator does in pressurized environments, \
+ in exchange for nullifying any projected forces while on or in an associated facility."
+ denied_type = /obj/item/borg/upgrade/modkit/heater
+ maximum_of_type = 1
+ cost = 35
+
+/obj/item/borg/upgrade/modkit/offsite/modify_projectile(obj/item/projectile/kinetic/K)
+ K.environment = KA_ENVIRO_TYPE_OFFSITE
+
// Atmospheric
/obj/item/borg/upgrade/modkit/heater
name = "temperature modulator"
desc = "A remarkably unusual modification kit that makes kinetic accelerators more usable in hot, overpressurized environments, \
in exchange for making them weak elsewhere, like the cold or in space."
- denied_type = /obj/item/borg/upgrade/modkit/indoors
+ denied_type = /obj/item/borg/upgrade/modkit/offsite
maximum_of_type = 1
- cost = 30
+ cost = 10
/obj/item/borg/upgrade/modkit/heater/modify_projectile(obj/item/projectile/kinetic/K)
K.environment = KA_ENVIRO_TYPE_HOT
@@ -646,12 +680,10 @@
desc = "Allows creatures normally incapable of firing guns to operate the weapon when installed."
cost = 20
denied_type = /obj/item/borg/upgrade/modkit/trigger_guard
-
/obj/item/borg/upgrade/modkit/trigger_guard/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user)
. = ..()
if(.)
KA.trigger_guard = TRIGGER_GUARD_ALLOW_ALL
-
/obj/item/borg/upgrade/modkit/trigger_guard/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA)
KA.trigger_guard = TRIGGER_GUARD_NORMAL
..()
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/reagents/reactions/instant/drinks.dm b/code/modules/reagents/reactions/instant/drinks.dm
index efb58fe90c..1a1ef0567a 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 952af8014b..021bd72f41 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)
@@ -180,4 +182,4 @@
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/spreads/butter(location)
- return
\ No newline at end of file
+ return
diff --git a/code/modules/reagents/reactions/instant/instant_vr.dm b/code/modules/reagents/reactions/instant/instant_vr.dm
index 40015eb871..9ffa59cc62 100644
--- a/code/modules/reagents/reactions/instant/instant_vr.dm
+++ b/code/modules/reagents/reactions/instant/instant_vr.dm
@@ -401,7 +401,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 9e21b9bc16..f3a7e396ab 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 93544b02a7..db5159958d 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 5440ed36fb..d10f1ab921 100644
--- a/code/modules/resleeving/machines.dm
+++ b/code/modules/resleeving/machines.dm
@@ -592,8 +592,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
diff --git a/code/modules/tgs/v5/chat_commands_zz_ch.dm b/code/modules/tgs/v5/chat_commands_zz_ch.dm
index 436320985d..36b9662110 100644
--- a/code/modules/tgs/v5/chat_commands_zz_ch.dm
+++ b/code/modules/tgs/v5/chat_commands_zz_ch.dm
@@ -39,7 +39,7 @@
/datum/tgs_chat_command/manifest/Run(datum/tgs_chat_user/sender, params)
if(config.nodebot_enabled)
ManifestToHtml()
- return "!!ManifestCompiled"
+ return "Manifest temporarily indefinitely probably broken"
else
var/outp = "Crew Manifest:"
var/list/total = list()
diff --git a/code/modules/vchat/vchat_client.dm b/code/modules/vchat/vchat_client.dm
index 018d9e4439..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()
diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm
index 4ae820b0ee..1da9578618 100644
--- a/code/modules/vore/eating/bellymodes_vr.dm
+++ b/code/modules/vore/eating/bellymodes_vr.dm
@@ -25,26 +25,24 @@
break
if(dest_belly)
for(var/atom/movable/M in autotransfer_queue)
- if(!M.autotransferable)
- autotransfer_queue -= M
+ if(!M || !M.autotransferable)
continue
transfer_contents(M, dest_belly)
autotransfer_queue.Cut()
var/tally = 0
for(var/atom/movable/M in autotransferables)
- if(!M.autotransferable)
- autotransferables -= M
+ if(!M || !M.autotransferable)
continue
if(isliving(M))
var/mob/living/L = M
if(L.absorbed)
continue
- tally++
M.belly_cycles++
- if(autotransfer_max_amount > 0 && tally > autotransfer_max_amount)
- continue
if(M.belly_cycles >= autotransferwait / 60)
check_autotransfer(M, autotransferlocation)
+ tally++
+ if(autotransfer_max_amount > 0 && tally >= autotransfer_max_amount)
+ break
var/play_sound //Potential sound to play at the end to avoid code duplication.
var/to_update = FALSE //Did anything update worthy happen?
diff --git a/code/modules/vore/eating/digest_act_vr.dm b/code/modules/vore/eating/digest_act_vr.dm
index 377ee6b134..3439a4591f 100644
--- a/code/modules/vore/eating/digest_act_vr.dm
+++ b/code/modules/vore/eating/digest_act_vr.dm
@@ -75,7 +75,17 @@
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/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 2a772e6c11..136b10e78b 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -457,6 +457,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
@@ -670,7 +678,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()
@@ -724,15 +736,23 @@
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]!")
- //kcin2000 1/29/21 - lets you eat the news digitally and adds a text for the paper news
+ 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.")
+ // CHOMPedit begin
else if(istype(I,/obj/item/device/starcaster_news))
to_chat(src, "You can taste the dry flavor of digital garbage, oh wait its just the news.")
else if(istype(I,/obj/item/weapon/newspaper))
to_chat(src, "You can taste the dry flavor of garbage, oh wait its just the news.")
- //kcin2001 1/29/21 - Adding some special synth trash eat
else if (istype(I,/obj/item/weapon/cell))
visible_message("[src] sates their electric appeite with a [I]!")
to_chat(src, "You can taste the spicy flavor of electrolytes, yum.")
+ //CHOMPedit end
+
else
to_chat(src, "You can taste the flavor of garbage. Delicious.")
return
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index 0da474f5a9..de00e22893 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -1398,7 +1398,6 @@ End CHOMP Removal*/
new /obj/item/weapon/material/knife/machete/hatchet/unathiknife/fluff/antoinette(hold)
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
@@ -1417,4 +1416,4 @@ End CHOMP Removal*/
icon = 'icons/vore/custom_items_vr.dmi'
icon_state = "stamp-midhorror"
stamptext = "This paper has been certified by The Council of Mid Horror"
-
+
diff --git a/code/modules/xenoarcheaology/tools/suspension_generator.dm b/code/modules/xenoarcheaology/tools/suspension_generator.dm
index 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/accessory/item.dmi b/icons/inventory/accessory/item.dmi
index 9c51533b02..766a661e79 100644
Binary files a/icons/inventory/accessory/item.dmi and b/icons/inventory/accessory/item.dmi differ
diff --git a/icons/inventory/accessory/mob.dmi b/icons/inventory/accessory/mob.dmi
index dcf3765fe4..b6e325e2d8 100644
Binary files a/icons/inventory/accessory/mob.dmi and b/icons/inventory/accessory/mob.dmi differ
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/face/item.dmi b/icons/inventory/face/item.dmi
index 0d18ec906f..fb8c950859 100644
Binary files a/icons/inventory/face/item.dmi and b/icons/inventory/face/item.dmi differ
diff --git a/icons/inventory/face/mob.dmi b/icons/inventory/face/mob.dmi
index e7e5626fde..83095f8a10 100644
Binary files a/icons/inventory/face/mob.dmi and b/icons/inventory/face/mob.dmi differ
diff --git a/icons/inventory/head/mob.dmi b/icons/inventory/head/mob.dmi
index 045b311269..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 f3cb748708..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 e0af896f82..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 70a1131190..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 2e34ed66d5..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_items_vr.dmi b/icons/vore/custom_items_vr.dmi
index 10580ec71f..9b84b0f92c 100644
Binary files a/icons/vore/custom_items_vr.dmi and b/icons/vore/custom_items_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 d5017ade26..453395bae7 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" = (
@@ -3030,27 +3263,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"
@@ -3075,54 +3308,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)
@@ -3135,13 +3348,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
@@ -3159,10 +3377,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
@@ -3187,7 +3407,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
@@ -3195,14 +3415,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
@@ -3219,38 +3457,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;
@@ -3259,8 +3492,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)
@@ -3283,19 +3524,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" = (
@@ -3319,10 +3565,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
},
@@ -3332,28 +3586,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,
@@ -3372,6 +3643,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
@@ -3382,6 +3673,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" = (
@@ -3392,11 +3684,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{
@@ -3409,14 +3696,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,
@@ -3459,28 +3747,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)
@@ -3528,16 +3827,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{
@@ -3548,14 +3837,22 @@
/turf/simulated/floor/plating/virgo2,
/area/offmap/aerostat/solars)
"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" = (
@@ -3566,14 +3863,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";
@@ -3623,16 +3933,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" = (
@@ -3657,10 +3966,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" = (
@@ -3682,6 +3992,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{
@@ -3689,15 +4008,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,
@@ -3762,10 +4072,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" = (
@@ -3775,29 +4085,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)
@@ -3818,6 +4114,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
@@ -3830,9 +4133,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" = (
@@ -3850,17 +4154,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)
@@ -3874,6 +4173,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"
@@ -3911,6 +4227,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" = (
@@ -3921,14 +4240,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" = (
@@ -3980,38 +4303,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
@@ -4046,6 +4364,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{
@@ -4055,6 +4377,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" = (
@@ -4065,6 +4388,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{
@@ -4085,8 +4415,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"
@@ -4097,19 +4431,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{
@@ -4126,10 +4452,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;
@@ -4164,14 +4486,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{
@@ -4182,13 +4504,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;
@@ -4257,6 +4572,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" = (
@@ -4275,26 +4593,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
@@ -4302,6 +4613,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" = (
@@ -4326,12 +4640,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)
@@ -4339,7 +4657,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" = (
@@ -4358,6 +4676,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;
@@ -4389,6 +4734,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"
@@ -4418,14 +4770,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
@@ -4456,11 +4809,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" = (
@@ -4468,7 +4822,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{
@@ -4478,12 +4832,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
@@ -4491,19 +4844,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{
@@ -4514,18 +4867,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{
@@ -4535,29 +4895,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,
@@ -4584,31 +4924,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{
@@ -4629,6 +4975,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{
@@ -4642,18 +4994,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,
@@ -4681,18 +5050,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,
@@ -4741,20 +5122,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{
@@ -4772,22 +5157,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" = (
@@ -4795,7 +5183,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/portable_atmospherics/canister/empty,
/obj/machinery/camera/network/research_outpost{
dir = 4
},
@@ -4817,6 +5204,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" = (
@@ -4838,12 +5226,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;
@@ -4870,6 +5252,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;
@@ -4884,8 +5272,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
@@ -4893,9 +5292,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"
},
@@ -4915,6 +5311,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;
@@ -4937,6 +5341,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,
@@ -4947,32 +5360,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,
@@ -4992,44 +5398,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
},
@@ -5037,8 +5434,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,
@@ -5048,15 +5451,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,
@@ -5069,71 +5463,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{
@@ -5143,9 +5536,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" = (
@@ -5156,7 +5548,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
@@ -5176,6 +5568,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
@@ -5192,15 +5590,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" = (
@@ -5221,12 +5613,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)
@@ -5235,23 +5621,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)
@@ -5262,8 +5675,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{
@@ -5278,9 +5696,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;
@@ -5304,23 +5725,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" = (
@@ -5340,21 +5770,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" = (
@@ -5365,6 +5810,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/atmos)
"vC" = (
@@ -5419,10 +5865,10 @@
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)
+<<<<<<< HEAD
"vR" = (
/obj/machinery/door/firedoor/glass,
/obj/structure/window/reinforced/full,
@@ -5430,6 +5876,24 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor,
/area/offmap/aerostat/inside/toxins)
+=======
+"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/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/wall,
+/area/offmap/aerostat/inside/xenoarch)
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
"vT" = (
/obj/structure/cable/heavyduty{
icon_state = "1-2"
@@ -5441,23 +5905,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" = (
@@ -5471,18 +5949,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)
@@ -5497,9 +5971,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"
},
@@ -5513,6 +5984,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
@@ -5524,6 +5999,7 @@
/obj/machinery/light{
dir = 8
},
+/obj/structure/flora/pottedplant/unusual,
/turf/simulated/floor/tiled/dark,
/area/offmap/aerostat/inside/lobby)
"wp" = (
@@ -5537,22 +6013,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"
@@ -5589,10 +6073,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{
@@ -5622,10 +6109,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
@@ -5663,13 +6154,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
@@ -5677,32 +6164,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"
@@ -5732,28 +6222,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,
@@ -5783,19 +6294,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" = (
@@ -5808,21 +6329,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
@@ -5840,12 +6379,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)
@@ -5853,22 +6393,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"
@@ -5891,11 +6430,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" = (
@@ -5919,12 +6464,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{
@@ -5935,14 +6480,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
@@ -5950,6 +6488,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" = (
@@ -5983,8 +6524,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
@@ -6000,14 +6541,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
@@ -6025,10 +6563,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" = (
@@ -6038,6 +6579,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" = (
@@ -6055,6 +6600,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
@@ -6066,11 +6622,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"
@@ -6092,25 +6648,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" = (
@@ -6132,13 +6683,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{
@@ -6168,11 +6717,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
@@ -6183,12 +6736,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" = (
@@ -6205,10 +6756,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" = (
@@ -6235,6 +6793,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;
@@ -6259,6 +6824,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{
@@ -6266,12 +6834,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{
@@ -6339,15 +6901,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
@@ -6380,18 +6933,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{
@@ -6399,6 +6945,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
@@ -6406,9 +6959,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,
@@ -6419,11 +6991,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
@@ -6439,13 +7015,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";
@@ -6461,9 +7038,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" = (
@@ -6488,13 +7062,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" = (
@@ -6504,9 +7076,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"
},
@@ -6515,8 +7084,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{
@@ -6525,25 +7093,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"
@@ -6610,12 +7175,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{
@@ -6629,12 +7208,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
@@ -6647,12 +7220,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"
@@ -6660,11 +7232,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" = (
@@ -6698,53 +7283,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;
@@ -6765,15 +7331,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" = (
@@ -6782,19 +7350,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"
@@ -6847,9 +7402,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)
@@ -6868,20 +7429,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)
@@ -6892,17 +7451,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)
@@ -6937,39 +7502,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{
@@ -6985,12 +7534,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)
@@ -7008,7 +7560,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" = (
@@ -7044,6 +7596,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
@@ -7066,30 +7622,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
@@ -7101,7 +7655,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,
@@ -7110,9 +7664,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{
@@ -7126,6 +7682,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{
@@ -7137,16 +7704,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
@@ -7197,13 +7758,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;
@@ -7220,17 +7796,19 @@
/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"
},
+<<<<<<< HEAD
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/sign/poster{
+=======
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
dir = 8
},
/turf/simulated/floor/tiled/white,
@@ -7240,20 +7818,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,
@@ -7269,11 +7848,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
@@ -7287,12 +7868,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" = (
@@ -7315,6 +7893,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{
@@ -7323,11 +7905,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
@@ -7347,6 +7928,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;
@@ -7368,6 +7956,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
@@ -7396,12 +7988,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";
@@ -7411,14 +8017,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{
@@ -7443,45 +8042,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" = (
@@ -7495,7 +8123,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
@@ -7519,6 +8147,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" = (
@@ -7572,12 +8201,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" = (
@@ -7595,9 +8219,28 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/airlock/south)
+<<<<<<< HEAD
+=======
+"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{
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/tiled/dark,
+/area/offmap/aerostat/inside/lobby)
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
"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" = (
@@ -7607,11 +8250,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)
@@ -7637,10 +8277,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" = (
@@ -7672,20 +8308,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{
@@ -7718,25 +8356,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" = (
@@ -7744,16 +8385,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"
@@ -7786,20 +8431,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
@@ -7867,7 +8513,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{
@@ -7878,17 +8524,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
},
@@ -7906,6 +8557,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{
@@ -7914,15 +8573,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{
@@ -7936,40 +8590,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{
@@ -7998,13 +8676,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,
@@ -8027,18 +8698,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
@@ -8070,25 +8747,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)
@@ -8099,16 +8776,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"
},
@@ -8118,26 +8806,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
},
@@ -8157,7 +8838,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" = (
@@ -8168,25 +8852,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"
@@ -8199,11 +8881,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)
@@ -8216,11 +8908,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" = (
@@ -8230,27 +8923,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" = (
@@ -8267,27 +8966,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,
@@ -8297,12 +8990,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" = (
@@ -8330,14 +9021,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,
@@ -8355,6 +9041,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" = (
@@ -8375,7 +9062,6 @@
/obj/structure/cable,
/obj/machinery/power/apc{
dir = 8;
- name = "east bump";
pixel_x = -22
},
/obj/machinery/mining/drill,
@@ -8397,16 +9083,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;
@@ -8466,19 +9165,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" = (
@@ -8499,16 +9204,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,
@@ -8553,8 +9260,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,
@@ -8575,11 +9301,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{
@@ -8591,13 +9316,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{
@@ -8609,19 +9334,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
@@ -8642,15 +9365,27 @@
/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)
+<<<<<<< HEAD
+=======
+"JX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/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)
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
"JZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -8658,8 +9393,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;
@@ -8675,15 +9413,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,
@@ -8699,6 +9431,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" = (
@@ -8710,11 +9448,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,
@@ -8732,18 +9466,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
@@ -8756,6 +9486,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
@@ -8763,12 +9505,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"
@@ -8787,12 +9533,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;
@@ -8821,33 +9561,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{
@@ -8863,35 +9603,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" = (
@@ -8901,9 +9642,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
@@ -8914,38 +9659,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,
@@ -8953,6 +9700,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"
@@ -8973,6 +9727,7 @@
/obj/machinery/light,
/turf/simulated/floor/tiled/techfloor,
/area/offmap/aerostat/inside/zorrenoffice)
+<<<<<<< HEAD
"LI" = (
/obj/structure/closet/firecloset,
/obj/structure/sign/poster{
@@ -8980,27 +9735,17 @@
},
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/xenoarch)
+=======
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
"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{
@@ -9012,11 +9757,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;
@@ -9028,15 +9775,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
@@ -9068,13 +9811,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"
@@ -9084,6 +9833,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;
@@ -9126,6 +9879,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" = (
@@ -9133,7 +9887,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"
@@ -9141,23 +9895,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,
@@ -9172,10 +9916,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" = (
@@ -9196,34 +9950,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" = (
@@ -9233,11 +10001,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
@@ -9251,6 +10019,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
@@ -9277,9 +10051,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)
@@ -9294,17 +10067,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)
@@ -9324,6 +10096,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
@@ -9332,35 +10110,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
@@ -9389,6 +10182,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" = (
@@ -9396,11 +10192,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{
@@ -9413,7 +10206,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"
@@ -9424,6 +10217,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{
@@ -9432,16 +10228,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" = (
@@ -9470,6 +10263,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)
@@ -9477,13 +10276,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{
@@ -9497,12 +10296,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" = (
@@ -9518,8 +10313,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,
@@ -9552,23 +10354,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" = (
@@ -9587,6 +10377,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
@@ -9595,7 +10397,6 @@
dir = 4
},
/obj/structure/table/reinforced,
-/obj/machinery/recharger,
/turf/simulated/floor/tiled/white,
/area/offmap/aerostat/inside/firingrange)
"OE" = (
@@ -9603,21 +10404,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)
@@ -9635,24 +10432,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{
@@ -9667,10 +10467,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{
@@ -9686,10 +10505,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)
@@ -9707,24 +10524,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
@@ -9732,6 +10567,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" = (
@@ -9741,18 +10579,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)
@@ -9789,13 +10631,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
@@ -9809,18 +10653,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)
@@ -9849,26 +10697,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" = (
@@ -9891,9 +10738,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" = (
@@ -9901,14 +10750,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{
@@ -9934,12 +10784,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"
@@ -9988,26 +10840,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{
@@ -10016,14 +10872,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
@@ -10047,14 +10898,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,
@@ -10069,6 +10912,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" = (
@@ -10102,8 +10946,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)
@@ -10148,11 +10995,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
@@ -10171,14 +11015,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
@@ -10213,6 +11056,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" = (
@@ -10313,17 +11157,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"
@@ -10347,6 +11184,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{
@@ -10369,6 +11212,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" = (
@@ -10386,18 +11232,20 @@
/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
},
-/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,
@@ -10405,7 +11253,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
},
@@ -10413,19 +11260,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{
@@ -10455,9 +11298,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"
},
@@ -10468,6 +11308,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" = (
@@ -10480,7 +11323,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" = (
@@ -10496,10 +11344,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,
@@ -10517,12 +11378,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{
@@ -10531,10 +11406,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
@@ -10549,12 +11428,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
@@ -10634,25 +11510,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" = (
@@ -10676,10 +11543,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" = (
@@ -10690,6 +11555,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{
@@ -10697,6 +11570,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)
@@ -10713,6 +11595,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;
@@ -10779,13 +11665,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{
@@ -10809,18 +11697,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
@@ -10833,12 +11725,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"
@@ -10846,19 +11750,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,
@@ -10875,6 +11776,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,
@@ -10898,10 +11802,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
@@ -10941,28 +11846,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
@@ -10989,14 +11881,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"
@@ -11006,15 +11905,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";
@@ -11028,35 +11934,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" = (
@@ -11070,15 +11972,27 @@
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" = (
+<<<<<<< HEAD
/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,
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
/area/offmap/aerostat/inside/toxins)
"Ve" = (
/obj/machinery/atmospherics/portables_connector{
@@ -11093,29 +12007,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{
@@ -11127,13 +12043,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{
@@ -11142,11 +12061,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)
@@ -11184,6 +12103,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" = (
@@ -11199,6 +12119,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
@@ -11250,16 +12176,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" = (
@@ -11269,16 +12201,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"
@@ -11304,20 +12231,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"
@@ -11341,6 +12278,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" = (
@@ -11377,9 +12315,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
},
@@ -11389,6 +12324,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" = (
@@ -11404,8 +12343,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
@@ -11414,11 +12367,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" = (
@@ -11438,20 +12391,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;
@@ -11489,10 +12449,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
@@ -11500,11 +12462,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{
@@ -11526,9 +12495,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
@@ -11547,14 +12526,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"
},
@@ -11574,10 +12556,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" = (
@@ -11597,13 +12581,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
@@ -11616,12 +12596,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,
@@ -11635,29 +12616,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)
@@ -11671,7 +12655,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,
@@ -11690,11 +12674,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
@@ -11723,20 +12716,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"
@@ -11767,12 +12761,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{
@@ -11804,9 +12802,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
},
@@ -11829,7 +12824,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" = (
@@ -11843,52 +12842,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;
@@ -11914,12 +12940,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"
@@ -11930,11 +12961,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" = (
@@ -11944,36 +12974,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" = (
@@ -11990,11 +13043,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;
@@ -12009,12 +13073,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{
@@ -12039,6 +13099,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
@@ -12053,6 +13125,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"
@@ -12104,13 +13180,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)
@@ -17606,7 +18704,7 @@ XX
Rl
aE
EN
-UW
+EN
aw
aw
aw
@@ -17747,7 +18845,7 @@ he
Yx
cI
KW
-EN
+Jo
gf
Bz
aw
@@ -17889,8 +18987,8 @@ he
FJ
lL
jL
-EN
-Bt
+Jo
+Qz
Bz
Bz
aw
@@ -18033,7 +19131,7 @@ Wt
qN
Jo
if
-Go
+Qz
Bz
Bz
aw
@@ -18172,13 +19270,13 @@ PS
PS
Rr
Re
-qN
-Jo
+HS
+Ls
Lq
Xa
-Go
+ni
Bz
-UW
+Jo
aw
aw
aw
@@ -18314,13 +19412,13 @@ oW
PS
Rr
Lt
-qN
+KA
+Jo
+ZK
+ZK
+ZK
+ZK
Jo
-Bu
-if
-Go
-Go
-UW
Bz
aw
aw
@@ -18458,13 +19556,13 @@ Rr
NV
Hq
Jo
-Kv
-Kr
-Go
-Go
-Go
-Bz
-Bz
+NP
+Yw
+wA
+Yw
+Yw
+EA
+EA
aw
aw
aw
@@ -18600,14 +19698,14 @@ Qd
Zg
HH
FU
-Kv
+NP
yG
-Go
-Qz
-Go
-Go
-UW
-UW
+Yw
+Yw
+Yw
+Yw
+zH
+zH
aw
aw
aw
@@ -18742,15 +19840,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
@@ -18890,10 +19988,10 @@ Ey
kR
fo
Ml
-Go
-Go
-Bz
-Bz
+Yw
+Yw
+EA
+EA
aw
aw
aw
@@ -19026,17 +20124,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
@@ -19168,18 +20266,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
@@ -19310,19 +20408,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
@@ -19436,7 +20534,7 @@ ac
Rr
Rr
ce
-Eu
+PX
Eu
Dh
Jp
@@ -19452,20 +20550,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
@@ -19583,11 +20681,11 @@ Lj
Dh
hu
Pe
-xu
-qC
-qC
-qC
-hu
+ph
+RI
+WY
+Op
+lr
Qd
ux
yO
@@ -19595,18 +20693,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
@@ -19719,15 +20817,15 @@ ac
mN
ce
Qd
+qC
+WQ
Qd
-jM
-un
Dh
Yp
CE
Qa
GX
-Yt
+Yb
Mv
yI
Qd
@@ -19737,20 +20835,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
@@ -19858,18 +20956,18 @@ aw
aw
aw
Rr
-QN
+Vi
Vi
bG
-Qd
-tP
+qC
+WQ
un
Dh
mu
MH
Zi
Zj
-Zj
+dz
Ay
kO
Qd
@@ -19880,19 +20978,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
@@ -20003,8 +21101,8 @@ Rr
mL
ig
oK
-Qd
-IA
+qC
+WQ
un
Dh
FF
@@ -20021,14 +21119,14 @@ Qd
Ek
ZH
iX
-Nl
+UP
Nl
Nl
Nl
Nl
Nl
fJ
-vM
+mm
Dq
ZL
TX
@@ -20142,23 +21240,29 @@ aw
Rr
Rr
qU
-MM
-qC
+qU
+qU
io
+<<<<<<< HEAD
vR
jM
un
+=======
+qC
+WQ
+Eb
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
Dh
Gt
TF
HV
-Sa
-aF
-bR
-Br
Qd
-Zu
-DI
+Qd
+bR
+Gt
+Qd
+Mu
+po
Qd
PR
ZH
@@ -20282,30 +21386,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
@@ -20424,23 +21528,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
@@ -20448,11 +21552,11 @@ VJ
ZV
iX
DG
-Nl
+Mf
Nl
Wi
Nl
-Nl
+Mf
FT
NJ
lI
@@ -20564,24 +21668,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
@@ -20705,26 +21809,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
@@ -20737,7 +21841,7 @@ Nl
Nl
Nl
Nl
-yK
+eA
NJ
lI
Ld
@@ -20846,8 +21950,8 @@ aw
Qg
de
wC
-Gf
-Xr
+xP
+xP
mt
Qd
NH
@@ -20855,26 +21959,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
@@ -20893,7 +21997,7 @@ ID
ID
iX
PJ
-tR
+eW
KK
KK
aw
@@ -20987,9 +22091,9 @@ aw
aw
de
wC
-ZR
-Gf
-Xr
+Ny
+xP
+xP
ch
Qd
Qd
@@ -20998,18 +22102,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
@@ -21035,8 +22139,8 @@ iX
iX
iX
Nm
-eW
-eW
+bF
+CN
KK
KK
Qg
@@ -21128,10 +22232,10 @@ aw
aw
de
wC
-ju
-ZR
-Gf
-Xr
+xP
+xP
+xP
+xP
mt
Ce
cB
@@ -21140,14 +22244,14 @@ cB
cB
GF
gD
-qC
+xg
Ly
-oc
-qC
+Qd
+FK
mc
+Gn
+xu
qC
-qC
-oc
kt
QO
JT
@@ -21178,7 +22282,7 @@ VI
ie
JS
eW
-eW
+fP
wz
KK
KK
@@ -21269,11 +22373,11 @@ aw
aw
de
de
-mi
-ju
-ZR
-Gf
-Xr
+xP
+xP
+xP
+xP
+xP
lX
Ce
bK
@@ -21281,11 +22385,11 @@ CO
Cl
PN
GF
-qC
-qC
-qC
-qC
-qC
+qf
+xs
+Gf
+Qd
+QH
mc
qC
qC
@@ -21409,13 +22513,13 @@ iW
la
la
la
-BA
-KD
-sm
-Ar
-lk
-vm
-qf
+de
+ld
+vt
+vt
+vt
+uh
+ge
Pl
As
bw
@@ -21423,14 +22527,14 @@ AL
WF
XQ
bC
-qC
-qC
-zJ
-zJ
-qC
+Ly
+xK
+Ly
+Qd
+Sa
Ih
-xU
-xU
+qC
+rf
xU
xU
Wf
@@ -21548,31 +22652,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
@@ -21590,7 +22694,7 @@ Ym
Ym
Ym
Ym
-Ym
+wl
Ym
Ym
Ym
@@ -21605,9 +22709,9 @@ ie
QX
eW
eW
-eW
-eW
-eW
+eJ
+eJ
+eJ
eW
Bq
Eh
@@ -21690,14 +22794,14 @@ aw
aw
aw
kk
-Wk
+ry
Te
xP
xP
xP
-xP
-xP
-xP
+OL
+HK
+XV
xP
xP
oJ
@@ -21706,18 +22810,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
@@ -21747,9 +22851,9 @@ ie
QX
eW
eW
-VG
-VG
-VG
+HK
+HK
+HK
eW
BP
it
@@ -21834,13 +22938,13 @@ cO
de
qj
cX
-Ng
-OL
-OL
-OL
-OL
-OL
+xP
+xP
+xP
OL
+HK
+XV
+xP
hp
yu
Ce
@@ -21848,19 +22952,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
@@ -21889,9 +22993,9 @@ HN
QX
eW
eW
-eW
+fP
pY
-eW
+fP
eW
wQ
eW
@@ -21976,33 +23080,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
@@ -22031,9 +23135,9 @@ pA
QX
eW
eW
-eW
-eW
-eW
+VG
+VG
+VG
eW
Cj
tE
@@ -22119,13 +23223,13 @@ gv
oe
gk
bj
-VG
-VG
-VG
-VG
-VG
-VG
-VG
+uV
+wb
+xP
+Ng
+ci
+xP
+lS
bq
Ce
fH
@@ -22134,17 +23238,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
@@ -22170,13 +23274,13 @@ SL
Ya
Ya
pq
-uh
-pH
-er
-er
-er
-er
-er
+QX
+eW
+eW
+VG
+VG
+VG
+MZ
NE
er
er
@@ -22257,35 +23361,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
@@ -22311,16 +23415,24 @@ KI
Zs
Ya
KI
+<<<<<<< HEAD
HN
eW
QX
eW
eW
+=======
+xH
+iQ
+sy
+er
+FA
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
gP
-eW
-eW
+FA
+Vr
OG
-eW
+tR
KK
DC
Jd
@@ -22399,35 +23511,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
@@ -22457,9 +23569,9 @@ ie
eW
QX
eW
-VG
-VG
-VG
+HK
+HK
+HK
eW
OG
pm
@@ -22541,35 +23653,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
@@ -22584,7 +23696,7 @@ Ym
Ym
Ym
Ym
-Ym
+wl
Ym
Ym
Ym
@@ -22599,12 +23711,12 @@ ie
eW
QX
eW
-eW
-eW
-eW
+fP
+fP
+fP
eW
OG
-eW
+EP
HQ
Qg
aw
@@ -22701,15 +23813,15 @@ pZ
PA
fD
tL
-qC
-AC
-qC
-qC
-Bk
+Jq
+Jq
+HO
+Ju
+Yt
KS
iV
-rx
-xu
+kS
+AC
qC
qC
EV
@@ -22722,9 +23834,15 @@ vg
eE
Ym
BF
+<<<<<<< HEAD
Ff
Ff
Ff
+=======
+JX
+Ui
+sK
+>>>>>>> e4a5e6c0e3... Merge pull request #11941 from PastelPrinceDan/aerostat
sK
Fs
AN
@@ -22829,13 +23947,13 @@ aw
aw
aw
aw
-de
-de
+dY
+dY
re
-eO
+bL
IN
-uV
-eM
+Ak
+pZ
uq
rw
bL
@@ -22844,19 +23962,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
@@ -22865,10 +23983,10 @@ ky
Ym
xl
Ym
-Ym
-Ym
xe
Ym
+Ym
+Ym
xl
Ym
Ym
@@ -22972,13 +24090,13 @@ aw
aw
aw
aw
-de
-de
+dY
+dY
MO
-XV
+bL
YB
-ff
-ff
+Ak
+QE
rw
Du
yv
@@ -22986,19 +24104,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
@@ -23012,7 +24130,7 @@ IF
JQ
kC
ql
-pf
+Vo
qP
ug
CT
@@ -23115,22 +24233,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
@@ -23149,24 +24267,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
@@ -23258,10 +24376,10 @@ aw
aw
aw
Qg
-de
-de
+dY
+dY
Ri
-xP
+QE
ff
jF
aj
@@ -23269,14 +24387,14 @@ bM
da
op
Lf
-Lf
-Lf
-Lf
+Np
+Jq
+Ip
jF
UA
Gi
tV
-Mn
+Jq
nY
QA
Mp
@@ -23293,21 +24411,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
@@ -23401,10 +24519,10 @@ aw
aw
Qg
aw
-de
-de
-xP
-ff
+dY
+dY
+DD
+QE
jF
au
bS
@@ -23419,7 +24537,7 @@ Mn
kV
Jq
Jq
-Ae
+Jq
oY
fn
gx
@@ -23430,24 +24548,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
@@ -23544,9 +24662,9 @@ aw
Qg
aw
aw
-de
-de
-ff
+dY
+dY
+QE
jF
az
Ah
@@ -23559,13 +24677,13 @@ Ul
Dg
Ul
ML
-Ul
-Ul
+sb
+sb
sb
Cw
qQ
-ZA
-ZA
+FZ
+SJ
SJ
jF
ak
@@ -23575,21 +24693,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
@@ -23687,7 +24805,7 @@ Qg
aw
aw
aw
-de
+dY
NN
jF
bE
@@ -23703,12 +24821,12 @@ zI
VX
Zc
ti
-UH
-QH
-Gb
-Eb
+Jq
+Jq
+Xg
+jF
zn
-Qh
+jF
jF
qq
Zb
@@ -23718,19 +24836,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
@@ -23843,35 +24961,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
@@ -23985,34 +25103,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
@@ -24127,32 +25245,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
@@ -24264,38 +25382,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
@@ -24406,31 +25524,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
@@ -24547,15 +25665,15 @@ zp
zp
XP
fY
-fY
-fY
-fY
-fY
+vW
+Cu
+LD
+fc
Ln
mj
-mj
+tj
jZ
-gW
+xc
XF
Mb
sD
@@ -24564,22 +25682,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
@@ -24687,39 +25805,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
@@ -24831,36 +25949,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
@@ -24974,19 +26092,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
@@ -24996,7 +26114,7 @@ Jc
GT
II
uD
-gi
+uK
SV
gi
id
@@ -25117,18 +26235,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
@@ -25140,7 +26258,7 @@ Nn
Nn
Nn
Nn
-Nn
+Et
Qq
Qq
aw
@@ -25260,28 +26378,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
@@ -25403,25 +26521,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
@@ -25546,19 +26664,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
@@ -25689,14 +26807,14 @@ aw
aw
aw
aw
-Cd
-Cd
-NL
-LY
-AD
-le
+IO
+IO
+ot
+fX
+SC
+KM
lb
-ry
+ot
Va
XA
ty
@@ -25832,20 +26950,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
@@ -25975,12 +27093,12 @@ aw
aw
aw
aw
-ry
-Cd
-sW
-MK
-lD
-ry
+ot
+IO
+tn
+Uo
+JR
+ot
AI
oM
mX
@@ -26118,11 +27236,11 @@ aw
aw
aw
aw
-Cd
-Cd
-ys
-lq
-ry
+IO
+IO
+Uo
+Uo
+ot
lZ
Ma
ek
@@ -26261,14 +27379,14 @@ aw
aw
aw
aw
-Cd
-Cd
-sW
-tY
+IO
+IO
+zz
+ot
iy
Nh
tY
-zr
+Nn
Qq
Qq
aw
@@ -26404,9 +27522,9 @@ aw
aw
aw
aw
-Cd
-KN
-tY
+IO
+ze
+ot
Bo
Bo
rT
@@ -26548,7 +27666,7 @@ aw
aw
aw
Db
-tY
+ot
eb
ec
ka
@@ -26690,7 +27808,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 9428488b96..70fbaa8dbf 100644
--- a/maps/expedition_vr/beach/_beach.dm
+++ b/maps/expedition_vr/beach/_beach.dm
@@ -84,7 +84,10 @@
prob_fall = 25 //Chance goes down by this much each time it spawns one (not defining and prob_spawn 100 means they spawn as soon as one dies)
//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/animal/passive/snake
+ /mob/living/simple_mob/vore/fennec = 300,
+ /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
)
/obj/tether_away_spawner/beach_outside_friendly
diff --git a/maps/expedition_vr/beach/submaps/mountains.dm b/maps/expedition_vr/beach/submaps/mountains.dm
new file mode 100644
index 0000000000..9150c690c2
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/mountains.dm
@@ -0,0 +1,374 @@
+// This causes PoI maps to get 'checked' and compiled, when undergoing a unit test.
+// This is so CI can validate PoIs, and ensure future changes don't break PoIs, as PoIs are loaded at runtime and the compiler can't catch errors.
+// When adding a new PoI, please add it to this list.
+#if MAP_TEST
+#include "deadBeacon.dmm"
+#include "prepper1.dmm"
+#include "quarantineshuttle.dmm"
+#include "Mineshaft1.dmm"
+#include "Scave1.dmm"
+#include "crashed_ufo.dmm"
+#include "crashed_ufo_frigate.dmm"
+#include "crystal1.dmm"
+#include "crystal2.dmm"
+#include "crystal3.dmm"
+#include "lost_explorer.dmm"
+#include "CaveTrench.dmm"
+#include "Cavelake.dmm"
+#include "Rockb1.dmm"
+#include "ritual.dmm"
+#include "temple.dmm"
+#include "CrashedMedShuttle1.dmm"
+#include "digsite.dmm"
+#include "vault1.dmm"
+#include "vault2.dmm"
+#include "vault3.dmm"
+#include "vault4.dmm"
+#include "vault5.dmm"
+#include "vault6.dmm"
+#include "IceCave1A.dmm"
+#include "IceCave1B.dmm"
+#include "IceCave1C.dmm"
+#include "SwordCave.dmm"
+#include "SupplyDrop1.dmm"
+#include "BlastMine1.dmm"
+#include "crashedcontainmentshuttle.dmm"
+#include "deadspy.dmm"
+#include "lava_trench.dmm"
+#include "Geyser1.dmm"
+#include "Geyser2.dmm"
+#include "Geyser3.dmm"
+#include "Cliff1.dmm"
+#include "excavation1.dmm"
+#include "spatial_anomaly.dmm"
+#include "speakeasy_vr.dmm"
+#endif
+
+// The 'mountains' is the mining z-level, and has a lot of caves.
+// POIs here spawn in two different sections, the top half and bottom half of the map.
+// The bottom half should be fairly tame, with perhaps a few enviromental hazards.
+// The top half is when things start getting dangerous, but the loot gets better.
+
+/datum/map_template/surface/mountains
+ name = "Mountain Content"
+ desc = "Don't dig too deep!"
+
+// 'Normal' templates get used on the bottom half, and should be safer.
+/datum/map_template/surface/mountains/normal
+
+// 'Deep' templates get used on the top half, and should be more dangerous and rewarding.
+/datum/map_template/surface/mountains/deep
+
+// To be added: Templates for cave exploration when they are made.
+
+/****************
+ * Normal Caves *
+ ****************/
+
+/datum/map_template/surface/mountains/normal/deadBeacon
+ name = "Abandoned Relay"
+ desc = "An unregistered comms relay, abandoned to the elements."
+ 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/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/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/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/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/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/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/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/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/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/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/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/expedition_vr/beach/submaps/vault1.dmm'
+ cost = 5
+ allow_duplicates = TRUE
+ template_group = "Buried Vaults"
+
+/datum/map_template/surface/mountains/normal/vault2
+ name = "Mine Vault 2"
+ desc = "A small vault with potential loot."
+ mappath = 'maps/expedition_vr/beach/submaps/vault2.dmm'
+ cost = 5
+ allow_duplicates = TRUE
+ template_group = "Buried Vaults"
+
+/datum/map_template/surface/mountains/normal/vault3
+ name = "Mine Vault 3"
+ desc = "A small vault with potential loot. Also a horrible suprise."
+ 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/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/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/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/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/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/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm'
+ cost = 30
+
+/datum/map_template/surface/mountains/normal/deadspy
+ name = "Spy Remains"
+ desc = "W+M1 = Salt."
+ 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/expedition_vr/beach/submaps/Geyser1.dmm'
+ cost = 5
+ allow_duplicates = TRUE
+ template_group = "Underground Geysers"
+
+/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/expedition_vr/beach/submaps/Geyser2.dmm'
+ cost = 5
+ allow_duplicates = TRUE
+ template_group = "Underground Geysers"
+
+/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/expedition_vr/beach/submaps/Geyser2.dmm'
+ cost = 10
+ allow_duplicates = TRUE
+ template_group = "Underground Geysers"
+
+/datum/map_template/surface/mountains/normal/cliff1
+ name = "Ore-Topped Cliff"
+ desc = "A raised area of rock created by volcanic forces."
+ mappath = 'maps/expedition_vr/beach/submaps/Cliff1.dmm'
+ cost = 5
+ allow_duplicates = TRUE
+ template_group = "Underground Cliffs"
+
+/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/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm'
+ cost = 5
+ allow_duplicates = FALSE
+
+/**************
+ * Deep Caves *
+ **************/
+
+/* Vorestation Removal
+/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/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/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/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/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/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/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/expedition_vr/beach/submaps/vault1.dmm'
+ cost = 5
+ allow_duplicates = TRUE
+ template_group = "Buried Vaults"
+
+/datum/map_template/surface/mountains/normal/vault2 //VOREStation Edit
+ name = "Mine Vault 2"
+ desc = "A small vault with potential loot."
+ mappath = 'maps/expedition_vr/beach/submaps/vault2.dmm'
+ cost = 5
+ allow_duplicates = TRUE
+ template_group = "Buried Vaults"
+
+/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/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/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/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/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/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/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/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/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/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/expedition_vr/beach/submaps/speakeasy_vr.dmm'
+ cost = 10
+ allow_duplicates = FALSE
+
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/southern_cross/southern_cross-2.dmm b/maps/southern_cross/southern_cross-2.dmm
index a821d423ff..db6ee89e11 100644
--- a/maps/southern_cross/southern_cross-2.dmm
+++ b/maps/southern_cross/southern_cross-2.dmm
@@ -459,7 +459,7 @@
"aiR" = (/obj/machinery/computer/secure_data/detective_computer{dir = 1},/turf/simulated/floor/tiled/freezer,/area/security/detectives_office)
"aiS" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/security/lobby)
"aiT" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/security/lobby)
-"aiU" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/simple_mob/animal/passive/snake/noodle,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos)
+"aiU" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/simple_mob/animal/passive/snake/python/noodle,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos)
"aiV" = (/obj/machinery/photocopier,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/machinery/keycard_auth{pixel_y = 36},/obj/effect/floor_decal/borderfloorblack{dir = 4},/obj/effect/floor_decal/corner/blue/border{dir = 4},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/sc/hos)
"aiW" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/obj/effect/floor_decal/borderfloorblack{dir = 6},/obj/effect/floor_decal/corner/blue/border{dir = 9},/turf/simulated/floor/tiled/dark,/area/lawoffice)
"aiX" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/windowtint{id = "lawyer_tint"; pixel_x = 30; pixel_y = -26; req_access = list(58)},/obj/machinery/newscaster{pixel_y = 30},/obj/effect/landmark/start{name = "Internal Affairs Agent"},/obj/effect/floor_decal/borderfloorblack{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/turf/simulated/floor/tiled/dark,/area/lawoffice)
diff --git a/maps/southern_cross/southern_cross_defines.dm b/maps/southern_cross/southern_cross_defines.dm
index ec1b73ae8f..b842189373 100644
--- a/maps/southern_cross/southern_cross_defines.dm
+++ b/maps/southern_cross/southern_cross_defines.dm
@@ -109,12 +109,12 @@
)
//CHOMPStation Addition End
- lateload_single_pick = list(
+ lateload_gateway = list(
list("Carp Farm"),
list("Snow Field")
) //CHOMPedit: Gateway maps. For now nothing fancy, just some already existing maps while we make our own.
- lateload_single_pick = null
+ lateload_gateway = null
diff --git a/maps/stellardelight/stellar_delight_defines.dm b/maps/stellardelight/stellar_delight_defines.dm
index 25773f8780..c032d99b8a 100644
--- a/maps/stellardelight/stellar_delight_defines.dm
+++ b/maps/stellardelight/stellar_delight_defines.dm
@@ -4,6 +4,7 @@
#define Z_LEVEL_SHIP_HIGH 3
#define Z_LEVEL_CENTCOM 4
#define Z_LEVEL_MISC 5
+<<<<<<< HEAD
#define Z_LEVEL_BEACH 6
#define Z_LEVEL_BEACH_CAVE 7
#define Z_LEVEL_AEROSTAT 8
@@ -13,6 +14,19 @@
#define Z_LEVEL_OVERMAP 12
#define Z_LEVEL_OFFMAP1 13
#define Z_LEVEL_GATEWAY 14
+=======
+#define Z_LEVEL_SPACE_ROCKS 6
+#define Z_LEVEL_BEACH 7
+#define Z_LEVEL_BEACH_CAVE 8
+#define Z_LEVEL_AEROSTAT 9
+#define Z_LEVEL_AEROSTAT_SURFACE 10
+#define Z_LEVEL_DEBRISFIELD 11
+#define Z_LEVEL_FUELDEPOT 12
+#define Z_LEVEL_OVERMAP 13
+#define Z_LEVEL_OFFMAP1 14
+#define Z_LEVEL_GATEWAY 15
+#define Z_LEVEL_OM_ADVENTURE 16
+>>>>>>> 60011ecd0b... Merge pull request #11928 from Very-Soft/whalesandcrystals
//Camera networks
#define NETWORK_HALLS "Halls"
@@ -134,7 +148,7 @@
list("Offmap Ship - Talon V2")
)
- lateload_single_pick = list(
+ lateload_overmap = list(
list("Carp Farm"),
list("Snow Field"),
list("Listening Post"),
@@ -145,6 +159,10 @@
list("Wild West")
)
+ lateload_overmap = list(
+ list("Grass Cave")
+ )
+
ai_shell_restricted = TRUE
ai_shell_allowed_levels = list(
Z_LEVEL_SHIP_LOW,
@@ -164,7 +182,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/tether/tether_defines.dm b/maps/tether/tether_defines.dm
index c55c040dc0..4aaff54fc7 100644
--- a/maps/tether/tether_defines.dm
+++ b/maps/tether/tether_defines.dm
@@ -161,7 +161,7 @@
list("Fuel Depot - Z1 Space")
)
- lateload_single_pick = list(
+ lateload_gateway = list(
list("Carp Farm"),
list("Snow Field"),
list("Listening Post"),
@@ -193,7 +193,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 977ad2ffc8..5cbabb2aa3 100644
--- a/maps/~map_system/maps.dm
+++ b/maps/~map_system/maps.dm
@@ -54,7 +54,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/vorestation.dme b/vorestation.dme
index ef20c82b57..9b1aa80ce8 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1317,6 +1317,7 @@
#include "code\game\objects\items\weapons\bones.dm"
#include "code\game\objects\items\weapons\candle.dm"
#include "code\game\objects\items\weapons\canes.dm"
+#include "code\game\objects\items\weapons\capture_crystal.dm"
#include "code\game\objects\items\weapons\cards_ids_vr.dm"
#include "code\game\objects\items\weapons\chewables.dm"
#include "code\game\objects\items\weapons\cigs_lighters.dm"
@@ -1677,6 +1678,7 @@
#include "code\game\turfs\turf_flick_animations.dm"
#include "code\game\turfs\unsimulated.dm"
#include "code\game\turfs\flooring\floor_yw.dm"
+#include "code\game\turfs\weird_turfs_vr.dm"
#include "code\game\turfs\flooring\flooring.dm"
#include "code\game\turfs\flooring\flooring_ch.dm"
#include "code\game\turfs\flooring\flooring_decals.dm"
@@ -2131,6 +2133,7 @@
#include "code\modules\clothing\spacesuits\rig\modules\specific\metalfoam_launcher.dm"
#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun.dm"
#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\passive_protection.dm"
#include "code\modules\clothing\spacesuits\rig\modules\specific\pat_module_vr.dm"
#include "code\modules\clothing\spacesuits\rig\modules\specific\powersink.dm"
#include "code\modules\clothing\spacesuits\rig\modules\specific\rescue_pharm_vr.dm"
@@ -3121,6 +3124,7 @@
#include "code\modules\mob\living\simple_mob\harvesting.dm"
#include "code\modules\mob\living\simple_mob\life.dm"
#include "code\modules\mob\living\simple_mob\on_click.dm"
+#include "code\modules\mob\living\simple_mob\overmap_mob_vr.dm"
#include "code\modules\mob\living\simple_mob\sd_pets.dm"
#include "code\modules\mob\living\simple_mob\simple_hud.dm"
#include "code\modules\mob\living\simple_mob\simple_mob.dm"
@@ -3130,6 +3134,12 @@
#include "code\modules\mob\living\simple_mob\subtypes\animal\animal.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\vox.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\catslug.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\jellyfish.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\skeleton.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\space_mouse.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\spacewhale.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\spookyghost.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\startreader.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\teppi.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_captive.dm"
@@ -3997,9 +4007,9 @@
#include "code\modules\resleeving\infocore_records.dm"
#include "code\modules\resleeving\infomorph.dm"
#include "code\modules\resleeving\infomorph_software.dm"
+#include "code\modules\resleeving\machine_subtypes.dm"
#include "code\modules\resleeving\machines.dm"
#include "code\modules\resleeving\machines_ch.dm"
-#include "code\modules\resleeving\machines_vr.dm"
#include "code\modules\resleeving\sleevecard.dm"
#include "code\modules\rogueminer_vr\asteroid.dm"
#include "code\modules\rogueminer_vr\controller.dm"