From 243ce9ea61b463f6de3cd4bb5453dc844e534f06 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 24 Sep 2024 01:02:51 +0000 Subject: [PATCH 001/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-2932.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3370.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3377.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3392.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3397.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3409.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3411.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3412.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3414.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3415.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3416.yml | 4 ---- html/changelogs/archive/2024-09.yml | 26 +++++++++++++++++++++++ 12 files changed, 26 insertions(+), 49 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-2932.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3370.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3377.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3392.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3397.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3409.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3411.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3412.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3414.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3415.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3416.yml diff --git a/html/changelogs/AutoChangeLog-pr-2932.yml b/html/changelogs/AutoChangeLog-pr-2932.yml deleted file mode 100644 index 14c0c5985f64..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2932.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: FalloutFalcon -changes: - - {code_imp: bunch of code organization related to melee} - - {refactor: cleaned up a bunch of melee items to have better inheritance and paths} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3370.yml b/html/changelogs/AutoChangeLog-pr-3370.yml deleted file mode 100644 index 95a56f2e9b49..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3370.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: trazodont -changes: - - {bugfix: miso soup spelling error} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3377.yml b/html/changelogs/AutoChangeLog-pr-3377.yml deleted file mode 100644 index 26fbe6b2eec3..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3377.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Apogee-dev -changes: - - {balance: Changed decoration on Miskilamo ships to look similar to each other} - - {balance: reduced Kilo starting funds to 1500} - - {bugfix: fixed wires on Mudskipper} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3392.yml b/html/changelogs/AutoChangeLog-pr-3392.yml deleted file mode 100644 index b1fd3875e1c8..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3392.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {rscadd: A bunch of kepori underwear have sprites now} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3397.yml b/html/changelogs/AutoChangeLog-pr-3397.yml deleted file mode 100644 index 673b299d889d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3397.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: rye, erika -changes: - - {rscadd: 'concrete jugs have been replaced by much more appropriate concrete bags, - jee, i hope whoever made *that* blunder got fired.'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3409.yml b/html/changelogs/AutoChangeLog-pr-3409.yml deleted file mode 100644 index e2ad0fc06bde..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3409.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: Resprites all balaclavas!} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3411.yml b/html/changelogs/AutoChangeLog-pr-3411.yml deleted file mode 100644 index cb95ac44d223..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3411.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {rscadd: Adds a bit more contrast to the output of health analyzers} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3412.yml b/html/changelogs/AutoChangeLog-pr-3412.yml deleted file mode 100644 index 1c0b79981ecd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3412.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Bjarl -changes: - - {bugfix: turrets will now _actually_ connect to their console. i swear im a real - coder.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3414.yml b/html/changelogs/AutoChangeLog-pr-3414.yml deleted file mode 100644 index a4603970da7e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3414.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscdel: B.E.P.I.S. and related tech nodes.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3415.yml b/html/changelogs/AutoChangeLog-pr-3415.yml deleted file mode 100644 index 05558e44aa1c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3415.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscdel: unused did_fire var} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3416.yml b/html/changelogs/AutoChangeLog-pr-3416.yml deleted file mode 100644 index b99d0706e9ef..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3416.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {balance: Colossus now only has 2 recruit slots instead of a whopping !!5!!} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index d6027a6f2a58..130805ee50eb 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -137,3 +137,29 @@ Bjarl: - rscadd: You can now buy flares at the outpost - rscadd: Wasteplanets now will generate concrete filled caves. +2024-09-24: + Apogee-dev: + - balance: Changed decoration on Miskilamo ships to look similar to each other + - balance: reduced Kilo starting funds to 1500 + - bugfix: fixed wires on Mudskipper + Bjarl: + - bugfix: turrets will now _actually_ connect to their console. i swear im a real + coder. + FalloutFalcon: + - code_imp: bunch of code organization related to melee + - refactor: cleaned up a bunch of melee items to have better inheritance and paths + PositiveEntropy: + - imageadd: Resprites all balaclavas! + Thera-Pissed: + - rscdel: unused did_fire var + - rscdel: B.E.P.I.S. and related tech nodes. + rye, erika: + - rscadd: concrete jugs have been replaced by much more appropriate concrete bags, + jee, i hope whoever made *that* blunder got fired. + thgvr: + - balance: Colossus now only has 2 recruit slots instead of a whopping !!5!! + - rscadd: A bunch of kepori underwear have sprites now + trazodont: + - bugfix: miso soup spelling error + zimon9: + - rscadd: Adds a bit more contrast to the output of health analyzers From de14f00d60e1943d8dd43c1cd3c53154f696853c Mon Sep 17 00:00:00 2001 From: Jedi-Toothpaste <53096233+Jedi-Toothpaste@users.noreply.github.com> Date: Tue, 24 Sep 2024 23:47:10 +0100 Subject: [PATCH 002/125] mudskipper and shetland window fix (#3426) ## About The Pull Request Added windows to the mudskipper and shetland's engines as well for consistency see #3434 for the Kilo fixes too. Also seperated the Shetland's engine rooms so both buttons don't open both sides. Now the button in each engine room will open only it's respective side. ## Changelog :cl: fix: Added windows to the mudskipper and shetland's engines. fix: Adjusted the blast doors which open on the Shetland's engines. /:cl: --- .../independent/independent_mudskipper.dmm | 6 +++++ .../independent/independent_shetland.dmm | 24 ++++++++++++++----- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm index ac2be582662a..be3d9a994e7f 100644 --- a/_maps/shuttles/independent/independent_mudskipper.dmm +++ b/_maps/shuttles/independent/independent_mudskipper.dmm @@ -1096,6 +1096,9 @@ dir = 4; id = "mudskipper_engine" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering/engine) "zR" = ( @@ -1670,6 +1673,9 @@ dir = 4; id = "mudskipper_engine" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering/engine) "MK" = ( diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm index 256e9bc75c88..89dd45bb2262 100644 --- a/_maps/shuttles/independent/independent_shetland.dmm +++ b/_maps/shuttles/independent/independent_shetland.dmm @@ -1492,7 +1492,7 @@ }, /obj/machinery/button/door{ dir = 1; - id = "amogusthrusters"; + id = "shetportthrusters"; name = "Thruster Lockdown"; pixel_y = -21 }, @@ -2297,7 +2297,7 @@ pixel_y = 5 }, /obj/machinery/button/door{ - id = "amogusthrusters"; + id = "shetstarboardengine"; name = "Thruster Lockdown"; pixel_y = 24 }, @@ -2748,11 +2748,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetstarboardengine" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "wU" = ( @@ -4423,11 +4426,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetportthrusters" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "Lx" = ( @@ -4989,11 +4995,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetportthrusters" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "PR" = ( @@ -5157,11 +5166,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetstarboardengine" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "Ri" = ( From 5a7fcb32088ac609ee462c51d7da4ff73e2fd076 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 24 Sep 2024 17:57:55 -0500 Subject: [PATCH 003/125] Automatic changelog generation for PR #3426 [ci skip] --- html/changelogs/AutoChangeLog-pr-3426.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3426.yml diff --git a/html/changelogs/AutoChangeLog-pr-3426.yml b/html/changelogs/AutoChangeLog-pr-3426.yml new file mode 100644 index 000000000000..476c9d7c88aa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3426.yml @@ -0,0 +1,5 @@ +author: Jedi-Toothpaste +changes: + - {bugfix: Added windows to the mudskipper and shetland's engines.} + - {bugfix: Adjusted the blast doors which open on the Shetland's engines.} +delete-after: true From d52f36b1ce04ae3f2091c787858d3a4ddd205688 Mon Sep 17 00:00:00 2001 From: Theos Date: Tue, 24 Sep 2024 19:44:59 -0400 Subject: [PATCH 004/125] Sawn variants for the illestren and improvised shotgun now properly have their stats set (#3427) ## About The Pull Request If the illestren's sawn off accuracy is unreasonably high I'd like to know because it's TERRIBLE ## Changelog :cl: fix: sawn off illestren/improvised shotgun stats are now consistent if they are spawned in /:cl: --------- Signed-off-by: Theos --- code/modules/projectiles/guns/ballistic/rifle.dm | 2 ++ code/modules/projectiles/guns/ballistic/shotgun.dm | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 2d3cb6908c83..2be77ee20835 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -127,6 +127,8 @@ sawn_off = TRUE weapon_weight = WEAPON_MEDIUM w_class = WEIGHT_CLASS_NORMAL + spread = 24 + spread_unwielded = 30 slot_flags = ITEM_SLOT_BELT /obj/item/gun/ballistic/rifle/solgov diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index eb8ea3355fe9..2d70bf9851bb 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -432,6 +432,14 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) sawn_off = TRUE slot_flags = ITEM_SLOT_BELT + wield_slowdown = 0.25 + wield_delay = 0.3 SECONDS //OP? maybe + + spread = 8 + spread_unwielded = 15 + recoil = 3 //or not + recoil_unwielded = 5 + /obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact name = "compact compact combat shotgun" desc = "A compact version of the compact version of the semi automatic combat shotgun. For when you want a gun the same size as your brain." From fcdc0c0dddfea17b3f62d5733bda8c95499f86bd Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 24 Sep 2024 18:55:45 -0500 Subject: [PATCH 005/125] Automatic changelog generation for PR #3427 [ci skip] --- html/changelogs/AutoChangeLog-pr-3427.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3427.yml diff --git a/html/changelogs/AutoChangeLog-pr-3427.yml b/html/changelogs/AutoChangeLog-pr-3427.yml new file mode 100644 index 000000000000..9db44c29cad7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3427.yml @@ -0,0 +1,5 @@ +author: SomeguyManperson +changes: + - {bugfix: sawn off illestren/improvised shotgun stats are now consistent if they + are spawned in} +delete-after: true From d0171aa08ab7d4770422af584432490c1956b374 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 01:03:35 +0000 Subject: [PATCH 006/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3426.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3427.yml | 5 ----- html/changelogs/archive/2024-09.yml | 7 +++++++ 3 files changed, 7 insertions(+), 10 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3426.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3427.yml diff --git a/html/changelogs/AutoChangeLog-pr-3426.yml b/html/changelogs/AutoChangeLog-pr-3426.yml deleted file mode 100644 index 476c9d7c88aa..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3426.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Jedi-Toothpaste -changes: - - {bugfix: Added windows to the mudskipper and shetland's engines.} - - {bugfix: Adjusted the blast doors which open on the Shetland's engines.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3427.yml b/html/changelogs/AutoChangeLog-pr-3427.yml deleted file mode 100644 index 9db44c29cad7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3427.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SomeguyManperson -changes: - - {bugfix: sawn off illestren/improvised shotgun stats are now consistent if they - are spawned in} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index 130805ee50eb..d86f5c86c955 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -163,3 +163,10 @@ - bugfix: miso soup spelling error zimon9: - rscadd: Adds a bit more contrast to the output of health analyzers +2024-09-25: + Jedi-Toothpaste: + - bugfix: Added windows to the mudskipper and shetland's engines. + - bugfix: Adjusted the blast doors which open on the Shetland's engines. + SomeguyManperson: + - bugfix: sawn off illestren/improvised shotgun stats are now consistent if they + are spawned in From 975debf86e1907ee0156a514e8d7fe14bb3d3d82 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:44:46 -0500 Subject: [PATCH 007/125] More Rust Reds (#3423) ## About The Pull Request Increases rust reds on the black market from maximum 1 to a maximum of 3 ## Why It's Good For The Game Makes them about as available as the other suits on the market. They Suck, shouldn't really matter ## Changelog :cl: balance: Rust Reds on the blackmarket are now available to a maximum of 3 /:cl: --- code/modules/cargo/blackmarket/blackmarket_items/clothing.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index d049589fe40a..7a9803085ab8 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -264,7 +264,7 @@ price_min = 1500 price_max = 2500 - stock = 1 + stock_max = 3 availability_prob = 30 /datum/blackmarket_item/clothing/frontiersmen_hardsuit From 554905548d7b5de1591d04ffeb014aca091caec9 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 08:56:47 -0500 Subject: [PATCH 008/125] Automatic changelog generation for PR #3423 [ci skip] --- html/changelogs/AutoChangeLog-pr-3423.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3423.yml diff --git a/html/changelogs/AutoChangeLog-pr-3423.yml b/html/changelogs/AutoChangeLog-pr-3423.yml new file mode 100644 index 000000000000..21c44ad0f32e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3423.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {balance: Rust Reds on the blackmarket are now available to a maximum of 3} +delete-after: true From f93fa2a563c40653ab0d349bc19a2506c29f6cd2 Mon Sep 17 00:00:00 2001 From: zimon9 <122945887+zimon9@users.noreply.github.com> Date: Wed, 25 Sep 2024 09:45:50 -0400 Subject: [PATCH 009/125] Makes Vegan rations actually Vegan (#3408) ## About The Pull Request Exchanges the pizza crackers snack, which is a meat foodtype, with fruit puree, in the vegan chili ration. ## Why It's Good For The Game It always felt like a really minor and silly oversight that pizza crackers weren't actually vegan, which, in turn, made the _vegan ration_ not actually entirely vegan. This isn't really a gamebreaking change, but I thought it might help with consistency. ## Changelog :cl: add: Added fruit puree to vegan rations del: Removed pizza crackers from vegan rations /:cl: --- code/game/objects/items/storage/ration.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/ration.dm b/code/game/objects/items/storage/ration.dm index b016cc339260..169e0dfad0a6 100644 --- a/code/game/objects/items/storage/ration.dm +++ b/code/game/objects/items/storage/ration.dm @@ -54,7 +54,7 @@ /obj/item/reagent_containers/food/snacks/ration/entree/vegan_chili = 1, /obj/item/reagent_containers/food/snacks/ration/side/vegan_crackers = 1, /obj/item/reagent_containers/food/snacks/ration/side/cornbread = 1, - /obj/item/reagent_containers/food/snacks/ration/snack/pizza_crackers = 1, + /obj/item/reagent_containers/food/snacks/ration/snack/fruit_puree = 1, /obj/item/reagent_containers/food/snacks/ration/condiment/cheese_spread = 1, /obj/item/reagent_containers/food/snacks/ration/pack/grape_beverage = 1, /obj/item/ration_heater = 1 From 053a7ba7721e7924d6698f6bc4b9879746943d82 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 09:10:35 -0500 Subject: [PATCH 010/125] Automatic changelog generation for PR #3408 [ci skip] --- html/changelogs/AutoChangeLog-pr-3408.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3408.yml diff --git a/html/changelogs/AutoChangeLog-pr-3408.yml b/html/changelogs/AutoChangeLog-pr-3408.yml new file mode 100644 index 000000000000..f85514c5004c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3408.yml @@ -0,0 +1,5 @@ +author: zimon9 +changes: + - {rscadd: Added fruit puree to vegan rations} + - {rscdel: Removed pizza crackers from vegan rations} +delete-after: true From bad30456a4bfa0e495d6cdaf1ecb02c2bb1f184d Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Wed, 25 Sep 2024 06:46:02 -0700 Subject: [PATCH 011/125] Fixes deconstructing walls causing runtimes (#3398) ## About The Pull Request Fixes the while loops so they dont do silly shit and call procs on turfs they shouldnt. ## Why It's Good For The Game Kill 9 billion runtimes. ## Changelog :cl: fix: fixes wall deconstruction causing runtimes /:cl: --- .../game/mecha/equipment/tools/mining_tools.dm | 7 +++++-- code/game/objects/items.dm | 3 +++ code/game/turfs/closed/_closed.dm | 11 ++++++++--- code/game/turfs/closed/minerals.dm | 8 ++++++-- code/game/turfs/closed/wall/reinf_walls.dm | 3 ++- code/game/turfs/closed/walls.dm | 18 +++--------------- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index e99d24e3f558..d330865a4be2 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -65,17 +65,20 @@ /turf/closed/wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) while(drill.do_after_mecha(src, 15 / drill.drill_level)) drill.log_message("Drilled through [src]", LOG_MECHA) - alter_integrity(-drill.wall_decon_damage) drill.occupant_message("You drill through some of the outer plating...") playsound(src,'sound/weapons/drill.ogg',60,TRUE) + if(!alter_integrity(-drill.wall_decon_damage)) + return TRUE /turf/closed/wall/r_wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) if(drill.drill_level >= DRILL_HARDENED) while(drill.do_after_mecha(src, 20 / drill.drill_level)) drill.log_message("Drilled through [src]", LOG_MECHA) - alter_integrity(-drill.wall_decon_damage) drill.occupant_message("You drill through some of the outer plating...") playsound(src,'sound/weapons/drill.ogg',60,TRUE) + if(!alter_integrity(-drill.wall_decon_damage)) + return TRUE + else drill.occupant_message("[src] is too durable to drill through.") diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 17d6cf96b21a..a1302008cf89 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -957,6 +957,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /// Called when a mob tries to use the item as a tool.Handles most checks. /obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks) + // we have no target, why are we even doing this? + if(isnull(target)) + return // No delay means there is no start message, and no reason to call tool_start_check before use_tool. // Run the start check here so we wouldn't have to call it manually. if(!delay && !tool_start_check(user, amount)) diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index dc410d027504..766d7e0e5a24 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -227,6 +227,8 @@ return ..() /turf/closed/proc/attack_override(obj/item/W, mob/user, turf/loc) + if(!isclosedturf(src)) + return //the istype cascade has been spread among various procs for easy overriding or if we want to call something specific if(try_decon(W, user, loc) || try_destroy(W, user, loc)) return @@ -252,15 +254,18 @@ return TRUE /turf/closed/proc/try_decon(obj/item/I, mob/user, turf/T) + var/act_duration = breakdown_duration if(I.tool_behaviour == TOOL_WELDER) if(!I.tool_start_check(user, amount=0)) return FALSE - to_chat(user, "You begin slicing through the outer plating...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) + while(I.use_tool(src, user, act_duration, volume=50)) if(iswallturf(src)) to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE) + if(!alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE)) + return TRUE + else + break return FALSE diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 0d9b3205cc27..3970cc403d73 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -79,16 +79,20 @@ return ..() /turf/closed/mineral/try_decon(obj/item/I, mob/user, turf/T) + var/act_duration = breakdown_duration if(I.tool_behaviour == TOOL_MINING) if(!I.tool_start_check(user, amount=0)) return FALSE to_chat(user, "You begin breaking through the rock...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) + while(I.use_tool(src, user, act_duration, volume=50)) if(ismineralturf(src)) to_chat(user, "You break through some of the stone...") SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type) - alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE) + if(!alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE)) + return TRUE + else + break return FALSE diff --git a/code/game/turfs/closed/wall/reinf_walls.dm b/code/game/turfs/closed/wall/reinf_walls.dm index ed2f0141eaff..c0fb9232ad28 100644 --- a/code/game/turfs/closed/wall/reinf_walls.dm +++ b/code/game/turfs/closed/wall/reinf_walls.dm @@ -78,7 +78,8 @@ to_chat(user, "You begin slicing through the [src].") while(W.use_tool(src,user,30,volume = 100)) to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(W.wall_decon_damage)) + if(!alter_integrity(-(W.wall_decon_damage))) + return TRUE return 1 switch(d_state) diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index bed648ff592b..1d8f242e216a 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -85,9 +85,10 @@ return null /turf/closed/wall/attack_override(obj/item/W, mob/user, turf/loc) - if(try_clean(W, user, loc) || try_wallmount(W, user, loc)) + if(!iswallturf(src)) + return + if(try_clean(W, user, loc) || try_wallmount(W, user, loc) || try_decon(W, user, loc) || try_destroy(W, user, loc)) return - ..() /turf/closed/wall/proc/try_clean(obj/item/W, mob/user, turf/T) if((user.a_intent != INTENT_HELP)) @@ -122,19 +123,6 @@ return FALSE -/turf/closed/wall/try_decon(obj/item/I, mob/user, turf/T) - if(I.tool_behaviour == TOOL_WELDER) - if(!I.tool_start_check(user, amount=0)) - return FALSE - - to_chat(user, "You begin slicing through the outer plating...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) - if(iswallturf(src)) - to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(I.wall_decon_damage),FALSE,TRUE) - - return FALSE - /turf/closed/wall/singularity_pull(S, current_size) ..() wall_singularity_pull(current_size) From b1038979ab692d27e64fbe6905001959322672dd Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 09:24:04 -0500 Subject: [PATCH 012/125] Automatic changelog generation for PR #3398 [ci skip] --- html/changelogs/AutoChangeLog-pr-3398.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3398.yml diff --git a/html/changelogs/AutoChangeLog-pr-3398.yml b/html/changelogs/AutoChangeLog-pr-3398.yml new file mode 100644 index 000000000000..65eb77137267 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3398.yml @@ -0,0 +1,4 @@ +author: Gristlebee +changes: + - {bugfix: fixes wall deconstruction causing runtimes} +delete-after: true From de480f809e1aabfc6590453820c5cd024f1b255e Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:46:49 -0500 Subject: [PATCH 013/125] Pants Accessories (#3418) ## About The Pull Request Most accessories fit on pants now ## Why It's Good For The Game I should be able to pin my captain's medal on the turtleneck I'm wearing with my black pants. ## Changelog :cl: balance: Most common accessories now fit on pants /:cl: --- code/modules/clothing/under/accessories.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index d1ee50d1a629..0d05c4e0cf7f 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -137,6 +137,7 @@ icon_state = "bronze" custom_materials = list(/datum/material/iron=1000) resistance_flags = FIRE_PROOF + attachment_slot = null var/medaltype = "medal" //Sprite used for medalbox var/commended = FALSE @@ -409,6 +410,7 @@ icon_state = "holster" item_state = "holster" pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster + attachment_slot = null /obj/item/clothing/accessory/holster/detective name = "detective's shoulder holster" @@ -477,7 +479,7 @@ icon_state = "rilena_pin" above_suit = FALSE minimize_when_attached = TRUE - attachment_slot = CHEST + attachment_slot = null /obj/item/clothing/accessory/rilena_pin/on_uniform_equip(obj/item/clothing/under/U, user) var/mob/living/L = user From 9aab7f2d0df8b76a55d9f43886d655c679057325 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 09:37:14 -0500 Subject: [PATCH 014/125] Automatic changelog generation for PR #3418 [ci skip] --- html/changelogs/AutoChangeLog-pr-3418.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3418.yml diff --git a/html/changelogs/AutoChangeLog-pr-3418.yml b/html/changelogs/AutoChangeLog-pr-3418.yml new file mode 100644 index 000000000000..b2b6703a1756 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3418.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {balance: Most common accessories now fit on pants} +delete-after: true From 4009cd5c74be78c030d042450c88e8d9f620f443 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:47:03 -0500 Subject: [PATCH 015/125] Exosuit Recharger Equipment in Cargo (#3420) ## About The Pull Request Adds the exosuit recharger machine and computer boards to cargo ## Why It's Good For The Game You can't get them outside of ruins or RND and they're Way Cooler than cell-swapping ## Changelog :cl: add: Exosuit Recharger machines are now available from cargo /:cl: --- code/modules/cargo/packs/mechs.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/modules/cargo/packs/mechs.dm b/code/modules/cargo/packs/mechs.dm index 7790e696ee15..744e9f67e2f2 100644 --- a/code/modules/cargo/packs/mechs.dm +++ b/code/modules/cargo/packs/mechs.dm @@ -220,6 +220,15 @@ Mech Equipment /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster ) +/datum/supply_pack/mech/equipment/recharger + name = "Exosuit Recharger kit" + desc = "Two boards for an exosuit recharger and recharger console. For the stylish exosuit bay." + cost = 400 + contains = list( + /obj/item/circuitboard/computer/mech_bay_power_console, + /obj/item/circuitboard/machine/mech_recharger + ) + /* weapons */ From 14a4b8c324f03571ee1a15be7696efe39c74018c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 09:50:32 -0500 Subject: [PATCH 016/125] Automatic changelog generation for PR #3420 [ci skip] --- html/changelogs/AutoChangeLog-pr-3420.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3420.yml diff --git a/html/changelogs/AutoChangeLog-pr-3420.yml b/html/changelogs/AutoChangeLog-pr-3420.yml new file mode 100644 index 000000000000..832736e59bfd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3420.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {rscadd: Exosuit Recharger machines are now available from cargo} +delete-after: true From af77144e59c474fea4831f0241dfb9d95c1ef2c2 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:47:38 -0500 Subject: [PATCH 017/125] Adds .38 Hearth and .38 Chilled ammo boxes, to the Black Market (#3425) ## About The Pull Request Adds ammo boxes for hotshot and iceblox variants of .38 Special, and puts them in the black market. Slightly reflavoured to imply infusion of trickwines by black market elements. Sprites courtesy of @rye-rice ![stuff](https://github.com/user-attachments/assets/3c29840f-e46a-4780-ad92-091c5f5f81d1) ## Why It's Good For The Game Cute little thing to maybe make .38 attractive to some as a gimmicky cartridge ## Changelog :cl: add: Adds .38 Hearth and .38 Chilled specialty ammo boxes to the black market /:cl: --- .../blackmarket/blackmarket_items/ammo.dm | 22 ++++++++++++++++++ .../ammunition/ballistic/revolver.dm | 8 +++---- .../projectiles/boxes_magazines/ammo_boxes.dm | 20 ++++++++++++---- .../projectile/bullets/revolver.dm | 4 ++-- .../research/designs/weapon_designs.dm | 4 ++-- icons/obj/ammo.dmi | Bin 63786 -> 59485 bytes 6 files changed, 46 insertions(+), 12 deletions(-) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm index 47f7fd884993..d5489edeb3e0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm @@ -271,3 +271,25 @@ stock_min = 2 stock_max = 10 availability_prob = 10 + +/datum/blackmarket_item/ammo/c38hotshot + name = ".38 Hearth Ammo Box" + desc = "We got our ship cook to marinade some .38 in some hearthwine we pocketed off some hunters. It'll cook your targets to a nice well done." + item = /obj/item/ammo_box/c38/hotshot + + price_min = 300 + price_max = 500 + stock_min = 3 + stock_max = 8 + availability_prob = 50 + +/datum/blackmarket_item/ammo/c38iceblox + name = ".38 Chilled Ammo Box" + desc = "One of our runners accidentally spilled some .38 into a fucking pristine icewine shipment. It'll freeze your targets faster than our runner froze solid outside for making a mess." + item = /obj/item/ammo_box/c38/iceblox + + price_min = 300 + price_max = 500 + stock_min = 3 + stock_max = 8 + availability_prob = 50 diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index e235e00b98f6..8705a932b392 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -88,14 +88,14 @@ projectile_type = /obj/projectile/bullet/c38/dumdum /obj/item/ammo_casing/c38/hotshot - name = ".38 hot shot bullet casing" - desc = "A .38 hot shot bullet casing." + name = ".38 hearth bullet casing" + desc = "A .38 hearth bullet casing." bullet_skin = "incen" projectile_type = /obj/projectile/bullet/c38/hotshot /obj/item/ammo_casing/c38/iceblox - name = ".38 iceblox bullet casing" - desc = "A .38 iceblox bullet casing." + name = ".38 chilled bullet casing" + desc = "A .38 chilled bullet casing." bullet_skin = "surplus" projectile_type = /obj/projectile/bullet/c38/iceblox diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index b590f0831df1..443f70c3314d 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -113,13 +113,13 @@ ammo_type = /obj/item/ammo_casing/c38/dumdum /obj/item/ammo_box/c38/hotshot - name = "speed loader (.38 hot shot)" - desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hot shot bullets contain an incendiary payload that set targets alight." + name = "speed loader (.38 hearth)" + desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hearthwine bullets contain an incendiary payload that set targets alight." ammo_type = /obj/item/ammo_casing/c38/hotshot /obj/item/ammo_box/c38/iceblox - name = "speed loader (.38 iceblox)" - desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These iceblox bullets contain a cryogenic payload that chills targets." + name = "speed loader (.38 chilled)" + desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These icewine bullets contain a cryogenic payload that chills targets." ammo_type = /obj/item/ammo_casing/c38/iceblox /obj/item/ammo_box/c38/empty @@ -213,6 +213,18 @@ icon_state = "38box-surplus" ammo_type = /obj/item/ammo_casing/c38/surplus +/obj/item/ammo_box/c38_box/hotshot + name = "ammo box (.38 hearth)" + desc = "An unorthodox .38 Special cartridge infused with hearthwine. Catches the target on fire." + icon_state = "38hotshot" + ammo_type = /obj/item/ammo_casing/c38/hotshot + +/obj/item/ammo_box/c38_box/iceblox + name = "ammo box (.38 chilled)" + desc = "An unorthodox .38 Special cartridge infused with icewine. Chills the target, slowing them down." + icon_state = "38iceblox" + ammo_type = /obj/item/ammo_casing/c38/iceblox + /obj/item/ammo_box/a12g name = "ammo box (12g buckshot)" desc = "A box of 12-gauge buckshot shells, devastating at close range." diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index dede2ce0d7ce..340aa692f5b2 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -69,7 +69,7 @@ imp.implant(M) /obj/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail - name = ".38 hot shot bullet" + name = ".38 hearth bullet" ricochets_max = 0 /obj/projectile/bullet/c38/hotshot/on_hit(atom/target, blocked = FALSE) @@ -80,7 +80,7 @@ M.IgniteMob() /obj/projectile/bullet/c38/iceblox //see /obj/projectile/temp for the original code - name = ".38 iceblox bullet" + name = ".38 chilled bullet" var/temperature = 100 ricochets_max = 0 diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 2a8f390e9e36..1c3edc8b7c32 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -18,7 +18,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS /datum/design/c38_hotshot - name = "Speed Loader (.38 Hot Shot)" + name = "Speed Loader (.38 Hearth)" desc = "Designed to quickly reload revolvers. Hot Shot bullets contain an incendiary payload." id = "c38_hotshot" build_type = PROTOLATHE @@ -28,7 +28,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS /datum/design/c38_iceblox - name = "Speed Loader (.38 Iceblox)" + name = "Speed Loader (.38 Chilled)" desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload." id = "c38_iceblox" build_type = PROTOLATHE diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 403b198c179bcfddd76bc5ec6100a098244fa217..ec5f147485401833d8ad24fb12c0cf6a26dc9a09 100644 GIT binary patch literal 59485 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�|5v&&(+6#QTH|7xXxCio~B9FI+ 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

)AGle|iV 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 From 7e9752abf56562c3608ba6598528820f1e9f8fc0 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:51:41 -0500 Subject: [PATCH 018/125] minimum recoil for ballistics (#3330) ## About The Pull Request gives a very small kick to all ballistics, not enough to affect your aim but makes them feel alot better to use. atomization of #3094 currently debating what the value should be.. 0 https://github.com/user-attachments/assets/1630a089-bf9f-4ec5-8853-c2728f420f4e .1 https://github.com/user-attachments/assets/2064b49b-37f5-4860-b273-1f28274724f7 .175 https://github.com/user-attachments/assets/6baba2ad-8100-403e-b6c4-d4e958ad21d6 .25 https://github.com/user-attachments/assets/ca3bdf37-bf30-493e-bb24-ae452cbc6481 a bit of an extreme case being a fast firing auto but it happens to be a gun with a recoil of 0 rn so it will be affected by the change ## Why It's Good For The Game without it, a surprising amount of ballistics get 0 recoil just but wielding them which feels really jarring. ## Changelog :cl: add: Ballistics now have a minimum recoil, not enough to mess up your shot! /:cl: --- code/modules/projectiles/gun.dm | 11 +++++++---- code/modules/projectiles/guns/ballistic.dm | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index b59a1530a209..28ef8cecdd80 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -207,6 +207,12 @@ ///this is how much deviation the gun recoil can have, recoil pushes the screen towards the reverse angle you shot + some deviation which this is the max. var/recoil_deviation = 22.5 + ///Used if the guns recoil is lower then the min, it clamps the highest recoil + var/min_recoil = 0 + + var/gunslinger_recoil_bonus = 0 + var/gunslinger_spread_bonus = 0 + /// how many shots per burst, Ex: most machine pistols, M90, some ARs are 3rnd burst, while others like the GAR and laser minigun are 2 round burst. var/burst_size = 3 ///The rate of fire when firing in a burst. Not the delay between bursts @@ -318,9 +324,6 @@ ///This prevents gun from firing until the coodown is done, affected by lag var/current_cooldown = 0 - var/gunslinger_recoil_bonus = 0 - var/gunslinger_spread_bonus = 0 - /obj/item/gun/Initialize() . = ..() RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) @@ -815,7 +818,7 @@ /obj/item/gun/proc/calculate_recoil(mob/user, recoil_bonus = 0) if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) recoil_bonus += gunslinger_recoil_bonus - return clamp(recoil_bonus, 0 , INFINITY) + return clamp(recoil_bonus, min_recoil , INFINITY) /obj/item/gun/proc/calculate_spread(mob/user, bonus_spread) var/final_spread = 0 diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 0288813fd089..00f48cc29239 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -13,6 +13,8 @@ has_safety = TRUE safety = TRUE + min_recoil = 0.1 + valid_attachments = list( /obj/item/attachment/silencer, /obj/item/attachment/laser_sight, From 12f73cbb6e621e3891d853f4bdd3f28591bae609 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 10:18:15 -0500 Subject: [PATCH 019/125] Automatic changelog generation for PR #3330 [ci skip] --- html/changelogs/AutoChangeLog-pr-3330.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3330.yml diff --git a/html/changelogs/AutoChangeLog-pr-3330.yml b/html/changelogs/AutoChangeLog-pr-3330.yml new file mode 100644 index 000000000000..46e461f2f53f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3330.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {rscadd: 'Ballistics now have a minimum recoil, not enough to mess up your shot!'} +delete-after: true From 06cc8b612d18ca841cb03140a7d816d14481bf43 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:52:11 -0500 Subject: [PATCH 020/125] Ship joining starts on locked (#3346) ## About The Pull Request Ship's start on locked instead of open Idea from #772 ## Why It's Good For The Game No longer can an assistant join your ship faster then you can, rejoice in time to write your memo and change your ships name. ## Changelog :cl: fix: ships now start closed. shiptesters be writing there memos and ship names. /:cl: --- code/modules/overmap/ships/controlled_ship_datum.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index 5d851e52f4fd..efa4e36026c0 100644 --- a/code/modules/overmap/ships/controlled_ship_datum.dm +++ b/code/modules/overmap/ships/controlled_ship_datum.dm @@ -56,7 +56,7 @@ var/owner_check_timer_id /// The ship's join mode. Controls whether players can join freely, have to apply, or can't join at all. - var/join_mode = SHIP_JOIN_MODE_OPEN + var/join_mode = SHIP_JOIN_MODE_CLOSED /// Lazylist of /datum/ship_applications for this ship. Only used if join_mode == SHIP_JOIN_MODE_APPLY var/list/datum/ship_application/applications From 8839b3e262ea10ec415f2680140d805f71be5e32 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 10:31:47 -0500 Subject: [PATCH 021/125] Automatic changelog generation for PR #3346 [ci skip] --- html/changelogs/AutoChangeLog-pr-3346.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3346.yml diff --git a/html/changelogs/AutoChangeLog-pr-3346.yml b/html/changelogs/AutoChangeLog-pr-3346.yml new file mode 100644 index 000000000000..46be6f8474b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3346.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {bugfix: ships now start closed. shiptesters be writing there memos and ship names.} +delete-after: true From 065b41dc33b4682678261952b4686c403b800552 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:52:29 -0500 Subject: [PATCH 022/125] blank ammo (#3352) ## About The Pull Request pending sprites! ## Why It's Good For The Game ## Changelog :cl: add: Added new blank shells for training drills! refactor: Minor refactor of design disks to reduce repeated code /:cl: --- code/modules/cargo/packs/ammo.dm | 12 +++ .../mining/lavaland/necropolis_chests.dm | 28 ------- .../ammunition/ballistic/shotgun.dm | 7 ++ .../projectiles/boxes_magazines/ammo_boxes.dm | 6 ++ .../projectiles/projectile/bullets/shotgun.dm | 6 ++ code/modules/research/designs.dm | 78 ++++++++++++------ .../research/designs/autolathe_designs.dm | 8 ++ .../ruins/spaceruin_code/bigderelict1.dm | 10 --- icons/obj/ammo_shotshells.dmi | Bin 1296 -> 3149 bytes 9 files changed, 93 insertions(+), 62 deletions(-) diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 6fa0b54966c1..a7ab407b428e 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -72,6 +72,18 @@ cost = 500 contains = list(/obj/item/ammo_box/a12g/slug) +/datum/supply_pack/ammo/blank_shells + name = "Blank Shell Crate" + desc = "Contains a box of blank shells." + cost = 500 + contains = list(/obj/item/ammo_box/a12g/blanks) + +/datum/supply_pack/ammo/blank_ammo_disk + name = "Blank Ammo Design Disk Crate" + desc = "Run your own training drills!" + cost = 1000 + contains = list(/obj/item/disk/design_disk/blanks) + /datum/supply_pack/ammo/techshells name = "Unloaded Shotgun Technological Shells Crate" desc = "Contains a box of 7 versatile tech shells, capable of producing a variety of deadly effects for any situation. Some assembly required." diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index afae0dd0a6c0..e3e9f6aac8f0 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -150,34 +150,6 @@ if(28) new /obj/item/clothing/suit/armor/ascetic(src) -//KA modkit design discs -/obj/item/disk/design_disk/modkit_disc - name = "KA Mod Disk" - desc = "A design disc containing the design for a unique kinetic accelerator modkit. It's compatible with a research console." - illustration = "accel" - color = "#6F6F6F" - var/modkit_design = /datum/design/unique_modkit - -/obj/item/disk/design_disk/modkit_disc/Initialize() - . = ..() - blueprints[1] = new modkit_design - -/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe - name = "Offensive Mining Explosion Mod Disk" - modkit_design = /datum/design/unique_modkit/offensive_turf_aoe - -/obj/item/disk/design_disk/modkit_disc/rapid_repeater - name = "Rapid Repeater Mod Disk" - modkit_design = /datum/design/unique_modkit/rapid_repeater - -/obj/item/disk/design_disk/modkit_disc/resonator_blast - name = "Resonator Blast Mod Disk" - modkit_design = /datum/design/unique_modkit/resonator_blast - -/obj/item/disk/design_disk/modkit_disc/bounty - name = "Death Syphon Mod Disk" - modkit_design = /datum/design/unique_modkit/bounty - /datum/design/unique_modkit category = list("Mining Designs", "Cyborg Upgrade Modules") //can't be normally obtained build_type = PROTOLATHE | MECHFAB diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 9f6a8c169ecd..24854030c041 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -46,6 +46,13 @@ icon_state = "incendiary" projectile_type = /obj/projectile/bullet/incendiary/shotgun +/obj/item/ammo_casing/shotgun/blank + name = "blank shell" + desc = "A shell packed with powder but no projectile." + icon_state = "blank" + projectile_type = /obj/projectile/bullet/pellet/blank + custom_materials = list(/datum/material/iron=250) + /obj/item/ammo_casing/shotgun/improvised name = "improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards." diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 443f70c3314d..5b78f1fc93a1 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -250,6 +250,12 @@ icon_state = "12gbox-rubbershot" ammo_type = /obj/item/ammo_casing/shotgun/rubbershot +/obj/item/ammo_box/a12g/blanks + name = "ammo box (12g blanks)" + desc = "A box of 12-gauge blank shells, designed for training." + icon_state ="12gbox-slug" + ammo_type = /obj/item/ammo_casing/shotgun/blank + /obj/item/ammo_box/c9mm name = "ammo box (9mm)" desc = "A box of standard 9mm ammo." diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index ba9c8c88d7f8..a069102a39cc 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -114,3 +114,9 @@ damage = 30 armour_penetration = -25 tile_dropoff = 3 + +/obj/projectile/bullet/pellet/blank + name = "blank" + damage = 30 + range = 2 + armour_penetration = -70 diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 79b28ccef331..340119a4e78a 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -97,18 +97,25 @@ other types of metals and chemistry for reagents). color = "#8b70ff" illustration = "design" custom_materials = list(/datum/material/iron =300, /datum/material/glass =100) + var/disk_name = "Design Disk" + var/design_name var/list/blueprints = list() - var/list/starting_blueprints = list() + var/starting_blueprints = list() var/max_blueprints = 1 /obj/item/disk/design_disk/Initialize() . = ..() pixel_x = base_pixel_x + rand(-5, 5) pixel_y = base_pixel_y + rand(-5, 5) - blueprints = new/list(max_blueprints) + if(design_name) + name = jointext(list(disk_name, design_name), " - ") + if(length(starting_blueprints)) + for(var/design in starting_blueprints) + blueprints += new design() /obj/item/disk/design_disk/adv name = "Advanced Component Design Disk" + disk_name = "Advanced Design Disk" color = "#bed876" desc = "A disk for storing device design data for construction in lathes. This one has a little bit of extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 50) @@ -116,6 +123,7 @@ other types of metals and chemistry for reagents). /obj/item/disk/design_disk/super name = "Super Component Design Disk" + disk_name = "Super Design Disk" color = "#c25454" desc = "A disk for storing device design data for construction in lathes. This one has more extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 50, /datum/material/gold = 50) @@ -123,6 +131,7 @@ other types of metals and chemistry for reagents). /obj/item/disk/design_disk/elite name = "Elite Component Design Disk" + disk_name = "Elite Design Disk" color = "#333333" desc = "A disk for storing device design data for construction in lathes. This one has absurd amounts of extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 100, /datum/material/gold = 100, /datum/material/bluespace = 50) @@ -130,39 +139,60 @@ other types of metals and chemistry for reagents). //Disks with content /obj/item/disk/design_disk/ammo_c10mm - name = "Design Disk - 10mm Ammo" + design_name = "10mm Ammo" desc = "A design disk containing the pattern for a refill box of standard 10mm ammo, used in Stechkin pistols." - -/obj/item/disk/design_disk/ammo_c10mm/Initialize() - . = ..() - blueprints[1] = new /datum/design/c10mm() - + starting_blueprints = (/datum/design/c10mm) /obj/item/disk/design_disk/disposable_gun - name = "design disk - disposable gun" + design_name = "Disposable gun" desc = "A design disk containing designs for a cheap and disposable gun." illustration = "gun" max_blueprints = 2 - -/obj/item/disk/design_disk/disposable_gun/Initialize() - . = ..() - blueprints[1] = new /datum/design/disposable_gun() + starting_blueprints = list(/datum/design/disposable_gun) /obj/item/disk/design_disk/clip_mechs - name = "design disk - CLIP exosuit modifications" + design_name = "CLIP exosuit modifications" desc = "A design disk containing specifications for CLIP-custom exosuit conversions." color = "#57b8f0" max_blueprints = 2 - -/obj/item/disk/design_disk/clip_mechs/Initialize() - . = ..() - blueprints[1] = new /datum/design/clip_ripley_upgrade() - blueprints[2] = new /datum/design/clip_durand_upgrade() + starting_blueprints = list(/datum/design/clip_ripley_upgrade, /datum/design/clip_durand_upgrade) /obj/item/disk/design_disk/ammo_c9mm - name = "Design Disk - 9mm Ammo" + design_name = "9mm Ammo" desc = "A design disk containing the pattern for a refill box of standard 9mm ammo, used in Commander pistols." - -/obj/item/disk/design_disk/ammo_c9mm/Initialize() - . = ..() - blueprints[1] = new /datum/design/c9mmautolathe() + starting_blueprints = list(/datum/design/c9mmautolathe) + +/obj/item/disk/design_disk/blanks + design_name = "Blank Ammo" + starting_blueprints = list(/datum/design/blank_shell) + + +/obj/item/disk/design_disk/ammo_1911 + design_name = "1911 Magazine" + desc = "A design disk containing the pattern for the classic 1911's seven round .45ACP magazine." + illustration = "ammo" + starting_blueprints = list(/datum/design/colt_1911_magazine) + +//KA modkit design discs +/obj/item/disk/design_disk/modkit_disc + design_name = "KA Mod" + desc = "A design disc containing the design for a unique kinetic accelerator modkit. It's compatible with a research console." + illustration = "accel" + color = "#6F6F6F" + starting_blueprints = list(/datum/design/unique_modkit) + +/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe + design_name = "Offensive Mining Explosion Mod" + starting_blueprints = list(/datum/design/unique_modkit/offensive_turf_aoe) + +/obj/item/disk/design_disk/modkit_disc/rapid_repeater + design_name = "Rapid Repeater Mod" + starting_blueprints = list(/datum/design/unique_modkit/rapid_repeater) + +/obj/item/disk/design_disk/modkit_disc/resonator_blast + design_name = "Resonator Blast Mod" + starting_blueprints = list(/datum/design/unique_modkit/resonator_blast) + +/obj/item/disk/design_disk/modkit_disc/bounty + design_name = "Death Syphon Mod" + starting_blueprints = list(/datum/design/unique_modkit/bounty) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index d1fe33024919..0b679dfcc4bf 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -796,6 +796,14 @@ build_path = /obj/item/ammo_casing/shotgun/beanbag category = list("initial", "Security", "Ammo") +/datum/design/blank_shell + name = "Shotgun Blank" + id = "blank_shell" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 2000) + build_path = /obj/item/ammo_casing/shotgun/blank + category = list("Security", "Ammo") + /datum/design/riot_dart name = "Foam Riot Dart" id = "riot_dart" diff --git a/code/modules/ruins/spaceruin_code/bigderelict1.dm b/code/modules/ruins/spaceruin_code/bigderelict1.dm index 99af3b9efa28..9e2a0957547b 100644 --- a/code/modules/ruins/spaceruin_code/bigderelict1.dm +++ b/code/modules/ruins/spaceruin_code/bigderelict1.dm @@ -6,13 +6,3 @@ /obj/item/paper/crumpled/ruins/bigderelict1/coward icon_state = "scrap_bloodied" default_raw_text = "If anyone finds this, please, don't let my kids know I died a coward.." - -/obj/item/disk/design_disk/ammo_1911 - name = "design disk - 1911 magazine" - desc = "A design disk containing the pattern for the classic 1911's seven round .45ACP magazine." - illustration = "ammo" - -/obj/item/disk/design_disk/ammo_1911/Initialize() - . = ..() - var/datum/design/colt_1911_magazine/M = new - blueprints[1] = M diff --git a/icons/obj/ammo_shotshells.dmi b/icons/obj/ammo_shotshells.dmi index fe37023686bdb306d3b9d05aceb053a4352be841..55b00cdd0b21797c4f752dd63dc42530a6d6b336 100644 GIT binary patch literal 3149 zcmbuCc{J4BAIHCgm`9d)vSewjsYD`8B{M|XvR1@|r+PfLGO}fx8A~d=q`_oMvKwWa zvdoA|8=^6T$&iRJwlOhdX8fk-`RjL1zuzCf-yiqB&-vWt+;cwn_5R$O?Brl2DXt_A z0Dz>8wWW(dJAXE?sGxWGd{qnpK;YQ`D7x zwGon~NqWj;@o@8cr}VGtEpx*I!}@cK-+nW>x!TA~D=M;jghaAvE4(nu?aX_vPyZ|~ zMGqa!bgX8twmf?pNw0bRbm?M#>cz_C$j^DBUX6A>kCf)MGwTWiU`f$M{g_U%#oHm? zFGDL;MdD%IJ0gcA5xUxAzTP+QK{2$Pb^(TXN58I8R9#~f~#d-oB2MJsJ&5Y z_DI{kZ%+EA!<#yz_(?gP0h^@OosBZ(lazr8$t(3VhPj0Og%q&xXtaI-R@mT5iIG{p zxUQiwIcwLWj|36zfKvUai49~KffETk1KEVWw0Iux(G?O40NVi@OY?J)1&p!4VEJh| zvE{@ZnFRThGWOzF6Z_xxc$75R;u5mV5_V)sA%#sc1*@={CMP!!hjPt2(RJECjKoejC}rK&7P~I_Kt*A1$fEaMq>baSF)q2e+yz> zbYOAqv(s)83vAGaf!fXu3>|RUm>B7@OYRGV6WQ*#6F#@x%OZQ=eEiOtX0cwFbw@VL zAXNkwv9v)GH>!j890yp}6dqCVb;+9zHvDY)d`?V6P^L$lD={Gd7{4naN`uu;UeEAo z`#~R^|FFUw&2)kbFW4z+b!;!C2b|b1kZ6+p(x%Z#RRAFE0G#x)fJkIwnKgBtF6v*m z)FCN;1vO7CNrS|(<@VaGGtJfO`lUO$;yKd?(Po|~H1N%> zTaE+{?hW!tVDwzLhll6T%NM?QR{5QlO@B5(4cE$H-DpA;(&rvH)=SOWNE>ran^-0z zeA}sq6_DgenwS*iQCIkb0{ZO|*qoU2c(jNj^g38?e~~}s%4uyHI?b4D#Z#L@WET27 zj$Lve;In48Q8wc^l?PqNIr3mN`H2~zL`ev!R{!4x$2$1RH~0K$n0@P~t2glVk3H>- zEJh%7*TCziwR|iKMqnXpLa*wpW&IrqQ+zQ^7p7*JgsQcb!(r#{@xFnS`_k`QW*Yxg zjSFRpj}nm2Q~+u_eR-k#?(@ER-)TNU@2FU(F%gLTlG~}X@vMr-?C2Ix{#Yz&wZ*!?g#X0q-~cH^5B1A$VA?h8~;l?EE71e zU=9uk)Q*E?kAk@p6H4&Si~gGd>cGT%kHxKdF%D)mLG}2i8X{5|(1$;Rgu3vJi-u|517K_Ba2fG6~!xNJX z_A+_H$%6o_y0G?j?1uS8C)Oc2Fo(#8mFbu|8@#JE;X4^#{U^p|zej#dQpFh4D)7kb zh!dSZ7oO|x2mPAIUqbrp;5bt__)7IuWAj6XG;+RhHAbWA_vm~^>zvWy+9~ado_-dz z(Ba`w=+>EI@8J=2Y}pi1LBqW`&4||4)_!vOLAgmWq-$POeNaBhk)L_GJcXd0lTB=Z zunIno9gy9a!u-YDwVx9XkDf&=KKKMvax?oHqm_TEE8&@Oe5_PZ{DHzc7^FEOy`HN| z#q)@DumFa~`AJO%E!lLjnXfVqnmu4(BC);NG$L;rMao^%zw_3QZ9^W#E&JST%iW=jaY05ibBb!1;UO|6dAK`_5m3;E0igv#cb z!UiNEpKh16p&7A1(A(Y-Ek0Se3%JUQ=0xqE`(!=h9Wt)S@~9-unJJww&@Dwl9gOO= znuj2+(YTax6}!}2?X!b-ZhfQ>f-;nKd0(8zr5tk@*X+*ZsGdX3%c!|>x@nX7HiH!o z(7<$-PVbwCJy3Wc#UkjrdK0Uz7uZZA(!$@M1J}MP`G0wA`Q1~-DC(WWchBW*peN+@AI~bA zcfNHtkXHk+gGI`Il-_x<6mqWL?MQ7Gf|>b>9DoLIpETF1Wra$oSF|r$-tTTpCg;NV zr?$OX8@@*}Ouea=F;49Vl|d|>AuJw6;H~1@zvUBv=^AYE#ds$OE3s0*VVDX>3olfe z$uTFdn+h#^tcw5iK|>)f5)(oFdr~G_Kn+*rKUcF~gYxfn&l?p#_@K{9)Rj?|4lj@! zk`G=^yhwNv^xO7xK`P9Tqysy?f(RYGVl7QVDgabn^ zN_2VmNjA)BPGmyHX;OaKRulhn?}@`E{o!vr*-9YXk)1dMuw*-ngPLZYiwUlhDbak3 z=)5p7KLa$%*Ba=&$ZOV37%i@uw9nb&ORh;9^XtapH zfV5ooO3tETFMWAW)+?+~BY(T%d1?kc8MP< zO6&SCxN&T?&)LJ2^wJ+yuU$&rEvo=Bp%BcdCoz#h=`#cY)HI{e*>9l4UX53QVj-WV zOkVy_U#J!Cy!O3y9h2a-U~~_rlCL}kLoISXD;H5^QT}vfP?|>@)}_D~&s{mYC|d>5 zjb(}YgiaFeX_ZIrpq^?BsYYK~^|Q6MR#Q4rAcbD}`JySuT}$RX?OI2a=qY$fUWUis z_3I@p4y$|6A`7r?Bx_}9x0)KkPU%4Gs$C}Ff=`w)dxEZAmW!*ZD6aUbR7?28(8Gi!+003nIoHYOd0CiAIR7JqRz<>)hupBiS5*j!*JzY*orlFb( zfMOi5KiMli@b2v{*(=PUa`Mcgid#)mCLs()cnNQ_uQ3PSUJ;CRYXGC;`i~p5siIg} zUU-F%nM@AJksvf7ZhsuG+14wUaw@K^Yn{9piVp+ek)}M#t>7w`Nle)2FpQ8TI@2?xxe0y8m z*u3pj~AerE9;Y6n4}&oD(p z^U7Ziv`RIG1;jw7k1a>*NtU3fyB{Rod}g}}4P^Q9yObs<;#;E^| zYkj!vpWpBuz_p>QUf8b00009(Nkl@lK;a7{n?2QCr%>A{03*E%Z#^{}FHT z0cP&J?^470itKeU&rd1^{lF@*Jsv~&!9Vj*T^&LLI@#* z5JCtc#E<1v*C(X2e*Ud#-tc!I=L>CN_I?%@ELp1j|WKWE@J%k<<4RL2U=Fw>Lw`(d+z zGk?rU8TPp*Fc<8t|cx?SKy`R6cvB0aELr9Rg#1J~;n8nCND{dT)S z1H;k=E?1lY(}x>Qz|5c?4d5lj>TPPkdMgGr9FWzCU}Y@5v3kde-9s^kf2%3*p0M30C@xCG|~4DVoHP6IZ< zB@k~w)+kP3jsWZ41nfSIP&d2_kbeZC0n$FZ4fNxx`+uDetX)su@9TUZb-%Ck0U?AC zLI@#*5UF5q-_L5985wCm+)ii;X8}Rn? ysd4x7sd2Z%sd4x7sd@SY)Xxhcgb?C?_zM)TKH5G#YncE5002ovPDHLkU;%=6-*mYE From 833285300c5ad5867789ab46d5cc2f65ba485602 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 10:44:41 -0500 Subject: [PATCH 023/125] Automatic changelog generation for PR #3352 [ci skip] --- html/changelogs/AutoChangeLog-pr-3352.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3352.yml diff --git a/html/changelogs/AutoChangeLog-pr-3352.yml b/html/changelogs/AutoChangeLog-pr-3352.yml new file mode 100644 index 000000000000..266106d74f64 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3352.yml @@ -0,0 +1,5 @@ +author: FalloutFalcon +changes: + - {rscadd: Added new blank shells for training drills!} + - {refactor: Minor refactor of design disks to reduce repeated code} +delete-after: true From eb41937929ecefa9ea723a2d129ee9b208fa9183 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:58:42 -0500 Subject: [PATCH 024/125] Partial port of tg points of intrest and improved orbit menu (#3320) ## About The Pull Request Squash of #3219 rebased ontop of a revert of #3218 cause i fucked up the commit history - [x] Fix admin menu - [x] Fix auto-observe ## Why It's Good For The Game This massively improves the readability of the orbit menu. You can now add custom points of interest pretty easily as it uses an element now. ## Changelog :cl: add: You can now see ships in the orbit menu and its alot prettier! code: ported tg points of interest and a much improved orbit menu /:cl: --------- Signed-off-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- _maps/map_files/generic/CentCom.dmm | 12 +- code/__DEFINES/dcs/signals/signals.dm | 6 + code/__HELPERS/_lists.dm | 36 +++ code/__HELPERS/roundend.dm | 2 +- code/__HELPERS/unsorted.dm | 61 +--- code/_globalvars/lists/objects.dm | 2 - .../subsystem/points_of_interest.dm | 227 +++++++++++++++ code/datums/elements/point_of_interest.dm | 22 ++ code/datums/spawners_menu.dm | 2 +- code/game/atom/atom_orbit.dm | 33 +++ code/game/atoms.dm | 5 - code/game/gamemodes/wizard/wizard.dm | 2 +- code/game/mecha/mecha.dm | 4 +- code/game/objects/items/eightball.dm | 4 +- code/modules/admin/player_panel.dm | 12 +- code/modules/admin/verbs/adminjump.dm | 2 +- code/modules/antagonists/cult/runes.dm | 6 +- .../nukeop/equipment/nuclearbomb.dm | 8 +- .../nukeop/equipment/pinpointer.dm | 2 +- code/modules/antagonists/nukeop/nukeop.dm | 2 +- code/modules/awaymissions/capture_the_flag.dm | 4 +- code/modules/awaymissions/corpse.dm | 4 +- code/modules/cargo/centcom_podlauncher.dm | 2 +- code/modules/events/immovable_rod.dm | 4 +- code/modules/events/wizard/greentext.dm | 4 +- .../modules/mob/dead/new_player/new_player.dm | 1 + code/modules/mob/dead/observer/observer.dm | 21 +- code/modules/mob/dead/observer/orbit.dm | 271 ++++++++++++++---- code/modules/mob/living/living.dm | 1 + .../friendly/drone/drones_as_items.dm | 5 - .../hostile/megafauna/colossus.dm | 4 +- code/modules/mob/mob.dm | 2 +- .../file_system/programs/radar.dm | 6 +- code/modules/overmap/helm.dm | 3 + code/modules/power/singularity/singularity.dm | 4 +- code/modules/power/supermatter/supermatter.dm | 4 +- code/modules/power/tesla/energy_ball.dm | 2 +- code/modules/projectiles/guns/energy/pulse.dm | 4 +- code/modules/spells/spell_types/lichdom.dm | 4 +- shiptest.dme | 3 + tgui/packages/tgui/interfaces/Orbit.js | 218 -------------- .../tgui/interfaces/Orbit/OrbitContent.tsx | 98 +++++++ .../tgui/interfaces/Orbit/OrbitItem.tsx | 50 ++++ .../tgui/interfaces/Orbit/OrbitSection.tsx | 65 +++++ .../tgui/interfaces/Orbit/OrbitTooltip.tsx | 57 ++++ .../tgui/interfaces/Orbit/constants.ts | 8 + .../packages/tgui/interfaces/Orbit/helpers.ts | 119 ++++++++ tgui/packages/tgui/interfaces/Orbit/index.tsx | 86 ++++++ tgui/packages/tgui/interfaces/Orbit/types.ts | 38 +++ 49 files changed, 1135 insertions(+), 407 deletions(-) create mode 100644 code/controllers/subsystem/points_of_interest.dm create mode 100644 code/datums/elements/point_of_interest.dm create mode 100644 code/game/atom/atom_orbit.dm delete mode 100644 tgui/packages/tgui/interfaces/Orbit.js create mode 100644 tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/constants.ts create mode 100644 tgui/packages/tgui/interfaces/Orbit/helpers.ts create mode 100644 tgui/packages/tgui/interfaces/Orbit/index.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/types.ts diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index e25bceb1dd44..405950bfe633 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -26,7 +26,7 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "afh" = ( -/obj/machinery/computer/helm{ +/obj/machinery/computer{ dir = 4 }, /obj/effect/turf_decal/industrial/warning{ @@ -1356,7 +1356,7 @@ /turf/open/floor/plasteel, /area/wizard_station) "ara" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /turf/open/floor/plasteel, /area/wizard_station) "ard" = ( @@ -3939,7 +3939,7 @@ /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) "aLP" = ( -/obj/machinery/computer/helm{ +/obj/machinery/computer{ dir = 1 }, /turf/open/floor/mineral/titanium/blue, @@ -8827,7 +8827,7 @@ }, /area/centcom) "gFU" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/industrial/warning{ dir = 6 }, @@ -12230,7 +12230,7 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "nEL" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/industrial/warning{ dir = 10 }, @@ -15778,7 +15778,7 @@ /turf/open/floor/plasteel/dark, /area/ctf) "vcL" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/corner/transparent/bar, /obj/effect/turf_decal/corner/transparent/bar{ dir = 1 diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index 38f7d8692853..f3295b737904 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -735,3 +735,9 @@ ///sent when the access on an id is changed/updated, ensures wallets get updated once ids generate there access #define COSMIG_ACCESS_UPDATED "acces_updated" + +// Point of interest signals +/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi) +#define COMSIG_ADDED_POINT_OF_INTEREST "added_point_of_interest" +/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi) +#define COMSIG_REMOVED_POINT_OF_INTEREST "removed_point_of_interest" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 435b83e29797..b231b4e944c9 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -87,6 +87,42 @@ };\ } while(FALSE) + +/** + * Custom binary search sorted insert utilising comparison procs instead of vars. + * INPUT: Object to be inserted + * LIST: List to insert object into + * TYPECONT: The typepath of the contents of the list + * COMPARE: The object to compare against, usualy the same as INPUT + * COMPARISON: The plaintext name of a proc on INPUT that takes a single argument to accept a single element from LIST and returns a positive, negative or zero number to perform a comparison. + * COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE. + */ +#define BINARY_INSERT_PROC_COMPARE(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ + do {\ + var/list/__BIN_LIST = LIST;\ + var/__BIN_CTTL = length(__BIN_LIST);\ + if(!__BIN_CTTL) {\ + __BIN_LIST += INPUT;\ + } else {\ + var/__BIN_LEFT = 1;\ + var/__BIN_RIGHT = __BIN_CTTL;\ + var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + var ##TYPECONT/__BIN_ITEM;\ + while(__BIN_LEFT < __BIN_RIGHT) {\ + __BIN_ITEM = COMPTYPE;\ + if(__BIN_ITEM.##COMPARISON(COMPARE) <= 0) {\ + __BIN_LEFT = __BIN_MID + 1;\ + } else {\ + __BIN_RIGHT = __BIN_MID;\ + };\ + __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + };\ + __BIN_ITEM = COMPTYPE;\ + __BIN_MID = __BIN_ITEM.##COMPARISON(COMPARE) > 0 ? __BIN_MID : __BIN_MID + 1;\ + __BIN_LIST.Insert(__BIN_MID, INPUT);\ + };\ + } while(FALSE) + //Returns a list in plain english as a string /proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) var/total = length(input) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 97740a79537e..01fd964120ea 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -116,7 +116,7 @@ SSblackbox.record_feedback("associative", "antagonists", 1, antag_info) /datum/controller/subsystem/ticker/proc/record_nuke_disk_location() - var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/N = locate() in SSpoints_of_interest.other_points_of_interest if(N) var/list/data = list() var/turf/T = get_turf(N) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 36764c6bae9f..d831296dbb62 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -294,65 +294,6 @@ Turf and target are separate in case you want to teleport some distance from a t /proc/ionnum() return "[pick("!","@","#","$","%","^","&")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")]" -//Returns a list of all items of interest with their name -/proc/getpois(mobs_only = FALSE, skip_mindless = FALSE, specify_dead_role = TRUE) - var/list/mobs = sortmobs() - var/list/namecounts = list() - var/list/pois = list() - for(var/mob/M in mobs) - if(skip_mindless && (!M.mind && !M.ckey)) - if(!isbot(M) && !iscameramob(M) && !ismegafauna(M)) - continue - if(M.client && M.client.holder && M.client.holder.fakekey) //stealthmins - continue - var/name = avoid_assoc_duplicate_keys(M.name, namecounts) + M.get_realname_string() - - if(M.stat == DEAD && specify_dead_role) - if(isobserver(M)) - name += " \[ghost\]" - else - name += " \[dead\]" - pois[name] = M - - if(!mobs_only) - for(var/atom/A in GLOB.poi_list) - if(!A || !A.loc) - continue - pois[avoid_assoc_duplicate_keys(A.name, namecounts)] = A - - return pois -//Orders mobs by type then by name -/proc/sortmobs() - var/list/moblist = list() - var/list/sortmob = sortNames(GLOB.mob_list) - for(var/mob/living/silicon/ai/M in sortmob) - moblist.Add(M) - for(var/mob/camera/M in sortmob) - moblist.Add(M) - for(var/mob/living/silicon/pai/M in sortmob) - moblist.Add(M) - for(var/mob/living/silicon/robot/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/human/M in sortmob) - moblist.Add(M) - for(var/mob/living/brain/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/alien/M in sortmob) - moblist.Add(M) - for(var/mob/dead/observer/M in sortmob) - moblist.Add(M) - for(var/mob/dead/new_player/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/monkey/M in sortmob) - moblist.Add(M) - for(var/mob/living/simple_animal/slime/M in sortmob) - moblist.Add(M) - for(var/mob/living/simple_animal/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/true_devil/M in sortmob) - moblist.Add(M) - return moblist - // Format a power value in W, kW, MW, or GW. /proc/DisplayPower(powerused) if(powerused < 1000) //Less than a kW @@ -384,7 +325,7 @@ Turf and target are separate in case you want to teleport some distance from a t /proc/get_mob_by_ckey(key) if(!key) return - var/list/mobs = sortmobs() + var/list/mobs = SSpoints_of_interest.get_mob_pois() for(var/mob/M in mobs) if(M.ckey == key) return M diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 7ee53ec1f37b..6d08f1d1bceb 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -46,8 +46,6 @@ GLOBAL_LIST_EMPTY(apcs_list) GLOBAL_LIST_EMPTY(tracked_implants) /// List of implants the prisoner console can track and send inject commands too GLOBAL_LIST_EMPTY(tracked_chem_implants) -/// List of points of interest for observe/follow -GLOBAL_LIST_EMPTY(poi_list) /// List of all pinpointers. Used to change stuff they are pointing to all at once. GLOBAL_LIST_EMPTY(pinpointer_list) /// List of all zombie_infection organs, for any mass "animation" diff --git a/code/controllers/subsystem/points_of_interest.dm b/code/controllers/subsystem/points_of_interest.dm new file mode 100644 index 000000000000..6de327bc8666 --- /dev/null +++ b/code/controllers/subsystem/points_of_interest.dm @@ -0,0 +1,227 @@ +/// Subsystem for managing all POIs. +SUBSYSTEM_DEF(points_of_interest) + name = "Points of Interest" + + flags = SS_NO_FIRE | SS_NO_INIT + + /// List of mob POIs. This list is automatically sorted. + var/list/datum/point_of_interest/mob_poi/mob_points_of_interest = list() + /// List of non-mob POIs. This list is automatically sorted. + var/list/datum/point_of_interest/other_points_of_interest = list() + /// List of all value:POI datums by their key:target refs. + var/list/datum/point_of_interest/points_of_interest_by_target_ref = list() + +/** + * Turns new_poi into a new point of interest by adding the /datum/element/point_of_interest element to it. + */ +/datum/controller/subsystem/points_of_interest/proc/make_point_of_interest(atom/new_poi) + new_poi.AddElement(/datum/element/point_of_interest) + +/** + * Stops old_poi from being a point of interest by removing the /datum/element/point_of_interest element from it. + */ +/datum/controller/subsystem/points_of_interest/proc/remove_point_of_interest(atom/old_poi) + old_poi.RemoveElement(/datum/element/point_of_interest) + +/** + * Called by [/datum/element/point_of_interest] when it gets removed from old_poi. + */ +/datum/controller/subsystem/points_of_interest/proc/on_poi_element_added(atom/new_poi) + var/datum/point_of_interest/new_poi_datum + if(ismob(new_poi)) + new_poi_datum = new /datum/point_of_interest/mob_poi(new_poi) + BINARY_INSERT_PROC_COMPARE(new_poi_datum, mob_points_of_interest, /datum/point_of_interest/mob_poi, new_poi_datum, compare_to, COMPARE_KEY) + points_of_interest_by_target_ref[REF(new_poi)] = new_poi_datum + else + new_poi_datum = new /datum/point_of_interest(new_poi) + BINARY_INSERT_PROC_COMPARE(new_poi_datum, other_points_of_interest, /datum/point_of_interest, new_poi_datum, compare_to, COMPARE_KEY) + points_of_interest_by_target_ref[REF(new_poi)] = new_poi_datum + + + SEND_SIGNAL(src, COMSIG_ADDED_POINT_OF_INTEREST, new_poi) + +/** + * Called by [/datum/element/point_of_interest] when it gets removed from old_poi. + */ +/datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed(atom/old_poi) + var/poi_ref = REF(old_poi) + var/datum/point_of_interest/poi_to_remove = points_of_interest_by_target_ref[poi_ref] + + if(!poi_to_remove) + return + + if(ismob(old_poi)) + mob_points_of_interest -= poi_to_remove + else + other_points_of_interest -= poi_to_remove + + points_of_interest_by_target_ref -= poi_ref + + poi_to_remove.target = null + + SEND_SIGNAL(src, COMSIG_REMOVED_POINT_OF_INTEREST, old_poi) + +/** + * If there is a valid POI for a given reference, it returns that POI's associated atom. Otherwise, it returns null. + */ +/datum/controller/subsystem/points_of_interest/proc/get_poi_atom_by_ref(reference) + return points_of_interest_by_target_ref[reference]?.target + +/** + * Returns a list of mob POIs with names as keys and mobs as values. + * + * If multiple POIs have the same name, then avoid_assoc_duplicate_keys is used alongside used_name_list to + * tag them as Mob Name (1), Mob Name (2), Mob Name (3) etc. + * + * Arguments: + * * poi_validation_override - [OPTIONAL] Callback to a proc that takes a single argument for the POI and returns TRUE if this POI should be included. Overrides standard POI validation. + * * append_dead_role - [OPTIONAL] If TRUE, adds a ghost tag to the end of observer names and a dead tag to the end of any other mob which is not alive. + */ +/datum/controller/subsystem/points_of_interest/proc/get_mob_pois(datum/callback/poi_validation_override = null, append_dead_role = TRUE) + var/list/pois = list() + var/list/used_name_list = list() + + for(var/datum/point_of_interest/mob_poi/mob_poi as anything in mob_points_of_interest) + if(poi_validation_override) + if(!poi_validation_override.Invoke(mob_poi)) + continue + else if(!mob_poi.validate()) + continue + + var/mob/target_mob = mob_poi.target + var/name = avoid_assoc_duplicate_keys(target_mob.name, used_name_list) + target_mob.get_realname_string() + + // Add the ghost/dead tag to the end of dead mob POIs. + if(append_dead_role && target_mob.stat == DEAD) + if(isobserver(target_mob)) + name += " \[ghost\]" + else + name += " \[dead\]" + + pois[name] = target_mob + + return pois + +/** + * Returns a list of non-mob POIs with names as keys and atoms as values. + * + * If multiple POIs have the same name, then avoid_assoc_duplicate_keys is used alongside used_name_list to + * tag them as Object Name (1), Object Name (2), Object Name (3) etc. + * + * Arguments: + * * poi_validation_override - [OPTIONAL] Callback to a proc that takes a single argument for the POI and returns TRUE if this POI should be included. Overrides standard POI validation. + */ +/datum/controller/subsystem/points_of_interest/proc/get_other_pois(datum/callback/poi_validation_override = null) + var/list/pois = list() + var/list/used_name_list = list() + + for(var/datum/point_of_interest/other_poi as anything in other_points_of_interest) + if(poi_validation_override) + if(!poi_validation_override.Invoke(other_poi)) + continue + else if(!other_poi.validate()) + continue + + var/atom/target_poi = other_poi.target + + pois[avoid_assoc_duplicate_keys(target_poi.name, used_name_list)] = target_poi + + return pois + +/// Returns TRUE if potential_poi has an associated poi_datum that validates. +/datum/controller/subsystem/points_of_interest/proc/is_valid_poi(atom/potential_poi, datum/callback/poi_validation_override = null) + var/datum/point_of_interest/poi_datum = points_of_interest_by_target_ref[REF(potential_poi)] + + if(!poi_datum) + return FALSE + + if(poi_validation_override) + return poi_validation_override.Invoke(poi_datum) + + return poi_datum.validate() + +/// Simple helper datum for points of interest. +/datum/point_of_interest + /// The specific point of interest this datum references. This won't hard del as the POI element will be removed from the target when it qdels, which will clear this reference. + var/atom/target + /// The type of POI this datum references. + var/poi_type = /atom + +/datum/point_of_interest/New(poi_target) + if(!istype(poi_target, poi_type)) + CRASH("Incorrect target type provided to /datum/point_of_interest/New: Expected \[[poi_type]\]") + + target = poi_target + +/// Validates the POI. Returns TRUE if the POI has valid state, returns FALSE if the POI has invalid state. +/datum/point_of_interest/proc/validate() + // In nullspace, invalid as a POI. + if(!target.loc) + return FALSE + + return TRUE + +/// Comparison proc used to sort POIs. Override to implement logic used doing binary sort insertions. +/datum/point_of_interest/proc/compare_to(datum/point_of_interest/rhs) + return cmp_name_asc(target, rhs.target) + +/datum/point_of_interest/mob_poi + poi_type = /mob + +/// Validation for mobs is expanded to invalidate stealthmins and /mob/dead/new_player as POIs. +/datum/point_of_interest/mob_poi/validate() + . = ..() + + if(!.) + return + + var/mob/poi_mob = target + + // Stealthmin, invalid as a POI. + if(poi_mob.client?.holder?.fakekey) + return FALSE + + /* + // POI is a /mob/dead/new_player, players in the lobby are invalid as POIs. + if(isnewplayer(poi_mob)) + return FALSE + */ + + return TRUE + +/// Mob POIs are sorted by a simple priority list depending on their type. When their type priority is identical, they're sub-sorted by name. +/datum/point_of_interest/mob_poi/compare_to(datum/point_of_interest/mob_poi/rhs) + var/sort_difference = get_type_sort_priority() - rhs.get_type_sort_priority() + + // If they're equal in priority, call parent to sort by name. + if(sort_difference == 0) + return ..() + // Else sort by priority. + else + return sort_difference + +/// Priority list broadly stolen from /proc/sortmobs(). Lower numbers are higher priorities when sorted and appear closer to the top or start of lists. +/datum/point_of_interest/mob_poi/proc/get_type_sort_priority() + if(isAI(target)) + return 0 + if(iscameramob(target)) + return 1 + if(ispAI(target)) + return 2 + if(iscyborg(target)) + return 3 + if(ishuman(target)) + return 4 + if(isbrain(target)) + return 5 + if(isalien(target)) + return 6 + if(isobserver(target)) + return 7 + if(isnewplayer(target)) + return 8 + if(isslime(target)) + return 9 + if(isanimal(target)) + return 10 + return 11 diff --git a/code/datums/elements/point_of_interest.dm b/code/datums/elements/point_of_interest.dm new file mode 100644 index 000000000000..d64ee5466ace --- /dev/null +++ b/code/datums/elements/point_of_interest.dm @@ -0,0 +1,22 @@ +/// Designates the atom as a "point of interest", meaning it can be directly orbited +/datum/element/point_of_interest + element_flags = ELEMENT_DETACH + +/datum/element/point_of_interest/Attach(datum/target) + if (!isatom(target)) + return ELEMENT_INCOMPATIBLE + + /* + // New players are abstract mobs assigned to people who are still in the lobby screen. + // As a result, they are not a valid POI and should never be a valid POI. If they + // somehow get this element attached to them, there's something we need to debug. + if(isnewplayer(target)) + return ELEMENT_INCOMPATIBLE + */ + + SSpoints_of_interest.on_poi_element_added(target) + return ..() + +/datum/element/point_of_interest/Detach(datum/target) + SSpoints_of_interest.on_poi_element_removed(target) + return ..() diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm index 9e7e4b334ddc..01709a00c1a1 100644 --- a/code/datums/spawners_menu.dm +++ b/code/datums/spawners_menu.dm @@ -53,7 +53,7 @@ if(!spawnerlist.len) return var/obj/effect/mob_spawn/MS = pick(spawnerlist) - if(!istype(MS) || !(MS in GLOB.poi_list)) + if(!istype(MS) || !(MS in SSpoints_of_interest.other_points_of_interest)) return switch(action) if("jump") diff --git a/code/game/atom/atom_orbit.dm b/code/game/atom/atom_orbit.dm new file mode 100644 index 000000000000..2294293bd8b7 --- /dev/null +++ b/code/game/atom/atom_orbit.dm @@ -0,0 +1,33 @@ +/atom + ///Reference to atom being orbited + var/atom/orbit_target + ///The orbiter component, if there's anything orbiting this atom + var/datum/component/orbiter/orbiters + +/** + * Recursive getter method to return a list of all ghosts orbitting this atom + * + * This will work fine without manually passing arguments. + * * processed - The list of atoms we've already convered + * * source - Is this the atom for who we're counting up all the orbiters? + * * ignored_stealthed_admins - If TRUE, don't count admins who are stealthmoded and orbiting this + */ +/atom/proc/get_all_orbiters(list/processed, source = TRUE, ignore_stealthed_admins = TRUE) + var/list/output = list() + if(!processed) + processed = list() + else if(src in processed) + return output + + if(!source) + output += src + + processed += src + for(var/atom/atom_orbiter as anything in orbiters?.orbiters) + output += atom_orbiter.get_all_orbiters(processed, source = FALSE) + return output + +/mob/get_all_orbiters(list/processed, source = TRUE, ignore_stealthed_admins = TRUE) + if(!source && ignore_stealthed_admins && client?.holder?.fakekey) + return list() + return ..() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index f52b9bdace9e..b96e8a53c824 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -75,9 +75,6 @@ ///Economy cost of item in premium vendor var/custom_premium_price - //List of datums orbiting this atom - var/datum/component/orbiter/orbiters - /// Radiation insulation types var/rad_insulation = RAD_NO_INSULATION @@ -154,8 +151,6 @@ /// The current connector overlay appearance. Saved so that it can be cut when necessary. var/connector_overlay - ///Reference to atom being orbited - var/atom/orbit_target ///Default X pixel offset var/base_pixel_x ///Default Y pixel offset diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index c3895f302279..83d7a32d1fd9 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -56,7 +56,7 @@ if(isliving(wizard.current) && wizard.current.stat!=DEAD) return FALSE - for(var/obj/item/phylactery/P in GLOB.poi_list) //TODO : IsProperlyDead() + for(var/obj/item/phylactery/P in SSpoints_of_interest.other_points_of_interest) //TODO : IsProperlyDead() if(P.mind && P.mind.has_antag_datum(/datum/antagonist/wizard)) return FALSE diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index b903564c88d6..a1b46fd2fbfa 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -137,7 +137,7 @@ add_scanmod() add_capacitor() START_PROCESSING(SSobj, src) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) log_message("[src.name] created.", LOG_MECHA) GLOB.mechas_list += src //global mech list prepare_huds() @@ -176,7 +176,7 @@ AI.gib() //No wreck, no AI to recover AI = null STOP_PROCESSING(SSobj, src) - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) equipment.Cut() for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 1396521aaf9a..b721393e85ed 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -136,10 +136,10 @@ become_hearing_sensitive(ROUNDSTART_TRAIT) for (var/answer in haunted_answers) votes[answer] = 0 - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/item/toy/eightball/haunted/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/toy/eightball/haunted/MakeHaunted() diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index cf834c9f9c5d..e5888f8088df 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -216,9 +216,10 @@ "} - var/list/mobs = sortmobs() + var/list/mobs = SSpoints_of_interest.get_mob_pois() var/i = 1 - for(var/mob/M in mobs) + for(var/mob_name in mobs) + var/mob/M = mobs[mob_name] if(M.ckey) var/color = "#e6e6e6" @@ -254,12 +255,7 @@ M_job = "Silicon-based" else if(isanimal(M)) //simple animals - if(iscorgi(M)) - M_job = "Corgi" - else if(isslime(M)) - M_job = "slime" - else - M_job = "Animal" + M_job = "Animal" else M_job = "Living" diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 9b84224317a9..708448cf52cd 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -140,7 +140,7 @@ usr.forceMove(M.loc) SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/sendmob(mob/M in sortmobs()) +/client/proc/sendmob(mob/M in SSpoints_of_interest.get_mob_pois()) set category = "Admin.Game" set name = "Send Mob" if(!src.holder) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index b0fb446405c2..3382672071cc 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -450,10 +450,10 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/narsie/Initialize(mapload, set_keyword) . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/effect/rune/narsie/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/effect/rune/narsie/conceal() //can't hide this, and you wouldn't want to @@ -469,7 +469,7 @@ structure_check() searches for nearby cultist structures required for the invoca if(!(place in summon_objective.summon_spots)) to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(summon_objective.summon_spots)]!") return - if(locate(/obj/singularity/narsie) in GLOB.poi_list) + if(locate(/obj/singularity/narsie) in SSpoints_of_interest.other_points_of_interest) for(var/M in invokers) to_chat(M, "Nar'Sie is already on this plane!") log_game("Nar'Sie rune failed - already summoned") diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 26d7321eb813..9c65e50130cf 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -38,7 +38,7 @@ core = new /obj/item/nuke_core(src) STOP_PROCESSING(SSobj, core) update_appearance() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) previous_level = get_security_level() /obj/machinery/nuclearbomb/Destroy() @@ -46,7 +46,7 @@ if(!exploding) // If we're not exploding, set the alert level back to normal set_safety() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) GLOB.nuke_list -= src QDEL_NULL(countdown) QDEL_NULL(core) @@ -611,7 +611,7 @@ This is here to make the tiles around the station mininuke change when it's arme AddElement(/datum/element/bed_tuckable, 6, -6, 0) if(!fake) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) last_disk_move = world.time START_PROCESSING(SSobj, src) @@ -661,7 +661,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/Destroy(force=FALSE) // respawning is handled in /obj/Destroy() if(force) - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/disk/nuclear/fake diff --git a/code/modules/antagonists/nukeop/equipment/pinpointer.dm b/code/modules/antagonists/nukeop/equipment/pinpointer.dm index b316e60c5e14..c1f9ffa37428 100644 --- a/code/modules/antagonists/nukeop/equipment/pinpointer.dm +++ b/code/modules/antagonists/nukeop/equipment/pinpointer.dm @@ -32,7 +32,7 @@ target = null switch(mode) if(TRACK_NUKE_DISK) - var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/N = locate() in SSpoints_of_interest.other_points_of_interest target = N if(TRACK_MALF_AI) for(var/V in GLOB.ai_list) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 9f807d9521e7..f51c64142450 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -345,7 +345,7 @@ /datum/team/nuclear/antag_listing_entry() var/disk_report = "Nuclear Disk(s)
" disk_report += "
" - for(var/obj/item/disk/nuclear/N in GLOB.poi_list) + for(var/obj/item/disk/nuclear/N in SSpoints_of_interest.other_points_of_interest) disk_report += "
[N.name], " var/atom/disk_loc = N.loc while(!isturf(disk_loc)) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 42d7643fb926..5fc667c4db4a 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -195,10 +195,10 @@ /obj/machinery/capture_the_flag/Initialize() . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/machinery/capture_the_flag/Destroy() - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) return ..() /obj/machinery/capture_the_flag/process() diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0bf0b74c715a..26361b99cfc6 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -61,11 +61,11 @@ if(instant || (roundstart && (mapload || (SSticker && SSticker.current_state > GAME_STATE_SETTING_UP)))) INVOKE_ASYNC(src, PROC_REF(create)) else if(ghost_usable) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) LAZYADD(GLOB.mob_spawners[name], src) /obj/effect/mob_spawn/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) var/list/spawners = GLOB.mob_spawners[name] LAZYREMOVE(spawners, src) if(!LAZYLEN(spawners)) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index dfec659e1644..0b302925e10e 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -383,7 +383,7 @@ if (specificTarget) specificTarget = null return - var/list/mobs = getpois()//code stolen from observer.dm + var/list/mobs = SSpoints_of_interest.get_mob_pois() var/inputTarget = input("Select a mob! (Smiting does this automatically)", "Target", null, null) as null|anything in mobs if (isnull(inputTarget)) return diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index adde1124935f..4ba2d878ad46 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -62,7 +62,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 z_original = z destination = end special_target = aimed_at - GLOB.poi_list += src + SSpoints_of_interest.make_point_of_interest(src) var/special_target_valid = FALSE if(special_target) @@ -81,7 +81,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 ghost.ManualFollow(src) /obj/effect/immovablerod/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/effect/immovablerod/Moved() diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index 890bbc0f1f2b..8e4baab893fc 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -34,7 +34,7 @@ /obj/item/greentext/Initialize(mapload) . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) roundend_callback = CALLBACK(src, PROC_REF(check_winner)) SSticker.OnRoundend(roundend_callback) @@ -83,7 +83,7 @@ if(!(resistance_flags & ON_FIRE) && !force) return QDEL_HINT_LETMELIVE - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) LAZYREMOVE(SSticker.round_end_events, roundend_callback) roundend_callback = null //This ought to free the callback datum, and prevent us from harddeling for(var/i in GLOB.player_list) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 8fbf9c32a38e..2dbbd9d4b65b 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -35,6 +35,7 @@ . = ..() GLOB.new_player_list += src + SSpoints_of_interest.make_point_of_interest(src) /mob/dead/new_player/Destroy() GLOB.new_player_list -= src diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index c15c4a1af835..0fcfa5c13940 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -62,6 +62,9 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/datum/orbit_menu/orbit_menu var/datum/spawners_menu/spawners_menu + // The POI we're orbiting (orbit menu) + var/orbiting_ref + /mob/dead/observer/Initialize() set_invisibility(GLOB.observer_default_invisibility) @@ -142,6 +145,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) . = ..() + SSpoints_of_interest.make_point_of_interest(src) + grant_all_languages() show_data_huds() data_huds_on = 1 @@ -499,7 +504,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/list/dest = list() //List of possible destinations (mobs) var/target = null //Chosen target. - dest += getpois(mobs_only = TRUE) //Fill list, prompt user with list + dest += SSpoints_of_interest.get_mob_pois() target = input("Please, select a player!", "Jump to Mob", null, null) as null|anything in dest if (!target)//Make sure we actually have a target @@ -839,20 +844,24 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/reset_perspective(atom/A) if(client) if(ismob(client.eye) && (client.eye != src)) - var/mob/target = client.eye - observetarget = null - if(target.observers) - LAZYREMOVE(target.observers, src) + cleanup_observe() if(..()) if(hud_used) client.screen = list() hud_used.show_hud(hud_used.hud_version) +/mob/dead/observer/proc/cleanup_observe() + var/mob/target = client.eye + observetarget = null + client?.perspective = initial(client.perspective) + if(target.observers) + LAZYREMOVE(target.observers, src) + /mob/dead/observer/verb/observe() set name = "Observe" set category = "Ghost" - var/list/creatures = getpois() + var/list/creatures = SSpoints_of_interest.get_mob_pois() reset_perspective(null) diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index 86d54577538c..051faa5bedac 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -1,6 +1,9 @@ /datum/orbit_menu + ///mobs worth orbiting. Because spaghetti, all mobs have the point of interest, but only some are allowed to actually show up. + ///this obviously should be changed in the future, so we only add mobs as POI if they actually are interesting, and we don't use + ///a typecache. + var/static/list/mob_allowed_typecache var/mob/dead/observer/owner - var/auto_observe = FALSE /datum/orbit_menu/New(mob/dead/observer/new_owner) if(!istype(new_owner)) @@ -23,87 +26,243 @@ switch(action) if ("orbit") var/ref = params["ref"] - var/atom/movable/poi = (locate(ref) in GLOB.mob_list) || (locate(ref) in GLOB.poi_list) - if (poi == null) - . = TRUE - return + var/auto_observe = params["auto_observe"] + var/atom/movable/poi = SSpoints_of_interest.get_poi_atom_by_ref(ref) + + if((ismob(poi) && !SSpoints_of_interest.is_valid_poi(poi, CALLBACK(src, PROC_REF(validate_mob_poi)))) \ + || !SSpoints_of_interest.is_valid_poi(poi) + ) + to_chat(usr, span_notice("That point of interest is no longer valid.")) + return TRUE + + var/mob/dead/observer/user = usr owner.ManualFollow(poi) owner.reset_perspective(null) + user.orbiting_ref = ref if (auto_observe) owner.do_observe(poi) . = TRUE if ("refresh") update_static_data(owner, ui) . = TRUE - if ("toggle_observe") - auto_observe = !auto_observe - if (auto_observe && owner.orbit_target) - owner.do_observe(owner.orbit_target) - else - owner.reset_perspective(null) + /datum/orbit_menu/ui_data(mob/user) var/list/data = list() - data["auto_observe"] = auto_observe + + if(isobserver(user)) + data["orbiting"] = get_currently_orbiting(user) + return data /datum/orbit_menu/ui_static_data(mob/user) - var/list/data = list() + var/list/new_mob_pois = SSpoints_of_interest.get_mob_pois(CALLBACK(src, PROC_REF(validate_mob_poi)), append_dead_role = FALSE) + var/list/new_other_pois = SSpoints_of_interest.get_other_pois() var/list/alive = list() var/list/antagonists = list() + var/list/critical = list() var/list/dead = list() var/list/ghosts = list() var/list/misc = list() var/list/npcs = list() + var/list/ships = list() - var/list/pois = getpois(skip_mindless = TRUE, specify_dead_role = FALSE) - for (var/name in pois) + for(var/name in new_mob_pois) var/list/serialized = list() - serialized["name"] = name - - var/poi = pois[name] - - serialized["ref"] = REF(poi) - - var/mob/M = poi - if (istype(M)) - if (isobserver(M)) - ghosts += list(serialized) - else if (M.stat == DEAD) - dead += list(serialized) - else if (M.mind == null) - npcs += list(serialized) - else - var/number_of_orbiters = M.orbiters?.orbiters?.len - if (number_of_orbiters) - serialized["orbiters"] = number_of_orbiters - - var/datum/mind/mind = M.mind - var/was_antagonist = FALSE - - for (var/_A in mind.antag_datums) - var/datum/antagonist/A = _A - if (A.show_to_ghosts) - was_antagonist = TRUE - serialized["antag"] = A.name - antagonists += list(serialized) - break - - if (!was_antagonist) - alive += list(serialized) + var/mob/mob_poi = new_mob_pois[name] + var/number_of_orbiters = length(mob_poi.get_all_orbiters()) + + if(isnewplayer(mob_poi)) + continue + + serialized["ref"] = REF(mob_poi) + serialized["full_name"] = mob_poi.name + serialized["job"] = mob_poi.job + if(number_of_orbiters) + serialized["orbiters"] = number_of_orbiters + + if(isobserver(mob_poi)) + ghosts += list(serialized) + continue + + if(mob_poi.stat == DEAD) + dead += list(serialized) + continue + + if(isnull(mob_poi.mind)) + if(isliving(mob_poi)) + var/mob/living/npc = mob_poi + serialized["health"] = FLOOR((npc.health / npc.maxHealth * 100), 1) + + npcs += list(serialized) + continue + + serialized["client"] = !!mob_poi.client + serialized["name"] = mob_poi.real_name + + if(isliving(mob_poi)) + serialized += get_living_data(mob_poi) + + var/list/antag_data = get_antag_data(mob_poi.mind) + if(length(antag_data)) + serialized += antag_data + antagonists += list(serialized) + continue + + alive += list(serialized) + + for(var/name in new_other_pois) + var/atom/atom_poi = new_other_pois[name] + + var/list/other_data = get_misc_data(atom_poi) + var/misc_data = list(other_data[1]) + + if(istype(atom_poi, /obj/machinery/computer/helm)) + ships += misc_data else - misc += list(serialized) - - data["alive"] = alive - data["antagonists"] = antagonists - data["dead"] = dead - data["ghosts"] = ghosts - data["misc"] = misc - data["npcs"] = npcs - return data + misc += misc_data + + if(other_data[2]) // Critical = TRUE + critical += misc_data + + return list( + "alive" = alive, + "antagonists" = antagonists, + "critical" = critical, + "dead" = dead, + "ghosts" = ghosts, + "misc" = misc, + "npcs" = npcs, + "ships" = ships, + ) /datum/orbit_menu/ui_assets() . = ..() || list() . += get_asset_datum(/datum/asset/simple/orbit) +/// Helper function to get threat type, group, overrides for job and icon +/datum/orbit_menu/proc/get_antag_data(datum/mind/poi_mind) as /list + var/list/serialized = list() + + for(var/datum/antagonist/antag as anything in poi_mind.antag_datums) + if(!antag.show_to_ghosts) + continue + + serialized["antag"] = antag.name + serialized["antag_group"] = antag.antagpanel_category + serialized["job"] = antag.name + serialized["icon"] = antag.antag_hud_name + + return serialized + +/// Helper to get the current thing we're orbiting (if any) +/datum/orbit_menu/proc/get_currently_orbiting(mob/dead/observer/user) + if(isnull(user.orbiting_ref)) + return + + var/atom/poi = SSpoints_of_interest.get_poi_atom_by_ref(user.orbiting_ref) + if(isnull(poi)) + user.orbiting_ref = null + return + + if((ismob(poi) && !SSpoints_of_interest.is_valid_poi(poi, CALLBACK(src, PROC_REF(validate_mob_poi)))) \ + || !SSpoints_of_interest.is_valid_poi(poi) + ) + user.orbiting_ref = null + return + + var/list/serialized = list() + + if(!ismob(poi)) + var/list/misc_info = get_misc_data(poi) + serialized += misc_info[1] + return serialized + + var/mob/mob_poi = poi + serialized["full_name"] = mob_poi.name + serialized["ref"] = REF(poi) + + if(mob_poi.mind) + serialized["client"] = !!mob_poi.client + serialized["name"] = mob_poi.real_name + + if(isliving(mob_poi)) + serialized += get_living_data(mob_poi) + + return serialized + +/// Helper function to get job / icon / health data for a living mob +/datum/orbit_menu/proc/get_living_data(mob/living/player) as /list + var/list/serialized = list() + + serialized["health"] = FLOOR((player.health / player.maxHealth * 100), 1) + + return serialized + + +/// Gets a list: Misc data and whether it's critical. Handles all snowflakey type cases +/datum/orbit_menu/proc/get_misc_data(atom/movable/atom_poi) as /list + var/list/misc = list() + var/critical = FALSE + + misc["ref"] = REF(atom_poi) + misc["full_name"] = atom_poi.name + + // Display the nuke timer + if(istype(atom_poi, /obj/machinery/nuclearbomb)) + var/obj/machinery/nuclearbomb/bomb = atom_poi + + if(bomb.timing) + misc["extra"] = "Timer: [bomb.countdown?.displayed_text]s" + critical = TRUE + + return list(misc, critical) + + // Display the holder if its a nuke disk + if(istype(atom_poi, /obj/item/disk/nuclear)) + var/obj/item/disk/nuclear/disk = atom_poi + var/mob/holder = disk.pulledby || get(disk, /mob) + misc["extra"] = "Location: [holder?.real_name || "Unsecured"]" + + return list(misc, critical) + + // Display singuloths if they exist + if(istype(atom_poi, /obj/singularity)) + var/obj/singularity/singulo = atom_poi + misc["extra"] = "Energy: [round(singulo.energy)]" + + if(singulo.current_size > 2) + critical = TRUE + + return list(misc, critical) + + if(istype(atom_poi, /obj/machinery/computer/helm)) + var/obj/machinery/computer/helm/helm_poi = atom_poi + if(helm_poi.current_ship) + misc["extra"] = "Ship: [helm_poi.current_ship.name]" + + return list(misc, critical) + + return list(misc, critical) + +/** + * Helper POI validation function passed as a callback to various SSpoints_of_interest procs. + * + * Provides extended validation above and beyond standard, limiting mob POIs without minds or ckeys + * unless they're mobs, camera mobs or megafauna. Also allows exceptions for mobs that are deadchat controlled. + * + * If they satisfy that requirement, falls back to default validation for the POI. + */ +/datum/orbit_menu/proc/validate_mob_poi(datum/point_of_interest/mob_poi/potential_poi) + var/mob/potential_mob_poi = potential_poi.target + if(!potential_mob_poi.mind && !potential_mob_poi.ckey) + if(!mob_allowed_typecache) + mob_allowed_typecache = typecacheof(list( + /mob/living/simple_animal/hostile/megafauna, + /mob/living/simple_animal/hostile/boss + )) + if(!is_type_in_typecache(potential_mob_poi, mob_allowed_typecache) && !potential_mob_poi.GetComponent(/datum/component/deadchat_control)) + return FALSE + + return potential_poi.validate() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 1258df8b84c5..6046cfe82b63 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -9,6 +9,7 @@ diag_hud.add_to_hud(src) faction += "[REF(src)]" GLOB.mob_living_list += src + SSpoints_of_interest.make_point_of_interest(src) if(speed) update_living_varspeed() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index e0537594c8ff..76dc1f095009 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -30,11 +30,6 @@ var/area/A = get_area(src) if(A) notify_ghosts("A drone shell has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_DRONE) - GLOB.poi_list |= src - -/obj/effect/mob_spawn/drone/Destroy() - GLOB.poi_list -= src - . = ..() //ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/effect/mob_spawn/drone/attack_ghost(mob/user) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 863abf56dad1..ff06df9c6113 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -607,12 +607,12 @@ GLOBAL_DATUM(blackbox, /obj/machinery/smartfridge/black_box) var/ready_to_deploy = FALSE /obj/machinery/anomalous_crystal/helpers/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/machinery/anomalous_crystal/helpers/ActivationReaction(mob/user, method) if(..() && !ready_to_deploy) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) ready_to_deploy = TRUE notify_ghosts("An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.", enter_link = "(Click to enter)", ghost_sound = 'sound/effects/ghost2.ogg', source = src, action = NOTIFY_ATTACK, header = "Anomalous crystal activated") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b1788a7aa50d..a05c2e65688e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -462,7 +462,7 @@ else client.perspective = EYE_PERSPECTIVE client.eye = loc - return 1 + return TRUE /// Show the mob's inventory to another mob /mob/proc/show_inv(mob/user) diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm index d082503a012d..06324b8f8b78 100644 --- a/code/modules/modular_computers/file_system/programs/radar.dm +++ b/code/modules/modular_computers/file_system/programs/radar.dm @@ -156,7 +156,7 @@ *something like "mob_209". In order to find the actual atom, we need *to search the appropriate list for the REF string. This is dependant *on the program (Lifeline uses GLOB.human_list, while Fission360 uses - *GLOB.poi_list), but the result will be the same; evaluate the string and + *SSpoints_of_interest.other_points_of_interest), but the result will be the same; evaluate the string and *return an atom reference. */ /datum/computer_file/program/radar/proc/find_atom() @@ -269,7 +269,7 @@ pointercolor = "red" /datum/computer_file/program/radar/fission360/find_atom() - return locate(selected) in GLOB.poi_list + return locate(selected) in SSpoints_of_interest.other_points_of_interest /datum/computer_file/program/radar/fission360/scan() if(world.time < next_scan) @@ -286,7 +286,7 @@ name = nuke.name, ) objects += list(nukeinfo) - var/obj/item/disk/nuclear/disk = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/disk = locate() in SSpoints_of_interest.other_points_of_interest if(trackable(disk)) var/list/nukeinfo = list( ref = REF(disk), diff --git a/code/modules/overmap/helm.dm b/code/modules/overmap/helm.dm index 5b1f27fa2cb9..3b825ce39524 100644 --- a/code/modules/overmap/helm.dm +++ b/code/modules/overmap/helm.dm @@ -49,6 +49,8 @@ /obj/machinery/computer/helm/Initialize(mapload, obj/item/circuitboard/C) . = ..() + if(!viewer) + SSpoints_of_interest.make_point_of_interest(src) jump_allowed = world.time + CONFIG_GET(number/bluespace_jump_wait) ntnet_relay = new(src) @@ -76,6 +78,7 @@ SStgui.close_uis(src) ASSERT(length(concurrent_users) == 0) QDEL_NULL(ntnet_relay) + SSpoints_of_interest.remove_point_of_interest(src) if(current_ship) current_ship.helms -= src current_ship = null diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 9218b829e940..499a88b161f1 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -38,7 +38,7 @@ src.energy = starting_energy . = ..() START_PROCESSING(SSobj, src) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) GLOB.singularities |= src for(var/obj/machinery/power/singularity_beacon/singubeacon in GLOB.machines) if(singubeacon.active) @@ -53,7 +53,7 @@ /obj/singularity/Destroy() STOP_PROCESSING(SSobj, src) - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) GLOB.singularities.Remove(src) return ..() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 6ed294fa8936..400366415d9a 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -275,7 +275,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) SSair.start_processing_machine(src, mapload) countdown = new(src) countdown.start() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) radio = new(src) radio.keyslot = new radio_key radio.listening = 0 @@ -293,7 +293,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) investigate_log("has been destroyed.", INVESTIGATE_SUPERMATTER) SSair.stop_processing_machine(src) QDEL_NULL(radio) - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) QDEL_NULL(countdown) if(is_main_engine && GLOB.main_supermatter_engine == src) GLOB.main_supermatter_engine = null diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 7d58610fc7f7..d4a6f71cca4d 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -151,7 +151,7 @@ /obj/singularity/energy_ball/orbit(obj/singularity/energy_ball/target) if (istype(target)) target.orbiting_balls += src - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) target.dissipate_strength = target.orbiting_balls.len . = ..() diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index c2e5b4cb2933..40fd10e94785 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -46,7 +46,7 @@ /obj/item/gun/energy/pulse/prize/Initialize() . = ..() - GLOB.poi_list += src + SSpoints_of_interest.make_point_of_interest(src) var/turf/T = get_turf(src) message_admins("A pulse rifle prize has been created at [ADMIN_VERBOSEJMP(T)]") @@ -55,7 +55,7 @@ notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT, header = "Pulse rifle prize") /obj/item/gun/energy/pulse/prize/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/gun/energy/pulse/pistol diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 720670e3fc21..38e2f0df145e 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -99,7 +99,7 @@ name = "phylactery of [mind.name]" active_phylacteries++ - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) START_PROCESSING(SSobj, src) if(initial(SSticker.mode.round_ends_with_antag_death)) SSticker.mode.round_ends_with_antag_death = FALSE @@ -107,7 +107,7 @@ /obj/item/phylactery/Destroy(force=FALSE) STOP_PROCESSING(SSobj, src) active_phylacteries-- - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) if(!active_phylacteries) SSticker.mode.round_ends_with_antag_death = initial(SSticker.mode.round_ends_with_antag_death) . = ..() diff --git a/shiptest.dme b/shiptest.dme index 88900c60e222..e460d129f655 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -370,6 +370,7 @@ #include "code\controllers\subsystem\persistence.dm" #include "code\controllers\subsystem\physics.dm" #include "code\controllers\subsystem\ping.dm" +#include "code\controllers\subsystem\points_of_interest.dm" #include "code\controllers\subsystem\profiler.dm" #include "code\controllers\subsystem\radiation.dm" #include "code\controllers\subsystem\radio.dm" @@ -672,6 +673,7 @@ #include "code\datums\elements\lazy_fishing_spot.dm" #include "code\datums\elements\light_blocking.dm" #include "code\datums\elements\mobappearance.dm" +#include "code\datums\elements\point_of_interest.dm" #include "code\datums\elements\plant_backfire.dm" #include "code\datums\elements\renamemob.dm" #include "code\datums\elements\selfknockback.dm" @@ -857,6 +859,7 @@ #include "code\game\area\areas\ruins\space.dm" #include "code\game\area\areas\ruins\templates.dm" #include "code\game\area\areas\ruins\wasteplanet.dm" +#include "code\game\atom\atom_orbit.dm" #include "code\game\gamemodes\events.dm" #include "code\game\gamemodes\game_mode.dm" #include "code\game\gamemodes\objective.dm" diff --git a/tgui/packages/tgui/interfaces/Orbit.js b/tgui/packages/tgui/interfaces/Orbit.js deleted file mode 100644 index 91bf9d1f7929..000000000000 --- a/tgui/packages/tgui/interfaces/Orbit.js +++ /dev/null @@ -1,218 +0,0 @@ -import { createSearch } from 'common/string'; -import { multiline } from 'common/string'; -import { resolveAsset } from '../assets'; -import { useBackend, useLocalState } from '../backend'; -import { - Box, - Button, - Divider, - Flex, - Icon, - Input, - Section, -} from '../components'; -import { Window } from '../layouts'; - -const PATTERN_NUMBER = / \(([0-9]+)\)$/; - -const searchFor = (searchText) => - createSearch(searchText, (thing) => thing.name); - -const compareString = (a, b) => (a < b ? -1 : a > b); - -const compareNumberedText = (a, b) => { - const aName = a.name; - const bName = b.name; - - // Check if aName and bName are the same except for a number at the end - // e.g. Medibot (2) and Medibot (3) - const aNumberMatch = aName.match(PATTERN_NUMBER); - const bNumberMatch = bName.match(PATTERN_NUMBER); - - if ( - aNumberMatch && - bNumberMatch && - aName.replace(PATTERN_NUMBER, '') === bName.replace(PATTERN_NUMBER, '') - ) { - const aNumber = parseInt(aNumberMatch[1], 10); - const bNumber = parseInt(bNumberMatch[1], 10); - - return aNumber - bNumber; - } - - return compareString(aName, bName); -}; - -const BasicSection = (props, context) => { - const { act } = useBackend(context); - const { searchText, source, title } = props; - const things = source.filter(searchFor(searchText)); - things.sort(compareNumberedText); - return ( - source.length > 0 && ( -
- {things.map((thing) => ( -
- ) - ); -}; - -const OrbitedButton = (props, context) => { - const { act } = useBackend(context); - const { color, thing } = props; - - return ( - - ); -}; - -export const Orbit = (props, context) => { - const { act, data } = useBackend(context); - const { alive, antagonists, auto_observe, dead, ghosts, misc, npcs } = data; - - const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); - - const collatedAntagonists = {}; - for (const antagonist of antagonists) { - if (collatedAntagonists[antagonist.antag] === undefined) { - collatedAntagonists[antagonist.antag] = []; - } - collatedAntagonists[antagonist.antag].push(antagonist); - } - - const sortedAntagonists = Object.entries(collatedAntagonists); - sortedAntagonists.sort((a, b) => { - return compareString(a[0], b[0]); - }); - - const orbitMostRelevant = (searchText) => { - for (const source of [ - sortedAntagonists.map(([_, antags]) => antags), - alive, - ghosts, - dead, - npcs, - misc, - ]) { - const member = source - .filter(searchFor(searchText)) - .sort(compareNumberedText)[0]; - if (member !== undefined) { - act('orbit', { ref: member.ref }); - break; - } - } - }; - - return ( - - -
- - - - - - setSearchText(value)} - onEnter={(_, value) => orbitMostRelevant(value)} - /> - - - - - -
- {antagonists.length > 0 && ( -
- {sortedAntagonists.map(([name, antags]) => ( -
- {antags - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((antag) => ( - - ))} -
- ))} -
- )} - -
- {alive - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((thing) => ( - - ))} -
- -
- {ghosts - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((thing) => ( - - ))} -
- - - - - - -
-
- ); -}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx new file mode 100644 index 000000000000..f3c59a75e189 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx @@ -0,0 +1,98 @@ +import { toTitleCase } from 'common/string'; + +import { useBackend } from '../../backend'; +import { NoticeBox, Section, Stack, Table, Tooltip } from '../../components'; + +import { getAntagCategories } from './helpers'; +import { AntagGroup, Observable, OrbitData } from './types'; +import { OrbitSection } from './OrbitSection'; + +type ContentSection = { + content: Observable[]; + title: string; + color?: string; +}; + +export const OrbitContent = (props, context) => { + const { act, data } = useBackend(context); + const { antagonists = [], critical = [] } = data; + const { searchText, autoObserve } = props; + + let antagGroups: AntagGroup[] = []; + if (antagonists.length) { + antagGroups = getAntagCategories(antagonists); + } + + const sections: readonly ContentSection[] = [ + { + content: data.alive, + title: 'Alive', + color: 'good', + }, + { + content: data.dead, + title: 'Dead', + }, + { + content: data.ghosts, + title: 'Ghosts', + }, + { + content: data.misc, + title: 'Misc', + }, + { + content: data.npcs, + title: 'NPCs', + }, + { + content: data.ships, + title: 'Ships', + }, + ]; + + return ( +
+ + {critical.map((crit) => ( + + act('orbit', { ref: crit.ref })} + > + + + {toTitleCase(crit.full_name)} + {crit.extra} + +
+
+
+ ))} + + {antagGroups.map(([title, members]) => ( + + ))} + + {sections.map((section) => ( + + ))} +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx new file mode 100644 index 000000000000..957104afa8b9 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx @@ -0,0 +1,50 @@ +import { useBackend } from '../../backend'; +import { Stack, Button, Flex, Icon } from '../../components'; + +import { capitalizeFirst } from 'common/string'; + +import { getDisplayColor, getDisplayName } from './helpers'; +import { Antagonist, Observable, OrbitData } from './types'; + +type Props = { + item: Observable | Antagonist; + autoObserve: boolean; + color: string | undefined; +}; + +export const OrbitItem = (props: Props, context) => { + const { item, autoObserve, color } = props; + const { full_name, icon, job, name, orbiters, ref } = item; + + const { act, data } = useBackend(context); + const { orbiting } = data; + + const selected = ref === orbiting?.ref; + const validIcon = !!job && !!icon && icon !== 'hudunknown'; + + return ( + act('orbit', { auto_observe: autoObserve, ref })} + style={{ + display: 'flex', + }} + > + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx new file mode 100644 index 000000000000..d27d9080e08d --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx @@ -0,0 +1,65 @@ +import { Collapsible, Flex, Tooltip } from '../../components'; +import { isJobOrNameMatch } from './helpers'; +import { OrbitItem } from './OrbitItem'; +import { OrbitTooltip } from './OrbitTooltip'; +import { Observable } from './types'; + +type Props = { + color?: string; + section: Observable[]; + title: string; + searchQuery: string; + autoObserve: boolean; +}; + +/** + * Displays a collapsible with a map of observable items. + * Filters the results if there is a provided search query. + */ +export const OrbitSection = (props: Props) => { + const { color, section = [], title, searchQuery, autoObserve } = props; + + const filteredSection = section.filter((observable) => + isJobOrNameMatch(observable, searchQuery) + ); + + if (!filteredSection.length) { + return null; + } + + return ( + + + {filteredSection.map((item) => { + const content = ( + + ); + + if (!item.health && !item.extra) { + return content; + } + + return ( + } + key={item.ref} + position="bottom-start" + > + {content} + + ); + })} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx new file mode 100644 index 000000000000..0a941dcb0fb5 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx @@ -0,0 +1,57 @@ +import { LabeledList, NoticeBox } from '../../components'; +import { Antagonist, Observable } from './types'; + +type Props = { + item: Observable | Antagonist; +}; + +/** Displays some info on the mob as a tooltip. */ +export const OrbitTooltip = (props: Props) => { + const { item } = props; + const { extra, name, full_name, health, job } = item; + + let antag; + if ('antag' in item) { + antag = item.antag; + } + + const extraInfo = extra?.split(':'); + const displayHealth = !!health && health >= 0 ? `${health}%` : 'Critical'; + const showAFK = 'client' in item && !item.client; + + return ( + <> + + Last Known Data + + + {extraInfo ? ( + + {extraInfo[1]} + + ) : ( + <> + {!!name && ( + {name} + )} + {!!full_name && ( + + {full_name} + + )} + {!!job && {job}} + {!!antag && ( + {antag} + )} + {!!health && ( + + {displayHealth} + + )} + + )} + {showAFK && Away} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/constants.ts b/tgui/packages/tgui/interfaces/Orbit/constants.ts new file mode 100644 index 000000000000..1edadc9bfe45 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/constants.ts @@ -0,0 +1,8 @@ +export const HEALTH = { + Good: 69, // nice + Average: 19, + Bad: 0, + Crit: -30, + Dead: -100, + Ruined: -200, +} as const; diff --git a/tgui/packages/tgui/interfaces/Orbit/helpers.ts b/tgui/packages/tgui/interfaces/Orbit/helpers.ts new file mode 100644 index 000000000000..7046f784cd6c --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/helpers.ts @@ -0,0 +1,119 @@ +import { createSearch } from '../../../common/string'; + +import { HEALTH } from './constants'; +import { AntagGroup, Antagonist, Observable } from './types'; + +const PATTERN_NUMBER = / \(([0-9]+)\)$/; + +/** Return a map of strings with each antag in its antag_category */ +export const getAntagCategories = (antagonists: Antagonist[]): AntagGroup[] => { + const categories = new Map(); + + for (const player of antagonists) { + const { antag_group } = player; + + if (!categories.has(antag_group)) { + categories.set(antag_group, []); + } + categories.get(antag_group)!.push(player); + } + + const sorted = Array.from(categories.entries()).sort((a, b) => { + const lowerA = a[0].toLowerCase(); + const lowerB = b[0].toLowerCase(); + + if (lowerA < lowerB) return -1; + if (lowerA > lowerB) return 1; + return 0; + }); + + return sorted; +}; + +/** Returns a disguised name in case the person is wearing someone else's ID */ +export const getDisplayName = ( + full_name: string, + nickname?: string +): string => { + if (!nickname) { + return full_name; + } + + return nickname; +}; + +/** Displays color for buttons based on the health or orbiter count. */ +export const getDisplayColor = ( + item: Observable, + override?: string +): string => { + const { job, health, orbiters } = item; + + // Things like blob camera, etc + if (typeof health !== 'number') { + return override ? 'good' : 'grey'; + } + + // Players that are AFK + if ('client' in item && !item.client) { + return 'grey'; + } + + return getHealthColor(health); +}; + +/** Returns the display color for certain health percentages */ +const getHealthColor = (health: number): string => { + switch (true) { + case health > HEALTH.Good: + return 'good'; + case health > HEALTH.Average: + return 'average'; + default: + return 'bad'; + } +}; + +/** Checks if a full name or job title matches the search. */ +export const isJobOrNameMatch = ( + observable: Observable, + searchQuery: string +): boolean => { + if (!searchQuery) return true; + + const { full_name, job } = observable; + + return ( + full_name?.toLowerCase().includes(searchQuery?.toLowerCase()) || + job?.toLowerCase().includes(searchQuery?.toLowerCase()) || + false + ); +}; + +export const searchFor = (searchText) => + createSearch(searchText, (thing: Observable) => thing.full_name); + +export const compareString = (a, b) => (a < b ? -1 : a > b); + +export const compareNumberedText = (a, b) => { + const aName = a.name; + const bName = b.name; + + // Check if aName and bName are the same except for a number at the end + // e.g. Medibot (2) and Medibot (3) + const aNumberMatch = aName.match(PATTERN_NUMBER); + const bNumberMatch = bName.match(PATTERN_NUMBER); + + if ( + aNumberMatch && + bNumberMatch && + aName.replace(PATTERN_NUMBER, '') === bName.replace(PATTERN_NUMBER, '') + ) { + const aNumber = parseInt(aNumberMatch[1], 10); + const bNumber = parseInt(bNumberMatch[1], 10); + + return aNumber - bNumber; + } + + return compareString(aName, bName); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/index.tsx b/tgui/packages/tgui/interfaces/Orbit/index.tsx new file mode 100644 index 000000000000..f0854f7bfa69 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/index.tsx @@ -0,0 +1,86 @@ +import { multiline } from '../../../common/string'; +import { useBackend, useLocalState } from '../../backend'; +import { Button, Divider, Flex, Icon, Input, Section } from '../../components'; +import { Window } from '../../layouts'; + +import { searchFor } from './helpers'; +import { OrbitData } from './types'; +import { OrbitContent } from './OrbitContent'; + +export const Orbit = (props, context) => { + const { act, data } = useBackend(context); + + const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); + const [autoObserve, setAutoObserve] = useLocalState( + context, + 'autoObserve', + false + ); + + const orbitMostRelevant = () => { + const mostRelevant = [ + data.antagonists, + data.alive, + data.ghosts, + data.dead, + data.npcs, + data.misc, + data.ships, + ] + .flat() + .filter(searchFor(searchText)) + .sort()[0]; + + if (mostRelevant !== undefined) { + act('orbit', { ref: mostRelevant.ref }); + } + }; + + return ( + + +
+ + + + + + setSearchText(value)} + onEnter={(_, value) => orbitMostRelevant()} + /> + + + + + +
+ +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/types.ts b/tgui/packages/tgui/interfaces/Orbit/types.ts new file mode 100644 index 000000000000..4912ae10db4c --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/types.ts @@ -0,0 +1,38 @@ +import { BooleanLike } from '../../../common/react'; + +export type Antagonist = Observable & { antag: string; antag_group: string }; + +export type AntagGroup = [string, Antagonist[]]; + +export type OrbitData = { + alive: Observable[]; + antagonists: Antagonist[]; + critical: Critical[]; + dead: Observable[]; + ghosts: Observable[]; + misc: Observable[]; + npcs: Observable[]; + ships: Observable[]; + orbiting: Observable | null; + autoObserve: boolean; +}; + +export type Observable = { + full_name: string; + ref: string; + // Optionals +} & Partial<{ + client: BooleanLike; + extra: string; + health: number; + icon: string; + job: string; + name: string; + orbiters: number; +}>; + +type Critical = { + extra: string; + full_name: string; + ref: string; +}; From ce35cdda0b8c684a4d4c121871732dd51dec54fd Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 10:57:35 -0500 Subject: [PATCH 025/125] Automatic changelog generation for PR #3320 [ci skip] --- html/changelogs/AutoChangeLog-pr-3320.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3320.yml diff --git a/html/changelogs/AutoChangeLog-pr-3320.yml b/html/changelogs/AutoChangeLog-pr-3320.yml new file mode 100644 index 000000000000..4832c9776c22 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3320.yml @@ -0,0 +1,5 @@ +author: FalloutFalcon +changes: + - {rscadd: You can now see ships in the orbit menu and its alot prettier!} + - {code_imp: ported tg points of interest and a much improved orbit menu} +delete-after: true From ddbcb281c1ed2e83fc0b06bddecfb9a386455782 Mon Sep 17 00:00:00 2001 From: Jedi-Toothpaste <53096233+Jedi-Toothpaste@users.noreply.github.com> Date: Wed, 25 Sep 2024 21:32:46 +0100 Subject: [PATCH 026/125] kilo remap fixes (#3424) ## About The Pull Request Kilo remap was good, asides the fact there was not a reinforced window on the thrusters to stop it being spaced if you open the blast doors. However, this problem was self-solving as the blast doors were not connected to the new button. This fixes both issues by adding windows to the thrusters, and linking the button correctly. ![image](https://github.com/user-attachments/assets/852855b1-98a7-4850-bf05-f327c809913e) ![image](https://github.com/user-attachments/assets/1066b7e4-5bb2-41dd-be5f-aa1101df9a00) ## Changelog :cl: fix: Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken link for the new blast doors. /:cl: --- _maps/shuttles/independent/independent_kilo.dmm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_maps/shuttles/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm index 0dad29cb9f9b..35f955ff0b3d 100644 --- a/_maps/shuttles/independent/independent_kilo.dmm +++ b/_maps/shuttles/independent/independent_kilo.dmm @@ -22,6 +22,9 @@ dir = 4; id = "kilothrusters" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating/airless, /area/ship/engineering) "av" = ( @@ -1581,6 +1584,9 @@ dir = 4; id = "kilothrusters" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering) "MY" = ( @@ -1890,7 +1896,7 @@ /obj/effect/decal/cleanable/oil, /obj/machinery/button/door{ dir = 8; - id = "amogusthrusters"; + id = "kilothrusters"; name = "Thruster Lockdown"; pixel_x = 21 }, From 3f869318da50bb04241f389350db3f0ad60af111 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 15:43:55 -0500 Subject: [PATCH 027/125] Automatic changelog generation for PR #3424 [ci skip] --- html/changelogs/AutoChangeLog-pr-3424.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3424.yml diff --git a/html/changelogs/AutoChangeLog-pr-3424.yml b/html/changelogs/AutoChangeLog-pr-3424.yml new file mode 100644 index 000000000000..8258d255a6c2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3424.yml @@ -0,0 +1,5 @@ +author: Jedi-Toothpaste +changes: + - {bugfix: "Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken + link for the new blast doors."} +delete-after: true From 3d061395b682198f7b68a2c75b29e2f204709a3f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 26 Sep 2024 01:01:48 +0000 Subject: [PATCH 028/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3320.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3330.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3346.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3352.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3398.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3408.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3418.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3420.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3423.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3424.yml | 5 ----- html/changelogs/archive/2024-09.yml | 20 ++++++++++++++++++++ 11 files changed, 20 insertions(+), 44 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3320.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3330.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3346.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3352.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3398.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3408.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3418.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3420.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3423.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3424.yml diff --git a/html/changelogs/AutoChangeLog-pr-3320.yml b/html/changelogs/AutoChangeLog-pr-3320.yml deleted file mode 100644 index 4832c9776c22..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3320.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: You can now see ships in the orbit menu and its alot prettier!} - - {code_imp: ported tg points of interest and a much improved orbit menu} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3330.yml b/html/changelogs/AutoChangeLog-pr-3330.yml deleted file mode 100644 index 46e461f2f53f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3330.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: 'Ballistics now have a minimum recoil, not enough to mess up your shot!'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3346.yml b/html/changelogs/AutoChangeLog-pr-3346.yml deleted file mode 100644 index 46be6f8474b6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3346.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {bugfix: ships now start closed. shiptesters be writing there memos and ship names.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3352.yml b/html/changelogs/AutoChangeLog-pr-3352.yml deleted file mode 100644 index 266106d74f64..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3352.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: Added new blank shells for training drills!} - - {refactor: Minor refactor of design disks to reduce repeated code} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3398.yml b/html/changelogs/AutoChangeLog-pr-3398.yml deleted file mode 100644 index 65eb77137267..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3398.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Gristlebee -changes: - - {bugfix: fixes wall deconstruction causing runtimes} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3408.yml b/html/changelogs/AutoChangeLog-pr-3408.yml deleted file mode 100644 index f85514c5004c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3408.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: zimon9 -changes: - - {rscadd: Added fruit puree to vegan rations} - - {rscdel: Removed pizza crackers from vegan rations} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3418.yml b/html/changelogs/AutoChangeLog-pr-3418.yml deleted file mode 100644 index b2b6703a1756..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3418.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {balance: Most common accessories now fit on pants} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3420.yml b/html/changelogs/AutoChangeLog-pr-3420.yml deleted file mode 100644 index 832736e59bfd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3420.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {rscadd: Exosuit Recharger machines are now available from cargo} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3423.yml b/html/changelogs/AutoChangeLog-pr-3423.yml deleted file mode 100644 index 21c44ad0f32e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3423.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {balance: Rust Reds on the blackmarket are now available to a maximum of 3} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3424.yml b/html/changelogs/AutoChangeLog-pr-3424.yml deleted file mode 100644 index 8258d255a6c2..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3424.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Jedi-Toothpaste -changes: - - {bugfix: "Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken - link for the new blast doors."} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index d86f5c86c955..a90afebaaf94 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -170,3 +170,23 @@ SomeguyManperson: - bugfix: sawn off illestren/improvised shotgun stats are now consistent if they are spawned in +2024-09-26: + FalloutFalcon: + - rscadd: Added new blank shells for training drills! + - refactor: Minor refactor of design disks to reduce repeated code + - rscadd: Ballistics now have a minimum recoil, not enough to mess up your shot! + - bugfix: ships now start closed. shiptesters be writing there memos and ship names. + - rscadd: You can now see ships in the orbit menu and its alot prettier! + - code_imp: ported tg points of interest and a much improved orbit menu + Gristlebee: + - bugfix: fixes wall deconstruction causing runtimes + Jedi-Toothpaste: + - bugfix: Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken + link for the new blast doors. + generalthrax: + - balance: Most common accessories now fit on pants + - rscadd: Exosuit Recharger machines are now available from cargo + - balance: Rust Reds on the blackmarket are now available to a maximum of 3 + zimon9: + - rscadd: Added fruit puree to vegan rations + - rscdel: Removed pizza crackers from vegan rations From d67e5e2b91ac23c03ebaf00d5d32db90fceb808c Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Thu, 26 Sep 2024 08:48:25 -0700 Subject: [PATCH 029/125] Makes a Slight Cosmetic Edit to Normal Rabbit Ears (#3443) ## About The Pull Request It's subtle but I did it mostly because the current version was bothering me for some god forsaken reason and I guess I'm a perfectionist. ![image](https://github.com/user-attachments/assets/f9fdfe82-d59e-40bd-94a3-4e19b678e2d6) ## Why It's Good For The Game I hate creating characters ## Changelog :cl: PositiveEntropy imageadd: Adjusts the inner part of the normal rabbit ears. /:cl: --- icons/mob/species/human/rabbit.dmi | Bin 1013 -> 1000 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/species/human/rabbit.dmi b/icons/mob/species/human/rabbit.dmi index fcc6599f735685713dabb3bf310c4d1e26339c1e..26f0cb080d22653f3ac9a61223c4a9c877225522 100644 GIT binary patch delta 745 zcmV$i?pxq@o`qVe&}9 zM}2~p?T02UmuD4G9oxaazD_G&?%+ycM|~!3t7t*0WGBkmE2e+@uDl_Ajn^ZkNh`id zEnh?HUh%Bj>rK@G0000000919;yvs{cn+*}N0~3$&J{7{y9+)B%kX->$Nc!MWvpk) zyi0C%U|1QPqUwUyueCYR&r#vpMN}yI`8Kn&x2uG82|tPID(_nl1KQ=>m4{O^Lm8O zX5WGO=&7hO2X|2wQ^tm(nH2xzf_8c`5puKbv4R>28vp2B9n!Jow$-00000NkvXXu0mjfHg8{w delta 758 zcmVl{`oHxo*4LYw0{{R30002|zpS^g6A>7&wZF=F`%C5Tc}(?1LHlSS((1GEnBbWA zm@LEVg%P3||WskQYKJjSIe!epktn96mhRb=b8EoA=*+n`G@ChbVy)a3dAWsj2A93F?M)vv96G;oXGSt_y$p(4mq&w63%_srAA(Kr-~b z@67#vj3592000000Dyz2CSM1TPrml&dFGEZVgLa6Ma*npFNAk}K-|HM-?;yX_zt~T zA1bz$ac?<9GTZ1MqS{!lK5j(;0002|4Kk7^E}eRL;o6ho5=oS#CVl}X@$$ku5(Gms zZZ$FS3)p|)WUvO&xitiS0KyA~egT}{!%qZ#|1YzGBK3?e2^y1l!S;w=8J#VJX^FlE zL1_~IgpXj2YIG+N)(PH*$Fwk8UYD>29bA0}Z1+xv=RT7gVCpsZtDv$CbuKWyU}4+D zf^QwTHvZG6EaNJZh|VA7>5~%v_ovycLdA$RNMP3i^(d;`=AH5V+=HMZ!VvN{O6bbQ9E@;O$GcLYUAqn+3#C*8yiMHA9 o8dGkzJyuX7U;_XE003$D2SExfS^H-GdjJ3c07*qoM6N<$f*}lQQUCw| From 58eb610c1c1c1b48e1b5c308682b2746982bd86a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 26 Sep 2024 10:59:29 -0500 Subject: [PATCH 030/125] Automatic changelog generation for PR #3443 [ci skip] --- html/changelogs/AutoChangeLog-pr-3443.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3443.yml diff --git a/html/changelogs/AutoChangeLog-pr-3443.yml b/html/changelogs/AutoChangeLog-pr-3443.yml new file mode 100644 index 000000000000..3fd19b120e6d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3443.yml @@ -0,0 +1,4 @@ +author: PositiveEntropy +changes: + - {imageadd: Adjusts the inner part of the normal rabbit ears.} +delete-after: true From 96c4fa999f2265d368905a4544e448d3175691c1 Mon Sep 17 00:00:00 2001 From: Jedi-Toothpaste <53096233+Jedi-Toothpaste@users.noreply.github.com> Date: Thu, 26 Sep 2024 21:06:07 +0100 Subject: [PATCH 031/125] valor map fixes (#3440) ## About The Pull Request So, currently the Valor is awaiting a remap, but this should fix a few problems that it currently has, most notably, the large areas, lack of firelocks and lack of lighting in some rooms. What's changed: - Added firelocks to every door, no more mid-corridor firelocks which don't do much. - Added firelocks across the cargo-bay door. Similar to the Mudskipper. - _I understand this may be a contentious change but i'm happy to remove it if the danger of the holofield falling would still like to be realised_. ![image](https://github.com/user-attachments/assets/48d83b56-7fec-4fb7-9917-337f7f41d78f) - Added lighting to the Corpsman prep room, and the EVA Room as it currently does not spawn with a light at all. (with this, I have also added extra light switches to said rooms). - Seperated the large area at the bottom of the ship. At the moment, the Surgery Room, Morgue Room, Corridor, Corpsman prep, and post-op area all share the same area. I have given each one a seperate area so you can control the lighting in each room. ![image](https://github.com/user-attachments/assets/29ed4c5c-d67a-407a-9ff9-587135f92483) - Similar to the above, I have added seperate areas for the Janitor Closet, EVA prep, Toilet and Laundry Room as well. ![image](https://github.com/user-attachments/assets/ee47bf9b-b07b-4794-911d-e310cc8db933) ## Why It's Good For The Game Being able to turn the lights off in the Morgue seperatly from the entire medbay's is a bit of a no-brainer, and helps enhance the roleplay. It is a little bit immerssion breaking to go to turn off the lights in the patient-care area and suddenly you've plunged the surgery into pitch-darkness. As for the firelocks, having consistent firelocks that are actually present on every door, is also a no brainer; but this change brings the Valor in-line with other IRMG ships in actually having fire-locks on every door. ## Changelog :cl: add: Firelocks to the Valor-Class' Doors add: Lighting to dark areas on the Valor-Class' Doors add: New areas on the Valor-Class to seperate rooms add: Added APC for the Surgical Area /:cl: --- _maps/shuttles/inteq/inteq_valor.dmm | 341 +++++++++++++++++++++------ 1 file changed, 263 insertions(+), 78 deletions(-) diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm index 737e424096fd..dac3ac7a0ebb 100644 --- a/_maps/shuttles/inteq/inteq_valor.dmm +++ b/_maps/shuttles/inteq/inteq_valor.dmm @@ -123,7 +123,7 @@ /obj/effect/turf_decal/borderfloorwhite, /obj/machinery/light/directional/south, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "bJ" = ( /obj/effect/turf_decal/siding/thinplating/dark, /obj/effect/turf_decal/trimline/opaque/brown/line, @@ -136,7 +136,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "bN" = ( /obj/structure/catwalk/over/plated_catwalk, /obj/machinery/power/apc/auto_name/directional/east, @@ -353,7 +353,7 @@ }, /obj/structure/chair, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "dG" = ( /obj/effect/turf_decal/industrial/traffic/corner{ dir = 4 @@ -366,6 +366,12 @@ dir = 8; name = "Custodian Closet" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/canteen) "dM" = ( @@ -407,7 +413,7 @@ name = "Surgery" }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "dO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -546,7 +552,7 @@ pixel_y = 8 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "eV" = ( /obj/structure/cable{ icon_state = "1-4" @@ -733,8 +739,13 @@ dir = 5 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "gq" = ( +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20; + pixel_x = -3 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "gt" = ( @@ -762,7 +773,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "gZ" = ( /obj/machinery/door/airlock/external{ dir = 4 @@ -840,6 +851,9 @@ }, /turf/open/floor/plasteel/tech/grid, /area/ship/crew/cryo) +"hJ" = ( +/turf/open/floor/plasteel/dark, +/area/ship/medical/surgery) "hN" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 4 @@ -862,8 +876,13 @@ dir = 8; pixel_x = 12 }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 8 + }, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "id" = ( /obj/structure/cable{ icon_state = "1-2" @@ -1018,7 +1037,7 @@ id = "valor_external" }, /turf/open/floor/plating, -/area/ship/medical) +/area/ship/medical/surgery) "jN" = ( /obj/structure/chair/office, /obj/machinery/power/apc/auto_name/directional/west, @@ -1063,6 +1082,11 @@ pixel_x = 1; pixel_y = 16 }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20; + pixel_x = 4 + }, /turf/open/floor/plasteel/patterned/ridged, /area/ship/medical) "jU" = ( @@ -1094,6 +1118,12 @@ dir = 4; name = "Starboard Engines" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/ship/maintenance/starboard) "kx" = ( @@ -1178,6 +1208,10 @@ /obj/machinery/door/airlock/grunge{ name = "Medbay" }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "lc" = ( @@ -1329,6 +1363,10 @@ }, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"ml" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/medical) "mp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1338,6 +1376,9 @@ }, /turf/open/floor/plasteel/tech, /area/ship/medical) +"mr" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/medical/surgery) "mt" = ( /obj/structure/rack, /obj/item/tank/internals/plasmaman/full, @@ -1479,8 +1520,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/light/directional/north, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "nz" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -1509,8 +1551,12 @@ /obj/machinery/door/airlock/medical/glass{ name = "Surgical Bay" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "nU" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -1551,6 +1597,9 @@ /obj/item/flashlight/lamp/green, /turf/open/floor/carpet/black, /area/ship/crew/dorm) +"ou" = ( +/turf/open/floor/plasteel/mono/dark, +/area/ship/cargo) "oy" = ( /obj/effect/turf_decal/trimline/opaque/brown/warning{ dir = 6 @@ -1569,7 +1618,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "oz" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1719,7 +1768,7 @@ /obj/structure/table/optable, /obj/structure/curtain, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "pL" = ( /obj/machinery/power/terminal{ dir = 8 @@ -1789,8 +1838,12 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/hatch, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/patterned, -/area/ship/medical) +/area/ship/medical/surgery) "qt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -1846,7 +1899,7 @@ id = "valor_surgery" }, /turf/open/floor/plating, -/area/ship/medical) +/area/ship/medical/surgery) "qW" = ( /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ dir = 4 @@ -1890,6 +1943,20 @@ }, /turf/open/floor/plating, /area/ship/crew/dorm) +"rh" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/ship/hallway/central) "rL" = ( /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) @@ -1905,7 +1972,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "rX" = ( /obj/structure/sign/poster/contraband/inteq_gec{ pixel_y = 32 @@ -1996,8 +2063,12 @@ /obj/machinery/door/airlock/medical{ name = "Morgue" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "ss" = ( /obj/structure/rack, /obj/item/pickaxe/emergency, @@ -2011,8 +2082,12 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "sy" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -2083,6 +2158,11 @@ pixel_y = 10 }, /obj/machinery/firealarm/directional/west, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -10 + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "sM" = ( @@ -2192,6 +2272,10 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "tZ" = ( @@ -2234,7 +2318,7 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "uA" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 4 @@ -2466,12 +2550,11 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "xg" = ( -/obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "xj" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) @@ -2727,7 +2810,7 @@ /obj/effect/turf_decal/borderfloorblack, /obj/structure/bodycontainer/morgue, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "zE" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 @@ -2768,8 +2851,12 @@ "zI" = ( /obj/effect/turf_decal/borderfloorblack, /obj/machinery/door/airlock/hatch, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/patterned, -/area/ship/medical) +/area/ship/medical/surgery) "zK" = ( /obj/docking_port/stationary{ dir = 4; @@ -2800,6 +2887,10 @@ /obj/effect/turf_decal/siding/thinplating/dark{ dir = 9 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "zT" = ( @@ -2889,7 +2980,7 @@ pixel_y = -4 }, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "AG" = ( /obj/structure/bed, /obj/item/bedsheet/hos{ @@ -2968,6 +3059,10 @@ desc = "A poster encouraging you to work for your future."; pixel_y = 32 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "Bc" = ( @@ -2984,6 +3079,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"BB" = ( +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, +/turf/template_noop, +/area/template_noop) "BC" = ( /obj/structure/filingcabinet/double, /obj/structure/sign/poster/official/help_others{ @@ -3082,7 +3184,7 @@ pixel_x = 28 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "CH" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, /obj/structure/cable{ @@ -3330,8 +3432,9 @@ /obj/effect/turf_decal/trimline/opaque/brown/line{ dir = 5 }, +/obj/machinery/light/directional/north, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "EJ" = ( /obj/effect/turf_decal/siding/thinplating/corner{ dir = 1 @@ -3463,7 +3566,7 @@ /area/ship/crew/canteen) "FY" = ( /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "FZ" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -3532,6 +3635,20 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) +"GT" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/ship/hallway/central) "Hg" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -3567,6 +3684,9 @@ /obj/machinery/door/airlock/hatch{ name = "Port Hallway" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "HA" = ( @@ -3631,6 +3751,10 @@ /obj/structure/mirror{ pixel_y = -24 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/patterned/brushed, /area/ship/crew/canteen) "HT" = ( @@ -4042,7 +4166,7 @@ pixel_y = -23 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "LL" = ( /obj/structure/closet/secure_closet{ icon_state = "med_secure"; @@ -4089,6 +4213,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, /turf/open/floor/plasteel/stairs{ dir = 8 }, @@ -4158,6 +4286,14 @@ "Nh" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/cargo) +"Nk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical/surgery) "Nn" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/cobweb, @@ -4175,6 +4311,10 @@ /obj/item/soap{ pixel_x = -6 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/canteen) "NA" = ( @@ -4309,6 +4449,7 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/machinery/light/directional/east, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "Ok" = ( @@ -4318,6 +4459,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/patterned, /area/ship/cargo) +"Ox" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/medical/surgery) "Oz" = ( /obj/structure/table, /obj/item/folder{ @@ -4351,7 +4500,7 @@ /obj/effect/turf_decal/borderfloorblack, /obj/machinery/light/directional/south, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "OM" = ( /turf/open/floor/pod, /area/ship/cargo) @@ -4410,14 +4559,19 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Pg" = ( /obj/structure/sink{ dir = 4; pixel_x = -12 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 8 + }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "Pk" = ( /obj/effect/turf_decal/corner/opaque/brown{ dir = 4 @@ -4451,10 +4605,9 @@ /obj/effect/turf_decal/trimline/opaque/brown/line{ dir = 1 }, -/obj/machinery/light/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "PU" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/crew/cryo) @@ -4582,8 +4735,12 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "Re" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Rh" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/security) @@ -4704,6 +4861,9 @@ }, /turf/open/floor/carpet/black, /area/ship/crew/dorm) +"SL" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/medical/surgery) "SX" = ( /obj/machinery/power/terminal{ dir = 1 @@ -4808,7 +4968,7 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Uj" = ( /obj/effect/turf_decal/siding/thinplating/dark, /obj/structure/cable{ @@ -4860,6 +5020,15 @@ }, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"UD" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) "UN" = ( /obj/effect/turf_decal/siding/thinplating, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ @@ -5046,10 +5215,12 @@ dir = 9 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/firealarm/directional/west, +/obj/machinery/firealarm/directional/west{ + pixel_y = 4 + }, /obj/structure/chair, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "WQ" = ( /obj/structure/cable/yellow{ icon_state = "0-2" @@ -5221,12 +5392,18 @@ /area/ship/medical) "Yi" = ( /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "Yn" = ( /obj/machinery/door/airlock/grunge{ dir = 8; name = "Restroom" }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, /turf/open/floor/plasteel/patterned/brushed, /area/ship/crew/canteen) "Yt" = ( @@ -5262,14 +5439,16 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "YL" = ( -/obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "YM" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -5304,6 +5483,12 @@ dir = 4; name = "Port Engines" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "Zc" = ( @@ -5481,7 +5666,7 @@ cu Td Td Td -Td +BB Nh xj qG @@ -5595,13 +5780,13 @@ xj Td Td Td -bB -LI +mr +SL ns -LI +SL pC zD -LI +SL "} (8,1,1) = {" Zu @@ -5628,13 +5813,13 @@ xj Td Td Td -WC +Ox WO gp -LI +SL FY OK -LI +SL "} (9,1,1) = {" Zu @@ -5661,13 +5846,13 @@ xj Td Td Td -WC +Ox dA Pe si hW AE -LI +SL "} (10,1,1) = {" Zu @@ -5690,17 +5875,17 @@ OM OM Kz ZF -LI +SL jL jL jL -LI +SL PL bJ -LI -LI -LI -LI +SL +SL +SL +SL "} (11,1,1) = {" Zu @@ -5724,8 +5909,8 @@ Mn de KU zI -Re -Re +hJ +hJ xg Re Ui @@ -5733,7 +5918,7 @@ gU nK Pg eU -LI +SL "} (12,1,1) = {" tZ @@ -5758,15 +5943,15 @@ Fa MR qk su -su +Nk +Nk YL -su ux rO qR Yi bI -LI +SL "} (13,1,1) = {" tZ @@ -5799,7 +5984,7 @@ oy qR CF LJ -LI +SL "} (14,1,1) = {" tZ @@ -5824,15 +6009,15 @@ zT nX LI jG -Io +ml Au LI -LI +SL dN -LI -LI -LI -LI +SL +SL +SL +SL "} (15,1,1) = {" tZ @@ -5842,9 +6027,9 @@ tZ Qc AP HC -gq -gq -gq +ou +ou +ou Hw nX ct @@ -5875,8 +6060,8 @@ ME iN xl HC -gq -gq +ou +ou gq xj Rc @@ -5908,9 +6093,9 @@ tZ VD Um DT +UD Oj -Oj -Oj +UD DT DT DT @@ -5974,7 +6159,7 @@ mB ma CH jk -lc +GT Sh lc ht @@ -5990,7 +6175,7 @@ hj id lc Sh -lc +rh bR XD NZ From 1543835a520a43260c3661216301328cb43495d8 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 26 Sep 2024 15:16:55 -0500 Subject: [PATCH 032/125] Automatic changelog generation for PR #3440 [ci skip] --- html/changelogs/AutoChangeLog-pr-3440.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3440.yml diff --git a/html/changelogs/AutoChangeLog-pr-3440.yml b/html/changelogs/AutoChangeLog-pr-3440.yml new file mode 100644 index 000000000000..6736a4cc4659 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3440.yml @@ -0,0 +1,7 @@ +author: Jedi-Toothpaste +changes: + - {rscadd: Firelocks to the Valor-Class' Doors} + - {rscadd: Lighting to dark areas on the Valor-Class' Doors} + - {rscadd: New areas on the Valor-Class to seperate rooms} + - {rscadd: Added APC for the Surgical Area} +delete-after: true From a358a4dc45c636d84704ef429224075c5ac657d3 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 27 Sep 2024 01:02:14 +0000 Subject: [PATCH 033/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3440.yml | 7 ------- html/changelogs/AutoChangeLog-pr-3443.yml | 4 ---- html/changelogs/archive/2024-09.yml | 8 ++++++++ 3 files changed, 8 insertions(+), 11 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3440.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3443.yml diff --git a/html/changelogs/AutoChangeLog-pr-3440.yml b/html/changelogs/AutoChangeLog-pr-3440.yml deleted file mode 100644 index 6736a4cc4659..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3440.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Jedi-Toothpaste -changes: - - {rscadd: Firelocks to the Valor-Class' Doors} - - {rscadd: Lighting to dark areas on the Valor-Class' Doors} - - {rscadd: New areas on the Valor-Class to seperate rooms} - - {rscadd: Added APC for the Surgical Area} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3443.yml b/html/changelogs/AutoChangeLog-pr-3443.yml deleted file mode 100644 index 3fd19b120e6d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3443.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: Adjusts the inner part of the normal rabbit ears.} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index a90afebaaf94..fac7a3a0bd23 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -190,3 +190,11 @@ zimon9: - rscadd: Added fruit puree to vegan rations - rscdel: Removed pizza crackers from vegan rations +2024-09-27: + Jedi-Toothpaste: + - rscadd: Firelocks to the Valor-Class' Doors + - rscadd: Lighting to dark areas on the Valor-Class' Doors + - rscadd: New areas on the Valor-Class to seperate rooms + - rscadd: Added APC for the Surgical Area + PositiveEntropy: + - imageadd: Adjusts the inner part of the normal rabbit ears. From 8bec073a1bee248c55888769ff25555b47f410e4 Mon Sep 17 00:00:00 2001 From: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> Date: Sat, 28 Sep 2024 01:11:18 +0200 Subject: [PATCH 034/125] Adds a fax machine to the Dwayne. (#3402) ## About The Pull Request ![obraz](https://github.com/user-attachments/assets/79430ae8-1e33-4d11-8dd5-1d687790a261) ## Why It's Good For The Game - Communication with the outpost is fun. - NT is like, THE tcomm company, even if the ship is meant to be their civ market garbage, it should still get one. ## Changelog :cl: add: Added a fax machine to the Dwayne-class. /:cl: --- _maps/shuttles/independent/independent_dwayne.dmm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm index a0383e507ec1..d1cc698c0c92 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -886,12 +886,15 @@ dir = 1 }, /obj/item/radio/weather_monitor{ - pixel_x = 5; + pixel_x = 8; pixel_y = 7 }, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = -8 +/obj/machinery/newscaster/directional/west, +/obj/item/paper_bin{ + pixel_x = -8; + pixel_y = 6 }, +/obj/item/pen/fountain, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) "mR" = ( @@ -2686,9 +2689,8 @@ "Oz" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/corner/opaque/ntblue/half, -/obj/machinery/newscaster/directional/west, -/obj/item/megaphone/cargo{ - pixel_y = 5 +/obj/machinery/fax/indie{ + pixel_y = 7 }, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) @@ -2711,6 +2713,7 @@ /obj/item/ammo_box/c38, /obj/item/ammo_box/c38, /obj/item/gun/ballistic/revolver/detective, +/obj/item/megaphone/cargo, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) "OP" = ( From 86659425ecc9a1577a068115034051b623dd4881 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 27 Sep 2024 18:22:03 -0500 Subject: [PATCH 035/125] Automatic changelog generation for PR #3402 [ci skip] --- html/changelogs/AutoChangeLog-pr-3402.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3402.yml diff --git a/html/changelogs/AutoChangeLog-pr-3402.yml b/html/changelogs/AutoChangeLog-pr-3402.yml new file mode 100644 index 000000000000..a19f7367125f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3402.yml @@ -0,0 +1,4 @@ +author: Sadhorizon +changes: + - {rscadd: Added a fax machine to the Dwayne-class.} +delete-after: true From c830d5f6ea455267f1a087d475e42be0716013a0 Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 27 Sep 2024 19:48:33 -0400 Subject: [PATCH 036/125] Fixes some stuff with legion infections (#3450) ## About The Pull Request homeless skulls no longer complain about not being fed ## Why It's Good For The Game ## Changelog :cl: fix: legion skulls will no longer check if they should rise up and consume their owner if they are ownerless /:cl: Signed-off-by: Theos --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index b7ca291a5be4..bd9133ffce20 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -297,6 +297,8 @@ /// track our timers and reagents /obj/item/organ/legion_skull/proc/skull_check() + if(!owner) + return if(!malignance) malignance = new() malignance.infect(owner, FALSE) From 771b608b4f0113906e003a05e99dad207589534b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 27 Sep 2024 18:59:30 -0500 Subject: [PATCH 037/125] Automatic changelog generation for PR #3450 [ci skip] --- html/changelogs/AutoChangeLog-pr-3450.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3450.yml diff --git a/html/changelogs/AutoChangeLog-pr-3450.yml b/html/changelogs/AutoChangeLog-pr-3450.yml new file mode 100644 index 000000000000..0e16d8aa9f70 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3450.yml @@ -0,0 +1,5 @@ +author: SomeguyManperson +changes: + - {bugfix: legion skulls will no longer check if they should rise up and consume + their owner if they are ownerless} +delete-after: true From 943006f473bfc236c7c9ff9478395785fe39d154 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 28 Sep 2024 01:01:54 +0000 Subject: [PATCH 038/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3402.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3450.yml | 5 ----- html/changelogs/archive/2024-09.yml | 6 ++++++ 3 files changed, 6 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3402.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3450.yml diff --git a/html/changelogs/AutoChangeLog-pr-3402.yml b/html/changelogs/AutoChangeLog-pr-3402.yml deleted file mode 100644 index a19f7367125f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3402.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Sadhorizon -changes: - - {rscadd: Added a fax machine to the Dwayne-class.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3450.yml b/html/changelogs/AutoChangeLog-pr-3450.yml deleted file mode 100644 index 0e16d8aa9f70..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3450.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SomeguyManperson -changes: - - {bugfix: legion skulls will no longer check if they should rise up and consume - their owner if they are ownerless} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index fac7a3a0bd23..d5ef25458196 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -198,3 +198,9 @@ - rscadd: Added APC for the Surgical Area PositiveEntropy: - imageadd: Adjusts the inner part of the normal rabbit ears. +2024-09-28: + Sadhorizon: + - rscadd: Added a fax machine to the Dwayne-class. + SomeguyManperson: + - bugfix: legion skulls will no longer check if they should rise up and consume + their owner if they are ownerless From f22469aa3ccac2169ec807764462c4804e372002 Mon Sep 17 00:00:00 2001 From: fighterslam <56803762+fighterslam@users.noreply.github.com> Date: Sat, 28 Sep 2024 14:18:48 -0500 Subject: [PATCH 039/125] Ranger Modernization & Tweaks (#3313) ## About The Pull Request Updates the Ranger-Class, giving it facilities that feel better without significantly altering the balance. ![image](https://github.com/user-attachments/assets/b9a6de86-3fc3-44cb-9b9a-46c971fb5165) Major changes: Adds a Logistics Specialist to the ship's crew manifest, and enhances the Cargo Bay to accommodate for them. Now they have a desk, a bed, and a locker, all painted in N+S colors! The Cargo Bay now also requires ship access to be opened/closed. The ship is now a bit more focused on "disaster response" rather than being a generalist, and the tags have been updated to reflect this. I might do some more work on this in the future, to lean into the "ship that can fix both the crew and the ship" aspect. This also leaves the niche of Vigilitas Gunship open for when that's made. Re-paints the ship to be more in line with Vigilitas colors, and reflect NT Spaceworks' designs (titanium hulls/windows) & updates the prefix to VISV. Smaller changes: Adds access locks to the AI core/Comms (engineering access), the Ready Room (requires Ship Access now and a non-intern role), security office, and specialist quarters/rooms Adds a few internal windows - the Bridge now has a shutter-able window to the atrium, Security gets shutterable windows, and so does Medical. Updates the Air Cycler to be more secure and not have any exterior windows, keeping with the Ranger's "no external windows" theme. Moves the atmospherics equipment to the engine bays, replacing the equipment room with a proper ready-room for the LP Squad, and a small armory compartment. Also adds a 9mm Saber SMG to the armory. All of the LP hardsuits have been moved into this ready-room, except for the Lieutenant's. Enhances Medical by replacing the weird cell with a proper surgical compartment, and uses tinted windows to give the Medical Specialist's bedroom some privacy. Rearranges the Security Specialist's office by giving them a proper desk, a records console, and a camera monitor, aswell as a much more functional holding cell. Makes the AI core & Comms room much prettier (and more secure) Adjusts the location of the docking port so you no longer need to cross hyperspace Expands the bridge slightly & adds more shutters to the ship. Fixes the LP med-spec's hardsuit to be spaceproof again. Enhances the LT's living quarters. Upgrades the Ion Engines to the premium variant - currently, it has the same amount of thrusters as a Kilo, but is significantly heavier. As it'd require significant hull changes to add more thrusters, they've just been upgraded to make it more fitting for a proper response ship. Adds an air refilling system, so you don't have to depressurize your air supply in order to refill it. Replaces the "Emergency EVA" closets with Fragile Space Suit Storage Units, which are weaker than the previous EVA suits + spawns less supplies. Makes it so the LP Lieutenant spawns with the Vigilitas Security Coat rather than the standard NT one, and removes the indie officer stuff from their closet. Fixes the Medical Specialist's hardsuit to be spaceproof again. Adds GPSes to every specialist's locker, instead of just a few, and gives the AI Core a stationary computer GPS. Shoves a dresser into Cryo. Adds External Atmospherics control - you can now control the external atmospherics fittings and also have an ability to actually check the external atmosphere with sensors. Code for it's a bit jank but it works. Are we out of scope yet? Countless other small changes I've forgotten about as this expands. ## Why It's Good For The Game Makes the Ranger feel much better to play on - brings the crew together more, makes the areas feel a bit more usable, and helps the Ranger lean into a specialization, rather than being Yet Another NT Generalist. ## Changelog :cl: balance: Modernizes and slightly buffs the Ranger. /:cl: --------- Signed-off-by: fighterslam <56803762+fighterslam@users.noreply.github.com> Co-authored-by: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> --- _maps/configs/nanotrasen_ranger.json | 15 +- .../shuttles/nanotrasen/nanotrasen_ranger.dmm | 4417 +++++++++++------ code/__DEFINES/atmospherics.dm | 2 + .../MapData/shuttles/nanotrasen_ranger.dm | 160 +- code/game/area/ship_areas.dm | 3 + code/game/machinery/computer/atmos_control.dm | 9 +- .../decals/turfdecal/flooring_decals.dm | 2 +- code/game/turfs/open/floor/plasteel_floor.dm | 7 + .../clothing/outfits/factions/nanotrasen.dm | 2 +- .../modules/projectiles/guns/ballistic/smg.dm | 1 + 10 files changed, 2998 insertions(+), 1620 deletions(-) diff --git a/_maps/configs/nanotrasen_ranger.json b/_maps/configs/nanotrasen_ranger.json index d9c2e207e4d9..fedc351e03b0 100644 --- a/_maps/configs/nanotrasen_ranger.json +++ b/_maps/configs/nanotrasen_ranger.json @@ -1,24 +1,23 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "prefix": "VISV", "map_name": "Ranger-class Aid Vessel", - "faction": "/datum/faction/nt", - "prefix": "NTSV", + "faction": "/datum/faction/nt/vigilitas", "namelists": [ "NANOTRASEN", "NATURAL_AGGRESSIVE", "WEAPONS" ], "map_short_name": "Ranger-class", - "description": "A Nanotrasen rescue and aid vessel. Equipped with an AI core, moderate combat gear, and equipment fit for rescue and general aid operations. Nanotrasen often deploys these ships in lieu of a proper ERT to aid their allies in the Frontier without committing their full might. The shipowner is the Lieutenant of a Loss Prevention squad, with a Commissioner to aid with operations on the ship proper.", + "description": "A Vigilitas Interstellar aid vessel, manufactured by NT Spaceworks. Equipped with a Nanotrasen AI core, moderate combat gear, and equipment fit for rescue and general aid operations. Vigitilas Interstellar often deploys these ships in lieu of a proper ERT to aid their allies in the Frontier without committing their full might. The shipowner is the Lieutenant of a Loss Prevention squad.", "tags": [ "Combat", - "Riot", - "Robotics", "Medical", + "Firefighting", "Telecomms", "Generalist" ], - "starting_funds": 4000, + "starting_funds": 6000, "map_path": "_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm", "limit": 1, "job_slots": { @@ -39,6 +38,10 @@ "outfit": "/datum/outfit/job/nanotrasen/doctor/lp", "slots": 1 }, + "N+S Logistics Specialist": { + "outfit": "/datum/outfit/job/nanotrasen/quartermaster", + "slots": 1 + }, "Intern": { "outfit": "/datum/outfit/job/nanotrasen/assistant", "slots": 1 diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index fcd049fb153f..4e194b4bdb98 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -6,12 +6,16 @@ pixel_y = 11; layer = 4.2 }, -/obj/structure/railing{ +/obj/item/toy/plush/moth/redish{ + pixel_x = -4 + }, +/obj/structure/window/reinforced/tinted{ dir = 4 }, -/obj/item/toy/plush/moth/redish{ +/obj/item/folder/red{ pixel_x = -4; - layer = 4.3 + layer = 3.01; + pixel_y = -8 }, /turf/open/floor/wood, /area/ship/security) @@ -29,7 +33,8 @@ pixel_x = 8; pixel_y = 22 }, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "am" = ( /obj/structure/urinal{ @@ -39,7 +44,7 @@ /obj/structure/cable{ icon_state = "0-4" }, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "an" = ( /obj/structure/railing/corner, @@ -56,34 +61,47 @@ icon_state = "1-2" }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "aD" = ( /obj/machinery/light/dim/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "aG" = ( -/obj/structure/railing{ - dir = 4 +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/item/clothing/head/beret/eng/hazard, +/obj/item/storage/backpack/satchel/eng, +/obj/item/storage/backpack/messenger/engi, +/obj/item/storage/backpack/industrial, +/obj/item/storage/backpack/duffelbag/engineering, +/obj/item/clothing/under/rank/engineering/engineer/nt/lp, +/obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp, +/obj/item/storage/backpack/ert/engineer, +/obj/item/clothing/suit/nanotrasen/vest, +/obj/structure/window/reinforced/tinted{ + dir = 1 }, -/obj/structure/table/reinforced, -/obj/item/storage/box/stockparts/basic, -/obj/machinery/light/dim/directional/south, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/structure/window/reinforced/tinted{ + dir = 8 }, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/mono/dark, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, /area/ship/engineering) "aI" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_FireFighting_Shut" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -99,15 +117,33 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_FireFighting_Shut"; + name = "Ready Room" + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/storage/equip) "aK" = ( /obj/machinery/light/dim/directional/north, -/obj/item/radio/intercom/directional/east, -/obj/structure/reagent_dispensers/foamtank, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire/corner{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/item/clothing/suit/space/hardsuit/ancient/lp, +/obj/item/clothing/mask/breath, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "aO" = ( /obj/structure/closet/secure_closet/lp/medical, /obj/item/storage/box/gloves, @@ -119,6 +155,25 @@ /obj/item/pinpointer/crew, /obj/item/storage/box/bodybags, /obj/item/storage/firstaid/regular, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/defibrillator/loaded, +/obj/item/roller{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/roller{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/clothing/neck/stethoscope, +/obj/item/gps, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health/prescription, /turf/open/floor/wood, /area/ship/medical) "aP" = ( @@ -129,6 +184,7 @@ dir = 1 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "bf" = ( @@ -141,7 +197,7 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "bn" = ( /obj/machinery/light/dim/directional/south, @@ -150,10 +206,10 @@ pixel_x = -21; pixel_y = 7 }, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "br" = ( /obj/machinery/atmospherics/components/unary/shuttle/heater{ @@ -164,12 +220,14 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "bu" = ( -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "bw" = ( /obj/structure/closet/secure_closet/lp/security, @@ -184,31 +242,47 @@ /obj/item/clothing/suit/armor/vest/security, /obj/item/clothing/mask/gas/sechailer, /obj/item/gps, -/obj/structure/railing{ - dir = 4 - }, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, /obj/item/ammo_box/magazine/co9mm, /obj/item/storage/belt/security/webbing, /obj/item/storage/pistolcase/commander, +/obj/item/clothing/glasses/hud/security/sunglasses, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/security) "bD" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) -"bN" = ( -/obj/structure/window/reinforced{ +"bK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/dark, +/area/ship/hallway/central) +"bN" = ( +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/paper_bin{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/pen/red{ + pixel_x = 6 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/mineral/plastitanium/red/brig, /area/ship/security) "bX" = ( /obj/machinery/telecomms/bus/preset_four{ @@ -217,25 +291,41 @@ id = "Nanotrasen Communications Bus"; freq_listening = list(1353,1447,1459) }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) -"cj" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/secure/loot, +"ci" = ( +/obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/maintenance/port) +"cj" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/medical/paramedic/skirt/lp, +/obj/item/clothing/under/rank/medical/paramedic/lp, +/obj/item/clothing/suit/hooded/wintercoat/medical, +/obj/item/clothing/head/beret/med, +/obj/item/storage/backpack/satchel/med, +/obj/item/storage/backpack/messenger/med, +/obj/item/storage/backpack/medic, +/obj/item/storage/backpack/duffelbag/med, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/storage/backpack/ert/medical, +/turf/open/floor/wood, +/area/ship/medical) "cv" = ( /obj/structure/chair/comfy/shuttle{ dir = 4; - name = "Operations" + name = "Navigator's Chair" }, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "cx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -247,7 +337,6 @@ /obj/machinery/camera/autoname{ dir = 10 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/machinery/firealarm/directional/south, /obj/structure/cable{ icon_state = "4-8" @@ -255,7 +344,8 @@ /obj/structure/cable{ icon_state = "4-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "cE" = ( /obj/structure/railing{ @@ -263,20 +353,28 @@ }, /obj/effect/decal/cleanable/glass, /obj/machinery/light/dim/directional/south, +/obj/structure/janitorialcart{ + dir = 4 + }, +/obj/item/mop, +/obj/item/reagent_containers/food/drinks/sillycup{ + pixel_x = -8; + pixel_y = 10 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "cI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 10 +/obj/structure/chair/handrail{ + dir = 8; + pixel_x = 2 }, -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/machinery/door/firedoor/window, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Cycler_Shutters" +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" }, -/turf/open/floor/plating, /area/ship/hallway/central) "cN" = ( /obj/structure/cable{ @@ -288,13 +386,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 - }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "cR" = ( /obj/structure/cable{ @@ -305,9 +403,15 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "cW" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "dd" = ( @@ -315,22 +419,71 @@ /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) -"dl" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_FireFighting_Shut" +"df" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/table/wood, +/obj/item/toy/plush/moth/deadhead{ + pixel_x = -7; + layer = 4.3 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 13; + layer = 4.2 }, +/obj/item/folder/yellow{ + pixel_y = -4; + pixel_x = 4 + }, +/obj/item/pen/survival{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/ship/engineering) +"dl" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_FireFighting_Shut"; + name = "Ready Room" + }, +/turf/open/floor/plasteel/dark, +/area/ship/storage/equip) +"dm" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 10 + }, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/hallway/starboard) "dn" = ( /obj/structure/cable{ icon_state = "4-8" @@ -341,15 +494,15 @@ /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 4 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "dq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "dr" = ( /obj/machinery/power/smes{ @@ -358,25 +511,33 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/structure/catwalk/over/plated_catwalk/dark, /turf/open/floor/plating, /area/ship/engineering) +"dx" = ( +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "dC" = ( /obj/effect/turf_decal/ntspaceworks_small/right, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/spline/fancy/opaque/blue, /turf/open/floor/plasteel/dark, /area/ship/bridge) "dG" = ( /obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/binary/valve/layer4{ - dir = 8; - name = "Disposals Outlet Valve" - }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/hallway/central) "dK" = ( @@ -387,10 +548,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "dM" = ( /obj/structure/cable/cyan{ @@ -399,34 +560,38 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, /area/ship/maintenance/port) +"dN" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/port) "dP" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/door/poddoor/shutters{ - id = "Engineering_Specialist_Shutters" + id = "Engineering_Specialist_Shutters"; + name = "Communications Shutters" }, /obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "ec" = ( /obj/effect/turf_decal/ntspaceworks_small/left, -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/structure/cable{ icon_state = "5-8" }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -7; - pixel_y = -19 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/effect/turf_decal/spline/fancy/opaque/blue, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "ef" = ( @@ -438,15 +603,19 @@ /turf/template_noop, /area/template_noop) "eo" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/machinery/camera/autoname{ + dir = 5 }, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/railing{ + dir = 4; + layer = 4.1 }, -/obj/machinery/power/ship_gravity, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "er" = ( /obj/structure/cable{ icon_state = "4-8" @@ -460,13 +629,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "eE" = ( /obj/machinery/computer/cargo{ dir = 1 }, +/obj/structure/railing{ + dir = 8 + }, /turf/open/floor/plasteel/tech, /area/ship/cargo) "eN" = ( @@ -481,7 +653,8 @@ dir = 1; pixel_y = -21; id = "Rangar_Starboard_Blasts"; - name = "Blast Doors" + name = "Blast Doors"; + req_ship_access = 1 }, /obj/machinery/button/shieldwallgen{ dir = 1; @@ -495,23 +668,50 @@ /obj/structure/cable{ icon_state = "4-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "eU" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/sprayweb, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 5 + }, +/obj/item/stack/tape{ + pixel_y = 10; + pixel_x = 6 + }, +/obj/item/stack/tape{ + pixel_y = 24; + pixel_x = 6; + layer = 3.02 + }, +/obj/item/stack/tape{ + pixel_y = 17; + pixel_x = 7; + layer = 3.01 + }, +/obj/item/hand_labeler{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/folder/yellow{ + pixel_x = 6 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "eY" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/shrink_ccw{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "fd" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/border{ - dir = 8 - }, /obj/structure/cable{ icon_state = "6-8" }, @@ -524,85 +724,139 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "ff" = ( /obj/structure/railing{ dir = 1 }, /obj/effect/turf_decal/techfloor/hole/right, -/obj/machinery/telecomms/message_server/preset{ - autolinkers = list("messaging","hub"); - network = "nt_commnet"; - layer = 3.1 +/obj/effect/turf_decal/spline/fancy/opaque/blue/corner{ + dir = 8 }, +/obj/structure/closet/crate/bin, /turf/open/floor/plasteel/dark, /area/ship/bridge) "fo" = ( -/obj/structure/window/reinforced/tinted/frosted, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plastic, -/area/ship/crew/toilet) +/obj/structure/girder/reinforced, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "fy" = ( -/obj/structure/table/wood, /obj/item/newspaper, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "fz" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 8; - name = "Cargo Bay"; - id = "Ranger_Cargo_Door" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 10 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + name = "Cargo Bay"; + id = "Ranger_Cargo_Door" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "fU" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor/hole/right, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "fV" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/security) +"gd" = ( +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) "gg" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/toilet) "gh" = ( -/obj/structure/chair/comfy/blue/directional/east, -/obj/item/toy/plush/moth/lovers, /obj/item/radio/intercom/directional/north, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/item/wrench, +/obj/item/screwdriver, +/obj/item/stack/cable_coil/cyan, +/obj/item/stack/sheet/rglass{ + amount = 25 + }, +/obj/item/aicard, +/turf/open/floor/circuit, /area/ship/engineering/communications) "gi" = ( -/obj/machinery/light_switch{ - pixel_x = 8; - pixel_y = 22 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, /obj/effect/turf_decal/siding/red{ dir = 1 }, -/obj/machinery/camera/autoname, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "gk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + name = "Intelligence Core"; + id = "AiCore" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering/glass{ + dir = 4; + name = "Intelligence Core"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) +"gr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "RangerCryoShutters"; + name = "Cryogenic Storage" + }, +/obj/machinery/button/door{ + pixel_x = -21; + dir = 4; + pixel_y = 3; + name = "Cryogenics Access"; + id = "RangerCryoShutters" + }, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, +/area/ship/crew/cryo) "gz" = ( /obj/machinery/camera/autoname{ dir = 9 @@ -610,7 +864,7 @@ /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/closet/crate/trashcart, /obj/item/storage/bag/trash, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "gD" = ( /obj/structure/cable/cyan{ @@ -619,12 +873,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/vomit/old{ + color = "#30b7e5"; + name = "blueish dried vomit" + }, +/obj/item/broken_bottle{ + pixel_x = -10 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "gG" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/machinery/door/airlock/medical/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -634,13 +893,13 @@ dir = 1 }, /obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/medical{ + name = "Medical Bay" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "gL" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/crate_shelf, /turf/open/floor/plasteel/tech, /area/ship/cargo) "gN" = ( @@ -655,16 +914,18 @@ /turf/open/floor/plating, /area/ship/engineering) "gT" = ( -/obj/structure/cable{ - icon_state = "2-5" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/effect/turf_decal/siding/blue, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "gW" = ( @@ -676,14 +937,21 @@ dir = 8 }, /obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "hf" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/dark, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CellHallShutters"; + name = "Holding Cell Hall Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, /area/ship/security) "hk" = ( /obj/structure/cable{ @@ -699,7 +967,7 @@ /obj/structure/cable{ icon_state = "1-10" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "hl" = ( /obj/structure/cable/cyan{ @@ -708,35 +976,42 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "hn" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/structure/railing/corner, /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/turf_decal/siding/yellow, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/spline/fancy/opaque/orange, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "hp" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, +/obj/effect/turf_decal/industrial/outline/orange, +/obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/maintenance/port) "hx" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp, +/obj/item/clothing/under/rank/security/head_of_security/alt/lp, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/suit/jacket/miljacket, +/obj/item/storage/backpack/messenger/com, +/obj/item/storage/backpack/satchel/cap, +/obj/item/storage/backpack/captain, +/obj/item/storage/backpack/duffelbag/captain, +/obj/item/storage/backpack/ert, /obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, +/obj/item/clothing/head/nanotrasen/beret/security/command, +/obj/item/clothing/suit/armor/nanotrasen/sec_director, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "hz" = ( /obj/docking_port/mobile{ dir = 2; @@ -746,12 +1021,8 @@ /obj/machinery/camera/autoname, /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "hF" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" - }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "hJ" = ( @@ -761,22 +1032,23 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 - }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "hK" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "Engineering_Specialist_Shutters"; - dir = 4 + dir = 4; + name = "Communications Shutters" }, -/obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "hN" = ( @@ -785,33 +1057,34 @@ }, /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "hQ" = ( +/obj/machinery/door/window/survival_pod{ + dir = 4; + opacity = 1; + req_access_txt = "1"; + name = "Security Specialist Quarters"; + req_ship_access = 1 + }, /turf/open/floor/plasteel/stairs/wood{ dir = 8 }, /area/ship/security) "hZ" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_x = 5; - pixel_y = 13; - layer = 4.2 - }, -/obj/effect/turf_decal/siding/wood/end{ - dir = 1 +/obj/machinery/camera/autoname{ + dir = 4 }, -/obj/item/toy/plush/moth/deadhead{ - pixel_x = -7; - layer = 4.3 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 }, -/turf/open/floor/wood, -/area/ship/engineering) +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "ib" = ( /obj/structure/cable/cyan{ icon_state = "5-10" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/oil, /turf/open/floor/plating, /area/ship/maintenance/starboard) "id" = ( @@ -833,6 +1106,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "ih" = ( @@ -851,7 +1130,7 @@ pixel_x = 7; pixel_y = -20 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "iq" = ( /obj/effect/turf_decal/industrial/warning{ @@ -859,25 +1138,35 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/firealarm/directional/east, +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) +"iv" = ( +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "ix" = ( -/obj/structure/table/greyscale, +/obj/machinery/camera/autoname, /obj/effect/turf_decal/siding/blue{ - dir = 1 + dir = 5 }, -/obj/item/storage/firstaid/medical{ - pixel_y = 7; - pixel_x = -2 +/obj/item/storage/firstaid/toxin{ + pixel_x = 4; + pixel_y = -3 }, /obj/item/storage/firstaid/o2{ pixel_x = 1; pixel_y = 2 }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 4; - pixel_y = -3 +/obj/item/storage/firstaid/medical{ + pixel_y = 7; + pixel_x = -2 }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/ship/medical) "iC" = ( @@ -885,22 +1174,23 @@ dir = 4 }, /obj/effect/decal/cleanable/robot_debris/old, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/ship/maintenance/starboard) "iD" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/obj/machinery/camera/autoname{ - dir = 10 +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "iF" = ( /obj/structure/railing{ @@ -914,23 +1204,35 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/effect/spawner/lootdrop/lpaid{ - pixel_x = -4; +/obj/item/stamp/captain{ + pixel_x = 7 + }, +/obj/item/folder/blue{ + pixel_x = 8; pixel_y = 10 }, -/obj/effect/spawner/lootdrop/lpcombat{ - pixel_y = 6 +/obj/effect/turf_decal/techfloor{ + dir = 10 }, -/obj/effect/spawner/lootdrop/lpretrieval{ - pixel_x = 3; - pixel_y = 1 +/obj/item/clipboard{ + pixel_y = -2; + pixel_x = -7 }, -/turf/open/floor/plasteel/dark, +/obj/item/pen{ + pixel_x = -7; + pixel_y = -1 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "iH" = ( -/obj/structure/bed, -/obj/item/bedsheet/grey, -/turf/open/floor/plasteel/dark, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "SecCellWindowShutters"; + name = "Brig Cell Window Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, /area/ship/security) "iI" = ( /obj/structure/closet/emcloset/wall/directional/north, @@ -940,27 +1242,37 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"iS" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "iX" = ( /obj/effect/turf_decal/siding/yellow{ dir = 10 }, /obj/structure/ore_box, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "iZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "jb" = ( /obj/machinery/power/shuttle/engine/fueled/plasma{ @@ -968,30 +1280,61 @@ }, /turf/open/floor/plating, /area/ship/maintenance/port) +"jd" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CellHallShutters"; + name = "Holding Cell Hall Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/security) "ji" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/mopbucket, -/obj/item/mop, -/turf/open/floor/plasteel/white, +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "jj" = ( /obj/machinery/holopad/emergency, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "jk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/siding/blue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "jr" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/engi, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, /obj/effect/turf_decal/techfloor{ dir = 8 }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/electrical{ + pixel_x = 3; + pixel_y = 7 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "js" = ( @@ -999,12 +1342,22 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/crew/cryo) "jt" = ( -/obj/machinery/autolathe, /obj/effect/turf_decal/techfloor{ dir = 1 }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/computer/atmos_control/external{ + dir = 4; + icon_state = "computer-right" + }, +/obj/machinery/light_switch{ + pixel_y = 23; + name = "External Lighting Switch"; + color = "#efbc43"; + pixel_x = 6 + }, /turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) +/area/ship/external/dark) "jv" = ( /obj/structure/closet/cabinet, /obj/item/clothing/shoes/jackboots, @@ -1016,29 +1369,43 @@ /obj/item/clothing/suit/armor/vest/security/officer, /obj/item/clothing/under/rank/security/head_of_security/alt/lp, /obj/machinery/light/dim/directional/west, +/obj/item/storage/backpack/ert/security, /turf/open/floor/wood, /area/ship/security) "jA" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/port) "jC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ - dir = 8 +/obj/structure/bed, +/obj/item/bedsheet/nanotrasen, +/obj/item/toy/plush/moth/royal{ + pixel_x = 5; + pixel_y = 1 }, -/turf/open/floor/engine/hull, -/area/ship/external) +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ship/crew/dorm/captain) "jF" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "1-4" }, /obj/structure/cable{ icon_state = "1-10" }, -/obj/effect/turf_decal/siding/yellow{ - dir = 10 +/obj/structure/table/reinforced, +/obj/item/weldingtool{ + pixel_x = -6 }, -/turf/open/floor/plasteel/tech, +/obj/item/multitool, +/obj/item/t_scanner{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/stack/cable_coil/random, +/obj/item/storage/belt/utility, +/turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "jH" = ( /obj/machinery/power/apc/auto_name/directional/north, @@ -1051,8 +1418,12 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) +"jQ" = ( +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) "jZ" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1063,38 +1434,87 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "kh" = ( /obj/machinery/light_switch{ dir = 1; pixel_x = 7; pixel_y = -20 }, -/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = -4 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, +/obj/machinery/computer/cryopod/directional/west, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "ks" = ( /obj/effect/decal/cleanable/cobweb, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/camera/autoname, /turf/open/floor/plating, /area/ship/maintenance/port) "kt" = ( -/obj/effect/turf_decal/borderfloorblack, -/turf/open/floor/plasteel/tech/airless, -/area/ship/engineering/communications) +/obj/machinery/light/dim/directional/south, +/obj/machinery/airalarm/directional/east, +/obj/structure/filingcabinet/double{ + dir = 1 + }, +/obj/item/folder/blue{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/folder/red{ + pixel_x = -4; + layer = 3.01; + pixel_y = -8 + }, +/obj/item/folder, +/obj/item/pen, +/obj/item/pen{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/pen{ + pixel_x = -4; + pixel_y = -6 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "kw" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + name = "Intelligence Core"; + id = "AiCore" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering/communications) "kK" = ( -/obj/structure/table/wood, -/obj/item/storage/box/cups, /obj/machinery/light/dim/directional/south, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/item/cutting_board, +/obj/item/reagent_containers/food/snacks/donkpocket/warm, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "kO" = ( /obj/structure/cable{ @@ -1103,8 +1523,9 @@ /obj/structure/cable{ icon_state = "2-5" }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "kQ" = ( /obj/structure/grille, @@ -1118,8 +1539,8 @@ /area/ship/engineering/communications) "kS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 4 +/obj/effect/turf_decal/siding/blue{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1132,14 +1553,11 @@ dir = 4; railing_color = "#0C119E" }, -/obj/machinery/computer/cryopod/directional/south, +/obj/machinery/recharge_station, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "lj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, /obj/machinery/button/door{ dir = 4; pixel_x = -22; @@ -1147,10 +1565,14 @@ id = "Ranger_Cycler_Shutters"; name = "Air Cycler Shutters" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "lp" = ( /obj/machinery/button/door{ @@ -1158,7 +1580,10 @@ pixel_y = 6; pixel_x = 22; id = "Ranger_FireFighting_Shut"; - name = "Shutters" + name = "Ready Room"; + req_ship_access = 1; + req_one_access_txt = "50,10,5,1,20"; + req_one_access = list(50, 10, 5, 1, 20) }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 @@ -1166,89 +1591,98 @@ /obj/machinery/camera/autoname{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/trimline/opaque/vired/filled/corner{ dir = 4 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "lv" = ( -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding{ + color = "#474747"; + dir = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "lw" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/closet/crate/large, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 9 + }, +/obj/structure/fluff/hedge/opaque, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "lB" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "lD" = ( /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/camera/autoname{ - dir = 5 - }, /turf/open/floor/plasteel/stairs{ - dir = 1 + dir = 1; + color = "#a8b2b6" }, /area/ship/bridge) "lL" = ( +/obj/structure/cable{ + icon_state = "2-9" + }, /obj/effect/turf_decal/siding/blue{ - dir = 1 + dir = 5 }, /turf/open/floor/plasteel/white, /area/ship/medical) "lU" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, /obj/machinery/light_switch{ dir = 4; pixel_x = -21; pixel_y = 7 }, +/obj/structure/crate_shelf, /turf/open/floor/plasteel/tech, /area/ship/cargo) "lW" = ( -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/item/radio/intercom/wideband/directional/south, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "lX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow, -/obj/structure/railing{ - dir = 2; - layer = 4.1 +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 }, -/obj/effect/turf_decal/siding/yellow, /turf/open/floor/plasteel/tech, /area/ship/engineering) "mh" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, /obj/machinery/light/floor, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "ml" = ( /obj/structure/cable{ @@ -1259,46 +1693,46 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "mn" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/modular_computer/laptop/preset/civilian, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/item/computer_hardware/card_slot, +/obj/machinery/modular_computer/console/preset/research{ + name = "modular console" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "mv" = ( -/obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 8 }, -/mob/living/simple_animal/pet/dog/corgi/Lisa, -/obj/structure/bed/dogbed, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "mw" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "my" = ( -/obj/structure/urinal{ - pixel_y = 29 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/borderfloorblack, +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/plasteel/tech, +/area/ship/security) "mJ" = ( -/obj/machinery/portable_atmospherics/pump, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/light_switch{ dir = 4; @@ -1308,13 +1742,37 @@ /obj/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire{ + dir = 1 + }, +/obj/structure/closet/crate/secure/gear{ + name = "Ammunition Crate" + }, +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm/rubbershot, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "mQ" = ( /obj/structure/cable{ icon_state = "2-4" }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "nh" = ( @@ -1322,38 +1780,43 @@ dir = 1 }, /obj/effect/turf_decal/siding/red, -/obj/machinery/door/window/brigdoor{ - req_ship_access = 1; - req_access_txt = "1"; - id = "ranger_brig"; - name = "Holding Cell Door" +/obj/effect/turf_decal/siding/red{ + dir = 6 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "no" = ( /obj/structure/cable{ icon_state = "6-8" }, -/obj/structure/chair/wood{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"nq" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "SecShutters"; + name = "Security Specialist's Office" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/security) "nA" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "nE" = ( /obj/machinery/button/door{ dir = 2; pixel_x = -2; - name = "Blast Doors"; + name = "Access Blast Doors"; id = "Ranger_AI_Core_Blasts"; - pixel_y = 22 + pixel_y = 22; + req_access_txt = "10" }, /obj/machinery/button/shieldwallgen{ dir = 2; @@ -1361,7 +1824,14 @@ pixel_y = 20; id = "AI_Core_Field_Engi" }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "nJ" = ( /obj/structure/cable/cyan{ @@ -1383,12 +1853,11 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "of" = ( -/obj/machinery/light/dim/directional/south, /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "og" = ( /obj/structure/railing{ @@ -1398,12 +1867,22 @@ dir = 8; icon_state = "computer-right" }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "oi" = ( -/obj/structure/railing/corner{ +/obj/effect/turf_decal/siding/blue{ dir = 8 }, +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "ok" = ( @@ -1413,13 +1892,23 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/door/poddoor{ + dir = 4; + id = "Ranger_Cycler_Shutters"; + name = "Air Cycler Lockdown" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "oq" = ( /obj/structure/cable/cyan{ @@ -1428,16 +1917,38 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "or" = ( +/obj/item/bodypart/leg/right/robot, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/leg/left/robot, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/chest/robot, +/obj/item/bodypart/head/robot, +/obj/item/borg/upgrade/ai, +/obj/item/robot_suit, +/obj/structure/closet/crate/engineering{ + name = "Robotics Crate" + }, +/obj/item/stock_parts/cell/high, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/borg/upgrade/restart, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plating, /area/ship/engineering) "ox" = ( /obj/structure/chair/sofa/brown/corner/directional/south, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/obj/item/ammo_casing/spent{ + pixel_x = 13; + desc = "A spent bullet-casing that someone hid behind the couch, likely to avoid the Lieutenant's ire." + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "oz" = ( -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "oI" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -1446,37 +1957,33 @@ /obj/machinery/door/window/northleft{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Port_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" + }, /turf/open/floor/plating, /area/ship/maintenance/port) -"oM" = ( -/obj/machinery/door/window/eastleft{ - dir = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) "oQ" = ( /obj/item/radio/intercom/directional/west, +/obj/machinery/camera/autoname{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/medical) "pa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "pf" = ( /obj/structure/closet/emcloset/wall/directional/south, @@ -1484,39 +1991,72 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "pi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/structure/table/rolling, +/obj/item/chair/plastic, +/obj/item/chair/plastic{ + pixel_y = 4 + }, +/obj/item/chair/plastic{ + pixel_y = 6 + }, +/obj/item/chair/plastic{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "pn" = ( /obj/structure/chair/wood, /obj/item/toy/figure/assistant{ layer = 3.1 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/molten_object{ + pixel_x = 10 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "pp" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 13; - pixel_y = 2 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/structure/mirror{ - pixel_x = 24 +/obj/structure/window/reinforced/tinted, +/obj/structure/dresser{ + dir = 1 + }, +/obj/structure/bedsheetbin/empty{ + pixel_y = 7 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 }, -/turf/open/floor/plastic, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "ps" = ( -/obj/structure/closet/secure_closet/lp/engineer, /obj/machinery/light/dim/directional/north, /obj/item/clothing/gloves/color/yellow{ pixel_y = -9 @@ -1551,10 +2091,19 @@ /obj/item/clothing/head/welding{ pixel_y = -9 }, -/obj/item/clothing/glasses/meson/gar{ - pixel_y = 8 +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/hud/diagnostic, +/obj/item/pipe_dispenser, +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/obj/structure/closet/secure_closet/lp/engineer, /obj/item/gun/energy/plasmacutter, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -10 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "pA" = ( @@ -1562,56 +2111,68 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/stairs{ - dir = 1 + dir = 1; + color = "#a8b2b6" }, /area/ship/bridge) "pD" = ( +/obj/structure/closet/crate/secure/loot, /turf/open/floor/plasteel/tech, /area/ship/cargo) "pL" = ( /obj/structure/chair/comfy/blue/directional/east, -/obj/item/toy/plush/moth/royal, +/obj/item/toy/plush/moth/royal{ + layer = 3.05; + pixel_x = -6; + pixel_y = 11 + }, /obj/item/radio/intercom/wideband/directional/south, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/item/toy/plush/moth/lovers{ + layer = 3.05; + pixel_x = 4 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "pU" = ( /obj/machinery/camera/autoname{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "qb" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/industrial/outline/blue, -/obj/structure/janitorialcart{ - dir = 4 - }, -/obj/item/mop, -/turf/open/floor/plating, +/obj/structure/reagent_dispensers/foamtank, +/obj/item/extinguisher/advanced, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "qe" = ( -/obj/structure/urinal{ - pixel_y = 29 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/girder/reinforced, +/obj/machinery/camera/autoname{ dir = 6 }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) -"qs" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"qn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, +/obj/structure/bed/dogbed, +/mob/living/simple_animal/pet/dog/corgi/Lisa, +/turf/open/floor/wood, +/area/ship/crew/dorm/captain) +"qs" = ( /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/machinery/power/shuttle/engine/electric/premium, /turf/open/floor/plating, /area/ship/maintenance/starboard) "qQ" = ( @@ -1621,10 +2182,6 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "qR" = ( -/obj/machinery/door/airlock/security/glass, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only{ @@ -1632,6 +2189,13 @@ }, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/corner/opaque/red/full, +/obj/machinery/door/airlock/security{ + name = "Security Specialist's Office"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ship/security) "qS" = ( @@ -1640,38 +2204,55 @@ }, /obj/effect/decal/cleanable/oil/streak, /obj/machinery/light/dim/directional/north, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/ship/maintenance/port) "qZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/machinery/holopad, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "rg" = ( -/obj/machinery/portable_atmospherics/scrubber, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "rq" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/stairs, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, /area/ship/crew/cryo) +"rw" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "rA" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/siding/yellow, -/obj/machinery/holopad, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"rC" = ( +/obj/structure/chair/office{ + dir = 8; + name = "tactical swivel chair" + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"rC" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -1693,31 +2274,31 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "rM" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "rT" = ( -/obj/structure/reagent_dispensers/water_cooler, /obj/machinery/light_switch{ dir = 1; pixel_x = -7; pixel_y = -19 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "rW" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -1728,7 +2309,8 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -1736,21 +2318,20 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "rX" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 +/obj/structure/railing{ + dir = 5; + layer = 4.1 }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/obj/structure/closet/firecloset/wall/directional/west, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "rZ" = ( /obj/effect/turf_decal/atmos/air, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 }, /turf/open/floor/engine/air, /area/ship/hallway/central) @@ -1763,13 +2344,28 @@ color = "#c1b6a5" }, /obj/machinery/fax/nanotrasen, -/turf/open/floor/plasteel/dark, +/obj/machinery/camera/autoname{ + dir = 6 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/button/door{ + pixel_y = 21; + id = "BridgeAtrium"; + name = "Atrium Shutters"; + pixel_x = 9 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "sl" = ( -/obj/effect/turf_decal/borderfloorblack{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 9 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "sm" = ( /obj/structure/cable{ @@ -1782,8 +2378,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) +"sp" = ( +/obj/machinery/camera/autoname, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "sw" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1794,10 +2396,9 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "sF" = ( -/obj/structure/table/greyscale, /obj/item/storage/box/syringes{ pixel_y = 10; pixel_x = -5 @@ -1813,28 +2414,51 @@ pixel_x = 5 }, /obj/machinery/light/dim/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel/white, /area/ship/medical) "sJ" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/central) "sR" = ( -/obj/structure/table/wood, /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/siding/red/end, -/obj/item/toy/plush/spider, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/computer/security/telescreen{ + dir = 1; + pixel_y = -32; + network = list("ss13") + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "sU" = ( -/obj/structure/table/greyscale, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-10" +/obj/effect/turf_decal/industrial/warning{ + dir = 9 }, -/obj/effect/turf_decal/siding/blue{ - dir = 5 +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 9 + }, +/obj/effect/turf_decal/borderfloorwhite/corner, +/obj/structure/sink{ + dir = 8; + pixel_x = 12; + pixel_y = 4 + }, +/obj/machinery/button/door{ + pixel_x = 26; + dir = 8; + name = "Medical Shutters"; + id = "MedShutters"; + req_ship_access = 1; + req_access_txt = "5" + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 25; + pixel_y = -9 }, -/obj/item/defibrillator/loaded, /turf/open/floor/plasteel/white, /area/ship/medical) "tb" = ( @@ -1865,20 +2489,20 @@ /obj/structure/cable{ icon_state = "4-10" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "tg" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/machinery/power/shuttle/engine/electric/premium, /turf/open/floor/plating, /area/ship/maintenance/port) "tj" = ( /obj/machinery/door/airlock/command{ - dir = 4 + dir = 4; + name = "Bridge"; + req_one_access_txt = list(50, 10, 5, 1, 20) }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1898,8 +2522,10 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "tk" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow, +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 6 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "tq" = ( @@ -1921,7 +2547,10 @@ dir = 8; icon_state = "computer-left" }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "tQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -1931,49 +2560,63 @@ /obj/effect/turf_decal/siding/red{ dir = 1 }, -/obj/structure/cable{ - icon_state = "1-6" +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/siding/red{ + dir = 5 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/light_switch{ + pixel_x = 20; + pixel_y = 11; + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/security) "tR" = ( /obj/structure/cable{ icon_state = "4-9" }, /obj/machinery/light/dim/directional/south, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "tT" = ( -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "tZ" = ( /obj/machinery/button/door{ dir = 4; pixel_x = -21; name = "Shutters"; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + req_ship_access = 1; + pixel_y = 5 }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "uk" = ( -/obj/item/clothing/suit/space/eva, -/obj/item/clothing/head/helmet/space/eva, /obj/item/clothing/mask/breath, -/obj/structure/closet/emcloset/empty{ - name = "emergency EVA gear" - }, /obj/item/tank/internals/emergency_oxygen, /obj/effect/turf_decal/siding/yellow{ dir = 5 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/turf/open/floor/plasteel/tech, /area/ship/hallway/starboard) "up" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/airalarm/directional/north, /obj/structure/cable{ icon_state = "2-4" @@ -1981,10 +2624,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/holopad, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 1 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -1993,7 +2637,20 @@ /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "ux" = ( /obj/machinery/light/dim/directional/south, @@ -2003,9 +2660,13 @@ name = "Nanotrasen relay"; network = "nt_commnet" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 10 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "uE" = ( /obj/structure/cable{ @@ -2014,22 +2675,25 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "uH" = ( -/obj/machinery/door/airlock/public/glass, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Port"; + id = "RangerPortShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "uW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2039,27 +2703,30 @@ dir = 4 }, /obj/effect/turf_decal/siding/blue, -/obj/machinery/iv_drip, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/ship/medical) "vh" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/machinery/door/window, +/obj/machinery/door/window{ + req_ship_access = 1; + name = "Surgical Compartment" + }, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "vj" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/camera/autoname{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "vk" = ( /obj/structure/sink{ @@ -2074,11 +2741,36 @@ pixel_x = -7; pixel_y = 21 }, -/turf/open/floor/plastic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/item/towel{ + pixel_x = 10; + pixel_y = 14 + }, +/obj/item/towel{ + pixel_x = -7; + pixel_y = 14 + }, +/obj/structure/railing{ + dir = 1; + name = "towel holder" + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "vm" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/medical) +"vo" = ( +/obj/structure/crate_shelf, +/obj/structure/sign/nanotrasen/ns{ + pixel_x = 32 + }, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ship/cargo) "vp" = ( /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 5 @@ -2086,47 +2778,76 @@ /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 6 }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "vr" = ( /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine/air, /area/ship/hallway/central) "vv" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil, /turf/open/floor/plating, /area/ship/maintenance/starboard) "vz" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/dim/directional/south, +/obj/structure/closet/crate/hydroponics{ + name = "Sustenance Crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/storage/ration/assorted_salted_offal, +/obj/item/storage/ration/battered_fish_sticks, +/obj/item/storage/ration/beef_goulash, +/obj/item/storage/ration/beef_strips, +/obj/item/storage/ration/fried_fish, +/obj/machinery/airalarm/directional/south, /turf/open/floor/plasteel/tech, /area/ship/cargo) "vB" = ( -/obj/machinery/cryopod, /obj/machinery/camera/autoname, +/obj/machinery/cryopod, /turf/open/floor/plasteel/telecomms_floor, /area/ship/crew/cryo) "vF" = ( -/obj/effect/turf_decal/siding/blue, -/obj/structure/closet/crate/freezer/blood, -/obj/structure/railing{ - dir = 8; - layer = 4.1 +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/door/window/survival_pod{ + dir = 4; + opacity = 1; + name = "Medical Specialist's Quarters"; + req_access_txt = "5"; + req_ship_access = 1 + }, +/turf/open/floor/plasteel/stairs/wood{ + dir = 8 }, -/turf/open/floor/plasteel/white, /area/ship/medical) "vO" = ( -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "vR" = ( -/obj/machinery/light/dim/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, @@ -2136,15 +2857,16 @@ /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/obj/machinery/light/dim/directional/west, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "vS" = ( -/obj/structure/table/optable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, -/obj/effect/turf_decal/siding/blue, -/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "vT" = ( @@ -2166,20 +2888,23 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "vV" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal, /obj/structure/window/reinforced/spawner{ - dir = 4 + dir = 8 }, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/med, -/obj/item/clothing/mask/breath, -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/siding/blue{ - dir = 5 +/obj/effect/turf_decal/borderfloorwhite{ + dir = 4 }, -/obj/item/tank/internals/emergency_oxygen, +/obj/machinery/computer/operating, /turf/open/floor/plasteel/white, /area/ship/medical) "wc" = ( @@ -2189,25 +2914,27 @@ /obj/machinery/door/window/northright{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Port_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" + }, +/turf/open/floor/plating, /area/ship/maintenance/port) "wf" = ( -/obj/machinery/telecomms/receiver/preset_right{ - autolinkers = list("receiverB","hub"); - freq_listening = list(1353,1447,1459); - network = "nt_commnet" - }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 12 }, -/area/ship/engineering/communications) +/obj/machinery/photocopier, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "wh" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 4; @@ -2224,57 +2951,66 @@ /turf/open/floor/plasteel, /area/ship/hallway/starboard) "wp" = ( -/obj/item/clothing/suit/space/eva, -/obj/item/clothing/head/helmet/space/eva, /obj/item/clothing/mask/breath, /obj/item/tank/internals/emergency_oxygen, -/obj/structure/closet/emcloset/empty{ - name = "emergency EVA gear" - }, /obj/effect/turf_decal/siding/yellow{ dir = 6 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "wq" = ( /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "wu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) -"ww" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/turf_decal/siding/thinplating/dark, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/storage/equip) +"ww" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/chair/handrail, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "wC" = ( /obj/effect/turf_decal/steeldecal/steel_decals6, -/obj/effect/turf_decal/borderfloorblack{ - dir = 6 +/obj/machinery/telecomms/receiver/preset_right{ + autolinkers = list("receiverB","hub"); + freq_listening = list(1353,1447,1459); + network = "nt_commnet" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/circuit, /area/ship/engineering/communications) "wE" = ( /obj/machinery/button/door{ pixel_y = 21; name = "Blast Doors"; - id = "Ranger_Port_Blasts" + id = "Ranger_Port_Blasts"; + req_ship_access = 1 }, /obj/machinery/button/shieldwallgen{ pixel_y = 20; pixel_x = 8; id = "Ranger_Port_holofields" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "wT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2284,26 +3020,10 @@ dir = 4 }, /obj/effect/turf_decal/trimline/opaque/red/filled/corner, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "wU" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 19; - pixel_y = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow{ - dir = 6 - }, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/turf/open/floor/plasteel/tech, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering) "xj" = ( /obj/structure/cable{ @@ -2315,27 +3035,48 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "xp" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood, -/area/ship/medical) +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/lighter/greyscale{ + pixel_x = 8; + pixel_y = -8 + }, +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/pen/fourcolor{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "xq" = ( /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plating, /area/ship/engineering) "xv" = ( -/obj/machinery/recharge_station, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/crew/toilet) +/obj/structure/curtain/bounty, +/obj/machinery/shower{ + dir = 1 + }, +/turf/open/floor/plating/catwalk_floor, +/area/ship/security) "xw" = ( -/obj/structure/table/wood, /obj/machinery/microwave, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "xA" = ( /obj/structure/tank_dispenser/oxygen, @@ -2343,7 +3084,11 @@ /obj/effect/turf_decal/siding/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/starboard) "xB" = ( /obj/structure/cable{ @@ -2361,38 +3106,40 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 8 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "xK" = ( /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/folder/blue{ - pixel_x = -6 - }, -/obj/item/folder/red{ - pixel_y = 2 - }, -/obj/item/folder{ - pixel_y = 5; - pixel_x = 7 +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/item/binoculars, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "yi" = ( /obj/effect/turf_decal/industrial/warning, /obj/machinery/button/shieldwallgen{ dir = 8; pixel_x = 20; - pixel_y = -7; + pixel_y = 9; id = "AI_Core_Field_Engi" }, /obj/machinery/button/door{ dir = 8; pixel_x = 22; - name = "Blast Doors"; + name = "Access Blast Doors"; id = "Ranger_AI_Core_Blasts"; - pixel_y = 1 + pixel_y = 1; + req_access_txt = "10" }, /obj/structure/cable{ icon_state = "1-2" @@ -2402,17 +3149,34 @@ }, /turf/open/floor/plating, /area/ship/engineering) +"yk" = ( +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/ship/security) "ym" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "yo" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "yA" = ( /obj/machinery/telecomms/hub{ @@ -2420,50 +3184,64 @@ id = "Nanotrasen Communications Hub"; autolinkers = list("hub","bus","relay","messaging","nanotrasen","broadcasterB","receiverB") }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "yC" = ( -/obj/structure/toilet{ - dir = 1 +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" }, -/turf/open/floor/plastic, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/noslip, /area/ship/crew/toilet) -"yK" = ( -/obj/item/soap/nanotrasen, -/obj/structure/window/reinforced/tinted/frosted{ +"yG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/chair/handrail{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/crew/toilet) +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/central) +"yK" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "yU" = ( /obj/structure/table/reinforced, -/obj/item/storage/belt/utility, -/obj/item/t_scanner{ - pixel_x = 7; - pixel_y = 4 - }, -/obj/item/weldingtool{ - pixel_x = -6 +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/item/stack/cable_coil/random, -/obj/item/multitool, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "yZ" = ( -/obj/structure/reagent_dispensers/watertank, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable{ icon_state = "0-9" }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/machinery/suit_storage_unit/inherit{ + name = "Medical Specialist's Storage Unit" + }, +/obj/item/clothing/suit/space/hardsuit/ert/lp/med, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/oxygen, +/obj/effect/turf_decal/industrial/outline/blue, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "zc" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, @@ -2473,7 +3251,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "zi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -2483,23 +3263,24 @@ dir = 1 }, /obj/machinery/door/airlock/public/glass, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "zB" = ( -/obj/machinery/camera/autoname{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/nsorange/line, +/obj/structure/railing/corner{ + dir = 8 }, -/obj/machinery/door/window{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/chair/office{ + dir = 8 }, -/turf/open/floor/circuit/green/airless, -/area/ship/engineering/communications) +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) "zC" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2510,60 +3291,111 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 8; - name = "Cargo Bay"; - id = "Ranger_Cargo_Door" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 9 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + name = "Cargo Bay"; + id = "Ranger_Cargo_Door" + }, +/obj/machinery/button/door{ + name = "Cargo Bay Shutters"; + id = "Ranger_Cargo_Door"; + pixel_y = 23; + req_ship_access = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "zF" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "zW" = ( /turf/template_noop, /area/template_noop) +"Ab" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/ship/security) "Ao" = ( /obj/structure/cable{ icon_state = "2-4" }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Av" = ( -/obj/structure/table/wood, /obj/item/toy/cards/deck{ pixel_x = -1; pixel_y = 10 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Aw" = ( /turf/open/floor/wood, /area/ship/medical) "AF" = ( /obj/structure/chair/comfy/shuttle{ - dir = 4 + dir = 4; + name = "Operations Monitoring" }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/button/door{ + pixel_y = 20; + pixel_x = -5; + name = "Starboard Corridor Shutters"; + id = "RangerStarboardShutters" + }, +/obj/machinery/button/door{ + pixel_y = 20; + pixel_x = 5; + name = "Port Corridor Shutters"; + id = "RangerPortShutters" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "AH" = ( -/obj/effect/turf_decal/borderfloorblack/corner{ - dir = 8 - }, /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/button/door{ + dir = 4; + pixel_x = -26; + id = "AiCore"; + name = "Core Access"; + req_access_txt = "20" + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "AP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2575,29 +3407,44 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "AT" = ( /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "AZ" = ( /obj/machinery/airalarm/directional/west, /turf/open/floor/wood, /area/ship/security) "Be" = ( -/obj/structure/reagent_dispensers/fueltank, /obj/machinery/light/dim/directional/south, /obj/machinery/button/door{ dir = 4; id = "Ranger_FireFighting_Shut"; - name = "Shutters"; + name = "Ready Room"; pixel_x = -22; - pixel_y = 6 + pixel_y = 6; + req_one_access_txt = "50,10,5,1,20"; + req_ship_access = 1; + req_one_access = list(50, 10, 5, 1, 20) }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/item/clothing/suit/space/hardsuit/ert/lp/sec, +/obj/machinery/suit_storage_unit/inherit{ + name = "Security Specialist's Storage Unit" + }, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/oxygen/red, +/obj/effect/turf_decal/industrial/outline/red, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "Bg" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 8; @@ -2616,22 +3463,28 @@ /turf/open/floor/plasteel, /area/ship/hallway/starboard) "Bh" = ( -/turf/open/floor/plasteel/stairs/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/turf/open/floor/wood, /area/ship/engineering) "Bl" = ( -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 4 +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "Bo" = ( /obj/effect/turf_decal/steeldecal/steel_decals4, -/obj/effect/turf_decal/borderfloorblack{ - dir = 4 - }, /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 }, @@ -2641,19 +3494,30 @@ /obj/effect/turf_decal/steeldecal/steel_decals6{ dir = 8 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "BA" = ( -/obj/machinery/shower{ +/obj/machinery/light/small/directional/east, +/obj/structure/toilet{ dir = 1 }, -/obj/structure/curtain, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "BI" = ( -/obj/machinery/door/airlock/wood, -/turf/open/floor/plasteel/white, +/obj/machinery/door/airlock/wood{ + name = "Toilets"; + req_ship_access = 0 + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "BO" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -2662,38 +3526,37 @@ /obj/machinery/door/window/northleft{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_SB_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "BX" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/firecloset/wall/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "BY" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-9" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Ca" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-8" @@ -2704,7 +3567,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/effect/turf_decal/spline/fancy/opaque/orange/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -2717,7 +3583,9 @@ dir = 6 }, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/industrial/hatch/blue, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Cg" = ( /obj/structure/cable{ @@ -2727,47 +3595,50 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Cq" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, -/turf/open/floor/circuit/green/airless, +/obj/machinery/blackbox_recorder, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ct" = ( -/obj/structure/table/greyscale, /obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/siding/blue{ - dir = 6 +/obj/effect/turf_decal/industrial/warning{ + dir = 10 }, -/obj/item/roller{ - pixel_x = 5; - pixel_y = 12 +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 10 }, -/obj/item/roller{ - pixel_x = -3; - pixel_y = 7 +/obj/effect/turf_decal/borderfloorwhite/corner{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 8; + pixel_y = 2 }, /turf/open/floor/plasteel/white, /area/ship/medical) "CB" = ( -/obj/effect/turf_decal/borderfloorblack{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 10 }, -/obj/effect/turf_decal/techfloor/hole/right, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "CD" = ( -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/machinery/computer/helm/viewscreen/directional/east, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "CG" = ( /obj/machinery/door/airlock/public/glass, @@ -2777,23 +3648,25 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "CI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel/dark, /area/ship/bridge) "CJ" = ( -/obj/machinery/atmospherics/components/binary/pump/layer2{ - dir = 8; - name = "Air Supply Pump" - }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/hallway/central) "CN" = ( @@ -2805,65 +3678,192 @@ /obj/structure/window/reinforced{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, /turf/open/floor/engine/air, /area/ship/hallway/central) "CP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "Ranger_Cycler_Shutters"; + name = "Air Cycler Lockdown" + }, +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, +/area/ship/hallway/central) +"CW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/button/door{ + pixel_x = 21; + dir = 8; + pixel_y = 3; + name = "Cryogenics Access"; + id = "RangerCryoShutters" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "RangerCryoShutters"; + name = "Cryogenic Storage" + }, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, +/area/ship/crew/cryo) +"Dd" = ( +/obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"Dr" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "AI_Core_Field_Engi"; + dir = 8 + }, +/obj/machinery/door/poddoor{ + dir = 2; + id = "Ranger_AI_Core_Blasts"; + name = "Communications Access" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/noslip, +/area/ship/engineering) +"Ds" = ( /obj/machinery/camera/autoname{ - dir = 10 + dir = 6 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 4 + }, +/obj/effect/turf_decal/steeldecal/steel_decals6{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 5 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) +"Dx" = ( +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/machinery/button/door{ + id = "SecureCell"; + normaldoorcontrol = 1; + pixel_x = 7; + pixel_y = 10; + specialfunctions = 4; + req_access_txt = "1"; + req_ship_access = 1; + name = "Cell Bolt Controls" + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/machinery/button/door{ + id = "SecShutters"; + name = "Privacy Shutters"; + layer = 2.92; + req_ship_access = 1; + req_access_txt = "1"; + pixel_x = -5; + pixel_y = 10 + }, +/obj/machinery/button/door{ + id = "CellHallShutters"; + name = "Cell Hall Shutters"; + req_access_txt = "1"; + req_ship_access = 1; + pixel_x = -5; + pixel_y = 2; + layer = 2.91 + }, +/obj/machinery/button/door{ + pixel_y = -6; + pixel_x = -5; + id = "SecCellWindowShutters"; + name = "Cell Window Shutters"; + req_access_txt = "1"; + req_ship_access = 1 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/ship/security) +"DE" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/recharger{ + dir = 4; + pixel_x = -8 + }, +/obj/machinery/cell_charger{ + dir = 4; + pixel_x = 5 }, -/turf/open/floor/engine/hull, -/area/ship/external) -"Dd" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/industrial/outline/orange, -/turf/open/floor/plasteel/tech, -/area/ship/maintenance/starboard) -"Dr" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "AI_Core_Field_Engi"; - dir = 8 +/obj/structure/table/reinforced, +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = -9; + pixel_y = 13; + amount = 100 }, -/obj/machinery/door/poddoor{ - dir = 2; - id = "Ranger_AI_Core_Blasts" +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = 11; + pixel_y = 13; + amount = 100 }, -/obj/structure/cable, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = 5; + pixel_y = 13; + amount = 100 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Ds" = ( -/obj/machinery/camera/autoname{ - dir = 6 +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = -2; + pixel_y = 13; + amount = 100 }, -/obj/effect/turf_decal/borderfloorblack/corner, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 8 }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 4 +/obj/item/stock_parts/cell/gun, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) +"DQ" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/steeldecal/steel_decals6{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/turf/open/floor/plasteel/tech/airless, -/area/ship/engineering/communications) -"Dx" = ( -/turf/open/floor/plasteel/dark, -/area/ship/security) -"DE" = ( -/obj/item/storage/box/metalfoam, -/obj/item/watertank/atmos, -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/hallway/central) "DW" = ( /obj/structure/cable/cyan{ icon_state = "0-4" @@ -2876,23 +3876,41 @@ /area/ship/maintenance/starboard) "DZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/button/door{ - dir = 4; - pixel_x = -20; - name = "Cargo Bay Shutters"; - id = "Ranger_Cargo_Door"; - pixel_y = 1 - }, +/obj/structure/filingcabinet/double, /turf/open/floor/plasteel/tech, /area/ship/cargo) "Ek" = ( /obj/machinery/computer/telecomms/server, -/turf/open/floor/plasteel/dark, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) +"Ep" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "Eq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning, +/obj/effect/turf_decal/siding{ + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) +"EA" = ( +/obj/structure/crate_shelf, +/obj/machinery/light/dim/directional/west, /turf/open/floor/plasteel/tech, /area/ship/cargo) "EL" = ( @@ -2903,45 +3921,52 @@ /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "EP" = ( /obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ff" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Fg" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/siding/wood/end{ +/obj/effect/turf_decal/trimline/opaque/nsorange/corner{ dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Fh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 9 +/obj/item/paper/crumpled, +/obj/item/paper/crumpled{ + pixel_x = 6; + pixel_y = -1 }, -/obj/machinery/door/airlock/external{ - dir = 4 +/obj/item/paper/crumpled{ + pixel_x = -10; + pixel_y = 6 }, -/obj/machinery/door/firedoor/border_only{ +/obj/item/paper/crumpled{ + pixel_y = -6; + pixel_x = -4 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) +"Fh" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" }, -/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Fw" = ( /obj/structure/cable{ @@ -2953,11 +3978,13 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/door/airlock/wood, +/obj/machinery/door/airlock/wood{ + name = "Restroom"; + req_ship_access = 0 + }, /turf/open/floor/plasteel/white, /area/ship/crew/toilet) "Fx" = ( -/obj/structure/table/wood, /obj/item/storage/box/matches{ pixel_y = 4 }, @@ -2969,7 +3996,13 @@ pixel_y = 2; pixel_x = -5 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "FB" = ( /obj/structure/cable{ @@ -2978,15 +4011,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ - dir = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engineering Sector" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 }, /turf/open/floor/plasteel/tech, /area/ship/engineering) @@ -3001,32 +4043,33 @@ dir = 4 }, /obj/machinery/airalarm/directional/south, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "Gc" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp, -/obj/item/clothing/under/rank/security/head_of_security/alt/lp, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/suit/jacket/miljacket, -/obj/item/clothing/suit/jacket/leather/duster/command, -/obj/item/storage/backpack/messenger/com, -/obj/item/storage/backpack/satchel/cap, -/obj/item/storage/backpack/captain, -/obj/item/storage/backpack/duffelbag/captain, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/ert/lp, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/emergency_oxygen/double, +/turf/open/floor/plasteel/tech, +/area/ship/crew/dorm/captain) "Ge" = ( /obj/structure/cable{ icon_state = "0-8" }, /obj/machinery/power/port_gen/pacman, -/obj/item/stack/sheet/mineral/plasma/twenty, /obj/effect/turf_decal/industrial/outline/orange, +/obj/item/stack/sheet/mineral/plasma/twenty, /turf/open/floor/plating, /area/ship/engineering) "Gh" = ( @@ -3036,24 +4079,20 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Gk" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/closet/emcloset/wall/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Gn" = ( /obj/structure/table/wood, @@ -3064,8 +4103,22 @@ /obj/item/toy/plush/moth/snow{ pixel_x = -3 }, +/obj/item/folder/blue{ + pixel_x = -3; + pixel_y = -10 + }, +/obj/item/flashlight/pen{ + pixel_x = -5; + pixel_y = -9 + }, /turf/open/floor/wood, /area/ship/medical) +"Gs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Gz" = ( /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 @@ -3076,22 +4129,29 @@ /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 4 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "GC" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal, +/obj/structure/window/reinforced/spawner, /obj/structure/window/reinforced/spawner{ - dir = 4 + dir = 8 }, -/obj/effect/turf_decal/siding/blue{ +/obj/structure/cable{ + icon_state = "6-8" + }, +/obj/effect/turf_decal/borderfloorwhite/corner{ dir = 4 }, /turf/open/floor/plasteel/white, /area/ship/medical) "GE" = ( -/obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, +/obj/structure/table/optable, +/obj/effect/turf_decal/borderfloorwhite/full, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = 24 + }, +/turf/open/floor/noslip, /area/ship/medical) "GG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3103,50 +4163,54 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "GY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /obj/effect/turf_decal/siding/wood, /obj/item/radio/intercom/directional/south, +/obj/item/bedsheet/orange, +/obj/structure/bed, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/open/floor/wood, /area/ship/engineering) "Ha" = ( -/obj/structure/closet/secure_closet/lp/lieutenant, -/obj/item/stock_parts/cell/gun, /obj/item/melee/classic_baton/telescopic, /obj/item/melee/knife/survival, /obj/item/gps, /obj/item/screwdriver, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, /obj/machinery/light_switch{ dir = 1; pixel_x = 7; pixel_y = -20 }, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm/rubbershot, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/storage/pistolcase/commander, /obj/item/storage/pistolcase/egun, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Hd" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/shutters{ - id = "Engineering_Specialist_Shutters"; +/obj/item/megaphone/command, +/obj/structure/closet/secure_closet/lp/lieutenant, +/obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/dorm/captain) +"Hd" = ( +/obj/structure/grille, /obj/structure/cable{ icon_state = "5-8" }, /obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/shutters{ + id = "Engineering_Specialist_Shutters"; + dir = 4; + name = "Communications Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "Hs" = ( @@ -3156,27 +4220,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/orange/full, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 5 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "Hy" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "HA" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ @@ -3193,6 +4255,7 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/ship/hallway/port) "HZ" = ( @@ -3207,10 +4270,30 @@ dir = 4; pixel_x = -21; name = "Shutters"; - id = "Ranger_Port_maint_shut" + id = "Ranger_Port_maint_shut"; + req_ship_access = 1 }, +/obj/effect/spawner/lootdrop/waste/trash, /turf/open/floor/plating, /area/ship/maintenance/port) +"Ih" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = 14; + pixel_y = 4 + }, +/obj/item/stack/medical/suture{ + amount = 1; + name = "bloody suture" + }, +/obj/item/melee/knife/kitchen{ + pixel_y = -12 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "Iy" = ( /obj/structure/table/wood, /obj/machinery/light/dim/directional/north, @@ -3229,6 +4312,10 @@ /obj/item/radio{ pixel_x = -2 }, +/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry{ + pixel_x = 8; + pixel_y = 9 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "Iz" = ( @@ -3236,11 +4323,45 @@ /obj/structure/cable{ icon_state = "0-10" }, +/obj/structure/closet/secure_closet{ + icon_state = "qm"; + name = "Logistics Specialist's Locker"; + req_ship_access = 1; + req_one_access = list(50) + }, +/obj/item/clothing/suit/hooded/wintercoat/cargo{ + pixel_x = 14 + }, +/obj/item/clothing/shoes/sneakers/brown{ + pixel_x = -10; + pixel_y = -12 + }, +/obj/item/storage/backpack/satchel/leather{ + pixel_y = -6 + }, +/obj/item/clothing/under/nanotrasen/supply/qm, +/obj/item/gps{ + pixel_x = 11; + pixel_y = 9 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10; + pixel_y = 12 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10; + pixel_y = 6 + }, /turf/open/floor/plasteel/tech, /area/ship/cargo) "IC" = ( /obj/effect/turf_decal/corner/opaque/orange/full, -/obj/machinery/door/airlock/engineering/glass, +/obj/machinery/door/airlock/engineering/glass{ + name = "Electrical Bay" + }, /obj/structure/cable{ icon_state = "1-2" }, @@ -3250,18 +4371,28 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor, /turf/open/floor/plasteel/tech, /area/ship/engineering) "IE" = ( /obj/machinery/light/floor, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "IM" = ( /obj/structure/chair/sofa/brown/directional/west, /obj/item/toy/plush/blahaj{ layer = 3.1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "IQ" = ( /obj/machinery/cryopod, @@ -3273,19 +4404,19 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Ji" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/sec, -/obj/item/clothing/mask/breath, -/obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/siding/red{ - dir = 5 +/obj/effect/turf_decal/borderfloorblack, +/obj/structure/chair/handrail{ + dir = 4 }, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "Js" = ( /obj/machinery/holopad, @@ -3293,7 +4424,7 @@ dir = 8 }, /obj/effect/turf_decal/siding/red/corner, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Jw" = ( /obj/structure/cable/cyan{ @@ -3305,20 +4436,14 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "JK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/mirror{ - pixel_x = -25 - }, -/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/ship/engineering) "JO" = ( -/obj/machinery/door/airlock/command, +/obj/machinery/door/airlock/command{ + req_access_txt = "20"; + name = "Lieutenant's Quarters" + }, /obj/structure/cable{ icon_state = "1-2" }, @@ -3327,7 +4452,7 @@ }, /obj/machinery/door/firedoor/border_only, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "JP" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3341,38 +4466,40 @@ /turf/open/floor/plating, /area/ship/engineering) "JR" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/cryo) "Kf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Kg" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering/communications) "Kj" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ dir = 8 }, /obj/effect/decal/cleanable/plasma, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "Kl" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/computer/helm/viewscreen/directional/west, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Kt" = ( -/obj/machinery/holopad, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "Kw" = ( @@ -3381,18 +4508,17 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 + dir = 5 }, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "KC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "KQ" = ( /obj/structure/closet, /obj/item/pickaxe, @@ -3405,7 +4531,11 @@ /obj/effect/turf_decal/siding/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "KX" = ( /obj/structure/cable{ @@ -3424,24 +4554,29 @@ /obj/effect/turf_decal/trimline/opaque/red/filled/corner{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Lg" = ( -/obj/structure/window/reinforced, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, /obj/effect/turf_decal/siding/red, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Lk" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/bridge) "Lt" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/turf/open/floor/plastic, +/obj/machinery/airalarm/directional/west, +/obj/machinery/door/window{ + opacity = 1; + name = "Toilet" + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "Lu" = ( /obj/structure/cable{ @@ -3453,31 +4588,27 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Lw" = ( -/obj/structure/bed, -/obj/item/bedsheet/orange, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/engineering) +/obj/effect/turf_decal/industrial/outline/orange, +/obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) "LM" = ( /obj/machinery/telecomms/processor/preset_four{ autolinkers = list("processor4","bus"); network = "nt_commnet"; id = "Nanotrasen Communications Processor" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "LQ" = ( /obj/structure/cable{ @@ -3486,6 +4617,7 @@ /obj/effect/turf_decal/industrial/outline/orange, /obj/machinery/power/port_gen/pacman/super, /obj/item/stack/sheet/mineral/uranium/five, +/obj/effect/decal/cleanable/greenglow, /turf/open/floor/plating, /area/ship/engineering) "LU" = ( @@ -3494,39 +4626,46 @@ id = "Ranger_Bridge_Shutters" }, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/bridge) "LV" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/maintenance/port) "Ma" = ( -/obj/structure/chair/wood, /obj/effect/turf_decal/siding/red{ dir = 4 }, /obj/effect/turf_decal/siding/red{ dir = 8 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Mc" = ( -/obj/structure/toilet{ +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/machinery/shower{ dir = 1 }, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plastic, +/obj/item/soap/nanotrasen, +/turf/open/floor/noslip, /area/ship/crew/toilet) "Md" = ( /obj/structure/AIcore, /obj/item/mmi/posibrain, /obj/item/circuitboard/aicore, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Mf" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/dorm) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/captain) "Mg" = ( /obj/structure/cable{ icon_state = "1-2" @@ -3534,17 +4673,21 @@ /obj/structure/cable{ icon_state = "1-6" }, -/obj/effect/turf_decal/corner/opaque/orange/border{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/structure/chair/handrail{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "Mh" = ( /obj/machinery/computer/apc_control{ - dir = 4 + dir = 4; + icon_state = "computer-left" }, /obj/effect/turf_decal/techfloor, /turf/open/floor/plasteel/mono/dark, @@ -3553,12 +4696,16 @@ /obj/structure/cable{ icon_state = "5-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Mn" = ( -/obj/machinery/holopad, +/obj/machinery/holopad{ + pixel_x = 1; + pixel_y = 1 + }, /obj/effect/turf_decal/trimline/opaque/ntblue, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ms" = ( /obj/machinery/button/door{ @@ -3568,24 +4715,31 @@ dir = 1; pixel_x = 6 }, +/obj/effect/turf_decal/steeldecal/steel_decals4, /obj/effect/turf_decal/techfloor{ - dir = 8 + dir = 10 }, -/obj/effect/turf_decal/steeldecal/steel_decals4, -/turf/open/floor/plasteel/dark, +/obj/machinery/door/window/survival_pod{ + dir = 8; + name = "Captain's Nest"; + req_one_access_txt = list(50, 10, 5, 1, 20) + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "Mt" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -3608,32 +4762,32 @@ dir = 5 }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Mx" = ( /obj/machinery/light_switch{ dir = 8; pixel_x = 19; pixel_y = 8 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "Mz" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "1-2" }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/turf_decal/siding/yellow{ - dir = 9 - }, /obj/machinery/button/door{ dir = 4; pixel_y = 6; pixel_x = -22; id = "Engineering_Specialist_Shutters"; - name = "Privacy Shutters" + name = "Comms Shutters" }, /obj/machinery/camera/autoname{ dir = 5 @@ -3644,12 +4798,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 9 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "MD" = ( -/obj/item/disk/design_disk/ammo_c9mm, -/turf/open/floor/plating, -/area/ship/engineering) +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "MI" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3658,33 +4824,55 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "MK" = ( -/obj/structure/table/reinforced, -/obj/item/aicard, -/obj/item/stack/sheet/rglass{ - amount = 25 +/obj/structure/sign/nanotrasen{ + pixel_x = 32 }, -/obj/item/wrench, -/obj/item/stack/cable_coil/cyan, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "ML" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/closet/crate/trashcart/laundry, -/turf/open/floor/plating, +/obj/item/clothing/under/nanotrasen, +/obj/item/clothing/under/nanotrasen, +/obj/item/clothing/shoes/sneakers/black{ + pixel_y = -10 + }, +/obj/item/clothing/shoes/sneakers/black{ + pixel_y = -10 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) +"MR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/central) "MW" = ( /obj/item/radio/intercom/directional/south, /obj/machinery/computer/helm{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "MY" = ( /obj/effect/turf_decal/corner/opaque/ntblue/border{ @@ -3699,7 +4887,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Nd" = ( /obj/structure/cable{ @@ -3709,6 +4897,9 @@ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plating, /area/ship/engineering) "Nf" = ( @@ -3719,74 +4910,81 @@ id = "Ranger_AI_Core_Ext_Blasts" }, /obj/machinery/light/dim/directional/south, -/turf/open/floor/circuit/green/airless, +/obj/machinery/telecomms/message_server/preset{ + autolinkers = list("messaging","hub"); + network = "nt_commnet"; + layer = 3.1 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Nn" = ( /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Nu" = ( /obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ny" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/item/clothing/head/beret/eng/hazard, -/obj/item/storage/backpack/satchel/eng, -/obj/item/storage/backpack/messenger/engi, -/obj/item/storage/backpack/industrial, -/obj/item/storage/backpack/duffelbag/engineering, -/obj/effect/turf_decal/siding/wood/end{ +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/item/clothing/under/rank/engineering/engineer/nt/lp, -/obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp, +/obj/machinery/door/window/survival_pod{ + dir = 1; + opacity = 1; + req_one_access_txt = "10"; + name = "Engineering Specialist's Quarters" + }, /turf/open/floor/wood, /area/ship/engineering) "NC" = ( /obj/machinery/camera/autoname{ dir = 6 }, -/obj/machinery/light/floor, +/obj/machinery/light/floor{ + pixel_y = -9 + }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "NM" = ( /turf/open/floor/plasteel/stairs{ - dir = 4 + dir = 4; + color = "#a8b2b6" }, /area/ship/bridge) "NR" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "NS" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/structure/closet/crate/medical{ - name = "anesthetics crate" - }, -/obj/item/tank/internals/anesthetic, -/obj/item/tank/internals/anesthetic{ - pixel_x = 3 - }, -/obj/item/clothing/mask/breath/medical, -/obj/item/clothing/mask/breath/medical{ - pixel_x = 3 +/obj/structure/crate_shelf, +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/siding/blue{ + dir = 10 }, +/obj/machinery/iv_drip, /turf/open/floor/plasteel/white, /area/ship/medical) "NZ" = ( @@ -3796,24 +4994,61 @@ /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) +"Og" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/machinery/air_sensor/external, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Om" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/rank/medical/paramedic/skirt/lp, -/obj/item/clothing/under/rank/medical/paramedic/lp, -/obj/item/clothing/suit/hooded/wintercoat/medical, -/obj/item/clothing/head/beret/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/messenger/med, -/obj/item/storage/backpack/medic, -/obj/item/storage/backpack/duffelbag/med, -/turf/open/floor/wood, -/area/ship/medical) +/obj/effect/turf_decal/trimline/opaque/nsorange/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1; + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) "On" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/sprayweb, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 6 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_y = 16 + }, +/obj/item/paper_bin{ + pixel_x = 7; + pixel_y = -4 + }, +/obj/item/pen/fountain{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/toy/plush/moth/atlas{ + pixel_x = 9; + pixel_y = 16 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/item/paper/crumpled{ + pixel_y = -6; + pixel_x = -4 + }, +/obj/item/paper/crumpled/muddy{ + name = "coffee-stained paper scrap"; + pixel_x = -9; + pixel_y = 6 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "Ou" = ( /obj/structure/cable{ @@ -3823,10 +5058,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Ov" = ( /obj/machinery/light/dim/directional/east, @@ -3834,19 +5069,25 @@ autolinkers = list("broadcasterB","hub"); network = "nt_commnet" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 8 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ox" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) +/obj/item/gps/computer{ + pixel_x = 32; + pixel_y = 0; + density = 0 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "OC" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3855,44 +5096,39 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 - }, /obj/structure/cable{ icon_state = "0-6" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "OK" = ( -/obj/machinery/light_switch{ - pixel_x = -7; - pixel_y = 21 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, +/obj/machinery/autolathe, +/obj/item/disk/design_disk/ammo_c9mm, +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/sheet/glass{ + amount = 10 }, -/obj/machinery/button/door{ - dir = 8; - pixel_x = 20; - name = "Cargo Bay Shutters"; - id = "Ranger_Cargo_Door"; - pixel_y = 1 +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "OP" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Pd" = ( -/obj/structure/table/reinforced, /obj/item/aiModule/core/freeformcore{ pixel_x = -2; pixel_y = 1 @@ -3905,12 +5141,12 @@ pixel_x = 4; pixel_y = -2 }, -/obj/item/aiModule/zeroth{ - pixel_x = -5; - pixel_y = -6 - }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ph" = ( /obj/effect/turf_decal/industrial/warning, @@ -3925,18 +5161,31 @@ /obj/effect/turf_decal/siding/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "Pr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"Pu" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating, +/area/ship/engineering) +"PB" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "PG" = ( /obj/structure/cable{ icon_state = "1-2" @@ -3948,72 +5197,93 @@ dir = 4 }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "PR" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "PV" = ( /obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = 3; - pixel_y = 7 - }, /obj/effect/turf_decal/techfloor{ dir = 8 }, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/item/stack/cable_coil/cut/red, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "Qf" = ( -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "Qt" = ( -/obj/item/bodypart/leg/right/robot, -/obj/item/bodypart/r_arm/robot, -/obj/item/bodypart/leg/left/robot, -/obj/item/bodypart/l_arm/robot, -/obj/item/bodypart/chest/robot, -/obj/item/bodypart/head/robot, -/obj/item/borg/upgrade/ai, -/obj/item/robot_suit, -/obj/structure/closet/crate/engineering, /obj/effect/turf_decal/industrial/hatch/orange, -/obj/item/stock_parts/cell/high, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/ship/engineering) "Qu" = ( /obj/machinery/door/firedoor/window, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "MedShutters"; + name = "Medical Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/medical) "QT" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/maintenance/starboard) "QV" = ( /obj/machinery/light/dim/directional/west, +/obj/structure/chair/handrail{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4 + }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "Rn" = ( -/obj/machinery/portable_atmospherics/pump, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/structure/crate_shelf, +/obj/machinery/door/window/brigdoor/eastleft{ + dir = 2; + req_access_txt = "1"; + name = "Armory"; + req_ship_access = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "Ro" = ( /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, /obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "RA" = ( /obj/structure/closet/firecloset/wall/directional/south, @@ -4023,25 +5293,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "RB" = ( -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ - dir = 8 +/obj/machinery/camera/autoname{ + dir = 10 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/white, -/area/ship/hallway/port) +/turf/open/floor/engine/hull, +/area/ship/external/dark) "RM" = ( /obj/structure/chair/sofa/brown/left/directional/west, -/turf/open/floor/plasteel/dark, +/obj/machinery/light/dim/directional/east, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "RS" = ( /obj/machinery/portable_atmospherics/canister/toxins, @@ -4057,13 +5327,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/spline/fancy/opaque/blue, /turf/open/floor/plasteel/dark, /area/ship/bridge) "Sl" = ( -/obj/machinery/light/dim/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/rack, +/obj/structure/closet/crate/secure/plasma{ + name = "Relay Parts Crate" + }, +/obj/item/storage/box/stockparts/basic, /obj/item/circuitboard/machine/telecomms/relay{ pixel_x = -5; pixel_y = 9 @@ -4076,6 +5347,15 @@ pixel_x = -5; pixel_y = 9 }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = -1 + }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = 3 + }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = 7 + }, /obj/item/stack/cable_coil/cyan{ pixel_x = 6 }, @@ -4121,6 +5401,9 @@ pixel_x = 7; pixel_y = 7 }, +/obj/structure/crate_shelf, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/light/dim/directional/east, /turf/open/floor/plating, /area/ship/engineering) "So" = ( @@ -4133,10 +5416,24 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding{ + color = "#474747"; + dir = 1 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) +"Sv" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "SC" = ( -/obj/structure/table/wood, /obj/item/storage/box/donkpockets{ pixel_x = -3 }, @@ -4148,32 +5445,36 @@ pixel_y = 9; pixel_x = 7 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "SE" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) +"SG" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plating/catwalk_floor, +/area/ship/security) "SN" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) -"SU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ship/hallway/central) "Tb" = ( -/turf/closed/wall/r_wall, -/area/ship/storage) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/equip) "Te" = ( /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "Tg" = ( /obj/structure/railing/corner{ dir = 4 @@ -4184,60 +5485,89 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "Tl" = ( -/obj/machinery/light/dim/directional/north, -/obj/machinery/light/floor, -/turf/open/floor/engine/hull, -/area/ship/external) +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) "Tz" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering) +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"TG" = ( +/obj/item/toy/plush/spider, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/plasteel/tech, +/area/ship/security) "TL" = ( -/obj/structure/closet/crate, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 5 + }, +/obj/item/bedsheet/qm, +/obj/structure/bed, +/obj/structure/curtain/bounty, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "TR" = ( -/obj/structure/table/wood, /obj/machinery/light/dim/directional/north, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "TZ" = ( -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/structure/chair/handrail{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Ua" = ( /obj/machinery/camera/autoname{ dir = 9 }, -/turf/open/floor/circuit/green/airless, +/obj/machinery/button/door{ + dir = 8; + pixel_x = 26; + id = "AiCore"; + name = "Core Access"; + req_access_txt = "20"; + pixel_y = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Uj" = ( /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/paper_bin{ - pixel_y = 8; - pixel_x = 5 - }, -/obj/item/pen/fountain{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/machinery/recharger{ - pixel_x = -4 +/obj/effect/turf_decal/techfloor{ + dir = 5 }, -/obj/item/stamp/captain{ - pixel_x = 7 +/obj/effect/spawner/lootdrop/lpaid{ + pixel_x = 2; + pixel_y = -2 }, -/turf/open/floor/plasteel/dark, +/obj/effect/spawner/lootdrop/lpretrieval{ + pixel_x = -10; + pixel_y = 10 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "Ur" = ( /obj/structure/cable{ @@ -4246,36 +5576,38 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/structure/chair/handrail{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Us" = ( /obj/effect/turf_decal/siding/red{ dir = 9 }, -/obj/machinery/door_timer{ - pixel_y = 28; - id = "ranger_brig" +/obj/structure/closet/crate/bin, +/obj/machinery/camera/autoname{ + dir = 4 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Ut" = ( /obj/structure/urinal{ pixel_y = 29 }, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "UQ" = ( /turf/open/floor/engine/air, /area/ship/hallway/central) "UU" = ( -/obj/machinery/door/airlock/public/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -4283,31 +5615,31 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Port"; + id = "RangerPortShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "UW" = ( /obj/structure/cable/cyan{ icon_state = "6-9" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "Vg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/window, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Cycler_Shutters" +/obj/machinery/camera/autoname{ + dir = 10 }, -/turf/open/floor/plating, -/area/ship/hallway/central) +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Vh" = ( /obj/structure/cable{ icon_state = "2-4" @@ -4319,21 +5651,14 @@ dir = 1 }, /obj/effect/turf_decal/trimline/opaque/red/filled/line, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Vk" = ( -/obj/structure/bed, -/obj/item/bedsheet/nanotrasen, -/obj/machinery/firealarm/directional/north, -/obj/item/toy/plush/moth/royal{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Vm" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8 @@ -4341,12 +5666,13 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "Vp" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/starboard) "Vq" = ( -/obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/industrial/outline/orange, /obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "Vt" = ( @@ -4355,16 +5681,27 @@ icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/space_heater, +/obj/structure/railing, /turf/open/floor/plating, /area/ship/maintenance/port) "VC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/stairs, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, /area/ship/crew/cryo) -"VJ" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4 +"VE" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + name = "Bridge-Atrium Shutters"; + id = "BridgeAtrium" }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/bridge) +"VJ" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -4374,39 +5711,52 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/corner/opaque/solgovgold/border{ dir = 8 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/central) "VM" = ( /obj/effect/turf_decal/industrial/outline/blue, -/obj/item/storage/box/lights/mixed{ - pixel_x = -4; - pixel_y = 6 +/obj/machinery/washing_machine, +/obj/structure/railing{ + dir = 8 }, -/obj/item/storage/box/mousetraps{ - pixel_y = -1; - pixel_x = 3 +/obj/item/toy/plush/tali{ + pixel_y = 14 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "VP" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/newscaster/security_unit/directional/south, +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" }, -/obj/structure/closet, -/turf/open/floor/plasteel/dark, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/mineral/plastitanium/red/brig, /area/ship/security) "VQ" = ( /obj/machinery/camera/autoname{ dir = 5 }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) +"We" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "Wj" = ( /obj/structure/bed, /obj/item/radio/intercom/directional/south, @@ -4416,7 +5766,8 @@ "Wp" = ( /obj/machinery/door/poddoor{ dir = 2; - id = "Ranger_AI_Core_Blasts" + id = "Ranger_AI_Core_Blasts"; + name = "Communications Access" }, /obj/machinery/power/shieldwallgen/atmos/roundstart{ id = "AI_Core_Field_Engi"; @@ -4429,7 +5780,7 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plating, +/turf/open/floor/noslip, /area/ship/engineering) "Wr" = ( /obj/structure/cable{ @@ -4438,10 +5789,10 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Wv" = ( /obj/structure/chair/sofa/brown/right/directional/south, @@ -4452,12 +5803,28 @@ pixel_x = -7; pixel_y = 21 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) +"Wz" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "WF" = ( -/obj/item/radio/intercom/wideband, -/turf/closed/wall/r_wall, -/area/ship/bridge) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/plasteel/tech, +/area/ship/engineering/communications) "WG" = ( /obj/machinery/telecomms/server/presets/nanotrasen{ autolinkers = list("nanotrasen","hub"); @@ -4465,20 +5832,23 @@ freq_listening = list(1353,1447,1459) }, /obj/item/disk/holodisk/lp/stations, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "WR" = ( -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/decal/cleanable/shreds, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "WZ" = ( /obj/machinery/computer/telecomms/server{ - dir = 4 + dir = 4; + icon_state = "computer-middle" }, /obj/machinery/light/dim/directional/west, /turf/open/floor/plasteel/mono/dark, @@ -4486,44 +5856,84 @@ "Xb" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, /obj/structure/window/reinforced/spawner, -/obj/structure/closet, +/obj/structure/closet/wall/med/directional/east{ + name = "Anesthetics Closet" + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = -2 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/effect/turf_decal/borderfloorwhite/corner{ + dir = 1 + }, +/obj/structure/table/chem, +/obj/structure/sink/chem{ + pixel_x = 2; + pixel_y = 3 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "Xt" = ( -/obj/machinery/space_heater, /obj/machinery/light/dim/directional/south, /obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/machinery/suit_storage_unit/inherit{ + name = "Engineering Specialist's Storage Unit" + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/suit/space/hardsuit/ert/lp/engi, +/obj/item/tank/internals/oxygen/yellow, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "XA" = ( /obj/structure/cable{ icon_state = "1-10" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/cable{ + icon_state = "5-10" + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "XE" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-5" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "XH" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/closet/wall/directional/south, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "XL" = ( -/obj/machinery/door/airlock/public/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -4531,10 +5941,18 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Starboard"; + id = "RangerStarboardShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "XQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -4546,7 +5964,7 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "XR" = ( /obj/machinery/door/airlock/public/glass, @@ -4557,20 +5975,27 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "XS" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/structure/table/greyscale, /obj/machinery/light/dim/directional/east, -/obj/item/toy/plush/moth/ragged, +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/item/toy/plush/moth/ragged{ + pixel_y = 11 + }, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 8 + }, +/obj/structure/table/chem, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/white, /area/ship/medical) "XT" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/cargo) "XV" = ( /obj/machinery/camera/autoname{ @@ -4582,24 +6007,30 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Yk" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning, +/obj/effect/turf_decal/siding{ + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "Yw" = ( -/obj/machinery/door/airlock/public/glass, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Starboard"; + id = "RangerStarboardShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Yy" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ @@ -4619,33 +6050,47 @@ /turf/open/floor/plasteel, /area/ship/hallway/port) "Yz" = ( -/obj/structure/window/reinforced, -/obj/effect/turf_decal/siding/red{ - dir = 6 +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-9" +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/door/airlock/security/brig{ + dir = 8; + id_tag = "SecureCell"; + name = "Holding Cell"; + req_access_txt = "1" + }, +/turf/open/floor/plating, /area/ship/security) "YJ" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ancient/lp, -/obj/item/clothing/mask/breath, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) -"YK" = ( -/obj/machinery/light_switch{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/obj/structure/table/reinforced, +/obj/item/screwdriver{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/item/hand_labeler{ pixel_x = 8; - pixel_y = 22 + pixel_y = 13 }, -/turf/open/floor/plasteel/stairs/wood{ +/obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 8 }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) +"YK" = ( +/obj/machinery/firealarm/directional/north{ + pixel_x = -4 + }, +/obj/structure/table/reinforced, +/obj/machinery/computer/helm/viewscreen/directional/west, +/turf/open/floor/plasteel/white, /area/ship/medical) "YP" = ( /obj/structure/cable{ @@ -4663,21 +6108,29 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "YW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/camera/autoname{ dir = 4 }, /obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Zj" = ( /obj/machinery/atmospherics/components/unary/shuttle/heater{ @@ -4688,22 +6141,33 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_Port_maint_shut" + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/port) "Zk" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 4 - }, /obj/machinery/advanced_airlock_controller{ pixel_y = 24 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/clothing/suit/space/fragile, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "Zl" = ( -/obj/machinery/portable_atmospherics/canister, /obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "Zs" = ( @@ -4717,70 +6181,113 @@ /obj/structure/cable{ icon_state = "1-6" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/port) +"Zu" = ( +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Zv" = ( /obj/machinery/firealarm/directional/west, +/obj/machinery/camera/autoname{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/security) "Zw" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Zx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "ZF" = ( /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "ZI" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, -/turf/open/floor/plasteel/white, +/obj/structure/chair/handrail{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "ZJ" = ( /obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "ZL" = ( /obj/machinery/vending/coffee, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "ZS" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/structure/closet/syndicate{ + desc = "It's the armory closet. A closet with shelving, in an armory!" + }, +/obj/machinery/door/window/brigdoor/eastright{ + dir = 2; + req_access_txt = "1"; + name = "Armory"; + req_ship_access = 1 + }, +/obj/item/storage/pistolcase/commander, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/storage/pistolcase, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "ZW" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "ZY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/chair/handrail{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) (1,1,1) = {" @@ -4795,6 +6302,7 @@ tg tg LV zW +yK zW zW zW @@ -4808,8 +6316,7 @@ zW zW zW zW -zW -zW +yK zW QT qs @@ -4937,8 +6444,8 @@ zW zW zW LV -Zl -Vq +ci +hp aW UW hl @@ -4962,7 +6469,7 @@ qQ gD ib eN -RS +Lw Dd QT zW @@ -5045,10 +6552,10 @@ zW (8,1,1) = {" zW zW -zW +hN vm -xp -Aw +vm +cj oQ tq LV @@ -5060,9 +6567,9 @@ zW zW Kg Pd -vO +Ox IE -vO +Ep Nf Kg zW @@ -5077,7 +6584,7 @@ Zv AZ Wj fV -zW +sp "} (9,1,1) = {" zW @@ -5086,7 +6593,7 @@ vm vm YK aO -Om +Aw Gn LV vT @@ -5094,7 +6601,7 @@ LV LV zW zW -wq +yK Kg MK Ua @@ -5102,7 +6609,7 @@ vO Nn Cq Kg -wq +yK zW zW QT @@ -5130,14 +6637,14 @@ zc jA zW zW -Tz -Tz +wU +wU Kg Kg Kg kw gk -zB +Kg Kg Kg Kg @@ -5146,7 +6653,7 @@ zW Vp cN vR -fV +nq Us Js Ma @@ -5165,25 +6672,25 @@ Qu Cb NR jA -zW -Tz -Tz +qe +wU +wU jt WZ Mh -Tz +wU nE -fU -kt +WF +Kg LM bX Kg Kg -zW +fo Vp Ff wT -fV +nq gi Lg bN @@ -5203,10 +6710,10 @@ XQ PR jA zW -Tz +wU LQ -MD aP +Pu xq Wp Gz @@ -5224,7 +6731,7 @@ qR tQ nh Dx -Dx +yk fV "} (13,1,1) = {" @@ -5240,7 +6747,7 @@ cR pU jA zW -Tz +wU gN dr rC @@ -5249,7 +6756,7 @@ Dr ZJ fU Mx -tT +MD tT ux Kg @@ -5258,9 +6765,9 @@ Vp TR KX fV -Ji +fV Yz -hf +iH iH fV "} @@ -5277,15 +6784,15 @@ bf tR jA zW -Tz +wU Ge or JP -Tz -Tz +wU +wU hK Hd -Tz +wU Ds Bo WG @@ -5294,11 +6801,11 @@ zW Vp bD iD -fV -fV -fV -fV -fV +dm +hf +Ab +Ji +SG fV "} (15,1,1) = {" @@ -5314,8 +6821,8 @@ jH uE jA zW -Tz -Tz +wU +wU Sl Nd IC @@ -5332,11 +6839,11 @@ Vp yo Cg of -gg -Ut -BI +jd +TG +my xv -gg +fV "} (16,1,1) = {" zW @@ -5352,15 +6859,15 @@ Kf jA zW zW -Tz -Tz +wU +wU Qt -Tz +wU Ca rA yU -dP -wf +wU +Kg Kg Kg zW @@ -5370,7 +6877,7 @@ pi iZ ji gg -am +gg gg gg gg @@ -5382,24 +6889,24 @@ JR Iy ym VC -VC +CW EL ml -jA +Tz jA zW zW -zW -Tz -Tz -Tz +Vg +wU +wU +wU up hn aG -Tz +df Kg Kg -zW +sp zW zW Vp @@ -5407,8 +6914,8 @@ Vp MI zF gg -my -fo +Ut +BI BA gg "} @@ -5428,13 +6935,13 @@ zW zW zW zW -Tz +wU jr Mt lX Ny JK -Tz +wU zW zW zW @@ -5444,9 +6951,9 @@ Vp dK ZI gg -qe -oM -yK +am +gg +gg gg "} (19,1,1) = {" @@ -5456,7 +6963,7 @@ JR tb mQ rq -rq +gr Zs pf jA @@ -5465,13 +6972,13 @@ zW zW zW zW -Tz +wU ps Hs tk Bh GY -Tz +wU zW zW zW @@ -5501,15 +7008,15 @@ jA zW zW zW -Tz -Tz -eo +wU +wU +wU FB wU -hZ -Lw -Tz -Tz +wU +wU +wU +wU zW zW zW @@ -5539,13 +7046,13 @@ sJ sJ sJ sJ -sJ -sJ +We +hZ VJ -sJ -sJ -sJ -sJ +rX +Sv +Kl +eo sJ sJ sJ @@ -5565,7 +7072,7 @@ zW zW zW QV -jA +gd KQ wp oz @@ -5576,13 +7083,13 @@ gW ZY CG mw -rX +MR vj fd -Ox +yG BX Gk -Kl +bK mw zi lj @@ -5593,19 +7100,19 @@ nA Mm uk xA -Vp -QV +jQ +ww zW "} (23,1,1) = {" zW zW zW -wq +Gs HA TZ -RB -oz +Zu +dN pa kO UU @@ -5613,7 +7120,7 @@ PG Gh XR OP -OP +DQ OP OP BY @@ -5652,14 +7159,14 @@ sJ Wv Fx fy -bu +PB pn Av tf -bu +iS rT sJ -Vg +sJ ok sJ OK @@ -5674,8 +7181,8 @@ zW (25,1,1) = {" zW zW -zW -hN +ef +Og jA Po iX @@ -5690,10 +7197,10 @@ ox IM RM Mn -bu +iv bu AP -bu +Ih kK sJ Zk @@ -5709,7 +7216,7 @@ hz zW "} (26,1,1) = {" -ef +zW zW zW zW @@ -5740,7 +7247,7 @@ DZ So Eq lU -cj +EA XT zW zW @@ -5758,14 +7265,14 @@ jZ Be Tb sJ -SU +sJ Mf Gc Ha Lk -Lk -Lk -Lk +VE +VE +VE tj Lk sJ @@ -5775,8 +7282,8 @@ CP XT Iz lv +Yk pD -ww vz XT zW @@ -5795,8 +7302,8 @@ wu yZ Tb NC -jC Mf +jC mv Ao JO @@ -5804,17 +7311,17 @@ pA lD hF ec +wf Lk -Te -wq -zW -zW +Wz +dx +RB XT lw -pD +Om Yk -hp gL +vo XT zW zW @@ -5832,8 +7339,8 @@ Qf Xt Tb zW -zW Mf +Mu Vk NZ Lk @@ -5841,15 +7348,15 @@ sf iF XA Sa +xp Lk wq zW zW -zW XT TL -pD -pD +Fg +zB eE XT XT @@ -5869,18 +7376,18 @@ YJ Tb Tb zW -zW Mf -Mu +Mf +qn hx Lk AF vp CI dC +kt Lk -zW -zW +wq zW zW XT @@ -5909,14 +7416,14 @@ zW zW Mf Mf -Fg +Mf Lk tK og NM ff Lk -zW +Lk zW zW zW @@ -5982,14 +7489,14 @@ zW zW zW zW -wq +VQ wq Lk mn cv lW -WF -VQ +Lk +rw zW zW zW diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 22e69cd06d9f..2870e31eff97 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -281,6 +281,8 @@ #define ATMOS_GAS_MONITOR_WASTE_ENGINE "engine-waste_out" #define ATMOS_GAS_MONITOR_WASTE_ATMOS "atmos-waste_out" +#define GAS_MONITOR_SENSOR_EXTERNAL "GAS_MONITOR_SENSOR_EXTERNAL" + //AIRLOCK CONTROLLER TAGS //RnD toxins burn chamber diff --git a/code/game/MapData/shuttles/nanotrasen_ranger.dm b/code/game/MapData/shuttles/nanotrasen_ranger.dm index 40f7816c2eb0..08f1a7c670d2 100644 --- a/code/game/MapData/shuttles/nanotrasen_ranger.dm +++ b/code/game/MapData/shuttles/nanotrasen_ranger.dm @@ -158,7 +158,7 @@ icon_state = "hardsuit0-ert_medical" item_state = "hardsuit0-ert_medical" hardsuit_type = "ert_medical" - clothing_flags = SCAN_REAGENTS + clothing_flags = SCAN_REAGENTS | STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS /obj/item/clothing/head/helmet/space/hardsuit/lp name = "RIG heatsuit helmet" @@ -170,7 +170,7 @@ /obj/item/clothing/suit/space/hardsuit/ancient/lp name = "RIG heat suit" - desc = "A fully heat resistance suit based on an early RIG hardsuit prototype. It sacrifices armor of any kind for intricate heatsinks. It remains rather bulky as a result." + desc = "A fully heat-resistant suit based on an early RIG hardsuit prototype. It sacrifices armor of any kind for intricate heatsinks. It remains rather bulky as a result." armor = list("melee" = 5, "bullet" = 5, "laser" = 1, "energy" = 1, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/lp heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -179,114 +179,6 @@ //holotapes -/obj/item/disk/holodisk/lp/combat/syndicate1 - name = "Combat Mission Eliminate Force" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to kill or otherwise subdue the primary fighting force. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate2 - name = "Combat Mission Capture" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to subdue and capture one of the armed members of the crew. They should be stripped of gear, interrogated, and converted to NT if possible. If not possible, release them to whatever ship they belonged to or will accept them. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate3 - name = "Combat Mission Capture Commander" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to eliminate whatever leader or captain of such vession and bring their body back in a bodybag. The Medical Specialist has been given a box of them for such an occasion. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate4 - name = "Combat Mission Secret Documents" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to retrieve a set of secret documents from the syndicate vessel. This will likely require a boarding operation. Good luck. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/megafauna - name = "Combat Mission Megafauna" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is very simple. The LP is to seek out a megafauna specimen and slay it. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/bdm - name = "Combat Mission Blood Drunk" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is straightforward. The LP team is to seek out two blood drunk mines and termninate them. Bring back whatever weapons they wield and recover the bodies for the vault. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/tumor - name = "Combat Mission Tumor" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is rather straightforward. Seak out 2 pulsing tumors and elimate the threat they produce. Return the body of the threat to the vault. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/bloodred - name = "Combat Mission Blood Red" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission overlaps with the retrieval missions. The LP is simply to obtain a Blood Red Hardsuit. This may include responding to a hostile syndicate vessel to take it by force. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/retrieval/supersuit - name = "Retrieval Mission Lost Hardsuit" - desc = "A holodisk containing a retrieval mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a retrieval objective. The LP will need to obtain or create something. - DELAY 25 - SAY This one is a bit difficult but completing it is extremely rewarding. Our sources show that two of our experimental hardsuits have been lost to the necropolis. Retrieve a Champion's Hardsuit or an Inquisitor's Hardsuit. These are often found in necropolis chests or held by certain megafauna. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/retrieval/phazon name = "Retrieval Mission Secret Exosuit" desc = "A holodisk containing a retrieval mission for the LP." @@ -323,18 +215,6 @@ DELAY 25 "} -/obj/item/disk/holodisk/lp/retrieval/artifact - name = "Retrieval Mission Artifact" - desc = "A holodisk containing a retrieval mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a retrieval objective. The LP will need to obtain or create something. - DELAY 25 - SAY For this mission the LP is to find three artifacts. These include but are not limited to, anything stored in a necropolis chest, most megafauna loot, anything befitting someone magical or otherwise special. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/retrieval/materials name = "Retrieval Mission Materials" desc = "A holodisk containing a retrieval mission for the LP." @@ -347,18 +227,6 @@ DELAY 25 "} -/obj/item/disk/holodisk/lp/aid/recruits - name = "Aid Mission Recruitment Drive" - desc = "A holodisk containing an aid mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around an aid objective. The LP will need to provide aid to local vessels not hostile or syndicate. - DELAY 25 - SAY Less providing aid and more networking. The LP will need to convince 4 independent vessels to switch to NTSV flight tags. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/aid/repairs name = "Aid Mission Repair" desc = "A holodisk containing an aid mission for the LP." @@ -372,7 +240,7 @@ "} /obj/item/disk/holodisk/lp/aid/rescue - name = "Aid Mission Rescure" + name = "Aid Mission Rescue" desc = "A holodisk containing an aid mission for the LP." preset_image_type = /datum/preset_holoimage/commissioner preset_record_text = {" @@ -415,33 +283,14 @@ //lootdrop -/obj/effect/spawner/lootdrop/lpcombat - name = "LP Combat Missions" - lootdoubles = FALSE - - loot = list( - /obj/item/disk/holodisk/lp/combat/syndicate1 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate2 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate3 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate4 = 1, - /obj/item/disk/holodisk/lp/combat/megafauna = 5, - /obj/item/disk/holodisk/lp/combat/bdm = 5, - /obj/item/disk/holodisk/lp/combat/tumor = 5, - /obj/item/disk/holodisk/lp/combat/bloodred = 5 - ) - - lootcount = 2 - /obj/effect/spawner/lootdrop/lpretrieval name = "LP Retrieval Missions" lootdoubles = FALSE loot = list( - /obj/item/disk/holodisk/lp/retrieval/supersuit = 1, /obj/item/disk/holodisk/lp/retrieval/phazon = 1, /obj/item/disk/holodisk/lp/retrieval/durand = 1, /obj/item/disk/holodisk/lp/retrieval/gunstock = 1, - /obj/item/disk/holodisk/lp/retrieval/artifact = 1, /obj/item/disk/holodisk/lp/retrieval/materials = 1 ) @@ -452,11 +301,10 @@ lootdoubles = FALSE loot = list( - /obj/item/disk/holodisk/lp/aid/recruits = 1, /obj/item/disk/holodisk/lp/aid/repairs = 1, /obj/item/disk/holodisk/lp/aid/rescue = 1, /obj/item/disk/holodisk/lp/aid/guard = 1, ) - lootcount = 2 + lootcount = 4 diff --git a/code/game/area/ship_areas.dm b/code/game/area/ship_areas.dm index 81fb4d20d124..54d74fc9538a 100644 --- a/code/game/area/ship_areas.dm +++ b/code/game/area/ship_areas.dm @@ -474,6 +474,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "EVA Storage" icon_state = "eva" +/area/ship/storage/equip + name = "Equipment Room" + /// External Areas /// /area/ship/external name = "External" diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 81d2860473c7..6e8b1b447cf2 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -42,6 +42,9 @@ /obj/machinery/air_sensor/atmos/incinerator_tank name = "incinerator chamber gas sensor" id_tag = ATMOS_GAS_MONITOR_SENSOR_INCINERATOR +/obj/machinery/air_sensor/external + name = "external atmosphere sensor" + id_tag = GAS_MONITOR_SENSOR_EXTERNAL /obj/machinery/air_sensor/update_icon_state() icon_state = "gsensor[on]" @@ -306,7 +309,11 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers) icon_state = "computer-solgov" deconpath = /obj/structure/frame/computer/solgov -// This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this +/obj/machinery/computer/atmos_control/external + sensors = list(GAS_MONITOR_SENSOR_EXTERNAL = "External Atmospherics Monitoring") + name = "External Atmospherics Monitoring" +//tbh I would love it if someone could make this like. Unique like ship camera networks & etc. +//This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this /obj/machinery/computer/atmos_control/tank/proc/reconnect(mob/user) var/list/IO = list() var/datum/radio_frequency/freq = SSradio.return_frequency(frequency) diff --git a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm index fc23ed89c278..a2ec15e5022f 100644 --- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm +++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm @@ -166,7 +166,7 @@ TURF_DECAL_COLOR_HELPER(transparent/lightgrey, "#a8b2b6", 140) TURF_DECAL_COLOR_HELPER(transparent/bottlegreen, "#57967f", 140) TURF_DECAL_COLOR_HELPER(transparent/ntblue, "#283674", 140) TURF_DECAL_COLOR_HELPER(transparent/nsorange, "#FF6600", 140) -TURF_DECAL_COLOR_HELPER(opaque/vired, "#d40000", 140) +TURF_DECAL_COLOR_HELPER(transparent/vired, "#d40000", 140) TURF_DECAL_COLOR_HELPER(transparent/solgovblue, "#2d2a4e", 140) TURF_DECAL_COLOR_HELPER(transparent/solgovgold, "#eeac2e", 140) TURF_DECAL_COLOR_HELPER(transparent/syndiered, "#730622", 140) diff --git a/code/game/turfs/open/floor/plasteel_floor.dm b/code/game/turfs/open/floor/plasteel_floor.dm index 61a90ff0da86..1feb9d0921e0 100644 --- a/code/game/turfs/open/floor/plasteel_floor.dm +++ b/code/game/turfs/open/floor/plasteel_floor.dm @@ -151,6 +151,13 @@ base_icon_state = "plaque" tiled_dirt = FALSE +/turf/open/floor/plasteel/lightgrey + name = "light grey floor" + icon_state = "corner_white_full" + base_icon_state = "corner_white_full" + icon = 'icons/turf/decals/decals.dmi' + color = "#a8b2b6" + /turf/open/floor/plasteel/cult/narsie_act() return diff --git a/code/modules/clothing/outfits/factions/nanotrasen.dm b/code/modules/clothing/outfits/factions/nanotrasen.dm index e292a6e61d03..aaba1d8054cf 100644 --- a/code/modules/clothing/outfits/factions/nanotrasen.dm +++ b/code/modules/clothing/outfits/factions/nanotrasen.dm @@ -495,7 +495,7 @@ gloves = /obj/item/clothing/gloves/color/black uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/lp alt_uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp - dcoat = /obj/item/clothing/suit/jacket + dcoat = /obj/item/clothing/suit/armor/nanotrasen/sec_director shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/beret/command diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index 266c9059046a..6f52daaf2292 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -192,6 +192,7 @@ name = "\improper Nanotrasen Saber SMG" desc = "A prototype full-auto 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors and a folding stock." icon = 'icons/obj/guns/projectile.dmi' + default_attachments = list(/obj/item/attachment/foldable_stock) icon_state = "saber" item_state = "gun" mag_type = /obj/item/ammo_box/magazine/smgm9mm From 81c2b76d9d6bf9b3208cfb924b818f958f0760f6 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 28 Sep 2024 14:29:32 -0500 Subject: [PATCH 040/125] Automatic changelog generation for PR #3313 [ci skip] --- html/changelogs/AutoChangeLog-pr-3313.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3313.yml diff --git a/html/changelogs/AutoChangeLog-pr-3313.yml b/html/changelogs/AutoChangeLog-pr-3313.yml new file mode 100644 index 000000000000..0dc833094984 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3313.yml @@ -0,0 +1,4 @@ +author: fighterslam +changes: + - {balance: Modernizes and slightly buffs the Ranger.} +delete-after: true From 9697b58fe834ced004d62a97c236cc112a377a8a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 01:08:10 +0000 Subject: [PATCH 041/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3313.yml | 4 ---- html/changelogs/archive/2024-09.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3313.yml diff --git a/html/changelogs/AutoChangeLog-pr-3313.yml b/html/changelogs/AutoChangeLog-pr-3313.yml deleted file mode 100644 index 0dc833094984..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3313.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: fighterslam -changes: - - {balance: Modernizes and slightly buffs the Ranger.} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index d5ef25458196..0beabb6bcc8b 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -204,3 +204,6 @@ SomeguyManperson: - bugfix: legion skulls will no longer check if they should rise up and consume their owner if they are ownerless +2024-09-29: + fighterslam: + - balance: Modernizes and slightly buffs the Ranger. From d60cfa171a6751c0607b59e1324ae9f38c057c1b Mon Sep 17 00:00:00 2001 From: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Date: Sun, 29 Sep 2024 01:05:01 -0500 Subject: [PATCH 042/125] New Waste Ruin: Abandoned Miskilamo Shipbreaking Yard (#3136) ## About The Pull Request New wasteplanet ruin, an abandoned shipbreaking yard owned by Miskilamo ![yardreal4](https://github.com/shiptest-ss13/Shiptest/assets/90987989/152420c3-8ab3-4821-84de-0b7f81b9236a) ![yardreal3](https://github.com/shiptest-ss13/Shiptest/assets/90987989/5b391f45-c153-4c66-b291-0cf4e49ca8bd) ![image](https://github.com/shiptest-ss13/Shiptest/assets/90987989/ba243059-a2c2-4e7f-9d7c-4926d1a4d2c4) ![yardmap2](https://github.com/shiptest-ss13/Shiptest/assets/90987989/08f6c0fc-bbe4-4299-ab5a-961c2ab7b0ca) ## Why It's Good For The Game Waste ruins are needed, I think! ## Changelog :cl: add: New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard! /:cl: --- .../WasteRuins/wasteplanet_yard.dmm | 6367 +++++++++++++++++ _maps/map_catalogue.txt | 242 + code/datums/ruins/wasteplanet.dm | 7 + code/game/area/areas/ruins/wasteplanet.dm | 22 + .../turfs/open/floor/plating/wasteplanet.dm | 11 + 5 files changed, 6649 insertions(+) create mode 100644 _maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm create mode 100644 _maps/map_catalogue.txt diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm new file mode 100644 index 000000000000..60325851692d --- /dev/null +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm @@ -0,0 +1,6367 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ah" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/green{ + dir = 4 + }, +/obj/structure/curtain/cloth/grey, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"aj" = ( +/obj/item/trash/sosjerky{ + pixel_x = 2; + pixel_y = -15 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/trash/raisins{ + pixel_x = 11; + pixel_y = -13 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"al" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ar" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/storage/firstaid/radiation, +/obj/item/storage/cans/sixbeer, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aw" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"aH" = ( +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aI" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aL" = ( +/obj/structure/table, +/obj/item/soap, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"aM" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"aQ" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"aV" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ba" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bc" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/secure/loot, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bf" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/light/small/directional/east, +/obj/item/reagent_containers/food/snacks/chewable/bubblegum/nicotine{ + pixel_x = -8; + pixel_y = 11 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bi" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bp" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/item/gps{ + gpstag = "Distress Signal" + }, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/obj/item/screwdriver/power, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bq" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bu" = ( +/obj/structure/table, +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bA" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"bB" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bD" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bF" = ( +/obj/structure/closet, +/obj/structure/sign/poster/contraband/gec{ + pixel_x = -28 + }, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/clothing/head/hardhat/orange, +/obj/item/clothing/shoes/workboots, +/obj/item/spacecash/bundle/smallrand, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bS" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/weldingtool/largetank, +/obj/item/weldingtool/largetank, +/obj/item/weldingtool/largetank, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bZ" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/secure/loot, +/obj/item/crowbar/power, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cd" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/mineral/plasma/twenty, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cg" = ( +/obj/structure/fence/post, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"cj" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/wasteplanet/lit, +/area/ruin/wasteplanet) +"cp" = ( +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/neck/cloak/qm, +/obj/item/clothing/head/beret/qm, +/obj/item/clothing/under/rank/cargo/qm, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"cv" = ( +/obj/item/kirbyplants/dead, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cx" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cz" = ( +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cA" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/structure/curtain/cloth/grey, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"cF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cP" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/wrench/combat, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"dd" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"de" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"df" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"dn" = ( +/obj/machinery/shower{ + pixel_y = 19 + }, +/obj/structure/curtain, +/obj/item/soap/nanotrasen, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dv" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"dw" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/large, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"dI" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dP" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/snacks/ration/side/white_sandwich_bread, +/obj/item/reagent_containers/food/snacks/ration/snack/cherry_snackers{ + pixel_x = 10; + pixel_y = 8 + }, +/obj/item/trash/plate{ + pixel_x = -13 + }, +/obj/item/reagent_containers/food/snacks/ration/snack/sour_gummy_worms{ + pixel_x = 1; + pixel_y = 7 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dY" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/crate_shelf, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ek" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"et" = ( +/obj/machinery/washing_machine, +/obj/machinery/light/small/broken/directional/east, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ey" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"eD" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/chief_engineer, +/obj/item/stamp/ce, +/obj/item/clothing/head/hardhat/weldhat/white, +/obj/item/gun/energy/laser/retro, +/obj/structure/sign/poster/contraband/space_cube{ + pixel_x = 32 + }, +/obj/item/spacecash/bundle/pocketchange, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"eL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"eN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east{ + start_charge = 0 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"eO" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"eS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fe" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fp" = ( +/obj/mecha/working/ripley/cargo, +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fz" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fA" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"fH" = ( +/obj/effect/turf_decal/miskilamo_small/left, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"fP" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"ga" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/cable_coil/red{ + pixel_y = 4 + }, +/obj/item/stack/cable_coil/orange, +/obj/item/stack/cable_coil/yellow{ + pixel_y = -4 + }, +/obj/item/stack/cable_coil/cut/pink, +/obj/structure/closet/crate/engineering/electrical, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"gb" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ge" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"gg" = ( +/turf/closed/mineral/random/wasteplanet, +/area/ruin/wasteplanet) +"gk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"gs" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"gx" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 9 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"gF" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/clothing/head/hardhat, +/obj/item/trash/chips, +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"gH" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/robot_debris/up, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"gO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"gP" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"gV" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/item/clothing/shoes/workboots, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"hn" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hr" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"hs" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ht" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hA" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hG" = ( +/obj/structure/toilet{ + dir = 8; + pixel_x = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hH" = ( +/obj/effect/turf_decal/miskilamo_small, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hJ" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hK" = ( +/obj/machinery/shower{ + pixel_y = 19 + }, +/obj/structure/curtain, +/obj/structure/catwalk/over/plated_catwalk/white, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hO" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"hP" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hW" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hY" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"il" = ( +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"in" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"is" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ix" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"iB" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"iD" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"iF" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"iJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"iK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"iR" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"iW" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"jd" = ( +/obj/effect/turf_decal/miskilamo_small/right, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"je" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"jh" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jo" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jq" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"jt" = ( +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"jy" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"jC" = ( +/obj/machinery/microwave, +/obj/item/clothing/head/chefhat{ + pixel_y = 13 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/food/flour, +/obj/item/reagent_containers/food/snacks/badrecipe, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jI" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"jT" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/can, +/obj/item/trash/candy, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kc" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kd" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ke" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ki" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"kn" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/multitool{ + pixel_y = -5; + pixel_x = 11 + }, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ks" = ( +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = -13 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kw" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kD" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/structure/closet/crate/secure/loot, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/stack/sheet/metal/twenty, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kH" = ( +/obj/structure/table, +/obj/item/flashlight/lamp{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/machinery/light/small/directional/east, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kM" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kP" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kS" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"kW" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kY" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"kZ" = ( +/obj/item/storage/toolbox/drone, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small/broken/directional/east, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"le" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lf" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/stack/ore/salvage/scrapuranium, +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lx" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"lB" = ( +/obj/structure/marker_beacon{ + picked_color = "Lime" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lT" = ( +/obj/structure/closet/crate/secure/loot, +/obj/item/clothing/suit/space/nasavoid, +/obj/item/clothing/head/helmet/space/nasavoid, +/obj/item/tank/jetpack/void, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"lV" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"lW" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"lY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mi" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"mq" = ( +/obj/structure/fence/door, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mA" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"mG" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mK" = ( +/obj/structure/fence/post{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"mS" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mU" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"mZ" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"nd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ne" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"nf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ng" = ( +/obj/structure/table_frame, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/wirecutters, +/obj/item/screwdriver{ + pixel_x = 7; + pixel_y = -8 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"ni" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/green{ + dir = 4 + }, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nr" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"nH" = ( +/obj/machinery/door/airlock/command, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"nJ" = ( +/obj/structure/cable/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc/auto_name/directional/west{ + start_charge = 0 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"nL" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"nP" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nV" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/closet/crate/coffin, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"nZ" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"oe" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"oh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ok" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"os" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ov" = ( +/obj/structure/fence, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"oz" = ( +/obj/item/kirbyplants/dead, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"oA" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"oJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oS" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oT" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"oW" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/seeds/potato, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"pd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ph" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pj" = ( +/turf/closed/wall, +/area/ruin/wasteplanet) +"pr" = ( +/obj/effect/turf_decal/industrial/traffic, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pt" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/structure/sign/warning/docking{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"px" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pz" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/folder/yellow{ + pixel_x = 8 + }, +/obj/item/pen/fountain{ + pixel_x = -6; + pixel_y = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"pF" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"pG" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 2 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pJ" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pK" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"pQ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"pY" = ( +/obj/item/stack/ore/iron, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/shard, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/clothing/head/caphat/cowboy, +/obj/structure/sign/poster/retro/smile{ + pixel_x = -28 + }, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"qd" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"qo" = ( +/obj/machinery/door/airlock, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qs" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/structure/sign/warning/nosmoking/burnt{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qt" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qu" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"qw" = ( +/obj/machinery/vending/cola/pwr_game, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qy" = ( +/obj/structure/toilet{ + pixel_y = 11 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"qB" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qL" = ( +/turf/open/floor/plating/asteroid/wasteplanet/lit, +/area/ruin/wasteplanet) +"qS" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/machinery/light/small/broken/directional/south, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"rd" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"re" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"rp" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"rv" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/folder/yellow{ + pixel_x = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"rw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/catwalk/over, +/obj/structure/spawner/hivebot, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ry" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"rQ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sf" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"sm" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"sx" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"sz" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"sB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"sF" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sK" = ( +/obj/structure/girder, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"sL" = ( +/obj/machinery/ntnet_relay, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sO" = ( +/obj/structure/fence/door, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"sT" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/sign/poster/contraband/space_cola{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ta" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"td" = ( +/obj/structure/fence, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"tn" = ( +/turf/template_noop, +/area/template_noop) +"to" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"tu" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/structure/sink/kitchen{ + dir = 4 + }, +/obj/effect/decal/cleanable/food/flour, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"tv" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"ty" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"tK" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tL" = ( +/obj/machinery/door/airlock/maintenance/external/glass, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tT" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/broken_bottle, +/obj/item/shard, +/obj/item/reagent_containers/food/drinks/bottle/hooch, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"tX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"tY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ul" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/poster/contraband/engis_unite{ + pixel_y = -28 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"um" = ( +/obj/structure/table, +/obj/structure/showcase/machinery/tv{ + name = "\improper television"; + desc = "A mess of wires and duct tape that barely functions" + }, +/obj/item/toy/plush/among{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/item/stack/cable_coil/cut/red{ + pixel_y = 10 + }, +/obj/item/kitchen/fork{ + pixel_x = 12; + name = "load bearing fork" + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/obj/item/trash/raisins{ + pixel_x = -12; + pixel_y = -2 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"un" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"up" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/stack/ore/salvage/scrapplasma, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"ut" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"uw" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/blue, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"uD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uN" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uU" = ( +/obj/structure/chair/comfy/orange/old/alt/directional/south, +/obj/item/toy/plush/snakeplushie, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uZ" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/snacks/badrecipe, +/obj/item/reagent_containers/food/drinks/soda_cans/lunapunch{ + pixel_y = 9; + pixel_x = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vb" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"vf" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vh" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/flashlight/lamp/green, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"vv" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vB" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"vC" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vH" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"vN" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/floodlight_frame, +/obj/machinery/light/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vU" = ( +/obj/effect/turf_decal/miskilamo_small/right, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"vV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vX" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vZ" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"wb" = ( +/obj/machinery/light/dim/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"wc" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"wf" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"wg" = ( +/obj/structure/fence/end{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"wr" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"wv" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ww" = ( +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"wZ" = ( +/obj/machinery/suit_storage_unit/independent/engineering, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"xe" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"xf" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"xh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"xl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/obj/item/trash/raisins{ + pixel_x = 15; + pixel_y = -2 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"xs" = ( +/obj/structure/chair/office{ + dir = 4; + pixel_x = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"xO" = ( +/obj/effect/turf_decal/corner/transparent/orange, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yb" = ( +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yi" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"yp" = ( +/obj/structure/table, +/obj/item/storage/ration/chicken_wings_hot_sauce, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"yr" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"yz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yA" = ( +/obj/structure/bed, +/obj/item/bedsheet/grey, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yC" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yK" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yR" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"yU" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 5 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zp" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zt" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zv" = ( +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zB" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/atmospheric_technician, +/obj/item/clothing/head/hardhat, +/obj/item/pipe_dispenser, +/obj/structure/sign/poster/contraband/atmosia_independence{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"zN" = ( +/obj/structure/spawner/hivebot, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"zP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zQ" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"zZ" = ( +/obj/machinery/power/floodlight, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ab" = ( +/obj/effect/turf_decal/industrial/hatch/blue, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"An" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/item/tank/jetpack/void, +/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/suit/space/nasavoid{ + name = "Old Voidsuit"; + desc = "An old space suit that hasn't seen use in several decades." + }, +/obj/item/clothing/head/helmet/space/nasavoid{ + name = "Voidsuit Helmet"; + desc = "An old space suit helmet with a scratched visor." + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ap" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Aq" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Av" = ( +/obj/structure/bed, +/obj/item/bedsheet/hos, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"AS" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"AZ" = ( +/obj/machinery/ltsrbt, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Bk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Bn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Bs" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/snacks/canned/peaches{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/trash/can/food/peaches{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"BJ" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"BO" = ( +/obj/machinery/vending/snack/teal, +/obj/item/stack/tape/industrial/electrical{ + pixel_y = 16 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BP" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BS" = ( +/obj/machinery/suit_storage_unit/independent/engineering, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"BW" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Cf" = ( +/obj/structure/sign/warning/docking{ + pixel_y = -32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Ci" = ( +/obj/item/chair{ + pixel_x = -13; + pixel_y = -7 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Cs" = ( +/obj/structure/fence/cut/large, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Cw" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Cx" = ( +/obj/machinery/computer/monitor/retro{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"CC" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/stack/ore/salvage/scrapuranium, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"CK" = ( +/obj/machinery/door/airlock, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"CU" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"CV" = ( +/obj/structure/fence/cut/medium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Dc" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"De" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Dk" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Dp" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Dz" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"DA" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"DE" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"DJ" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/chair, +/obj/item/instrument/banjo, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"DN" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ea" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/boritos, +/obj/item/trash/candy, +/obj/item/trash/candy, +/obj/item/trash/raisins, +/obj/item/trash/syndi_cakes, +/obj/item/trash/sosjerky, +/obj/item/toy/beach_ball/holoball, +/obj/machinery/light/directional/south, +/obj/item/trash/can, +/obj/item/trash/can, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ei" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"El" = ( +/obj/structure/bed/double{ + dir = 4 + }, +/obj/item/bedsheet/double/orange{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Ep" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/table{ + dir = 1 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_y = 12; + pixel_x = -16 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_x = -13; + pixel_y = 19 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_y = 4; + pixel_x = -14 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Er" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/miskilamo_small, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"EH" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"EK" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"EM" = ( +/obj/structure/mecha_wreckage/ripley/firefighter, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"EU" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"EX" = ( +/obj/structure/table/wood, +/obj/structure/sink/chem, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ff" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/absinthe, +/obj/item/clothing/head/hardhat{ + pixel_x = 11 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fh" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Fm" = ( +/obj/structure/closet/wall/directional/north, +/obj/item/toy/figure/bartender, +/obj/item/gun/energy/laser/retro, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fn" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Fq" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"FC" = ( +/obj/machinery/door/airlock, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"FG" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"FH" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/item/reagent_containers/food/snacks/ration/side/beef_sticks{ + pixel_x = 10 + }, +/obj/item/reagent_containers/food/snacks/chips, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"FP" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"FW" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Gf" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Gj" = ( +/obj/structure/grille/broken, +/obj/item/stack/rods, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Gk" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Gl" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Go" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Gq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"GK" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/floodlight_frame, +/obj/item/shard, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"GM" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"GN" = ( +/obj/structure/table, +/obj/item/stamp/qm{ + pixel_y = 4; + pixel_x = 14 + }, +/obj/item/stamp{ + pixel_x = 14 + }, +/obj/item/stamp/denied{ + pixel_y = -4; + pixel_x = 14 + }, +/obj/item/paper, +/obj/item/pen, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"GO" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/structure/closet/firecloset/full, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"GV" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"GX" = ( +/obj/machinery/power/smes, +/obj/structure/cable/yellow, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hf" = ( +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4; + pixel_x = -8 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4; + pixel_x = 8 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 9; + pixel_x = 4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 9; + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 22 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Hh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hm" = ( +/obj/machinery/door/airlock/engineering, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hp" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass/twenty, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"HD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/orange, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"HR" = ( +/obj/structure/chair/sofa/brown/left{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"HY" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ic" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"If" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Il" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/toy/plush/moth/firewatch, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Iq" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"IB" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"IF" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"IM" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"IQ" = ( +/obj/item/cutting_board, +/obj/structure/table, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/item/melee/knife/kitchen, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"IS" = ( +/obj/item/radio/intercom/wideband/table{ + dir = 8 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Je" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"JL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"JR" = ( +/obj/structure/chair/sofa/brown/directional{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"JX" = ( +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Kc" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Km" = ( +/obj/machinery/vending/cola/red, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Kx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"KG" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"KI" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"KM" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"KW" = ( +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Lc" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-10" + }, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Lq" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Lu" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/qm{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Lv" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Lw" = ( +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"LA" = ( +/obj/item/stack/sheet/plastic, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/circuitboard/computer/shuttle/helm, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"LB" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"LX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/closet/wall/directional/west, +/obj/item/gun/ballistic/revolver, +/obj/item/clothing/suit/hooded/wintercoat/captain, +/obj/item/storage/firstaid/o2, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mf" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Mh" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mi" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ml" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Mm" = ( +/obj/effect/turf_decal/miskilamo_small/left, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Mn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Mt" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Mx" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 1 + }, +/obj/structure/spawner/hivebot, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"MB" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ME" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"MF" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"MJ" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"MO" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable{ + icon_state = "0-4" + }, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/obj/machinery/light/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"MX" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"MZ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Na" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Nd" = ( +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Nf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Nu" = ( +/obj/structure/reagent_dispensers/foamtank, +/obj/item/extinguisher/advanced, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ny" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"NG" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"NI" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/mineral/titanium/twenty, +/obj/item/stack/ore/salvage/scraptitanium/five, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet) +"NO" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/floodlight, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Of" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/item/stack/ore/salvage/scrapuranium/five, +/obj/item/stack/ore/salvage/scrapuranium/five{ + pixel_y = -6 + }, +/obj/item/stack/ore/salvage/scrapuranium{ + pixel_y = 5 + }, +/obj/structure/closet/crate/radiation, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Og" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Oi" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ok" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Oq" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -28 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ow" = ( +/obj/structure/spawner/hivebot, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OB" = ( +/obj/structure/marker_beacon{ + picked_color = "Lime" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OK" = ( +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"OM" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OX" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"OY" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Pi" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ps" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"PJ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"PK" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"PX" = ( +/obj/structure/janitorialcart, +/obj/item/storage/bag/trash, +/obj/item/mop{ + pixel_x = -6 + }, +/obj/item/clothing/shoes/galoshes{ + pixel_x = 16; + pixel_y = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Qc" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/industrial/warning/full, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Qe" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ql" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/clothing/suit/space/hardsuit/engine, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"QS" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Ri" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Rn" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Rt" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/syndi_cakes, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Rv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"RD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RE" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"RO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RR" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RX" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Se" = ( +/obj/structure/fence/cut/large{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Sg" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Sl" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Sm" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/item/chair{ + pixel_x = -7; + pixel_y = -7 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Sq" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Sw" = ( +/obj/structure/girder, +/obj/item/stack/sheet/mineral/titanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"SA" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"SP" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/clothing/gloves/color/yellow, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"SZ" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Te" = ( +/obj/machinery/cell_charger, +/obj/structure/table, +/obj/item/stock_parts/cell/hyper/empty, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Tf" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Th" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/energy/lasercannon, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Tj" = ( +/obj/structure/closet/wall/directional/east, +/obj/item/clothing/under/utility, +/obj/item/clothing/under/utility, +/obj/item/clothing/shoes/workboots, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/item/reagent_containers/food/snacks/ration/entree/beef_strips, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ts" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"TB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/machinery/light/small/broken/directional/east, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"TE" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"TK" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"TN" = ( +/obj/machinery/vending/snack/orange, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"TX" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/directional/east, +/obj/item/seeds/kudzu, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"TY" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ub" = ( +/obj/structure/sign/warning/coldtemp{ + pixel_x = 32 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Uc" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ud" = ( +/obj/item/storage/bag/plants, +/obj/item/plant_analyzer, +/obj/item/cultivator{ + pixel_x = -4 + }, +/obj/item/shovel/spade{ + pixel_x = 6 + }, +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Uj" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/closet/crate/engineering/electrical, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Us" = ( +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Uz" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"UF" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"UP" = ( +/obj/structure/table_frame, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/paper/crumpled{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"UR" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/waterbottle/large{ + pixel_y = 20; + pixel_x = 10 + }, +/obj/item/radio/intercom/wideband/table{ + dir = 4 + }, +/obj/machinery/light/small/broken/directional/east, +/obj/item/reagent_containers/food/snacks/ration/pack/orange_beverage{ + pixel_x = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"UW" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Va" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_y = 8; + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_y = -8; + pixel_x = -4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Vp" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Vq" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"Vx" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/structure/frame, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"VG" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/sign/warning/explosives{ + pixel_x = -28 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"VO" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/mineral/stacking_unit_console{ + pixel_y = 28 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VQ" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"VS" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 8 + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = 28 + }, +/obj/machinery/light/broken/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VZ" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Wc" = ( +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/cola{ + pixel_y = 13; + pixel_x = -6 + }, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Wn" = ( +/obj/structure/fence, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Wu" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Wy" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/grey{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Wz" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"WB" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/volume_pump/on, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"WL" = ( +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WP" = ( +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WQ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"WS" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/drone{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/drone{ + pixel_y = -8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WW" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/cowboy, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Xr" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/floodlight, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"XG" = ( +/obj/structure/sign/warning/docking{ + pixel_y = -32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"XI" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/obj/item/kirbyplants/dead{ + pixel_x = 10; + pixel_y = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"XY" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ya" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/table{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Yb" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yh" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yi" = ( +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_y = 32 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yp" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yq" = ( +/obj/structure/table, +/obj/item/radio/old{ + pixel_y = 12; + pixel_x = -11 + }, +/obj/item/radio/weather_monitor{ + pixel_y = 11 + }, +/obj/item/stack/cable_coil/cut/red{ + pixel_y = 10 + }, +/obj/item/stack/tape/industrial/electrical, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yu" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/structure/crate_shelf, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Yy" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"YE" = ( +/obj/structure/fence/door/opened, +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"YJ" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"YK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"YW" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Za" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small/broken/directional/west, +/obj/item/ration_heater, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ze" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Zr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Zu" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/light/small/broken/directional/west, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Zy" = ( +/obj/structure/fence/end{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ZO" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ZP" = ( +/obj/structure/chair/sofa/brown/right{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"ZQ" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"ZW" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) + +(1,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +pj +pj +td +td +td +cg +td +td +td +cg +td +td +td +cg +td +td +td +pj +pj +"} +(2,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +pj +gx +VQ +OM +wr +wr +wr +OM +OM +wr +wr +wr +wr +wr +wr +OM +OB +XG +pj +"} +(3,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +Lw +ry +OM +OM +OM +OM +OM +jt +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +de +ry +"} +(4,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +pj +gg +gg +gg +gg +gg +tn +tn +tn +tn +gg +gg +gg +gg +Lw +ry +DA +LB +LB +OM +LB +LB +LB +LB +LB +OM +OM +OM +LB +LB +LB +jt +de +ry +"} +(5,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +GM +GM +GM +GM +Mi +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +pj +gg +Lw +Lw +ry +DA +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +de +ry +"} +(6,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +GM +GM +GM +GM +GM +cv +qw +jT +Mi +Mi +Mi +Mi +Mi +Mi +Mi +Mi +gg +gg +gg +gg +gg +gg +gg +Lw +Lw +mK +DA +MJ +OM +px +Qe +Qe +px +OM +OM +OM +px +Qe +Qe +px +OM +lB +OM +mK +"} +(7,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +GM +IS +sL +AZ +MF +kY +ek +ok +gs +zZ +vN +Te +RX +MO +BW +Mi +Mi +gg +pj +gg +gg +Lw +Lw +Lw +Lw +ry +DA +OM +OM +px +Ze +Ze +px +px +Uc +px +px +Ze +Ze +px +OM +OM +OM +ry +"} +(8,1,1) = {" +tn +tn +gg +gg +gg +pj +gg +GM +bp +iB +Yp +nH +BL +ba +kS +Hm +MZ +ke +Gl +sB +fe +GV +ul +Mi +gg +gg +gg +Lw +Lw +Lw +Lw +Lw +Se +OM +OM +sK +px +oe +nr +px +An +KI +Vx +px +nr +oe +px +px +LB +de +ry +"} +(9,1,1) = {" +tn +tn +gg +gg +gg +gg +gg +GM +MF +MF +MF +MF +kY +Sl +ok +gs +fz +iW +OY +CU +GX +tK +lY +Mi +gg +gg +gg +Lw +Vq +Lw +Lw +Lw +ry +DA +OM +sK +VZ +NG +Na +lb +jY +nf +eN +gk +Gq +tY +RR +px +OM +de +ry +"} +(10,1,1) = {" +tn +gg +gg +gg +gg +GM +GM +GM +tT +bi +PX +MF +oK +Fq +wb +gs +gs +gs +gs +gs +gs +gs +Mi +Mi +Mi +Mi +Mi +mZ +Wn +mZ +mZ +UF +mK +NO +Dp +sK +fA +Bn +Ap +px +px +vb +px +px +Ud +Mh +lV +Uc +lB +de +mK +"} +(11,1,1) = {" +tn +gg +gg +gg +gg +GM +Va +bu +Yh +JL +Yh +MF +kY +Sl +ok +gs +qt +qs +lq +Zr +Oi +zv +Mi +Lq +BS +wZ +Mi +ME +lG +df +df +OM +ry +zw +OM +sK +sz +RO +px +px +SA +VK +DE +px +px +oW +TX +px +OM +de +vZ +"} +(12,1,1) = {" +tn +gg +gg +gg +gg +GM +Fm +Wu +Aq +nx +Wu +MF +kY +Sl +ok +gs +Gk +Ny +EU +qB +Of +dv +Mt +aM +kJ +pr +IF +ey +lG +lT +df +de +ry +zw +OM +sK +px +px +px +Zu +IB +eL +kw +Za +px +px +px +px +LB +de +ry +"} +(13,1,1) = {" +gg +gg +pj +gg +GM +GM +sF +MF +MF +Gf +MF +MF +aH +Fb +kS +tL +hn +Ny +Th +kD +qB +Dc +hA +Tf +lO +WB +MB +je +yi +df +jt +OM +vZ +zw +OM +px +Yu +dY +px +bA +pt +eL +kw +dP +px +ah +ni +px +OM +de +ry +"} +(14,1,1) = {" +gg +gg +gg +gg +GM +TY +ix +EX +Rn +cF +Km +MF +kY +Sl +Lv +gs +MX +eS +iK +iK +is +jI +Mt +ne +ty +pr +IF +ki +EK +qd +qd +Nf +mK +zw +zt +Mx +hr +mi +RD +TB +to +Mz +tD +TB +CK +oh +Tj +wf +lB +jt +mK +"} +(15,1,1) = {" +gg +gg +gg +gg +GM +gP +Yh +aI +Je +YK +hO +MF +kY +cz +ok +gs +le +Hb +Hp +bB +HD +GO +Mi +ut +aQ +PJ +Mi +Vp +OM +Ab +Ab +xf +ry +zw +hW +XY +il +Pi +px +px +al +Bk +oz +px +px +in +px +px +OM +jt +ry +"} +(16,1,1) = {" +gg +gg +gg +gg +GM +Hf +aI +Ff +uw +WI +cI +gO +Lv +rQ +ok +Rv +yR +nL +bc +ga +re +Mi +Mi +bU +bU +bU +Mi +wg +OM +Ab +nV +hP +YE +KM +Wz +Lc +iR +os +qS +px +px +dI +px +px +dn +kc +WQ +wf +LB +de +ry +"} +(17,1,1) = {" +gg +pj +gg +gg +GM +pF +gb +Dz +oS +fH +Iq +MF +Lv +rQ +Lv +iD +Sg +vf +mS +cd +De +Mi +Oq +pG +Ml +WS +VG +oT +Mm +jt +Ab +OM +ry +jt +OM +px +sK +IB +sK +px +LX +aw +pY +px +px +qy +px +px +OM +de +ry +"} +(18,1,1) = {" +gg +gg +gg +gg +GM +sT +OX +OX +bO +Er +kn +qo +xh +rw +Lv +Rv +Qc +Go +Ny +Ny +De +Rv +RE +WP +RE +RE +RE +mq +hH +OM +OM +OM +mK +jt +Dp +OM +Sw +IB +sK +Ep +zQ +zQ +HY +IM +px +et +px +OM +Fh +de +mK +"} +(19,1,1) = {" +gg +gg +gg +gg +GM +lW +Ci +vX +Yb +jd +EH +MF +Lv +rQ +OK +Rv +TK +eO +bS +mS +De +Mi +VS +pG +fp +Ts +Nu +oT +vU +NI +jy +OM +ry +DA +OM +vB +Kc +Kc +sK +Ya +nP +rd +gV +pz +px +px +px +OM +OM +OM +ry +"} +(20,1,1) = {" +gg +gg +gg +gg +GM +yp +pQ +pQ +vV +yn +xl +gO +OK +rQ +Lv +Rv +yR +ZO +Uj +dw +vC +Mi +Mi +bU +bU +bU +Mi +Zy +OM +jt +jy +mA +sO +pu +LB +LB +LB +Dk +Sw +Uc +Cx +UR +LA +Uc +px +px +LB +LB +jt +de +ry +"} +(21,1,1) = {" +gg +gg +gg +gg +GM +Yq +pQ +uZ +Yh +aj +Ea +MF +kY +Sl +Lv +gs +sx +nd +mS +bZ +Hh +WL +Mi +DN +ZW +un +Mi +Xr +OM +YW +jy +yD +ry +zw +OM +OM +OM +kZ +OM +Uc +Uc +px +Gj +Uc +OM +OM +OM +OM +OM +de +ry +"} +(22,1,1) = {" +gg +gg +pj +gg +GM +jh +jh +jh +YJ +nx +TN +MF +Yi +Sl +ok +gs +vv +zP +iK +iK +pd +wv +kd +aM +kJ +pr +Nd +ki +Ps +qd +pB +Yy +mK +zw +MJ +OM +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +lB +de +mK +"} +(23,1,1) = {" +tn +gg +gg +gg +GM +GM +MF +MF +MF +Gf +MF +MF +Wc +Fb +qr +tL +hJ +Ny +mS +Ql +KW +oA +cx +Tf +lO +WB +ww +xe +rp +jy +jy +de +ry +zw +OM +jt +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +ry +"} +(24,1,1) = {" +tn +gg +gg +gg +gg +GM +wc +ar +MF +oJ +tu +MF +DJ +rQ +ok +gs +ph +Ny +Ny +mS +zp +dv +Nd +ne +ty +pr +Nd +ey +lG +jt +jy +de +ry +zw +LB +jt +AS +LB +LB +LB +OM +LB +OM +LB +LB +fP +KG +LB +LB +OM +ry +"} +(25,1,1) = {" +tn +gg +gg +gg +gg +GM +jo +Ub +FC +Kx +IQ +MF +Sm +Sl +OK +gs +VO +hs +kW +Uz +hs +pJ +Mi +yr +FG +mG +Mi +ZQ +lG +jy +jt +OM +ry +zw +OM +OM +OM +OM +OM +yb +jt +OM +OM +OM +OM +OM +OM +OM +OM +de +ry +"} +(26,1,1) = {" +tn +gg +gg +gg +gg +GM +GM +GM +MF +jC +Bs +MF +aV +Sl +JX +gs +gs +gs +gs +gs +gs +gs +Mi +Mi +Mi +Mi +Mi +TE +ov +Cs +TE +Ic +mK +GK +Dp +CC +OM +OM +jt +OM +jt +OM +Ow +OM +OM +OM +OM +jt +lB +de +mK +"} +(27,1,1) = {" +tn +tn +gg +gg +gg +gg +gg +yK +UW +UW +UW +UW +UP +FW +jq +UW +FH +Wy +UW +ge +Lu +UW +vh +El +Il +yK +qL +qL +cj +qL +qL +qL +ry +DA +OM +OM +EM +OM +Og +jt +jt +OM +OM +OM +OM +OM +OM +jt +OM +de +ry +"} +(28,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +yK +Sq +Sq +Ok +UW +yz +iF +Mn +UW +uN +lx +UW +GN +kM +UW +lx +cP +lx +cA +qL +qL +qL +gg +gg +qL +ry +DA +LB +jt +OM +lf +LB +LB +LB +LB +jt +LB +LB +LB +LB +LB +LB +OM +ry +"} +(29,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +yK +Us +Us +SP +UW +vH +FW +jq +UW +gF +lx +UW +rv +cp +UW +eD +lx +yK +yK +qL +qL +qL +gg +gg +qL +ry +DA +OM +OM +up +OM +OM +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +OM +ry +"} +(30,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +UW +nZ +UW +UW +vH +FW +jq +UW +UW +mU +UW +UW +yC +UW +UW +sm +yK +qL +qL +gg +qL +gg +gg +gg +mK +OM +Fh +gH +OM +QS +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +lB +de +mK +"} +(31,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +dd +bD +SZ +pb +uD +PK +iJ +Fn +Fn +Fn +nJ +pb +Ei +bD +bD +bD +yK +qL +qL +qL +qL +gg +gg +gg +ry +DA +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +jt +OM +OM +ry +"} +(32,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +bq +bq +pK +bq +Ri +kP +xO +bq +bq +bq +pK +bq +bq +bq +bq +bq +yK +qL +qL +qL +qL +qL +qL +gg +ry +DA +jt +LB +LB +LB +OM +LB +LB +LB +LB +LB +LB +LB +LB +LB +jt +de +ry +"} +(33,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +UW +ta +UW +UW +qu +BJ +Mf +UW +UW +yC +UW +UW +mU +UW +UW +yC +yK +gg +gg +qL +qL +qL +qL +qL +ry +DA +OM +OM +OM +jt +OM +OM +OM +OM +OM +OM +OM +OM +jt +jt +jt +de +ry +"} +(34,1,1) = {" +tn +tn +tn +tn +gg +pj +gg +yK +aL +Us +ks +UW +XI +Cw +Rt +UW +bF +lx +UW +zB +lx +UW +WW +lx +yK +gg +gg +qL +qL +qL +qL +qL +pj +yU +If +tv +OM +OM +OM +tv +OM +jt +tv +tv +OM +tv +tv +OM +lB +Cf +pj +"} +(35,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +hK +Us +hG +UW +BO +Cw +HR +UW +xs +lx +UW +BP +lx +UW +uU +lx +yK +gg +gg +gg +qL +qL +qL +qL +pj +pj +td +td +td +cg +td +td +td +cg +td +td +CV +cg +td +td +td +pj +pj +"} +(36,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +yK +yK +yK +yK +um +zN +JR +UW +kH +Av +UW +bf +yA +UW +FP +ht +yK +gg +gg +gg +qL +qL +qL +qL +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(37,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +yK +ng +Cw +ZP +yK +yK +yK +yK +yK +yK +yK +yK +yK +yK +gg +gg +qL +qL +qL +qL +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(38,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +pj +gg +gg +yK +hY +tX +tX +yK +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +qL +qL +qL +qL +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(39,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +Lw +Lw +Lw +Lw +Lw +gg +gg +gg +gg +gg +pj +gg +gg +pj +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(40,1,1) = {" +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +sf +Lw +Lw +Lw +gg +pj +gg +gg +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(41,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +pj +gg +gg +Lw +Lw +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(42,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +Lw +Lw +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(43,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +Lw +Lw +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt new file mode 100644 index 000000000000..35eb2db0bb16 --- /dev/null +++ b/_maps/map_catalogue.txt @@ -0,0 +1,242 @@ +Find the key for using this catalogue in "map_catalogue_key.txt" + + + IceRuins: + File Name = _maps\RandomRuins\IceRuins\icemoon_hydroponics_lab.dmm + Size = (x = 33)(y = 33)(z = 1) + Tags = "Medium Loot", "Medium Combat Challenge", "Antag_Gear", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_surface_corporate_rejects.dmm + Size = (x = 34)(y = 38)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Antag Gear", "Shelter", "Lava" + + File Name = _maps\RandomRuins\IceRuins\icemoon_surface_engioutpost.dmm + Size = (x = 40)(y = 20)(z = 1) + Tags = "No Combat", "Minor Loot", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_abandoned_newcops.dmm + Size = (x = 37)(y = 32)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_abandoned_village.dmm + Size = (x = 28)(y = 28)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Antag Gear", "Inhospitable" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_brazillianlab.dmm + Size = (x = 40)(y = 30)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Inhospitable" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_burnies_lair.dmm + Size = (x = 20)(y = 20)(z = 1) + Tags = "Boss Combat Challenge", "Minor Loot", "Shelter", "Antag Gear" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_drakelair.dmm + Size = (x = 29)(y = 30)(z = 1) + Tags = "Boss Combat Challenge", "Megafauna", "Major Loot", "Shelter", "Necropolis Loot" + + File Name = _maps\RandomRuins\IceRuins\icemoon_crashed_holemaker.dmm + Size = (x = 47)(y = 37)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Shelter" + + + + JungleRuins: + File Name = "_maps\RandomRuins\JungleRuins\jungle_syndicate.dmm" + Size = (x = 15)(y = 15)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable", "Antag Gear" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_interceptor.dmm" + Size = (x = 53)(y = 51)(z = 1) + Tags = "No Combat", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_medtech_outbreak.dmm" + Size = (x = 31)(y = 25)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_paradise.dmm" + Size = (x = 70)(y = 66)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable", "Hazardous" + + File Name "_maps\RandomRuins\JungleRuins\jungle_bombed_starport + Size = (x = 100)(y = 75)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Hazardous", "Liveable" + + File Name "_maps\RandomRuins\JungleRuins\jungle_cavecrew + Size = (x = 43)(y = 63)(z = 1) + Tags = "Medium Combat Challenge", "Hazardous", "Liveable", "Major Loot" + + File Name "_maps\RandomRuins\JungleRuins\jungle_abandoned_library + Size = (x = 36)(y = 35)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Antag Gear", "Necropolis Loot", "Liveable" + + LavaRuins: + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_buried_shrine.dmm" + Size = (x = 67)(y = 55)(z = 1) + Tags = "Medium Combat", "Medium Loot", "Hazardous", "Lava", "Inhospitable" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_biodome_winter.dmm" + Size = (x = 46)(y = 42)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_elephant_graveyard.dmm" + Size = (x = 29)(y = 35)(z = 1) + Tags = "No Combat", "Minor Loot", "Hazardous", "Inhospitable" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_lava_canyon.dmm" + Size = (x = 90)(y = 63)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Megafauna", "Necropolis Loot", "Inhospitable", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_wrecked_factory.dmm" + Size = (x = 47)(y = 47)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Shelter", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_crashed_starwalker.dmm" + Size = (x = 33)(y = 56)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_abandonedlisteningpost.dmm" + Size = (x = 33)(y = 56)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter" + + + ReebeRuins: + File Name = "_maps\RandomRuins\Ruins\reebe_swarmers.dmm" + Size = (x = 20)(y = 20)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Liveable" + + File Name = "_maps\RandomRuins\Ruins\reebe_arena.dmm" + Size = (x = 79)(y = 60)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\Ruins\reebe_decayed_sm.dmm" + Size = (x = 10)(y = 10)(z = 1) + Tags = "No Combat", "Medium Loot", "Liveable", "Hazardous" + + File Name = "_maps\RandomRuins\Ruins\reebe_floating_island.dmm" + Size = (x = 20)(y = 20)(z = 1) + Tags = "Boss Combat Challenge", "Minor Loot", "Liveable" + + + RockRuins: + File Name = "_maps\RandomRuins\RockRuins\rockplanet_budgetcuts.dmm" + Size = (x = 52)(y = 44)(z = 1) + Tags = "Hard Combat Challenge", "Medium Loot", "hospitable" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_harmfactory.dmm" + Size = (x = 42)(y = 41)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", Shelter", "Antag Gear", "Hazardous" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_shippingdock.dmm" + Size = (x = 85)(y = 73)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Shelter" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_nomadcrash.dmm" + Size = (x = 58)(y = 48)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Hospitable" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_distillery.dmm" + Size = (x = 44)(y = 45)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Hazardous", "Hospitable" + + + SandRuins: + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_camp_saloon.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_camp_combination.dmm" + Size = (x = 59)(y = 59)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable", "Hazardous" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_medipen_plant.dmm" + Size = (x = 23)(y = 29)(z = 1) + Tags = "No Combat", "Major Loot", "Shelter" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_pubbyslopcrash.dmm" + Size = (x = 40)(y = 25)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter" + + + + SpaceRuins: + File Name = "_maps\RandomRuins\SpaceRuins\astraeus.dmm" + Size = (x = 47)(y = 35)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Inhospitable" + + File Name = "_maps\RandomRuins\SpaceRuins\bigderelict1.dmm" + Size = (x = 40)(y = 34)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\corporate_mining.dmm" + Size = (x = 50)(y = 50)(z = 1) + Tags = "No Combat", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\onehalf.dmm" + Size = (x = 29)(y = 20)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "inhospitable" + + File Name = "_maps\RandomRuins\SpaceRuins\power_puzzle.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Minor Combat Challenge", "Major Loot", "Shelter", "Hazardous" + + File Name = "_maps\RandomRuins\SpaceRuins\singularitylab.dmm" + Size = (x = 118)(y = 75)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\spacemall.dmm" + Size = (x = 86)(y = 48)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Shelter" + + BeachRuins: + File Name = "_maps\RandomRuins\BeachRuins\beach_ancient_ruin.dmm" + Size = (x = 75)(y = 76)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_colony.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Minor Combat Challenge", "Minor Loot" + + File Name = "_maps\RandomRuins\BeachRuins\beach_fishing_hut.dmm" + Size = (x = 30)(y = 40)(z = 1) + Tags = "Hard Combat Challenge, "Major Loot", "Hazardous" + + File Name = "_maps\RandomRuins\BeachRuins\beach_crashed_engineer.dmm" + Size = (x = 32)(y = 32)(z = 1) + Tags = "Minor Combat Challenge, "Medium Loot", "Hazardous" + + File Name = "_maps\RandomRuins\BeachRuins\beach_pirate_crash.dmm" + Size = (x = 33)(y = 26)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_ocean_town.dmm" + Size = (x = 80)(y = 83)(z = 1) + Tags = "No Combat", "Minor loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_treasure_cove.dmm" + Size = (x = 37)(y = 43)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_float_resort.dmm" + Size = (x = 38)(y = 52)(z = 1) + Tags = "No Combat", "Minor Loot", "Liveable" + + Waste Ruins: + File name ="_maps\RandomRuins\wasteruins\wasteplanet_lab.dmm" + Size = (x = 26)(y = 25)(z = 1) + Tags = "No Combat", "Medium Loot" "Shelter" "hazardous" "hospitable" + + File name ="_maps\RandomRuins\wasteruins\wasteplanet_pandora.dmm" + Size = (x = 18)(y = 21)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot" "Megafauna", "hospitable" + + File name ="_maps\RandomRuins\wasteruins\wasteplanet_unhonorable.dmm" + Size = (x = 34)(y = 34)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter", "Hazardous" + + File name = "_maps\RandomRuins\wasteruins\wasteplanet_abandoned_mechbay.dmm" + Size = (x = 45)(y = 47)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot", "Shelter", "Hazardous" + + File name = "_maps\RandomRuins\wasteruins\wasteplanet_yard.dmm" + Size = (x = 43)(y = 51)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter", "Hazardous" diff --git a/code/datums/ruins/wasteplanet.dm b/code/datums/ruins/wasteplanet.dm index 40c6d19cfd5e..a4a054a7f1a2 100644 --- a/code/datums/ruins/wasteplanet.dm +++ b/code/datums/ruins/wasteplanet.dm @@ -31,3 +31,10 @@ id = "abandoned_mechbay" suffix = "wasteplanet_abandoned_mechbay.dmm" ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS) + +/datum/map_template/ruin/wasteplanet/yard + name = "Abandoned Miskilamo salvage yard" + description = "An abandonded shipbreaking yard." + id = "wasteplanet_yard" + suffix = "wasteplanet_yard.dmm" + ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS) diff --git a/code/game/area/areas/ruins/wasteplanet.dm b/code/game/area/areas/ruins/wasteplanet.dm index e80cb364c3ea..5f069d3e055b 100644 --- a/code/game/area/areas/ruins/wasteplanet.dm +++ b/code/game/area/areas/ruins/wasteplanet.dm @@ -43,3 +43,25 @@ /area/ruin/wasteplanet/wasteplanet_radiation/containment name = "Abandoned Waste Containment Vault" icon_state = "disposal" + +//Abandonded shipbreaking yard + +/area/ruin/wasteplanet/wasteplanet_shipbreaking + name = "Abandoned Shipbreaking Yard" + icon_state = "green" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay + name = "Miskilamo Shipbreaking Yard Bay" + icon_state = "engine" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen + name = "Miskilamo Shipbreaking Yard Canteen" + icon_state = "hallC" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms + name = "Miskilamo Shipbreaking Yard Dormatory" + icon_state = "bridge" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship + name = "Abandoned Shipbreaking Yard" + icon_state = "red" diff --git a/code/game/turfs/open/floor/plating/wasteplanet.dm b/code/game/turfs/open/floor/plating/wasteplanet.dm index 3cf9b047662c..7d839b66932d 100644 --- a/code/game/turfs/open/floor/plating/wasteplanet.dm +++ b/code/game/turfs/open/floor/plating/wasteplanet.dm @@ -58,6 +58,17 @@ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS planetary_atmos = TRUE +/turf/open/floor/plasteel/wasteplanet + initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS + +/turf/open/floor/plasteel/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) + return + +/turf/open/floor/plasteel/dark/wasteplanet + initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS + +/turf/open/floor/plasteel/dark/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) + return //cement /turf/open/floor/concrete/wasteplanet From 25e62756da7d0c61d0cac7fd524633da4245a39f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 01:15:40 -0500 Subject: [PATCH 043/125] Automatic changelog generation for PR #3136 [ci skip] --- html/changelogs/AutoChangeLog-pr-3136.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3136.yml diff --git a/html/changelogs/AutoChangeLog-pr-3136.yml b/html/changelogs/AutoChangeLog-pr-3136.yml new file mode 100644 index 000000000000..1c06ebef6c3e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3136.yml @@ -0,0 +1,4 @@ +author: Thera-Pissed +changes: + - {rscadd: 'New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard!'} +delete-after: true From f727ce82049310353ac09f799ca8301a795371cc Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Sun, 29 Sep 2024 07:27:07 -0500 Subject: [PATCH 044/125] Fixes condiment packs (#3350) ## About The Pull Request fixes #2367 also removes the /food/ from the path since it does nothing ## Why It's Good For The Game ## Changelog :cl: fix: condiment packs are no longer invisible and missing names /:cl: --------- Signed-off-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../BeachRuins/beach_float_resort.dmm | 4 +- .../icemoon_underground_abandoned_village.dmm | 6 +- .../JungleRuins/jungle_cavecrew.dmm | 2 +- .../JungleRuins/jungle_interceptor.dmm | 10 +- .../JungleRuins/jungle_paradise.dmm | 6 +- .../lavaland_abandonedlisteningpost.dmm | 6 +- .../LavaRuins/lavaland_crashed_starwalker.dmm | 2 +- .../lavaland_surface_wrecked_factory.dmm | 16 +-- .../RockRuins/rockplanet_budgetcuts.dmm | 8 +- .../RockRuins/rockplanet_distillery.dmm | 34 +++--- _maps/RandomRuins/SpaceRuins/spacemall.dmm | 30 ++--- _maps/map_files/generic/CentCom.dmm | 12 +- _maps/outpost/nanotrasen_asteroid.dmm | 24 ++-- .../independent/independent_beluga.dmm | 34 +++--- .../independent/independent_lagoon.dmm | 18 +-- .../independent/independent_mudskipper.dmm | 4 +- .../independent/independent_rigger.dmm | 8 +- .../independent/independent_schmiedeberg.dmm | 20 +-- .../independent/independent_shetland.dmm | 8 +- .../independent/independent_sunskipper.dmm | 26 ++-- .../independent/independent_tranquility.dmm | 28 ++--- .../shuttles/nanotrasen/nanotrasen_heron.dmm | 16 +-- _maps/shuttles/nanotrasen/nanotrasen_meta.dmm | 28 ++--- .../shuttles/nanotrasen/nanotrasen_mimir.dmm | 34 +++--- .../shuttles/nanotrasen/nanotrasen_osprey.dmm | 10 +- .../nanotrasen/nanotrasen_skipper.dmm | 20 +-- _maps/shuttles/pgf/pgf_crying_sun.dmm | 4 +- _maps/shuttles/solgov/solgov_chronicle.dmm | 12 +- _maps/shuttles/solgov/solgov_inkwell.dmm | 32 ++--- _maps/shuttles/solgov/solgov_paracelsus.dmm | 26 ++-- .../shuttles/syndicate/syndicate_panacea.dmm | 12 +- .../syndicate/syndicate_twinkleshine.dmm | 14 +-- _maps/templates/shelter_3.dmm | 4 +- code/__DEFINES/dcs/signals/signals_reagent.dm | 59 +++++++++ code/datums/components/_component.dm | 5 + code/datums/traits/negative.dm | 2 +- .../objects/items/grenades/chem_grenade.dm | 2 +- code/game/objects/items/robot/robot_items.dm | 2 +- code/game/objects/items/storage/boxes.dm | 2 +- .../crates_lockers/closets/secure/freezer.dm | 14 +-- code/modules/admin/topic.dm | 4 +- code/modules/cargo/packs/food.dm | 24 ++-- .../modules/food_and_drinks/food/condiment.dm | 114 ++++++++++-------- .../kitchen_machinery/deep_fryer.dm | 2 +- .../kitchen_machinery/smartfridge.dm | 2 +- .../mob/living/silicon/robot/robot_modules.dm | 4 +- code/modules/reagents/chemistry/holder.dm | 12 +- .../chemistry/machinery/chem_master.dm | 8 +- code/modules/vending/drinnerware.dm | 10 +- shiptest.dme | 1 + 50 files changed, 436 insertions(+), 349 deletions(-) create mode 100644 code/__DEFINES/dcs/signals/signals_reagent.dm diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm index bf43f3ee9f94..b2c39404d641 100644 --- a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm @@ -1314,10 +1314,10 @@ /area/ruin/beach/float_resort) "Ja" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_y = 18 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = -8; pixel_y = 16 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm index d26f9458a943..29710e094f64 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm @@ -242,9 +242,9 @@ /obj/item/reagent_containers/food/snacks/fishmeat/carp, /obj/item/reagent_containers/food/snacks/fishmeat/carp, /obj/item/reagent_containers/food/snacks/fishmeat/carp, -/obj/item/reagent_containers/food/condiment/pack/ketchup, -/obj/item/reagent_containers/food/condiment/pack/ketchup, -/obj/item/reagent_containers/food/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, /obj/effect/turf_decal/corner/opaque/black{ dir = 1 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index dec4c65755f9..063922d0d88e 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -1034,7 +1034,7 @@ /obj/item/reagent_containers/food/snacks/rationpack, /obj/item/reagent_containers/food/snacks/rationpack, /obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8; pixel_y = 5 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm index 057b0cbdbe8f..aab9b566f78e 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm @@ -41,7 +41,7 @@ dir = 5 }, /obj/item/stack/cable_coil/cut/green, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /turf/open/floor/plating/rust, /area/ruin/jungle/interceptor/starhall) "au" = ( @@ -992,9 +992,9 @@ /obj/structure/closet/wall/directional/east, /obj/item/reagent_containers/food/snacks/meat/slab/monkey, /obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /turf/open/floor/plasteel/tech/techmaint, /area/ruin/jungle/interceptor/starhall) "hO" = ( @@ -2887,7 +2887,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 5; pixel_y = 5 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index 39d17f372342..0e19890e63c7 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -1465,19 +1465,19 @@ pixel_x = 9 }, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -3; pixel_y = 6 }, /obj/item/reagent_containers/glass/beaker{ pixel_x = -2 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm index 483580cf70dd..8cc99b4a591a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm @@ -2100,11 +2100,11 @@ pixel_y = 29; pixel_x = -2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 17; pixel_x = -3 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 17; pixel_x = 4 }, @@ -2549,7 +2549,7 @@ pixel_y = 7; pixel_x = -9 }, -/obj/item/reagent_containers/food/condiment/bbqsauce{ +/obj/item/reagent_containers/condiment/bbqsauce{ pixel_y = 6; pixel_x = 7 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm index f9be78af5b89..4d63ae26b5bb 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm @@ -3133,7 +3133,7 @@ /obj/structure/closet/secure_closet/freezer/kitchen/wall{ pixel_y = 29 }, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/unpowered/crashed_starwalker) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm index c4a3a0397508..fda16098a148 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm @@ -705,11 +705,11 @@ /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, /obj/item/storage/box/ingredients/vegetarian, /turf/open/floor/wood, /area/ruin/lavaland/factory/adminstrative) @@ -1578,11 +1578,11 @@ /obj/effect/turf_decal/corner/opaque/bar, /obj/machinery/light/directional/east, /obj/item/storage/box/ingredients/vegetarian, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm index b837eff979f7..ef9240170e41 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm @@ -47,7 +47,7 @@ /obj/machinery/reagentgrinder{ pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -517,7 +517,7 @@ pixel_x = -1; pixel_y = 3 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = 5; pixel_y = 5 }, @@ -769,12 +769,12 @@ "mO" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm index d05a8c37f071..2fd3caa4c42f 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm @@ -49,7 +49,7 @@ /obj/structure/catwalk/over, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/table/glass, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 13; pixel_x = -2; layer = 2.8 @@ -65,7 +65,7 @@ pixel_y = 6; layer = 2.8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 10; pixel_x = 10 }, @@ -296,8 +296,8 @@ /obj/effect/turf_decal/industrial/outline/red, /obj/item/reagent_containers/food/snacks/grown/corn, /obj/item/reagent_containers/food/snacks/grown/corn, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/item/reagent_containers/food/snacks/grown/corn{ pixel_y = 3 }, @@ -1250,33 +1250,33 @@ "om" = ( /obj/structure/catwalk/over, /obj/structure/closet/crate/hydroponics, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = 8 }, /turf/open/floor/plating/rockplanet/lit, @@ -2140,12 +2140,12 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/rack, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 13; pixel_x = -2; layer = 2.8 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 7; pixel_x = -2; layer = 2.8 @@ -2897,10 +2897,10 @@ /obj/item/seeds/corn, /obj/item/seeds/corn, /obj/item/seeds/corn, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/snacks/grown/corn{ pixel_y = 4 }, diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 251b40fb4443..3be5be2fdce0 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -1430,10 +1430,10 @@ name = "Kiosk Shutters"; dir = 4 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/structure/closet/wall/directional/north, /obj/item/spacecash/bundle/c100, /turf/open/floor/plasteel/dark, @@ -2212,10 +2212,10 @@ "iE" = ( /obj/effect/turf_decal/corner/transparent/black/diagonal, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4 }, /obj/machinery/door/poddoor/shutters{ @@ -3478,10 +3478,10 @@ /area/ruin/space/has_grav/spacemall) "ns" = ( /obj/effect/turf_decal/corner/transparent/black/diagonal, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = -5 }, -/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/condiment/flour, /obj/structure/table, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/spacemall/dorms) @@ -5966,15 +5966,15 @@ pixel_x = -30; dir = 4 }, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/structure/table, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/spacemall/dorms) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 405950bfe633..2f651ffb4025 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -4407,7 +4407,7 @@ /turf/open/floor/plasteel/grimy, /area/centcom/ferry) "aOO" = ( -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/drinks/shaker, /obj/item/book/manual/wiki/drinks, /obj/structure/closet/crate, @@ -4515,11 +4515,11 @@ "aPq" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8 }, /obj/item/reagent_containers/food/drinks/mug, @@ -10956,11 +10956,11 @@ /area/centcom/control) "lii" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8 }, /obj/item/melee/knife/kitchen, @@ -14482,7 +14482,7 @@ "rUH" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/snacks/mint, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 5 }, /obj/effect/turf_decal/corner/transparent/neutral{ diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index cc6986e98b8d..f537143c31e9 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -4357,7 +4357,7 @@ /area/outpost/maintenance/fore) "qg" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -4713,12 +4713,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -5019,12 +5019,12 @@ /area/outpost/cargo) "rZ" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -10121,12 +10121,12 @@ /area/outpost/operations) "Ju" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = 9; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = 9; pixel_y = 12 @@ -11242,7 +11242,7 @@ /area/outpost/maintenance/fore) "NA" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -11758,7 +11758,7 @@ pixel_x = -5; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = -6; pixel_y = 7 }, @@ -12992,7 +12992,7 @@ /obj/structure/table/reinforced, /obj/machinery/light/directional/south, /obj/item/reagent_containers/glass/beaker, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -14096,12 +14096,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index 6158b206d67c..ca90adbeabe5 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -1454,29 +1454,29 @@ /obj/item/storage/bag/tray{ pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = 6; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -5; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -3; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, @@ -3192,42 +3192,42 @@ /area/ship/crew/dorm) "EP" = ( /obj/structure/closet/secure_closet/freezer/wall/directional/north, -/obj/item/reagent_containers/food/condiment/rice{ +/obj/item/reagent_containers/condiment/rice{ pixel_y = 17 }, -/obj/item/reagent_containers/food/condiment/flour{ +/obj/item/reagent_containers/condiment/flour{ pixel_x = 6; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/flour{ +/obj/item/reagent_containers/condiment/flour{ pixel_x = 6; pixel_y = 4 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = -7; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = -7; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/soymilk{ +/obj/item/reagent_containers/condiment/soymilk{ pixel_y = -5; pixel_x = -4 }, -/obj/item/reagent_containers/food/condiment/soymilk{ +/obj/item/reagent_containers/condiment/soymilk{ pixel_y = -5; pixel_x = -4 }, @@ -4139,7 +4139,7 @@ pixel_y = 17; pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -6; pixel_y = 10 }, diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm index 16f3ad2cbfa1..3615828fa9d2 100644 --- a/_maps/shuttles/independent/independent_lagoon.dmm +++ b/_maps/shuttles/independent/independent_lagoon.dmm @@ -1366,7 +1366,7 @@ icon_state = "2-4" }, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/effect/turf_decal/corner/opaque/white/diagonal, /obj/item/radio/intercom/directional/west, /turf/open/floor/plasteel, @@ -1569,12 +1569,12 @@ /obj/structure/closet/secure_closet/freezer/kitchen, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/effect/turf_decal/corner/opaque/white/diagonal, /obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel, @@ -3931,11 +3931,11 @@ /area/ship/hallway/aft) "An" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 5; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/corner/opaque/white/diagonal, /turf/open/floor/plasteel, diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm index be3d9a994e7f..26474b9c4c2f 100644 --- a/_maps/shuttles/independent/independent_mudskipper.dmm +++ b/_maps/shuttles/independent/independent_mudskipper.dmm @@ -1881,11 +1881,11 @@ "Rl" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 10; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 18; pixel_y = 2 }, diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm index da493fcdf548..d6cb54aed39c 100644 --- a/_maps/shuttles/independent/independent_rigger.dmm +++ b/_maps/shuttles/independent/independent_rigger.dmm @@ -241,8 +241,8 @@ /obj/item/storage/cans/sixbeer, /obj/effect/spawner/lootdrop/ration, /obj/effect/spawner/lootdrop/ration, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, /obj/item/radio/intercom/directional/north, /turf/open/floor/plasteel/white, /area/ship/crew/canteen) @@ -4398,10 +4398,10 @@ }, /obj/effect/turf_decal/corner/opaque/yellow/diagonal, /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -14 }, /turf/open/floor/plasteel/white, diff --git a/_maps/shuttles/independent/independent_schmiedeberg.dmm b/_maps/shuttles/independent/independent_schmiedeberg.dmm index 891e3bd2ce9a..3ae3915db4d3 100644 --- a/_maps/shuttles/independent/independent_schmiedeberg.dmm +++ b/_maps/shuttles/independent/independent_schmiedeberg.dmm @@ -68,13 +68,13 @@ "aO" = ( /obj/structure/table, /obj/item/storage/bag/tray, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/melee/knife/kitchen, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -5; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 3; pixel_y = 11 }, @@ -2516,13 +2516,13 @@ /obj/structure/closet/secure_closet/freezer/wall/directional/north, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/peppermill, /obj/effect/decal/cleanable/food/flour, /turf/open/floor/concrete/slab_3, /area/ship/crew/canteen) diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm index 89dd45bb2262..3bf95ea99b6f 100644 --- a/_maps/shuttles/independent/independent_shetland.dmm +++ b/_maps/shuttles/independent/independent_shetland.dmm @@ -2852,11 +2852,11 @@ "xz" = ( /obj/effect/turf_decal/corner/opaque/neutral/half, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 4; pixel_y = 10 }, @@ -3441,8 +3441,8 @@ populate = 0 }, /obj/effect/turf_decal/corner/opaque/neutral/half, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "CK" = ( diff --git a/_maps/shuttles/independent/independent_sunskipper.dmm b/_maps/shuttles/independent/independent_sunskipper.dmm index a5fcf740be59..3edffc72acbc 100644 --- a/_maps/shuttles/independent/independent_sunskipper.dmm +++ b/_maps/shuttles/independent/independent_sunskipper.dmm @@ -196,11 +196,11 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = 6; pixel_y = 8 }, @@ -349,11 +349,11 @@ pixel_x = -7; pixel_y = 9 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 13; pixel_x = 4 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 13; pixel_x = 11 }, @@ -3172,11 +3172,11 @@ /area/template_noop) "Pe" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/oliveoil{ +/obj/item/reagent_containers/condiment/oliveoil{ pixel_x = 6; pixel_y = 8 }, @@ -3273,7 +3273,7 @@ /obj/structure/closet/secure_closet/freezer/kitchen, /obj/effect/turf_decal/borderfloorblack, /obj/effect/turf_decal/box, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen/kitchen) "QB" = ( @@ -3554,10 +3554,10 @@ /obj/structure/closet/crate{ name = "supplies crate" }, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/peppermill, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /obj/item/storage/box/lights/mixed, /obj/item/storage/box/drinkingglasses, /obj/item/storage/fancy/candle_box, @@ -3656,11 +3656,11 @@ "VG" = ( /obj/machinery/light/directional/west, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/bbqsauce{ +/obj/item/reagent_containers/condiment/bbqsauce{ pixel_x = 6; pixel_y = 8 }, diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index 6a26f5e7b264..fe5a2993e2fc 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -544,20 +544,20 @@ dir = 1 }, /obj/effect/turf_decal/corner/transparent/bar, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/item/storage/box/ingredients/carnivore, /obj/item/storage/box/ingredients/fruity, /obj/item/storage/box/ingredients/grains, /obj/item/storage/box/ingredients/vegetarian, /obj/item/storage/box/ingredients/wildcard, /obj/item/storage/box/ingredients/wildcard, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/condiment/mayonnaise, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/reagent_containers/condiment/mayonnaise, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/item/storage/box/condimentbottles, /obj/structure/closet/secure_closet/wall/directional/west{ name = "Kitchen Cabinet" @@ -1160,7 +1160,7 @@ /area/ship/crew/dorm) "iq" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -11; pixel_y = 6 }, @@ -3002,7 +3002,7 @@ /area/ship/hallway/port) "yL" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 13; pixel_y = 2 }, @@ -5415,10 +5415,10 @@ /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, /obj/structure/closet/secure_closet/wall/directional/east{ diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index b469bbaa0984..3dda0b36dd63 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -7054,11 +7054,11 @@ /area/ship/hallway/fore) "zN" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = 3; pixel_y = 3 }, -/obj/item/reagent_containers/food/condiment/mayonnaise, +/obj/item/reagent_containers/condiment/mayonnaise, /obj/effect/turf_decal/box/corners{ dir = 4 }, @@ -9209,12 +9209,12 @@ "HT" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -9319,11 +9319,11 @@ "Ip" = ( /obj/structure/table, /obj/item/reagent_containers/food/snacks/mint, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = 5; pixel_y = 5 }, @@ -12148,12 +12148,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm index 1f645758f3cb..eaf4abc2b9b3 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm @@ -543,11 +543,11 @@ pixel_y = 3 }, /obj/effect/turf_decal/corner/transparent/bar/diagonal, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_y = 14; pixel_x = 9 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_y = 14 }, /obj/item/reagent_containers/food/drinks/soda_cans/cola{ @@ -1808,10 +1808,10 @@ /area/ship/engineering) "lH" = ( /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat{ pixel_x = -3; pixel_y = 3 @@ -1827,10 +1827,10 @@ name = "fridge"; anchored = 1 }, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) "lK" = ( @@ -2758,11 +2758,11 @@ /area/ship/cargo) "EX" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8; pixel_y = 4 }, @@ -2869,11 +2869,11 @@ pixel_y = 6 }, /obj/effect/turf_decal/corner/opaque/white/diagonal, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8; pixel_y = 4 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 708933a2287a..aa2a0aad5b1f 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -2814,18 +2814,18 @@ }, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, /obj/item/reagent_containers/food/snacks/tofu, /obj/item/reagent_containers/food/snacks/tofu, /turf/open/floor/plasteel/mono/white, @@ -3878,14 +3878,14 @@ /area/ship/crew/canteen/kitchen) "xb" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 4 }, -/obj/item/reagent_containers/food/condiment/rice{ +/obj/item/reagent_containers/condiment/rice{ pixel_y = 10; pixel_x = 3 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -5; pixel_y = 5 }, @@ -4466,11 +4466,11 @@ /obj/item/toy/figure/chef, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 10; pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 8; pixel_y = 9 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index a44e00c41303..fb1d6e3c1f12 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -2797,11 +2797,11 @@ /area/ship/hallway/central) "sl" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 10 }, @@ -5577,7 +5577,7 @@ "JL" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/drinks/shaker, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, @@ -7646,8 +7646,8 @@ /obj/structure/table/reinforced, /obj/item/melee/knife/kitchen, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index e69aa1de47ca..d875a024d07f 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -2621,11 +2621,11 @@ /obj/effect/turf_decal/corner/opaque/white/mono, /obj/structure/table/reinforced, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -2; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 6; pixel_x = -8 }, @@ -4971,11 +4971,11 @@ /obj/effect/turf_decal/corner/opaque/neutral/half{ dir = 1 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 6; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -2; pixel_y = 11 }, @@ -5142,12 +5142,12 @@ /obj/structure/closet/secure_closet/freezer{ anchored = 1 }, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /obj/effect/turf_decal/corner/opaque/green/mono, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) diff --git a/_maps/shuttles/pgf/pgf_crying_sun.dmm b/_maps/shuttles/pgf/pgf_crying_sun.dmm index eb5211a95ac9..0c740842e5d9 100644 --- a/_maps/shuttles/pgf/pgf_crying_sun.dmm +++ b/_maps/shuttles/pgf/pgf_crying_sun.dmm @@ -2584,11 +2584,11 @@ pixel_x = 9; pixel_y = -5 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 10; pixel_x = -6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 10 }, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm index e8af1166a200..bacabd6cc23c 100644 --- a/_maps/shuttles/solgov/solgov_chronicle.dmm +++ b/_maps/shuttles/solgov/solgov_chronicle.dmm @@ -2476,8 +2476,8 @@ color = "#543C30"; dir = 4 }, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, /turf/open/floor/wood/mahogany, /area/ship/crew) "zh" = ( @@ -2528,10 +2528,10 @@ /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, /obj/structure/closet/crate/secure/gear{ desc = "For emergency use only"; name = "emergency sauerkraut supplies"; diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm index 5d2c0fbe0ccc..27427f9bbfa2 100644 --- a/_maps/shuttles/solgov/solgov_inkwell.dmm +++ b/_maps/shuttles/solgov/solgov_inkwell.dmm @@ -3343,10 +3343,10 @@ /obj/structure/table/wood, /obj/item/cutting_board, /obj/item/melee/knife/kitchen, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -17 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -10; pixel_y = 6 }, @@ -3950,17 +3950,17 @@ /area/ship/crew/dorm/dormtwo) "yE" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /turf/open/floor/wood/walnut, /area/ship/crew/canteen/kitchen) "yG" = ( @@ -7366,10 +7366,10 @@ /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, /obj/structure/closet/crate/secure/gear{ desc = "For emergency use only"; name = "emergency sauerkraut supplies"; diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm index ef642488ef50..9cfda7a14c0d 100644 --- a/_maps/shuttles/solgov/solgov_paracelsus.dmm +++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm @@ -3538,11 +3538,11 @@ pixel_x = -7; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 10; pixel_y = 10 }, @@ -4004,17 +4004,17 @@ /turf/open/floor/carpet/royalblue, /area/ship/crew/office) "ML" = ( -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/enzyme, /obj/structure/closet/secure_closet/freezer{ anchored = 1; name = "refrigerator" diff --git a/_maps/shuttles/syndicate/syndicate_panacea.dmm b/_maps/shuttles/syndicate/syndicate_panacea.dmm index 71526c69198f..3d26ff6512b5 100644 --- a/_maps/shuttles/syndicate/syndicate_panacea.dmm +++ b/_maps/shuttles/syndicate/syndicate_panacea.dmm @@ -6496,15 +6496,15 @@ /area/ship/crew/dorm/dormtwo) "LY" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -2; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 14; pixel_x = 14 }, @@ -6798,15 +6798,15 @@ /area/ship/crew/office) "Nz" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = 2; pixel_y = 15 }, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_x = 11; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/hotsauce{ +/obj/item/reagent_containers/condiment/hotsauce{ pixel_y = 16; pixel_x = -8 }, diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index ca7bd7705efd..6c690286b2ac 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -2993,18 +2993,18 @@ "qP" = ( /obj/machinery/light/directional/north, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/structure/closet/secure_closet/freezer/kitchen, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, /obj/item/storage/box/ingredients/carnivore, /obj/item/storage/box/ingredients/vegetarian, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, /obj/effect/spawner/lootdrop/donkpockets, /obj/effect/spawner/lootdrop/donkpockets, /turf/open/floor/carpet/red, diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm index dd4f6645a518..570483a06a1d 100644 --- a/_maps/templates/shelter_3.dmm +++ b/_maps/templates/shelter_3.dmm @@ -187,11 +187,11 @@ /area/survivalpod) "F" = ( /obj/structure/table/wood/fancy, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 4 }, diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm new file mode 100644 index 000000000000..957bb6083674 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_reagent.dm @@ -0,0 +1,59 @@ +// Atom reagent signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) +//#define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" + /// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS] + //#define COMPONENT_NO_EXPOSE_REAGENTS (1<<0) +///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) +//#define COMSIG_ATOM_AFTER_EXPOSE_REAGENTS "atom_after_expose_reagents" +///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume) +//#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent" +///from base of [/datum/reagent/proc/expose_atom]: (/atom, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_ATOM "reagent_expose_atom" +///from base of [/datum/reagent/proc/expose_atom]: (/obj, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_OBJ "reagent_expose_obj" +///from base of [/datum/reagent/proc/expose_atom]: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/camera/blob) // ovemind arg is only used by blob reagents. +//#define COMSIG_REAGENT_EXPOSE_MOB "reagent_expose_mob" +///from base of [/datum/reagent/proc/expose_atom]: (/turf, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_TURF "reagent_expose_turf" + +///from base of [/datum/materials_controller/proc/InitializeMaterial]: (/datum/material) +//#define COMSIG_MATERIALS_INIT_MAT "SSmaterials_init_mat" + +///from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left) +//#define COMSIG_ON_MULTIPLE_LIVES_RESPAWN "on_multiple_lives_respawn" + +///from base of [/datum/reagents/proc/add_reagent] - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react) +//#define COMSIG_REAGENTS_PRE_ADD_REAGENT "reagents_pre_add_reagent" + /// Prevents the reagent from being added. + //#define COMPONENT_CANCEL_REAGENT_ADD (1<<0) +///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_NEW_REAGENT "reagents_new_reagent" +///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_ADD_REAGENT "reagents_add_reagent" +///from base of [/datum/reagents/proc/del_reagent]: (/datum/reagent) +#define COMSIG_REAGENTS_DEL_REAGENT "reagents_del_reagent" +///from base of [/datum/reagents/proc/remove_reagent]: (/datum/reagent, amount) +#define COMSIG_REAGENTS_REM_REAGENT "reagents_rem_reagent" +///from base of [/datum/reagents/proc/clear_reagents]: () +#define COMSIG_REAGENTS_CLEAR_REAGENTS "reagents_clear_reagents" +///from base of [/datum/reagents/proc/set_temperature]: (new_temp, old_temp) +//#define COMSIG_REAGENTS_TEMP_CHANGE "reagents_temp_change" +///from base of [/datum/reagents/proc/handle_reactions]: (num_reactions) +//#define COMSIG_REAGENTS_REACTED "reagents_reacted" +///from base of [/datum/reagents/proc/process]: (num_reactions) +//#define COMSIG_REAGENTS_REACTION_STEP "reagents_time_step" +///from base of [/atom/proc/expose_reagents]: (/atom, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_ATOM "reagents_expose_atom" +///from base of [/obj/proc/expose_reagents]: (/obj, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_OBJ "reagents_expose_obj" +///from base of [/mob/living/proc/expose_reagents]: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection) +//#define COMSIG_REAGENTS_EXPOSE_MOB "reagents_expose_mob" +///from base of [/turf/proc/expose_reagents]: (/turf, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf" +/// sent when reagents are transfered from a cup, to something refillable (atom/transfer_to) +//#define COMSIG_REAGENTS_CUP_TRANSFER_TO "reagents_cup_transfer_to" +/// sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from) +//#define COMSIG_REAGENTS_CUP_TRANSFER_FROM "reagents_cup_transfer_from" diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index d76504787b04..6c15d00869f2 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -204,6 +204,11 @@ else // Many other things have registered here lookup[sig_type][src] = TRUE +/// Registers multiple signals to the same proc. +/datum/proc/RegisterSignals(datum/target, list/signal_types, proctype, override = FALSE) + for (var/signal_type in signal_types) + RegisterSignal(target, signal_type, proctype, override) + /** * Stop listening to a given signal from target * diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 6bb9ca1200c8..e504bfee31d5 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -109,7 +109,7 @@ if("Janitor") heirloom_type = pick(/obj/item/mop, /obj/item/clothing/suit/caution, /obj/item/reagent_containers/glass/bucket, /obj/item/paper/fluff/stations/soap) if("Cook") - heirloom_type = pick(/obj/item/reagent_containers/food/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat) + heirloom_type = pick(/obj/item/reagent_containers/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat) if("Botanist") heirloom_type = pick(/obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/item/toy/plush/beeplushie) if("Bartender") diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index b675a0012152..e8b7e0de487f 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -207,7 +207,7 @@ desc = "A custom made large grenade. Larger splash range and increased ignition temperature compared to basic grenades. Fits exotic and bluespace based containers." casedesc = "This casing affects a larger area than the basic model and can fit exotic containers, including slime cores and bluespace beakers. Heats contents by 25°K upon ignition." icon_state = "large_grenade" - allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/food/condiment, /obj/item/reagent_containers/food/drinks) + allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/condiment, /obj/item/reagent_containers/food/drinks) banned_containers = list() affected_area = 5 ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 243b84b7e1ec..614b37ec4548 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -886,7 +886,7 @@ desc = "A special apparatus for carrying drinks without spilling the contents. Alt-Z or right-click to drop the beaker." icon_state = "borg_beaker_apparatus" storable = list(/obj/item/reagent_containers/food/drinks/, - /obj/item/reagent_containers/food/condiment) + /obj/item/reagent_containers/condiment) /obj/item/borg/apparatus/beaker/service/Initialize() . = ..() diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 8aa7b1d9c478..57b574e39b7f 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -455,7 +455,7 @@ /obj/item/storage/box/condimentbottles/PopulateContents() for(var/i in 1 to 6) - new /obj/item/reagent_containers/food/condiment(src) + new /obj/item/reagent_containers/condiment(src) /obj/item/storage/box/cups name = "box of paper cups" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index 0e7ab6e0a526..2bdc4f762dc0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -33,9 +33,9 @@ /obj/structure/closet/secure_closet/freezer/kitchen/PopulateContents() ..() for(var/i = 0, i < 3, i++) - new /obj/item/reagent_containers/food/condiment/flour(src) - new /obj/item/reagent_containers/food/condiment/rice(src) - new /obj/item/reagent_containers/food/condiment/sugar(src) + new /obj/item/reagent_containers/condiment/flour(src) + new /obj/item/reagent_containers/condiment/rice(src) + new /obj/item/reagent_containers/condiment/sugar(src) /obj/structure/closet/secure_closet/freezer/kitchen/maintenance name = "maintenance refrigerator" @@ -45,9 +45,9 @@ /obj/structure/closet/secure_closet/freezer/kitchen/maintenance/PopulateContents() ..() for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/milk(src) + new /obj/item/reagent_containers/condiment/milk(src) for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/soymilk(src) + new /obj/item/reagent_containers/condiment/soymilk(src) for(var/i = 0, i < 2, i++) new /obj/item/storage/fancy/egg_box(src) @@ -82,9 +82,9 @@ /obj/structure/closet/secure_closet/freezer/fridge/PopulateContents() ..() for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/milk(src) + new /obj/item/reagent_containers/condiment/milk(src) for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/soymilk(src) + new /obj/item/reagent_containers/condiment/soymilk(src) for(var/i = 0, i < 2, i++) new /obj/item/storage/fancy/egg_box(src) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 927120f94a9d..7f546f5a6e7d 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1217,9 +1217,9 @@ //milk to plasmemes and skeletons, meat to lizards, electricity bars to ethereals, cookies to everyone else var/obj/item/reagent_containers/food/cookiealt = /obj/item/reagent_containers/food/snacks/cookie if(isskeleton(H)) - cookiealt = /obj/item/reagent_containers/food/condiment/milk + cookiealt = /obj/item/reagent_containers/condiment/milk else if(isplasmaman(H)) - cookiealt = /obj/item/reagent_containers/food/condiment/milk + cookiealt = /obj/item/reagent_containers/condiment/milk else if(iselzuose(H)) cookiealt = /obj/item/reagent_containers/food/snacks/energybar // WS - More fun with cookies - Start diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index f2b9d0ec09a7..3eb7f33cbe4c 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -64,12 +64,12 @@ name = "Basic Ingredients Crate" desc = "Get things cooking with this crate full of useful ingredients! Contains a dozen eggs, two slabs of meat, some flour, some rice, a bottle of milk, a bottle of soymilk, and a bag of sugar." cost = 300 - contains = list(/obj/item/reagent_containers/food/condiment/flour, - /obj/item/reagent_containers/food/condiment/flour, - /obj/item/reagent_containers/food/condiment/rice, - /obj/item/reagent_containers/food/condiment/milk, - /obj/item/reagent_containers/food/condiment/soymilk, - /obj/item/reagent_containers/food/condiment/sugar, + contains = list(/obj/item/reagent_containers/condiment/flour, + /obj/item/reagent_containers/condiment/flour, + /obj/item/reagent_containers/condiment/rice, + /obj/item/reagent_containers/condiment/milk, + /obj/item/reagent_containers/condiment/soymilk, + /obj/item/reagent_containers/condiment/sugar, /obj/item/storage/fancy/egg_box, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab @@ -81,13 +81,13 @@ name = "Condiments Crate" desc = "A variety of garnishes for topping off your dish with a little extra pizzaz. Contains a bottle of enzyme, a salt shaker, a pepper mill, a bottle of ketchup, a bottle of hot sauce, a bottle of BBQ sauce, and a bottle of cream." cost = 250 - contains = list(/obj/item/reagent_containers/food/condiment/enzyme, - /obj/item/reagent_containers/food/condiment/saltshaker, - /obj/item/reagent_containers/food/condiment/peppermill, - /obj/item/reagent_containers/food/condiment/ketchup, - /obj/item/reagent_containers/food/condiment/hotsauce, + contains = list(/obj/item/reagent_containers/condiment/enzyme, + /obj/item/reagent_containers/condiment/saltshaker, + /obj/item/reagent_containers/condiment/peppermill, + /obj/item/reagent_containers/condiment/ketchup, + /obj/item/reagent_containers/condiment/hotsauce, /obj/item/reagent_containers/food/drinks/bottle/cream, - /obj/item/reagent_containers/food/condiment/bbqsauce + /obj/item/reagent_containers/condiment/bbqsauce ) crate_name = "condiments crate" crate_type = /obj/structure/closet/crate/freezer diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 0adf98ba5666..bd24a21d1a16 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -5,7 +5,7 @@ // to mixed-drinks code. If you want an object that starts pre-loaded, you need to make it in addition to the other code. //Food items that aren't eaten normally and leave an empty container behind. -/obj/item/reagent_containers/food/condiment +/obj/item/reagent_containers/condiment name = "condiment bottle" desc = "Just your average condiment bottle." icon = 'icons/obj/food/containers.dmi' @@ -36,23 +36,25 @@ var/icon_empty = "" fill_icon_thresholds = list(0, 10, 25, 50, 75, 100) -/obj/item/reagent_containers/food/condiment/Initialize() +/obj/item/reagent_containers/condiment/Initialize() . = ..() possible_states = typelist("possible_states", possible_states) update_appearance() -/obj/item/reagent_containers/food/condiment/update_icon() +/obj/item/reagent_containers/condiment/update_icon() cut_overlays() if(reagents.reagent_list.len > 0 && possible_states.len) - var/main_reagent = reagents.get_master_reagent_id() - if(main_reagent in possible_states) - icon_state = possible_states[main_reagent]["icon_state"] - item_state = possible_states[main_reagent]["item_state"] - icon_empty = possible_states[main_reagent]["icon_empty"] - name = possible_states[main_reagent]["name"] - desc = possible_states[main_reagent]["desc"] + + var/datum/reagent/main_reagent_ref = reagents.get_master_reagent() + var/main_reagent_id = main_reagent_ref.type + if(main_reagent_id in possible_states) + icon_state = possible_states[main_reagent_id]["icon_state"] + item_state = possible_states[main_reagent_id]["item_state"] + icon_empty = possible_states[main_reagent_id]["icon_empty"] + name = possible_states[main_reagent_id]["name"] + desc = possible_states[main_reagent_id]["desc"] return ..(TRUE) // Don't fill normally else name = "condiment bottle" @@ -64,7 +66,7 @@ . = ..() -/obj/item/reagent_containers/food/condiment/attack(mob/M, mob/user, def_zone) +/obj/item/reagent_containers/condiment/attack(mob/M, mob/user, def_zone) if(!reagents || !reagents.total_volume) to_chat(user, "None of [src] left, oh no!") @@ -90,7 +92,7 @@ playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE) return 1 -/obj/item/reagent_containers/food/condiment/afterattack(obj/target, mob/user , proximity) +/obj/item/reagent_containers/condiment/afterattack(obj/target, mob/user , proximity) . = ..() if(!proximity) return @@ -119,23 +121,23 @@ to_chat(user, "You transfer [trans] units of the condiment to [target].") playsound(src, 'sound/items/glass_transfer.ogg', 50, 1) -/obj/item/reagent_containers/food/condiment/on_reagent_change(changetype) +/obj/item/reagent_containers/condiment/on_reagent_change(changetype) update_appearance() -/obj/item/reagent_containers/food/condiment/enzyme +/obj/item/reagent_containers/condiment/enzyme name = "universal enzyme" desc = "Used in cooking various dishes." icon_state = "enzyme" list_reagents = list(/datum/reagent/consumable/enzyme = 50) -/obj/item/reagent_containers/food/condiment/sugar +/obj/item/reagent_containers/condiment/sugar name = "sugar sack" desc = "Tasty spacey sugar!" icon_state = "sugar" item_state = "flour" list_reagents = list(/datum/reagent/consumable/sugar = 50) -/obj/item/reagent_containers/food/condiment/saltshaker //Separate from above since it's a small shaker rather then +/obj/item/reagent_containers/condiment/saltshaker //Separate from above since it's a small shaker rather then name = "salt shaker" // a large one. desc = "Salt. From space oceans, presumably." icon_state = "saltshakersmall" @@ -145,7 +147,7 @@ volume = 20 list_reagents = list(/datum/reagent/consumable/sodiumchloride = 20) -/obj/item/reagent_containers/food/condiment/saltshaker/afterattack(obj/target, mob/living/user, proximity) +/obj/item/reagent_containers/condiment/saltshaker/afterattack(obj/target, mob/living/user, proximity) . = ..() if(!proximity) return @@ -158,7 +160,7 @@ new/obj/effect/decal/cleanable/food/salt(target) return -/obj/item/reagent_containers/food/condiment/peppermill +/obj/item/reagent_containers/condiment/peppermill name = "pepper mill" desc = "Often used to flavor food or make people sneeze." icon_state = "peppermillsmall" @@ -168,7 +170,7 @@ volume = 20 list_reagents = list(/datum/reagent/consumable/blackpepper = 20) -/obj/item/reagent_containers/food/condiment/milk +/obj/item/reagent_containers/condiment/milk name = "space milk" desc = "It's milk. White and nutritious goodness!" icon_state = "milk" @@ -177,14 +179,14 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' list_reagents = list(/datum/reagent/consumable/milk = 50) -/obj/item/reagent_containers/food/condiment/flour +/obj/item/reagent_containers/condiment/flour name = "flour sack" desc = "A big bag of flour. Good for baking!" icon_state = "flour" item_state = "flour" list_reagents = list(/datum/reagent/consumable/flour = 30) -/obj/item/reagent_containers/food/condiment/soymilk +/obj/item/reagent_containers/condiment/soymilk name = "soy milk" desc = "It's soy milk. White and nutritious goodness!" icon_state = "soymilk" @@ -193,20 +195,20 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' list_reagents = list(/datum/reagent/consumable/soymilk = 50) -/obj/item/reagent_containers/food/condiment/rice +/obj/item/reagent_containers/condiment/rice name = "rice sack" desc = "A big bag of rice. Good for cooking!" icon_state = "rice" item_state = "flour" list_reagents = list(/datum/reagent/consumable/rice = 30) -/obj/item/reagent_containers/food/condiment/soysauce +/obj/item/reagent_containers/condiment/soysauce name = "soy sauce" desc = "A salty soy-based flavoring." icon_state = "soysauce" list_reagents = list(/datum/reagent/consumable/soysauce = 50) -/obj/item/reagent_containers/food/condiment/mayonnaise +/obj/item/reagent_containers/condiment/mayonnaise name = "mayonnaise" desc = "An oily condiment made from egg yolks." icon_state = "mayonnaise" @@ -214,7 +216,7 @@ //Food packs. To easily apply deadly toxi... delicious sauces to your food! -/obj/item/reagent_containers/food/condiment/pack +/obj/item/reagent_containers/condiment/pack name = "condiment pack" desc = "A small plastic pack with condiments to put on your food." icon_state = "condi_empty" @@ -234,14 +236,19 @@ /datum/reagent/consumable/bbqsauce = list("condi_bbq", "BBQ sauce", "Hand wipes not included."), ) -/obj/item/reagent_containers/food/condiment/pack/update_icon() +/obj/item/reagent_containers/condiment/pack/create_reagents(max_vol, flags) + . = ..() + RegisterSignals(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_REM_REAGENT), PROC_REF(on_reagent_add), TRUE) + RegisterSignal(reagents, COMSIG_REAGENTS_DEL_REAGENT, PROC_REF(on_reagent_del), TRUE) + +/obj/item/reagent_containers/condiment/pack/update_icon() SHOULD_CALL_PARENT(FALSE) - return ..() + return -/obj/item/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. +/obj/item/reagent_containers/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. return -/obj/item/reagent_containers/food/condiment/pack/afterattack(obj/target, mob/user , proximity) +/obj/item/reagent_containers/condiment/pack/afterattack(obj/target, mob/user , proximity) . = ..() if(!proximity) return @@ -257,67 +264,74 @@ src.reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user) qdel(src) -/obj/item/reagent_containers/food/condiment/pack/on_reagent_change(changetype) - if(reagents.reagent_list.len > 0) - var/main_reagent = reagents.get_master_reagent_id() - if(main_reagent in possible_states) - var/list/temp_list = possible_states[main_reagent] - icon_state = temp_list[1] - desc = temp_list[3] - else - icon_state = "condi_mixed" - desc = "A small condiment pack. The label says it contains [originalname]" +/// Handles reagents getting added to the condiment pack. +/obj/item/reagent_containers/condiment/pack/proc/on_reagent_add(datum/reagents/reagents) + SIGNAL_HANDLER + + var/datum/reagent/main_reagent = reagents.get_master_reagent() + + var/main_reagent_type = main_reagent?.type + if(main_reagent_type in possible_states) + var/list/temp_list = possible_states[main_reagent_type] + icon_state = temp_list[1] + desc = temp_list[3] else - icon_state = "condi_empty" - desc = "A small condiment pack. It is empty." + icon_state = "condi_mixed" + desc = "A small condiment pack. The label says it contains [originalname]" + +/// Handles reagents getting removed from the condiment pack. +/obj/item/reagent_containers/condiment/pack/proc/on_reagent_del(datum/reagents/reagents) + SIGNAL_HANDLER + icon_state = "condi_empty" + desc = "A small condiment pack. It is empty." //Ketchup -/obj/item/reagent_containers/food/condiment/pack/ketchup +/obj/item/reagent_containers/condiment/pack/ketchup name = "ketchup pack" originalname = "ketchup" list_reagents = list(/datum/reagent/consumable/ketchup = 10) //Hot sauce -/obj/item/reagent_containers/food/condiment/pack/hotsauce +/obj/item/reagent_containers/condiment/pack/hotsauce name = "hotsauce pack" originalname = "hotsauce" list_reagents = list(/datum/reagent/consumable/capsaicin = 10) -/obj/item/reagent_containers/food/condiment/pack/astrotame +/obj/item/reagent_containers/condiment/pack/astrotame name = "astrotame pack" originalname = "astrotame" list_reagents = list(/datum/reagent/consumable/astrotame = 5) -/obj/item/reagent_containers/food/condiment/pack/bbqsauce +/obj/item/reagent_containers/condiment/pack/bbqsauce name = "bbq sauce pack" originalname = "bbq sauce" list_reagents = list(/datum/reagent/consumable/bbqsauce = 10) -/obj/item/reagent_containers/food/condiment/ketchup +/obj/item/reagent_containers/condiment/ketchup name = "ketchup bottle" desc = "You feel more american already" icon_state = "ketchup" list_reagents = list(/datum/reagent/consumable/ketchup = 50) -/obj/item/reagent_containers/food/condiment/bbqsauce +/obj/item/reagent_containers/condiment/bbqsauce name = "bbq sauce bottle" desc = "Hand wipes not included" icon_state = "bbqsauce" list_reagents = list(/datum/reagent/consumable/bbqsauce = 50) -/obj/item/reagent_containers/food/condiment/hotsauce +/obj/item/reagent_containers/condiment/hotsauce name = "hot sauce bottle" desc = "You can almost TASTE the stomach ulcers now!" icon_state = "hotsauce" list_reagents = list(/datum/reagent/consumable/capsaicin = 50) -/obj/item/reagent_containers/food/condiment/coldsauce +/obj/item/reagent_containers/condiment/coldsauce name = "cold sauce bottle" desc = "Leaves the tounge numb in it's passage" icon_state = "coldsauce" list_reagents = list(/datum/reagent/consumable/frostoil = 50) -/obj/item/reagent_containers/food/condiment/oliveoil +/obj/item/reagent_containers/condiment/oliveoil name = "olive oil bottle" desc = "A delicious oil used in cooking" icon_state = "oliveoil" diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 62e6a4075a93..bcee075e0dcd 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -44,7 +44,7 @@ /obj/item/weldingtool, /obj/item/reagent_containers/glass, /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/food/condiment, + /obj/item/reagent_containers/condiment, /obj/item/storage, /obj/item/smallDelivery, ) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 5852ea34742b..9a6b10e0444b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -366,7 +366,7 @@ /obj/machinery/smartfridge/drinks/accept_check(obj/item/O) if(!istype(O, /obj/item/reagent_containers) || (O.item_flags & ABSTRACT) || !O.reagents || !O.reagents.reagent_list.len) return FALSE - if(istype(O, /obj/item/reagent_containers/glass) || istype(O, /obj/item/reagent_containers/food/drinks) || istype(O, /obj/item/reagent_containers/food/condiment)) + if(istype(O, /obj/item/reagent_containers/glass) || istype(O, /obj/item/reagent_containers/food/drinks) || istype(O, /obj/item/reagent_containers/condiment)) return TRUE // ---------------------------- diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 27819d97cf15..f9bb15bb5941 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -782,7 +782,7 @@ basic_modules = list( /obj/item/assembly/flash/cyborg, /obj/item/reagent_containers/glass/beaker/large, //I know a shaker is more appropiate but this is for ease of identification - /obj/item/reagent_containers/food/condiment/enzyme, + /obj/item/reagent_containers/condiment/enzyme, /obj/item/pen, /obj/item/toy/crayon/spraycan/borg, /obj/item/extinguisher/mini, @@ -806,7 +806,7 @@ /obj/item/robot_module/butler/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/food/condiment/enzyme) in basic_modules + var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/condiment/enzyme) in basic_modules if(O) O.reagents.add_reagent(/datum/reagent/consumable/enzyme, 2 * coeff) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 9eb48f11cf4d..49765fd6747b 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -162,7 +162,7 @@ handle_reactions() return amount -/// Get the name of the reagent there is the most of in this holder +/// DEPRICATED use get_master_regent. Get the name of the reagent there is the most of in this holder /datum/reagents/proc/get_master_reagent_name() var/list/cached_reagents = reagent_list var/name @@ -175,7 +175,7 @@ return name -/// Get the id of the reagent there is the most of in this holder +/// DEPRICATED use get_master_regent. Get the id of the reagent there is the most of in this holder /datum/reagents/proc/get_master_reagent_id() var/list/cached_reagents = reagent_list var/max_type @@ -611,6 +611,7 @@ //Clear from relevant lists addiction_list -= R reagent_list -= R + SEND_SIGNAL(src, COMSIG_REAGENTS_DEL_REAGENT, R) qdel(R) update_total() if(my_atom) @@ -638,6 +639,8 @@ del_reagent(R.type) if(my_atom) my_atom.on_reagent_change(CLEAR_REAGENTS) + + SEND_SIGNAL(src, COMSIG_REAGENTS_CLEAR_REAGENTS) return 0 /** @@ -747,6 +750,8 @@ if(my_atom) my_atom.on_reagent_change(ADD_REAGENT) R.on_merge(data, amount) + + SEND_SIGNAL(src, COMSIG_REAGENTS_ADD_REAGENT, cached_reagents, amount, reagtemp, data, no_react) if(!no_react) handle_reactions() return TRUE @@ -765,6 +770,8 @@ update_total() if(my_atom) my_atom.on_reagent_change(ADD_REAGENT) + + SEND_SIGNAL(src, COMSIG_REAGENTS_NEW_REAGENT, reagent, amount, reagtemp, data, no_react) if(!no_react) handle_reactions() return TRUE @@ -797,6 +804,7 @@ //and zero, to prevent removing more than the holder has stored amount = clamp(amount, 0, R.volume) R.volume -= amount + SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, A, amount) update_total() if(!safety)//So it does not handle reactions when it need not to handle_reactions() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index ac1cd94b092e..8e6935766346 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -337,18 +337,18 @@ reagents.trans_to(P, vol_each, transfered_by = usr) return TRUE if(item_type == "condimentPack") - var/obj/item/reagent_containers/food/condiment/pack/P + var/obj/item/reagent_containers/condiment/pack/P for(var/i = 0; i < amount; i++) - P = new/obj/item/reagent_containers/food/condiment/pack(drop_location()) + P = new/obj/item/reagent_containers/condiment/pack(drop_location()) P.originalname = name P.name = trim("[name] pack") P.desc = "A small condiment pack. The label says it contains [name]." reagents.trans_to(P, vol_each, transfered_by = usr) return TRUE if(item_type == "condimentBottle") - var/obj/item/reagent_containers/food/condiment/P + var/obj/item/reagent_containers/condiment/P for(var/i = 0; i < amount; i++) - P = new/obj/item/reagent_containers/food/condiment(drop_location()) + P = new/obj/item/reagent_containers/condiment(drop_location()) P.originalname = name P.name = trim("[name] bottle") reagents.trans_to(P, vol_each, transfered_by = usr) diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/drinnerware.dm index 18b8fd522aab..0dc0102c91ef 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/drinnerware.dm @@ -8,11 +8,11 @@ /obj/item/reagent_containers/glass/bowl = 20, /obj/item/kitchen/fork = 6, /obj/item/reagent_containers/food/drinks/drinkingglass = 8, - /obj/item/reagent_containers/food/condiment/pack/ketchup = 5, - /obj/item/reagent_containers/food/condiment/pack/hotsauce = 5, - /obj/item/reagent_containers/food/condiment/pack/astrotame = 5, - /obj/item/reagent_containers/food/condiment/saltshaker = 5, - /obj/item/reagent_containers/food/condiment/peppermill = 5, + /obj/item/reagent_containers/condiment/pack/ketchup = 5, + /obj/item/reagent_containers/condiment/pack/hotsauce = 5, + /obj/item/reagent_containers/condiment/pack/astrotame = 5, + /obj/item/reagent_containers/condiment/saltshaker = 5, + /obj/item/reagent_containers/condiment/peppermill = 5, /obj/item/clothing/suit/apron/chef = 2, /obj/item/kitchen/rollingpin = 2, /obj/item/melee/knife/kitchen = 2, diff --git a/shiptest.dme b/shiptest.dme index e460d129f655..c4bbd664ee8c 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -163,6 +163,7 @@ #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals\signals.dm" #include "code\__DEFINES\dcs\signals\signals_mod.dm" +#include "code\__DEFINES\dcs\signals\signals_reagent.dm" #include "code\__DEFINES\dcs\signals\signals_ship.dm" #include "code\__DEFINES\dcs\signals\signals_storage.dm" #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_carbon.dm" From f88a2ca5bed69f033a4edb2189a57154572433ab Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 07:44:51 -0500 Subject: [PATCH 045/125] Automatic changelog generation for PR #3350 [ci skip] --- html/changelogs/AutoChangeLog-pr-3350.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3350.yml diff --git a/html/changelogs/AutoChangeLog-pr-3350.yml b/html/changelogs/AutoChangeLog-pr-3350.yml new file mode 100644 index 000000000000..8869478b429b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3350.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {bugfix: condiment packs are no longer invisible and missing names} +delete-after: true From 1930994317e4a6bbba913a7c53606a56291f3cbd Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Sun, 29 Sep 2024 08:50:31 -0400 Subject: [PATCH 046/125] Fixes m90 poster icon state (#3454) ## About The Pull Request poster had wrong icon state ## Changelog :cl: fix: m90 posters are real again /:cl: --- code/game/objects/effects/contraband.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 267e6bb24f4e..1227ff3847b3 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -519,7 +519,7 @@ /obj/structure/sign/poster/contraband/m90 name = "M90 SMG" desc = "A poster advertising the Scarborough M90. Burst action with a grenade launcher, for some reason." - icon_state = "poster-bulldog" + icon_state = "poster-m90" /obj/structure/sign/poster/contraband/inteq_nt name = "Inteq Recruitment" From 9d9a3f5650b7b44762fc6f4671c5bd8931a974c9 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 08:01:40 -0500 Subject: [PATCH 047/125] Automatic changelog generation for PR #3454 [ci skip] --- html/changelogs/AutoChangeLog-pr-3454.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3454.yml diff --git a/html/changelogs/AutoChangeLog-pr-3454.yml b/html/changelogs/AutoChangeLog-pr-3454.yml new file mode 100644 index 000000000000..9e1b731951c9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3454.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {bugfix: m90 posters are real again} +delete-after: true From 315239cf5bf5d5f0960d7e1de2e0ee947bde7af6 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Sun, 29 Sep 2024 09:01:02 -0400 Subject: [PATCH 048/125] Removes Elephant Graveyard. (#3422) ## About The Pull Request Removes Elephant Graveyard and fluff papers. ## Why It's Good For The Game Quality control ## Changelog :cl: del: The Elephant Graveyard ruin has been taken out back /:cl: --- .../lavaland_surface_elephant_graveyard.dmm | 1788 ----------------- code/datums/ruins/lavaland.dm | 9 - code/game/area/areas/ruins/lavaland.dm | 11 - .../crates_lockers/crates/graves.dm | 112 ++ code/game/objects/structures/statues.dm | 28 + code/game/objects/structures/watercloset.dm | 43 + .../lavalandruin_code/elephantgraveyard.dm | 258 --- shiptest.dme | 2 +- 8 files changed, 184 insertions(+), 2067 deletions(-) delete mode 100644 _maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm create mode 100644 code/game/objects/structures/crates_lockers/crates/graves.dm delete mode 100644 code/modules/ruins/lavalandruin_code/elephantgraveyard.dm diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm deleted file mode 100644 index 911b6cf6f4e5..000000000000 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm +++ /dev/null @@ -1,1788 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/turf/closed/mineral/volcanic/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"ac" = ( -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"ad" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/closet/crate/grave/loot/lead_researcher, -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ae" = ( -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"af" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ag" = ( -/obj/effect/decal/cleanable/vomit, -/obj/item/shovel, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ah" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ai" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aj" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/item/paper/fluff/ruins/elephant_graveyard/final_message, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ak" = ( -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"al" = ( -/obj/structure/table, -/obj/item/clipboard, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"an" = ( -/obj/item/reagent_containers/food/snacks/deadmouse, -/obj/item/assembly/mousetrap, -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"ao" = ( -/obj/structure/statue/bone/skull/half, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ap" = ( -/obj/structure/statue/bone/skull/half{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ar" = ( -/obj/structure/flora/rock, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"at" = ( -/turf/closed/mineral/strong/wasteland, -/area/overmap_encounter/planetoid/cave/explored) -"av" = ( -/obj/structure/barricade/wooden/crude, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ax" = ( -/obj/structure/statue/bone/rib{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ay" = ( -/obj/structure/statue/bone/rib, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"az" = ( -/obj/structure/table, -/obj/item/pen, -/obj/item/pen, -/obj/item/pen, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aA" = ( -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"aB" = ( -/obj/item/chair, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aC" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aE" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aG" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/glowstick, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aH" = ( -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"aI" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/structure/grille, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/graveyard_shuttle) -"aK" = ( -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aL" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aM" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/black, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aN" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/graveyard_shuttle) -"aO" = ( -/obj/effect/decal/cleanable/glass, -/obj/machinery/computer, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"aP" = ( -/obj/structure/bed, -/obj/item/flashlight/lantern, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aR" = ( -/obj/structure/table, -/obj/item/taperecorder, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aS" = ( -/obj/structure/table, -/obj/item/tape/random, -/obj/item/tape/random, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aT" = ( -/obj/structure/closet/crate/bin, -/obj/item/trash/candle, -/obj/item/trash/can/food/beans, -/obj/item/trash/can, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aU" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aV" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aW" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/clothing/mask/gas/explorer/folded, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"aX" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aY" = ( -/obj/structure/sign/warning/nosmoking/circle, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"aZ" = ( -/obj/item/organ/brain, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ba" = ( -/obj/structure/headpike/bone, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bb" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bc" = ( -/obj/structure/sign/poster/ripped, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bd" = ( -/obj/item/organ/heart, -/obj/item/organ/eyes, -/obj/item/organ/ears, -/obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"be" = ( -/obj/item/organ/lungs, -/obj/item/organ/liver, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bf" = ( -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bg" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"bh" = ( -/obj/effect/decal/cleanable/oil, -/obj/structure/chair/office/light, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bi" = ( -/obj/effect/turf_decal/industrial/hatch, -/turf/open/floor/circuit/off, -/area/ruin/powered/graveyard_shuttle) -"bj" = ( -/obj/structure/barricade/wooden, -/obj/structure/mineral_door/wood, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bk" = ( -/obj/item/melee/knife/bone, -/obj/item/organ/tongue, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bl" = ( -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bm" = ( -/obj/structure/closet/wardrobe/curator, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bn" = ( -/obj/structure/sink/oil_well, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bo" = ( -/obj/item/stack/medical/gauze/improvised, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bp" = ( -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bq" = ( -/obj/machinery/iv_drip, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"br" = ( -/obj/structure/sign/warning/nosmoking/circle, -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"bs" = ( -/obj/structure/fence/door, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bt" = ( -/obj/structure/table, -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bu" = ( -/obj/structure/bed, -/obj/item/trash/pistachios, -/obj/item/trash/chips, -/obj/item/bedsheet/brown, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bv" = ( -/obj/effect/decal/remains/human, -/obj/item/clothing/mask/bandana/green, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bx" = ( -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"by" = ( -/obj/structure/closet/emcloset, -/obj/item/light/bulb, -/obj/effect/turf_decal/box/white, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bz" = ( -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny, -/obj/item/cigbutt, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bA" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/obj/effect/turf_decal/box/white, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bC" = ( -/obj/structure/barricade/sandbags, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bD" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bE" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window{ - dir = 1 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bF" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bG" = ( -/obj/effect/decal/remains/human, -/obj/item/tank/internals/emergency_oxygen/empty, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bH" = ( -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"bI" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/graveyard_shuttle) -"bJ" = ( -/obj/structure/sign/warning/xeno_mining, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bK" = ( -/obj/structure/sign/warning/explosives, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bL" = ( -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bM" = ( -/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker, -/obj/structure/closet/crate/grave/loot, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bN" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bO" = ( -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bP" = ( -/obj/structure/barricade/wooden/crude, -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bQ" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/cobweb, -/obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bR" = ( -/obj/effect/decal/cleanable/generic, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bS" = ( -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/rnd/destructive_analyzer, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bT" = ( -/obj/structure/barricade/wooden, -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bU" = ( -/obj/item/light/bulb/broken, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bV" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bW" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/door/airlock/shuttle{ - name = "Archaeology Shuttle Airlock" - }, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bX" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/clothing/head/fedora/curator, -/obj/item/clothing/suit/armor/curator, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bY" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bZ" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"ca" = ( -/obj/structure/table, -/obj/item/storage/firstaid/o2, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cc" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cd" = ( -/obj/item/trash/can, -/obj/structure/bedsheetbin/empty, -/obj/structure/table, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ce" = ( -/obj/structure/stone_tile/slab/cracked, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cf" = ( -/obj/structure/bed, -/obj/item/wirecutters, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cg" = ( -/obj/structure/stone_tile/center/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ch" = ( -/obj/effect/decal/remains/human, -/obj/item/restraints/handcuffs/cable/zipties/used, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ci" = ( -/obj/structure/stone_tile/surrounding_tile, -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"cj" = ( -/obj/structure/stone_tile/block/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ck" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cl" = ( -/obj/structure/closet/crate/grave/loot, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cm" = ( -/obj/structure/table/optable, -/obj/item/storage/backpack/explorer, -/obj/item/reagent_containers/food/drinks/soda_cans/cola, -/obj/item/restraints/handcuffs/cable/zipties/used, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"cn" = ( -/obj/structure/stone_tile/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"co" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/structure/stone_tile/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cq" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cr" = ( -/obj/structure/bonfire/prelit, -/obj/effect/decal/cleanable/ash, -/obj/item/organ/tail/lizard, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/stone_tile/slab/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cs" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ct" = ( -/obj/structure/stone_tile, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cu" = ( -/obj/structure/stone_tile{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"cw" = ( -/obj/structure/closet/crate/grave/loot, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cx" = ( -/obj/item/light/bulb/broken, -/obj/effect/turf_decal/industrial/stand_clear/white, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"cz" = ( -/obj/structure/stone_tile, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"fy" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"lO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"oR" = ( -/obj/item/reagent_containers/glass/bottle/frostoil{ - desc = "A small bottle. Contains cold sauce. There's a label on here: APPLY ON SEVERE BURNS."; - volume = 10 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"rb" = ( -/obj/structure/rack, -/obj/item/shovel, -/obj/item/wrench, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"vS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Bi" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"BF" = ( -/obj/structure/flora/rock, -/obj/item/pickaxe{ - layer = 2.5; - pixel_x = -8; - pixel_y = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Gb" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"GT" = ( -/obj/item/reagent_containers/food/snacks/deadmouse, -/obj/item/assembly/mousetrap, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"GY" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Hq" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/bottle/plasma{ - volume = 25 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"MV" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"NJ" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Qk" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"QG" = ( -/obj/structure/table, -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"QZ" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"WG" = ( -/obj/structure/table, -/obj/machinery/power/floodlight, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"XX" = ( -/obj/structure/table, -/obj/item/t_scanner/adv_mining_scanner/lesser, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -at -ab -ab -ab -ac -ac -ac -ac -bf -ac -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -bf -bf -bf -bf -bf -ac -ac -ac -ac -bf -bf -bf -ac -ac -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -bf -bf -aT -bR -bf -bf -bf -ac -bf -bf -bf -bf -bf -bf -bf -ac -ac -ab -ab -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -bf -bf -bf -bz -aK -bY -ae -bf -bf -bf -cs -aE -bJ -bf -bf -bf -ac -ac -ac -ab -ab -ab -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -ab -ab -bf -bf -bf -bf -aA -bc -aA -aY -ae -bv -ae -cl -ae -ae -aC -bs -bO -ae -ae -ac -ac -ac -ac -ab -ab -ab -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -ab -bf -bf -bf -oR -vS -vS -vS -aL -ae -ae -ak -ae -ae -ae -ae -bK -bf -bf -bf -ae -ac -ac -ac -ac -ac -ac -ab -ab -aa -aa -"} -(8,1,1) = {" -aa -aa -ab -ab -ab -bf -bf -Gb -Bi -ar -ae -ae -ae -ar -aZ -ae -ba -ae -ba -ae -ae -ae -ae -bf -ae -ac -ac -ac -ac -ac -ac -ac -ab -ab -aa -"} -(9,1,1) = {" -aa -ab -ab -bf -bf -bf -Gb -Bi -ak -ae -aE -ae -ae -ae -ba -ae -af -ae -ae -ae -ba -ae -ak -bf -ae -ae -ac -ac -ac -ac -ac -ac -ac -ac -aa -"} -(10,1,1) = {" -ab -ab -bf -bf -bf -Gb -MV -ae -ae -ae -ae -cl -ae -ae -ae -co -bd -bk -ae -ae -ae -ae -aE -bf -bf -ae -ae -ac -ac -ac -ac -bG -bM -ac -ac -"} -(11,1,1) = {" -at -bf -bf -bf -bf -lO -ae -ae -ao -ae -ax -ax -ax -ax -ae -ae -be -cr -ae -cz -ae -ae -bn -cw -bf -bf -bB -ac -ac -ac -ac -bL -ae -ae -ac -"} -(12,1,1) = {" -at -bf -bf -bf -bf -lO -cl -ae -ae -ae -ae -ci -cj -ce -ae -cj -ae -cq -ae -ae -cu -ae -ae -ae -bf -bf -bC -ac -ac -ac -ac -ac -ac -bD -ac -"} -(13,1,1) = {" -bf -ad -ae -bf -cl -lO -ae -ae -ae -ae -cg -ae -ak -ak -cn -ae -cq -ae -ct -ar -ae -cl -ae -ae -bf -bf -ae -ac -ac -ac -ac -ac -ac -ae -ac -"} -(14,1,1) = {" -bf -aj -ae -bf -ae -lO -aE -ae -ap -ae -ay -ay -ay -ay -ae -ae -ak -ae -ae -bn -ae -ae -aE -GY -bf -cl -bB -ae -ac -ac -ac -ac -ac -ae -ac -"} -(15,1,1) = {" -bf -ai -ag -bf -an -lO -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -cw -ae -ae -ae -ae -ae -lO -bf -ac -ae -ae -bB -ac -ac -ac -ac -bD -ac -"} -(16,1,1) = {" -bf -ai -bf -bf -bf -Qk -vS -QZ -ae -ae -aE -ae -ar -ae -ba -ae -ae -ae -ae -ae -ba -ae -ae -lO -bf -ac -ac -ae -ae -bB -ac -ac -ac -bB -bP -"} -(17,1,1) = {" -bf -ae -af -bf -bf -aE -bf -Qk -BF -XX -az -aG -aM -aR -ae -ae -ba -ae -ba -ae -ae -aE -cl -lO -bf -bf -ac -ac -ae -bD -ac -ac -ac -bF -bT -"} -(18,1,1) = {" -at -bf -ah -bf -bf -af -bf -ae -ae -QG -aB -ae -ae -aS -ae -ae -aE -ae -ae -ae -ae -ae -ae -NJ -bx -bf -ac -ac -ac -ae -bB -bB -bF -bB -bP -"} -(19,1,1) = {" -ab -bf -af -av -af -ae -bf -ae -bt -Hq -ch -ae -ae -ca -ae -Gb -vS -vS -vS -vS -vS -vS -vS -GT -bf -bf -ac -ac -ac -ac -bF -bB -bV -ac -ac -"} -(20,1,1) = {" -aa -at -bf -bf -bf -bf -bf -bj -bf -WG -al -fy -vS -vS -vS -rb -bf -ac -bm -ae -bn -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -"} -(21,1,1) = {" -aa -aa -ab -ac -ac -bf -aU -aE -bf -bf -bf -bf -ck -aX -ae -bf -bf -bf -bf -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -"} -(22,1,1) = {" -aa -aa -ab -ab -ac -bf -aU -ae -bl -cd -bf -bf -bf -bN -ae -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -ab -ab -ab -ab -bZ -bZ -"} -(23,1,1) = {" -aa -aa -aa -ab -ab -bf -aV -bl -aE -bu -bf -bf -bf -bf -bb -bf -bf -bf -bf -ab -ab -ab -ab -ab -ab -ab -ab -bZ -bZ -bZ -bH -bZ -bZ -bZ -ab -"} -(24,1,1) = {" -aa -aa -aa -aa -ab -at -aP -bo -cc -cf -bf -aH -aH -bg -bW -bg -aH -aH -aH -bH -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -ab -ab -ab -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -at -bf -bf -bf -bf -aH -aN -bQ -bh -cv -bU -by -aH -aH -bI -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aI -aO -bX -bi -bp -bi -cx -bE -aH -bI -bZ -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aH -aN -aW -cm -bq -bS -bA -aH -aH -bI -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aH -aH -aH -br -aH -aH -aH -aH -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -"} diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 4afa13dee07c..f94d75bd71f9 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -12,15 +12,6 @@ suffix = "lavaland_surface_biodome_winter.dmm" ruin_tags = list(RUIN_TAG_MINOR_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_SHELTER) -/datum/map_template/ruin/lavaland/elephant_graveyard - name = "Elephant Graveyard" - id = "Graveyard" - description = "An abandoned graveyard, calling to those unable to continue." - suffix = "lavaland_surface_elephant_graveyard.dmm" - allow_duplicates = FALSE - cost = 10 - ruin_tags = list(RUIN_TAG_NO_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_HAZARDOUS, RUIN_TAG_INHOSPITABLE) - /datum/map_template/ruin/lavaland/buried_shrine name = "Buried Shrine" id = "buried_shrine" diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 317fd67a67b8..298f996ea43d 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -27,17 +27,6 @@ name = "Hierophant's Arena" icon_state = "dk_yellow" - -//Elephant Graveyard - -/area/ruin/unpowered/elephant_graveyard - name = "Elephant Graveyard" - icon_state = "dk_yellow" - -/area/ruin/powered/graveyard_shuttle - name = "Elephant Graveyard" - icon_state = "green" - //Lava Canyon /area/ruin/unpowered/scorched_hut diff --git a/code/game/objects/structures/crates_lockers/crates/graves.dm b/code/game/objects/structures/crates_lockers/crates/graves.dm new file mode 100644 index 000000000000..dc7eee343d01 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates/graves.dm @@ -0,0 +1,112 @@ +/obj/structure/closet/crate/grave + name = "burial mound" + desc = "A marked patch of soil, adorned with a wooden cross" + icon_state = "grave" + dense_when_open = TRUE + material_drop = /obj/item/stack/ore/glass/basalt + material_drop_amount = 5 + opened = TRUE + anchorable = FALSE + anchored = TRUE + locked = TRUE + breakout_time = 900 + cutting_tool = TOOL_SHOVEL + +/obj/structure/closet/crate/grave/attackby(obj/item/W, mob/user, params) + .=..() + if(istype(W, /obj/item/screwdriver)) + if(!user.is_literate()) + to_chat(user, "You scratch illegibly on [src]!") + return + var/t = stripped_input(user, "What would you like the inscription to be?", name, null, 53) + if(user.get_active_held_item() != W) + return + if(!user.canUseTopic(src, BE_CLOSE)) + return + if(t) + desc = "[t]" + return + +/obj/structure/closet/crate/grave/open(mob/living/user, obj/item/S, force = FALSE) + if(!opened) + to_chat(user, "The ground here is too hard to dig up with your bare hands. You'll need a shovel.") + else + to_chat(user, "The grave has already been dug up.") + +/obj/structure/closet/crate/grave/tool_interact(obj/item/S, mob/living/carbon/user) + if(user.a_intent == INTENT_HELP) //checks to attempt to dig the grave, must be done on help intent only. + if(!opened) + if(S.tool_behaviour == cutting_tool) + to_chat(user, "You start start to dig open \the [src] with \the [S]...") + if (do_after(user,20, target = src)) + opened = TRUE + locked = TRUE + dump_contents() + update_appearance() + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) + return TRUE + return TRUE + else + to_chat(user, "You can't dig up a grave with \the [S.name].") + return TRUE + else + to_chat(user, "The grave has already been dug up.") + return TRUE + + else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely. + if(S.tool_behaviour == cutting_tool) + to_chat(user, "You start to remove \the [src] with \the [S].") + if (do_after(user,15, target = src)) + to_chat(user, "You remove \the [src] completely.") + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) + deconstruct(TRUE) + return TRUE + return + +/obj/structure/closet/crate/grave/bust_open() + ..() + opened = TRUE + update_appearance() + dump_contents() + return + +/obj/structure/closet/crate/grave/stone + name = "burial mound" + desc = "A marked patch of soil, adorned with a sandstone slab" + icon_state = "grave_lead" + +/obj/structure/closet/crate/grave/loot + name = "burial mound" + desc = "A marked patch of soil, showing signs of a burial long ago. You wouldn't disturb a grave... right?" + opened = FALSE + +/obj/structure/closet/crate/grave/loot/PopulateContents() //GRAVEROBBING IS NOW A FEATURE + ..() + new /obj/effect/decal/remains/human/grave(src) + switch(rand(1,7)) + if(1) + new /obj/item/spacecash/bundle/smallrand(src) + new /obj/item/card/id + new /obj/item/storage/wallet(src) + if(2) + new /obj/item/clothing/head/papersack/smiley(src) + if(3) + new /obj/item/clothing/under/nanotrasen(src) + new /obj/item/clothing/head/nanotrasen(src) + if(4) + new /obj/item/storage/book/bible/booze(src) + if(5) + new /obj/item/clothing/neck/stethoscope(src) + new /obj/item/scalpel(src) + new /obj/item/hemostat(src) + + if(6) + new /obj/item/reagent_containers/glass/beaker/large/napalm(src) + new /obj/item/clothing/under/frontiersmen(src) + if(7) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clothing/mask/cigarette/rollie(src) + new /obj/item/lighter(src) + +/obj/effect/decal/remains/human/grave + turf_loc_check = FALSE diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 9f51ba34476a..68c99d6649a5 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -299,3 +299,31 @@ name = "\improper Karl Marx bust" desc = "A bust depicting a certain 19th century economist. You get the feeling a specter is haunting the sector." icon_state = "marx" + +/// bone +/obj/structure/statue/bone + anchored = TRUE + max_integrity = 120 + material_drop_type = /obj/item/stack/sheet/bone + impressiveness = 18 // Carved from the bones of a massive creature, it's going to be a specticle to say the least + layer = ABOVE_ALL_MOB_LAYER + +/obj/structure/statue/bone/rib + name = "collosal rib" + desc = "It's staggering to think that something this big could have lived, let alone died." + oreAmount = 4 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "rib" + +/obj/structure/statue/bone/skull + name = "collosal skull" + desc = "The gaping maw of a dead, titanic monster." + oreAmount = 12 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "skull" + +/obj/structure/statue/bone/skull/half + desc = "The gaping maw of a dead, titanic monster. This one is cracked in half." + oreAmount = 6 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "skull-half" diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 0d97598a0504..6db5f18e31b9 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -397,6 +397,49 @@ icon_state = "puddle" resistance_flags = UNACIDABLE +//***Oil well puddles. +/obj/structure/sink/oil_well + name = "oil well" + desc = "A bubbling pool of oil.This would probably be valuable, had bluespace technology not destroyed the need for fossil fuels 200 years ago." + icon = 'icons/obj/watercloset.dmi' + icon_state = "puddle-oil" + dispensedreagent = /datum/reagent/fuel/oil + +/obj/structure/sink/oil_well/Initialize() + .=..() + create_reagents(20) + reagents.add_reagent(dispensedreagent, 20) + +/obj/structure/sink/oil_well/attack_hand(mob/M) + flick("puddle-oil-splash",src) + reagents.expose(M, TOUCH, 20) //Covers target in 20u of oil. + to_chat(M, "You touch the pool of oil, only to get oil all over yourself. It would be wise to wash this off with water.") + +/obj/structure/sink/oil_well/attackby(obj/item/O, mob/user, params) + flick("puddle-oil-splash",src) + if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1&NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel + to_chat(user, "You fill in the oil well with soil.") + O.play_tool_sound(src) + deconstruct() + return 1 + if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil + var/obj/item/reagent_containers/RG = O + if(RG.is_refillable()) + if(!RG.reagents.holder_full()) + RG.reagents.add_reagent(dispensedreagent, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + to_chat(user, "You fill [RG] from [src].") + return TRUE + to_chat(user, "\The [RG] is full.") + return FALSE + if(user.a_intent != INTENT_HARM) + to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil.") + return 1 + else + return ..() + +/obj/structure/sink/oil_well/drop_materials() + new /obj/effect/decal/cleanable/oil(loc) + //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/sink/puddle/attack_hand(mob/M) icon_state = "puddle-splash" diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm deleted file mode 100644 index e9ca8f3d4093..000000000000 --- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm +++ /dev/null @@ -1,258 +0,0 @@ -//******Decoration objects -//***Bone statues and giant skeleton parts. -/obj/structure/statue/bone - anchored = TRUE - max_integrity = 120 - material_drop_type = /obj/item/stack/sheet/bone - impressiveness = 18 // Carved from the bones of a massive creature, it's going to be a specticle to say the least - layer = ABOVE_ALL_MOB_LAYER - -/obj/structure/statue/bone/rib - name = "collosal rib" - desc = "It's staggering to think that something this big could have lived, let alone died." - oreAmount = 4 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "rib" - -/obj/structure/statue/bone/skull - name = "collosal skull" - desc = "The gaping maw of a dead, titanic monster." - oreAmount = 12 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "skull" - -/obj/structure/statue/bone/skull/half - desc = "The gaping maw of a dead, titanic monster. This one is cracked in half." - oreAmount = 6 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "skull-half" - -//***Wasteland floor and rock turfs here. -/turf/open/floor/plating/asteroid/basalt/wasteland //Like a more fun version of living in Arizona. - name = "cracked earth" - icon = 'icons/turf/floors.dmi' - icon_state = "wasteland" - base_icon_state = "wasteland" - baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland - digResult = /obj/item/stack/ore/glass/basalt - initial_gas_mix = LAVALAND_DEFAULT_ATMOS - slowdown = 0.5 - floor_variance = 30 - max_icon_states = 6 - -/turf/closed/mineral/strong/wasteland - name = "ancient dry rock" - color = "#B5651D" - environment_type = "wasteland" - turf_type = /turf/open/floor/plating/asteroid/basalt/wasteland - baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland - smooth_icon = 'icons/turf/walls/rock_wall.dmi' - base_icon_state = "rock_wall" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER - -/turf/closed/mineral/strong/wasteland/drop_ores() - if(prob(10)) - new /obj/item/stack/ore/iron(src, 1) - new /obj/item/stack/ore/glass(src, 1) - new /obj/effect/decal/remains/human/grave(src, 1) - else - new /obj/item/stack/sheet/bone(src, 1) - -//***Oil well puddles. -/obj/structure/sink/oil_well //You're not going to enjoy bathing in this... - name = "oil well" - desc = "A bubbling pool of oil.This would probably be valuable, had bluespace technology not destroyed the need for fossil fuels 200 years ago." - icon = 'icons/obj/watercloset.dmi' - icon_state = "puddle-oil" - dispensedreagent = /datum/reagent/fuel/oil - -/obj/structure/sink/oil_well/Initialize() - .=..() - create_reagents(20) - reagents.add_reagent(dispensedreagent, 20) - -/obj/structure/sink/oil_well/attack_hand(mob/M) - flick("puddle-oil-splash",src) - reagents.expose(M, TOUCH, 20) //Covers target in 20u of oil. - to_chat(M, "You touch the pool of oil, only to get oil all over yourself. It would be wise to wash this off with water.") - -/obj/structure/sink/oil_well/attackby(obj/item/O, mob/user, params) - flick("puddle-oil-splash",src) - if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1&NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel - to_chat(user, "You fill in the oil well with soil.") - O.play_tool_sound(src) - deconstruct() - return 1 - if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil - var/obj/item/reagent_containers/RG = O - if(RG.is_refillable()) - if(!RG.reagents.holder_full()) - RG.reagents.add_reagent(dispensedreagent, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) - to_chat(user, "You fill [RG] from [src].") - return TRUE - to_chat(user, "\The [RG] is full.") - return FALSE - if(user.a_intent != INTENT_HARM) - to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil.") - return 1 - else - return ..() - -/obj/structure/sink/oil_well/drop_materials() - new /obj/effect/decal/cleanable/oil(loc) - -//***Grave mounds. -/obj/structure/closet/crate/grave - name = "burial mound" - desc = "A marked patch of soil, adorned with a wooden cross" - icon_state = "grave" - dense_when_open = TRUE - material_drop = /obj/item/stack/ore/glass/basalt - material_drop_amount = 5 - opened = TRUE - anchorable = FALSE - anchored = TRUE - locked = TRUE - breakout_time = 900 - cutting_tool = TOOL_SHOVEL - var/lead_tomb = FALSE - var/first_open = FALSE - -/obj/structure/closet/crate/grave/attackby(obj/item/W, mob/user, params) - .=..() - if(istype(W, /obj/item/screwdriver)) - if(!user.is_literate()) - to_chat(user, "You scratch illegibly on [src]!") - return - var/t = stripped_input(user, "What would you like the inscription to be?", name, null, 53) - if(user.get_active_held_item() != W) - return - if(!user.canUseTopic(src, BE_CLOSE)) - return - if(t) - desc = "[t]" - return - -/obj/structure/closet/crate/grave/open(mob/living/user, obj/item/S, force = FALSE) - if(!opened) - to_chat(user, "The ground here is too hard to dig up with your bare hands. You'll need a shovel.") - else - to_chat(user, "The grave has already been dug up.") - -/obj/structure/closet/crate/grave/tool_interact(obj/item/S, mob/living/carbon/user) - if(user.a_intent == INTENT_HELP) //checks to attempt to dig the grave, must be done on help intent only. - if(!opened) - if(S.tool_behaviour == cutting_tool) - to_chat(user, "You start start to dig open \the [src] with \the [S]...") - if (do_after(user,20, target = src)) - opened = TRUE - locked = TRUE - dump_contents() - update_appearance() - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) - if(lead_tomb == TRUE && first_open == TRUE) - user.gain_trauma(/datum/brain_trauma/magic/stalker) - to_chat(user, "Oh no, no no no, THEY'RE EVERYWHERE! EVERY ONE OF THEM IS EVERYWHERE!") - first_open = FALSE - return 1 - return 1 - else - to_chat(user, "You can't dig up a grave with \the [S.name].") - return 1 - else - to_chat(user, "The grave has already been dug up.") - return 1 - - else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely. - if(S.tool_behaviour == cutting_tool) - to_chat(user, "You start to remove \the [src] with \the [S].") - if (do_after(user,15, target = src)) - to_chat(user, "You remove \the [src] completely.") - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) - deconstruct(TRUE) - return 1 - return - -/obj/structure/closet/crate/grave/bust_open() - ..() - opened = TRUE - update_appearance() - dump_contents() - return - -/obj/structure/closet/crate/grave/stone - name = "burial mound" - desc = "A marked patch of soil, adorned with a sandstone slab" - icon_state = "grave_lead" - -/obj/structure/closet/crate/grave/loot - name = "burial mound" - desc = "A marked patch of soil, showing signs of a burial long ago. You wouldn't disturb a grave... right?" - opened = FALSE - -/obj/structure/closet/crate/grave/loot/PopulateContents() //GRAVEROBBING IS NOW A FEATURE - ..() - new /obj/effect/decal/remains/human/grave(src) - switch(rand(1,7)) - if(1) - new /obj/item/coin/gold(src) - new /obj/item/storage/wallet(src) - if(2) - new /obj/item/clothing/glasses/meson(src) - if(3) - new /obj/item/coin/silver(src) - new /obj/item/shovel/spade(src) - if(4) - new /obj/item/storage/book/bible/booze(src) - if(5) - new /obj/item/clothing/neck/stethoscope(src) - new /obj/item/scalpel(src) - new /obj/item/hemostat(src) - - if(6) - new /obj/item/reagent_containers/glass/beaker(src) - new /obj/item/clothing/glasses/science(src) - if(7) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/clothing/mask/cigarette/rollie(src) - -/obj/structure/closet/crate/grave/loot/lead_researcher - name = "ominous burial mound" - desc = "Even in a place filled to the brim with graves, this one shows a level of preperation and planning that fills you with dread." - icon_state = "grave_lead" - lead_tomb = TRUE - first_open = TRUE - -/obj/structure/closet/crate/grave/loot/lead_researcher/PopulateContents() //ADVANCED GRAVEROBBING - ..() - new /obj/effect/decal/cleanable/blood/gibs/old(src) - -/obj/effect/decal/remains/human/grave - turf_loc_check = FALSE - -//***Fluff items for lore/intrigue -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard - name = "posted warning" - desc = "It seems to be smudged with mud and... oil?" - default_raw_text = "TO WHOM IT MAY CONCERN

This area is property of the Nanotrasen Mining Division.

Trespassing in this area is illegal, highly dangerous, and subject to several NDAs.

Please turn back now, under intergalactic law section 48-R." - -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes - name = "Research Findings: Day 26" - desc = "Huh, this one page looks like it was torn out of a full book. How odd." - icon_state = "docs_part" - default_raw_text = "Researcher name: B--*--* J--*s.

Detailed findings:Today the camp site's cond-tion has wor--ene*. The ashst--ms keep blocking us off from le-ving the sit* for m-re supplies, and it's lo-king like we're out of pl*sma to p-wer the ge-erat*r. Can't rea-*y study c-*bon *ating with no li--ts, ya know? Da-*y's been going -*f again and ag-*n a-*ut h*w the company's left us to *ie here, but I j-s* keep tell-ng him to stop che*-in* out these damn graves. We m-y b* archaeologists, but -e sho*ld have t-e dec-**cy to know these grav-s are *-l NEW.

The rest of the page is just semantics about carbon dating methods." - -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny - name = "hastily scribbled note" - desc = "Seems like someone was in a hurry." - default_raw_text = "Alright, we all know that stuck up son a bitch is just doing this to keep us satisifed. Who the hell does he think he is, taking extra rations? We're OUT OF FOOD, CARL. Tomorrow at noon, we're going to try and take the ship by force. He HAS to be lying about the engine cooling down. He HAS TO BE. I'm tellin ya, with this implant I lifted off that last supply ship, I got the smarts to get us offa this shithole. Keep your knife handy carl." - -/obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis - name = "research document" - desc = "Standard Nanotrasen typeface for important research documents." - default_raw_text = "Day 9: Tenative Conclusions

While the area appears to be of significant cultural importance to the lizard race, outside of some sparce contact with native wildlife, we're yet to find any exact reasoning for the nature of this phenomenon. It seems that organic life is communally drawn to this planet as though it functions as a final resting place for intelligent life. As per company guidelines, this site shall be given the following classification: 'LZ-0271 - Elephant Graveyard'

Compiled list of Artifact findings (Currently Sent Offsite)
Cultist Blade Fragments: x8
Brass Multiplicative Ore Sample: x105
Syndicate Revolutionary Leader Implant (Broken) x1
Extinct Cortical Borer Tissue Sample x1
Space Carp Fossil x3" - -/obj/item/paper/fluff/ruins/elephant_graveyard/final_message - name = "important looking Note" - desc = "This note is well written, and seems to have been put here so you'd find it." - default_raw_text = "If you find this... you don't need to know who I am.

You need to leave this place. I dunno what shit they did to me out here, but I don't think I'm going to be making it out of here.

This place... it wears down your psyche. The other researchers out here laughed it off but... They were the first to go.

One by one they started turning on each other. The more they found out, the more they started fighting and arguing...
As I speak now, I had to... I wound up having to put most of my men down. I know what I had to do, and I know there's no way left for me to live with myself.
If anyone ever finds this, just don't touch the graves.

DO NOT. TOUCH. THE GRAVES. Don't be a dumbass, like we all were." diff --git a/shiptest.dme b/shiptest.dme index c4bbd664ee8c..0bff452a9161 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1484,6 +1484,7 @@ #include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" #include "code\game\objects\structures\crates_lockers\crates\bins.dm" #include "code\game\objects\structures\crates_lockers\crates\critter.dm" +#include "code\game\objects\structures\crates_lockers\crates\graves.dm" #include "code\game\objects\structures\crates_lockers\crates\large.dm" #include "code\game\objects\structures\crates_lockers\crates\secure.dm" #include "code\game\objects\structures\crates_lockers\crates\wooden.dm" @@ -3306,7 +3307,6 @@ #include "code\modules\ruins\icemoonruin_code\library.dm" #include "code\modules\ruins\icemoonruin_code\wrath.dm" #include "code\modules\ruins\lavalandruin_code\biodome_winter.dm" -#include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" #include "code\modules\ruins\lavalandruin_code\puzzle.dm" #include "code\modules\ruins\lavalandruin_code\surface.dm" #include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" From 7a3c545ee5cf6f048722a1e282c5a9932ae4220f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 08:15:28 -0500 Subject: [PATCH 049/125] Automatic changelog generation for PR #3422 [ci skip] --- html/changelogs/AutoChangeLog-pr-3422.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3422.yml diff --git a/html/changelogs/AutoChangeLog-pr-3422.yml b/html/changelogs/AutoChangeLog-pr-3422.yml new file mode 100644 index 000000000000..6bb9c3e4e60d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3422.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {rscdel: The Elephant Graveyard ruin has been taken out back} +delete-after: true From 852d550b5056473eb2abebc1332c211259603b2a Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Sun, 29 Sep 2024 08:29:30 -0500 Subject: [PATCH 050/125] sawnoff weapons now call sawoff on init (#3428) ## About The Pull Request you dont have to re declare all your sawn off variables ## Why It's Good For The Game easier sawn off weapons ## Changelog :cl: fix: sawnoff weapons made from init now function correctly /:cl: --- code/modules/projectiles/gun.dm | 45 +++++++++++++++++++ code/modules/projectiles/guns/ballistic.dm | 40 +---------------- .../projectiles/guns/ballistic/rifle.dm | 11 +---- .../projectiles/guns/ballistic/shotgun.dm | 38 +++++----------- 4 files changed, 61 insertions(+), 73 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 28ef8cecdd80..94cc4f6f1e38 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -331,6 +331,8 @@ muzzle_flash = new(src, muzzleflash_iconstate) build_zooming() build_firemodes() + if(sawn_off) + sawoff(forced = TRUE) /obj/item/gun/ComponentInitialize() . = ..() @@ -1109,3 +1111,46 @@ var/safety_prefix = "[our_gun.adjust_fire_select_icon_state_on_safety ? "[our_gun.safety ? "safety_" : ""]" : ""]" button_icon_state = "[safety_prefix][our_gun.fire_select_icon_state_prefix][current_firemode]" return ..() + +GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( + /obj/item/gun/energy/plasmacutter, + /obj/item/melee/transforming/energy, + ))) + +///Handles all the logic of sawing off guns, +/obj/item/gun/proc/try_sawoff(mob/user, obj/item/saw) + if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this. + return + if(sawn_off) + to_chat(user, span_warning("\The [src] is already shortened!")) + return + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] begins to shorten \the [src]."), span_notice("You begin to shorten \the [src]...")) + + //if there's any live ammo inside the gun, makes it go off + if(blow_up(user)) + user.visible_message(span_danger("\The [src] goes off!"), span_danger("\The [src] goes off in your face!")) + return + + if(do_after(user, 30, target = src)) + user.visible_message(span_notice("[user] shortens \the [src]!"), span_notice("You shorten \the [src].")) + sawoff(user, saw) + +///Used on init or try_sawoff +/obj/item/gun/proc/sawoff(forced = FALSE) + if(sawn_off && !forced) + return + name = "sawn-off [src.name]" + desc = sawn_desc + w_class = WEIGHT_CLASS_NORMAL + item_state = "gun" + slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back + slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + recoil = SAWN_OFF_RECOIL + sawn_off = TRUE + update_appearance() + return TRUE + +///used for sawing guns, causes the gun to fire without the input of the user +/obj/item/gun/proc/blow_up(mob/user) + return diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 00f48cc29239..ccc399906365 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -230,7 +230,7 @@ update_appearance() return if (can_be_sawn_off) - if (sawoff(user, A)) + if (try_sawoff(user, A)) return return FALSE @@ -336,43 +336,7 @@ rounds.Add(magazine.ammo_list(drop_all)) return rounds -GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( - /obj/item/gun/energy/plasmacutter, - /obj/item/melee/transforming/energy, - ))) - -///Handles all the logic of sawing off guns, -/obj/item/gun/ballistic/proc/sawoff(mob/user, obj/item/saw) - if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this. - return - if(sawn_off) - to_chat(user, "\The [src] is already shortened!") - return - user.changeNext_move(CLICK_CD_MELEE) - user.visible_message("[user] begins to shorten \the [src].", "You begin to shorten \the [src]...") - - //if there's any live ammo inside the gun, makes it go off - if(blow_up(user)) - user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") - return - - if(do_after(user, 30, target = src)) - if(sawn_off) - return - user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") - name = "sawn-off [src.name]" - desc = sawn_desc - w_class = WEIGHT_CLASS_NORMAL - item_state = "gun" - slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back - slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - recoil = SAWN_OFF_RECOIL - sawn_off = TRUE - update_appearance() - return TRUE - -///used for sawing guns, causes the gun to fire without the input of the user -/obj/item/gun/ballistic/proc/blow_up(mob/user) +/obj/item/gun/ballistic/blow_up(mob/user) . = FALSE for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) if(AC.BB) diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 2be77ee20835..a61413057606 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -94,7 +94,7 @@ /obj/item/gun/ballistic/rifle/illestren/empty //i had to name it empty instead of no_mag because else it wouldnt work with guncases. sorry! spawnwithmagazine = FALSE -/obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) +/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE) . = ..() if(.) spread = 24 @@ -114,22 +114,15 @@ icon_state = "illestren_factory" item_state = "illestren_factory" -/obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) +/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE) . = ..() if(.) item_state = "illestren_factory_sawn" mob_overlay_state = item_state /obj/item/gun/ballistic/rifle/illestren/sawn - name = "sawn-off Illestren rifle" desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch." - item_state = "illestren_sawn" sawn_off = TRUE - weapon_weight = WEAPON_MEDIUM - w_class = WEIGHT_CLASS_NORMAL - spread = 24 - spread_unwielded = 30 - slot_flags = ITEM_SLOT_BELT /obj/item/gun/ballistic/rifle/solgov name = "SSG-669C" diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 2d70bf9851bb..ab85fb9a01c4 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -74,7 +74,7 @@ can_be_sawn_off = TRUE -/obj/item/gun/ballistic/shotgun/brimstone/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/brimstone/sawoff(forced = FALSE) . = ..() if(.) weapon_weight = WEAPON_MEDIUM @@ -108,7 +108,7 @@ rack_sound = 'sound/weapons/gun/shotgun/rack_alt.ogg' fire_delay = 0.1 SECONDS -/obj/item/gun/ballistic/shotgun/hellfire/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/hellfire/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -316,7 +316,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) && (!bolt_locked)) reskin_obj(user) -/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(forced = FALSE) . = ..() if(.) weapon_weight = WEAPON_MEDIUM @@ -361,7 +361,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) item_state = "dshotgun_srm" unique_reskin = null -/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(forced = FALSE) . = ..() if(.) item_state = "dshotgun_srm_sawn" @@ -416,7 +416,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) if(sawn_off) . += "ishotgun_sawn" -/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawoff(forced = FALSE) . = ..() if(. && slung) //sawing off the gun removes the sling new /obj/item/stack/cable_coil(get_turf(src), 10) @@ -424,21 +424,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) update_appearance() /obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawn - name = "sawn-off improvised shotgun" - desc = "A single-shot shotgun. Better not miss." - icon_state = "ishotgun_sawn" - item_state = "ishotgun_sawn" - w_class = WEIGHT_CLASS_NORMAL sawn_off = TRUE - slot_flags = ITEM_SLOT_BELT - - wield_slowdown = 0.25 - wield_delay = 0.3 SECONDS //OP? maybe - - spread = 8 - spread_unwielded = 15 - recoil = 3 //or not - recoil_unwielded = 5 /obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact name = "compact compact combat shotgun" @@ -604,7 +590,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) balloon_alert_to_viewers("quickly racks!") fire_delay = 0 SECONDS -/obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -629,7 +615,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) base_icon_state = "flamingarrow_factory" item_state = "flamingarrow_factory" -/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(forced = FALSE) . = ..() if(.) item_state = "flamingarrow_factory_sawn" @@ -642,7 +628,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) icon_state = "flamingbolt" item_state = "flamingbolt" -/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(forced = FALSE) . = ..() if(.) item_state = "flamingbolt_sawn" @@ -658,7 +644,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) sawn_desc = "A large lever-action rifle, sawn down for portability. It looks much cooler, but you should probably be using a revolver..." mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester/absolution -/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -690,7 +676,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) sawn_desc = "A lever action shotgun that's been sawed down for portability. The recoil makes it mostly useless outside of point-blank range, but it hits hard for its size and, more importantly, can be flipped around stylishly." mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester/conflagration -/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -773,7 +759,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) gun_firemodes = list(FIREMODE_SEMIAUTO) default_firemode = FIREMODE_SEMIAUTO -/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(forced = FALSE) . = ..() if(.) item_state = "beacon_sawn" @@ -796,7 +782,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) icon_state = "beacon_factory" item_state = "beacon_factory" -/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(forced = FALSE) . = ..() if(.) item_state = "beacon_factory_sawn" From a661b0e0a710d56be63158f9ad7d34a9558aef93 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 08:45:37 -0500 Subject: [PATCH 051/125] Automatic changelog generation for PR #3428 [ci skip] --- html/changelogs/AutoChangeLog-pr-3428.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3428.yml diff --git a/html/changelogs/AutoChangeLog-pr-3428.yml b/html/changelogs/AutoChangeLog-pr-3428.yml new file mode 100644 index 000000000000..ecad99d43c1d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3428.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {bugfix: sawnoff weapons made from init now function correctly} +delete-after: true From b07546713fa7dd56ba9511fd1db77f1dd34f1753 Mon Sep 17 00:00:00 2001 From: MassiveMen <164101356+MassiveMen@users.noreply.github.com> Date: Sun, 29 Sep 2024 09:38:02 -0400 Subject: [PATCH 052/125] Adds the fireaxe to the black market (#3364) ## About The Pull Request ## Why It's Good For The Game We need more axe murderer representation in this bitch ## Changelog :cl: add: Added the fire axe to the black market uplink /:cl: --------- Signed-off-by: MassiveMen <164101356+MassiveMen@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../cargo/blackmarket/blackmarket_items/weapons.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index cd0fcf9fd7a9..7da2610a9049 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -350,4 +350,12 @@ stock_max = 2 availability_prob = 20 +/datum/blackmarket_item/weapon/fireaxe + name = "Fire Axe" + desc = "An incredibly sharp axe of dubious make used by various engineers throughout the years to settle arguments while hammered. Sold to us by a very friendly man in a suit." + item = /obj/item/melee/axe/fire + price_min = 2500 + price_max = 3500 + stock = 2 + availability_prob = 40 From 24c2f00a7d88eff05b46d5928d5f634d96c0d80f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 08:59:04 -0500 Subject: [PATCH 053/125] Automatic changelog generation for PR #3364 [ci skip] --- html/changelogs/AutoChangeLog-pr-3364.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3364.yml diff --git a/html/changelogs/AutoChangeLog-pr-3364.yml b/html/changelogs/AutoChangeLog-pr-3364.yml new file mode 100644 index 000000000000..7c6b1f04c8a7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3364.yml @@ -0,0 +1,4 @@ +author: MassiveMen +changes: + - {rscadd: Added the fire axe to the black market uplink} +delete-after: true From f3df7ccb1e6185ef1181c388ad0af410118a9772 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 01:04:44 +0000 Subject: [PATCH 054/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3136.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3350.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3364.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3422.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3428.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3454.yml | 4 ---- html/changelogs/archive/2024-09.yml | 11 +++++++++++ 7 files changed, 11 insertions(+), 24 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3136.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3350.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3364.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3422.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3428.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3454.yml diff --git a/html/changelogs/AutoChangeLog-pr-3136.yml b/html/changelogs/AutoChangeLog-pr-3136.yml deleted file mode 100644 index 1c06ebef6c3e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3136.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscadd: 'New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard!'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3350.yml b/html/changelogs/AutoChangeLog-pr-3350.yml deleted file mode 100644 index 8869478b429b..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3350.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {bugfix: condiment packs are no longer invisible and missing names} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3364.yml b/html/changelogs/AutoChangeLog-pr-3364.yml deleted file mode 100644 index 7c6b1f04c8a7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3364.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: MassiveMen -changes: - - {rscadd: Added the fire axe to the black market uplink} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3422.yml b/html/changelogs/AutoChangeLog-pr-3422.yml deleted file mode 100644 index 6bb9c3e4e60d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3422.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {rscdel: The Elephant Graveyard ruin has been taken out back} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3428.yml b/html/changelogs/AutoChangeLog-pr-3428.yml deleted file mode 100644 index ecad99d43c1d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3428.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {bugfix: sawnoff weapons made from init now function correctly} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3454.yml b/html/changelogs/AutoChangeLog-pr-3454.yml deleted file mode 100644 index 9e1b731951c9..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3454.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {bugfix: m90 posters are real again} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index 0beabb6bcc8b..52b3cbfbf679 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -207,3 +207,14 @@ 2024-09-29: fighterslam: - balance: Modernizes and slightly buffs the Ranger. +2024-09-30: + Bjarl: + - rscdel: The Elephant Graveyard ruin has been taken out back + - bugfix: m90 posters are real again + FalloutFalcon: + - bugfix: sawnoff weapons made from init now function correctly + - bugfix: condiment packs are no longer invisible and missing names + MassiveMen: + - rscadd: Added the fire axe to the black market uplink + Thera-Pissed: + - rscadd: New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard! From c8515f48a5f21290e2e416bf7595f760d20d7ac5 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Mon, 30 Sep 2024 12:07:33 -0400 Subject: [PATCH 055/125] Anti-Radiation Foam (#3366) ## About The Pull Request Buyable foam that destroys radiation emitters, and decontaminates objects very efficiently. ## Why It's Good For The Game Makes wasteplanet survival less of a hassle when prepared ## Changelog :cl: Erika Fox add: Anti-Radiation Foam is now available at the outpost /:cl: --- code/game/objects/effects/decals/cleanable.dm | 5 +-- .../effects/effect_system/effects_foam.dm | 29 +++++++++++++-- code/game/objects/items/tanks/watertank.dm | 33 +++++++++++++++++ code/modules/cargo/packs/tools.dm | 11 ++++++ .../chemistry/reagents/other_reagents.dm | 35 +++++++++++++++++++ code/modules/reagents/reagent_dispenser.dm | 6 ++++ 6 files changed, 115 insertions(+), 4 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 4161403fefd9..3ec6f58aa7b1 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -89,8 +89,9 @@ /obj/effect/decal/cleanable/wash(clean_types) ..() if(!(flags_1 & INITIALIZED_1)) - return FALSE - qdel(src) + return + if(clean_types in list(CLEAN_WASH, CLEAN_SCRUB)) + qdel(src) return TRUE /obj/effect/decal/cleanable/proc/can_bloodcrawl_in() diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 51020d8f60dc..5fedeb47e455 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -48,13 +48,11 @@ /obj/effect/particle_effect/foam/firefighting/kill_foam() STOP_PROCESSING(SSfastprocess, src) - if(absorbed_plasma) var/obj/effect/decal/cleanable/plasma/P = (locate(/obj/effect/decal/cleanable/plasma) in get_turf(src)) if(!P) P = new(loc) P.reagents.add_reagent(/datum/reagent/stable_plasma, absorbed_plasma) - flick("[icon_state]-disolve", src) QDEL_IN(src, 5) @@ -67,6 +65,33 @@ /obj/effect/particle_effect/foam/firefighting/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) return + +/obj/effect/particle_effect/foam/antirad + name = "antiradiation foam" + lifetime = 80 + amount = 0 //no spread + slippery_foam = FALSE + color = "#A6FAFF55" + + +/obj/effect/particle_effect/foam/antirad/process() + ..() + + var/turf/open/T = get_turf(src) + var/obj/effect/radiation/rads = (locate(/obj/effect/radiation) in T) + if(rads && istype(T)) + rads.rad_power = rads.rad_power * rand(0.8, 0.95) + if (rads.rad_power <= RAD_BACKGROUND_RADIATION) + new /obj/effect/decal/cleanable/greenglow/filled(loc) + qdel(rads) + for(var/obj/things in get_turf(src)) + things.wash(CLEAN_TYPE_RADIATION) + +/obj/effect/particle_effect/foam/antirad/kill_foam() + STOP_PROCESSING(SSfastprocess, src) + flick("[icon_state]-disolve", src) + QDEL_IN(src, 5) + /obj/effect/particle_effect/foam/metal name = "aluminium foam" metal = ALUMINIUM_FOAM diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 50f709dcd65f..23fe0852c353 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -175,6 +175,39 @@ amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10) to_chat(user, "You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.") +//radiation cleanup pack + +/obj/item/watertank/anti_rad + name = "radiation foam pack" + desc = "A pressurized backpack tank with sprayer nozzle, intended to clean up radioactive hazards." + item_state = "waterbackpackatmos" + icon_state = "waterbackpackatmos" + volume = 200 + slowdown = 0.3 + +/obj/item/watertank/anti_rad/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/anti_radiation_foam, 200) + + +/obj/item/reagent_containers/spray/mister/anti_rad + name = "spray nozzle" + desc = "A heavy duty nozzle attached to a radiation foam tank." + icon_state = "atmos_nozzle" + item_state = "nozzleatmos" + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list() + current_range = 6 + spray_range = 6 + + +/obj/item/watertank/anti_rad/make_noz() + return new /obj/item/reagent_containers/spray/mister/anti_rad(src) + +/obj/item/reagent_containers/spray/mister/anti_rad/attack_self(mob/user) + amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10) + to_chat(user, "You [amount_per_transfer_from_this == 10 ? "tigten" : "loosen"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.") + //ATMOS FIRE FIGHTING BACKPACK #define EXTINGUISHER 0 diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index 25ed4aaab554..e4081a448e0b 100644 --- a/code/modules/cargo/packs/tools.dm +++ b/code/modules/cargo/packs/tools.dm @@ -146,3 +146,14 @@ contains = list(/obj/structure/reagent_dispensers/foamtank) crate_name = "foam tank crate" crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/tools/radfoamtank + name = "Radiation Foam Tank Crate" + desc = "Contains a tank of anti-radiation foam. Pressurized sprayer included!" + cost = 1500 + contains = list( + /obj/item/watertank/anti_rad, + /obj/structure/reagent_dispensers/foamtank/antirad + ) + crate_name = "foam tank crate" + crate_type = /obj/structure/closet/crate/large diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 11306b441f1e..e0d4e2a86606 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2526,3 +2526,38 @@ description = "Bacteria native to the Saint-Roumain Militia home planet." color = "#5a4f42" taste_description = "sour" + +//anti rad foam +/datum/reagent/anti_radiation_foam + name = "Anti-Radiation Foam" + description = "A tried and tested foam, used for decontaminating nuclear disasters." + reagent_state = LIQUID + color = "#A6FAFF55" + taste_description = "bitter, foamy awfulness." + +/datum/reagent/anti_radiation_foam/expose_turf(turf/open/T, reac_volume) + if (!istype(T)) + return + + if(reac_volume >= 1) + var/obj/effect/particle_effect/foam/antirad/F = (locate(/obj/effect/particle_effect/foam/antirad) in T) + if(!F) + F = new(T) + else if(istype(F)) + F.lifetime = initial(F.lifetime) //the foam is what does the cleaning here + +/datum/reagent/anti_radiation_foam/expose_obj(obj/O, reac_volume) + O.wash(CLEAN_RAD) + +/datum/reagent/anti_radiation_foam/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method in list(TOUCH, VAPOR)) + M.radiation = M.radiation - rand(max(M.radiation * 0.95, M.radiation)) //get the hose + M.ExtinguishMob() + ..() + + +/datum/reagent/anti_radiation_foam/on_mob_life(mob/living/carbon/M) + M.adjustToxLoss(0.5, 200) + M.adjust_disgust(4) + ..() + . = 1 diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index fafd67305c9c..54d2fc182398 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -58,6 +58,12 @@ reagent_id = /datum/reagent/firefighting_foam tank_volume = 500 +/obj/structure/reagent_dispensers/foamtank/antirad + name = "anti-radiation foam tank" + desc = "A tank full of decontamination foam" + reagent_id = /datum/reagent/anti_radiation_foam + tank_volume = 1000 + /obj/structure/reagent_dispensers/fueltank name = "fuel tank" desc = "A tank full of industrial welding fuel. Do not consume." From fc810c5bd284afbb0b79485d042e337742a7d476 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 11:29:02 -0500 Subject: [PATCH 056/125] Automatic changelog generation for PR #3366 [ci skip] --- html/changelogs/AutoChangeLog-pr-3366.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3366.yml diff --git a/html/changelogs/AutoChangeLog-pr-3366.yml b/html/changelogs/AutoChangeLog-pr-3366.yml new file mode 100644 index 000000000000..f1b353bf3387 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3366.yml @@ -0,0 +1,4 @@ +author: Erika Fox +changes: + - {rscadd: Anti-Radiation Foam is now available at the outpost} +delete-after: true From 92df9a186805a6d0cb48053b0a95cedd60d4b0b8 Mon Sep 17 00:00:00 2001 From: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> Date: Mon, 30 Sep 2024 18:11:36 +0200 Subject: [PATCH 057/125] Secbelts can now hold knives. (#3455) ## About The Pull Request Title. ## Why It's Good For The Game A knife is a pretty common piece of sec gear in the frontier actually. ## Changelog :cl: tweak: You can now put knives in secbelts and the subtypes of secbelts. fix: You can now fit all knives in mining webbings. /:cl: --- code/game/objects/items/storage/belt.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index c2679adf8ae9..52a6fdf8738e 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -275,6 +275,7 @@ STR.set_holdable(list( /obj/item/melee/baton, /obj/item/melee/classic_baton, + /obj/item/melee/knife, /obj/item/grenade, /obj/item/reagent_containers/spray/pepper, /obj/item/restraints/handcuffs, @@ -367,7 +368,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/reagent_containers/food/drinks/bottle, /obj/item/stack/medical, - /obj/item/melee/knife/kitchen, + /obj/item/melee/knife, /obj/item/reagent_containers/hypospray, /obj/item/gps, /obj/item/storage/bag/ore, From f616ac19e71faa430564f217f571619eaabe08a5 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 11:42:47 -0500 Subject: [PATCH 058/125] Automatic changelog generation for PR #3455 [ci skip] --- html/changelogs/AutoChangeLog-pr-3455.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3455.yml diff --git a/html/changelogs/AutoChangeLog-pr-3455.yml b/html/changelogs/AutoChangeLog-pr-3455.yml new file mode 100644 index 000000000000..0351ddf280b1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3455.yml @@ -0,0 +1,5 @@ +author: Sadhorizon +changes: + - {tweak: You can now put knives in secbelts and the subtypes of secbelts.} + - {bugfix: You can now fit all knives in mining webbings.} +delete-after: true From c1706207847e8ff94ac2aaafe225f083aeb5c814 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Mon, 30 Sep 2024 12:15:01 -0400 Subject: [PATCH 059/125] Cabinet Refactor (#3378) ## About The Pull Request Mildly refactors fireaxe cabinets to allow them to be subtyped with different items. Also adds an is_wielded proc to most weapons that can be wielded to prevent potential weirdness with this down the line. ## Why It's Good For The Game Cabinets are soulful ## Changelog :cl: Erika Fox code: Fireaxe cabinets have been repathed, and now function as a more general cabinet object. please report any inconsistencies with behavior /:cl: --------- Signed-off-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: FalloutFalcon Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../JungleRuins/jungle_paradise.dmm | 2 +- .../SpaceRuins/singularity_lab.dmm | 6 +- .../independent/independent_lagoon.dmm | 2 +- _maps/shuttles/inteq/inteq_talos.dmm | 2 +- .../shuttles/nanotrasen/nanotrasen_heron.dmm | 2 +- .../shuttles/nanotrasen/nanotrasen_osprey.dmm | 2 +- .../nanotrasen/nanotrasen_skipper.dmm | 2 +- _maps/shuttles/pirate/pirate_libertatia.dmm | 2 +- .../syndicate/syndicate_gorlex_komodo.dmm | 2 +- .../syndicate/syndicate_twinkleshine.dmm | 2 +- code/__DEFINES/dcs/signals/signals.dm | 1 + code/__DEFINES/traits.dm | 1 + code/__HELPERS/unsorted.dm | 2 +- code/datums/components/twohanded.dm | 5 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/objects/items/defib.dm | 13 -- code/game/objects/items/melee/chainsaw.dm | 20 +- code/game/objects/items/melee/dualsaber.dm | 22 +- .../game/objects/items/melee/energyhalberd.dm | 23 +- code/game/objects/items/melee/fireaxe.dm | 22 +- code/game/objects/items/melee/spear.dm | 17 +- code/game/objects/items/melee/sword.dm | 22 +- code/game/objects/items/storage/secure.dm | 2 +- code/game/objects/structures/cabinet.dm | 214 ++++++++++++++++++ code/game/objects/structures/cabinet_types.dm | 10 + code/game/objects/structures/fireaxe.dm | 179 --------------- .../mining/equipment/kinetic_crusher.dm | 53 ++--- code/modules/projectiles/gun.dm | 6 +- shiptest.dme | 3 +- 29 files changed, 296 insertions(+), 345 deletions(-) create mode 100644 code/game/objects/structures/cabinet.dm create mode 100644 code/game/objects/structures/cabinet_types.dm delete mode 100644 code/game/objects/structures/fireaxe.dm diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index 0e19890e63c7..47455933ec16 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -5181,7 +5181,7 @@ pixel_x = 7; pixel_y = 6 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 28 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 99ccda138d00..7dd57c637f35 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -8625,13 +8625,13 @@ /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/singularitylab/lab) "HU" = ( -/obj/structure/fireaxecabinet{ - pixel_y = 32 - }, /obj/structure/sign/warning/incident{ pixel_x = -32 }, /obj/effect/decal/cleanable/cobweb, +/obj/structure/cabinet/fireaxe{ + pixel_y = 28 + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/singularitylab/engineering) "HW" = ( diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm index 3615828fa9d2..1c8c2307a7e8 100644 --- a/_maps/shuttles/independent/independent_lagoon.dmm +++ b/_maps/shuttles/independent/independent_lagoon.dmm @@ -2347,7 +2347,7 @@ }, /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, /obj/item/clothing/gloves/color/black, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 8; pixel_x = 28 }, diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 195852c9fd5c..6b05aa78caaa 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -2090,7 +2090,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 1; pixel_y = -32 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index 3dda0b36dd63..7d8db3ebb68b 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -13621,7 +13621,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 27 }, /obj/structure/closet/secure_closet/engineering_electrical, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index fb1d6e3c1f12..e99a4cd360a8 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -5632,7 +5632,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 32 }, /obj/structure/cable{ diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index d875a024d07f..a8f5bc22c7f4 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -472,7 +472,7 @@ /turf/open/floor/plasteel/white, /area/ship/medical) "dZ" = ( -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = -29 }, /obj/structure/catwalk/over/plated_catwalk/dark, diff --git a/_maps/shuttles/pirate/pirate_libertatia.dmm b/_maps/shuttles/pirate/pirate_libertatia.dmm index b1bf098571c0..46d00806edd7 100644 --- a/_maps/shuttles/pirate/pirate_libertatia.dmm +++ b/_maps/shuttles/pirate/pirate_libertatia.dmm @@ -299,7 +299,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 32 }, /turf/open/floor/pod/light, diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 2b4cfd484e98..c466f5351f9c 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -2048,7 +2048,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 8; pixel_x = 27 }, diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 6c690286b2ac..29f4bc28922b 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -3500,7 +3500,7 @@ pixel_y = 4 }, /obj/item/storage/toolbox/electrical, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = -32; dir = 1 }, diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index f3295b737904..fd56e61f003b 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -671,6 +671,7 @@ #define COMPONENT_TWOHANDED_BLOCK_WIELD 1 #define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" //from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) + // /datum/action signals #define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action) #define COMPONENT_ACTION_BLOCK_TRIGGER 1 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index c97fa62ffc5d..4925981b2a91 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -301,6 +301,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NO_STORAGE_INSERT "no_storage_insert" //cannot be inserted in a storage. #define TRAIT_T_RAY_VISIBLE "t-ray-visible" // Visible on t-ray scanners if the atom/var/level == 1 #define TRAIT_NO_TELEPORT "no-teleport" //you just can't +#define TRAIT_WIELDED "wielded" //The item is currently being wielded //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index d831296dbb62..7bd6f72771cc 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -680,7 +680,7 @@ GLOBAL_LIST_INIT(WALLITEMS, typecacheof(list( /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/button, /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller, /obj/item/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth, - /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment, + /obj/structure/mirror, /obj/structure/cabinet, /obj/machinery/computer/security/telescreen/entertainment, /obj/structure/sign/picture_frame, /obj/machinery/bounty_board ))) diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm index 51c9268d13ab..5ba0a368c637 100644 --- a/code/datums/components/twohanded.dm +++ b/code/datums/components/twohanded.dm @@ -4,6 +4,7 @@ * When applied to an item it will make it two handed * */ + /datum/component/two_handed dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS // Only one of the component can exist on an item var/wielded = FALSE /// Are we holding the two handed item properly @@ -145,6 +146,7 @@ if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELD, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) return // blocked wield from item wielded = TRUE + ADD_TRAIT(parent, TRAIT_WIELDED, REF(src)) RegisterSignal(user, COMSIG_MOB_SWAP_HANDS, PROC_REF(on_swap_hands)) // update item stats and name @@ -188,6 +190,7 @@ // wield update status wielded = FALSE + REMOVE_TRAIT(parent, TRAIT_WIELDED, REF(src)) UnregisterSignal(user, COMSIG_MOB_SWAP_HANDS) SEND_SIGNAL(parent, COMSIG_TWOHANDED_UNWIELD, user) @@ -303,7 +306,7 @@ sharpened_increase = min(amount, (max_amount - wielded_val)) return COMPONENT_BLOCK_SHARPEN_APPLIED -/** +/* * The offhand dummy item for two handed items * */ diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index e70edb721788..4c27a08e64a7 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1238,7 +1238,7 @@ if(!operating) if(istype(I, /obj/item/melee/axe/fire)) //being fireaxe'd var/obj/item/melee/axe/fire/axe = I - if(axe && !axe.wielded) + if(axe && !HAS_TRAIT(axe, TRAIT_WIELDED)) to_chat(user, "You need to be wielding \the [axe] to do that!") return INVOKE_ASYNC(src, (density ? PROC_REF(open) : PROC_REF(close)), 2) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 32a62880d69c..517bc9922786 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -309,17 +309,6 @@ AddElement(/datum/element/update_icon_updates_onmob) AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12) -/// triggered on wield of two handed item -/obj/item/shockpaddles/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/shockpaddles/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE /obj/item/shockpaddles/Destroy() defib = null @@ -369,8 +358,6 @@ /obj/item/shockpaddles/Initialize() . = ..() ADD_TRAIT(src, TRAIT_NO_STORAGE_INSERT, GENERIC_ITEM_TRAIT) //stops shockpaddles from being inserted in BoH - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) if(!req_defib) return //If it doesn't need a defib, just say it exists if (!loc || !istype(loc, /obj/item/defibrillator)) //To avoid weird issues from admin spawns diff --git a/code/game/objects/items/melee/chainsaw.dm b/code/game/objects/items/melee/chainsaw.dm index 494ec65cdb5a..d179237f8559 100644 --- a/code/game/objects/items/melee/chainsaw.dm +++ b/code/game/objects/items/melee/chainsaw.dm @@ -22,30 +22,12 @@ tool_behaviour = TOOL_SAW toolspeed = 0.5 var/on = FALSE - var/wielded = FALSE // track wielded status on item - -/obj/item/chainsaw/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/chainsaw/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 30, 100, 0, 'sound/weapons/chainsawhit.ogg', TRUE) AddComponent(/datum/component/two_handed, require_twohands=TRUE) -/// triggered on wield of two handed item -/obj/item/chainsaw/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/chainsaw/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/chainsaw/attack_self(mob/user) on = !on to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") @@ -67,7 +49,7 @@ A.UpdateButtonIcon() /obj/item/chainsaw/get_dismemberment_chance() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) . = ..() /obj/item/chainsaw/doomslayer diff --git a/code/game/objects/items/melee/dualsaber.dm b/code/game/objects/items/melee/dualsaber.dm index 965979db215a..28242c1006a1 100644 --- a/code/game/objects/items/melee/dualsaber.dm +++ b/code/game/objects/items/melee/dualsaber.dm @@ -28,7 +28,6 @@ var/two_hand_force = 34 var/hacked = FALSE var/list/possible_colors = list("red", "blue", "green", "purple", "yellow") - var/wielded = FALSE // track wielded status on item /obj/item/dualsaber/ComponentInitialize() . = ..() @@ -43,7 +42,6 @@ if(user.dna.check_mutation(HULK)) to_chat(user, "You lack the grace to wield this!") return COMPONENT_TWOHANDED_BLOCK_WIELD - wielded = TRUE sharpness = IS_SHARP w_class = w_class_on hitsound = 'sound/weapons/blade1.ogg' @@ -56,16 +54,14 @@ /obj/item/dualsaber/proc/on_unwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER - wielded = FALSE sharpness = initial(sharpness) w_class = initial(w_class) hitsound = "swing_hit" STOP_PROCESSING(SSobj, src) set_light_on(FALSE) - /obj/item/dualsaber/update_icon_state() - icon_state = wielded ? "dualsaber[saber_color]" : "dualsaber" + icon_state = HAS_TRAIT(src, TRAIT_WIELDED) ? "dualsaber[saber_color]" : "dualsaber" return ..() /obj/item/dualsaber/Initialize() @@ -94,14 +90,14 @@ if(user.has_dna()) if(user.dna.check_mutation(HULK)) to_chat(user, "You grip the blade too hard and accidentally drop it!") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.dropItemToGround(src, force=TRUE) return ..() - if(wielded && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) impale(user) return - if(wielded && prob(50)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && prob(50)) INVOKE_ASYNC(src, PROC_REF(jedi_spin), user) /obj/item/dualsaber/proc/jedi_spin(mob/living/user) @@ -109,18 +105,18 @@ /obj/item/dualsaber/proc/impale(mob/living/user) to_chat(user, "You twirl around a bit before losing your balance and impaling yourself on [src].") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.take_bodypart_damage(20,25,check_armor = TRUE) else user.adjustStaminaLoss(25) /obj/item/dualsaber/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return ..() return 0 /obj/item/dualsaber/process() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) if(hacked) set_light_color(pick(COLOR_SOFT_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER)) open_flame() @@ -128,12 +124,12 @@ STOP_PROCESSING(SSobj, src) /obj/item/dualsaber/IsReflect() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return 1 /obj/item/dualsaber/ignition_effect(atom/A, mob/user) // same as /obj/item/melee/transforming/energy, mostly - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return "" var/in_mouth = "" if(iscarbon(user)) diff --git a/code/game/objects/items/melee/energyhalberd.dm b/code/game/objects/items/melee/energyhalberd.dm index 62c6f5de6020..8ae5cdd96f36 100644 --- a/code/game/objects/items/melee/energyhalberd.dm +++ b/code/game/objects/items/melee/energyhalberd.dm @@ -31,13 +31,12 @@ var/two_hand_force = 34 var/hacked = FALSE var/list/possible_colors = list("red", "blue", "green", "purple", "yellow") - var/wielded = FALSE // track wielded status on item /obj/item/energyhalberd/ComponentInitialize() . = ..() AddComponent(/datum/component/two_handed, force_unwielded=force, force_wielded=two_hand_force, wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') -/// Triggered on wield of two handed item + /// Specific hulk checks due to reflection chance for balance issues and switches hitsounds. /obj/item/energyhalberd/proc/on_halberdwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER @@ -46,7 +45,6 @@ if(user.dna.check_mutation(HULK)) to_chat(user, "You lack the grace to wield this!") return COMPONENT_TWOHANDED_BLOCK_WIELD - wielded = TRUE sharpness = IS_SHARP w_class = w_class_on hitsound = 'sound/weapons/blade1.ogg' @@ -54,12 +52,9 @@ set_light_on(TRUE) -/// Triggered on unwield of two handed item /// switch hitsounds /obj/item/energyhalberd/proc/on_halberdunwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER - - wielded = FALSE sharpness = initial(sharpness) w_class = initial(w_class) hitsound = "swing_hit" @@ -68,7 +63,7 @@ /obj/item/energyhalberd/update_icon_state() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) icon_state = "halberd[halberd_color]" return ..() else @@ -101,28 +96,28 @@ if(user.has_dna()) if(user.dna.check_mutation(HULK)) to_chat(user, "You grip the blade too hard and accidentally drop it!") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.dropItemToGround(src, force=TRUE) return ..() - if(wielded && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) impale(user) return /obj/item/energyhalberd/proc/impale(mob/living/user) to_chat(user, "You swing around a bit before losing your balance and impaling yourself on [src].") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.take_bodypart_damage(20,25,check_armor = TRUE) else user.adjustStaminaLoss(25) /obj/item/energyhalberd/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return ..() return 0 /obj/item/energyhalberd/process() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) if(hacked) set_light_color(pick(COLOR_SOFT_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER)) open_flame() @@ -130,12 +125,12 @@ STOP_PROCESSING(SSobj, src) /obj/item/energyhalberd/IsReflect() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return 1 /obj/item/energyhalberd/ignition_effect(atom/A, mob/user) // same as /obj/item/melee/transforming/energy, mostly - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return "" var/in_mouth = "" if(iscarbon(user)) diff --git a/code/game/objects/items/melee/fireaxe.dm b/code/game/objects/items/melee/fireaxe.dm index bfbed0fe361b..b3e04ac1bc3c 100644 --- a/code/game/objects/items/melee/fireaxe.dm +++ b/code/game/objects/items/melee/fireaxe.dm @@ -13,31 +13,13 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) resistance_flags = FIRE_PROOF species_exception = list(/datum/species/kepori) - var/wielded = FALSE // track wielded status on item - -/obj/item/melee/axe/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/melee/axe/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=24, icon_wielded="[base_icon_state]1") -/// triggered on wield of two handed item -/obj/item/melee/axe/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/melee/axe/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - -/obj/item/melee/axe/update_icon_state() +/obj/item/fireaxe/update_icon_state() icon_state = "[base_icon_state]0" return ..() @@ -45,7 +27,7 @@ . = ..() if(!proximity) return - if(wielded) //destroys windows and grilles in one hit + if(HAS_TRAIT(src, TRAIT_WIELDED)) //destroys windows and grilles in one hit if(istype(A, /obj/structure/window) || istype(A, /obj/structure/grille)) var/obj/structure/W = A W.obj_destruction("axe") diff --git a/code/game/objects/items/melee/spear.dm b/code/game/objects/items/melee/spear.dm index 42717117fd8e..218638882bfb 100644 --- a/code/game/objects/items/melee/spear.dm +++ b/code/game/objects/items/melee/spear.dm @@ -66,30 +66,15 @@ icon_prefix = "spearbomb" var/obj/item/grenade/explosive = null var/war_cry = "AAAAARGH!!!" - var/wielded = FALSE // track wielded status on item /obj/item/melee/spear/explosive/Initialize(mapload) . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) set_explosive(new /obj/item/grenade/iedcasing/spawned()) //For admin-spawned explosive lances /obj/item/melee/spear/explosive/ComponentInitialize() . = ..() AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=18, icon_wielded="[icon_prefix]1") -/// triggered on wield of two handed item -/obj/item/melee/spear/explosive/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/melee/spear/explosive/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/melee/spear/explosive/proc/set_explosive(obj/item/grenade/G) if(explosive) QDEL_NULL(explosive) @@ -130,7 +115,7 @@ . = ..() if(!proximity) return - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.say("[war_cry]", forced="spear warcry") explosive.forceMove(AM) explosive.prime() diff --git a/code/game/objects/items/melee/sword.dm b/code/game/objects/items/melee/sword.dm index 21bde05c0dd3..ff384770a318 100644 --- a/code/game/objects/items/melee/sword.dm +++ b/code/game/objects/items/melee/sword.dm @@ -332,38 +332,20 @@ attack_verb = list("cut", "sliced", "diced") slot_flags = ITEM_SLOT_BACK hitsound = 'sound/weapons/bladeslice.ogg' - var/wielded = FALSE // track wielded status on item - -/obj/item/melee/sword/vibro/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/melee/sword/vibro/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 20, 105) AddComponent(/datum/component/two_handed, force_multiplier=2, icon_wielded="[base_icon_state]1") -/// triggered on wield of two handed item -/obj/item/melee/sword/vibro/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/melee/sword/vibro/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/melee/sword/vibro/update_icon_state() icon_state = "[base_icon_state]0" return ..() /obj/item/melee/sword/vibro/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) final_block_chance *= 2 - if(wielded || attack_type != PROJECTILE_ATTACK) + if(HAS_TRAIT(src, TRAIT_WIELDED) || attack_type != PROJECTILE_ATTACK) if(prob(final_block_chance)) if(attack_type == PROJECTILE_ATTACK) owner.visible_message("[owner] deflects [attack_text] with [src]!") diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index 422ff52b15b0..f918a3b883fb 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -173,7 +173,7 @@ . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.set_holdable(null, list(/obj/item/storage/secure/briefcase)) - STR.max_w_class = 8 //?? + STR.max_w_class = 8 /obj/item/storage/secure/safe/PopulateContents() new /obj/item/paper(src) diff --git a/code/game/objects/structures/cabinet.dm b/code/game/objects/structures/cabinet.dm new file mode 100644 index 000000000000..bc89cf1d0bbe --- /dev/null +++ b/code/game/objects/structures/cabinet.dm @@ -0,0 +1,214 @@ +/obj/structure/cabinet + name = "\improper cabinet" + desc = "There is a small label that reads \"For Emergency use only\". Yeah right." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "fireaxe" + anchored = TRUE + density = FALSE + armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) + max_integrity = 150 + integrity_failure = 0.33 + req_one_access_txt = "0" + var/locked = TRUE + var/open = FALSE + var/start_empty = FALSE + var/obj/item/stored + var/allowed_type + var/stored_sprite = "axe" + +/obj/structure/cabinet/Initialize() + . = ..() + if(allowed_type && !start_empty) + stored = new allowed_type(src) + update_appearance() + +/obj/structure/cabinet/Destroy() + if(istype(stored)) + qdel(stored) + stored = null + return ..() + +/obj/structure/cabinet/examine(mob/user) + . = ..() + if(!open) + . += span_notice("Alt-click to [locked ? "unlock" : "lock"] [src]") + if(stored) + . += span_notice("[stored] is sitting inside, ripe for the taking.") + +/obj/structure/cabinet/attackby(obj/item/I, mob/user, params) + if(iscyborg(user) || I.tool_behaviour == TOOL_MULTITOOL) + hack_lock(user) + else if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP && !broken) + if(obj_integrity < max_integrity) + if(!I.tool_start_check(user, amount=2)) + return + to_chat(user, span_notice("You begin repairing [src]")) + if(I.use_tool(src, user, 40, volume=50, amount=2)) + obj_integrity = max_integrity + update_appearance() + to_chat(user, span_notice("You repair [src]")) + else + to_chat(user, span_warning("[src] is already in good condition!")) + return + else if(istype(I, /obj/item/stack/sheet/glass) && broken) + var/obj/item/stack/sheet/glass/G = I + if(G.get_amount() < 2) + to_chat(user, span_warning("You need two [G.singular_name] to fix [src]!")) + return + to_chat(user, span_notice("You start fixing [src]...")) + if(do_after(user, 20, target = src) && G.use(2)) + broken = 0 + obj_integrity = max_integrity + update_appearance() + else if(open || broken) + if(istype(I, allowed_type) && !stored) + var/obj/item/storee = I + SIGNAL_HANDLER + if(storee && HAS_TRAIT(storee, TRAIT_WIELDED)) + to_chat(user, span_warning("Unwield the [storee.name] first.")) + return + if(!user.transferItemToLoc(I, src)) + return + stored = storee + to_chat(user, span_notice("You place the [storee.name] back in the [name].")) + update_appearance() + return + else if(!broken) + toggle_open() + else + return ..() + +/obj/structure/cabinet/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(broken) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, TRUE) + else + playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + if(BURN) + playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + +/obj/structure/cabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + if(open) + return + . = ..() + if(.) + update_appearance() + +/obj/structure/cabinet/obj_break(damage_flag) + if(!broken && !(flags_1 & NODECONSTRUCT_1)) + update_appearance() + broken = TRUE + playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) + new /obj/item/shard(loc) + new /obj/item/shard(loc) + +/obj/structure/cabinet/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + if(stored && loc) + stored.forceMove(loc) + stored = null + new /obj/item/stack/sheet/metal(loc, 2) + qdel(src) + +/obj/structure/cabinet/attack_hand(mob/user) + . = ..() + if(.) + return + if(open || broken) + if(stored) + to_chat(user, span_notice("You take [stored] from [name].")) + user.put_in_hands(stored) + stored = null + src.add_fingerprint(user) + update_appearance() + return + if(locked) + to_chat(user, span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return + +/obj/structure/cabinet/attack_paw(mob/living/user) + return attack_hand(user) + +/obj/structure/cabinet/attack_ai(mob/user) + toggle_lock(user) + return + +/obj/structure/cabinet/attack_tk(mob/user) + if(locked) + to_chat(user, span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return + +/obj/structure/cabinet/update_overlays() + . = ..() + if(stored) + . += "[stored_sprite]" + if(open) + . += "glass_raised" + return + var/hp_percent = obj_integrity/max_integrity * 100 + if(broken) + . += "glass4" + else + switch(hp_percent) + if(-INFINITY to 40) + . += "glass3" + if(40 to 60) + . += "glass2" + if(60 to 80) + . += "glass1" + if(80 to INFINITY) + . += "glass" + + . += locked ? "locked" : "unlocked" + +/obj/structure/cabinet/proc/toggle_lock(mob/user) + if(!broken) + if(allowed(user)) + if(iscarbon(user)) + add_fingerprint(user) + locked = !locked + user.visible_message( + span_notice("[user] [locked ? "locks" : "unlocks"][src]."), + span_notice("You [locked ? "lock" : "unlock"] [src].")) + update_appearance() + else + to_chat(user, span_warning("Access denied!")) + else if(broken) + to_chat(user, span_warning("\The [src] is broken!")) + +/obj/structure/cabinet/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, BE_CLOSE) || !isturf(loc) || open) + return + else + toggle_lock(user) + +/obj/structure/cabinet/proc/hack_lock(mob/user) + to_chat(user, span_notice("Resetting circuitry...")) + playsound(src, 'sound/machines/locktoggle.ogg', 50, TRUE) + if(do_after(user, 20, target = src)) + to_chat(user, span_notice("You [locked ? "disable" : "re-enable"] the locking modules.")) + locked = !locked + update_appearance() + +/obj/structure/cabinet/verb/toggle_open() + set name = "Open/Close" + set category = "Object" + set src in oview(1) + + if(locked) + visible_message(span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return diff --git a/code/game/objects/structures/cabinet_types.dm b/code/game/objects/structures/cabinet_types.dm new file mode 100644 index 000000000000..347e1954ded4 --- /dev/null +++ b/code/game/objects/structures/cabinet_types.dm @@ -0,0 +1,10 @@ +/obj/structure/cabinet/fireaxe + name = "\improper fire axe cabinet" + desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "fireaxe" + anchored = TRUE + density = FALSE + stored_sprite = "axe" + allowed_type = /obj/item/melee/axe/fire + req_one_access_txt = "24" diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm deleted file mode 100644 index a164248a2bdd..000000000000 --- a/code/game/objects/structures/fireaxe.dm +++ /dev/null @@ -1,179 +0,0 @@ -/obj/structure/fireaxecabinet - name = "fire axe cabinet" - desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." - icon = 'icons/obj/wallmounts.dmi' - icon_state = "fireaxe" - anchored = TRUE - density = FALSE - armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) - max_integrity = 150 - integrity_failure = 0.33 - var/locked = TRUE - var/open = FALSE - var/obj/item/melee/axe/fire/fireaxe - -/obj/structure/fireaxecabinet/Initialize() - . = ..() - fireaxe = new - update_appearance() - -/obj/structure/fireaxecabinet/Destroy() - if(fireaxe) - QDEL_NULL(fireaxe) - return ..() - -/obj/structure/fireaxecabinet/attackby(obj/item/I, mob/user, params) - if(iscyborg(user) || I.tool_behaviour == TOOL_MULTITOOL) - toggle_lock(user) - else if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP && !broken) - if(obj_integrity < max_integrity) - if(!I.tool_start_check(user, amount=2)) - return - - to_chat(user, "You begin repairing [src].") - if(I.use_tool(src, user, 40, volume=50, amount=2)) - obj_integrity = max_integrity - update_appearance() - to_chat(user, "You repair [src].") - else - to_chat(user, "[src] is already in good condition!") - return - else if(istype(I, /obj/item/stack/sheet/glass) && broken) - var/obj/item/stack/sheet/glass/G = I - if(G.get_amount() < 2) - to_chat(user, "You need two glass sheets to fix [src]!") - return - to_chat(user, "You start fixing [src]...") - if(do_after(user, 20, target = src) && G.use(2)) - broken = 0 - obj_integrity = max_integrity - update_appearance() - else if(open || broken) - if(istype(I, /obj/item/melee/axe/fire) && !fireaxe) - var/obj/item/melee/axe/fire/F = I - if(F && F.wielded) - to_chat(user, "Unwield the [F.name] first.") - return - if(!user.transferItemToLoc(F, src)) - return - fireaxe = F - to_chat(user, "You place the [F.name] back in the [name].") - update_appearance() - return - else if(!broken) - toggle_open() - else - return ..() - -/obj/structure/fireaxecabinet/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - if(broken) - playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, TRUE) - else - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) - if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) - -/obj/structure/fireaxecabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) - if(open) - return - . = ..() - if(.) - update_appearance() - -/obj/structure/fireaxecabinet/obj_break(damage_flag) - if(!broken && !(flags_1 & NODECONSTRUCT_1)) - update_appearance() - broken = TRUE - playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) - new /obj/item/shard(loc) - new /obj/item/shard(loc) - -/obj/structure/fireaxecabinet/deconstruct(disassembled = TRUE) - if(!(flags_1 & NODECONSTRUCT_1)) - if(fireaxe && loc) - fireaxe.forceMove(loc) - fireaxe = null - new /obj/item/stack/sheet/metal(loc, 2) - qdel(src) - -/obj/structure/fireaxecabinet/attack_hand(mob/user) - . = ..() - if(.) - return - if(open || broken) - if(fireaxe) - user.put_in_hands(fireaxe) - fireaxe = null - to_chat(user, "You take the fire axe from the [name].") - src.add_fingerprint(user) - update_appearance() - return - if(locked) - to_chat(user, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return - -/obj/structure/fireaxecabinet/attack_paw(mob/living/user) - return attack_hand(user) - -/obj/structure/fireaxecabinet/attack_ai(mob/user) - toggle_lock(user) - return - -/obj/structure/fireaxecabinet/attack_tk(mob/user) - if(locked) - to_chat(user, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return - -/obj/structure/fireaxecabinet/update_overlays() - . = ..() - if(fireaxe) - . += "axe" - if(open) - . += "glass_raised" - return - var/hp_percent = obj_integrity/max_integrity * 100 - if(broken) - . += "glass4" - else - switch(hp_percent) - if(-INFINITY to 40) - . += "glass3" - if(40 to 60) - . += "glass2" - if(60 to 80) - . += "glass1" - if(80 to INFINITY) - . += "glass" - - . += locked ? "locked" : "unlocked" - -/obj/structure/fireaxecabinet/proc/toggle_lock(mob/user) - to_chat(user, "Resetting circuitry...") - playsound(src, 'sound/machines/locktoggle.ogg', 50, TRUE) - if(do_after(user, 20, target = src)) - to_chat(user, "You [locked ? "disable" : "re-enable"] the locking modules.") - locked = !locked - update_appearance() - -/obj/structure/fireaxecabinet/verb/toggle_open() - set name = "Open/Close" - set category = "Object" - set src in oview(1) - - if(locked) - to_chat(usr, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 3e0bed238bec..05e81421ac4f 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -8,7 +8,7 @@ name = "proto-magnetic crusher" desc = "A multipurpose disembarkation and self-defense tool designed by EXOCOM using an incomplete Nanotrasen prototype. \ Found in the grime-stained hands of wannabee explorers across the frontier, it cuts rock and hews flora using magnetic osscilation and a heavy cleaving edge." - force = 0 //You can't hit stuff unless wielded + force = 0 //You can't hit stuff unless it's wielded w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK throwforce = 5 @@ -28,33 +28,19 @@ var/charge_time = 15 var/detonation_damage = 20 var/backstab_bonus = 10 - var/wielded = FALSE // track wielded status on item - -/obj/item/kinetic_crusher/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/kinetic_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=15) -/// triggered on wield of two handed item -/obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user) - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/kinetic_crusher/proc/on_unwield(obj/item/source, mob/user) - wielded = FALSE - /obj/item/kinetic_crusher/examine(mob/living/user) . = ..() . += "Induce magnetism in an enemy by striking them with a magnetospheric wave, then hit them in melee to force a waveform collapse for [force + detonation_damage] damage." . += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]." /obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) to_chat(user, "[src] is too heavy to use with one hand! You fumble and drop everything.") user.drop_all_held_items() return @@ -66,7 +52,7 @@ /obj/item/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams) . = ..() - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return if(!proximity_flag && charged)//Mark a target, or mine a tile. var/turf/proj_turf = user.loc @@ -118,7 +104,7 @@ /obj/item/kinetic_crusher/update_icon_state() - item_state = "crusher[wielded]" // this is not icon_state and not supported by 2hcomponent + item_state = "crusher[HAS_TRAIT(src, TRAIT_WIELDED)]" // this is not icon_state and not supported by 2hcomponent return ..() /obj/item/kinetic_crusher/update_overlays() @@ -182,7 +168,7 @@ user.changeNext_move(CLICK_CD_MELEE * 2.0)//...slow swinga. /obj/item/kinetic_crusher/old/update_icon_state() - item_state = "crusherold[wielded]" // still not supported by 2hcomponent + item_state = "crusherold[HAS_TRAIT(src, TRAIT_WIELDED)]" // still not supported by 2hcomponent return ..() //100% original syndicate oc, plz do not steal. More effective against human targets then the typical crusher, with a bit of block chance. @@ -195,7 +181,7 @@ name = "magnetic cleaver" desc = "Designed by Syndicate Research and Development for their resource-gathering operations on hostile worlds. Syndicate Legal Ops would like to stress that you've never seen anything like this before. Ever." armour_penetration = 69//nice cut - force = 0 //You can't hit stuff unless wielded + force = 0 //You can't hit stuff unless HAS_TRAIT(src, TRAIT_WIELDED) w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK throwforce = 5 @@ -216,35 +202,40 @@ charge_time = 15 detonation_damage = 35 backstab_bonus = 15 - wielded = FALSE // track wielded status on item actions_types = list() + +/obj/item/kinetic_crusher/syndie_crusher/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + /obj/item/kinetic_crusher/syndie_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 150) AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=10) /// triggered on wield of two handed item -/obj/item/kinetic_crusher/syndie_crusher/on_wield(obj/item/source, mob/user) - . = ..() - wielded = TRUE +/obj/item/kinetic_crusher/syndie_crusher/proc/on_wield(obj/item/source, mob/user) + SIGNAL_HANDLER + icon_state = "crushersyndie1" playsound(user, 'sound/weapons/saberon.ogg', 35, TRUE) - set_light_on(wielded) + set_light_on(HAS_TRAIT(src, TRAIT_WIELDED)) /// triggered on unwield of two handed item -/obj/item/kinetic_crusher/syndie_crusher/on_unwield(obj/item/source, mob/user) - . = ..() - wielded = FALSE +/obj/item/kinetic_crusher/syndie_crusher/proc/on_unwield(obj/item/source, mob/user) + SIGNAL_HANDLER + icon_state = "crushersyndie" playsound(user, 'sound/weapons/saberoff.ogg', 35, TRUE) - set_light_on(wielded) + set_light_on(HAS_TRAIT(src, TRAIT_WIELDED)) /obj/item/kinetic_crusher/syndie_crusher/update_icon_state() - item_state = "crushersyndie[wielded]" // this is not icon_state and not supported by 2hcomponent + item_state = "crushersyndie[HAS_TRAIT(src, TRAIT_WIELDED)]" // this is not icon_state and not supported by 2hcomponent return ..() /obj/item/kinetic_crusher/syndie_crusher/update_overlays() . = ..() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) . += "[icon_state]_lit" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 94cc4f6f1e38..7fe0a5b07c3a 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -364,9 +364,6 @@ wielded_fully = TRUE return TRUE -/obj/item/gun/proc/is_wielded() - return wielded - /// triggered on unwield of two handed item /obj/item/gun/proc/on_unwield(obj/item/source, mob/user) wielded = FALSE @@ -374,6 +371,9 @@ zoom(user, forced_zoom = FALSE) user.remove_movespeed_modifier(/datum/movespeed_modifier/gun) +/obj/item/gun/proc/is_wielded() + return wielded + /obj/item/gun/Destroy() if(chambered) //Not all guns are chambered (EMP'ed energy guns etc) QDEL_NULL(chambered) diff --git a/shiptest.dme b/shiptest.dme index 0bff452a9161..53b8c061b5fa 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1387,6 +1387,8 @@ #include "code\game\objects\structures\artstuff.dm" #include "code\game\objects\structures\barsigns.dm" #include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\cabinet.dm" +#include "code\game\objects\structures\cabinet_types.dm" #include "code\game\objects\structures\catwalk.dm" #include "code\game\objects\structures\crateshelf.dm" #include "code\game\objects\structures\curtains.dm" @@ -1400,7 +1402,6 @@ #include "code\game\objects\structures\extinguisher.dm" #include "code\game\objects\structures\false_walls.dm" #include "code\game\objects\structures\fence.dm" -#include "code\game\objects\structures\fireaxe.dm" #include "code\game\objects\structures\fireplace.dm" #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\fluff.dm" From d71acf3f8e02f93b260c2f47b0435215378d5ac2 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 11:55:56 -0500 Subject: [PATCH 060/125] Automatic changelog generation for PR #3378 [ci skip] --- html/changelogs/AutoChangeLog-pr-3378.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3378.yml diff --git a/html/changelogs/AutoChangeLog-pr-3378.yml b/html/changelogs/AutoChangeLog-pr-3378.yml new file mode 100644 index 000000000000..7ed5af71b205 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3378.yml @@ -0,0 +1,5 @@ +author: Erika Fox +changes: + - {code_imp: 'Fireaxe cabinets have been repathed, and now function as a more general + cabinet object. please report any inconsistencies with behavior'} +delete-after: true From 53714787d3eebbd41f903bcc37c5817cee334dc6 Mon Sep 17 00:00:00 2001 From: Theos Date: Mon, 30 Sep 2024 12:19:01 -0400 Subject: [PATCH 061/125] Should fix hallucinations being permanent (#3445) ## About The Pull Request Fixes #3435 Caps hallucination natural decay at 0 so it can't reach negative numbers off dumb stuff and never actually stop doing stuff ## Changelog :cl: fix: hallucinations can no longer be permanent unless treated /:cl: Signed-off-by: Theos --- code/modules/flufftext/Hallucination.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 69c15b1e3494..8f8e532577c0 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(!hallucination) return - hallucination-- + hallucination = max(hallucination - 1, 0) if(world.time < next_hallucination) return From 7530971650a1339771c5cafb0da773bc1e427ecb Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 12:09:16 -0500 Subject: [PATCH 062/125] Automatic changelog generation for PR #3445 [ci skip] --- html/changelogs/AutoChangeLog-pr-3445.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3445.yml diff --git a/html/changelogs/AutoChangeLog-pr-3445.yml b/html/changelogs/AutoChangeLog-pr-3445.yml new file mode 100644 index 000000000000..3199030bea7f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3445.yml @@ -0,0 +1,4 @@ +author: SomeguyManperson +changes: + - {bugfix: hallucinations can no longer be permanent unless treated} +delete-after: true From 96b8045defa3771caa4bb6efe3cc5bec75b295a9 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 1 Oct 2024 01:08:21 +0000 Subject: [PATCH 063/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3366.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3378.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3445.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3455.yml | 5 ----- html/changelogs/archive/2024-10.yml | 10 ++++++++++ 5 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3366.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3378.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3445.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3455.yml create mode 100644 html/changelogs/archive/2024-10.yml diff --git a/html/changelogs/AutoChangeLog-pr-3366.yml b/html/changelogs/AutoChangeLog-pr-3366.yml deleted file mode 100644 index f1b353bf3387..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3366.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Erika Fox -changes: - - {rscadd: Anti-Radiation Foam is now available at the outpost} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3378.yml b/html/changelogs/AutoChangeLog-pr-3378.yml deleted file mode 100644 index 7ed5af71b205..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3378.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Erika Fox -changes: - - {code_imp: 'Fireaxe cabinets have been repathed, and now function as a more general - cabinet object. please report any inconsistencies with behavior'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3445.yml b/html/changelogs/AutoChangeLog-pr-3445.yml deleted file mode 100644 index 3199030bea7f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3445.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SomeguyManperson -changes: - - {bugfix: hallucinations can no longer be permanent unless treated} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3455.yml b/html/changelogs/AutoChangeLog-pr-3455.yml deleted file mode 100644 index 0351ddf280b1..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3455.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Sadhorizon -changes: - - {tweak: You can now put knives in secbelts and the subtypes of secbelts.} - - {bugfix: You can now fit all knives in mining webbings.} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml new file mode 100644 index 000000000000..546d4d7ab402 --- /dev/null +++ b/html/changelogs/archive/2024-10.yml @@ -0,0 +1,10 @@ +2024-10-01: + Erika Fox: + - rscadd: Anti-Radiation Foam is now available at the outpost + - code_imp: Fireaxe cabinets have been repathed, and now function as a more general + cabinet object. please report any inconsistencies with behavior + Sadhorizon: + - tweak: You can now put knives in secbelts and the subtypes of secbelts. + - bugfix: You can now fit all knives in mining webbings. + SomeguyManperson: + - bugfix: hallucinations can no longer be permanent unless treated From 180c9b216ab142495afd77f7e9b17390602fd33b Mon Sep 17 00:00:00 2001 From: tmtmtl30 <53132901+tmtmtl30@users.noreply.github.com> Date: Tue, 1 Oct 2024 01:10:36 -0700 Subject: [PATCH 064/125] a bedtime update for beddy-bye boys (Bunk beds!) (#3345) ## About The Pull Request Adds bunk beds, in the form of two objects, a "bottom bunk" structure and a "top bunk" structure, each with appropriate layering and sprite-shifting, including for bedsheets. Sprites are courtesy of @thgvr . They can be crafted with metal or placed by mappers as a single object using a spawner effect. Additionally, beds, double beds, and bunk beds have had their alternate-direction behavior fixed. These beds have a flipped set of sprites on the NORTH and EAST directions, but neither bedsheets nor buckled players correctly respected the alternate sprites. This has been fixed. oh also i fixed a random rendering error with tank storage units that imaginos notified me of. they weren't showing the final 5-tank overlay state correctly. they do now ![image](https://github.com/user-attachments/assets/bbebeb5e-27db-4703-a7db-c639b8ec1502) ## Why It's Good For The Game 1. bunkbeds give mappers another tool to make ships and ruins feel appropriately-decorated 2. mappers being effectively locked to a single bed rotation is dumb currently, there's one bug: when crafting a bunk bed, you need to make the bottom one first. if you make the top one first, you won't be able to place the bottom bunk there without just deconstructing the top bunk. i know exactly what causes this, it's mostly just annoying and i've got a few ideas for (slightly hacky) fixes. but i'm also lazy ## Changelog :cl: tmtmtl30, Thgvr add: Added bunkbeds, which can now be crafted with metal or placed by mappers. fix: Beds facing alternate directions now correctly support people buckling to them and bedsheets being placed on top of them. /:cl: --- code/datums/elements/bed_tucking.dm | 23 +++- code/game/objects/items/plushes.dm | 2 +- .../stacks/sheets/recipes/recipes_metal.dm | 8 +- code/game/objects/items/stacks/stack.dm | 2 +- .../structures/beds_chairs/alien_nest.dm | 1 + .../objects/structures/beds_chairs/bed.dm | 130 +++++++++++++++++- code/game/objects/structures/bedsheet_bin.dm | 2 +- .../game/objects/structures/tank_dispenser.dm | 6 +- .../abductor/equipment/abduction_gear.dm | 1 + .../nukeop/equipment/nuclearbomb.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- icons/effects/effects.dmi | Bin 901728 -> 903017 bytes icons/obj/objects.dmi | Bin 102051 -> 103649 bytes 13 files changed, 163 insertions(+), 16 deletions(-) diff --git a/code/datums/elements/bed_tucking.dm b/code/datums/elements/bed_tucking.dm index c094e5a5b108..e505e6efdb5a 100644 --- a/code/datums/elements/bed_tucking.dm +++ b/code/datums/elements/bed_tucking.dm @@ -8,8 +8,13 @@ var/y_offset = 0 /// our rotation degree - how much the item turns when in bed (+degrees turns it more parallel) var/rotation_degree = 0 + /// Whether the item changes its dir to match the desired lying direction of the bed that it's tucked into. + var/change_dir = FALSE + /// Whether the item changes its layer to the layer suggested by the bed for tucked-in item. + /// When the item is untucked, it is returned to its initial() layer. + var/change_layer = FALSE -/datum/element/bed_tuckable/Attach(obj/target, x = 0, y = 0, rotation = 0) +/datum/element/bed_tuckable/Attach(obj/target, x = 0, y = 0, rotation = 0, _change_dir = FALSE, _change_layer = FALSE) . = ..() if(!isitem(target)) return ELEMENT_INCOMPATIBLE @@ -17,6 +22,8 @@ x_offset = x y_offset = y rotation_degree = rotation + change_dir = _change_dir + change_layer = _change_layer RegisterSignal(target, COMSIG_ITEM_ATTACK_OBJ, PROC_REF(tuck_into_bed)) /datum/element/bed_tuckable/Detach(obj/target) @@ -40,11 +47,20 @@ return to_chat(tucker, "You lay [tucked] out on [target_bed].") - tucked.pixel_x = x_offset - tucked.pixel_y = y_offset + tucked.pixel_x = x_offset + target_bed.tucked_x_shift + tucked.pixel_y = y_offset + target_bed.tucked_y_shift if(rotation_degree) tucked.transform = turn(tucked.transform, rotation_degree) RegisterSignal(tucked, COMSIG_ITEM_PICKUP, PROC_REF(untuck)) + // the buckle_lying value on the bed controls the direction that mobs lay down in when they're buckled into bed. + // some items (bedsheets) have different states to reflect those directions. + if(change_dir) + if(target_bed.buckle_lying == 270) + tucked.setDir(NORTH) + else + tucked.setDir(SOUTH) + if(target_bed.suggested_tuck_layer != null) + tucked.layer = target_bed.suggested_tuck_layer return COMPONENT_NO_AFTERATTACK @@ -57,4 +73,5 @@ SIGNAL_HANDLER tucked.transform = turn(tucked.transform, -rotation_degree) + tucked.layer = initial(tucked.layer) UnregisterSignal(tucked, COMSIG_ITEM_PICKUP) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 63e4ffc5e6c3..4b16ee60942d 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -38,7 +38,7 @@ . = ..() if(should_squeak) AddComponent(/datum/component/squeak, squeak_override) - AddElement(/datum/element/bed_tuckable, 6, -5, 90) + AddElement(/datum/element/bed_tuckable, 6, -5, 90, FALSE, FALSE) //have we decided if Pinocchio goes in the blue or pink aisle yet? if(gender == NEUTER) diff --git a/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm b/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm index 6860f34be5c7..9819a941e5f8 100644 --- a/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm +++ b/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm @@ -1,9 +1,13 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("double bed", /obj/structure/bed/double, 4, one_per_turf = TRUE, on_floor = TRUE), \ null, \ + new/datum/stack_recipe_list("beds", list( \ + new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("double bed", /obj/structure/bed/double, 4, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("bottom bunk", /obj/structure/bed/bunk, 2, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("top bunk", /obj/structure/bed/bunk/top, 2, one_per_turf = TRUE, on_floor = TRUE), \ + )), \ new/datum/stack_recipe_list("office chairs", list( \ new/datum/stack_recipe("gray office chair", /obj/structure/chair/office, 5, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("light office chair", /obj/structure/chair/office/light, 5, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 5653b641c99d..f34836de156f 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -305,7 +305,7 @@ if(!window_structure.fulltile) continue if(object.density) - to_chat(usr, "There is \a [object.name] here. You cant make \a [recipe.title] here!") + to_chat(usr, "There is \a [object.name] here. You can't make \a [recipe.title] here!") return FALSE if(recipe.placement_checks) switch(recipe.placement_checks) diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 4f132b11af99..ecc050aa8f77 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -14,6 +14,7 @@ buildstacktype = null flags_1 = NODECONSTRUCT_1 bolts = FALSE + swap_lying_with_dir = FALSE var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/alien.dmi', "nestoverlay", LYING_MOB_LAYER) /obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/living/user) diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index 6c5f46e94a3b..ec7132a67cdd 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -18,10 +18,44 @@ resistance_flags = FLAMMABLE max_integrity = 100 integrity_failure = 0.35 + var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 2 var/bolts = TRUE + /// Whether the bed changes its buckle_lying direction + /// (and accordingly the direction in which mobs lie down) based on its current direction. + var/swap_lying_with_dir = TRUE + /// If non-null, some items (bedsheets) which can be tucked into beds + /// will set their layer to this value when they are tucked in, until they are picked up again. + var/suggested_tuck_layer = null + /// The amount added to the pixel_x value of a tucked-in item. + var/tucked_x_shift = 0 + /// The amount added to the pixel_y value of a tucked-in item. + var/tucked_y_shift = 0 + +/obj/structure/bed/Initialize(...) + . = ..() + if(swap_lying_with_dir) + buckle_lying = get_buckle_angle_from_dir(dir) + +/obj/structure/bed/setDir(newdir) + . = ..() + if(swap_lying_with_dir) + buckle_lying = get_buckle_angle_from_dir(newdir) + // shuttle rotation etc... ugh. + if(has_buckled_mobs()) + for(var/mob/living/M as anything in buckled_mobs) + // this proc already checks to see if the new angle is different from the old one, + // so this shouldn't cause any duplicate work or unnecessary animations. + M.set_lying_angle(buckle_lying) + +/obj/structure/bed/proc/get_buckle_angle_from_dir(some_dir) + if(some_dir & (SOUTH|WEST)) + return 90 + else + return 270 + /obj/structure/bed/examine(mob/user) . = ..() if(bolts) @@ -52,6 +86,9 @@ icon_state = "down" anchored = FALSE resistance_flags = NONE + + // no dir states + swap_lying_with_dir = FALSE var/foldabletype = /obj/item/roller /obj/structure/bed/roller/attackby(obj/item/W, mob/user, params) @@ -161,8 +198,9 @@ else to_chat(user, "The dock is empty!") -//Dog bed - +/* + * "Dog" beds + */ /obj/structure/bed/dogbed name = "dog bed" icon_state = "dogbed" @@ -170,6 +208,9 @@ anchored = TRUE buildstacktype = /obj/item/stack/sheet/mineral/wood buildstackamount = 10 + + // no dir states + swap_lying_with_dir = FALSE var/mob/living/owner = null /obj/structure/bed/dogbed/ian @@ -206,7 +247,9 @@ . = ..() update_owner(M) -//Double Beds, for luxurious sleeping, i.e. the captain and maybe heads - no quirky refrence here. Move along +/* + * Double beds, for luxurious sleeping, i.e. the captain and maybe heads - no quirky refrence here. Move along + */ /obj/structure/bed/double name = "double bed" desc = "A luxurious double bed, for those too important for small dreams." @@ -232,3 +275,84 @@ name = "double dirty mattress" desc = "An old grubby king sized mattress. You really try to not think about what could be the cause of those stains." icon_state = "dirty_mattress_double" + +/* + * Bunk beds. Comes with an /obj/effect spawner that lets mappers place them down easily. + * The base type is the bottom bunk, with the top bunk as a derived type. + * Like other beds, the pillow may be on the left or right depending on the direction. + */ +/obj/structure/bed/bunk + name = "bottom bunk" + desc = "The oft-maligned bottom bunk of a compact bunk bed. Heavy sleepers only." + icon_state = "bottom_bunk" + // just below the top bunk's main layer + suggested_tuck_layer = LYING_MOB_LAYER + 0.005 + /// The amount added to the pixel_y value of mobs lying down, relative to the default shift for that position. + var/mob_y_shift = -1 + // i think it looks best without shifting the bedsheet down, even though the mob gets shifted down some + +// alter their pixel offset when they lie down... +/obj/structure/bed/bunk/post_buckle_mob(mob/living/M) + // we shift the lying mob a little so that they line up better with the pillow, but the shift direction changes + // depending on the direction they lie down in, controlled by buckle_lying + // (which is in turn based on our direction, but we don't need to worry about that directly) + var/horz_offset + if(buckle_lying == 90) + horz_offset = 2 + else + horz_offset = -2 + + M.pixel_x = M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN) + horz_offset + M.pixel_y = M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN) + mob_y_shift + +// ...and reset it when they get off +/obj/structure/bed/bunk/post_unbuckle_mob(mob/living/M) + M.pixel_x = M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN) + M.pixel_y = M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN) + + +/obj/structure/bed/bunk/top + name = "top bunk" + desc = "The top bunk of a compact bunk bed. Few other sleeping accommodations can match its luxury." + icon_state = "top_bunk" + + // higher layer, so that it renders on top of people on the bottom bunk + layer = LYING_MOB_LAYER + 0.01 + mob_y_shift = 13 + + // above the lying mob, but below the ladder + suggested_tuck_layer = LYING_MOB_LAYER + 0.025 + tucked_y_shift = 14 + +/obj/structure/bed/bunk/top/Initialize(...) + . = ..() + // the ladder needs to render above the mob + overlays += image(icon = 'icons/obj/objects.dmi', icon_state = "top_bunk_ladder", layer = LYING_MOB_LAYER + 0.03) + // and the posts need to render below the bottom bunk + overlays += image(icon = 'icons/obj/objects.dmi', icon_state = "top_bunk_posts", layer = TABLE_LAYER) + +/obj/structure/bed/bunk/top/post_buckle_mob(mob/living/M) + . = ..() + M.layer = LYING_MOB_LAYER + 0.02 + +/obj/structure/bed/bunk/top/post_unbuckle_mob(mob/living/M) + . = ..() + // honestly not really confident in this, but since standing up takes a do_after + // (and thus happens afterwards, resetting the layer), it should be fine... + // i'm more worried about altering layers via + and -, since if you figured out ways + // of stacking those you could layer yourself under, like, the floor. + M.layer = LYING_MOB_LAYER + + +// the spawner +/obj/effect/spawner/bunk_bed + name = "bunk bed spawner" + icon_state = "bunk_bed_spawner" + +/obj/effect/spawner/bunk_bed/Initialize(...) + . = ..() + var/obj/structure/bed/bunk/bottom_bunk = new(loc) + var/obj/structure/bed/bunk/top/top_bunk = new(loc) + + bottom_bunk.setDir(dir) + top_bunk.setDir(dir) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 1a89195c646a..31e9d9a0b8fc 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -28,7 +28,7 @@ LINEN BINS /obj/item/bedsheet/Initialize(mapload) . = ..() - AddElement(/datum/element/bed_tuckable, 0, 0, 0) + AddElement(/datum/element/bed_tuckable, 0, 0, 0, TRUE, TRUE) /obj/item/bedsheet/attack_self(mob/user) if(!user.CanReach(src)) //No telekenetic grabbing. diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 1be5f857e155..c0604dd5e09b 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -28,10 +28,10 @@ /obj/structure/tank_dispenser/update_overlays() . = ..() switch(oxygentanks) - if(1 to 3) + if(1 to 4) . += "oxygen-[oxygentanks]" - if(4 to TANK_DISPENSER_CAPACITY) - . += "oxygen-4" + if(5 to TANK_DISPENSER_CAPACITY) + . += "oxygen-5" switch(plasmatanks) if(1 to 4) . += "plasma-[plasmatanks]" diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 5bce8014babe..abc69300c9c6 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -761,6 +761,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} icon = 'icons/obj/abductor.dmi' buildstacktype = /obj/item/stack/sheet/mineral/abductor icon_state = "bed" + swap_lying_with_dir = FALSE /obj/structure/table_frame/abductor name = "alien table frame" diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 9c65e50130cf..c073a7c3521c 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -608,7 +608,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/Initialize() . = ..() - AddElement(/datum/element/bed_tuckable, 6, -6, 0) + AddElement(/datum/element/bed_tuckable, 6, -6, 0, FALSE, FALSE) if(!fake) SSpoints_of_interest.make_point_of_interest(src) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 3ed2b86816ac..9a19e198a555 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -386,7 +386,7 @@ /mob/living/carbon/get_standard_pixel_y_offset(lying = 0) if(lying) - return -6 + return PIXEL_Y_OFFSET_LYING else return initial(pixel_y) diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 0aa256c631e428148e97de7cb47668ff901b7abc..bb63eb2b7f0ed5f486bf924e7fc009cfb034276b 100644 GIT binary patch delta 15274 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 F{a^HXrM>_F delta 13975 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 A*8l(j diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 1b156b9294f9f7f3339ceff03486df17204f65c5..8479c100f1b0a25f9ca2e2cb61b391e86f03899e 100644 GIT binary patch delta 11309 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 PzzD0 From ea15b40ba8a113123dacb8f8e582aa928c43d587 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 1 Oct 2024 03:20:54 -0500 Subject: [PATCH 065/125] Automatic changelog generation for PR #3345 [ci skip] --- html/changelogs/AutoChangeLog-pr-3345.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3345.yml diff --git a/html/changelogs/AutoChangeLog-pr-3345.yml b/html/changelogs/AutoChangeLog-pr-3345.yml new file mode 100644 index 000000000000..3da650007188 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3345.yml @@ -0,0 +1,6 @@ +author: tmtmtl30, Thgvr +changes: + - {rscadd: 'Added bunkbeds, which can now be crafted with metal or placed by mappers.'} + - {bugfix: Beds facing alternate directions now correctly support people buckling + to them and bedsheets being placed on top of them.} +delete-after: true From bb2ab5591e5b045e637fb991137c52566e7a6d54 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Tue, 1 Oct 2024 17:29:27 -0400 Subject: [PATCH 066/125] One Shot RPG (#3433) ## About The Pull Request Adds a one-shot rocket launcher to the code. Adjusts the code in some places to support it being truly one shot. Also adds being able to draw on rocket launchers for mild entertainment. Rye did the sprite. ## Why It's Good For The Game A disposable anti-armor tool is good for people who are poor and or frontiersmen. ## Changelog Rye, Erika :cl: add: One-Shot Rocket Launcher. A quick solution to an armored problem. add: You can now scribble profane things onto the tube of your rocket launcher. Use this power wisely. imageadd: Rye: A sprite for a one-shot rocket launcher /:cl: --- code/modules/projectiles/gun.dm | 3 ++ code/modules/projectiles/guns/ballistic.dm | 3 ++ .../projectiles/guns/ballistic/launchers.dm | 50 ++++++++++++++++-- .../frontier_import/ballistics.dm | 42 +++++++++++++++ .../manufacturer/frontier_import/48x32.dmi | Bin 4302 -> 9192 bytes .../manufacturer/frontier_import/lefthand.dmi | Bin 2747 -> 3015 bytes .../manufacturer/frontier_import/onmob.dmi | Bin 2399 -> 2721 bytes .../frontier_import/righthand.dmi | Bin 2685 -> 2934 bytes 8 files changed, 94 insertions(+), 4 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 7fe0a5b07c3a..f848018a6115 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -70,6 +70,9 @@ var/casing_ejector = TRUE ///Whether the gun has an internal magazine or a detatchable one. Overridden by BOLT_TYPE_NO_BOLT. var/internal_magazine = FALSE + ///Whether the gun *can* be reloaded + var/sealed_magazine = FALSE + ///Phrasing of the magazine in examine and notification messages; ex: magazine, box, etx var/magazine_wording = "magazine" diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index ccc399906365..f64586871ccf 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -205,6 +205,9 @@ . = ..() if (.) return + if(sealed_magazine) + to_chat(user, span_warning("The magazine on [src] is sealed and cannot be reloaded!")) + return if (!internal_magazine && istype(A, /obj/item/ammo_box/magazine)) var/obj/item/ammo_box/magazine/AM = A if (!magazine) diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index e3e821c72db1..2044fae60ee2 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -40,30 +40,69 @@ actions_types = list() casing_ejector = FALSE +GLOBAL_LIST_INIT(rpg_scrawlings, list( + "\"FRONT TOWARDS ENEMY\"", + "\"MY WIFE LEFT ME\"", + "A Kepori inset in a stylized crimson heart", + "\"Eat lead psychohazard!\"", + "\"Portable Demotion\"", + "A drawing of the Rilena character 'T4L1' smoking a boof", + "\"Eat it corpo!\"", + "A Sarathi woman in a suggestive pose", + "\"Arm this!\"" +)) + + /obj/item/gun/ballistic/rocketlauncher name = "\improper PML-9" - desc = "A reusable rocket-propelled grenade launcher. The words \"NT this way\" and an arrow have been written near the barrel." + desc = "A reusable rocket-propelled grenade launcher." icon_state = "rocketlauncher" item_state = "rocketlauncher" mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' load_sound = 'sound/weapons/gun/general/rocket_load.ogg' - w_class = WEIGHT_CLASS_BULKY + gun_firemodes = list(FIREMODE_SEMIAUTO) burst_size = 1 fire_delay = 0.4 SECONDS - casing_ejector = FALSE + weapon_weight = WEAPON_HEAVY + w_class = WEIGHT_CLASS_BULKY + + //Bolt bolt_type = BOLT_TYPE_NO_BOLT - internal_magazine = TRUE + + ///Magazine stuff cartridge_wording = "rocket" + internal_magazine = TRUE empty_indicator = TRUE tac_reloads = FALSE + casing_ejector = FALSE + manufacturer = MANUFACTURER_SCARBOROUGH + attack_verb = list("bludgeoned", "hit", "slammed", "whacked") + valid_attachments = list() slot_available = list() + var/rpg_scribble = null + +/obj/item/gun/ballistic/rocketlauncher/Initialize() + . = ..() + rpg_scribble = pick(GLOB.rpg_scrawlings) + desc += " [rpg_scribble] is scrawled on the tube" + +/obj/item/gun/ballistic/rocketlauncher/attackby(obj/item/A, mob/user, params) + . = ..() + if(istype(A, /obj/item/pen)) + rpg_scribble = stripped_input(user, "What are you putting on [src]?", "Rocket Launcher Doodle") + if(!rpg_scribble || !length(rpg_scribble)) + desc = "[src::desc]" + return + desc = "[src::desc] [rpg_scribble] is scribbled on the body." + + /obj/item/gun/ballistic/rocketlauncher/afterattack() . = ..() magazine.get_round(FALSE) //Hack to clear the mag after it's fired @@ -80,6 +119,9 @@ righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi' mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi' + //recoiless rifles use shells + cartridge_wording = "shell" + icon_state = "panzerfaust" item_state = "panzerfaust" manufacturer = MANUFACTURER_SOLARARMORIES diff --git a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm index 90355db145dd..224712438b90 100644 --- a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm +++ b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm @@ -227,3 +227,45 @@ caliber = "12ga" max_ammo = 40 w_class = WEIGHT_CLASS_NORMAL + + +/obj/item/gun/ballistic/rocketlauncher/oneshot + name = "\improper Hammer" + desc = "A disposable rocket-propelled grenade launcher loaded with a HEDP shell." + + icon = 'icons/obj/guns/manufacturer/frontier_import/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/frontier_import/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/frontier_import/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/frontier_import/onmob.dmi' + base_icon_state = "rpg" + icon_state = "rpg" + item_state = "rpg" + + mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot + fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' + load_sound = 'sound/weapons/gun/general/rocket_load.ogg' + weapon_weight = WEAPON_HEAVY + bolt_type = BOLT_TYPE_NO_BOLT + + cartridge_wording = "rocket" + empty_indicator = FALSE + sealed_magazine = TRUE + manufacturer = MANUFACTURER_IMPORT + slot_flags = ITEM_SLOT_BACK + + +/obj/item/gun/ballistic/rocketlauncher/oneshot/Initialize() + . = ..() + if(prob(1)) + name = "\improper Mallet" + +/obj/item/gun/ballistic/rocketlauncher/oneshot/examine(mob/user) + . = ..() + if(!chambered) + . += span_warning("It has been spent, and is now useless.") + +/obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot + name = "oneshot rocket launcher magazine" + ammo_type = /obj/item/ammo_casing/caseless/rocket/hedp + caliber = "84mm" + max_ammo = 1 diff --git a/icons/obj/guns/manufacturer/frontier_import/48x32.dmi b/icons/obj/guns/manufacturer/frontier_import/48x32.dmi index 2f2db3d07ad53178648564e1ffabf81691ebf57d..be95cfa90c14fe5b1763ae8e11da0c600ce28dab 100644 GIT binary patch literal 9192 zcmaKSbx>SSw=K>v1QaOa&_F8M71Z_=aJRl_y1qB5UqN1RSf`Y1zeEtQ%LXHLo zQZJE#?qGdmUj+vrJ8x%CUuO?@6qLY%!mMt0IPZ)1uv@lxf6dvo*@|}=lr?i;`E>q* z32V+}B6hX+;G65KPiuR0te&9S48>m$kSFLpb>(P}`QT&Acguf*9Pri$r}h}Adf5s0 zK4rSSv=k1TR_fXUMKeT^3!G@xhdHS7Yz8J66y>;LU!%0hM2re4>{j0BAH} z;B8|hcIH7rxc51u11TknvKg(e;LOYB0SBRA?;rCww^l!$`;0U5-9*<0d@c4;NAJrO zKtg#r#!I%tiUEdkBpve|;mm`Xo@-7-rtaYj%84_SX8DmRT0BV+?xNp$ah9I)M;6TJ z7*)WyvGAZmzi*?gs2bN7@>#A&aYZNUojrfk)UJK&Aws^KnqGQ{X7#EQ@m*hPaHwpR z9NqZ7@f)+>f{gpZhLSck^&zmGdY_09@3T+6F}qEz!-)k#U9dnZ1u>$6a%^6b-2bBlduAiRN93AvUUzbj5$JBD!m?~k}C6p_#WUjuObR#oC zDM98=Wt}7*!u0-at^(l{RMEnS$>EQZkA*h(uLgiO=8J0U0l}ZGFzGmtLw?7Df?QF4 zN2uddf32S6!sT)9!ej9n{Pc)+abu&QWiLJ-mMzugHc_HZEDNB2EdqvPfaKyEv}JJU z!OSGua)1OJ%uJA+tsE*-%*UMn497VXq7cg%)dsI!E>0a^O!DyHQ3o|Nb8wmKw8X#5aYaxe|tJ^d(H<6?bq+ixsp6IP)Hl%4Oax zrOxyf|CU;78pOgg;P#1HuMFLH(xHZ72Qm`ZA%~6a3FUEQ z)v;twpbEZC5db?diyXkpHEU`;F_GjnUk*ueh?o|IiOk^A4_r%zurGgDsm;#L8mW5x zKws2RF6hSmD%?urDXv70w^v5SIcf}C`*M}8$Xc6%O9oD0htYgjY$Y;~vrYnWyzrL~1 z7t!62Ii*p?NB>#QE%mgBctm{dKVyxDZK8Ss}>L<5zjpK&x$K z_T$q(VF%M_2q?_vS{S0BLkBu`7dD-mdzncR#0j3#CCis(5P_K5>L_xuL!Ppos{~(s zp(E_OfZ@2WZ_&1k&bKu!L z-fyH6jl2w@vI}njd^WDWwdxZ31MtSU@aNYC(4SHS3%LOeV6SPnt3215gP;+FM*Ol)Ykx+>%|g(3c;r`^Tcnv)DswB9@= zvN^wxc3P@c%u5uvLWxTSy%BWt4tS za+JK;AYm;*wVx9viDt9N27}94Wq75%Wh878@=p8Efz`4DtG|zqys{J}-u3a(gFOaT z%^z3Qrdu}sChS>Du+p%NHpJ`mLdhnkkID%>m-@5(7#NUQoFMlZtQf5q43bk(XDx{V z5fKAf>0?G>&{UD>|2dNA{|$qEPz9aE@Q^Sdckr(j9sd;v{u?~(Y0A8AQeAdd$&=V5 zrVp~#4hRT9zQvG}Tj?_KRcTQl#6(C=ZiZI|eXXM4f0Oy`jx$YQtJB)uc^wk6D0*3} z{+9xrJ54vQ-ao+!4S^g%n`UM(hTIk_w^0$hfhEcJ>_Jez~vx8>cPsN$qv z_g@WFO4h=Xd%smcE%MJmxRH9l+}qSd}_0SN*%IHqFVzB$qsY z6hQNHCgw_bIC-l+P`FGvRmT~)j$@}><#(*!Y$-!ulp~BOhrXTLb{F6-a@3>u?Hs#` zL#Zdl*q2E9WYr*3*1Yq*p2Hbmdi(UG!hngnhU2skw0R~C;(J(meQM^x3sotna9 zES1!6GgnQ>7-GcYhhHd2&y~0#tmr}`uAyA))AZj!tQ@rV2j3Gpg-b$ z5g`Zr4HVw=C9?cC34&x<4~7KxLfGwHr!t({(ym`w01LgHr@EaylI9z}M{(}A>uS$N z9rMgJqWr>Q4-KYaEv=lNX{&gw9#6J`u#7I2qB}iXv^+yGKTj#+YDkqdaMGiH`P_V! z`GrycR0ATG5|D#FW~kqESMC1NMiWPKppF9_ES7fxjcEj1AblXc z``0vo0YXjOzl&@&v4}?1v|FbiFgWq85N{~!YUcUdZ{6`sh~MaZYKURIk(--aWBd?J zTo>L8S0B0fR|;*kXRgOy3f*(<^d%mD?>x8MI?PIzg&7F>WpOW090-Rl{z+q8nlJLU zIijf9+<3xP4!z=*uS{V1!uF^$LVVh`sDnlb0k9|#%N^rI2?!mD_!XGpF9!v4S;K<& z-F|o+X%+FEN^7E-mVgDVMA-9Yf0LiVb@2p|x2|g) z8hAQC&0KAeTl%zo>Vg{Ughn_`N1wlTN5BNwM&d8EEJ-%yIR`ZSH7fzv{#MWRYMxa0 zmQ{~PT1aVR`XcDOnKXZ%C;F)Im1iN`BoYK!e1`^L9a-SW32*F9ZcC;qyYF=O87?o0 zOxOR>;*dm~2oPOf>nqId?zU-WdUR5VHsg*V)I=q#>U$wO+G1R6JiP$R2F>VcxoKS$ zkZ7liv^vgkCsPSeo4o&n0+?qTf0gUdB4=lJPxbZK(icw5b^b+0QQ#5~bGc;nKqSqB zq(w-FTBEqDJF>Esu!Dh%h^l;Ww=DUw4 zEc7^EO{jeaa=9@1++a2Kak(|(IUI4`{7EY6r9Q?a;1k~p=5n*-qYdc%dp81yE)(=! zV0tRNB!&d!%u95^U3&Np+}P7L#4`6O0SU+xlEGH9<@b?j%TYvf-dgFUH5uKaX#o0i zga4Jm{Ws+P|E`9xl5O;YKcPC~G*jR^I*R7JC!_+pGPE|+#v6cVe> z;U^~=ORAw>Zd#^Q%wRrS5wN0>kx~7nmqM`G`J_w^?9E90ZrE=4ZL9J|7YDc4R&v}e z(AJ^vtKWc$5&#RUSo}DOuhXPMq;%18crUIYdc{^i{J_AuLc;=@d0UX{J=;5f~|s{MWIt;!L!Qy zvN5}@FnRVMS_hen`l46;org9{Qv24HvCX`dy_H(h!zNEKDtB$3o9mk7$EMn8p0EiM%ky84r+tC)#~D!xzwV-hTLGL;haMII zHd9jZi;^3iezI7ig3hxjRArJ-WRFT7hxA$!X*cLwnA7!LRH z!^7?m4d2mmh$`Y;7bSBzsPh@C*-%!m<}7}2UP7XlsTG;MbQ8XV+zT?65eh8A!GFpua6+r7R3&|pkRE|&^n5CTJ_pl|M3qAqcvq164#3fXnwmZRLB@`wghb~au#JdP{$VO`wK_PaJDXbtf? zC18r34e?|vB~us+eaWavf?Pw;=2$?2#WR>LqDf7JSRvYHsec64wI$0Q^LiG21y7>9T1G;l$ zeiK=j^8IsC)okliY6Wps!Efl%KkA!_f9O^u0ruAR_C0qRAT8O8)R>OJzgDon``Low zo=xJF>fRTHPnV|z+X|2U!u`rqaL6nX?$zv|eC@IuJ4WC`@b1U7D`BtJL%%!}ck!VX zr)9}TU8~^S`@6(vPrgq*xd@jik+8k;A)1ELREcXdyBLx?B~JQ$>nDQLuHUkU$&Kk- z`4jM|bO<965cMgC!=r01KAPfvA0kY1j4+)YBRtFDC2jal&HRL06_f!uX%HifGg8Q> zD3Ru98P?7Nw+EwLMhI531C!#b+AzUc@i}cHv2itc!YBk5o95{Wre2S4KB}LF?J_)u z`}s7;jS%B$K$2MMwe)`v7pA97o7iTI9$;Ta@LC4+ZsM9r9rGTcr(`Wf^*wGroVFMf zb=Who4Fuxi-mi5niE!V)yAe;;1kIPHk!b^JtSZ9E=w{+cUDW#KY@R%5VT$@45_8tT z^uvUCPA;Equgk!91wwcBRl1aP=-Vs37uif3lKe~UgJvRJ!p!V}xLYBxfP(LtZ5-&? zwT>3)j;{E7*iWHh4!EugQd}8x#pN^p78JI!j>e8-c zno)PsR`&Bio?Jk#VgUN4W&hmmP+E4D^%}3Fl>%~7+WwlWC-gNV*W1c>!E9Zx196ik zN53oV4E-%8xaA7PnEgn#;o}mX)|U#3oHLwC z5yFK2b_`$^838Jsf6*xAcC8w+ek5A=yU;L(4T_B_yyv^F44_$YM*Nj$mcz~bNd5Yx zEoHz81X4Vc0!;?P%aO%jj#K%~8`2SAY<}3#k2!aV1C1N>ha?f(Vt&|nmq3l&calj# z@#@iNs_~;T65=pRZN^ZBEYLVB;!|&LuV%bYZ&$~--_KsS_i1VOIr1Q!SZHEl_Y^6A z?o3jkABE)J#Kj773~@vsTa2p%a(*SFsiHECxFBz!T0{45ogg20B;!Xum^NdgNOdRq zH9FIXH=R9bPVjA!kuEuVm;@CLy8>}Znu@fQDrAbLO$KLz!ppI)+*2uTBL^@+QJtSz zY+QaX77kLYPjb?g*p)?P0y~!2D0^^WJE06|nTMpms7Gh|s@V6vxxJz*_sVXX$>Uj@ z#`WFO#Mx^8J2X}AQ$e}Jtd4k1Er+qFplSjJ(wPt>YFNARqj>+q;E?Rw&5dS>~G zMRA=lt_4G`CW$2ymjIWqwwq?JFJn(dQN{-KCu>3Y58qdOC-o?VOxG`-l6*@UySa;^ zPNM-;$wy~qTd>3`4W3BwT%3RFXWGS? ziz_rj$v=Foe*XT;Q>mL+;5+pUu-Xn9@UyIB>EiHDtYh4?Z~(zEXd5dj{+m=~VvR&d zxfuqDv$8oMT(*KE^#~1k{-Q;qSAkH6=IV~5$D%+bR2Pm7gcF~Ffvu;8t19+)h!mFsg=XLy{z^am(gNLnm@OnAb5;N;ar0s7jb-7(l{DsFBg2 zO@vQe=WxrU3vdNZ1aBB~IKGvJanCZQLCUmm+T z|NHSn+D9Z6Js@coLHasovoSe9i`xQSfh4{0wHBJn(Yzcy%G41*;hI+*X4^RQW4n(n z-;myfDN>Mg@Sc~UAT{|&pgK)(YO>1zDADUd+Ga{5EHNZWP_(=l&u!|dBJ3?8Jp~;4 z%I&peoCSL8m%IR@)=Q;bYOiq#j4mmx=zkupL4mUB;tj(lV@CXyz9jB3MeY>zG^voDaNOrF7#o&sO21Y7-fC3 z;Gl)nTh%m0%F+3~Jq$^rZCrh7fOG33IT`6aLr%C%r~P9+Fcjf5tAgo-Y zdbj*j1Ff6ufH<+|<{QkUz&(nnnf_Ho+FL`%lk zuCxeJ?MM5rz=zD^W^jJHj3Q^0gf@ks`I!3%3C0C1cp=kBdnqcU^Td*ABVDWK=;q*+ zE&h(=0Nqdo02hzvPg}#BAxa_9+zTT2IhvmY(UcDN88YOS3ivEf=Np{{Zt?}((aF`> zbp6egOw-J2oNT2MMj6%FrvaVUcWvi>J>ldev;3=erPTvys)F>ze=;KshBN&TK&Nw?Fc?jd}FT+>SqdIp{e93`~CJC{et?^q(% zszN=E+y_n)BC;;sO{r@NSiJD_YrMB_@OtW*v$vQn$p^@8!Zv^NWJ#?_tv8GLAx|K& zYn*4Muh-~9lw~(puca->BXP|4*FSywva)kPUgmL!t)!fg*?$x_DRZrQCt-Kw@%<8| za%hG~+>|~JE4`v(-`FMou9Ml4f&Q=PxEcvrc;X%Gf42@|tEx}MooRurYy!Sp5dMFwO+0$j>q!&8RwF1-;$BJC z&dOVo;z)CFBr^T1w$5QFQo&a2MPT&Cx8CyCH{2_s+W9 zC6N`?YlJ^Zsk|Im4q>3`kP?OaE;FXEWH6^-no?*$8G;##Zsmp_a;dN^P!Isk+B@)QHc2(i~4KXCNTRG*+Z6zweoRW*$!vEq+!NAmIn`&!x~|QN|K^I55hiE z!7J#Ek-?5T7z`<5NUA3IFAZLy`BL1J3u)KlFeGZ%FC_*lq4&$Z6qL``k9Qm4 zD6)a(wwo#p#}}4Y73GY&^}NXFprb||tiCoze1kI6EB7$a|D$mO=;(wsY^|B*g9^3_VxMv*4Ej3hjU-|m*cjgPF-KB z2Wk}oYDO}_>cuXic!tj~r6o&zt4)guGk!h|4X*IqzMp82bM+KDwW%1`+dS*{-rIg} z3B%-cZrBjTp1X6(B<^B=sGe}$p|0dTh$<2M2bBmt0LOI{fZ-}h*>tZ5>PeP+N5ENU ze=+%;SQFHKIsxYk-pv;csKe3g|54i(L+{$_lvVDKCPbw4xQck{9JY2oUZ4n!@=Rc& zT&yOEv5aF!66npbyPm8XD~XhI(_YJFmIIKWk8*RcE9>tL?U_$A>0nD<8w}xZe$kXo zd(?dme?U?-4>4cb+uKFS7_y@J@ZtxAJcMF_R8xs+=v&e{{S`C zrqs)h2kq65%P7fuQ#weO@bB*)8}~U%Kq_6+4CNr<8rYTlyH9|qScgN{nP zZt;&Nn}H?5re1lNJ_#2;D^5E?ZU{n>4QhQqfS*$O4R6n5g~5uxFF1?a zDA~;?*nMTrUUd?Hc1%R?#nmKx%UU$5tFef@*m>U+Yi)BZ1K!S)H`f3SfJMH#ng0?3 zutMGk?@&~Na==B*WUC^#U;CLQU?sjkZBM$nd)yt64i_UBXoE%C7{EEyHO>+>fhouh zl~Fu`E~wHYx;5ulH0!t*Nwoo$SN$0G-n2jZ>Yi4#lRGlTVhH<#vlLsiIL^m8N|Uc= zptWGP^q$UICGetS;(iSeEH?SktVL7qvKXy)zhwZ%8o;(Uhh))V39$v}UO zQGSiOY_u$CAU_Ao=<6^_zYiWA%>(|ZEfa~%+pHfV)0aU402T8=C%-U;*kpz6kM+bd z7mAb?x~wiE`m7}*#_Dfl=tpodGhgD4X5`@i8_fT2ANW6AL?l$(4f_6+<)?{3Mfb4- z<}ggJtD4H&NbQ6D>37(CtQ8Aov=3&}eSQU=UGe^i+fmJnBCAHdH8CwLER5y;aj(BJ zrM|yYs432x@=-)vhF=NDKW2&eE@H|Kjkld{D1RgW@oO&tLIkX)KWqd$zG^7S?mUl z9A%x4KLZ@FEY-mY4l#v3JlY{oJ(~$u(7(&Ny%esopEw@YE%6nn-jZmeLuw-f{QOA! z=z(0f)p|u@el7-~$bO7o!vk~k;VDza7l!wbbipX4Y{bf?%0t!7%Fu_{{DY9{1)q_H z+oNlCSwZ!fwJ+(EsO?`bTN*Z^qA5i^rHxbWIrl|$WfkV2;|IO#JI{W% zvb-{0Z76!!fFB=j?=DT>V7J{mxf*xQSX^6DIm@jgyg+5pR}>2aM|ah_fChTlD| zZv*Hg2#n>$EbDM62yK33Q{HRKMcNo-o=I+#tU)X>_yL*it!tHWo3GG-!WKg!5-Yu9 zH>*Te7_}Gz1cljdaD0+0K0?Azet?D*gA4hHqkRhjl~JZtI2ZGT*;-tU$&7@Tb%TiD zJHddws_97+t9}#KNbn0?%(mtTwesCB&(+(*i?vk|O`1g_r8NQrmm%lXsbWewV%Ff; zpzSryPmwK`eDtGeLq}cb>_w5PxkUmFUx-!J!gam{|7*^h>o>lFE6S!}SJve_>xgEF zGFpz6tL~1IA}bPa3zNZ9nQ}mUT~C;i?>5nPl8>8j`oj6acIEan%p9S5q ztj%tT=Ioxmup@rp>~>#6!&I_a>uylMT0DK(lF9QWv^8|*qik(|zjSj4Ne0ACV%9Lg z@)|Bgnwi4dkOlfB;Rj^~vnh1R5{}HL>SOB*Ra~}oifh08K@$&}2c)QIAv>en<=+3J h5c}U+s2R`LW6$$_1ff(n$Uk^cAc~p_jdIq}{|7t5g4X~5 literal 4302 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 diff --git a/icons/obj/guns/manufacturer/frontier_import/lefthand.dmi b/icons/obj/guns/manufacturer/frontier_import/lefthand.dmi index eb6c552627eeca7d582ad8b7e4509b3c19fa27da..e34bf3995dfd7516faed4e759cccd31eac540391 100644 GIT binary patch delta 2871 zcmY+`dpOez0|)S#&25zX<)D#kCOJgNWl0VxGS}QM$tfv9Ib-`RDv~?7?Z94DseBkD~Ll>l%Fo@>!0zY*{QzA z&4}MmHWvEJRFoSf2#1t^goR?H51S4?yC1rBj*+i8(m+}stc}pA`!*3>(3tRT?k9z_W_0a#P@V_>tBFmP&R9i+ z(0H##-ZKOJ{}}^sDUod<3CUfFy-tsxB=jyxFsj1-KG7J~Bp09|;vHBfZ=Np|_g=yw z@P5(jyQZD2wZtskxR7{4AObOdL;Xp6at?EL=CD=v5P+Q+ej3XPl@dj2y?P@_gGOe^ zf{@@{!eSwQBl^zClx$+`8q2O7ir=^aBir-{FfCONP}d`FLC08QgNpw9M?Bvv<5`qX z&|pXKd>&f#sE5q}Pmua8%uUbY=0EZ&O7FeB8AGEaspW}ajCv=dTQFMt?yrTM{UepE zp4uzGA)(8*0f^_axOeEEJ$OuWT8cvPsTK91OlFL=8ef2I_&QuPXBR^Gad@7;KZ(oa z`_cO+L$j;XB=;pUL}^++H=-8!;W-V)Vx<#TX6hcX8m3bI-%n9ru1OTnb_@0i{{029 zm_t<>;?Y%tiBaw?a)8>YU2m7xr_{*VB+no+Tv@EwBD_3p*A~V!{)`&H=LKJwVa7ck zQdB{|4A&%kFf@HY8Qgr%-AhngExPLJWO{uFRe7&L(}BRc-(EAXS8dS7*mT!_u)v>n zu(X81@xo=*3M%Lr_o7PKmlD=nx_VhbmuZ!%+Uqu%-r?VYq&k-B?Op69m%FX4Atcn` zmV1uCiko*7_x;t4oMFQLaQjueSWSCU7;VAGOWtqkqDS`^vB>6PIFf;$C%_6HY+)Wt zGZhu5r0J-Oi&EIzS2kUcKx)Ka7M`YsA8jFWkB;%x&j$NiF?sbXldik}15YqLb@Sr!-owXUc= z%w_q%uk=~qo0QD#Y@4)*%q^Iu7BTqYKMn#VxvUx4;^$nAOU#oMl?^ue`sdGy%DQfOr;rClG=|N z@Ir)3U!=oH-@JMXwrXVe&gIW@BJY_k1d80E$pe(;eKR4K_WIMdp?|@%8Gv#ggP7kc zqz>s;)@bD@s~XNUcz@0Tv8s)6r23eSh8_q3UD6q&kg-CH?-*zo>E0e~%aMD^&Z?hR zMt=@Y<#9ik0E*IOGOC8mU?sbheV{fMB_tQMvCx`{fvXzM1}gwDEn6~=&f}>Jn>_&f zFF%dFm-wUYju-%WEUsk`^DKe%bed21W=f$X|;V14-H;Yd%q+jovQ2Iz;}Eg0B3nEF>!BS+BoiB5 z&0V*YC-EiIBe|=G26#O&{cF}Z>qpSw0L0+0~JzYuuU-nGdWiJa1Kb(>1qi-lJwbRZ5ngUTI!s#@_+(bGn zqBT9fQ>zR|B}bQd@4Pr=|5K=6HXo%QPV37AXPShgtVl}A%kOl=56kXK01px%M&`szswG&r(b5=GzTn=E#Hfi2xi;jhxx|}P1*4K> z3RY0v;#z;Jez5h??}1no$k>G`i2cXvQ>x~R%$()*aitgluUQ3L+fY1|JLJ|J!;BOIJWNceV}5g$$)0K^}GhnPa-w!K!qC+kY-?-(Fa zc}-_3h`RYa5^aWxADVW$`=-%jdK+rwRPeXW_a_t4E=@2Ig>2LLN)CdgJ$E4huX7)@eEG?%( zrl-F(JJx^$BvPmR-<~5QsOwj3FP27_?g6edDmyj?m4llNV)A?J=r=u`ECuJ;u^8R$ zv2bCZyVC}uc=OIqma(XgZE?!__l`i`sEF$doq`=`@p^}z$c269yI_(76iIjTpT(-k zJPGkgKNwX-Cnh&+NAF?Q#k6TjS<~X|gBG!7D~j=}5N#UK#0|K6$5Lo|kr&i*(`|%5 z336tW_Ep_M>rs;g)1ACpG@#lqYu&YB0k)Q9I8%7*m}k>;5fLy(gX%A^Eo3!}f3ZH7 z(gYTWomoYaDN+Q;warx--_7G*tZTwYj}+;|6qq`N`w{TPESNXb&V0SDN@dQ(`PUBy NIiGTMsJ9PE`46b}n{xmF delta 2601 zcmV+^3fA?<7rPaZBmr!ZC2cLhz`$N^7{dSn00DGTPE!Ct=GbNc005kNR9JLGWpiV4 zX>fFDZ*Bkpc$|&Uk-{T?BkpFTH_g=Q++Mm~HP=o)kdh5voz!u&mEviEO)iJM6b7v} z{4I$`#vCg>`$`J1l$MDUHyRx-dG|Bv?n=xME#+23C#Or@02rt6LRcR}%Z#+@VwgP? zxMT?753E(&H=ozv@*!>;+6|CL000S9NklK@M(x`_A)gWMYKtg@r8DYA4_7s6*?WF}MFF6Z*jkBDTFHSD06+rvr0s_|=R1Kzf{u%E_WO@{#mBncO7BRs z-`6j6#uzntUVj7JY~EomME) zcUBrk1->GG-=p#x{lGvgsiagY)%Rr@M@m_W{*wGMix^)aowcaYgPlz2g8~n^0#Kwk zQnk`5@D=&qY2QwC1p_JJe*+;BeP2I4pPuC)1_{R}Jq(4uPfnCmu!!*$uvuDNp$C`2 z(^CRofydrdq|qBI*ei!ZzK79jy?k%=eTP)v7thasPtO_>&~SW)gc5yU1vg5-Tg3RP ziWpx9dV*KrF*6HgjOo$=&*Xc^*#!CCGr)PK@9PtEk$?mQ98cQSMnvaek;M0uReBl$ zNAIVQldutw9;ah9 z1CsCQ%&nn_WB@RNH>mdY;VG-_O~oROZ&HhlUWli2@I=q=!|^d(fzzZ-#5t& zug5p}J#dNMGFSd!C){L3YCcU_6!vIX@i+dq?(^K+`DUTeChs_{6&+1ekyzUjlGA%m$$NT=NFg=oc4i2~2MB zB)p~}!ix=LvLSxrig&dt+FwfWb4gz1-zDB)3>hQ_=lH{Y2q$afr#{55$$L6~g8#H2 z!DltogbrF(43Ob?%njD?i;eL!z^5q;Ag(J+^|hG-e|D&tL;U_1XmxyVSh+GUGVr1}phD#h;b8z9Mwd zCoy;pKZC(wFc=I5gTY|@!`P^Q@82F*>iaXg3+0XO=Pq2S@7FP0H)6}~axTzasqfbt z&=ljjEuWctDS_(Z3 z^fHiuPl92fdthw>nR|fakqaG>>-&iSzfQj|T0kMxU{lw2!y~x6R%Vd92VCGO_5B$x z>H8}hwl0HvJby9f!nZHy&P9FM8>E8fWK^in}BLmT7HH?Zr3G`tbB-}Zv&k~@= z5R|h!iW}$Km< z_WsPqz){B{4n73$ml6mT5q;YggBuL%93-DqlK%FXP4Jd|v3TedU-C??At(LNiQbU&Xmd|tV*w0E9h;i{5a zHv|5o@3}@PIpA_w_BAtTTrmqpN%oD_^)30{7r6ZzHV3}qa0*fH!;e`4jcsgLqyZm! z?(ev~D{TLND;xnh!hL`n0~QHL`#Y9heUdZ=H)(4XFlp>}+^^q&U-8@2BUb$OMfq00 z7+!@JOyEVp^e&z#2sOWN(X91&`2%>tjr@u=*--Q6Chb~{kU;t3VW_zG1PEs>-m57L z27|$1Fc=I5gYlkNzjpFA%PdzT?i5~;-?Qp-y8aD+fr1}uEnQ817bKBm!=+YBuMON7 zcB>qG+oUGH3o#gcF9qexg{SUs4V>6NfBc|*t7_M2LoSr>)m`2LxP{Wt;4&gg!LAZT z)FM@%PCykOUt!`XIpTq!6yid(gEDkOYs)JpCCK83g#C-$(hrRPXNtB*Ei4 zh!yH=g8(1(`yk(!>ivDdO7JMp;|QosfG7Pv%J-#ue;=3$^oaoP_4`!5zhztNKndOp z^b2rTXX^cZ03~>@Z!f^B-=%tgAE0@$E`ht8K^Er)`pfb?V>A8(r`mj({$KwC00000 LNkvXXu0mjfz^M*C diff --git a/icons/obj/guns/manufacturer/frontier_import/onmob.dmi b/icons/obj/guns/manufacturer/frontier_import/onmob.dmi index 274aa3a15036a258a2983f672199b1bd6e9a063c..e0b05e0ec63f8b1da3fcab2b5443aebd71ef58b2 100644 GIT binary patch delta 2524 zcmV<22_yF35}_547Y?8Z0{{R3yb+fl00015ktJ0gz`($=EFgjk7D5cNT>t<80d!JM zQvg8b*k%9#0E>~2dw&q4u&4m1rOFDfelFm^0RX;4Q!Xs$FKhq+30_G=K~#90?OSVi z<0uR@4`U~#og|$$>73dB|2J2{O&XgENO3yb-K{=!&Ipih#7kUo*Zq6MShJ#@v~{_1 z(}HnUWZgPs2x~R2n*NOwn#WLd0B`YctQXk!&V#PN+L|kuIe#<05y8HfSr4!x))rlb zdD|{@y=lc~5LzD%s)@BFS7yBaZy3W!1{#feF+e|nU}0^^m0tiHhR_5UhOtrO3}qaG zR9kd42guUw;;@K&8K8jxp;qI{uC?-4+#ExGatV7b9&v#plTr4NDXZZ{jC zm5B-SXf*wAwto-XO{IJ;*7%sWu+3HCO1zmZc`g5&2MxaN@reME&4MN7%IuMeQc#fbUh`Xg$Zi6Ct-J!c~-+utOQ{{3r2CX%_-BK&J;oU5I z-0cnxfW}hDg;BKD$7mSgQY!}-y}j<^oq0ag{c|*eG~Mb`-ZBs1St}FDX673|8;h-B z8HCwZN4XM!g0&@AV-^iC?-tTa0aEIR5+AHBxXOLC11QZ`*JrHDd^JhjHzo@DRRtMg zu&}n^Du4I&e5eD2zp5Yu4AuY!R=Itq-0z>Ojd~@(JXq@h?i&%LQ?2}1+mC&p=l84? zw(s-75L?T95U&xbE~w60VSCWLy~=#cN_wwZ;ST)YDtfP3;U4^-uyxbZUHL!b+ zKD7ABlc$#GWI(wj;{TAg4A5Vvhm?wW&;2fJ&41&ATG<4xl0Lar4`ZM z73$2y*kxKNKCcXuPPh!kN~PF z=6~%&VHBD)JeT-Qbz&h4@3Pr$5;G*uM$Xyh!=^yl+?oGlfZIyl9NLhA&LL{xqsi^k^j>P?!hbL%>Nzshdc6rI>8L?RXOv2 z`@{1+`M-3k6hg)f?hH$`G3Wm#tq`A`b5%QLNTnxV!vV?|+-spw0b^K;@x=vE!1#=m zAhk?|W(@8OitRwKuoeTPs`CNM(Gc^GL!!yb0qp$qVGjU8Ee1#cA{&^4XEwC20r>dDU$mzYlMR#+oau4ewILHBx46r(*Xg+{N zkF_!nemO@NpoRjcoVp4yvOulO1FEUuADJE1(3M|B*3)aBEbHmD&z9BC>poj9XKl#J zu^4y8r8%G6O>|=r=v;J?z&fgzyMMyknJiyoR0N*zIE$88urN8t+J#pcx&#JAP(E+4 zt15uiPdr2DZfcz@%0k}QU? zZ!P{~;|I(HKJk=_H;6g#Edm$L{E`ImgV$VW#{lUtYwPVEb^PCByHcqw1nB<&z$am2 z7oR{EleXUMNe2*ElLpns$C!^N($<@;dO;~)LX#^K!A{beBx^Ei@QS12$Wv;S?If&i z0lb+(4T@JwUAm}_`A*UTxPOL0ecu(NTb(6TG?FhV)t5>6o>+H-+`65XQhm9UvtAvmZClBq#@MW7@xgYv1c-0s zZVD!CA@1^G6_seLRDUbn4$u_uqm1~XDqU4oBUq&R+MQI7p!BY<6~S?Ew?3_}M^JIs z*BFDo`2kNs93)=OB~mNiw8m?btSbq{sQ}PuI;9ms+G^AQ`w)%cS4|oDcPUW-^p2Xu zatcQ=)(*nJIXrCu`2(O!iQJg=ysn4xA<3(#q$G)JvCi4-r+-~a6aZ803gz=urwO2| z-g+Mqz)Oh=VD#RWlk`V4i(lGyBi{+WzP`LH>!uPpK(1Z=J(}F@3WZAmkH_Qb1(oOk zRwM3IL;5WKjSQOz08S-xOSBHgx7sWa?@IGlZ-!Q54**Uja!WKx&09S)1_3-a0sbPp z4gyRia)4CX{C}#{NBQ*iz{jzmwTlz`m`{>(i4*u40K4rx)18Q;F0L*VWwX$i<&Zvv?|z zSvhgtTa$%)KgA-zs0Day02>3T2(Z%v)B-!pH^6Qsz~-l8wNsrY<<|l`OXFl#KNo9K mejzQeOXF7gKgle7N%c`#wFk)39paGXy$;Yo zfKaOmWy*E4w~~&~>_-F;YHOi90$4X#mQ%BRFJlPQ_p~fPD-#p;+33b!P7kN0(Y_aJ ze|#)0YtCXt=xxqyXx_LzIFf_ODPv-(OMs)VT8F> z4lsJV9pkfkzP96YHiER=8dKe}PvD1ECREMr4}NwQd($!qtF3`*B>)9$YoX>M8(`gK zGD-nb>4yp*tgVD9WAzg#tyhm%ta-hfBwjiT1^udu%rIG4TM1RhdcL*+!e3R9e+edQ z0u!rlUnnn^=cdu91Xw2P7{E&>gLJEvUu(yC9LxHiwL<%`oD8wI%?I%wk@|w}tQFb= z^ZqXLzZ|6Zx*hJo{~e8Ry;$G4Z9vuaP`iqMHHLl8FC9+B!hL zEf1*_^Pb0DXwCD3ENrd6@h0(gf1%V0Wi;~U^E0JOj8EX=m6fF6SnsyEd%&TCVyJyU1%^9V^?UU0BMN9a2}(Ww@~1E z#oCJOhIn}=Ar$;$`ftvkeR_xM6>Dn%H=T`nNC4Fo^XZ{73r(7yIeybze^|)FyDX(79#yRtUf7i?Pj{KiaFoU~kXa4VUeZD9Emu{6p$e6+1VTm@D{NJh- z;dXwO^yX_gK?Q@m6-pIwhP4=9%!mTUXQTwFWh%5_aCcDb0Fs5Z7$9}sPgu@| zn17rSO;%6f;GeG-01#?1K$^kDiV7-%v|ajKuU9~YVJ(v9D`2V=e+22&qe3sw7x3Kz zYoR@LEtEk{?~OgWn{!o0IF`Xl4sd3G%@sxK0c?7#l|}IR8exDM3Y=={Ccwx7wXz7P zr-FZEc2q-G{!`>Qz4py=oL>8GIsCltyXAJ*hO8WmaUZxe_mjJcZVm#Si%ybQNBzoB zSi6(_B}PNw4Uem6e~AYRi*u~aqRP-EFeroab%R4S0UUnf8Nw)EIBrB6v1_w#N1k{N z(>Tp4fb&$6T^)c&o_LOYzEAR%?YSl`zSsHoaed&4XBgA@F3n(!ZeoM|C?stY;Mbpc z2CgvW4+3oT;~es;l(kK>L$7#8O|{~U=S7lDW8d5S=gtqF?H+af-($a1%@zXme*oZ<(AdQ%FvO&7n?30O0&mi!+V~jD`9#{b z*`XJd@+~xlG7+34y+v}Qq6V)x8i72OR>eue+8)3!GpIrFYH3Ixs$+SQ^Z*`VP~T4l z=}~71U?@+Le-6OJ%1QCXxG&E5B$=bQn&Autkt)cNct!dR|#yvsukLfLT4r09A94#yF4Gf0-q-JVYwkcL3?erJRE!DDT=X zMr48|faj393K55r|54Qc@*kG<6;@UF#g(?@3t`&QstKH{J^!hQvXh@ z`-0s2IxVI8N~u@9I#%2EibIXFon`gGcD)6N@6>JzCM^?pd$EdIG+vq=z7Eh-zegGI zhpP0cf2x_mD%IB?q;>|S-}-tPoG16yr}ga&D!%n~=AiHX0Z&C7BwjvRq+Yz~&DSnj zR};!p1)$LkN-u+S)TjZDAsWN4nhNso)}jFD9ht;>2}e2BPQt)7JRJb#1E5=r+?n;f zuZQ|2$*ZWOB#CRW&e`Ip-C7g?Q||`l^VFsZe_*K5dLI$MTZ;-{^xoEs^hdOcU;2I{ ze-r%m>*Xcyn_A=mxp(vTXll0&3YP%BzP|qTf?9L{n;CbiDg7b-jU1Z@0In@^PqYul zx7I2UpGteHH$%Iz2LRU=xhGnr=B-^Bg9N^I0sbbx4gyRqa)8v?{BHC|_4Ib)<6O|* zf5nA;EEmZ~ixgkvlD|<@&#|*e@cgv=yCdR3>n#``b>)m#mjUKLR`}|wPOf&g^?}SO^XJg4FQBn(xUp>F--O5QEve;_)hZYpVxg+ Z{ssVfKOIZR;M)KI002ovPDHLkV1mLDMt1-J diff --git a/icons/obj/guns/manufacturer/frontier_import/righthand.dmi b/icons/obj/guns/manufacturer/frontier_import/righthand.dmi index 406c40e66ac6295fe5c07e5efd37189a6df90c4b..30eeaa12d4e94922dc83c649db731c19ecdb65b5 100644 GIT binary patch delta 2790 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 delta 2539 zcmVfFDZ*Bkpc$|&Uk-{T?BkpFTH_g=Q++Mm~HP=o)kdh5voz!u&mEviEO)iJM6b7v} z{4I$`#vCg>`$`J1l$MDUHyRx-dG|Bv?n=xME#+23C#Or@02rt6LRcR}%Z#+@VwgP? zxMT?753E(&H=ozv@*!>;+6|CL000RWNkliNTHR$Xr<{!UEBU+f-Jzaeec3`>!bmwyE|p1>ZEFQ)4)i>M+=$c32G#! z*!QhT=RVykpt_-dvczC4E&(f*RuTX?x!{z8>i{1(;BC^8w)a|HO5pST{l-8)mrvi{ zR|HiTuwZ%!&PFI>Ok3<5V6E!_Ipkhns(vfD|56LHB5*E>r(w9mN;qm|A5N#!qI0}9 zh$0yOx^)dz0{!&0B5*E>=S`cUII5#~IG-+yzO^2ye!Jg)cny4VKlk4%qN1SgA}wQO zkH_Qbd^s;>p!9K|`~Am~MiD>0uNN%4fZ=zzxcC>>Q0TiexZ#J7(|P$KIPNk2h!xi` zgTY`h7z_r3!C){Lj3vmy$1Am8Z{QXF%M5)p+bQ7&{QjH#1HoEg=si6TXhEVh@Ooo< zUP{XEDnNohS&%yWClq`F($ohugZ$u1-&XV*La3Eh&n^>1P_CS z=adS^F4I zJZ5cw(|6S7s7UvC4WAe_u|WJ&3#RMM)PGPHiDf_fn_HEkcc;&OZbtNc!1Xa}n|>%W zgWJ~isYEXypQ!(V1#D#hMfGKd{^SG~(s54PjIV*ggp~RHx&^O3?;i#84E^ck2jEzy z=Lg#Enjb8oVY9;TS1tJC1^+bA?UHSM{-%F_27|$1Fc=I5gTY`h{&kEw?9CLvoNeCT z|Cq5KQ~JZUoHG1l3Vmc?N&of!TcFiN@45NA!y%Ohd{o6^gbokzBli>xw7}aJ3le{RC)mb^l#w51*SQ0^D31FwA4uO13#~!_(1u6e1N}iTVkMt8bHB7&`&i6rJC@6 z0)W@Qf&Wn42;BUrG$1n3pXp7l;sgBIKo6XF!9bzL08Dw(f3tt%a}kl8Po)7mb)#u? z-Hac0lMI;1@0SeVVX86U3jk5S>R%Cu^myXGCoJRxsQ}CwfHDcF_1OScP8^B`(&2+A z2Z?^gzlO3{I1BZ%Isb(Dez=^@anOi=(&VOL{S*8>F`z@er(_`O2Y#IBm;Jk#g=+k* z$6Xqe5hVUSVr{?~xU5MaJ;9$1C`_PeAn9L1@noVu@*ids!_wZsIHtUp$t zV!?j|Sb#!;n?xPI{oLKytpUF}7a973fvA6q@vl%XNY?om;6M_Q??xql-(Bg}Y9aONHH7aiXlvc=VUn3F2v&Kh67-axFZ27_kG)-+fK|S$ zvXin&MX<`lB0)dT@2`hdl{l&b(q)DHDnY-F-(P`h6gT=VtP%7p`TaehLeQ_}_ZbWZ zgTY`h7z_r3@$Uhjuugw}S!=Sr&KB}~Y9XuFx#wFzN_bSfk%2&xB!O|Yqn=R7f>*a1 zcB$Dk78}tt%35HuJb^@burbjD56Vx}fp!-~3tl}+K(nC!2Efipy-(n92ShGz?xPzr z0}XwM(I?Q8ZIaM}PoQK058Wvc+#P%Z{cxA1&GV9H68Gl8B2CjS|;*yyET0jdjlCho2ysJf40G2(WxUr>`((?2kPijhfYX1CYr;+{&_Ej5yS zYGHJSs(U&7(sP%%>B$Z`N)uHaKpb7a363z%TfdM%*wza7^$8Zp9zRnH&V5I=SE1@T z0l5CFYsn6GY$E1=adNTQhAw^A&QEFA!yZqdNG#BRrxx0_qdW9abpXb#{(F9QYg?8d zlO3JQnVL8bU2xHMU03=iBY6tL;*FZ&Gw(xHurOHhLv`URK2YGp3YJc_9*Hjj#f6nK zup$+dMA{3=^l{Mg(E#LR8z#^UKV~hoQ7IqgNrPS38i`wfnEAcZ@TUoHF~xSWB^yu} zd!XC-6ym4*In_GMT9}igbuOtjwk&<4MCtVfq4$7Gpn;w7+%H%{ z?%NJRmfzJXM54w4wh->(@A+coxeJ{F+#sfY{v%3V1=x zcX_8!7z_r3!C){L3d))fEbw+7xz!Sd2R6M%*78T#@z7Vz?aPxJizpHjQL29#DdF!Te0p78U) zx>^^$wQA$*8t(z5=rco~2zpH#Nm5|vKO9KWXNEoz^ogIxGIawq{_fa$1XA>wp-%*T z=I4>O$KuG|*m*>t=o3Rv33}w`70iJ3eRi3^n4u>Gec Date: Tue, 1 Oct 2024 16:40:38 -0500 Subject: [PATCH 067/125] Automatic changelog generation for PR #3433 [ci skip] --- html/changelogs/AutoChangeLog-pr-3433.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3433.yml diff --git a/html/changelogs/AutoChangeLog-pr-3433.yml b/html/changelogs/AutoChangeLog-pr-3433.yml new file mode 100644 index 000000000000..147aa4c2b29c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3433.yml @@ -0,0 +1,7 @@ +author: Bjarl +changes: + - {rscadd: One-Shot Rocket Launcher. A quick solution to an armored problem.} + - {rscadd: You can now scribble profane things onto the tube of your rocket launcher. + Use this power wisely.} + - {imageadd: 'Rye: A sprite for a one-shot rocket launcher'} +delete-after: true From 5cbc595c982b142a4da0902f38ec96d2b2744f0a Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:42:55 -0500 Subject: [PATCH 068/125] The Frontier Ablaze: Ramzi's Molotov Cookbook (#3432) ## About The Pull Request **The World Aflame** ![theworldaflame](https://github.com/user-attachments/assets/75b4f565-ab87-48c2-9526-3ef9f7163204) Molotovs now create turf fires on its own turf and adjacent ones. As Hearthwine does something similar with a trickier conditional (contact), it creates turf fires beyond adjacent turfs now. ## Why It's Good For The Game Molotov's are exceedingly Nothing, and this should ignite An Inferno within every spacer's heart. Burns much less fiercely and causes less firestacks than hearthwine in absence of combustible material, but should be enough to deny people access to chokepoints or to cause a panic. ## Changelog :cl: balance: Molotov cocktails now create turf fires balance: Hearthwine now create turf fires in a 3x3 area /:cl: --- code/modules/food_and_drinks/drinks/drinks/bottle.dm | 8 +++++++- .../reagents/chemistry/reagents/trickwine_reagents.dm | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 49de009448f2..0aa4ac7fad38 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -479,7 +479,13 @@ break if(firestarter && active) hit_atom.fire_act() - new /obj/effect/hotspot(get_turf(hit_atom)) + var/turf/T = get_turf(hit_atom) + T.IgniteTurf(30) + var/turf/otherT + for(var/direction in GLOB.cardinals) + otherT = get_step(T, direction) + otherT.IgniteTurf(30) + new /obj/effect/hotspot(otherT) ..() /obj/item/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 9f907a33b022..ff82cd185fb2 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -126,7 +126,7 @@ T.IgniteTurf(reac_volume) new /obj/effect/hotspot(T, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) var/turf/otherT - for(var/direction in GLOB.cardinals) + for(var/direction in GLOB.alldirs) otherT = get_step(T, direction) otherT.IgniteTurf(reac_volume) new /obj/effect/hotspot(otherT, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) From 89b8f3084cfd1684e116b4b33927b62bddeeab07 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 1 Oct 2024 16:53:41 -0500 Subject: [PATCH 069/125] Automatic changelog generation for PR #3432 [ci skip] --- html/changelogs/AutoChangeLog-pr-3432.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3432.yml diff --git a/html/changelogs/AutoChangeLog-pr-3432.yml b/html/changelogs/AutoChangeLog-pr-3432.yml new file mode 100644 index 000000000000..dc99f431c6d9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3432.yml @@ -0,0 +1,5 @@ +author: generalthrax +changes: + - {balance: Molotov cocktails now create turf fires} + - {balance: Hearthwine now create turf fires in a 3x3 area} +delete-after: true From 67894b957967fdaa11ad5d845bcbda5bc30655b1 Mon Sep 17 00:00:00 2001 From: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:13:16 -0700 Subject: [PATCH 070/125] fixes lints (#3463) --- .github/workflows/ci_suite.yml | 9 +++++---- code/modules/power/apc.dm | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 47f8b1df9941..915b6021e98c 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -11,7 +11,7 @@ on: - master jobs: run_linters: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Run Linters runs-on: ubuntu-22.04 steps: @@ -70,6 +70,7 @@ jobs: ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 - name: Annotate Lints + if: always() uses: yogstation13/DreamAnnotate@v2 with: outputFile: output-annotations.txt @@ -83,7 +84,7 @@ jobs: cat check_regex_output.txt compile_all_maps: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Compile Maps runs-on: ubuntu-latest steps: @@ -105,7 +106,7 @@ jobs: tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS -DFULL_INIT run_all_tests: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Integration Tests strategy: fail-fast: false @@ -135,7 +136,7 @@ jobs: # minor: ${{ matrix.minor }} test_windows: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Windows Build runs-on: windows-latest steps: diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 75cf85513236..4f2d70b680ad 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -217,7 +217,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) // this allows the APC to be embedded in a wall, yet still inside an area if (building) setDir(ndir) - tdir = dir// to fix Vars bug + tdir = dir switch(tdir) if(NORTH) From e78e0072f1f26510d70c36c76a4a3140a98f6bd0 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 2 Oct 2024 01:02:17 +0000 Subject: [PATCH 071/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3345.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3432.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3433.yml | 7 ------- html/changelogs/archive/2024-10.yml | 13 +++++++++++++ 4 files changed, 13 insertions(+), 18 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3345.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3432.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3433.yml diff --git a/html/changelogs/AutoChangeLog-pr-3345.yml b/html/changelogs/AutoChangeLog-pr-3345.yml deleted file mode 100644 index 3da650007188..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3345.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: tmtmtl30, Thgvr -changes: - - {rscadd: 'Added bunkbeds, which can now be crafted with metal or placed by mappers.'} - - {bugfix: Beds facing alternate directions now correctly support people buckling - to them and bedsheets being placed on top of them.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3432.yml b/html/changelogs/AutoChangeLog-pr-3432.yml deleted file mode 100644 index dc99f431c6d9..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3432.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: generalthrax -changes: - - {balance: Molotov cocktails now create turf fires} - - {balance: Hearthwine now create turf fires in a 3x3 area} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3433.yml b/html/changelogs/AutoChangeLog-pr-3433.yml deleted file mode 100644 index 147aa4c2b29c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3433.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Bjarl -changes: - - {rscadd: One-Shot Rocket Launcher. A quick solution to an armored problem.} - - {rscadd: You can now scribble profane things onto the tube of your rocket launcher. - Use this power wisely.} - - {imageadd: 'Rye: A sprite for a one-shot rocket launcher'} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 546d4d7ab402..93a916504a34 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -8,3 +8,16 @@ - bugfix: You can now fit all knives in mining webbings. SomeguyManperson: - bugfix: hallucinations can no longer be permanent unless treated +2024-10-02: + Bjarl: + - rscadd: One-Shot Rocket Launcher. A quick solution to an armored problem. + - rscadd: You can now scribble profane things onto the tube of your rocket launcher. + Use this power wisely. + - imageadd: 'Rye: A sprite for a one-shot rocket launcher' + generalthrax: + - balance: Molotov cocktails now create turf fires + - balance: Hearthwine now create turf fires in a 3x3 area + tmtmtl30, Thgvr: + - rscadd: Added bunkbeds, which can now be crafted with metal or placed by mappers. + - bugfix: Beds facing alternate directions now correctly support people buckling + to them and bedsheets being placed on top of them. From 814fca50818234bc1f1dc14f3933462b83f070be Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:02:24 -0400 Subject: [PATCH 072/125] actually fix defibs (#3471) ## About The Pull Request as title resolves #3469 ## Why It's Good For The Game functional!! ## Changelog :cl: fix: defibs now work again. /:cl: --- code/game/objects/items/defib.dm | 7 +++---- code/modules/surgery/revival.dm | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 517bc9922786..640b4e4a6a0a 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -302,7 +302,6 @@ var/obj/item/defibrillator/defib var/req_defib = TRUE var/combat = FALSE //If it penetrates armor and gives additional functionality - var/wielded = FALSE // track wielded status on item /obj/item/shockpaddles/ComponentInitialize() . = ..() @@ -367,10 +366,10 @@ update_appearance() /obj/item/shockpaddles/update_icon_state() - icon_state = "[base_icon_state][wielded]" + icon_state = "[base_icon_state][HAS_TRAIT(src, TRAIT_WIELDED)]" item_state = icon_state if(cooldown) - icon_state = "[base_icon_state][wielded]_cooldown" + icon_state = "[base_icon_state][HAS_TRAIT(src, TRAIT_WIELDED)]_cooldown" return ..() /obj/item/shockpaddles/dropped(mob/user) @@ -397,7 +396,7 @@ user.visible_message("[defib] beeps: Unit is unpowered.") playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) return - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) if(iscyborg(user)) to_chat(user, "You must activate the paddles in your active module before you can use them on someone!") else diff --git a/code/modules/surgery/revival.dm b/code/modules/surgery/revival.dm index 13e4e3b784c6..7aef39fb5451 100644 --- a/code/modules/surgery/revival.dm +++ b/code/modules/surgery/revival.dm @@ -42,7 +42,7 @@ . = TRUE if(istype(tool, /obj/item/shockpaddles)) var/obj/item/shockpaddles/S = tool - if((S.req_defib && !S.defib.powered) || !S.wielded || S.cooldown || S.busy) + if((S.req_defib && !S.defib.powered) || !HAS_TRAIT(S, TRAIT_WIELDED) || S.cooldown || S.busy) to_chat(user, "You need to wield both paddles, and [S.defib] must be powered!") return FALSE if(istype(tool, /obj/item/melee/baton)) From e0ff860674a34d9261619c672fc4d25ac6490f6e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 2 Oct 2024 18:13:01 -0500 Subject: [PATCH 073/125] Automatic changelog generation for PR #3471 [ci skip] --- html/changelogs/AutoChangeLog-pr-3471.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3471.yml diff --git a/html/changelogs/AutoChangeLog-pr-3471.yml b/html/changelogs/AutoChangeLog-pr-3471.yml new file mode 100644 index 000000000000..0c09f7cf8c41 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3471.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {bugfix: defibs now work again.} +delete-after: true From f4b29c12a16834339ebd4d8823901c1f102ce59b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 3 Oct 2024 01:02:26 +0000 Subject: [PATCH 074/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3471.yml | 4 ---- html/changelogs/archive/2024-10.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3471.yml diff --git a/html/changelogs/AutoChangeLog-pr-3471.yml b/html/changelogs/AutoChangeLog-pr-3471.yml deleted file mode 100644 index 0c09f7cf8c41..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3471.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {bugfix: defibs now work again.} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 93a916504a34..7dff4c0f36d5 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -21,3 +21,6 @@ - rscadd: Added bunkbeds, which can now be crafted with metal or placed by mappers. - bugfix: Beds facing alternate directions now correctly support people buckling to them and bedsheets being placed on top of them. +2024-10-03: + Bjarl: + - bugfix: defibs now work again. From 16321ff255c72a3f59daaec99987ffeecff32c80 Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:03:42 -0700 Subject: [PATCH 075/125] Waste Planet Turf Resprite! (#3473) ## About The Pull Request Does what it says on the tin, redoing all the turf tiles related to the waste planet! ![image](https://github.com/user-attachments/assets/a44e988d-9fbc-4326-aaba-50d0310293a0) ![image](https://github.com/user-attachments/assets/bdb122c8-ac3b-40a5-a98b-b3caa1caa5d5) ## Why It's Good For The Game The previous one was so noisy and grody, it was high time they had a visual update! ## Changelog :cl: PositiveEntropy imageadd: Waste Planet Turfs Now Look Much More Refined! /:cl: --- icons/turf/floors.dmi | Bin 439804 -> 437940 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 398d5550f810b56640ef64bf6d559d7bdc3afec8..1dbb3a101faeacb1ea8dcae9c3ff16558e6ee26c 100644 GIT binary patch delta 56116 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
bT(Qf*h@E@Z%5%K3KDJH3O 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 Z{C}*rz|Z@ibx;5R002ovPDHLkV1mR}cH;m5 From 418538230e1da67112487f7519b6cbdd16b9594e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 01:14:28 -0500 Subject: [PATCH 076/125] Automatic changelog generation for PR #3473 [ci skip] --- html/changelogs/AutoChangeLog-pr-3473.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3473.yml diff --git a/html/changelogs/AutoChangeLog-pr-3473.yml b/html/changelogs/AutoChangeLog-pr-3473.yml new file mode 100644 index 000000000000..6ef0f09fd71e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3473.yml @@ -0,0 +1,4 @@ +author: PositiveEntropy +changes: + - {imageadd: Waste Planet Turfs Now Look Much More Refined!} +delete-after: true From 65904292f3d62f2a40601174ee42403976263ee0 Mon Sep 17 00:00:00 2001 From: thgvr <81882910+thgvr@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:03:46 -0700 Subject: [PATCH 077/125] Big sprite cleanup (#3474) ## About The Pull Request Removing a bunch of unused stuff and cleaning up/moving/organizing files. ## Changelog :cl: add: Added new things add: Added more things del: Removed old things balance: rebalanced something fix: fixed a few things soundadd: added a new sound thingy sounddel: removed an old sound thingy imageadd: added some icons and images imagedel: deleted some icons and images spellcheck: fixed a few typos code: changed some code refactor: refactored some code config: changed some config setting admin: messed with admin stuff server: something server ops should know /:cl: --- .../JungleRuins/jungle_cavecrew.dmm | 4 - .../lavaland_surface_lava_canyon.dmm | 4 - .../ReebeRuins/reebe_floating_island.dmm | 2 - .../RockRuins/rockplanet_shippingdock.dmm | 1 - .../whitesands_surface_camp_combination.dmm | 1 - _maps/RandomRuins/SpaceRuins/astraeus.dmm | 4 - .../SpaceRuins/singularity_lab.dmm | 1 - _maps/RandomRuins/SpaceRuins/spacemall.dmm | 14 - _maps/map_files/generic/CentCom.dmm | 16 +- _maps/outpost/nanotrasen_asteroid.dmm | 1 - .../independent/independent_beluga.dmm | 6 +- .../independent/independent_lagoon.dmm | 7 - .../independent/independent_tranquility.dmm | 2 - .../shuttles/nanotrasen/nanotrasen_heron.dmm | 1 - .../shuttles/nanotrasen/nanotrasen_mimir.dmm | 1 - .../shuttles/nanotrasen/nanotrasen_osprey.dmm | 6 +- .../shuttles/nanotrasen/nanotrasen_ranger.dmm | 1 - .../nanotrasen/nanotrasen_skipper.dmm | 2 +- code/__DEFINES/species_clothing_defines.dm | 2 +- code/__DEFINES/traits.dm | 2 - code/controllers/subsystem/traumas.dm | 7 +- .../components/crafting/recipes/clothing.dm | 10 - code/datums/components/slippery.dm | 11 - code/datums/looping_sounds/item_sounds.dm | 11 - .../game/gamemodes/clown_ops/bananium_bomb.dm | 5 - code/game/gamemodes/clown_ops/clown_ops.dm | 1 - .../game/gamemodes/clown_ops/clown_weapons.dm | 42 --- code/game/machinery/computer/arcade.dm | 2 - code/game/machinery/washing_machine.dm | 4 - code/game/mecha/mecha_construction_paths.dm | 4 - code/game/objects/effects/spawners/bundle.dm | 36 --- .../game/objects/effects/spawners/lootdrop.dm | 7 +- .../objects/items/devices/PDA/PDA_types.dm | 1 - .../items/devices/reverse_bear_trap.dm | 130 --------- code/game/objects/items/food/cake.dm | 8 - code/game/objects/items/gift.dm | 4 - .../objects/items/grenades/discogrenade.dm | 4 - code/game/objects/items/miscellaneous.dm | 1 - code/game/objects/items/religion.dm | 34 --- .../objects/items/stacks/sheets/leather.dm | 19 -- .../items/stacks/sheets/sheet_types.dm | 2 - code/game/objects/items/storage/backpack.dm | 1 - code/game/objects/items/storage/toolbox.dm | 2 - code/game/objects/items/toys.dm | 1 - .../crates_lockers/closets/job_closets.dm | 4 - .../crates_lockers/closets/secure/security.dm | 5 - .../crates_lockers/closets/wardrobe.dm | 2 - code/modules/antagonists/cult/cult_items.dm | 21 -- .../antagonists/cult/cult_structures.dm | 2 +- code/modules/antagonists/gang/gang.dm | 11 +- code/modules/antagonists/gang/outfits.dm | 1 - .../antagonists/wizard/equipment/artefact.dm | 1 - code/modules/antagonists/wizard/wizard.dm | 2 - .../awaymissions/mission_code/Academy.dm | 18 -- .../blackmarket/blackmarket_items/clothing.dm | 10 - code/modules/cargo/exports/lavaland.dm | 2 - code/modules/cargo/packs/costumes_toys.dm | 20 +- .../modules/client/loadout/loadout_eyewear.dm | 4 - code/modules/client/loadout/loadout_hat.dm | 4 - code/modules/client/loadout/loadout_suit.dm | 8 - code/modules/clothing/factions/nanotrasen.dm | 2 +- code/modules/clothing/glasses/_glasses.dm | 135 +-------- code/modules/clothing/glasses/hud.dm | 20 -- code/modules/clothing/head/beanie.dm | 16 - code/modules/clothing/head/berets.dm | 12 - code/modules/clothing/head/collectable.dm | 40 --- code/modules/clothing/head/jobs.dm | 48 --- code/modules/clothing/head/misc.dm | 226 --------------- code/modules/clothing/head/misc_special.dm | 150 ---------- .../clothing/outfits/factions/independent.dm | 2 - code/modules/clothing/outfits/standard.dm | 19 -- code/modules/clothing/shoes/bananashoes.dm | 68 ----- code/modules/clothing/shoes/miscellaneous.dm | 166 ----------- code/modules/clothing/suits/chaplainsuits.dm | 66 ----- code/modules/clothing/suits/cloaks.dm | 16 - code/modules/clothing/suits/hoodies.dm | 4 + code/modules/clothing/suits/jobs.dm | 18 -- code/modules/clothing/suits/miscellaneous.dm | 274 ------------------ code/modules/clothing/suits/wiz_robe.dm | 107 ------- .../recipes/tablecraft/recipes_soup.dm | 1 - code/modules/holiday/easter.dm | 25 +- code/modules/holiday/holidays.dm | 1 - code/modules/hydroponics/grown/banana.dm | 9 - code/modules/jobs/job_types/clown.dm | 3 +- .../jobs/job_types/head_of_personnel.dm | 1 - code/modules/mining/abandoned_crates.dm | 1 - .../mining/lavaland/necropolis_chests.dm | 5 +- code/modules/mining/machine_vending.dm | 1 - .../simple_animal/friendly/farm_animals.dm | 2 +- .../living/simple_animal/friendly/penguin.dm | 8 - .../simple_animal/hostile/human/skeleton.dm | 1 - .../hostile/mining_mobs/hivelord_outfits.dm | 2 - code/modules/mod/modules/modules_general.dm | 4 - .../chemistry/reagents/other_reagents.dm | 6 - .../xenobiology/crossbreeding/_clothing.dm | 64 ---- .../xenobiology/crossbreeding/chilling.dm | 3 +- code/modules/spells/spell.dm | 4 +- code/modules/spells/spell_types/lichdom.dm | 4 - code/modules/unit_tests/icons/worn_icons.dm | 2 +- code/modules/uplink/uplink_items.dm | 19 -- code/modules/vehicles/cars/clowncar.dm | 3 +- code/modules/vending/autodrobe.dm | 39 +-- code/modules/vending/clothesmate.dm | 9 - code/modules/vending/wardrobes.dm | 22 +- icons/mob/actions/actions_flightsuit.dmi | Bin 1739 -> 0 bytes icons/mob/clothing/eyes.dmi | Bin 15900 -> 0 bytes icons/mob/clothing/eyes/eyes.dmi | Bin 0 -> 10080 bytes icons/mob/clothing/feet.dmi | Bin 18382 -> 4534 bytes icons/mob/clothing/head.dmi | Bin 129203 -> 85634 bytes icons/mob/clothing/head/winterhood.dmi | Bin 14500 -> 17841 bytes icons/mob/clothing/suit.dmi | Bin 89666 -> 38892 bytes icons/mob/clothing/suits/hooded.dmi | Bin 65925 -> 42502 bytes icons/mob/clothing/suits/spacesuits.dmi | Bin 140523 -> 140497 bytes icons/obj/clothing/eyes/eyes.dmi | Bin 0 -> 9368 bytes icons/obj/clothing/flightsuit.dmi | Bin 9513 -> 0 bytes icons/obj/clothing/glasses.dmi | Bin 17750 -> 0 bytes icons/obj/clothing/hats.dmi | Bin 70350 -> 44391 bytes icons/obj/clothing/head/winterhood.dmi | Bin 5642 -> 6780 bytes icons/obj/clothing/shoes.dmi | Bin 14306 -> 8724 bytes icons/obj/clothing/suits.dmi | Bin 38220 -> 17578 bytes icons/obj/clothing/suits/hooded.dmi | Bin 22808 -> 12561 bytes shiptest.dme | 4 +- 122 files changed, 40 insertions(+), 2132 deletions(-) delete mode 100644 code/game/objects/items/devices/reverse_bear_trap.dm delete mode 100644 code/modules/clothing/shoes/bananashoes.dm delete mode 100644 icons/mob/actions/actions_flightsuit.dmi delete mode 100644 icons/mob/clothing/eyes.dmi create mode 100644 icons/mob/clothing/eyes/eyes.dmi create mode 100644 icons/obj/clothing/eyes/eyes.dmi delete mode 100644 icons/obj/clothing/flightsuit.dmi delete mode 100644 icons/obj/clothing/glasses.dmi diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index 063922d0d88e..d40ca2c82b27 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -1509,10 +1509,6 @@ }, /area/ruin/jungle/cavecrew/dormitories) "sJ" = ( -/obj/item/clothing/head/crown/fancy{ - pixel_y = 9; - pixel_x = 6 - }, /obj/structure/table/reinforced{ color = "#c1b6a5" }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm index a5547c39e8fd..92fa7dfb9203 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm @@ -150,10 +150,6 @@ pixel_x = -5; pixel_y = 12 }, -/obj/item/clothing/head/witchunter{ - pixel_y = 13; - pixel_x = -5 - }, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, /area/overmap_encounter/planetoid/lava/explored) diff --git a/_maps/RandomRuins/ReebeRuins/reebe_floating_island.dmm b/_maps/RandomRuins/ReebeRuins/reebe_floating_island.dmm index 2313a8e91d96..d1d0cc588c9a 100644 --- a/_maps/RandomRuins/ReebeRuins/reebe_floating_island.dmm +++ b/_maps/RandomRuins/ReebeRuins/reebe_floating_island.dmm @@ -28,9 +28,7 @@ /obj/item/ammo_casing/caseless/arrow/bronze, /obj/item/ammo_casing/caseless/arrow/bronze, /obj/item/ammo_casing/caseless/arrow/bronze, -/obj/item/clothing/suit/bronze, /obj/item/clothing/head/bronze, -/obj/item/clothing/shoes/bronze, /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal, /turf/open/floor/bronze, /area/ruin/reebe) diff --git a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm index 342b1422b80f..3394913e2d2d 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm @@ -4356,7 +4356,6 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/effect/spawner/bundle/costume/marisawizard, /turf/open/floor/plasteel/mono/white, /area/ruin/rockplanet/shippingdockwarehouse) "Kt" = ( diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm index d6238dcf237b..b903fd3cce78 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm @@ -400,7 +400,6 @@ /area/ruin) "nZ" = ( /obj/structure/table, -/obj/item/clothing/glasses/meson/gar, /turf/open/floor/concrete, /area/ruin) "ox" = ( diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm index 655aff67aa1c..2c62420cef30 100644 --- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm +++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm @@ -1710,10 +1710,6 @@ /turf/closed/wall/r_wall, /area/ruin/space/has_grav/astraeus/munitions) "TS" = ( -/obj/item/clothing/shoes/clown_shoes{ - pixel_x = -3; - pixel_y = 12 - }, /obj/machinery/airalarm/directional/south, /obj/item/storage/crayons{ pixel_y = -6 diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 7dd57c637f35..afec0282e917 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -7373,7 +7373,6 @@ name = "Prototype Storage" }, /obj/item/gun/energy/laser/captain, -/obj/item/clothing/shoes/wheelys, /obj/structure/sign/poster/retro/lasergun_new{ pixel_y = 32 }, diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 3be5be2fdce0..db3f30c15f76 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -1268,9 +1268,6 @@ /area/ruin/space/has_grav/spacemall/dorms) "eO" = ( /obj/effect/turf_decal/corner/opaque/blue/half, -/obj/item/clothing/suit/whitedress, -/obj/item/clothing/suit/whitedress, -/obj/item/clothing/suit/whitedress, /obj/item/clothing/under/dress/blacktango{ pixel_y = 3 }, @@ -2804,12 +2801,7 @@ /area/ruin/space/has_grav/spacemall) "kC" = ( /obj/structure/rack, -/obj/item/clothing/head/goatpelt, -/obj/item/clothing/head/hardhat/reindeer, /obj/item/clothing/head/collectable/chef, -/obj/item/clothing/head/collectable/HoP, -/obj/item/clothing/head/collectable/rabbitears, -/obj/item/clothing/head/witchunter, /obj/item/clothing/neck/cloak/trans, /obj/item/clothing/neck/cloak/cap, /obj/item/clothing/neck/beads, @@ -4310,8 +4302,6 @@ /obj/item/clothing/glasses/heat{ pixel_y = -6 }, -/obj/item/clothing/glasses/sunglasses/gar/supergar, -/obj/item/clothing/glasses/monocle, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/glasses/sunglasses, @@ -9805,10 +9795,6 @@ pixel_y = 5; pixel_x = 2 }, -/obj/item/clothing/head/spacepolice{ - pixel_y = -3; - pixel_x = 4 - }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/spacemall/dorms) "Li" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 2f651ffb4025..d7715e22b561 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2107,12 +2107,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, /area/centcom/control) -"awU" = ( -/obj/item/clothing/suit/wizrobe/black, -/obj/item/clothing/head/wizard/black, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel, -/area/wizard_station) "awV" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -2330,8 +2324,6 @@ /area/wizard_station) "ayF" = ( /obj/structure/table/wood, -/obj/item/clothing/suit/wizrobe/magusblue, -/obj/item/clothing/head/wizard/magus, /obj/item/staff, /obj/structure/mirror/magic{ pixel_y = 28 @@ -2341,8 +2333,6 @@ /area/wizard_station) "ayG" = ( /obj/structure/table/wood, -/obj/item/clothing/suit/wizrobe/magusred, -/obj/item/clothing/head/wizard/magus, /obj/item/staff, /turf/open/floor/plasteel, /area/wizard_station) @@ -2415,8 +2405,6 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/clothing/suit/wizrobe/red, -/obj/item/clothing/head/wizard/red, /obj/item/staff, /obj/item/clothing/shoes/sandal/magic, /turf/open/floor/plasteel, @@ -2472,8 +2460,6 @@ /area/wizard_station) "azP" = ( /obj/item/clothing/shoes/sandal/marisa, -/obj/item/clothing/suit/wizrobe/marisa, -/obj/item/clothing/head/wizard/marisa, /obj/item/staff/broom, /turf/open/floor/plasteel, /area/wizard_station) @@ -22454,7 +22440,7 @@ aqZ aqZ aqZ aqE -awU +aXi ayg aHq aqE diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index f537143c31e9..d5af45bfef2d 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -14514,7 +14514,6 @@ "Zb" = ( /obj/structure/closet/secure_closet/freezer/wall/directional/east, /obj/item/clothing/under/shorts/cookjorts, -/obj/item/clothing/shoes/cookflops, /obj/item/clothing/suit/toggle/chef, /obj/item/clothing/under/rank/civilian/chef, /obj/item/clothing/under/rank/civilian/chef/skirt, diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index ca90adbeabe5..c283c0d21584 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -666,7 +666,7 @@ /obj/item/clothing/glasses/sunglasses/big, /obj/item/clothing/suit/toggle/lawyer/burgundy, /obj/item/clothing/suit/toggle/lawyer/navy, -/obj/item/clothing/head/hopcap, +/obj/item/clothing/head/nanotrasen/officer, /obj/item/gun/energy/e_gun/mini, /obj/item/clothing/head/HoS/cowboy, /obj/item/clothing/suit/jacket/leather/duster/command, @@ -3910,7 +3910,6 @@ }, /obj/machinery/light/small/directional/west, /obj/item/clothing/under/suit/charcoal, -/obj/item/clothing/glasses/monocle, /obj/item/clothing/shoes/laceup{ pixel_y = -11 }, @@ -4985,9 +4984,6 @@ /obj/item/clothing/shoes/sneakers/black, /obj/item/clothing/shoes/sneakers/black, /obj/item/clothing/accessory/waistcoat, -/obj/item/clothing/shoes/cookflops{ - pixel_y = -11 - }, /turf/open/floor/carpet/nanoweave/beige, /area/ship/crew/dorm) "Xn" = ( diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm index 1c8c2307a7e8..5130aed76be3 100644 --- a/_maps/shuttles/independent/independent_lagoon.dmm +++ b/_maps/shuttles/independent/independent_lagoon.dmm @@ -1171,9 +1171,6 @@ "hT" = ( /obj/structure/table/wood, /obj/item/clothing/mask/gas/clown_hat, -/obj/item/bikehorn, -/obj/item/clothing/shoes/clown_shoes, -/obj/item/megaphone/clown, /obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter, /obj/item/radio/intercom/directional/south, /turf/open/floor/carpet/nanoweave/purple, @@ -6719,10 +6716,6 @@ /area/ship/hallway/aft) "TX" = ( /obj/structure/table, -/obj/item/clothing/shoes/wheelys{ - pixel_x = 4; - pixel_y = 9 - }, /obj/item/skateboard/hoverboard{ pixel_x = -4 }, diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index fe5a2993e2fc..020de62890e7 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -1329,9 +1329,7 @@ /obj/item/clothing/under/dress/skirt/red, /obj/item/clothing/suit/longcoat, /obj/item/clothing/suit/jacket/letterman_red, -/obj/item/clothing/head/wizard/marisa, /obj/item/clothing/head/soft/mime, -/obj/item/clothing/shoes/wheelys, /obj/item/clothing/shoes/sandal, /obj/item/clothing/shoes/sneakers/black, /turf/open/floor/carpet/green, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index 7d8db3ebb68b..a5673c22d7bc 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -4136,7 +4136,6 @@ "pk" = ( /obj/structure/closet/secure_closet/freezer/wall/directional/east, /obj/item/clothing/under/shorts/cookjorts, -/obj/item/clothing/shoes/cookflops, /obj/item/clothing/suit/toggle/chef, /obj/item/clothing/under/rank/civilian/chef, /obj/item/clothing/under/rank/civilian/chef/skirt, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index aa2a0aad5b1f..716d68f653a9 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -4102,7 +4102,6 @@ /area/ship/crew/dorm) "yu" = ( /obj/item/clothing/mask/gas/monkeymask, -/obj/item/clothing/suit/monkeysuit, /turf/open/floor/plating, /area/ship/maintenance/fore) "yw" = ( diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index e99a4cd360a8..4079e386726f 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -1032,7 +1032,8 @@ /obj/item/clothing/suit/armor/nanotrasen/captain, /obj/item/clothing/suit/armor/nanotrasen/captain/parade, /obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/caphat/nt, +/obj/item/clothing/head/nanotrasen/captain/peaked, +/obj/item/clothing/head/nanotrasen/captain, /obj/item/storage/belt/sabre, /obj/item/assembly/flash/handheld, /obj/item/disk/nuclear/fake{ @@ -2596,7 +2597,6 @@ /obj/item/clothing/suit/toggle/chef, /obj/item/clothing/accessory/waistcoat, /obj/item/clothing/head/chefhat, -/obj/item/clothing/head/bowler, /obj/item/storage/box/drinkingglasses, /obj/item/storage/fancy/candle_box, /obj/item/radio/intercom/directional/east, @@ -5261,7 +5261,7 @@ /obj/item/clothing/suit/armor/vest/hop, /obj/item/clothing/gloves/color/white, /obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/hopcap/nt, +/obj/item/clothing/head/nanotrasen/officer, /obj/item/assembly/flash/handheld, /obj/item/storage/box/ids, /obj/item/storage/box/PDAs, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index 4e194b4bdb98..07b8722e5e7b 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -231,7 +231,6 @@ /area/ship/hallway/central) "bw" = ( /obj/structure/closet/secure_closet/lp/security, -/obj/item/clothing/glasses/sunglasses/gar, /obj/item/melee/classic_baton/telescopic, /obj/item/flashlight/seclite, /obj/item/melee/knife/survival, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index a8f5bc22c7f4..b4ae5230cc7b 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -1513,7 +1513,7 @@ /obj/item/storage/backpack/satchel/leather, /obj/item/clothing/shoes/laceup, /obj/item/clothing/suit/armor/vest/hop, -/obj/item/clothing/head/hopcap/nt, +/obj/item/clothing/head/nanotrasen/officer/fedora, /obj/item/storage/box/ids, /obj/item/storage/box/PDAs, /obj/item/assembly/flash/handheld, diff --git a/code/__DEFINES/species_clothing_defines.dm b/code/__DEFINES/species_clothing_defines.dm index 937adf6b7cdd..6f07a76c8293 100644 --- a/code/__DEFINES/species_clothing_defines.dm +++ b/code/__DEFINES/species_clothing_defines.dm @@ -12,7 +12,7 @@ #define DEFAULT_HEAD_PATH 'icons/mob/clothing/head.dmi' #define DEFAULT_NECK_PATH 'icons/mob/clothing/neck.dmi' #define DEFAULT_GLOVES_PATH 'icons/mob/clothing/hands.dmi' -#define DEFAULT_GLASSES_PATH 'icons/mob/clothing/eyes.dmi' +#define DEFAULT_GLASSES_PATH 'icons/mob/clothing/eyes/eyes.dmi' #define DEFAULT_BELT_PATH 'icons/mob/clothing/belt.dmi' ///VOX PATHS diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 4925981b2a91..b70318482a39 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -403,14 +403,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define STICKY_MOUSTACHE_TRAIT "sticky-moustache" #define CHAINSAW_FRENZY_TRAIT "chainsaw-frenzy" #define CHRONO_GUN_TRAIT "chrono-gun" -#define REVERSE_BEAR_TRAP_TRAIT "reverse-bear-trap" #define CURSED_MASK_TRAIT "cursed-mask" #define HAND_REPLACEMENT_TRAIT "magic-hand" #define HOT_POTATO_TRAIT "hot-potato" #define ABDUCTOR_VEST_TRAIT "abductor-vest" #define CAPTURE_THE_FLAG_TRAIT "capture-the-flag" #define EYE_OF_GOD_TRAIT "eye-of-god" -#define SHAMEBRERO_TRAIT "shamebrero" #define CHRONOSUIT_TRAIT "chronosuit" #define LOCKED_HELMET_TRAIT "locked-helmet" #define NINJA_SUIT_TRAIT "ninja-suit" diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 333dee323e87..e98956775698 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -68,7 +68,7 @@ SUBSYSTEM_DEF(traumas) /obj/machinery/door/airlock/security, /obj/effect/hallucination/simple/securitron)), "clowns" = typecacheof(list( - /obj/item/clothing/under/rank/civilian/clown, /obj/item/clothing/shoes/clown_shoes, + /obj/item/clothing/under/rank/civilian/clown, /obj/item/clothing/mask/gas/clown_hat, /obj/item/instrument/bikehorn, /obj/item/pda/clown, /obj/item/grown/bananapeel, /obj/item/reagent_containers/food/snacks/cheesiehonkers, /obj/item/trash/cheesie)), @@ -113,7 +113,7 @@ SUBSYSTEM_DEF(traumas) /obj/structure/sign/departments/medbay, /obj/machinery/door/airlock/medical, /obj/machinery/sleeper, /obj/machinery/stasis, /obj/machinery/dna_scannernew, /obj/machinery/atmospherics/components/unary/cryo_cell, /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, - /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/head/plaguedoctorhat, /obj/item/clothing/mask/gas/plaguedoctor)), + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/mask/gas/plaguedoctor)), "authority" = typecacheof(list( /obj/item/clothing/under/rank/command/captain, /obj/item/clothing/under/rank/command/head_of_personnel, @@ -126,7 +126,7 @@ SUBSYSTEM_DEF(traumas) "the supernatural" = typecacheof(list( /obj/structure/destructible/cult, /obj/item/tome, /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult, - /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, + /obj/effect/rune, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, /obj/item/soulstone, /obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff, @@ -146,7 +146,6 @@ SUBSYSTEM_DEF(traumas) "birds" = typecacheof(list( /obj/item/clothing/mask/gas/plaguedoctor, /obj/item/reagent_containers/food/snacks/cracker, - /obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken, /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask)), "anime" = typecacheof(list( diff --git a/code/datums/components/crafting/recipes/clothing.dm b/code/datums/components/crafting/recipes/clothing.dm index e574337f9861..1aa1570df419 100644 --- a/code/datums/components/crafting/recipes/clothing.dm +++ b/code/datums/components/crafting/recipes/clothing.dm @@ -213,13 +213,3 @@ reqs = list(/obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/animalhide/goliath_hide = 2) category = CAT_CLOTHING - -/datum/crafting_recipe/polarbearcloak - name = "Polar Cloak" - result = /obj/item/clothing/suit/hooded/cloak/goliath/polar - time = 50 - reqs = list(/obj/item/stack/sheet/leather = 2, - /obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 2) - blacklist = list(/obj/item/stack/sheet/animalhide/goliath_hide) - category = CAT_CLOTHING diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 5c2c88ccfee7..c31ba2bd50e5 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -93,14 +93,3 @@ /datum/component/slippery/proc/Slip_on_wearer(datum/source, atom/movable/arrived) SIGNAL_HANDLER - -/// Used for making the clown PDA only slip if the clown is wearing his shoes and the elusive banana-skin belt -/datum/component/slippery/clowning - -/datum/component/slippery/clowning/Slip_on_wearer(datum/source, atom/movable/AM) - var/obj/item/I = holder.get_item_by_slot(ITEM_SLOT_FEET) - if(holder.body_position == LYING_DOWN && !holder.buckled) - if(istype(I, /obj/item/clothing/shoes/clown_shoes)) - Slip(source, AM) - else - to_chat(AM,"[parent] failed to slip anyone. Perhaps I shouldn't have abandoned my legacy...") diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index 96c2ec7533c3..7eeabf513b8e 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -36,17 +36,6 @@ #undef RAD_GEIGER_MEDIUM #undef RAD_GEIGER_HIGH -/datum/looping_sound/reverse_bear_trap - mid_sounds = list('sound/effects/clock_tick.ogg') - mid_length = 3.5 - volume = 25 - - -/datum/looping_sound/reverse_bear_trap_beep - mid_sounds = list('sound/machines/beep.ogg') - mid_length = 60 - volume = 10 - /datum/looping_sound/siren mid_sounds = list('sound/items/weeoo1.ogg' = 1) mid_length = 15 diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm index 01c270895360..74178f248436 100644 --- a/code/game/gamemodes/clown_ops/bananium_bomb.dm +++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm @@ -43,11 +43,6 @@ ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) H.equip_to_slot_or_del(C, ITEM_SLOT_ICLOTHING) - if(!H.shoes || H.dropItemToGround(H.shoes)) - C = new /obj/item/clothing/shoes/clown_shoes(H) - ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, ITEM_SLOT_FEET) - if(!H.wear_mask || H.dropItemToGround(H.wear_mask)) C = new /obj/item/clothing/mask/gas/clown_hat(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 1db631f18aa7..87dc3b65d438 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -29,7 +29,6 @@ /datum/outfit/syndicate/clownop name = "Clown Operative - Basic" uniform = /obj/item/clothing/under/syndicate - shoes = /obj/item/clothing/shoes/clown_shoes/combat mask = /obj/item/clothing/mask/gas/clown_hat gloves = /obj/item/clothing/gloves/combat back = /obj/item/storage/backpack/clown diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 3064a52a48ad..a3226e864aa7 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -10,48 +10,6 @@ volume = 30 list_reagents = list(/datum/reagent/lube = 30) -//COMBAT CLOWN SHOES -//Clown shoes with combat stats and noslip. Of course they still squeak. -/obj/item/clothing/shoes/clown_shoes/combat - name = "combat clown shoes" - desc = "advanced clown shoes that protect the wearer and render them nearly immune to slipping on their own peels. They also squeak at 100% capacity." - clothing_flags = NOSLIP - slowdown = SHOES_SLOWDOWN - armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 10, "rad" = 0, "fire" = 70, "acid" = 50) - strip_delay = 70 - resistance_flags = NONE - permeability_coefficient = 0.05 - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes - -//The super annoying version -/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - name = "mk-honk combat shoes" - desc = "The culmination of years of clown combat research, these shoes leave a trail of chaos in their wake. They will slowly recharge themselves over time, or can be manually charged with bananium." - slowdown = SHOES_SLOWDOWN - armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 10, "rad" = 0, "fire" = 70, "acid" = 50) - strip_delay = 70 - resistance_flags = NONE - permeability_coefficient = 0.05 - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes - always_noslip = TRUE - var/max_recharge = 3000 //30 peels worth - var/recharge_rate = 34 //about 1/3 of a peel per tick - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/Initialize() - . = ..() - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - bananium.insert_amount_mat(max_recharge, /datum/material/hellstone) - START_PROCESSING(SSobj, src) - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/process() - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - var/bananium_amount = bananium.get_material_amount(/datum/material/hellstone) - if(bananium_amount < max_recharge) - bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/hellstone) - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/attack_self(mob/user) - ui_action_click(user) - //BANANIUM SWORD /obj/item/melee/transforming/energy/sword/bananium diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 24f66242d58e..2389b699e7b9 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -44,7 +44,6 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/extendohand/acme = 1, /obj/item/hot_potato/harmless/toy = 1, /obj/item/card/emagfake = 1, - /obj/item/clothing/shoes/wheelys = 2, /obj/item/clothing/shoes/kindleKicks = 2, /obj/item/toy/plush/goatplushie/angry/realgoat = 2, /obj/item/toy/plush/moth = 2, @@ -295,7 +294,6 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( if(obj_flags & EMAGGED) new /obj/effect/spawner/newbomb/timer/syndicate(loc) - new /obj/item/clothing/head/collectable/petehat(loc) message_admins("[ADMIN_LOOKUPFLW(usr)] has outbombed Cuban Pete and been awarded a bomb.") log_game("[key_name(usr)] has outbombed Cuban Pete and been awarded a bomb.") Reset() diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 1d6a9e3845b8..4f32fe1d2d3d 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -233,10 +233,6 @@ GLOBAL_LIST_INIT(dye_registry, list( new /obj/item/stack/sheet/wethide(drop_location(), amount) qdel(src) -/obj/item/clothing/suit/hooded/ian_costume/machine_wash(obj/machinery/washing_machine/WM) - new /obj/item/reagent_containers/food/snacks/meat/slab/corgi(loc) - qdel(src) - /mob/living/simple_animal/pet/machine_wash(obj/machinery/washing_machine/WM) WM.bloody_mess = TRUE gib() diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 5172619ba022..7a3c67140b5e 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -760,10 +760,6 @@ list( "key" = /obj/item/bikehorn ), - list( - "key" = /obj/item/clothing/shoes/clown_shoes, - "action" = ITEM_DELETE - ), list( "key" = /obj/item/bikehorn ), diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index edab392613f3..e4f36e8b827d 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -12,13 +12,6 @@ for(var/path in items) new path(loc) -/obj/effect/spawner/bundle/costume/chicken - name = "chicken costume spawner" - items = list( - /obj/item/clothing/suit/chickensuit, - /obj/item/clothing/head/chicken, - /obj/item/reagent_containers/food/snacks/egg) - /obj/effect/spawner/bundle/costume/gladiator name = "gladiator costume spawner" items = list( @@ -72,7 +65,6 @@ name = "prig costume spawner" items = list( /obj/item/clothing/accessory/waistcoat, - /obj/item/clothing/glasses/monocle, /obj/effect/spawner/lootdrop/minor/bowler_or_that, /obj/item/clothing/shoes/sneakers/black, /obj/item/cane, @@ -83,7 +75,6 @@ name = "plague doctor costume spawner" items = list( /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, - /obj/item/clothing/head/plaguedoctorhat, /obj/item/clothing/mask/gas/plaguedoctor) /obj/effect/spawner/bundle/costume/nightowl @@ -108,39 +99,12 @@ /obj/effect/spawner/lootdrop/minor/pirate_or_bandana, /obj/item/clothing/glasses/eyepatch) -/obj/effect/spawner/bundle/costume/imperium_monk - name = "imperium monk costume spawner" - items = list( - /obj/item/clothing/suit/imperium_monk, - /obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask) - -/obj/effect/spawner/bundle/costume/holiday_priest - name = "holiday priest costume spawner" - items = list( - /obj/item/clothing/suit/chaplainsuit/holidaypriest) - -/obj/effect/spawner/bundle/costume/marisawizard - name = "marisa wizard costume spawner" - items = list( - /obj/item/clothing/shoes/sandal/marisa, - /obj/item/clothing/head/wizard/marisa/fake, - /obj/item/clothing/suit/wizrobe/marisa/fake) - /obj/effect/spawner/bundle/costume/cutewitch name = "cute witch costume spawner" items = list( /obj/item/clothing/under/dress/sundress, - /obj/item/clothing/head/witchwig, /obj/item/staff/broom) -/obj/effect/spawner/bundle/costume/wizard - name = "wizard costume spawner" - items = list( - /obj/item/clothing/shoes/sandal, - /obj/item/clothing/suit/wizrobe/fake, - /obj/item/clothing/head/wizard/fake, - /obj/item/staff) - /obj/effect/spawner/bundle/costume/mafia name = "black mafia outfit spawner" items = list( diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 2caecd950a9f..364ddeb72298 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -279,20 +279,17 @@ /obj/effect/spawner/lootdrop/minor/beret_or_rabbitears name = "beret or rabbit ears spawner" loot = list( - /obj/item/clothing/head/beret = 1, - /obj/item/clothing/head/rabbitears = 1) + /obj/item/clothing/head/beret = 1) /obj/effect/spawner/lootdrop/minor/bowler_or_that name = "bowler or top hat spawner" loot = list( - /obj/item/clothing/head/bowler = 1, /obj/item/clothing/head/that = 1) /obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears name = "kitty ears or rabbit ears spawner" loot = list( - /obj/item/clothing/head/kitty = 1, - /obj/item/clothing/head/rabbitears = 1) + /obj/item/clothing/head/kitty = 1) /obj/effect/spawner/lootdrop/minor/pirate_or_bandana name = "pirate hat or bandana spawner" diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index c8a918732a9d..4a7817c5eb60 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -10,7 +10,6 @@ /obj/item/pda/clown/ComponentInitialize() . = ..() - AddComponent(/datum/component/slippery/clowning, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src, PROC_REF(AfterSlip))) AddComponent(/datum/component/wearertargeting/sitcomlaughter, CALLBACK(src, PROC_REF(after_sitcom_laugh))) /obj/item/pda/clown/proc/AfterSlip(mob/living/carbon/human/M) diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm deleted file mode 100644 index 5d90c839bebf..000000000000 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ /dev/null @@ -1,130 +0,0 @@ -/obj/item/reverse_bear_trap - name = "reverse bear trap" - desc = "A horrifying set of shut metal jaws, rigged to a kitchen timer and secured by padlock to a head-mounted clamp. To apply, hit someone with it." - icon = 'icons/obj/device.dmi' - icon_state = "reverse_bear_trap" - slot_flags = ITEM_SLOT_HEAD - flags_1 = CONDUCT_1 - resistance_flags = FIRE_PROOF | UNACIDABLE - w_class = WEIGHT_CLASS_NORMAL - obj_integrity = 300 - max_integrity = 300 - item_state = "rack_parts" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items_righthand.dmi' - - var/ticking = FALSE - var/time_left = 60 //seconds remaining until pop - var/escape_chance = 0 //chance per "fiddle" to get the trap off your head - var/struggling = FALSE - - var/time_since_last_beep = 0 - var/datum/looping_sound/reverse_bear_trap/soundloop - var/datum/looping_sound/reverse_bear_trap_beep/soundloop2 - -/obj/item/reverse_bear_trap/Initialize() - . = ..() - soundloop = new(list(src)) - soundloop2 = new(list(src)) - -/obj/item/reverse_bear_trap/Destroy() - QDEL_NULL(soundloop) - QDEL_NULL(soundloop2) - STOP_PROCESSING(SSprocessing, src) - return ..() - -/obj/item/reverse_bear_trap/process() - if(!ticking) - return - time_left-- - soundloop2.mid_length = max(0.5, time_left - 5) //beepbeepbeepbeepbeep - if(!time_left || !isliving(loc)) - playsound(src, 'sound/machines/microwave/microwave-end.ogg', 100, FALSE) - soundloop.stop() - soundloop2.stop() - to_chat(loc, "*ding*") - addtimer(CALLBACK(src, PROC_REF(snap)), 2) - -/obj/item/reverse_bear_trap/attack_hand(mob/user) - if(iscarbon(user)) - var/mob/living/carbon/C = user - if(C.get_item_by_slot(ITEM_SLOT_HEAD) == src) - if(HAS_TRAIT_FROM(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) && !struggling) - struggling = TRUE - var/fear_string - switch(time_left) - if(0 to 5) - fear_string = "agonizingly" - if(5 to 20) - fear_string = "desperately" - if(20 to 40) - fear_string = "panickedly" - if(40 to 50) - fear_string = "shakily" - if(50 to 60) - fear_string = "" - C.visible_message("[C] fiddles with and pulls at [src]...", \ - "You [fear_string] try to pull at [src]...", "You hear clicking and ticking.") - if(!do_after(user, 20, target = src)) - struggling = FALSE - return - if(!prob(escape_chance)) - to_chat(user, "It doesn't budge!") - escape_chance++ - else - user.visible_message("The lock on [user]'s [name] pops open!", \ - "You force open the padlock!", "You hear a single, pronounced click!") - REMOVE_TRAIT(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) - struggling = FALSE - return - ..() - -/obj/item/reverse_bear_trap/attack(mob/living/target, mob/living/user) - if(target.get_item_by_slot(ITEM_SLOT_HEAD)) - to_chat(user, "Remove [target.p_their()] headgear first!") - return - target.visible_message("[user] starts forcing [src] onto [target]'s head!", \ - "[target] starts forcing [src] onto your head!", "You hear clanking.") - to_chat(user, "You start forcing [src] onto [target]'s head...") - if(!do_after(user, 30, target = target) || target.get_item_by_slot(ITEM_SLOT_HEAD)) - return - target.visible_message("[user] forces and locks [src] onto [target]'s head!", \ - "[target] locks [src] onto your head!", "You hear a click, and then a timer ticking down.") - to_chat(user, "You force [src] onto [target]'s head and click the padlock shut.") - user.dropItemToGround(src) - target.equip_to_slot_if_possible(src, ITEM_SLOT_HEAD) - arm() - notify_ghosts("[user] put a reverse bear trap on [target]!", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, ghost_sound = 'sound/machines/beep.ogg', notify_volume = 75, header = "Reverse bear trap armed") - -/obj/item/reverse_bear_trap/proc/snap() - reset() - var/mob/living/carbon/human/H = loc - if(!istype(H) || H.get_item_by_slot(ITEM_SLOT_HEAD) != src) - visible_message("[src]'s jaws snap open with an ear-piercing crack!") - playsound(src, 'sound/effects/snap.ogg', 75, TRUE) - else - var/mob/living/carbon/human/jill = loc - jill.visible_message("[src] goes off in [jill]'s mouth, ripping [jill.p_their()] head apart!", "[src] goes off!") - jill.emote("scream") - playsound(src, 'sound/effects/snap.ogg', 75, TRUE, frequency = 0.5) - playsound(src, 'sound/effects/splat.ogg', 50, TRUE, frequency = 0.5) - jill.apply_damage(9999, BRUTE, BODY_ZONE_HEAD) - jill.death() //just in case, for some reason, they're still alive - flash_color(jill, flash_color = "#FF0000", flash_time = 100) - -/obj/item/reverse_bear_trap/proc/reset() - ticking = FALSE - REMOVE_TRAIT(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) - soundloop.stop() - soundloop2.stop() - STOP_PROCESSING(SSprocessing, src) - -/obj/item/reverse_bear_trap/proc/arm() //hulen - ticking = TRUE - escape_chance = initial(escape_chance) //we keep these vars until re-arm, for tracking purposes - time_left = initial(time_left) - ADD_TRAIT(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) - soundloop.start() - soundloop2.mid_length = initial(soundloop2.mid_length) - soundloop2.start() - START_PROCESSING(SSprocessing, src) diff --git a/code/game/objects/items/food/cake.dm b/code/game/objects/items/food/cake.dm index d6299a24d524..12445d50d8f2 100644 --- a/code/game/objects/items/food/cake.dm +++ b/code/game/objects/items/food/cake.dm @@ -212,10 +212,6 @@ foodtypes = GRAIN | DAIRY | JUNKFOOD | SUGAR slice_type = /obj/item/food/cakeslice/birthday -/obj/item/food/cake/birthday/microwave_act(obj/machinery/microwave/M) //super sekrit club - new /obj/item/clothing/head/hardhat/cakehat(get_turf(src)) - qdel(src) - /obj/item/food/cakeslice/birthday name = "birthday cake slice" desc = "A slice of your birthday." @@ -244,10 +240,6 @@ tastes = list("cake" = 3, "a Vlad's Salad" = 1) slice_type = /obj/item/food/cakeslice/birthday/energy -/obj/item/food/cake/birthday/energy/microwave_act(obj/machinery/microwave/M) //super sekriter club - new /obj/item/clothing/head/hardhat/cakehat/energycake(get_turf(src)) - qdel(src) - /obj/item/food/cake/birthday/energy/proc/energy_bite(mob/living/user) to_chat(user, "As you eat the cake, you accidentally hurt yourself on the embedded energy sword!") user.apply_damage(30, BURN, BODY_ZONE_HEAD) // ITs an ENERGY sword, so it burns, duh diff --git a/code/game/objects/items/gift.dm b/code/game/objects/items/gift.dm index 31ac7d44ecff..592a4f6364fb 100644 --- a/code/game/objects/items/gift.dm +++ b/code/game/objects/items/gift.dm @@ -74,10 +74,6 @@ GLOBAL_LIST_EMPTY(possible_gifts) /obj/item/storage/belt/utility/full, /obj/item/clothing/neck/tie/horrible, /obj/item/clothing/suit/jacket/leather, - /obj/item/clothing/suit/jacket/leather/overcoat, - /obj/item/clothing/suit/poncho, - /obj/item/clothing/suit/poncho/green, - /obj/item/clothing/suit/poncho/red, /obj/item/clothing/suit/snowman, /obj/item/clothing/head/snowman, /obj/item/stack/sheet/mineral/coal) diff --git a/code/game/objects/items/grenades/discogrenade.dm b/code/game/objects/items/grenades/discogrenade.dm index c582a35e3ff3..b8f988f363fe 100644 --- a/code/game/objects/items/grenades/discogrenade.dm +++ b/code/game/objects/items/grenades/discogrenade.dm @@ -107,10 +107,6 @@ target.show_message(span_warning("You resist your inner urges to break out your best moves."), 2) target.set_drugginess(5) return - if(istype(target.get_item_by_slot(ITEM_SLOT_HEAD), /obj/item/clothing/head/foilhat)) - to_chat(target, span_userdanger("BIG DISCO WON'T CORRUPT ME WITH THEIR POST ICW PSY-OP MUSIC!")) - target.emote("scream") - return target.set_drugginess(10) target.show_message(span_warning("You feel a strong rythme and your muscles spasm uncontrollably, you begin dancing and cannot move!"), 2) diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index f32230a732ba..3c8f3ead8709 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -116,7 +116,6 @@ /obj/item/storage/box/hero/ghostbuster/PopulateContents() new /obj/item/choice_beacon/ouija(src) - new /obj/item/clothing/glasses/welding/ghostbuster(src) new /obj/item/storage/belt/fannypack/bustin(src) new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/shoes/jackboots(src) diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index f54aa4f6447b..97cc74a51589 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -244,40 +244,6 @@ /obj/item/clothing/gloves/plate/blue icon_state = "crusader-blue" -/obj/item/clothing/shoes/plate - name = "Plate Boots" - desc = "Metal boots, they look heavy." - icon_state = "crusader" - w_class = WEIGHT_CLASS_NORMAL - armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //does this even do anything on boots? - clothing_flags = NOSLIP - cold_protection = FEET - min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT - heat_protection = FEET - max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT - - -/obj/item/clothing/shoes/plate/red - icon_state = "crusader-red" - -/obj/item/clothing/shoes/plate/blue - icon_state = "crusader-blue" - - /obj/item/storage/box/itemset/crusader name = "Crusader's Armour Set" //i can't into ck2 references desc = "This armour is said to be based on the armor of kings on another world thousands of years ago, who tended to assassinate, conspire, and plot against everyone who tried to do the same to them. Some things never change." - - -/obj/item/storage/box/itemset/crusader/blue/PopulateContents() - new /obj/item/clothing/suit/armor/plate/crusader/blue(src) - new /obj/item/clothing/head/helmet/plate/crusader/blue(src) - new /obj/item/clothing/gloves/plate/blue(src) - new /obj/item/clothing/shoes/plate/blue(src) - - -/obj/item/storage/box/itemset/crusader/red/PopulateContents() - new /obj/item/clothing/suit/armor/plate/crusader/red(src) - new /obj/item/clothing/head/helmet/plate/crusader/red(src) - new /obj/item/clothing/gloves/plate/red(src) - new /obj/item/clothing/shoes/plate/red(src) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 26cff752c364..75c863bee5b6 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -57,14 +57,6 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \ . = ..() . += GLOB.gondola_recipes -GLOBAL_LIST_INIT(corgi_recipes, list ( \ - new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3), \ - )) - -/obj/item/stack/sheet/animalhide/corgi/get_main_recipes() - . = ..() - . += GLOB.corgi_recipes - /obj/item/stack/sheet/animalhide/cat name = "cat hide" desc = "The by-product of cat farming." @@ -81,7 +73,6 @@ GLOBAL_LIST_INIT(corgi_recipes, list ( \ GLOBAL_LIST_INIT(monkey_recipes, list ( \ new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1), \ - new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2), \ )) /obj/item/stack/sheet/animalhide/monkey/get_main_recipes() @@ -102,15 +93,6 @@ GLOBAL_LIST_INIT(monkey_recipes, list ( \ icon_state = "sheet-xeno" item_state = "sheet-xeno" -GLOBAL_LIST_INIT(xeno_recipes, list ( \ - new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1), \ - new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2), \ - )) - -/obj/item/stack/sheet/animalhide/xeno/get_main_recipes() - . = ..() - . += GLOB.xeno_recipes - //don't see anywhere else to put these, maybe together they could be used to make the xenos suit? /obj/item/stack/sheet/xenochitin name = "alien chitin" @@ -167,7 +149,6 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \ new/datum/stack_recipe("bandolier", /obj/item/storage/belt/bandolier, 5), \ new/datum/stack_recipe("leather jacket", /obj/item/clothing/suit/jacket/leather, 7), \ new/datum/stack_recipe("leather shoes", /obj/item/clothing/shoes/laceup, 2), \ - new/datum/stack_recipe("leather overcoat", /obj/item/clothing/suit/jacket/leather/overcoat, 10), \ new/datum/stack_recipe("saddle", /obj/item/saddle, 5), \ )) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 5dde37c0b90d..c00ba77b21b8 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -451,8 +451,6 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ new/datum/stack_recipe("pinion airlock assembly", /obj/structure/door_assembly/door_assembly_bronze, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bronze pinion airlock assembly", /obj/structure/door_assembly/door_assembly_bronze/seethru, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bronze hat", /obj/item/clothing/head/bronze), \ - new/datum/stack_recipe("bronze suit", /obj/item/clothing/suit/bronze), \ - new/datum/stack_recipe("bronze boots", /obj/item/clothing/shoes/bronze), \ null, new/datum/stack_recipe("bronze chair", /obj/structure/chair/comfy/shuttle/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("Marx Bust", /obj/structure/statue/bronze/marx, 15, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 0076de0b8155..eb72fe31c5ec 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -689,7 +689,6 @@ /obj/item/storage/backpack/duffelbag/clown/syndie/PopulateContents() new /obj/item/pda/clown(src) new /obj/item/clothing/under/rank/civilian/clown(src) - new /obj/item/clothing/shoes/clown_shoes(src) new /obj/item/clothing/mask/gas/clown_hat(src) new /obj/item/bikehorn(src) new /obj/item/implanter/sad_trombone(src) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index f2d0becadb54..2208eddff91c 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -298,7 +298,6 @@ /obj/item/clothing/under/syndicate/bloodred, /obj/item/clothing/gloves/color/latex/nitrile/infiltrator, /obj/item/clothing/mask/infiltrator, - /obj/item/clothing/shoes/combat/sneakboots, /obj/item/gun/ballistic/automatic/pistol/ringneck, /obj/item/gun/ballistic/revolver, /obj/item/ammo_box @@ -310,7 +309,6 @@ new /obj/item/clothing/under/syndicate/bloodred(src) new /obj/item/clothing/gloves/color/latex/nitrile/infiltrator(src) new /obj/item/clothing/mask/infiltrator(src) - new /obj/item/clothing/shoes/combat/sneakboots(src) /obj/item/storage/toolbox/bounty name = "defused explosives case" diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index f1ce47a8f8fd..7d2828c41660 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1285,7 +1285,6 @@ /obj/item/toy/figure/curator name = "Curator action figure" icon_state = "curator" - toysay = "One day while..." /obj/item/toy/figure/md name = "Medical Doctor action figure" diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 39f65ca53a5b..8285380c3c48 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -101,10 +101,6 @@ new /obj/item/clothing/accessory/pocketprotector/cosmetology(src) new /obj/item/clothing/under/rank/civilian/chaplain(src) new /obj/item/clothing/shoes/sneakers/black(src) - new /obj/item/clothing/suit/chaplainsuit/nun(src) - new /obj/item/clothing/head/nun_hood(src) - new /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit(src) - new /obj/item/clothing/suit/chaplainsuit/holidaypriest(src) new /obj/item/storage/backpack/cultpack(src) new /obj/item/storage/fancy/candle_box(src) new /obj/item/storage/fancy/candle_box(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 8ccc632dbac5..23aa2df0ab5a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -25,12 +25,10 @@ new /obj/item/clothing/head/caphat(src) new /obj/item/clothing/head/caphat/parade(src) new /obj/item/clothing/suit/armor/vest/capcarapace/captunic(src) - new /obj/item/clothing/head/crown/fancy(src) new /obj/item/cartridge/captain(src) new /obj/item/storage/box/silver_ids(src) new /obj/item/radio/headset/heads/captain/alt(src) new /obj/item/radio/headset/heads/captain(src) - new /obj/item/clothing/glasses/sunglasses/gar/supergar(src) new /obj/item/clothing/gloves/color/captain(src) new /obj/item/storage/belt/sabre(src) new /obj/item/gun/energy/e_gun(src) @@ -50,7 +48,6 @@ new /obj/item/clothing/head/beret/hop(src) //WS edit - More Berets new /obj/item/clothing/under/rank/command/head_of_personnel(src) //WS Edit - Better Command Uniforms new /obj/item/clothing/under/rank/command/head_of_personnel/skirt(src) //WS Edit - Better Command Uniforms - new /obj/item/clothing/head/hopcap(src) new /obj/item/cartridge/head_of_personnel(src) new /obj/item/radio/headset/heads/head_of_personnel(src) new /obj/item/clothing/shoes/sneakers/brown(src) @@ -92,7 +89,6 @@ new /obj/item/clothing/under/rank/security/head_of_security/alt/skirt(src) new /obj/item/clothing/head/HoS(src) new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch(src) - new /obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars(src) new /obj/item/clothing/suit/armor/vest/security/hos(src) //WS Edit - Better security jumpsuit sprites new /obj/item/storage/lockbox/medal/sec(src) new /obj/item/megaphone/sec(src) @@ -259,7 +255,6 @@ new /obj/item/paper/fluff/jobs/security/court_judgement (src) new /obj/item/pen (src) new /obj/item/clothing/suit/judgerobe (src) - new /obj/item/clothing/head/powdered_wig (src) new /obj/item/storage/briefcase(src) /obj/structure/closet/secure_closet/contraband/armory diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index bca315340a4d..e3a8339dce46 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -37,8 +37,6 @@ new /obj/item/clothing/under/color/jumpskirt/black(src) if(prob(25)) new /obj/item/clothing/suit/jacket/leather(src) - if(prob(20)) - new /obj/item/clothing/suit/jacket/leather/overcoat(src) for(var/i in 1 to 3) new /obj/item/clothing/shoes/sneakers/black(src) for(var/i in 1 to 3) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index d13e3885a0df..5dce420df1cf 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -42,7 +42,6 @@ return . = ..() - /obj/item/clothing/head/hooded/cult_hoodie name = "ancient cultist hood" icon_state = "culthood" @@ -91,26 +90,6 @@ . = ..() ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - -/obj/item/clothing/head/magus - name = "magus helm" - icon_state = "magus" - item_state = "magus" - desc = "A helm worn by the followers of Nar'Sie." - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES - armor = list("melee" = 50, "bullet" = 30, "laser" = 50,"energy" = 50, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10) - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - -/obj/item/clothing/suit/magusred - name = "magus robes" - desc = "A set of armored robes worn by the followers of Nar'Sie." - icon_state = "magusred" - item_state = "magusred" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/tome) - armor = list("melee" = 50, "bullet" = 30, "laser" = 50,"energy" = 50, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10) - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - /obj/item/clothing/head/helmet/space/hardsuit/cult name = "\improper Nar'Sien hardened helmet" desc = "A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 27ba86d24bfa..73b8b89c9cba 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -254,7 +254,7 @@ to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") return var/list/items = list( - "Zealot's Blindfold" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "blindfold"), + "Zealot's Blindfold" = image(icon = 'icons/obj/clothing/eyes/eyes.dmi', icon_state = "blindfold"), "Veil Walker Set" = image(icon = 'icons/obj/cult.dmi', icon_state = "shifter") ) var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) diff --git a/code/modules/antagonists/gang/gang.dm b/code/modules/antagonists/gang/gang.dm index df962f83e814..a1b493b87b75 100644 --- a/code/modules/antagonists/gang/gang.dm +++ b/code/modules/antagonists/gang/gang.dm @@ -112,7 +112,6 @@ /obj/item/clothing/under/color/darkgreen, /obj/item/clothing/neck/scarf/green, /obj/item/clothing/head/beanie/green, - /obj/item/clothing/suit/poncho/green, /obj/item/clothing/mask/bandana/green) free_clothes = list(/obj/item/clothing/mask/bandana/green, /obj/item/clothing/under/color/darkgreen, @@ -286,15 +285,11 @@ gang_id = "YAK" acceptable_clothes = list(/obj/item/clothing/head/soft/yellow, /obj/item/clothing/under/costume/yakuza, - /obj/item/clothing/shoes/yakuza, /obj/item/clothing/neck/scarf/yellow, /obj/item/clothing/head/beanie/yellow, /obj/item/clothing/mask/bandana/gold, - /obj/item/clothing/head/hardhat, - /obj/item/clothing/suit/yakuza) + /obj/item/clothing/head/hardhat) free_clothes = list(/obj/item/clothing/under/costume/yakuza, - /obj/item/clothing/shoes/yakuza, - /obj/item/clothing/suit/yakuza, /obj/item/clothing/head/hardhat, /obj/item/toy/crayon/spraycan) gang_objective = "The boss is thrilled about this new construction opportunity we've all been given, yadda yadda, look, he knows we're here to expand our business ventures for the clan, but Majima wanted it made VERY clear that we do NOT fuck this station's infrastructure up. If more than 15% of this station is busted when we get the hell out of here, it's your ass on the line." @@ -310,12 +305,8 @@ gang_id = "JB" acceptable_clothes = list(/obj/item/clothing/head/soft/blue, /obj/item/clothing/under/costume/jackbros, - /obj/item/clothing/shoes/jackbros, - /obj/item/clothing/head/jackbros, /obj/item/clothing/mask/bandana/blue) free_clothes = list(/obj/item/clothing/under/costume/jackbros, - /obj/item/clothing/shoes/jackbros, - /obj/item/clothing/head/jackbros, /obj/item/toy/crayon/spraycan) gang_objective = "Hee-hello friends! We need to expand our influence, ho! Get a King Frost in as the Captain of this joint! Either get the original Captain on board with the program, or Hee-ho a fellow Jack Frost into the position yourselves!" antag_hud_name = "JackFrost" diff --git a/code/modules/antagonists/gang/outfits.dm b/code/modules/antagonists/gang/outfits.dm index ae16ec956470..77c091d2126a 100644 --- a/code/modules/antagonists/gang/outfits.dm +++ b/code/modules/antagonists/gang/outfits.dm @@ -23,7 +23,6 @@ glasses = /obj/item/clothing/glasses/hud/spacecop ears = /obj/item/radio/headset/headset_sec mask = null - head = /obj/item/clothing/head/spacepolice belt = /obj/item/gun/ballistic/automatic/pistol/candor r_pocket = /obj/item/lighter l_pocket = /obj/item/restraints/handcuffs diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index ae651cf055e6..b50c6dc1ea8b 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -257,7 +257,6 @@ var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionnaire) H.equip_to_slot_or_del(new hat(H), ITEM_SLOT_HEAD) H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), ITEM_SLOT_ICLOTHING) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), ITEM_SLOT_FEET) H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE) H.put_in_hands(new /obj/item/melee/sword/claymore(H), TRUE) H.equip_to_slot_or_del(new /obj/item/melee/spear(H), ITEM_SLOT_BACK) diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 96a41b2ac07b..27a3a343a907 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -172,7 +172,6 @@ antag_hud_name = "apprentice" var/datum/mind/master var/school = APPRENTICE_DESTRUCTION - outfit_type = /datum/outfit/wizard/apprentice wiz_age = APPRENTICE_AGE_MIN /datum/antagonist/wizard/apprentice/greet() @@ -252,7 +251,6 @@ /datum/antagonist/wizard/academy name = "Academy Teacher" - outfit_type = /datum/outfit/wizard/academy move_to_lair = FALSE /datum/antagonist/wizard/academy/equip_wizard() diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 6f28cc724b55..850d0e91ba09 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -74,12 +74,6 @@ if(prob(1)) mezzer() - -/obj/item/clothing/glasses/meson/truesight - name = "The Lens of Truesight" - desc = "I can see forever!" - icon_state = "monocle" - /obj/structure/academy_wizard_spawner name = "Academy Defensive System" desc = "Made by Abjuration, Inc." @@ -152,14 +146,6 @@ icon_state = "forge_off" STOP_PROCESSING(SSobj, src) -/datum/outfit/wizard/academy - name = "Academy Wizard" - r_pocket = null - r_hand = null - suit = /obj/item/clothing/suit/wizrobe/red - head = /obj/item/clothing/head/wizard/red - backpack_contents = list(/obj/item/storage/box/survival = 1) - /obj/item/dice/d20/fate name = "\improper Die of Fate" desc = "A die with twenty sides. You can feel unearthly energies radiating from it. Using this might be VERY risky." @@ -348,8 +334,6 @@ new /obj/item/clothing/suit/wizrobe(drop_location()) new /obj/item/clothing/head/wizard(drop_location()) new /obj/item/clothing/gloves/combat/wizard(drop_location()) - new /obj/item/clothing/suit/wizrobe/magusblue(drop_location()) - new /obj/item/clothing/head/wizard/magus(drop_location()) new /obj/item/staff(drop_location()) new /obj/structure/mirror/magic(drop_location()) @@ -357,8 +341,6 @@ name = "Butler" uniform = /obj/item/clothing/under/suit/black_really shoes = /obj/item/clothing/shoes/laceup - head = /obj/item/clothing/head/bowler - glasses = /obj/item/clothing/glasses/monocle gloves = /obj/item/clothing/gloves/color/white /obj/effect/proc_holder/spell/targeted/summonmob diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index 7a9803085ab8..677b82624bae 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -32,16 +32,6 @@ stock_max = 10 availability_prob = 80 -/datum/blackmarket_item/clothing/crown - name = "Crown" - desc = "A beautiful golden crown, rich with history and pedigree. Better worn than left to collect dust in a museum, right?" - item = /obj/item/clothing/head/crown/fancy - - price_min = 1000 - price_max = 2000 - stock = 1 - availability_prob = 20 - /datum/blackmarket_item/clothing/galaxy_blue name = "Blue Galaxy Suit" desc = "A handsome silk suit, treated with a finish of bluespace dust for an out of this world sheen." diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm index 3ca8ec9ece05..dd931f378a59 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -9,7 +9,6 @@ /obj/item/book_of_babel, /obj/item/wisp_lantern, /obj/item/reagent_containers/glass/bottle/potion/flight, - /obj/item/clothing/glasses/godeye, /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/voodoo, /obj/item/grenade/clusterbuster/inferno, @@ -19,7 +18,6 @@ /obj/item/dragons_blood, /obj/item/lava_staff, /obj/item/ship_in_a_bottle, - /obj/item/clothing/shoes/clown_shoes/banana_shoes, /obj/item/veilrender/vealrender, /obj/item/clothing/suit/armor/ascetic) diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index fd3ba6c74863..cab2ac8563af 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -88,17 +88,10 @@ cost = 1000 contains = list(/obj/item/clothing/head/snowman, /obj/item/clothing/suit/snowman, - /obj/item/clothing/head/chicken, - /obj/item/clothing/suit/chickensuit, /obj/item/clothing/mask/gas/monkeymask, - /obj/item/clothing/suit/monkeysuit, /obj/item/clothing/head/cardborg, /obj/item/clothing/suit/cardborg, - /obj/item/clothing/head/xenos, - /obj/item/clothing/suit/xenos, - /obj/item/clothing/suit/hooded/ian_costume, - /obj/item/clothing/suit/hooded/carp_costume, - /obj/item/clothing/suit/hooded/bee_costume) + /obj/item/clothing/suit/hooded/carp_costume) crate_name = "original costume crate" crate_type = /obj/structure/closet/crate/wooden @@ -143,7 +136,6 @@ /obj/item/clothing/neck/tie/blue, /obj/item/clothing/neck/tie/red, /obj/item/clothing/neck/tie/black, - /obj/item/clothing/head/bowler, /obj/item/clothing/head/fedora, /obj/item/clothing/head/flatcap, /obj/item/clothing/head/beret, @@ -175,7 +167,6 @@ desc = "Flaunt your status with three unique, highly-collectable hats!" cost = 20000 contains = list(/obj/item/clothing/head/collectable/chef, - /obj/item/clothing/head/collectable/paper, /obj/item/clothing/head/collectable/tophat, /obj/item/clothing/head/collectable/captain, /obj/item/clothing/head/collectable/beret, @@ -183,18 +174,11 @@ /obj/item/clothing/head/collectable/flatcap, /obj/item/clothing/head/collectable/pirate, /obj/item/clothing/head/collectable/kitty, - /obj/item/clothing/head/collectable/rabbitears, /obj/item/clothing/head/collectable/wizard, /obj/item/clothing/head/collectable/hardhat, - /obj/item/clothing/head/collectable/HoS, - /obj/item/clothing/head/collectable/HoP, /obj/item/clothing/head/collectable/thunderdome, /obj/item/clothing/head/collectable/swat, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/police, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/xenom, - /obj/item/clothing/head/collectable/petehat) + /obj/item/clothing/head/collectable/police) crate_name = "collectable hats crate" crate_type = /obj/structure/closet/crate/wooden diff --git a/code/modules/client/loadout/loadout_eyewear.dm b/code/modules/client/loadout/loadout_eyewear.dm index 3ea37d68fed8..b6962a8dc34d 100644 --- a/code/modules/client/loadout/loadout_eyewear.dm +++ b/code/modules/client/loadout/loadout_eyewear.dm @@ -29,10 +29,6 @@ display_name = "eyepatch" path = /obj/item/clothing/glasses/eyepatch -/datum/gear/eyewear/monocle - display_name = "monocle" - path = /obj/item/clothing/glasses/monocle - /datum/gear/eyewear/cheapsuns display_name = "cheap sunglasses" path = /obj/item/clothing/glasses/cheapsuns diff --git a/code/modules/client/loadout/loadout_hat.dm b/code/modules/client/loadout/loadout_hat.dm index 32384a0d59fa..2f7e59c288b7 100644 --- a/code/modules/client/loadout/loadout_hat.dm +++ b/code/modules/client/loadout/loadout_hat.dm @@ -131,10 +131,6 @@ path = /obj/item/clothing/head/beanie/orange //Misc -/datum/gear/hat/bowler - display_name = "bowler hat" - path = /obj/item/clothing/head/bowler - /datum/gear/hat/that display_name = "top hat" path = /obj/item/clothing/head/that diff --git a/code/modules/client/loadout/loadout_suit.dm b/code/modules/client/loadout/loadout_suit.dm index 217998802d48..1d11857663ad 100644 --- a/code/modules/client/loadout/loadout_suit.dm +++ b/code/modules/client/loadout/loadout_suit.dm @@ -23,10 +23,6 @@ display_name = "leather jacket" path = /obj/item/clothing/suit/jacket/leather -/datum/gear/suit/jacket/leather/overcoat - display_name = "leather overcoat" - path = /obj/item/clothing/suit/jacket/leather/overcoat - /datum/gear/suit/jacket/leather/duster display_name = "leather duster" path = /obj/item/clothing/suit/jacket/leather/duster @@ -105,10 +101,6 @@ path = /obj/item/clothing/suit/toggle/suspenders/gray //Misc -/datum/gear/suit/grponcho - display_name = "poncho, green" - path = /obj/item/clothing/suit/poncho/green - /datum/gear/suit/overalls display_name = "overalls" path = /obj/item/clothing/suit/apron/overalls diff --git a/code/modules/clothing/factions/nanotrasen.dm b/code/modules/clothing/factions/nanotrasen.dm index 7aa871ad7f3e..6e605d5471b2 100644 --- a/code/modules/clothing/factions/nanotrasen.dm +++ b/code/modules/clothing/factions/nanotrasen.dm @@ -337,7 +337,7 @@ icon_state = "officer_peaked" item_state = "bluecloth" -/obj/item/clothing/head/nanotrasen/officer +/obj/item/clothing/head/nanotrasen/officer/fedora name = "officer's fedora" desc = "A fedora in a violent shade of Nanotrasen Blue, with a red silk band." icon_state = "officer_fedora" diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index e011028246b6..c2dd59ecc1fb 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -1,7 +1,8 @@ //Glasses /obj/item/clothing/glasses name = "glasses" - icon = 'icons/obj/clothing/glasses.dmi' + icon = 'icons/obj/clothing/eyes/eyes.dmi' + mob_overlay_icon = 'icons/mob/clothing/eyes/eyes.dmi' lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' w_class = WEIGHT_CLASS_SMALL @@ -43,8 +44,6 @@ user.update_sight() if(icon_state == "welding-g") change_glass_color(user, /datum/client_colour/glass_colour/gray) - else if(icon_state == "bustin-g") - change_glass_color(user, /datum/client_colour/glass_colour/green) else change_glass_color(user, null) @@ -82,19 +81,6 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE glass_colour_type = /datum/client_colour/glass_colour/green -/obj/item/clothing/glasses/meson/gar - name = "gar mesons" - icon_state = "garm" - item_state = "garm" - desc = "Do the impossible, see the invisible!" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - custom_price = 500 - /obj/item/clothing/glasses/science name = "science goggles" desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents." @@ -163,12 +149,6 @@ qdel(src) user.put_in_hands(double_patch) -/obj/item/clothing/glasses/monocle - name = "monocle" - desc = "Such a dapper eyepiece!" - icon_state = "monocle" - supports_variations = VOX_VARIATION - /obj/item/clothing/glasses/material name = "optical material scanner" desc = "Very confusing glasses." @@ -182,19 +162,6 @@ desc = "Used by miners to detect ores deep within the rock." darkness_view = 0 -/obj/item/clothing/glasses/material/mining/gar - name = "gar material scanner" - icon_state = "garm" - item_state = "garm" - desc = "Do the impossible, see the invisible!" - force = 10 - throwforce = 20 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - glass_colour_type = /datum/client_colour/glass_colour/lightgreen - /obj/item/clothing/glasses/regular name = "prescription glasses" desc = "Made by Nerd. Co." @@ -263,48 +230,6 @@ clothing_flags = SCAN_REAGENTS glass_colour_type = /datum/client_colour/glass_colour/darkpurple -/obj/item/clothing/glasses/sunglasses/garb - name = "black gar glasses" - desc = "Go beyond impossible and kick reason to the curb!" - icon_state = "garb" - item_state = "garb" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - -/obj/item/clothing/glasses/sunglasses/garb/supergarb - name = "black giga gar glasses" - desc = "Believe in us humans." - icon_state = "supergarb" - item_state = "garb" - force = 12 - throwforce = 12 - -/obj/item/clothing/glasses/sunglasses/gar - name = "gar glasses" - desc = "Just who the hell do you think I am?!" - icon_state = "gar" - item_state = "gar" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - glass_colour_type = /datum/client_colour/glass_colour/orange - -/obj/item/clothing/glasses/sunglasses/gar/supergar - name = "giga gar glasses" - desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!" - icon_state = "supergar" - item_state = "gar" - force = 12 - throwforce = 12 - glass_colour_type = /datum/client_colour/glass_colour/red - /obj/item/clothing/glasses/sunglasses/ballistic name = "ballistic goggles" desc = "A pair of flash-proof ballistic goggles." @@ -330,17 +255,6 @@ /obj/item/clothing/glasses/welding/attack_self(mob/user) weldingvisortoggle(user) -/obj/item/clothing/glasses/welding/ghostbuster - name = "optical ecto-scanner" - desc = "A bulky pair of unwieldy glasses that lets you see things best left unseen. Obscures vision, but also gives a bit of eye protection" - icon_state = "bustin-g" - item_state = "bustin-g" - invis_view = SEE_INVISIBLE_OBSERVER - invis_override = null - flash_protect = 1 - visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | VISOR_INVISVIEW - glass_colour_type = /datum/client_colour/glass_colour/green - /obj/item/clothing/glasses/blindfold name = "blindfold" desc = "Covers the eyes, preventing sight." @@ -389,7 +303,7 @@ . = ..() if(!isinhands && ishuman(loc) && !colored_before) var/mob/living/carbon/human/H = loc - var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes.dmi', "blindfoldwhite") + var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes/eyes.dmi', "blindfoldwhite") M.appearance_flags |= RESET_COLOR M.color = "#[H.eye_color]" . += M @@ -455,20 +369,6 @@ return chameleon_action.emp_randomise() -/obj/item/clothing/glasses/thermal/monocle - name = "thermoncle" - desc = "Never before has seeing through walls felt so gentlepersonly." - icon_state = "thermoncle" - flags_1 = null //doesn't protect eyes because it's a monocle, duh - -/obj/item/clothing/glasses/thermal/monocle/examine(mob/user) //Different examiners see a different description! - if(user.gender == MALE) - desc = replacetext(desc, "person", "man") - else if(user.gender == FEMALE) - desc = replacetext(desc, "person", "woman") - . = ..() - desc = initial(desc) - /obj/item/clothing/glasses/thermal/eyepatch name = "optical thermal eyepatch" desc = "An eyepatch with built-in thermal optics." @@ -516,35 +416,6 @@ item_state = "redglasses" glass_colour_type = /datum/client_colour/glass_colour/red -/obj/item/clothing/glasses/godeye - name = "eye of god" - desc = "A strange eye, said to have been torn from an omniscient creature that used to roam the wastes." - icon_state = "godeye" - item_state = "godeye" - vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS - darkness_view = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - resistance_flags = LAVA_PROOF | FIRE_PROOF - clothing_flags = SCAN_REAGENTS - -/obj/item/clothing/glasses/godeye/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, EYE_OF_GOD_TRAIT) - -/obj/item/clothing/glasses/godeye/attackby(obj/item/W as obj, mob/user as mob, params) - if(istype(W, src) && W != src && W.loc == user) - if(W.icon_state == "godeye") - W.icon_state = "doublegodeye" - W.item_state = "doublegodeye" - W.desc = "A pair of strange eyes, said to have been torn from an omniscient creature that used to roam the wastes. There's no real reason to have two, but that isn't stopping you." - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.update_inv_wear_mask() - else - to_chat(user, "The eye winks at you and vanishes into the abyss, you feel really unlucky.") - qdel(src) - ..() - /obj/item/clothing/glasses/AltClick(mob/user) if(glass_colour_type && ishuman(user)) var/mob/living/carbon/human/H = user diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 559816007b13..6891ac7de31a 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -162,26 +162,6 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE glass_colour_type = /datum/client_colour/glass_colour/green -/obj/item/clothing/glasses/hud/security/sunglasses/gars - name = "\improper HUD gar glasses" - desc = "GAR glasses with a HUD." - icon_state = "gars" - item_state = "garb" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - -/obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars - name = "giga HUD gar glasses" - desc = "GIGA GAR glasses with a HUD." - icon_state = "supergars" - item_state = "garb" - force = 12 - throwforce = 12 - /obj/item/clothing/glasses/hud/toggle name = "Toggle HUD" desc = "A hud with multiple functions." diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm index 5aa39eb0ba57..3a930d728ad7 100644 --- a/code/modules/clothing/head/beanie.dm +++ b/code/modules/clothing/head/beanie.dm @@ -53,10 +53,6 @@ //Striped Beanies have unique sprites -/obj/item/clothing/head/beanie/christmas - name = "christmas beanie" - icon_state = "beaniechristmas" - /obj/item/clothing/head/beanie/striped name = "striped beanie" icon_state = "beaniestriped" @@ -78,15 +74,3 @@ desc = "A beanie made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "beaniedurathread" armor = list("melee" = 15, "bullet" = 5, "laser" = 15, "energy" = 25, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 5) - -/obj/item/clothing/head/beanie/waldo - name = "red striped bobble hat" - desc = "If you're going on a worldwide hike, you'll need some cold protection." - icon_state = "waldo_hat" - -/obj/item/clothing/head/beanie/rasta - name = "rastacap" - desc = "Perfect for tucking in those dreadlocks." - icon_state = "beanierasta" - -//No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet diff --git a/code/modules/clothing/head/berets.dm b/code/modules/clothing/head/berets.dm index 9d3ca21ed4f0..78d77908cd30 100644 --- a/code/modules/clothing/head/berets.dm +++ b/code/modules/clothing/head/berets.dm @@ -5,18 +5,6 @@ icon_state = "beret" dog_fashion = /datum/dog_fashion/head/beret -/obj/item/clothing/head/beret/vintage - name = "vintage beret" - desc = "A well-worn beret." - icon_state = "vintageberet" - dog_fashion = null - -/obj/item/clothing/head/beret/archaic - name = "archaic beret" - desc = "An absolutely ancient beret." - icon_state = "archaicberet" - dog_fashion = null - /obj/item/clothing/head/beret/black name = "black beret" desc = "A black beret." diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 036d6ffbd417..9aa05ea897ce 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -5,17 +5,6 @@ name = "collectable hat" desc = "A rare collectable hat." -/obj/item/clothing/head/collectable/petehat - name = "ultra rare Pete's hat!" - desc = "It smells faintly of plasma." - icon_state = "petehat" - -/obj/item/clothing/head/collectable/xenom - name = "collectable xenomorph helmet!" - desc = "Hiss hiss hiss!" - clothing_flags = SNUG_FIT - icon_state = "xenom" - /obj/item/clothing/head/collectable/chef name = "collectable chef's hat" desc = "A rare chef's hat meant for hat collectors!" @@ -24,12 +13,6 @@ dog_fashion = /datum/dog_fashion/head/chef -/obj/item/clothing/head/collectable/paper - name = "collectable paper hat" - desc = "What looks like an ordinary paper hat is actually a rare and valuable collector's edition paper hat. Keep away from water, fire, and Curators." - icon_state = "paper" - dog_fashion = /datum/dog_fashion/head - /obj/item/clothing/head/collectable/tophat name = "collectable top hat" desc = "A top hat worn by only the most prestigious hat collectors." @@ -64,12 +47,6 @@ item_state = "welding" clothing_flags = SNUG_FIT -/obj/item/clothing/head/collectable/slime - name = "collectable slime hat" - desc = "Just like a real brain slug!" - icon_state = "headslime" - clothing_flags = SNUG_FIT - /obj/item/clothing/head/collectable/flatcap name = "collectable flat cap" desc = "A collectible laborer's flat cap! Smells like No. 9 coal..." @@ -91,13 +68,6 @@ dog_fashion = /datum/dog_fashion/head/kitty -/obj/item/clothing/head/collectable/rabbitears - name = "collectable rabbit ears" - desc = "Not as lucky as the feet!" - icon_state = "bunny" - - dog_fashion = /datum/dog_fashion/head/rabbit - /obj/item/clothing/head/collectable/wizard name = "collectable wizard's hat" desc = "NOTE: Any magical powers gained from wearing this hat are purely coincidental." @@ -111,16 +81,6 @@ icon_state = "hardhat_standard" dog_fashion = /datum/dog_fashion/head -/obj/item/clothing/head/collectable/HoS - name = "collectable HoS hat" - desc = "Now you too can beat prisoners, set silly sentences, and arrest for no reason!" - icon_state = "hoscap" - -/obj/item/clothing/head/collectable/HoP - name = "collectable HoP hat" - desc = "It's your turn to demand excessive paperwork, signatures, stamps, and hire more clowns! Papers, please!" - icon_state = "hopcap_nt" - dog_fashion = /datum/dog_fashion/head/head_of_personnel /obj/item/clothing/head/collectable/thunderdome name = "collectable Thunderdome helmet" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 3e04245e1a14..416fa20df39c 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -33,10 +33,6 @@ desc = "A commanding white stetson adorned with a general's badge. Why this belongs to a captain is anybody's guess." icon_state = "cowboycap" -/obj/item/clothing/head/caphat/nt - name = "captain's hat" - icon_state = "captain_nt" - /obj/item/clothing/head/frontier/peaked name = "\improper Frontiersmen commander's cap" desc = "An imposing peaked cap, meant for a commander of the Frontiersmen." @@ -47,41 +43,6 @@ desc = "An imposing peaked cap meant for only the highest of officers of the Frontiersmen pirate fleet." icon_state = "frontier_admiral_cap" -//Head of Personnel -/obj/item/clothing/head/hopcap - name = "head of personnel's cap" - icon_state = "hopcap" - desc = "The symbol of true bureaucratic micromanagement." - dog_fashion = /datum/dog_fashion/head/head_of_personnel - -/obj/item/clothing/head/hopcap/nt - icon_state = "hopcap_nt" - dog_fashion = /datum/dog_fashion/head/head_of_personnel - -//Cargo -/obj/item/clothing/head/supply_chief - name = "supply chief's cap" - desc = "The one thing between you and 40 boxes of orderable pizza is the person wearing this hat." - icon_state = "supply_chief_cap" - -/obj/item/clothing/head/deliveries_officer - name = "deliveries officer's cap" - desc = "Whether through fires, the vacuum of space, or hordes of souless husks of grey suited criminals, your crate will always be delivered!" - icon_state = "deliveries_officer_cap" - -//Chaplain -/obj/item/clothing/head/nun_hood - name = "nun hood" - desc = "Maximum piety in this star system." - icon_state = "nun_hood" - flags_inv = HIDEHAIR - flags_cover = HEADCOVERSEYES - -/obj/item/clothing/head/bishopmitre - name = "bishop mitre" - desc = "An opulent hat that functions as a radio to God. Or as a lightning rod, depending on who you ask." - icon_state = "bishopmitre" - //Detective /obj/item/clothing/head/fedora/det_hat name = "detective's fedora" @@ -252,12 +213,3 @@ #undef DRILL_SHOUTING #undef DRILL_YELLING #undef DRILL_CANADIAN - -/obj/item/clothing/head/witchunter - name = "witchunter hat" - desc = "This hat saw much use back in the day." - icon_state = "witchhunterhat" - item_state = "witchhunterhat" - flags_cover = HEADCOVERSEYES - flags_inv = HIDEEYES|HIDEHAIR - armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 61f032b5ef61..b2636b02871b 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -17,18 +17,6 @@ armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) strip_delay = (8 SECONDS) -/obj/item/clothing/head/spacepolice - name = "space police cap" - desc = "A blue cap for patrolling the daily beat." - icon_state = "policecap_families" - item_state = "policecap_families" - -/obj/item/clothing/head/powdered_wig - name = "powdered wig" - desc = "A powdered wig." - icon_state = "pwig" - item_state = "pwig" - /obj/item/clothing/head/that name = "top-hat" desc = "It's an amish looking hat." @@ -37,30 +25,6 @@ dog_fashion = /datum/dog_fashion/head throwforce = 1 -/obj/item/clothing/head/canada - name = "striped red tophat" - desc = "It smells like fresh donut holes. / Il sent comme des trous de beignets frais." - icon_state = "canada" - item_state = "canada" - -/obj/item/clothing/head/redcoat - name = "redcoat's hat" - icon_state = "redcoat" - desc = "'I guess it's a redhead.'" - -/obj/item/clothing/head/plaguedoctorhat - name = "plague doctor's hat" - desc = "These were once used by plague doctors. They're pretty much useless." - icon_state = "plaguedoctor" - permeability_coefficient = 0.01 - -/obj/item/clothing/head/hasturhood - name = "hastur's hood" - desc = "It's unspeakably stylish." - icon_state = "hasturhood" - flags_inv = HIDEHAIR - flags_cover = HEADCOVERSEYES - /obj/item/clothing/head/nursehat name = "nurse's hat" desc = "It allows quick identification of trained medical personnel." @@ -78,15 +42,6 @@ clothing_flags = SNUG_FIT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/head/cueball - name = "cueball helmet" - desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?" - icon_state = "cueball" - item_state="cueball" - clothing_flags = SNUG_FIT - flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - /obj/item/clothing/head/snowman name = "Snowman Head" desc = "A ball of white styrofoam. So festive." @@ -96,38 +51,6 @@ flags_cover = HEADCOVERSEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/head/justice - name = "justice hat" - desc = "Fight for what's righteous!" - icon_state = "justicered" - item_state = "justicered" - clothing_flags = SNUG_FIT - flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - flags_cover = HEADCOVERSEYES - -/obj/item/clothing/head/justice/blue - icon_state = "justiceblue" - item_state = "justiceblue" - -/obj/item/clothing/head/justice/yellow - icon_state = "justiceyellow" - item_state = "justiceyellow" - -/obj/item/clothing/head/justice/green - icon_state = "justicegreen" - item_state = "justicegreen" - -/obj/item/clothing/head/justice/pink - icon_state = "justicepink" - item_state = "justicepink" - -/obj/item/clothing/head/rabbitears - name = "rabbit ears" - desc = "A headband with a pair of faux rabbit ears." - icon_state = "bunny" - - dog_fashion = /datum/dog_fashion/head/rabbit - /obj/item/clothing/head/pirate name = "pirate hat" desc = "Yarr." @@ -170,42 +93,12 @@ icon_state = "bandana" item_state = "bandana" -/obj/item/clothing/head/bowler - name = "bowler-hat" - desc = "Gentleman, elite aboard!" - icon_state = "bowler" - item_state = "bowler" - -/obj/item/clothing/head/witchwig - name = "witch costume wig" - desc = "Eeeee~heheheheheheh!" - icon_state = "witch" - item_state = "witch" - flags_inv = HIDEHAIR - -/obj/item/clothing/head/chicken - name = "chicken suit head" - desc = "Bkaw!" - icon_state = "chickenhead" - item_state = "chickensuit" - clothing_flags = SNUG_FIT - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - /obj/item/clothing/head/bearpelt name = "bear pelt hat" desc = "Fuzzy." icon_state = "bearpelt" item_state = "bearpelt" -/obj/item/clothing/head/xenos - name = "xenos helmet" - icon_state = "xenos" - item_state = "xenos_helm" - desc = "A helmet made out of chitinous alien hide." - clothing_flags = SNUG_FIT - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - /obj/item/clothing/head/fedora name = "fedora" icon_state = "fedora" @@ -229,34 +122,6 @@ item_state = "hat_solgov" desc = "A slick blue hat used by both solarian civilians and physicists." -/obj/item/clothing/head/sombrero - name = "sombrero" - icon_state = "sombrero" - item_state = "sombrero" - desc = "You can practically taste the fiesta." - flags_inv = HIDEHAIR - - dog_fashion = /datum/dog_fashion/head/sombrero - -/obj/item/clothing/head/sombrero/green - name = "green sombrero" - icon_state = "greensombrero" - item_state = "greensombrero" - desc = "As elegant as a dancing cactus." - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS - dog_fashion = null - -/obj/item/clothing/head/sombrero/shamebrero - name = "shamebrero" - icon_state = "shamebrero" - item_state = "shamebrero" - desc = "Once it's on, it never comes off." - dog_fashion = null - -/obj/item/clothing/head/sombrero/shamebrero/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT) - /obj/item/clothing/head/flatcap name = "flat cap" desc = "A working man's hat." @@ -297,14 +162,6 @@ min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT dog_fashion = /datum/dog_fashion/head/santa -/obj/item/clothing/head/jester - name = "jester hat" - desc = "A hat with bells, to add some merriness to the suit." - icon_state = "jester_hat" - -/obj/item/clothing/head/jester/alt - icon_state = "jester2" - /obj/item/clothing/head/rice_hat name = "rice hat" desc = "Welcome to the rice fields, motherfucker." @@ -328,45 +185,6 @@ icon_state = "crown" resistance_flags = FIRE_PROOF -/obj/item/clothing/head/crown/fancy - name = "magnificent crown" - desc = "A crown worn by only the highest emperors of the land space." - icon_state = "fancycrown" - -/obj/item/clothing/head/scarecrow_hat - name = "scarecrow hat" - desc = "A simple straw hat." - icon_state = "scarecrow_hat" - -/obj/item/clothing/head/lobsterhat - name = "foam lobster head" - desc = "When everything's going to crab, protecting your head is the best choice." - icon_state = "lobster_hat" - clothing_flags = SNUG_FIT - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/head/drfreezehat - name = "doctor freeze's wig" - desc = "A cool wig for cool people." - icon_state = "drfreeze_hat" - flags_inv = HIDEHAIR - -/obj/item/clothing/head/pharaoh - name = "pharaoh hat" - desc = "Walk like an Egyptian." - icon_state = "pharoah_hat" - item_state = "pharoah_hat" - -/obj/item/clothing/head/nemes - name = "headdress of Nemes" - desc = "Lavish space tomb not included." - icon_state = "nemes_headdress" - -/obj/item/clothing/head/delinquent - name = "delinquent hat" - desc = "Good grief." - icon_state = "delinquent" - /obj/item/clothing/head/frenchberet name = "french beret" desc = "A quality beret, infused with the aroma of chain-smoking, wine-swilling Parisians. You feel less inclined to engage in military conflict, for some reason." @@ -402,56 +220,12 @@ message += pick(" Honh honh honh!"," Honh!"," Zut Alors!") speech_args[SPEECH_MESSAGE] = trim(message) -/obj/item/clothing/head/clownmitre - name = "Hat of the Honkmother" - desc = "It's hard for parishoners to see a banana peel on the floor when they're looking up at your glorious chapeau." - icon_state = "clownmitre" - -/obj/item/clothing/head/kippah - name = "kippah" - desc = "Signals that you follow the Jewish Halakha. Keeps the head covered and the soul extra-Orthodox." - icon_state = "kippah" - -/obj/item/clothing/head/taqiyahwhite - name = "white taqiyah" - desc = "An extra-mustahabb way of showing your devotion to Allah." - icon_state = "taqiyahwhite" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/small - -/obj/item/clothing/head/taqiyahred - name = "red taqiyah" - desc = "An extra-mustahabb way of showing your devotion to Allah." - icon_state = "taqiyahred" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/small - -/obj/item/clothing/head/shrine_wig - name = "shrine maiden's wig" - desc = "Purify in style!" - flags_inv = HIDEHAIR //bald - mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' - icon_state = "shrine_wig" - item_state = "shrine_wig" - worn_x_dimension = 64 - worn_y_dimension = 64 - /obj/item/clothing/head/intern name = "\improper CentCom Head Intern beancap" desc = "A horrifying mix of beanie and softcap in CentCom green. You'd have to be pretty desperate for power over your peers to agree to wear this." icon_state = "intern_hat" item_state = "intern_hat" -/obj/item/clothing/head/goatpelt - name = "goat pelt hat" - desc = "Fuzzy and Warm!" - icon_state = "goatpelt" - item_state = "goatpelt" - -/obj/item/clothing/head/jackbros - name = "frosty hat" - desc = "Hee-ho!" - icon_state = "JackFrostHat" - item_state = "JackFrostHat" - /obj/item/clothing/head/maidheadband/syndicate name = "tactical maid headband" desc = "Tacticute." diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 5b8e228b49ee..3cd7c022887c 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -33,82 +33,6 @@ /obj/item/clothing/head/welding/attack_self(mob/user) weldingvisortoggle(user) -/* - * Cakehat - */ -/obj/item/clothing/head/hardhat/cakehat - name = "cakehat" - desc = "You put the cake on your head. Brilliant." - icon_state = "hardhat_cakehat" - item_state = "hardhat_cakehat" - lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' - righthand_file = 'icons/mob/inhands/clothing_righthand.dmi' - hitsound = 'sound/weapons/tap.ogg' - var/hitsound_on = 'sound/weapons/sear.ogg' //so we can differentiate between cakehat and energyhat - var/hitsound_off = 'sound/weapons/tap.ogg' - var/force_on = 15 - var/throwforce_on = 15 - var/damtype_on = BURN - flags_inv = HIDEEARS|HIDEHAIR - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - light_range = 2 //luminosity when on - flags_cover = HEADCOVERSEYES - heat = 999 - - dog_fashion = /datum/dog_fashion/head - -/obj/item/clothing/head/hardhat/cakehat/process() - var/turf/location = src.loc - if(ishuman(location)) - var/mob/living/carbon/human/M = location - if(M.is_holding(src) || M.head == src) - location = M.loc - - if(isturf(location)) - location.hotspot_expose(700, 1) - -/obj/item/clothing/head/hardhat/cakehat/turn_on(mob/living/user) - ..() - force = force_on - throwforce = throwforce_on - damtype = damtype_on - hitsound = hitsound_on - START_PROCESSING(SSobj, src) - -/obj/item/clothing/head/hardhat/cakehat/turn_off(mob/living/user) - ..() - force = 0 - throwforce = 0 - damtype = BRUTE - hitsound = hitsound_off - STOP_PROCESSING(SSobj, src) - -/obj/item/clothing/head/hardhat/cakehat/get_temperature() - return on * heat - -/obj/item/clothing/head/hardhat/cakehat/energycake - name = "energy cake" - desc = "You put the energy sword on your cake. Brilliant." - icon_state = "hardhat_energycake" - item_state = "hardhat_energycake" - hitsound = 'sound/weapons/tap.ogg' - hitsound_on = 'sound/weapons/blade1.ogg' - hitsound_off = 'sound/weapons/tap.ogg' - damtype_on = BRUTE - force_on = 18 //same as epen (but much more obvious) - light_range = 3 //ditto - heat = 0 - -/obj/item/clothing/head/hardhat/cakehat/energycake/turn_on(mob/living/user) - playsound(user, 'sound/weapons/saberon.ogg', 5, TRUE) - to_chat(user, "You turn on \the [src].") - ..() - -/obj/item/clothing/head/hardhat/cakehat/energycake/turn_off(mob/living/user) - playsound(user, 'sound/weapons/saberoff.ogg', 5, TRUE) - to_chat(user, "You turn off \the [src].") - ..() - /* * Trapper Hat */ @@ -181,17 +105,6 @@ if(ishuman(user)) add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY) -/obj/item/clothing/head/hardhat/reindeer - name = "novelty reindeer hat" - desc = "Some fake antlers and a very fake red nose." - icon_state = "hardhat_reindeer" - item_state = "hardhat_reindeer" - flags_inv = 0 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - light_range = 1 //luminosity when on - - dog_fashion = /datum/dog_fashion/head/reindeer - /obj/item/clothing/head/cardborg name = "cardborg helmet" desc = "A helmet made out of a box." @@ -304,69 +217,6 @@ flags_inv = HIDEEARS|HIDEHAIR armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = -15, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) -/obj/item/clothing/head/foilhat - name = "tinfoil hat" - desc = "Thought control rays, psychotronic scanning. Don't mind that, I'm protected cause I made this hat." - icon_state = "foilhat" - item_state = "foilhat" - armor = list("melee" = 0, "bullet" = 0, "laser" = -5,"energy" = -15, "bomb" = 0, "bio" = 0, "rad" = -5, "fire" = 0, "acid" = 0) - equip_delay_other = 140 - clothing_flags = ANTI_TINFOIL_MANEUVER - var/datum/brain_trauma/mild/phobia/conspiracies/paranoia - var/warped = FALSE - -/obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot) - . = ..() - if(slot != ITEM_SLOT_HEAD || warped) - return - if(paranoia) - QDEL_NULL(paranoia) - paranoia = new() - - user.gain_trauma(paranoia, TRAUMA_RESILIENCE_MAGIC) - to_chat(user, "As you don the foiled hat, an entire world of conspiracy theories and seemingly insane ideas suddenly rush into your mind. What you once thought unbelievable suddenly seems.. undeniable. Everything is connected and nothing happens just by accident. You know too much and now they're out to get you. ") - -/obj/item/clothing/head/foilhat/MouseDrop(atom/over_object) - //God Im sorry - if(!warped && iscarbon(usr)) - var/mob/living/carbon/C = usr - if(src == C.head) - to_chat(C, "Why would you want to take this off? Do you want them to get into your mind?!") - return - return ..() - -/obj/item/clothing/head/foilhat/dropped(mob/user) - . = ..() - if(paranoia) - QDEL_NULL(paranoia) - -/obj/item/clothing/head/foilhat/proc/warp_up() - name = "scorched tinfoil hat" - desc = "A badly warped up hat. Quite unprobable this will still work against any of fictional and contemporary dangers it used to." - warped = TRUE - clothing_flags &= ~ANTI_TINFOIL_MANEUVER - if(!isliving(loc) || !paranoia) - return - var/mob/living/target = loc - if(target.get_item_by_slot(ITEM_SLOT_HEAD) != src) - return - QDEL_NULL(paranoia) - if(target.stat < UNCONSCIOUS) - to_chat(target, "Your zealous conspirationism rapidly dissipates as the donned hat warps up into a ruined mess. All those theories starting to sound like nothing but a ridicolous fanfare.") - -/obj/item/clothing/head/foilhat/attack_hand(mob/user) - if(!warped && iscarbon(user)) - var/mob/living/carbon/C = user - if(src == C.head) - to_chat(user, "Why would you want to take this off? Do you want them to get into your mind?!") - return - return ..() - -/obj/item/clothing/head/foilhat/microwave_act(obj/machinery/microwave/M) - . = ..() - if(!warped) - warp_up() - /obj/item/clothing/head/plastic_flower name = "plastic flower" desc = "A realistic imitation of a flower. Not edible though." diff --git a/code/modules/clothing/outfits/factions/independent.dm b/code/modules/clothing/outfits/factions/independent.dm index 2b93739fb0f9..ba883d59f4dd 100644 --- a/code/modules/clothing/outfits/factions/independent.dm +++ b/code/modules/clothing/outfits/factions/independent.dm @@ -173,7 +173,6 @@ uniform = /obj/item/clothing/under/rank/command/head_of_personnel dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain shoes = /obj/item/clothing/shoes/sneakers/brown - head = /obj/item/clothing/head/hopcap backpack_contents = list(/obj/item/storage/box/ids=1,\ /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) @@ -536,7 +535,6 @@ ears = /obj/item/radio/headset/headset_cargo uniform = /obj/item/clothing/under/rank/cargo/qm - head = /obj/item/clothing/head/supply_chief dcoat = /obj/item/clothing/suit/hooded/wintercoat/cargo shoes = /obj/item/clothing/shoes/sneakers/brown glasses = /obj/item/clothing/glasses/sunglasses diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 1754e84c7e8e..8502f28185cb 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -125,25 +125,6 @@ if(S) S.owner = H -/datum/outfit/wizard/apprentice - name = "Wizard Apprentice" - r_hand = null - l_hand = null - r_pocket = /obj/item/teleportation_scroll/apprentice - -/datum/outfit/wizard/red - name = "Red Wizard" - - suit = /obj/item/clothing/suit/wizrobe/red - head = /obj/item/clothing/head/wizard/red - -/datum/outfit/wizard/weeb - name = "Marisa Wizard" - - suit = /obj/item/clothing/suit/wizrobe/marisa - shoes = /obj/item/clothing/shoes/sandal/marisa - head = /obj/item/clothing/head/wizard/marisa - /datum/outfit/plasmaman name = "Plasmaman" diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm deleted file mode 100644 index 4ed246a587be..000000000000 --- a/code/modules/clothing/shoes/bananashoes.dm +++ /dev/null @@ -1,68 +0,0 @@ -//banana flavored chaos and horror ahead - -/obj/item/clothing/shoes/clown_shoes/banana_shoes - name = "mk-honk prototype shoes" - desc = "Lost prototype of advanced clown tech. Powered by bananium, these shoes leave a trail of chaos in their wake." - icon_state = "clown_prototype_off" - actions_types = list(/datum/action/item_action/toggle) - var/on = FALSE - var/always_noslip = FALSE - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/Initialize() - . = ..() - if(always_noslip) - clothing_flags |= NOSLIP - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/ComponentInitialize() - . = ..() - AddElement(/datum/element/update_icon_updates_onmob) - AddComponent(/datum/component/material_container, list(/datum/material/hellstone), 200000, TRUE, /obj/item/stack) - AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75, falloff_exponent = 20) - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action() - . = ..() - var/mob/wearer = loc - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - if(on && istype(wearer)) - if(bananium.get_material_amount(/datum/material/hellstone) < 100) - on = !on - if(!always_noslip) - clothing_flags &= ~NOSLIP - update_appearance() - to_chat(loc, "You ran out of bananium!") - else - new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(wearer.dir, 180))) //honk - bananium.use_amount_mat(100, /datum/material/hellstone) - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user) - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - var/sheet_amount = bananium.retrieve_all() - if(sheet_amount) - to_chat(user, "You retrieve [sheet_amount] sheets of bananium from the prototype shoes.") - else - to_chat(user, "You cannot retrieve any bananium from the prototype shoes!") - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/examine(mob/user) - . = ..() - . += "The shoes are [on ? "enabled" : "disabled"]." - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user) - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - if(bananium.get_material_amount(/datum/material/hellstone)) - on = !on - update_appearance() - to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes.") - if(!always_noslip) - if(on) - clothing_flags |= NOSLIP - else - clothing_flags &= ~NOSLIP - else - to_chat(user, "You need bananium to turn the prototype shoes on!") - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/update_icon_state() - if(on) - icon_state = "clown_prototype_on" - else - icon_state = "clown_prototype_off" - return ..() diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 4c078a7e0ad1..ad130ea45fac 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -16,23 +16,6 @@ lace_time = 12 SECONDS greyscale_icon_state = "boots" -/obj/item/clothing/shoes/combat/sneakboots - name = "sneakboots" - desc = "These boots have special noise cancelling soles. Perfect for stealth, if it wasn't for the color scheme." - icon_state = "sneakboots" - item_state = "sneakboots" - w_class = WEIGHT_CLASS_SMALL - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/shoes/combat/sneakboots/equipped(mob/living/carbon/human/user, slot) - . = ..() - if(slot == ITEM_SLOT_FEET) - ADD_TRAIT(user, TRAIT_SILENT_FOOTSTEPS, SHOES_TRAIT) - -/obj/item/clothing/shoes/combat/sneakboots/dropped(mob/living/carbon/human/user) - REMOVE_TRAIT(user, TRAIT_SILENT_FOOTSTEPS, SHOES_TRAIT) - return ..() - /obj/item/clothing/shoes/combat/swat //overpowered boots for death squads name = "\improper SWAT boots" desc = "High speed, no drag combat boots." @@ -84,61 +67,6 @@ can_be_tied = FALSE greyscale_icon_state = "boots" -/obj/item/clothing/shoes/galoshes/dry - name = "absorbent galoshes" - desc = "A pair of orange rubber boots, designed to prevent slipping on wet surfaces while also drying them." - icon_state = "galoshes_dry" - -/obj/item/clothing/shoes/galoshes/dry/step_action() - var/turf/open/t_loc = get_turf(src) - SEND_SIGNAL(t_loc, COMSIG_TURF_MAKE_DRY, TURF_WET_WATER, TRUE, INFINITY) - -/obj/item/clothing/shoes/clown_shoes - desc = "The prankster's standard-issue clowning shoes. Damn, they're huge! Ctrl-click to toggle waddle dampeners." - name = "clown shoes" - icon_state = "clown" - item_state = "clown_shoes" - slowdown = SHOES_SLOWDOWN+1 - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes/clown - var/enabled_waddle = TRUE - lace_time = 20 SECONDS // how the hell do these laces even work?? - -/obj/item/clothing/shoes/clown_shoes/Initialize() - . = ..() - AddComponent(/datum/component/squeak, list('sound/effects/clownstep1.ogg'=1,'sound/effects/clownstep2.ogg'=1), 50, falloff_exponent = 20) //die off quick please) - -/obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot) - . = ..() - if(slot == ITEM_SLOT_FEET) - if(enabled_waddle) - user.AddElement(/datum/element/waddling) - if(user.mind && user.mind.assigned_role == "Clown") - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "clownshoes", /datum/mood_event/clownshoes) - -/obj/item/clothing/shoes/clown_shoes/dropped(mob/user) - . = ..() - user.RemoveElement(/datum/element/waddling) - if(user.mind && user.mind.assigned_role == "Clown") - SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "clownshoes") - -/obj/item/clothing/shoes/clown_shoes/CtrlClick(mob/living/user) - if(!isliving(user)) - return - if(user.get_active_held_item() != src) - to_chat(user, "You must hold the [src] in your hand to do this!") - return - if (!enabled_waddle) - to_chat(user, "You switch off the waddle dampeners!") - enabled_waddle = TRUE - else - to_chat(user, "You switch on the waddle dampeners!") - enabled_waddle = FALSE - -/obj/item/clothing/shoes/clown_shoes/jester - name = "jester shoes" - desc = "A court jester's shoes, updated with modern squeaking technology." - icon_state = "jester_shoes" - /obj/item/clothing/shoes/jackboots name = "jackboots" desc = "Ankle-high combat boots for combat scenarios or combat situations. All combat, all the time." @@ -221,36 +149,12 @@ . = ..() ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) -/obj/item/clothing/shoes/cyborg - name = "cyborg boots" - desc = "Shoes for a cyborg costume." - icon_state = "boots" - /obj/item/clothing/shoes/laceup name = "laceup shoes" desc = "The height of fashion, and they're pre-polished!" icon_state = "laceups" equip_delay_other = 50 -/obj/item/clothing/shoes/roman - name = "roman sandals" - desc = "Sandals with buckled leather straps on it." - icon_state = "roman" - item_state = "roman" - strip_delay = 100 - equip_delay_other = 100 - permeability_coefficient = 0.9 - can_be_tied = FALSE - -/obj/item/clothing/shoes/griffin - name = "griffon boots" - desc = "A pair of costume boots fashioned after bird talons." - icon_state = "griffinboots" - item_state = "griffinboots" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes - lace_time = 8 SECONDS - greyscale_icon_state = "boots" - /obj/item/clothing/shoes/bhop name = "jump boots" desc = "The EXOCOM's Cortez launch boot line represents a specialized pair of mining boots with a built-in propulsion system, designed for rapid foward movement." @@ -287,57 +191,6 @@ else to_chat(user, "Something prevents you from dashing forward!") -/obj/item/clothing/shoes/bronze - name = "bronze boots" - desc = "A giant, clunky pair of shoes crudely made out of bronze. Why would anyone wear these?" - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "clockwork_treads" - lace_time = 8 SECONDS - greyscale_icon_state = "boots" - -/obj/item/clothing/shoes/bronze/Initialize() - . = ..() - AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/magic/clockwork/fellowship_armory.ogg' = 1), 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) - -/obj/item/clothing/shoes/wheelys - name = "Wheely-Heels" - desc = "Uses patented retractable wheel technology. Never sacrifice speed for style - not that this provides much of either." //Thanks Fel - icon_state = "wheelys" - item_state = "wheelys" - actions_types = list(/datum/action/item_action/wheelys) - var/wheelToggle = FALSE //False means wheels are not popped out - var/obj/vehicle/ridden/scooter/wheelys/W - -/obj/item/clothing/shoes/wheelys/Initialize() - . = ..() - W = new /obj/vehicle/ridden/scooter/wheelys(null) - -/obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action) - if(!isliving(user)) - return - if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/wheelys)) - to_chat(user, "You must be wearing the wheely-heels to use them!") - return - if(!(W.is_occupant(user))) - wheelToggle = FALSE - if(wheelToggle) - W.unbuckle_mob(user) - wheelToggle = FALSE - return - W.forceMove(get_turf(user)) - W.buckle_mob(user) - wheelToggle = TRUE - -/obj/item/clothing/shoes/wheelys/dropped(mob/user) - if(wheelToggle) - W.unbuckle_mob(user) - wheelToggle = FALSE - ..() - -/obj/item/clothing/shoes/wheelys/Destroy() - QDEL_NULL(W) - . = ..() - /obj/item/clothing/shoes/kindleKicks name = "Kindle Kicks" desc = "They'll sure kindle something in you, and it's not childhood nostalgia..." @@ -351,7 +204,6 @@ var/lightCycle = 0 var/active = FALSE - /obj/item/clothing/shoes/kindleKicks/ui_action_click(mob/user, action) if(active) return @@ -433,21 +285,3 @@ desc = "A pair of authentic haute couture boots. You doubt they have ever been close to cattle." icon_state = "cowboy_fancy" permeability_coefficient = 0.08 - -/obj/item/clothing/shoes/cookflops - desc = "All this talk of antags, greytiding, and griefing... I just wanna grill for god's sake!" - name = "grilling sandals" - icon_state = "cookflops" - can_be_tied = FALSE - -/obj/item/clothing/shoes/yakuza - name = "tojo clan shoes" - desc = "Steel-toed and intimidating." - icon_state = "MajimaShoes" - item_state = "MajimaShoes_worn" - -/obj/item/clothing/shoes/jackbros - name = "frosty boots" - desc = "For when you're stepping on up to the plate." - icon_state = "JackFrostShoes" - item_state = "JackFrostShoes_worn" diff --git a/code/modules/clothing/suits/chaplainsuits.dm b/code/modules/clothing/suits/chaplainsuits.dm index 073966a5fc15..30436045da2f 100644 --- a/code/modules/clothing/suits/chaplainsuits.dm +++ b/code/modules/clothing/suits/chaplainsuits.dm @@ -5,69 +5,3 @@ /obj/item/clothing/suit/hooded/chaplainsuit allowed = list(/obj/item/storage/book/bible, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - -//Suits -/obj/item/clothing/suit/chaplainsuit/holidaypriest - name = "holiday priest" - desc = "This is a nice holiday, my son." - icon_state = "holidaypriest" - item_state = "w_suit" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - -/obj/item/clothing/suit/chaplainsuit/nun - name = "nun robe" - desc = "Maximum piety in this star system." - icon_state = "nun" - item_state = "nun" - body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS - flags_inv = HIDESHOES|HIDEJUMPSUIT - -/obj/item/clothing/suit/chaplainsuit/bishoprobe - name = "bishop's robes" - desc = "Glad to see the tithes you collected were well spent." - icon_state = "bishoprobe" - item_state = "bishoprobe" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - -/obj/item/clothing/suit/hooded/chaplainsuit/monkhabit - name = "monk's habit" - desc = "A few steps above rended sackcloth." - icon_state = "monkfrock" - item_state = "monkfrock" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - hoodtype = /obj/item/clothing/head/hooded/monkhabit - -/obj/item/clothing/head/hooded/monkhabit - name = "monk's hood" - desc = "For when a man wants to cover up his tonsure." - icon_state = "monkhood" - item_state = "monkhood" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS - -/obj/item/clothing/suit/chaplainsuit/monkrobeeast - name = "eastern monk's robes" - desc = "Best combined with a shaved head." - icon_state = "monkrobeeast" - item_state = "monkrobeeast" - body_parts_covered = GROIN|LEGS - flags_inv = HIDEJUMPSUIT - -/obj/item/clothing/suit/chaplainsuit/whiterobe - name = "white robe" - desc = "Good for clerics and sleepy crewmembers." - icon_state = "whiterobe" - item_state = "whiterobe" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - -/obj/item/clothing/suit/chaplainsuit/clownpriest - name = "Robes of the Honkmother" - desc = "Meant for a clown of the cloth." - icon_state = "clownpriest" - item_state = "clownpriest" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - allowed = list(/obj/item/megaphone/clown, /obj/item/soap, /obj/item/reagent_containers/food/snacks/pie/cream, /obj/item/bikehorn, /obj/item/bikehorn/golden, /obj/item/bikehorn/airhorn, /obj/item/instrument/bikehorn, /obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter, /obj/item/toy/crayon, /obj/item/toy/crayon/spraycan, /obj/item/toy/crayon/spraycan/lubecan, /obj/item/grown/bananapeel, /obj/item/reagent_containers/food/snacks/grown/banana) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 763be0e2f468..982b3804f586 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -180,19 +180,3 @@ resistance_flags = NONE flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE flags_cover = HEADCOVERSEYES - -/obj/item/clothing/suit/hooded/cloak/goliath/polar - name = "polar cloak" - icon_state = "polarcloak" - hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath/polar - desc = "A tribal hood made from a polar bears pelt. Keeps it's wearer warm and looks badass while doing it." - min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - cold_protection = CHEST|GROIN|LEGS|FEET|ARMS - -/obj/item/clothing/head/hooded/cloakhood/goliath/polar - name = "polar cloak" - icon_state = "hoodie_gray" - mob_overlay_state = "polhood" - desc = "Wear bear on head show little man you big man, kill bear for cloak." - min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - cold_protection = HEAD diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm index b69061cffbd1..e1507af5c229 100644 --- a/code/modules/clothing/suits/hoodies.dm +++ b/code/modules/clothing/suits/hoodies.dm @@ -1,6 +1,7 @@ /obj/item/clothing/suit/hooded/hoodie name = "hoodie" desc = "HOW" + icon_state = null hoodtype = /obj/item/clothing/head/hooded/hood body_parts_covered = CHEST|ARMS pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo/large @@ -19,6 +20,9 @@ /obj/item/clothing/head/hooded/hood name = "hood" desc = "HOW" + icon_state = null + icon = 'icons/obj/clothing/head/winterhood.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/winterhood.dmi' body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) //it's just a hoodie. diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 3b1735208dda..2b06e695851c 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -270,24 +270,6 @@ icon_state = "coat_terragov" item_state = "coat_terragov" -/obj/item/clothing/suit/hooded/enginseer - name = "enginseer regalia" - desc = "You hold the secrets of the Machine." - icon_state = "enginseer" - item_state = "enginseer" - hoodtype = /obj/item/clothing/head/hooded/enginseer - body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS - flags_inv = HIDESHOES|HIDEJUMPSUIT|HIDEGLOVES - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/gun, /obj/item/melee, /obj/item/radio, /obj/item/storage/book) - -/obj/item/clothing/head/hooded/enginseer - name = "enginseer's hood" - desc = "You are honored that they require your skills." - icon_state = "enginseerhood" - item_state = "enginseerhood" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE|HIDEFACIALHAIR - /obj/item/clothing/suit/armor/witchhunter name = "witchunter garb" desc = "This worn outfit saw much use back in the day." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6e8b87b06285..c8e54edb2e01 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -31,20 +31,6 @@ /* * Costume */ -/obj/item/clothing/suit/hooded/flashsuit - name = "flashy costume" - desc = "What did you expect?" - icon_state = "flashsuit" - item_state = "armor" - body_parts_covered = CHEST|GROIN - hoodtype = /obj/item/clothing/head/hooded/flashsuit - -/obj/item/clothing/head/hooded/flashsuit - name = "flash button" - desc = "You will learn to fear the flash." - icon_state = "flashsuit" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK /obj/item/clothing/suit/pirate name = "pirate coat" @@ -59,27 +45,6 @@ icon_state = "hgpirate" item_state = "hgpirate" - -/obj/item/clothing/suit/cyborg_suit - name = "cyborg suit" - desc = "Suit for a cyborg costume." - icon_state = "death" - item_state = "death" - mob_overlay_state = "cardborg" - flags_1 = CONDUCT_1 - fire_resist = T0C+5200 - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - - -/obj/item/clothing/suit/justice - name = "justice suit" - desc = "this pretty much looks ridiculous" //Needs no fixing - icon_state = "justice" - item_state = "justice" - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) - - /obj/item/clothing/suit/judgerobe name = "judge's robe" desc = "This robe commands authority." @@ -116,42 +81,6 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT resistance_flags = NONE -/obj/item/clothing/suit/hastur - name = "\improper Hastur's robe" - desc = "Robes not meant to be worn by man." - icon_state = "hastur" - item_state = "hastur" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - - -/obj/item/clothing/suit/imperium_monk - name = "\improper Imperium monk suit" - desc = "Have YOU killed a xeno today?" - icon_state = "imperium_monk" - item_state = "imperium_monk" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDESHOES|HIDEJUMPSUIT - allowed = list(/obj/item/storage/book/bible, /obj/item/melee/sword, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen) - - -/obj/item/clothing/suit/chickensuit - name = "chicken suit" - desc = "A suit made long ago by the ancient empire KFC." - icon_state = "chickensuit" - item_state = "chickensuit" - body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET - flags_inv = HIDESHOES|HIDEJUMPSUIT - - -/obj/item/clothing/suit/monkeysuit - name = "monkey suit" - desc = "A suit that looks like a primate." - icon_state = "monkeysuit" - item_state = "monkeysuit" - body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET|HANDS - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - /obj/item/clothing/suit/toggle/owlwings name = "owl cloak" desc = "A soft brown cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive the ladies mad." @@ -208,42 +137,6 @@ body_parts_covered = CHEST|GROIN flags_inv = HIDEJUMPSUIT -/obj/item/clothing/suit/poncho - name = "poncho" - desc = "Your classic, non-racist poncho." - icon_state = "classicponcho" - item_state = "classicponcho" - -/obj/item/clothing/suit/poncho/green - name = "green poncho" - desc = "Your classic, non-racist poncho. This one is green." - icon_state = "greenponcho" - item_state = "greenponcho" - -/obj/item/clothing/suit/poncho/red - name = "red poncho" - desc = "Your classic, non-racist poncho. This one is red." - icon_state = "redponcho" - item_state = "redponcho" - -/obj/item/clothing/suit/poncho/ponchoshame - name = "poncho of shame" - desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseparable. Literally." - icon_state = "ponchoshame" - item_state = "ponchoshame" - -/obj/item/clothing/suit/poncho/ponchoshame/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT) - -/obj/item/clothing/suit/whitedress - name = "white dress" - desc = "A fancy white dress." - icon_state = "white_dress" - item_state = "w_suit" - body_parts_covered = CHEST|GROIN|LEGS|FEET - flags_inv = HIDEJUMPSUIT|HIDESHOES - /obj/item/clothing/suit/hooded/carp_costume name = "carp costume" desc = "A costume made from 'synthetic' carp scales, it smells." @@ -274,44 +167,6 @@ if (user.head == src) user.faction -= "carp" -/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts? - name = "corgi costume" - desc = "A costume that looks like someone made a human-like corgi, it won't guarantee belly rubs." - icon_state = "ian" - item_state = "labcoat" - body_parts_covered = CHEST|GROIN|ARMS - //cold_protection = CHEST|GROIN|ARMS - //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - allowed = list() - hoodtype = /obj/item/clothing/head/hooded/ian_hood - dog_fashion = /datum/dog_fashion/back - -/obj/item/clothing/head/hooded/ian_hood - name = "corgi hood" - desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits." - icon_state = "ian" - body_parts_covered = HEAD - //cold_protection = HEAD - //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - flags_inv = HIDEHAIR|HIDEEARS - -/obj/item/clothing/suit/hooded/bee_costume // It's Hip! - name = "bee costume" - desc = "Bee the true Queen!" - icon_state = "bee" - item_state = "labcoat" - body_parts_covered = CHEST|GROIN|ARMS - clothing_flags = THICKMATERIAL - hoodtype = /obj/item/clothing/head/hooded/bee_hood - -/obj/item/clothing/head/hooded/bee_hood - name = "bee hood" - desc = "A hood attached to a bee costume." - icon_state = "bee" - body_parts_covered = HEAD - clothing_flags = THICKMATERIAL - flags_inv = HIDEHAIR|HIDEEARS - /obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!? name = "bloated human suit" desc = "A horribly bloated suit made from human skins." @@ -333,14 +188,6 @@ flags_cover = HEADCOVERSEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/suit/shrine_maiden - name = "shrine maiden's outfit" - desc = "Makes you want to exterminate some troublesome youkai." - icon_state = "shrine_maiden" - item_state = "shrine_maiden" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - /* * Misc */ @@ -378,18 +225,6 @@ icon_state = "nerdshirt" item_state = "nerdshirt" -/obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat. - name = "Vape Naysh shirt" - desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironically?" - icon_state = "vapeshirt" - item_state = "vapeshirt" - -/obj/item/clothing/suit/striped_sweater - name = "striped sweater" - desc = "Reminds you of someone, but you just can't put your finger on it..." - icon_state = "waldo_shirt" - item_state = "waldo_shirt" - /obj/item/clothing/suit/jacket name = "bomber jacket" desc = "Aviators not included." @@ -409,13 +244,6 @@ max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio) -/obj/item/clothing/suit/jacket/leather/overcoat - name = "leather overcoat" - desc = "That's a damn fine coat." - icon_state = "leathercoat" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - cold_protection = CHEST|GROIN|ARMS|LEGS - /obj/item/clothing/suit/jacket/leather/duster name = "leather duster" desc = "A long, utilitarian leather coat. Ideal for protecting its wearer from rain, sun, and dust." @@ -478,40 +306,12 @@ icon_state = "letterman_n" item_state = "letterman_n" -/obj/item/clothing/suit/dracula - name = "dracula coat" - desc = "Looks like this belongs in a very old movie set." - icon_state = "draculacoat" - item_state = "draculacoat" - -/obj/item/clothing/suit/drfreeze_coat - name = "doctor freeze's labcoat" - desc = "A labcoat imbued with the power of features and freezes." - icon_state = "drfreeze_coat" - item_state = "drfreeze_coat" - /obj/item/clothing/suit/gothcoat name = "gothic coat" desc = "Perfect for those who want to stalk around a corner of a bar." icon_state = "gothcoat" item_state = "gothcoat" -/obj/item/clothing/suit/xenos - name = "xenos suit" - desc = "A suit made out of chitinous alien hide." - icon_state = "xenos" - item_state = "xenos_helm" - body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - allowed = list(/mob/living/simple_animal/hostile/facehugger/toy) - -/obj/item/clothing/suit/nemes - name = "pharoah tunic" - desc = "Lavish space tomb not included." - icon_state = "pharoah" - item_state = "pharoah" - body_parts_covered = CHEST|GROIN - /obj/item/clothing/suit/caution name = "wet floor sign" desc = "No running." @@ -528,34 +328,6 @@ attack_verb = list("warned", "cautioned", "smashed") armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) -/obj/item/clothing/suit/changshan_red - name = "red changshan" - desc = "A gorgeously embroidered silk shirt." - icon_state = "changshan_red" - item_state = "changshan_red" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - -/obj/item/clothing/suit/changshan_blue - name = "blue changshan" - desc = "A gorgeously embroidered silk shirt." - icon_state = "changshan_blue" - item_state = "changshan_blue" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - -/obj/item/clothing/suit/cheongsam_red - name = "red cheongsam" - desc = "A gorgeously embroidered silk dress." - icon_state = "cheongsam_red" - item_state = "cheongsam_red" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - -/obj/item/clothing/suit/cheongsam_blue - name = "blue cheongsam" - desc = "A gorgeously embroidered silk dress." - icon_state = "cheongsam_blue" - item_state = "cheongsam_blue" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - /obj/item/clothing/head/hooded/ablative name = "ablative hood" desc = "Hood hopefully belonging to an ablative trenchcoat. Includes a visor for cool-o-vision." @@ -606,20 +378,6 @@ if (prob(hit_reflect_chance)) return TRUE -/obj/item/clothing/suit/spookyghost - name = "spooky ghost" - desc = "This is obviously just a bedsheet, but maybe try it on?" - icon_state = "bedsheet" - user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150) - alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire - -/obj/item/clothing/suit/bronze - name = "bronze suit" - desc = "A big and clanky suit made of bronze that offers no protection and looks very unfashionable. Nice." - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "clockwork_cuirass_old" - armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = -15, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) - /obj/item/clothing/suit/ghost_sheet name = "ghost sheet" desc = "The hands float by themselves, so it's extra spooky." @@ -644,40 +402,8 @@ icon = 'icons/obj/clothing/belts.dmi' icon_state = "suspenders_gray" -/obj/item/clothing/suit/hooded/mysticrobe - name = "mystic's robe" - desc = "Wearing this makes you feel more attuned with the nature of the universe... as well as a bit more irresponsible. " - icon_state = "mysticrobe" - item_state = "mysticrobe" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/spellbook, /obj/item/storage/book/bible) - flags_inv = HIDEJUMPSUIT - hoodtype = /obj/item/clothing/head/hooded/mysticrobe - -/obj/item/clothing/head/hooded/mysticrobe - name = "mystic's hood" - desc = "The balance of reality tips towards order." - icon_state = "mystichood" - item_state = "mystichood" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK - /obj/item/clothing/suit/hawaiian name = "floral shirt" desc = "From grills to guns, this shirt's seen it all." icon_state = "hawaiian_blue" item_state = "hawaiian_blue" - -/obj/item/clothing/suit/yakuza - name = "tojo clan jacket" - desc = "The jacket of a mad dog." - icon_state = "MajimaJacket" - item_state = "MajimaJacket" - body_parts_covered = ARMS - -/obj/item/clothing/suit/dutch - name = "dutch's jacket" - desc = "For those long nights on the beach in Tahiti." - icon_state = "DutchJacket" - item_state = "DutchJacket" - body_parts_covered = ARMS diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 451d428760f3..e0d7f1c7e124 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -11,47 +11,6 @@ resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = /datum/dog_fashion/head/blue_wizard -/obj/item/clothing/head/wizard/red - name = "red wizard hat" - desc = "Strange-looking red hat-wear that most certainly belongs to a real magic user." - icon_state = "redwizard" - dog_fashion = /datum/dog_fashion/head/red_wizard - -/obj/item/clothing/head/wizard/yellow - name = "yellow wizard hat" - desc = "Strange-looking yellow hat-wear that most certainly belongs to a powerful magic user." - icon_state = "yellowwizard" - dog_fashion = null - -/obj/item/clothing/head/wizard/black - name = "black wizard hat" - desc = "Strange-looking black hat-wear that most certainly belongs to a real skeleton. Spooky." - icon_state = "blackwizard" - dog_fashion = null - -/obj/item/clothing/head/wizard/fake - name = "wizard hat" - desc = "It has WIZZARD written across it in sequins. Comes with a cool beard." - icon_state = "wizard-fake" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = FLAMMABLE - dog_fashion = /datum/dog_fashion/head/blue_wizard - -/obj/item/clothing/head/wizard/marisa - name = "witch hat" - desc = "Strange-looking hat-wear. Makes you want to cast fireballs." - icon_state = "marisa" - dog_fashion = null - -/obj/item/clothing/head/wizard/magus - name = "\improper Magus helm" - desc = "A mysterious helmet that hums with an unearthly power." - icon_state = "magus" - item_state = "magus" - dog_fashion = null - /obj/item/clothing/head/wizard/santa name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" @@ -76,78 +35,12 @@ equip_delay_other = 50 resistance_flags = FIRE_PROOF | ACID_PROOF -/obj/item/clothing/suit/wizrobe/red - name = "red wizard robe" - desc = "A magnificent red gem-lined robe that seems to radiate power." - icon_state = "redwizard" - item_state = "redwizrobe" - -/obj/item/clothing/suit/wizrobe/yellow - name = "yellow wizard robe" - desc = "A magnificent yellow gem-lined robe that seems to radiate power." - icon_state = "yellowwizard" - item_state = "yellowwizrobe" - -/obj/item/clothing/suit/wizrobe/black - name = "black wizard robe" - desc = "An unnerving black gem-lined robe that reeks of death and decay." - icon_state = "blackwizard" - item_state = "blackwizrobe" - -/obj/item/clothing/suit/wizrobe/marisa - name = "witch robe" - desc = "Magic is all about the spell power, ZE!" - icon_state = "marisa" - item_state = "marisarobe" - -/obj/item/clothing/suit/wizrobe/magusblue - name = "\improper Magus robe" - desc = "A set of armored robes that seem to radiate a dark power." - icon_state = "magusblue" - item_state = "magusblue" - -/obj/item/clothing/suit/wizrobe/magusred - name = "\improper Magus robe" - desc = "A set of armored robes that seem to radiate a dark power." - icon_state = "magusred" - item_state = "magusred" - - /obj/item/clothing/suit/wizrobe/santa name = "Santa's suit" desc = "Festive!" icon_state = "santa" item_state = "santa" -/obj/item/clothing/suit/wizrobe/fake - name = "wizard robe" - desc = "A rather dull blue robe meant to mimic real wizard robes." - icon_state = "wizard-fake" - item_state = "wizrobe" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = FLAMMABLE - -/obj/item/clothing/head/wizard/marisa/fake - name = "witch hat" - desc = "Strange-looking hat-wear, makes you want to cast fireballs." - icon_state = "marisa" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = FLAMMABLE - -/obj/item/clothing/suit/wizrobe/marisa/fake - name = "witch robe" - desc = "Magic is all about the spell power, ZE!" - icon_state = "marisa" - item_state = "marisarobe" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = FLAMMABLE - /obj/item/clothing/suit/space/hardsuit/shielded/wizard name = "battlemage armour" desc = "Not all wizards are afraid of getting up close and personal." diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index 3443b32e931e..9352e1b371aa 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -88,7 +88,6 @@ /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, /obj/item/reagent_containers/food/snacks/grown/chili = 1, /obj/item/reagent_containers/food/snacks/grown/tomato = 1, - /obj/item/clothing/shoes/clown_shoes = 1 ) result = /obj/item/reagent_containers/food/snacks/soup/clownchili subcategory = CAT_SOUP diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 5baed7a45309..a5cf4d78499e 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -84,24 +84,6 @@ . = ..() countEggs() -//Bunny Suit -/obj/item/clothing/head/bunnyhead - name = "Easter Bunny Head" - icon_state = "bunnyhead" - item_state = "bunnyhead" - desc = "Considerably more cute than 'Frank'." - slowdown = -1 - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/suit/bunnysuit - name = "Easter Bunny Suit" - desc = "Hop Hop Hop!" - icon_state = "bunnysuit" - item_state = "bunnysuit" - slowdown = -1 - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - //Bunny bag! /obj/item/storage/backpack/satchel/bunnysatchel name = "Easter Bunny Satchel" @@ -122,9 +104,7 @@ icon_state = "egg-[eggcolor]" /obj/item/reagent_containers/food/snacks/egg/proc/dispensePrize(turf/where) - var/won = pick(/obj/item/clothing/head/bunnyhead, - /obj/item/clothing/suit/bunnysuit, - /obj/item/storage/backpack/satchel/bunnysatchel, + var/won = pick(/obj/item/storage/backpack/satchel/bunnysatchel, /obj/item/reagent_containers/food/snacks/grown/carrot, /obj/item/toy/balloon, /obj/item/toy/gun, @@ -151,8 +131,7 @@ /obj/item/toy/plush/carpplushie, /obj/item/toy/plush/spider, /obj/item/toy/redbutton, - /obj/item/toy/windupToolbox, - /obj/item/clothing/head/collectable/rabbitears) + /obj/item/toy/windupToolbox) new won(where) new/obj/item/reagent_containers/food/snacks/chocolateegg(where) diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index ae19b1dea376..ac946eee3847 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -571,7 +571,6 @@ /datum/holiday/easter name = EASTER - drone_hat = /obj/item/clothing/head/rabbitears var/const/days_early = 1 //to make editing the holiday easier var/const/days_extra = 1 diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 64a529f8ea97..b567f0919304 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -110,12 +110,3 @@ name = "bluespace banana peel" desc = "A peel from a bluespace banana." icon_state = "bluenana_peel" - -// Other -/obj/item/grown/bananapeel/specialpeel //used by /obj/item/clothing/shoes/clown_shoes/banana_shoes - name = "synthesized banana peel" - desc = "A synthetic banana peel." - -/obj/item/grown/bananapeel/specialpeel/ComponentInitialize() - . = ..() - AddComponent(/datum/component/slippery, 40) diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index d131d8ad4cd4..d9ca3002a74b 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -22,8 +22,7 @@ belt = /obj/item/pda/clown ears = /obj/item/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/civilian/clown - alt_uniform = /obj/item/clothing/under/rank/civilian/clown/green //WS Edit - Alt Uniforms - shoes = /obj/item/clothing/shoes/clown_shoes + alt_uniform = /obj/item/clothing/under/rank/civilian/clown/green mask = /obj/item/clothing/mask/gas/clown_hat l_pocket = /obj/item/bikehorn backpack_contents = list( diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index a1071d7d3ce4..d535e1fb705e 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -39,7 +39,6 @@ alt_suit = /obj/item/clothing/suit/ianshirt dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain //WS Edit - Alt Uniforms shoes = /obj/item/clothing/shoes/sneakers/brown - head = /obj/item/clothing/head/hopcap backpack_contents = list(/obj/item/storage/box/ids=1,\ /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index ea43fe78f176..caf01866a019 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -178,7 +178,6 @@ new /obj/item/clothing/shoes/kindleKicks(src) if(65 to 66) new /obj/item/clothing/suit/ianshirt(src) - new /obj/item/clothing/suit/hooded/ian_costume(src) if(67 to 68) new /obj/item/toy/plush/awakenedplushie(src) if(69 to 70) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index e3e9f6aac8f0..0cdc1f2dfc71 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -22,7 +22,7 @@ if(3) new /obj/item/necromantic_stone/lava(src) if(5) - new /obj/item/clothing/glasses/godeye(src) + new /obj/item/pickaxe/diamond(src) if(6) new /obj/item/reagent_containers/glass/bottle/potion/flight(src) if(7) @@ -93,7 +93,7 @@ if(3) new /obj/item/necromantic_stone/lava(src) if(5) - new /obj/item/clothing/glasses/godeye(src) + new /obj/item/pickaxe/diamond(src) if(6) new /obj/item/reagent_containers/glass/bottle/potion/flight(src) if(7) @@ -700,7 +700,6 @@ var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionnaire) H.equip_to_slot_or_del(new hat(H), ITEM_SLOT_HEAD) H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), ITEM_SLOT_ICLOTHING) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), ITEM_SLOT_FEET) H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE) H.put_in_hands(new /obj/item/melee/sword/claymore(H), TRUE) H.equip_to_slot_or_del(new /obj/item/melee/spear(H), ITEM_SLOT_BACK) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 4b2774c3894a..d8a9ecf90cad 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -22,7 +22,6 @@ /obj/item/mining_scanner = 2, /obj/item/t_scanner/adv_mining_scanner = 2, /obj/item/hivelordstabilizer = 3, - /obj/item/clothing/glasses/meson/gar = 2, /obj/item/kinetic_crusher = 1, /obj/item/gun/energy/kinetic_accelerator = 2, /obj/item/pickaxe/silver = 1, diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index a1884b76298e..65baddfee360 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -12,7 +12,7 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 4, /obj/item/clothing/head/goatpelt = 1) + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 4) response_help_continuous = "pets" response_help_simple = "pet" response_disarm_continuous = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/friendly/penguin.dm b/code/modules/mob/living/simple_animal/friendly/penguin.dm index 8376f6741eb7..5e39c3c8a51d 100644 --- a/code/modules/mob/living/simple_animal/friendly/penguin.dm +++ b/code/modules/mob/living/simple_animal/friendly/penguin.dm @@ -35,14 +35,6 @@ gold_core_spawnable = FRIENDLY_SPAWN butcher_results = list(/obj/item/organ/ears/penguin = 1, /obj/item/reagent_containers/food/snacks/meat/slab/penguin = 3) -/mob/living/simple_animal/pet/penguin/emperor/shamebrero - name = "Shamebrero penguin" - desc = "Shameful of all he surveys." - icon_state = "penguin_shamebrero" - icon_living = "penguin_shamebrero" - gold_core_spawnable = NO_SPAWN - unique_pet = TRUE - /mob/living/simple_animal/pet/penguin/baby speak = list("gah", "noot noot", "noot!", "noot", "squeee!", "noo!") name = "Penguin chick" diff --git a/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm index 147c2081f622..12a3c2b2604c 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm @@ -48,7 +48,6 @@ deathmessage = "collapses into a pile of bones, its gear clanging as it hits the ground!" loot = list(/obj/effect/decal/remains/human, /obj/item/clothing/suit/armor/witchhunter, - /obj/item/clothing/head/witchunter, /obj/item/melee/sword/claymore{name = "holy sword"}) /mob/living/simple_animal/hostile/human/skeleton/ice diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 1a347db1646b..4869d4a95c1c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -25,7 +25,6 @@ /obj/item/clothing/suit/hooded/wintercoat = 1, /obj/item/clothing/suit/jacket = 1, /obj/item/clothing/suit/jacket/leather = 1, - /obj/item/clothing/suit/jacket/leather/overcoat = 1, /obj/item/clothing/suit/jacket/leather/duster = 1, /obj/item/clothing/suit/jacket/miljacket = 1, /obj/item/clothing/suit/jacket/puffer = 1, @@ -81,7 +80,6 @@ /obj/item/clothing/head/hardhat/orange = 2, /obj/item/clothing/head/hardhat/dblue = 2, /obj/item/clothing/head/pirate = 1, - /obj/item/clothing/head/foilhat = 1 ) ) if(prob(50)) diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index 8c5f9e27cf55..17f72271b312 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -375,12 +375,8 @@ /obj/item/clothing/head/centhat, /obj/item/clothing/head/pirate, /obj/item/clothing/head/santa, - /obj/item/clothing/head/hardhat/reindeer, - /obj/item/clothing/head/sombrero, /obj/item/clothing/head/kitty, - /obj/item/clothing/head/rabbitears, /obj/item/clothing/head/festive, - /obj/item/clothing/head/powdered_wig, /obj/item/clothing/head/that, /obj/item/clothing/head/nursehat, /obj/item/clothing/head/chefhat, diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index e0d4e2a86606..11e3f0179a8a 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1792,12 +1792,6 @@ if(istype(T)) T.MakeDry(ALL, TRUE, reac_volume * 5 SECONDS) //50 deciseconds per unit -/datum/reagent/drying_agent/expose_obj(obj/O, reac_volume) - if(O.type == /obj/item/clothing/shoes/galoshes) - var/t_loc = get_turf(O) - qdel(O) - new /obj/item/clothing/shoes/galoshes/dry(t_loc) - // Virology virus food chems. /datum/reagent/toxin/mutagen/mutagenvirusfood diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm index cab30f0219ef..3d466983f430 100644 --- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm +++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm @@ -30,70 +30,6 @@ Slimecrossing Armor REMOVE_TRAIT(user, TRAIT_NOBREATH, "breathmask_[REF(src)]") user.remove_status_effect(/datum/status_effect/rebreathing) -/obj/item/clothing/glasses/prism_glasses - name = "prism glasses" - desc = "The lenses seem to glow slightly, and reflect light into dazzling colors." - icon = 'icons/obj/slimecrossing.dmi' - icon_state = "prismglasses" - actions_types = list(/datum/action/item_action/change_prism_colour, /datum/action/item_action/place_light_prism) - var/glasses_color = "#FFFFFF" - -/obj/item/clothing/glasses/prism_glasses/item_action_slot_check(slot) - if(slot == ITEM_SLOT_EYES) - return TRUE - -/obj/structure/light_prism - name = "light prism" - desc = "A shining crystal of semi-solid light. Looks fragile." - icon = 'icons/obj/slimecrossing.dmi' - icon_state = "lightprism" - density = FALSE - anchored = TRUE - max_integrity = 10 - -/obj/structure/light_prism/Initialize(mapload, newcolor) - . = ..() - color = newcolor - set_light_color(newcolor) - set_light(5) - -/obj/structure/light_prism/attack_hand(mob/user) - to_chat(user, "You dispel [src].") - qdel(src) - -/datum/action/item_action/change_prism_colour - name = "Adjust Prismatic Lens" - icon_icon = 'icons/obj/slimecrossing.dmi' - button_icon_state = "prismcolor" - -/datum/action/item_action/change_prism_colour/Trigger() - if(!IsAvailable()) - return - var/obj/item/clothing/glasses/prism_glasses/glasses = target - var/new_color = input(owner, "Choose the lens color:", "Color change",glasses.glasses_color) as color|null - if(!new_color) - return - glasses.glasses_color = new_color - -/datum/action/item_action/place_light_prism - name = "Fabricate Light Prism" - icon_icon = 'icons/obj/slimecrossing.dmi' - button_icon_state = "lightprism" - -/datum/action/item_action/place_light_prism/Trigger() - if(!IsAvailable()) - return - var/obj/item/clothing/glasses/prism_glasses/glasses = target - if(locate(/obj/structure/light_prism) in get_turf(owner)) - to_chat(owner, "There isn't enough ambient energy to fabricate another light prism here.") - return - if(istype(glasses)) - if(!glasses.glasses_color) - to_chat(owner, "The lens is oddly opaque...") - return - to_chat(owner, "You channel nearby light into a glowing, ethereal prism.") - new /obj/structure/light_prism(get_turf(owner), glasses.glasses_color) - /obj/item/clothing/head/peaceflower name = "heroine bud" desc = "An extremely addictive flower, full of peace magic." diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm index 9fe7857c073b..8b2aa42f0487 100644 --- a/code/modules/research/xenobiology/crossbreeding/chilling.dm +++ b/code/modules/research/xenobiology/crossbreeding/chilling.dm @@ -216,8 +216,7 @@ Chilling extracts: effect_desc = "Creates a pair of Prism Glasses, which allow the wearer to place colored light crystals." /obj/item/slimecross/chilling/pyrite/do_effect(mob/user) - user.visible_message("[src] crystallizes into a pair of spectacles!") - new /obj/item/clothing/glasses/prism_glasses(get_turf(user)) + user.visible_message("[src] does nothing sorry lol!") ..() /obj/item/slimecross/chilling/red diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 45d7f96b7df4..da19730739e5 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -210,10 +210,10 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th to_chat(H, "You don't feel strong enough without your hat!") return FALSE if(cult_req) //CULT_REQ CLOTHES CHECK - if(!istype(H.wear_suit, /obj/item/clothing/suit/magusred) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult)) + if(!istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult)) to_chat(H, "You don't feel strong enough without your armor.") return FALSE - if(!istype(H.head, /obj/item/clothing/head/magus) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult)) + if(!istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult)) to_chat(H, "You don't feel strong enough without your helmet.") return FALSE else diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 38e2f0df145e..e7d4a1e39884 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -67,8 +67,6 @@ H.dropItemToGround(H.w_uniform) H.dropItemToGround(H.wear_suit) H.dropItemToGround(H.head) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), ITEM_SLOT_OCLOTHING) - H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), ITEM_SLOT_HEAD) H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), ITEM_SLOT_ICLOTHING) // you only get one phylactery. @@ -133,8 +131,6 @@ lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(lich), ITEM_SLOT_FEET) lich.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(lich), ITEM_SLOT_ICLOTHING) - lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), ITEM_SLOT_OCLOTHING) - lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), ITEM_SLOT_HEAD) lich.real_name = mind.name mind.transfer_to(lich) diff --git a/code/modules/unit_tests/icons/worn_icons.dm b/code/modules/unit_tests/icons/worn_icons.dm index eb2d84b73f68..3dba4d7c8e03 100644 --- a/code/modules/unit_tests/icons/worn_icons.dm +++ b/code/modules/unit_tests/icons/worn_icons.dm @@ -78,7 +78,7 @@ spacer = "\n\t" if(cached_slot_flags & ITEM_SLOT_EYES) - icon_file = 'icons/mob/clothing/eyes.dmi' + icon_file = 'icons/mob/clothing/eyes/eyes.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index ef4630109543..877f1f11d854 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1200,16 +1200,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/codespeak_manual/unlimited cost = 3 -/datum/uplink_item/stealthy_tools/combatbananashoes - name = "Combat Banana Shoes" - desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ - can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ - squeak significantly louder." - item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - /datum/uplink_item/stealthy_tools/emplight name = "EMP Flashlight" desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ @@ -1873,15 +1863,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 12 restricted_roles = list("Chemist", "Chief Medical Officer") -/datum/uplink_item/role_restricted/reverse_bear_trap - name = "Reverse Bear Trap" - desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ - violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ - head after three seconds uninterrupted." - cost = 5 - item = /obj/item/reverse_bear_trap - restricted_roles = list("Clown") - /datum/uplink_item/role_restricted/laser_arm name = "Laser Arm Implant" desc = "An implant that grants you a recharging laser gun inside your arm. Weak to EMPs. Comes with a syndicate autosurgeon for immediate self-application." diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index e9addbd2d5bf..1df30ff3be9b 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -111,8 +111,7 @@ var/randomnum = rand(1,6) switch(randomnum) if(1) - visible_message("[user] presses one of the colorful buttons on [src], and a special banana peel drops out of it.") - new /obj/item/grown/bananapeel/specialpeel(loc) + visible_message("[user] presses one of the colorful buttons on [src], and doesn't do anything. Oops.") if(2) visible_message("[user] presses one of the colorful buttons on [src], and unknown chemicals flood out of it.") var/datum/reagents/R = new/datum/reagents(300) diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index 367c309d59a1..413b0238ce5d 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -7,8 +7,6 @@ product_slogans = "Dress for success!;Suited and booted!;It's show time!;Why leave style up to fate? Use AutoDrobe!" vend_reply = "Thank you for using AutoDrobe!" products = list( - /obj/item/clothing/suit/chickensuit = 1, - /obj/item/clothing/head/chicken = 1, /obj/item/clothing/under/costume/gladiator = 1, /obj/item/clothing/head/helmet/gladiator = 1, /obj/item/clothing/under/rank/command/captain/suit = 1, @@ -29,16 +27,11 @@ /obj/item/clothing/head/that = 1, /obj/item/clothing/under/costume/kilt = 1, /obj/item/clothing/head/beret = 1, - /obj/item/clothing/head/beret/vintage = 1, - /obj/item/clothing/head/beret/archaic = 1, /obj/item/clothing/accessory/waistcoat = 1, - /obj/item/clothing/glasses/monocle =1, - /obj/item/clothing/head/bowler = 1, /obj/item/cane = 1, /obj/item/clothing/under/suit/sl = 1, /obj/item/clothing/mask/fakemoustache = 1, /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1, - /obj/item/clothing/head/plaguedoctorhat = 1, /obj/item/clothing/mask/gas/plaguedoctor = 1, /obj/item/clothing/suit/toggle/owlwings = 1, /obj/item/clothing/under/costume/owl = 1, @@ -53,17 +46,9 @@ /obj/item/clothing/head/bandana = 1, /obj/item/clothing/head/bandana = 1, /obj/item/clothing/head/trapper = 1, - /obj/item/clothing/suit/imperium_monk = 1, /obj/item/clothing/mask/gas/cyborg = 1, - /obj/item/clothing/suit/chaplainsuit/holidaypriest = 1, - /obj/item/clothing/suit/chaplainsuit/whiterobe = 1, - /obj/item/clothing/head/wizard/marisa/fake = 1, - /obj/item/clothing/suit/wizrobe/marisa/fake = 1, /obj/item/clothing/under/dress/sundress = 1, - /obj/item/clothing/head/witchwig = 1, /obj/item/staff/broom = 1, - /obj/item/clothing/suit/wizrobe/fake = 1, - /obj/item/clothing/head/wizard/fake = 1, /obj/item/staff = 3, /obj/item/clothing/under/rank/civilian/mime/sexy = 1, /obj/item/clothing/under/rank/civilian/mime/skirt = 1, @@ -77,12 +62,6 @@ /obj/item/clothing/mask/rat/tribal = 1, /obj/item/clothing/mask/rat = 1, /obj/item/clothing/suit/apron/overalls = 1, - /obj/item/clothing/head/rabbitears =1, - /obj/item/clothing/head/sombrero = 1, - /obj/item/clothing/head/sombrero/green = 1, - /obj/item/clothing/suit/poncho = 1, - /obj/item/clothing/suit/poncho/green = 1, - /obj/item/clothing/suit/poncho/red = 1, /obj/item/clothing/head/maidheadband = 1, /obj/item/clothing/under/costume/maid = 1, /obj/item/clothing/gloves/maid = 1, @@ -90,29 +69,15 @@ /obj/item/clothing/under/rank/civilian/janitor/maid = 1, /obj/item/clothing/glasses/cold=1, /obj/item/clothing/glasses/heat=1, - /obj/item/clothing/suit/whitedress = 1, - /obj/item/clothing/head/jester = 1, /obj/item/clothing/suit/hooded/carp_costume = 1, - /obj/item/clothing/suit/hooded/ian_costume = 1, - /obj/item/clothing/suit/hooded/bee_costume = 1, /obj/item/clothing/suit/snowman = 1, /obj/item/clothing/head/snowman = 1, /obj/item/clothing/mask/joy = 1, - /obj/item/clothing/head/cueball = 1, /obj/item/clothing/under/suit/white_on_white = 1, /obj/item/clothing/under/costume/sailor = 1, - /obj/item/clothing/head/delinquent = 1, /obj/item/clothing/head/wig/random = 3, - /obj/item/clothing/head/shrine_wig = 1, - /obj/item/clothing/suit/shrine_maiden = 1, - /obj/item/clothing/suit/changshan_red = 1, - /obj/item/clothing/suit/changshan_blue = 1, - /obj/item/clothing/suit/cheongsam_red = 1, - /obj/item/clothing/suit/cheongsam_blue = 1, /obj/item/gohei = 1, /obj/item/clothing/suit/judgerobe = 1, - /obj/item/clothing/head/powdered_wig = 1, - /obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/blindfold = 1, /obj/item/clothing/mask/muzzle = 2) premium = list( @@ -121,10 +86,8 @@ /obj/item/clothing/head/helmet/roman/fake = 1, /obj/item/clothing/head/helmet/roman/legionnaire/fake = 1, /obj/item/clothing/under/costume/roman = 1, - /obj/item/clothing/shoes/roman = 1, /obj/item/shield/riot/roman/fake = 1, - /obj/item/skub = 1, - /obj/item/clothing/suit/hooded/mysticrobe = 1) + /obj/item/skub = 1) refill_canister = /obj/item/vending_refill/autodrobe default_price = 180 extra_price = 360 diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index e9eef49a0e3a..0c16b36902e2 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -16,14 +16,10 @@ /obj/item/clothing/head/beanie/yellow = 3, /obj/item/clothing/head/beanie/orange = 3, /obj/item/clothing/head/beanie/cyan = 3, - /obj/item/clothing/head/beanie/christmas = 3, /obj/item/clothing/head/beanie/striped = 3, /obj/item/clothing/head/beanie/stripedred = 3, /obj/item/clothing/head/beanie/stripedblue = 3, /obj/item/clothing/head/beanie/stripedgreen = 3, - /obj/item/clothing/head/beanie/rasta = 3, - /obj/item/clothing/head/kippah = 3, - /obj/item/clothing/head/taqiyahred = 3, /obj/item/clothing/gloves/fingerless = 2, /obj/item/clothing/neck/scarf/pink = 3, /obj/item/clothing/neck/scarf/red = 3, @@ -85,9 +81,6 @@ /obj/item/clothing/accessory/waistcoat = 1, /obj/item/clothing/head/that = 1, /obj/item/clothing/head/fedora = 1, - /obj/item/clothing/glasses/monocle = 1, - /obj/item/clothing/head/sombrero = 1, - /obj/item/clothing/suit/poncho = 1, /obj/item/clothing/under/costume/kilt = 1, /obj/item/clothing/under/dress/sundress = 1, /obj/item/clothing/under/dress/striped = 1, @@ -112,12 +105,10 @@ /obj/item/storage/belt/fannypack/black = 2, /obj/item/clothing/suit/jacket/letterman_syndie = 1, /obj/item/clothing/under/costume/jabroni = 1, - /obj/item/clothing/suit/vapeshirt = 1, /obj/item/clothing/under/costume/geisha = 1) premium = list( /obj/item/clothing/under/suit/checkered = 1, /obj/item/clothing/suit/jacket/leather = 1, - /obj/item/clothing/suit/jacket/leather/overcoat = 1, /obj/item/clothing/neck/necklace/dope = 3, /obj/item/clothing/suit/jacket/letterman_nanotrasen = 1, /obj/item/instrument/piano_synth/headphones/spacepods = 1) diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 4686c12da1ad..5155a9a225b9 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -163,8 +163,7 @@ /obj/item/clothing/head/soft/black = 2, /obj/item/clothing/mask/bandana/skull = 2 ) - contraband = list(/obj/item/clothing/suit/hooded/enginseer = 2, // WS edit: enginsineer robes - /obj/item/organ/tongue/robot = 2) + contraband = list(/obj/item/organ/tongue/robot = 2) refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe extra_price = 300 /obj/item/vending_refill/wardrobe/robo_wardrobe @@ -282,7 +281,7 @@ vend_reply = "Thank you for using the ChefDrobe!" products = list(/obj/item/clothing/under/suit/waiter = 2, /obj/item/radio/headset/headset_srv = 2, - /obj/item/clothing/head/beret/service = 2, //WS edit - berets + /obj/item/clothing/head/beret/service = 2, /obj/item/clothing/accessory/waistcoat = 2, /obj/item/clothing/suit/apron/chef = 3, /obj/item/clothing/head/soft/mime = 2, @@ -291,10 +290,8 @@ /obj/item/clothing/suit/toggle/chef = 1, /obj/item/clothing/under/rank/civilian/chef = 1, /obj/item/clothing/under/rank/civilian/chef/skirt = 2, - ///obj/item/clothing/under/rank/chef = 3,//WS edit - Better security jumpsuit sprites /obj/item/clothing/head/chefhat = 1, /obj/item/clothing/under/shorts/cookjorts = 2, - /obj/item/clothing/shoes/cookflops = 2, /obj/item/reagent_containers/glass/rag = 1, /obj/item/clothing/accessory/armband/med = 4, /obj/item/clothing/suit/hooded/wintercoat = 2) @@ -381,22 +378,10 @@ /obj/item/clothing/under/rank/civilian/chaplain = 1, /obj/item/clothing/under/rank/civilian/chaplain/skirt = 2, /obj/item/clothing/shoes/sneakers/black = 1, - /obj/item/clothing/suit/chaplainsuit/nun = 1, - /obj/item/clothing/head/nun_hood = 1, - /obj/item/clothing/suit/chaplainsuit/holidaypriest = 1, - /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit = 1, /obj/item/storage/fancy/candle_box = 2, - /obj/item/clothing/head/kippah = 3, - /obj/item/clothing/suit/chaplainsuit/whiterobe = 1, - /obj/item/clothing/head/taqiyahwhite = 1, - /obj/item/clothing/head/taqiyahred = 3, - /obj/item/clothing/suit/chaplainsuit/monkrobeeast = 1, - /obj/item/clothing/accessory/armband/med = 4, - /obj/item/clothing/head/beanie/rasta = 1) + /obj/item/clothing/accessory/armband/med = 4) contraband = list(/obj/item/toy/plush/plushvar = 1, /obj/item/toy/plush/narplush = 1) - premium = list(/obj/item/clothing/suit/chaplainsuit/bishoprobe = 1, - /obj/item/clothing/head/bishopmitre = 1) refill_canister = /obj/item/vending_refill/wardrobe/chap_wardrobe /obj/item/vending_refill/wardrobe/chap_wardrobe machine_name = "ChapDrobe" @@ -454,7 +439,6 @@ /obj/item/clothing/accessory/armband/hydro = 4, /obj/item/storage/backpack/satchel/vir = 2) contraband = list(/obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1, - /obj/item/clothing/head/plaguedoctorhat = 1, /obj/item/clothing/mask/gas/plaguedoctor = 1) refill_canister = /obj/item/vending_refill/wardrobe/viro_wardrobe /obj/item/vending_refill/wardrobe/viro_wardrobe diff --git a/icons/mob/actions/actions_flightsuit.dmi b/icons/mob/actions/actions_flightsuit.dmi deleted file mode 100644 index 3121c243555fc0bd902dfc0d654bdb8ab2e34d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1739 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 iavJd8!SfDKZgGD=G{IsM>s{}9*V^aq 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 literal 0 HcmV?d00001 diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 3246bbb24de28f28eac999b5beed201cbca4d80b..ec9850144f7b922d4fe575311fb81f1c8cbc2215 100644 GIT binary patch literal 4534 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 Z5?Q37iQay!%dOubJW$h7EmM9H{(m3>ptJx0 literal 18382 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 NMBC_o#l62?{a<8Ba#8>Q diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index f207b2bfd826fd57a9c5124465e00a56ef5b1770..d2970f6b9eada22b7b77a8702b399f89e5eab177 100644 GIT binary patch literal 85634 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

8PK%Wu){qW*nb+<_^g6ML4X># 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
Ry{lVu_3a^Lp^ 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

iEKfVHB}uuIaO04lH>aWw35>Ax=UiW=V$Nv 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 diff --git a/icons/mob/clothing/head/winterhood.dmi b/icons/mob/clothing/head/winterhood.dmi index 3218966413903235d6a51478432d5a21bf11267e..cc3fd8a4e5d49fd18705fc25fe7bdd6a3772180a 100644 GIT binary patch literal 17841 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 K^OPPw`+oqI%8%** literal 14500 zcmch;c|4SF|295IR0>Hb43!kwD%r_Win3&1C*dZ$?2H-7mMoP}$kt*v$iB?jCz36U z?6MpCzRg_EIrX`h=l*Ll2;_i-H8b1emO1V)WF$9 zm*I6r1`O4wi~SN=m0#$(XCO6?>yjAs?rEDXviD1�zC?sVzAPMgku$9uk}_FHGfd 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 DcaGD} literal 89666 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 diff --git a/icons/mob/clothing/suits/hooded.dmi b/icons/mob/clothing/suits/hooded.dmi index e1f98d991357eb80dcc992af4d3ba9f77aa9c636..7d2f53a13b068c981c0829090661bde722cff385 100644 GIT binary patch literal 42502 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

_ZYKp#4Jk1^G)-r}T6rJ7Kg!X6JB_w^g zDaokX4|q7r+Qic%%o2jP)zd^MlKX!)Y-Hlen2a8nht=a1jcDtyI; z_3=z9w8v#=vav_%pqaw5KYePKI{QNbw2A*RtR653#q0M>nYBpNH_&CKj=?|%?qT^h zd5pQSvDmr|=4^(Wob6`n2RmN(8{h8e`u~Kx@6DO+TovN=;nUsg)z$mJ6jf$MX6Cd>WD*qFE}ZIfZum5l5A(rgdLGd9H!QNKhqJy zV7$zH6d|Jo`ZaEJq=AU2^JTX*N3DZ4eZ{S}!7$r?Q4iEriaU>)q4ua5)@rGn0rK%N zJ`h}hAbI6qtZD9BjQZ?*ei#)Y`>myyjM8x`7*fHQ)eHWVwAzM@x~LuWReT_nW}VKy zg|6I6Gcbe=-dfXiGsmtc#O>l;rWD-DBR|L??rNvOFU*5K~Ff(Cgv1(I> zmvkT`aAnWR3@wQ@4F^4zh~T&> zn3zxjZPqox6Tu#5!w3K;s&-jIThh6n^9(wm5BsadjnRw`B@O<#ezuUJ+;l#m9sQB) zcXJs__VQN>ji*mZgZ>J)inf5^03Lu-tC*~Jt42fE}e~gm%Ecq*|6%?b0 zh@(htv$FeX0`ApDx~Mi$;U0nrc{HUJXiyKX&QNgRZp_lOKNe)0bUU|xE$Ui}NfyaC zyS5C#v0qDj4FrROCYz?sogxJ+e9A&?ejrQ^uhpeN0h$bt$sfM(BLX?oX1}R+-ssoe zG*j>Sqz5Y>pt%{l)a2&oj?-ie5q*8KK0pP+a!yVV3Vlf7=l=2IhpdGK-61~TYP^
  • Z5TJkBKCXTZDmw!n6R-&=T*?;Ge*-p_yUW~uW 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 diff --git a/icons/mob/clothing/suits/spacesuits.dmi b/icons/mob/clothing/suits/spacesuits.dmi index da50751959925f57392908059ff559c97978e13e..1a0f5001b34aafeb0dc98ccee85a1abffc9de624 100644 GIT binary patch delta 324 zcmV-K0lWU|$q3QO2!MnEv;v(Ye;-LiK~&emN%C8vFT74p#AQ%Q7g*iK;q7+K~&emN%C8vFT74p#ARqSR4QhFv6i?ja=`4L z%}%pFgTdH-Y$yU)SKG*ug$~!Q^{zPwP_P(+lX5t+uC|f0l$NbI*Nz_Zf<(n6)z5{n z&Q`05%*o^A9ttKy-s{;zYFZq2j^sQ0agP^EbA0mIB>1GbOLJiql3Z*Re+~G@&OuJf zxmZM>Xp32zV2H9WS(ySb$Mt31M?j8 z1x5@&o+uQve>OYK{tO0Vd$Qpn;9xMb*nmX8rl+Ur-?4a@ULzMm?OcmMV(~D_A^%EX zCF{HvYuQ6Cgo$pQT1{5!PzkaMQO;zz{r)I?iDXu~58{9bk13ImSExr4@hVNfKZ^KV wF$Tg>G@5v4U_i#IGy7-QiS}nO7~7Bk9|9y_R<3;1mjD0&07*qoM6N<$fPx# diff --git a/icons/obj/clothing/eyes/eyes.dmi b/icons/obj/clothing/eyes/eyes.dmi new file mode 100644 index 0000000000000000000000000000000000000000..63b92986ca50683e13c57cfdb0d9610e59060a28 GIT binary patch literal 9368 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 z z`3M-}1Es-DEMhNza5TSO_Y6TWLlMl?(3_z3Dv&F(Uy&@3OO}Ec2tE+~43M_9>)~^e zQY-y;g^4csHZ~1$NsWwF){aE4m6rYc|7d)Y-%M;0zkrE9tJx{xA_$CLkX-5$Y5trK zKVMC`u1<+vr3Dnwm%oh*8M*yO`25$8DbIjE^EWD-NJ%3COM~{84q?sYo47vsm2e$# zlK@WS#h764ns_0ikQkIbaZJez6re1*5*iK^cyf8T-t)Y!qV<>iwWWHIv#)ZML&lY7 z@nYK|z;~yy8#U=0*FC_MES5+}QPQC9FSoRPUF*elt%fp7B%)@=Wx0!Tw#NCk2eHbR zRBuY#2ED=ee3Xe7DE^d^F&_Vsv%;p@dLVj-jtcL{{#Ji=n8lzBg%y{a!+b+QBkjl# zJoEe8hmP}LO+J63yghs~t_rRp(>S%JOUl_ge>UWvcgvZd#TSO*X;R1gmKU~1tW)S5 z-3!yvhbaI9W&K)EUyb`E-fU7@%vX}|VfgKGt$QD0WATQ598g(aC`Cljy=lDMt5-)H zt3yAI`2xV+pTC_YGu7^WIcSLEyaakbRbQH$frzu)V! zQU>Qxn>CRAcFfOSh+2FJ2pEl*%B2R&TWp!>!$yb!<}CsRJBn{}*zZHS=d3O1GM-M` zr}o#%$awDkNLDAZUar({-o>2HsSdVw#3G*fT!hyJ-M9*2+Jb03g;r4&Y+k3dZ>yX6 zjuZI;3zo@WG35@1n>-S)B6f9k1&1a%@Sy~c)uS`{W+dqmt72y66#DO$0FC%YjoC4qwLv zmysNBNGN)9b?E4;?SwoZ9|_n|`D)QPnYFJe{n~?IeI=eulzN|JR#|X^?C-jQjiQ9` zrVnCQb3m62?JR30ht`%r!r-Hva2vm?ZNafJ@mlOwPSX`L6@OO1x|La`&do@i#qdLq z8(c4b7Ac{d8#&YZvQyL2lyr2cBvaIaPJNKorBtr5P*bJ2NB#>JCk7`Q*-;nMAKs7K zE5fce5aCS~%w~EpDcJPIjSm}r?mrD+1|pPK1HB6A1gI1b>>MhwvCwgk+pJwUqmdIj z*}&krIv-cP;7tPjJehinB3Q7;82QQ#u>;eT9#_j>KDcQAc!B#nC@w*M@z=LG_S-jh zze`6PQ(!zRPz1CwHF|s4O7xtKUTMsi&cXbG>w|G^>1j<4U z@im^p3_rSw{cydnm;XDKV`yPc>L$y?@B-!U_mFoRMK%Cyek#@0Tc0ayEhtq(t!y;4 zJQ{daYT8-&qUfjXzk9~DK8z5*gP`~*yEp69nyASp|C)d+>5q~Rmu+0dOJU6)yH9u9 z2O!CLjeh^S96tqASZm4=HM$gRvAy=lJ5livkf&!YeC;3h-KAFD@>W7s(?5d}M_D{A zRjFSSmOehLfT)~Ytav8=p4N}RXF5v0jpuvKWLHyDuYs1G9l?1!YFEdq2&q+x>h1S? zsZ1MeQ=8(sWskJ+8S)ihZWReXd|MpGpV0Um}Xzb1f*Vnq0o7 zlQBB==1p~y|Fz!vdn%e@$GTas3lsBDsH~1J4B!ifjv1AvU;J6cpYGKY^rTZre{m6Q zt$G@WPG-^qYYolZfzPp3+&{x~U$$l!?rh>_eMweE1qocv4H{0~YtGN%4- z09_--r|qz4E%REN`#96YIh;?ZP($wAEh1ARnkBST#>^T*Pbt=SyvfalMKg&x<_yB zpCq!7gn2|oY@tg@p^y)R${ZX~$eYa-0Ne{jBt8~!Q_p*WJur9D)tyH-G$}Q0F(b<; zeWlNNGX?v;oL(C;kLlv|{HQ&@zyx`LHh0VwGu{W$jL;B_w_OV!QntLzU&)WMtb&gY zmzFMj%z-?bI_B1zQWSFsJrg|^;vPpQaRPzUMyc`20FJEqIX=wqPoD~|Xh@kApDb4E-u6q=(Q`k9&23C485=~(5yh%%KHNfw28v1vf zJ^Ul!X8rwg#M|NAv|L=%5_uhmw!8*9IKDzS5OQi9n2;jE9`wi5lw?Zq)H99F^45Ie zy&}T4=8ph&qPSqf>T_C`&*HqeR&C{Af4|wqg^$iG{jTNxKdq4Hxxvrt7>_uD)DJEP z5M3McQO)m!Zvx&v!|!n$dT{LhJtamt`|0KJi!JW$&_EksIgRnqrfAjdNa4BusU~`~ zch{h2$h!9j!8r;El9f8Mmb?=tccd@p54z={e|TCPYU=7_I&r0{Q>{Q-{q|E6KeBvZ zQ-T4xI8hI>SAPcO$}Yd&tJH$Q29fjPf+8Z+uS$(+*_xHCEXELc{&&UJR#)-Rb;!<5 z7(slnaHER>g^xQbw<9C2G~96Nmt^WkY)=oVhK9z9uF>)Gc9!gV;@+jkS;no|2ugVK z_&7%nxFaCnXL6J(_@`8uonGChTs09usTKl{)_%NuLOz;gRfnW0RWTcsxTci?L)D_nUpc1caDa&+-k5%gpVvukye!8b(27XN3id>);v55+FfBdqixA#-rg}$Sig9FvWy=jYmo&4g#J)h$Kb5hR* z|A*iGPp86mku7%tF1sVod2bSs)H~3##F=O2Z3e@==D3!~>aC9`MOUc7iw=w89v#MMz4BSIEyFdR=#PW}`} zSWS~1M7o7oTwzfcsZg$W`r5-Bdf%rz^ojBjcZOTh?ys?b-#)nT0|J7A$|^(=EeeF@ z#fc&EVoxIr3htsbau3|}-BG+B7(V2<#psRiduy|t-rdq{W@co}ET-fCdM`SCnA`uK z^k2{0_Z+ALn%H`3$pf7v98#*f&r0-0RBdhkQl9ncRG?0xvqqS9FZdo2hA4WUe|kbV zQEEbv99^9^;2+$2u4oRWL9W+7H8P4Beri;xoTEO%sc=RA?Pq0-GB+&+6_v2;XQw@S zFvCsv`q9$i(Olc7R{W(C-mb1L8Y-d5y8`9<(C=GInqqyNEG!Bz*h1UsPd4YYvy&5Z zGc$9{`zv~Oa9*bF$lSjlY$i$y{3!im4YVA|9v&S%ZQdgUWsjA~1Yt0K=Tx!Jg;^*p ztgJe!>SznHec7C>tdyyY-Tw-*1#xe5^3g;BC)+w^ZW55AqoYXGY!|6_Z`Da2_(u&7 zKV3XKVTqmDEE&^%$)_;M+1c62AO2Hrhn=DG8oI)Uh5+Q4nv37>_x`+~t&56_hk%pJ zz|2e@QkL~p(4>wbBqYR(CWM8Z;g3djWUh-mg8KaY{4*ibtvWKUQN@W7lF;xTOTv+* z^yy7d08Ol_wcM&#fSH?v~_QDyFkiVL1~lT*vR$$$DRSt z$NL8d)tsHhqNAflB_+c_eb3EArKO{%rwzeHL1vkS6Kl~PcMAGH{>6?SVf)MyAj`+~fE) z;O8da28Xb+qb}8ij4}TQsACnJhJs7ta31*>G;8BWa42(>^2$3MG5Kmd$OU!Qj&;O5 zLB7&d-}XT!j;m{3(kc&MuB^BE-TAr0c`a!hN6x8g1_iMRD;ZzxWl97@M)ZaValR@3 zyHJWT6;}6~(D^JZnGWY~b-@5F-asvqbi_WBsekcMLIiHl!y$ipy*>>Nnzs)CBvnV-ILsd282L*q;Kt(mYmkZV-MeQ|+Cb3u%$$*t z@$OCf8dWHjdS%07FLue}^Xam0Lqvf?>+f-)Yrr3YKQF2ya`~$+L8-qi6l&g|-#+vUyfeeT z%TJ(_{^4%c>|U!GO)uC1b$dS0YNoeg0q33dSY~{i z-q;=%2n|-CuH3bFo_DewrOf@$W;YDVt@<&Cj^GW)*Db1Fy?j3Q(Gqh;rM1 zF6?~Rc^IXKPx4bbE+&~ZUtsBlxx%WPn~qn`TL3I}evog;DjzY~^*3YVmQ#M~MNt8> zf}l_T3DD71HhmC8IFn_^h5ZI?LU!xEx`V$(L=(d?nhzlTIm+oj2dq;2lRP5PG%;f$ zK&j!ZL|+P>;ged3S>D6jVWH;ns!+ogTDF$S_6H=c?lc3-Z^S-D)(UC8FyHwYssk#0G1G-@ z6tA0LO1N@h1e>zLyctv+PqR@;YL*E>9EM9T?;jg_6e{zTbq4g>A6;Jr2UO0tjAsaUF#ATM2XGdd%o(o2z#CSfXlOi zpMA{4c(SFh*ABxJcNUCV11>84woStZ{@!2xq-7f~CzRB}l#!oLqT(11l-|iSu2WM` z7huPKd4*CJgazDG=^I$SZt15J*_lZn_x3oj@~GC77)ZgBJrpvt^AH-qmE$96^iJQv z+dR}6>z5qw;rUHox>FfAzG2#S_F`CS#%{Nr?anYeY;(x5%CH-3S2M$Y<#9rOVaNY-FX)*UvsZO8c{}8p12_qq^xtou?x&mM z#A-SHA)Td`HM=HvYI%*42zR34wn{Ekt@b=#=d~4 z%5KMc|BRROUeBYwCp%jxm~sBYszBF?$~yhQt?#I zF{b!%!(m;v*WkpA=;cMISxS;_#f3dlaj{>5{nTXN%ZtDl)q8EX1?oo~FmxjsWnHg0 zW6uc!5B7Y(qnJ=n3EQM7h{T(O&CPe-HyNAlwb1_H*sDfTM5k!w(+xjf?)`lsx1YSl zIzJHv*6EYjjcoSy0Rq0ak`&7@Dy;aP1Y6exyXWJ#W$-}vd-yx@apso&xcw__gsS>B z%>W+WCMivq1ORP2SY9>h+=1z&w;|5=49a}Z@B8TR8>botov0uzM=yPU{@QT;hUc^r z8@GyhDEErc;Giu7ia}BrF0A^Pu=Gzp2#gZpTmyL-UYgQ*rjYPY=EV-E3teDvGme{! z`iVZ3Rz(_Gwd^DHLd+opkB2{Q%$TWa42j%p=wyB|vx&X=?~9_D{0f z(Ls5seqtqo1;U?4%0@n4pH_X?Ms~4qYB)-L$y@J8&8;RV`Pf{fgU7jM+6@L|JQ7&i zwb>sXXYz(Nvwg45%+I&v|1IoX_g2X4ecjcyienxhpGQ?#v%^a{Hnu=4SqPnexp@|z z?^3?mf+r!HBrtdz8$jD~%gsFyI`RE*06bV4Cn$#0hyiZyiyd!y$*k}DlPDBX@yQF& zR?WoXv723OC_5D~8hUgr$dQ@d|C65XM_OB3yCGl_(*Ay8aVy!7-L#(AKlgp;)2Kvh zDM>2Dse`12UF9wOE^$<6`?vZ10&YIMa@5hRU`*9%Hq!X^cc=?tH(S_XxNB@=)s3^p zT%LHHWs<-&N#Vpm3mYY6s+2F2->cZ!#WcN{8&$;*Om;yXO#U4+986s;mK}3NTW<=F z(4qz8B0by}Pmo0{8yHVbR;ZaSW-bZ1lRYajPH^_!Tpu6k_!Jdm?v(JiVd3miHHa9J z@N#0)z!PIcc$Ap6qvtjbc%{kAp3S&g0+I7P|gE9`KkBO{0*f zdZ+2|kAU+6)U|;Mc?-%ndxN_nk`d);kKZGKJKF!|ctB|W;4`4#vNz*Th-CN-XdNCC z@3txsA|-onKA|q1`MO>!65qcZh4=6KL&$m?G>BA|^tX%5)_= zV3i~p6oJQZKS?9V53N+SdzLE1ejs#;nQq&H4F`_2ydl2pJ^5s@DhAqc%Oqm?+Rf#DWTLyx)i9KEL^iSk>?8(Is-FQ< zM9&Vx;*KJqZh2OzPmcbxT^g18_)y)sMTfn9SmZgFR3+VCfP29Cq!z6ykk5p`! z44oe5H|j!_Jcv~0_R7x0d&SZY`aAftX!M>(7=6TF#7MmbXK)`a1TdL;zVYBtYvgWIj*WnJ>7+!h$4T7K>VaHa2@B zbK7|R5RC{WQiGEfE$a>_2)}8C1Wb>2nO7+qr2>FKnnJp=AxZs~qYCEw@G>H^JBaLm zy36@*FL?g%3&E=(F1VNb>>4%V9s}HcmI?Qn4mfY;TY3pcKhHq(Esdl3w1E}svbdQm zWTGN!qI(xL@qmOE?&V+63NelAl@WmkG=keAMZ2`F%8BbEz8>>^YNu2 zsFYc^(~K@X%mRmt8m7dFtl~B{d=H-=q-OO|3GkV_OBWL`s>c6Q4J?xh(g@$#~L zdpOFh2>qK#fenzzta>4UwK!+$t2ajXvFwFWImCbiUP0n1_7dH` zo%sZ~??Y)QV4m}X!!^L+z2_Y9w;#=nDDXIYBTEZkm9=u}P(3;6w4_pNDg5FYK3BpB z*vpqLyDHgFQvZeD%)$Rp(Ei_&0EqXXMSYyXAfJUTf$0)LAGAWW^6VBh;sygwd6pHI zLk614iE};F?>;~FqDBr|x0V66(Uk;81zI5=+fvyS0cg4Y6`c@MauB(v=-_jlpyj?# z1VP6~5A(Y>8NGc6AOrb=#|VR@+|c|y9_Nbf$%>|^8^iEFrU&45ExK|4v z+)F?dNsW;7K)1hFL_G|jSuUF)=*fUKG_>vJN&fp_-|I9hKv&vC?!k&{-Yc22iQK6qH}--{ zjO}{BYAtMfJ!t<-ZeZ81H065N93By24Mz*Hg|+gJbl#G2=EvTD&4Bw={vXTlaIIM- z^<+^4BAJGSY_zSVY$d>ZBUJP|jt+-Wym8n>s9_Ng`>nk;T@JHY?O%uATw5XY`!>rz z#j&`k60!w9S z00ZZ~y)({8U%t1(cw*zX({^1XDv`df70o7GR!;HCLEyGvm%HXPc%W<}k@}{O&0s!j z#zxiIb&eTtYK+|A*LGWw{eT-sq>2^@fg_%`)#vQI(^u_Y2zDn$jZtnZI1+NZ^**Q8 zvlWf`jbv#BOXRMvuEz-ePq)_pA3;qSv&;4F8uF5f`-n z{uy*fNtvnMIr}e*F^T*8cvbB2p21GD`~DE2WrvcTH-il+eLJF^W6NI-t4+e zw}i*10j8@>ADcVCLv%ZQza#wvn{dq>WS$>&snq_g7JWVlZ=%5+FQ>QkkKoOr-)?On zimCpf2L(BPs!VuhbL8gc@(T&6JTp4nG~74^nChVzi-3hX5CXJEf09$KvpOGdJhfYB z;!um@RB5kO{mYWujzM6*8A;DO^i|mBn=>bWthU7J!X3O5q%j#o#XeWf3j0o(ex+p( zOyY7TfTb(snbQNIPbaQ5BSYYSF5nhJ{Ow@ye!>;fXlY$DVj?ZzhMx!YI&`r3!rS+Y z4XZ(&Wy0a*kG^NRJL@>*vV4W)jj{Q?V4qz?@Tp8K9tsP?jk@EV|9H$phes@J_o)w2 z_V`y(dlG68%!~!EmKa`18C59DzFcsn-ZO7*+sIqUL|48I@@4wNSP4V21wdEkGNb|> zF%<@$Q+d0s*>*S2?2K;DOdn=f-5IO$;GVqjm=Q4?2>s|3Xe~Kh@c>^nlM~ zoqF(h<*UKdzHK~m43Ybbo~Yd|*UAqOzvpmX z+7G)HqNU3~t?G^a?>S#=?wdcimIh|ehGB~_+K`M&B6K}$O9VD?^U1OIGgFNrcfSWl zrf;PZ@~72n#<*vr+zk#Q1~p=w1}kk()&+40;mks+M-BQL1N$u0i)Xw=nUYrrr;)Ot z*IW@bq4$>!uKFyDS%uW?*#n;#&F24GrPq^ScqJLo^2PmU8|1qIhT2K+(ClEb?Z^AKKnGflP;-zdrTzYfOfYN{#00>T^&j0`b diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi deleted file mode 100644 index a021b79db58c5f1df90fc55cfa9b3d0c04541ca6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17750 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 bp;vb5zS}5$DF~jI0=$w}kt>!l^8eoefpu+N diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 402ce131a9889ca6e6f1845599aaa74c0b8ee3f1..52d9036e02118c84accc929e932c58cbb92fd35c 100644 GIT binary patch literal 44391 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 K3T5)90sjYZ?Ix1| literal 70350 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%0Am2)&`05q5SN5Wm z>|x4NT%`mahp;oXJa7DanErN>c^L9#O5P^FR>v(3lz_zTTWU{24Er3)P|6 zC)|Jy!B#0x_NG0gIEkO@b3g-=egi%Jb_PSVAX*8%J-R3BaZm)IM`#!KcYGs83e#sx z+B>cGuCKC6ufBDxB!q^m7+>~|qJHtdr#wyVeNAIQ)JDgBI&ym@}bVKdWgON25tE0N6!ABI{&|eGW-{gAOd_WA*658?(WCJ(dl?Z zSut^0L$%o1O@3YOBp=x0*@WCW-{dy3T8n)P^&goopZR{+)VNSpYO|^LH9R@3w(k9Q zIR=jVlybbUI8TqbBdS+o8eK5qpH&b)fZ;axu+#ZbhX4Avc=Ebr`E0-7$L2q3Ec?9_ zcKkyAfxQ$n=>PVFDiddgU@x~C$-!ykSNKmeUyq|O7Bi4d5?|UOTVn@VNk!50li!PY zxhp$6`&(f91P7?0iGa-Yz3_6Mz`0o;n12YqJE8B`h{~Ldcb70<5Ia&5Od-GZm?nG- zO`7A1yl_IGxDm3apkSLVJH;9O7;v)p#eMkZ+=7jG-~{g;Q733Xbh}w!+qi|I!wCt! z;JsU1KFJ3Yazc5b&o)rRam@U|*9+EvMkN5>7A$J8kECdu0@2SW(N9ZT3D)$l$+i2# z-toySJj;QrL?&*~1iY;!GGFDD2ORCP{OHf#%+ZaP7ZWbz-p~WbW$$E&gjVhsUQCW( zCIzIm8G+JnpB$2sJ$-k48H|ws6`zn-$?`yIDt%P_>zj|Hl$AQ_ zU5vW5l~nPQC93m~A?(+Ze_0`_F@)Q^Og`=)QQ06%j3l})l9bybEiKLV1lEJi6F_Th z%N&q8zWQY>o>Qt@b2aesG8EamfSlz^Ge<$b zamU+hH_+BsL{eT-f(>16_yBIy`c_cD-`&U1mJPHtp38&vWjJ4Fp4r8n^_c&@%=%)> zH{bFM;U^#@;)}35X!;R*Z=m)m_mV|FFq!&!t^(Kusx3xLM@B}h?CpEUbEKU1CYgXk zb=1GJdFxCNpwMKPero!up}%kD!pWkN6R>8@07psk%u@El<*G?nnr3;x}^Es1!3=3wu0%LUJ3 z;#?3?Xz*`j!f-$^P1&7Xg;l^Qq4#e!Z&2pH{;D&laY=sn@T2kDVXY9cg?nvfZ!ucM zxf7w7szet)z&lY?qDg4cl4W})^y34h58P)^IA@K&5mj2;i{3A$)Y_$ACY+^&cb=z z)BU2*&GPgatvc>GO+Mz4;@pNw#n51KZ6XiC#+AK#5EYkSI^ zSeUEyjSX>_xNI{HefgT?*1iR%^c+n~hJ)b*umSoX#cISfxPX09)*pFAMKH9|845Sr z545rN#7hY@jtpTpkI%U%5YIcb}LK zdiGW5=i$|{E26msJ6ZTn5Z(f2!ge_H(;r_wPv~0-J&?imn#=q<0A2H>CI( z&JQL0lq{qVcVwziL$Y$5<&SzA31C5VNnpPD9d^jmP@dprLP{I}-g?gW)Sx-2gW%47 zB=}@U((WoD;dZ_7MCjPn_xUf#Xk#v6kCKUX&ynU?|4NI`GlH2JV3=_8@DwFA>q+ev z2H^f@sc3H$ysVbGjK-21y-&K85p1Qr(yHp+NNlp*}DC zZ8{__;JKRJE6-`Xbjdj{Mo&C_)!6kO<9f^ZzAiD2JKn%D4MGG%Jk}5Jt+aRClJ7py z*$$`j27&w{Tp$c55F*q5@kQsp9skXSgFavER*A6*9csO-wUf;^lEvge!Td#5a^p{nu1!AfO0Q!=?_Dp%!vBn=4axdCeWxJa8PiW} zJm}c*11~I}QW7tdKBY?k2G?2VBPEnUaj%9O2n)w@D-u6-q1zidc`ijSbzJ{LC^(Dm zGuODB_nx3Sz;nEDC0N4?;u>E%^;Ca{X=g;CbUYUCDDk6HBrP1JK z#_Pl-e*TXLnHG0O=edV9zHq!zwmnVdjaV%=FknMsQ>lx=eW~bf&yzy#|9{S3L@^7N_#l4Y59{zxyMD4t$!>OZ0a^hH+vSoPT{n z;zHU2|7rBZc-Uk0HWfDYK?a^u=%+uz%=&45C;B}&IDDhee>GIZ@At8@#A8^H zZ^(1fXfDsudVYmDbUHJjQr0mvSjN;Hf9Cu@kgGsC1}OEUSIfEv99lauFfKSQn!za8Oo9|) zV)qmYM{SFLmX4IT!6?fH&AFPMk$G7c#6}J#50muzr*+DfJ{b!#D-&iWkTv#V>z z?`dr&^-~jW7{|E@+;(EwXjW-56CnW2X9&_NV9=T?cm9^z8cFon=OsQb@&xeIcmkz$ z@LfkYxW$D5hOV!GpF#s*vUy@Q{XFXPG3L;?UMuili+Y4p5l>rre&Byd3ItXj=8H3} zZ^;3vKikme+aQYtaCd{0;Wr$2J6kiI{_|h+WD(qWkdCo{tHR4Hfz zx`y;QFS=%_{@b`ryM|13*O36^z>BEZ_;=jdd7Dfl@bIs(Na8H5OJdr_T6D$c%q(JU zt68DIZOraTv>2+#ei_zcgD>J73~L(f_RK%G@Ef7ej%W8D%2+=Q;|`%~{HQE-JdppH zCw<-_xu)nw3wf7Sj>)}}ks-S6@-^+dEw$+kXec!Lnyj5mXX^5~sJ@j^g5?p%6XIxx z*tKlHpvmAv4j6yJ!9!jZcC7Do?3}rbjlWvP4DqedKb!8%KR6|BSw2+k1zp*g#15!; z`!CLK4(NiH_{pxzp?xAE0RYgW_;!Z_N7AMGyuxENBJ1{>Jg2^6QCvh%x%(n1j!*m~ zx#zYDm2nfdC=EoL?{R;=Bs)poH8#>)ea{00MN6F)i%g4+&^CT2s`syGVq?pV_*Gim z0x>%cZFTCR6hh>1pQGhRl#Fcb!NFW9=a3meu`*c{ zfiNLSmpyX)UG9?muD<0;GS~*VY5>IXSful~pANGDgOA4hAh(fBOD}0)ocQCF+jwAL zum#Sa9^}TT0OyS*53sfzfT$k2>A>4^*Sr9=u=j$p10g_)7;nZK0m1dVRL7kJBs!(M zUIhh+N+#@hSCFYEEFnd^vsKg=)h1IZW zTZr~8F+oimFp&l={e?}jkl)gY9UUO5M;2M>pj1Vu1A9(tN}_*au{^xlBhHf0eT|Gt zBf>r7qbcu3XGK%~oNE$+3R}hc7T43r@B)ye!<)#rl=?j$K2TrMd$0$8xOl?%-;3az zb;9oIm%wp<-euFFgPn~U^ciCxxpR!H%Z}pGAKC53c1<-Z?JkhRl)5>37RaY`JjKI%zys#&XzF${oC7c2 z1nDyhS1&R>hUwM^e)~`N17VQL;BM5&hlB6wx}5zd6%YzZXrcG-^jZIOc*@JW?U0+V z{q@ZadYxUbX@P_NV~@5nJ%n{$>{Q?ClB(jWcuQb*yErN;Dj1|hjqEWdrlUUMI1nGZ z;W>WooO0)U;8zstB}rZImGtKGjs_fTB)yWMI3D^4@QuMT!MSBWjL05GVuol&fR&WK zer)j8z!x6Y%vIB|EwmcM9|96JsA&c_z%^^;FS7>dEW$*Vryq&y62M>^yC)dv)<{4| z2pV`39l?Ij@uW6Lj$mzV6MXUk1)ZLjR{XCz8Mohzkq}*ZojO^YjW{Fv5>=r$TU1JG zSrU;{)>n?G-^|LA{T1s!QaU~Nipze`h}0bs_F9f*e5wdnWe*_;9uyvO{aH;cj&<-T zZY*{tD&QF8UR!KIsid;{h+<;J6TpA?1JmwnWoq=_OQdl+p}IBaZ#9^2DE$ol5g$J2 zrM^N35()P0jwe$l%q5kSs%PAdjiJYf*3DSp*Sc*yGqA3UfliO%`TnFJ>{c?4PI_k5 zplV+G(z9D0yh|RR+b?4n`e~|QOwSG?;w}JpkEab%&8+$Lcs}q0N_OO<`bI-zHIUI` zfrd#!Q0c9KKOCbi4?Em5CZ~hZJlGUzRu|-e=z13#8D}@_f@}B_DO)PIZbWDJ1&4%z zzkwfuIYFWy6R8q(d%0}C@wXj_<)I;^}e%uNHWApcQp}g2;!#TRCWP$}IKC87~`dVgIk5Sm%Om$)=i^P*se?S1WAi~D^ zj!PhpUDNSl938`5FKAddL#uxP0Oi$@Vxg z-C(7vuTbrTCk>l~o`|f_j+8DwdqrB=4#(H;_P`<#tY#j^z!%5>;8mMMw!dR3gp#PO z|LG^X^g=^E->!=bfvD-XW$ZXHA<`y=1Wj;(;^t`-wa9`!x>etWVd_hd@75>zuk?Ad zklKC79VYLE*GaTWd`C^N*f)|=-uQ9tbNrZT_Nh114(v8%7zsS)jLqo?erS*o{zoSr zxmSjX*{sIVA@lM+fu6~I>3`qXHqdMpt4RlexBDSPhs^lMRdsX%)$(Aa+X<*eN^Smh zB-{~M{!QQaT@K{^0T=Xer8o-Vcu0FX5{$4$Is_iGiNRwT*nnz+aP8R;`JX>5md_&k zQuyq8d`X@;H8}oSCak%${oeEYK4d~^_vQDLYSS&3VKwy7F*T(is-(81fx5IIa)7bU zT{HC5Z$aPKy=8yWto|2D_tz{h^nL=^L9FJN?%d4?)Y99(^u0{|JOio!gbeQVvS86r9;+wvC7}TOEMbu}PGzub#j=D}^qA$3lh!3U0O#b7x&TPye89!F{o!51NMhhOnI z*DhI&Yi!JR!P_|FN-OZM`zOXP)CRsqk2fQEAHwBlHnfvd_}?=KI0VK-eNr>@M;G&z zYOvR{B*|`fYwgq->1d5m8b9^>sxu#cr!{F7TW89({}hq^Bg!j&#->U)sg+2?y>tp_ zKS=wn6a18fQs~>?!M?}+LwAnn#4`~ooubrP)ppy?7E1oYS7N1uSaDSEKMxY7(E986 zYNN`>)P%oN;FKu%s>g-8J6=oaxd+iVB&2;lNuR{@R02`q`3!ZpHtNkQAy%pmiDaB| zoL-x8<7abLGemSAy&jCv-Z6-*gcC9IQ!$fTWo0b-X1pQ#L-&pn^e$&4A(P2>xUKEtU?yItSBsex%Kq162ui6>s%RvZUsm1oW&A!D^+ zIUVL|%n4nc%jGtk7PfE$AF3wzuH0A5VcVhV(FP{#E{7(3ecjfS}MIIt{)AVm8-Y23K1g4Kl_8bFr!B$UD56Ey||1Y|pBWxE_sr;EN!?jMew zzn7+tb;_RCv+_G#eKxY^n5DOs4#<&cD%Papl3fmgjBAzDhPR;<5TsRLn*EtrOAE-V z3Lo1lfLT?R{ygCOJ!Vn$*OFg%YoN6A-5X?u)R!(9w9r6Z-v$H_XupX+oZ0xg)=#&E z`KuGsR5TTRw~8+<7D1B^m>#2?RI(?ZOpfOtsvihS{G6=T@UGQ; z@|efYkrwuG#7_#=)vxdHXl{*p?n{Be-Y?yT8@G`<@<{Tr3t*dJpyAy0JJv#yZM0X} z^C#Umq1~}i(ZV-RXg2q0bWZhp*#*73ORac}s@Wjc8%1!u*O`S^=i_SVjL5(s?yHVo z6-m%2fZl9~MvEzqFX(>?XhAh&Td@{_)SkVLfhTM?Qml&ll_bz+vs-2dy}6*fHnmoX z^Oh)~XBKIEmt=Mg-j9ke@no%aL<7r#)K!Q5i@CQOi5xm+0s-WO!r+Se#QO(1iFM&v z>`|0;RBOAO?D+JW-2Qqs`_(75JB>v@yk0p?H2M(wZAs67SqcRmn+nL5;`#QAtjIGJ zyX=#=N6c8!^&W=w`R~|z`|0(8Ruiqo)h0ET;e<$27O5>lO;B14i9Lg81aC`)LW-}) zI+(21|I9tJ31|sd#@*vc>}YZpZZ>E@eI}G>-TjXD4&L=qPlP(l(hv|%#B;(Loc3&~ zUT-o)V6do6|Fa&5tE#fD7|r74J)!5^PJj7cdVgD$?2;25Fh87Mv0076y43Jk#|Vzz zjr{>GA(f~EOwP}T_u55=>j-0ms%9I~&^jofkh%N)><-~`MKt;+G_|Q3Ud|lMt zCn9Hdn%=jh<{6TRbSE;GSoF_Wk$|lXC}og8ED-w{y z)cEPy=|_a8V}3`!($4}4UO(CXK@M?D-&1qp%7(UHJOY=elO%Jtx_klPvG@Z=Kvy-I z(D338rvc~99nnk5W?`FdpTI=c+kP3&=ipS&=I2K2G#d_~IkLi`dmgUz+LAlHZIn?UC`Srdw$!f+v(t| z%M_(;$HB`T0?yuU5W|o*(D?v0FqTn2Pt)&~d$su1k|cH)aN~5-Z_;oUb1xhGbk_7WI5w{O-iVD7C#`)p zRyF~$HA%iJ8e207)xnCR`72d@2qcS88+{-behu3Ee=CXHuV0C^-i|pP=$>GhES^X0 zRPMDgzdcBmKDco#KWO`zi_9206#J7Yylbm(nXsEcNYdltB$A&S$fhK+XQBhg#?E)Q zGuAVFP-j@%HHORet@hMi&b*jomAfrzE83ZmH=CQA8xI9e;w>FfNJ@@1`>>5D4i%4T z90b_CIm29nS1IbCM95sR8~LAZ{tj4(xZ?DwLh>lV2$X&pS9;WFktBfOTRA)i0^!s! z90?X8L(=zyo9_=Uoba&b#=vrZby%%`erfRexk%p*hg!r!6-U^on<(L{tgY$%v z=e##=*qHZ^w8LXuiNrub|LGd=11pYY3nNf&3q$oO%C|N>oaJoCoXgOZ>;}(5HRt_T zh=Z*djc&#E)%g@IL;LCp$1`I?ebh+W&B=*K6wNM7s%Lty8?Yp2 zn9Z#H-l>^8(_QQ83ObN_eRD(TrcD;p#;2K)jnpWmnF z7d;p+af}aC?fI)jw)&`F`EiEy^!7YAjFbbF`pHPrWqSI|&`A8XCb**}#|MJJ3X4OM zkO_X8+dlgUsA-Trm0x|K;6E+hywCr(4Xd&K6Q1R2n9sA(*TL+W z#TR$37%wxpc1hy2z}(95HJ$QT6Ls5z)Hv#V-8#M>+3rsTAlx9ff&d}h&j z^XTNNt6P`$-)ZLU=ZM(qgd)NRWX@mZ(VU|I>U7TsPYc~hE>_Y6dMnit?w8ErUCkm*ZtQ!H3m%h~Tg;+&wW zb15}v-@xVXsahP$eXRp3+@R8+tW7Gx_<;E(sWo*ma~|i9x$%|1l|`uDgvF@nFWrCnj$089qGF zj6e9#*Z}^ciZ0Lml^MsZ*jY&c;9-MZVgvDWERPnmGVbFRW6t@KQmW-FMv2M-nr%pt z%}jUY`5&^5!+IBJ?u@1N8v9T%Omn8JXU~L2t*o_Sgg=sU=0-%;xjvvPX4f!aM@SS<9k`^gWBx092TscmhINXSbzWi#l*o0@f=R# z#7}B}_%@aCe8PDUhjH<77wAz`xH%-lAnlY!ik52YCR&pWvdvsRzh7vn8HPQxsb_8C zzNmu24jUUA6+>&pU!%+0d0rHN*@8p^#vt!zBHBaC_r}f`1h^E_x_YnB87gP`Ohs1< zh{3!8ab5yvMySe)VRR6TeG}YYX2(xPnG=fYB?9hIdsQ%ng?zrygf80hlnhuqI>Ku) zibcV|RYeEsYJ+xX8xoQ9Kn)!!kn0NREzKEDZ&5NjC-{=YxNK*?=pMJHk`EbAV0A6Z zJx0ZX29y_(XEvZn=T?Scp>p;$6HI;lPBO-(OK{0nJ*^?d|2&-cH-`mo;Q(Kg?Q zSq1<@*!Vz>D04ktIG^~#*ufH)gal*auIbD{goB!4*we$*)KZ5(6aRF#_TDDd=9UtO zEQ_?x@N=KZ@ad5paIyvhOQ;#4id{DWo5KvC0K@-8f$=OaZ<^ima8)jFszp2&PVi2& zU@Z}UvQx8ZxxlSIaZQc5;-6>SGl^k@(yr0pzA=)Jk@lvJKEV3abyK9JxG$s>)pYoXJ$IA1RmC+ zt}70a4SYc&aZ}#A>>`5uWTzXJ>*Zh-6p=5pQc_Z%!8R@*{O?nPrm)Ass)#znA@L3% zT-*wa#5=kq7hxvQT{O~`@fS9*O$H}tm-ViZ0KX(LgP-!w&U}=7=HVmibK@M^wkz8b z8hsS6c%GRSP5}4ej*-usg;<|IPiu5e{MYRZKXftg7RBaQg!|uy{D#@$lS2NVRqwU? zZFk38zQ}e8(BH>4+Xo5Gii~;l<=gHy{_Q)?&0co;)TuQ_4p&%wfyG7z({lGlPt}gc zD^AXQvi$jB@32QkGv=^m^!@PI2)x~ig^lf2jC==p6!inkCcftRzaqLqPj;#tw|=0+ za$qHo=Ti2D*pCk(1?;>9?sK_&KIjBV3V8wl9)O_Kg2Z{~#%g29;02x5>d#s$m8=HYCCXSsH#_|8`snb>;Un>9i Q8Uqk`y85}Sb4q9e0G@XLNdN!< diff --git a/icons/obj/clothing/head/winterhood.dmi b/icons/obj/clothing/head/winterhood.dmi index aa212eb48da26216e5919c4df78ce95347cb81f9..c89538ccb0b35bde60834e3aa1822baad6fb14af 100644 GIT binary patch literal 6780 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 literal 5642 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 B8TD7A_YNW@ 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 literal 14306 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 literal 38220 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 z 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 Q4FRv42t&OOI(DJ|1B5v_#Q*>R diff --git a/icons/obj/clothing/suits/hooded.dmi b/icons/obj/clothing/suits/hooded.dmi index 6d449550ad434c41536cc26db719b624f2e0cd38..7c3a70a0624c2850d0ebdd53d4abf379c03e4973 100644 GIT binary patch literal 12561 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

    yKW%y?uC?NCdeA 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 literal 22808 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 diff --git a/shiptest.dme b/shiptest.dme index 53b8c061b5fa..7fdfccc47234 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -674,8 +674,8 @@ #include "code\datums\elements\lazy_fishing_spot.dm" #include "code\datums\elements\light_blocking.dm" #include "code\datums\elements\mobappearance.dm" -#include "code\datums\elements\point_of_interest.dm" #include "code\datums\elements\plant_backfire.dm" +#include "code\datums\elements\point_of_interest.dm" #include "code\datums\elements\renamemob.dm" #include "code\datums\elements\selfknockback.dm" #include "code\datums\elements\snail_crawl.dm" @@ -1259,7 +1259,6 @@ #include "code\game\objects\items\devices\powersink.dm" #include "code\game\objects\items\devices\pressureplates.dm" #include "code\game\objects\items\devices\quantum_keycard.dm" -#include "code\game\objects\items\devices\reverse_bear_trap.dm" #include "code\game\objects\items\devices\scanners.dm" #include "code\game\objects\items\devices\sensor_device.dm" #include "code\game\objects\items\devices\spyglasses.dm" @@ -2039,7 +2038,6 @@ #include "code\modules\clothing\outfits\factions\solgov.dm" #include "code\modules\clothing\outfits\factions\syndicate.dm" #include "code\modules\clothing\shoes\_shoes.dm" -#include "code\modules\clothing\shoes\bananashoes.dm" #include "code\modules\clothing\shoes\colour.dm" #include "code\modules\clothing\shoes\magboots.dm" #include "code\modules\clothing\shoes\miscellaneous.dm" From bb47657e2684f8cf30da8cba57f15d7cde3e7fc7 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Fri, 4 Oct 2024 01:04:15 -0500 Subject: [PATCH 078/125] Replaces the red insulated gloves in syndicate toolboxes with normal insulated gloves (#3466) ## About The Pull Request Says in the title ## Why It's Good For The Game Red insuls look like Shit ## Changelog :cl: balance: Replace red insuls with yellow insuls in syndicate toolboxes /:cl: --- code/game/objects/items/storage/toolbox.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 2208eddff91c..e0768391dae5 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -177,7 +177,7 @@ new /obj/item/crowbar/syndie(src) //WS Begin - Cool Syndie Tools new /obj/item/wirecutters/syndie(src) new /obj/item/multitool/syndie(src) //WS End - new /obj/item/clothing/gloves/color/red/insulated(src) + new /obj/item/clothing/gloves/color/yellow(src) /obj/item/storage/toolbox/syndicate/empty From 4bd26f3db8de9a28b469cbdce244dad27aec3dfb Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 01:38:55 -0500 Subject: [PATCH 079/125] Automatic changelog generation for PR #3466 [ci skip] --- html/changelogs/AutoChangeLog-pr-3466.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3466.yml diff --git a/html/changelogs/AutoChangeLog-pr-3466.yml b/html/changelogs/AutoChangeLog-pr-3466.yml new file mode 100644 index 000000000000..d35081929039 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3466.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {balance: Replace red insuls with yellow insuls in syndicate toolboxes} +delete-after: true From 17df4c448d3e06360f6516eff228ba9475c1747f Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Fri, 4 Oct 2024 02:04:21 -0400 Subject: [PATCH 080/125] Adds One Shot RPG to Black Market (#3468) ## About The Pull Request as title ## Why It's Good For The Game Purchasable Anti-Armor for crews that might not otherwise have access to it. ## Changelog :cl: add: A cargo ship happened to lose an entire crate of Hammer Rocket Launchers while travelling through the system. We have reason to believe they're probably on sale now. del: you can no longer purchase PML-9s on the black market. /:cl: --- .../blackmarket/blackmarket_items/explosives.dm | 12 ------------ .../cargo/blackmarket/blackmarket_items/weapons.dm | 11 +++++++++++ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm b/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm index ab7f62830324..26402e3dfac0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm @@ -97,18 +97,6 @@ stock_max = 7 availability_prob = 50 -/datum/blackmarket_item/explosive/rpg - name = "PML-9 RPG" - desc = "Offically, it's an anti-armor RPG launcher. Technically, it's anti-everything. Most things don't enjoy being hit in the face with high explosives." - item = /obj/item/gun/ballistic/rocketlauncher - - price_min = 3500 - price_max = 6500 - stock_min = 2 - stock_max = 5 - availability_prob = 10 - spawn_weighting = FALSE - /datum/blackmarket_item/explosive/live_bomb name = "Active ICW Era Ordinance" desc = "Look, I won't mince words. This thing is counting down and I don't want to be the next causualty of ICW after it's already ended. I'll sell it to you real cheap." diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index 7da2610a9049..740ee2c5341b 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -359,3 +359,14 @@ price_max = 3500 stock = 2 availability_prob = 40 + +/datum/blackmarket_item/weapon/oneshot + name = "Hammer Launcher" + desc = "A one-shot solution to a myriad amount of problems, ranging from Exosuits to obnoxious neighbors. Contains one ready-to-fire 84mm HEDP rocket. " + item = /obj/item/gun/ballistic/rocketlauncher/oneshot + + price_min = 3000 + price_max = 4500 + stock_min = 1 + stock_max = 5 + availability_prob = 25 From 3c51f3f605033c24d6748a6e01655bb8011f3374 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 01:52:30 -0500 Subject: [PATCH 081/125] Automatic changelog generation for PR #3468 [ci skip] --- html/changelogs/AutoChangeLog-pr-3468.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3468.yml diff --git a/html/changelogs/AutoChangeLog-pr-3468.yml b/html/changelogs/AutoChangeLog-pr-3468.yml new file mode 100644 index 000000000000..a0130e2f3b75 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3468.yml @@ -0,0 +1,7 @@ +author: Bjarl +changes: + - {rscadd: A cargo ship happened to lose an entire crate of Hammer Rocket Launchers + while travelling through the system. We have reason to believe they're probably + on sale now.} + - {rscdel: you can no longer purchase PML-9s on the black market.} +delete-after: true From 44d34bb82a11493cbd88b0d6d79bb4b5d09c0e1e Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:09:21 -0700 Subject: [PATCH 082/125] Inteq Gygax and Durand Paladin shield backlash. Fixes Durand shield blocking bullets from any direction. (#3382) ## About The Pull Request Adds a new mech variant, the IRMG Basenji Gygax. Featuring a much more powerful overclock, capable of charging through walls and obstacles in short bursts of intense speed. ![image](https://github.com/user-attachments/assets/5daae4b1-2d9f-4f6f-8237-e861f0e44254) Implements the backlash function for the Paladin Durand's shield. Coming into contact with it will apply a nasty shock to any attackers. The modification however prevents it from blocking bullets or projectiles. Fixes the Durand shield being able to block bullets from any direction. The proc didnt have the right arguments, and was using the Durand itself as the projectile it was supposed to defend itself against. Inteq Gygax sprite done by Rye-Rice, modified from sprites by INFRARED_BARON ## Why It's Good For The Game New mechs are neat, and implements an intended feature that was wanted for the Paladin. Bug fixes are good too I think ## Changelog :cl: Gristlebee, Rye-Rice, INFRARED_BARON add: Inteq Gygax and mech charges add: Paladin shield backlash fix: Durand shield blocking all projectiles imageadd: Inteq Gygax sprites /:cl: --------- Signed-off-by: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Co-authored-by: Theos --- code/game/mecha/combat/durand.dm | 87 ++++++++++++++---- code/game/mecha/combat/gygax.dm | 16 ++++ code/game/mecha/equipment/tools/work_tools.dm | 7 ++ code/game/mecha/mecha.dm | 60 ++++++++++++ code/game/mecha/mecha_actions.dm | 14 +++ code/modules/power/power.dm | 3 +- icons/mecha/inteq_gygax.dmi | Bin 0 -> 6336 bytes icons/mecha/mecha.dmi | Bin 138925 -> 143568 bytes 8 files changed, 168 insertions(+), 19 deletions(-) create mode 100644 icons/mecha/inteq_gygax.dmi diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index 4ccf400e6ab1..a42e1e29f7ee 100644 --- a/code/game/mecha/combat/durand.dm +++ b/code/game/mecha/combat/durand.dm @@ -12,23 +12,24 @@ force = 40 wreckage = /obj/structure/mecha_wreckage/durand var/obj/durand_shield/shield + var/shield_type = /obj/durand_shield var/shield_passive_drain = 300 + /obj/mecha/combat/durand/clip - desc = "An aging combat exosuit appropriated from abandoned Nanotrasen facilities, now supplied to the CMM-BARD anti-xenofauna division." + desc = "An aging combat exosuit appropriated from abandoned Nanotrasen facilities, now supplied to the CMM-BARD anti-xenofauna division. The defence grid has been modified to disperse controlled electric shocks on contact, at the cost of its ability to block ranged projectiles." name = "\improper Paladin" icon_state = "clipdurand" wreckage = /obj/structure/mecha_wreckage/durand/clip armor = list("melee" = 40, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 50, "fire" = 100, "acid" = 100) - - //TODO: Custom melee backlash shield with no projectile protection + shield_passive_drain = 0 + shield_type = /obj/durand_shield/clip /obj/mecha/combat/durand/Initialize() . = ..() - shield = new /obj/durand_shield(loc, src, layer, dir) + shield = new shield_type(loc, src, layer, dir) RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, PROC_REF(relay)) - RegisterSignal(src, COMSIG_PROJECTILE_PREHIT, PROC_REF(prehit)) /obj/mecha/combat/durand/Destroy() @@ -71,22 +72,21 @@ if(!shield) //if the shield somehow got deleted stack_trace("Durand triggered relay without a shield") - shield = new /obj/durand_shield(loc, src, layer) + shield = new shield_type(loc, src, layer) shield.setDir(dir) SEND_SIGNAL(shield, COMSIG_MECHA_ACTION_ACTIVATE, source, signal_args) //Redirects projectiles to the shield if defense_check decides they should be blocked and returns true. -/obj/mecha/combat/durand/proc/prehit(obj/projectile/source, list/signal_args) - SIGNAL_HANDLER - - if(defense_check(source.loc) && shield) - signal_args[2] = shield - +/obj/mecha/combat/durand/bullet_act(obj/projectile/source) + if(defense_check(source.loc, shield.ranged_pass)) + shield.bullet_act(source) + else + . = ..() /**Checks if defense mode is enabled, and if the attacker is standing in an area covered by the shield. -Expects a turf. Returns true if the attack should be blocked, false if not.*/ -/obj/mecha/combat/durand/proc/defense_check(turf/aloc) - if (!defense_mode || !shield || shield.switching) +Expects a turf. Returns true if the attack should be blocked, false if not. Skip defence will make the proc return false and the attack will go through*/ +/obj/mecha/combat/durand/proc/defense_check(turf/aloc, skip_defence = FALSE) + if (!defense_mode || !shield || shield.switching || skip_defence) return FALSE . = FALSE switch(dir) @@ -105,26 +105,38 @@ Expects a turf. Returns true if the attack should be blocked, false if not.*/ return /obj/mecha/combat/durand/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, armor_penetration = 0) - if(defense_check(user.loc)) + if(defense_check(user.loc, shield.melee_pass)) log_message("Attack absorbed by defense field. Attacker - [user].", LOG_MECHA, color="orange") shield.attack_generic(user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) else . = ..() /obj/mecha/combat/durand/attackby(obj/item/W as obj, mob/user as mob, params) - if(defense_check(user.loc)) + if(defense_check(user.loc, shield.melee_pass)) log_message("Attack absorbed by defense field. Attacker - [user], with [W]", LOG_MECHA, color="orange") shield.attackby(W, user, params) else . = ..() /obj/mecha/combat/durand/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - if(defense_check(AM.loc)) + if(defense_check(AM.loc, shield.ranged_pass)) log_message("Impact with [AM] absorbed by defense field.", LOG_MECHA, color="orange") shield.hitby(AM, skipcatch, hitpush, blocked, throwingdatum) else . = ..() +// Walking into the Paladin's shield shocks you. + +/obj/mecha/combat/durand/clip/Bump(atom/obstacle) + . = ..() + if(defense_check(obstacle.loc) && isliving(obstacle)) + shield.contact(obstacle) + +/obj/mecha/combat/durand/clip/Bumped(atom/movable/AM) + . = ..() + if(defense_check(AM.loc) && isliving(AM)) + shield.contact(AM) + //////////////////////////// ///// Shield processing //// //////////////////////////// @@ -151,7 +163,14 @@ own integrity back to max. Shield is automatically dropped if we run out of powe light_on = FALSE var/obj/mecha/combat/durand/chassis ///Our link back to the durand var/switching = FALSE ///To keep track of things during the animation + /// if this shield lets melee attacks pass and hit the mech directly + var/melee_pass = FALSE + /// if this shield lets projectiles pass and hit the mech directly + var/ranged_pass = FALSE +/obj/durand_shield/clip + name = "electric repulsion grid" + ranged_pass = TRUE /obj/durand_shield/Initialize(mapload, _chassis, _layer, _dir) . = ..() @@ -230,3 +249,35 @@ the shield is disabled by means other than the action button (like running out o /obj/durand_shield/bullet_act() play_attack_sound() . = ..() + +/// a mob has bumped into the shield +/obj/durand_shield/proc/contact(mob/living/contactor) + return + +/// Clippy shield +/obj/durand_shield/clip/attack_generic(mob/user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) + . = ..() + apply_shock(user) + +/obj/durand_shield/clip/attackby(obj/item/I, mob/living/user, params) + . = ..() + apply_shock(user) + +/obj/durand_shield/clip/contact(mob/living/contactor) + . = ..() + apply_shock(contactor) + +/obj/durand_shield/clip/proc/apply_shock(mob/attacker) + var/did_shock = FALSE + if(iscarbon(attacker)) + var/mob/living/carbon/victim = attacker + if(electrocute_mob(victim, chassis.cell, src, 1, FALSE, FALSE)) + did_shock = TRUE + else if(isliving(attacker)) + var/mob/living/victim = attacker + if(victim.apply_damage_type(20,BURN)) + to_chat(victim,span_userdanger("You're shocked by \the [src]!")) + did_shock = TRUE + if(did_shock) + visible_message(span_bolddanger("\The [src] repels \the [attacker] on contact, shocking [attacker.p_them()].")) + do_sparks(5,TRUE,src) diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm index 5fe5d9350c14..02f66b54236a 100644 --- a/code/game/mecha/combat/gygax.dm +++ b/code/game/mecha/combat/gygax.dm @@ -58,6 +58,13 @@ return cell = new /obj/item/stock_parts/cell/bluespace(src) +/obj/mecha/combat/gygax/inteq + name = "\improper Basenji" + desc = "A lightweight security exosuit, modified to IRMG standards. The leg actuators have been maxed out, allowing for powerful short ranged charges." + icon_state = "inteqgygax" + charge_break_walls = TRUE + charge_toss_structures = TRUE + charge_toss_mobs = TRUE /obj/mecha/combat/gygax/GrantActions(mob/living/user, human_occupant = 0) ..() @@ -67,3 +74,12 @@ /obj/mecha/combat/gygax/RemoveActions(mob/living/user, human_occupant = 0) ..() overload_action.Remove(user) + +/obj/mecha/combat/gygax/inteq/GrantActions(mob/living/user, human_occupant = 0) + ..() + overload_action.Remove(user) + charge_action.Grant(user,src) + +/obj/mecha/combat/gygax/inteq/RemoveActions(mob/living/user, human_occupant) + . = ..() + charge_action.Remove(user) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index ee8481255f2d..44c8c6626dae 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -575,3 +575,10 @@ icon_state = "clipupgrade" source_mech = list(/obj/mecha/combat/durand) result_mech = /obj/mecha/combat/durand/clip + +/obj/item/mecha_parts/mecha_equipment/conversion_kit/inteq_gygax + name = "IRMG Basenji Conversion Kit" + desc = "An IRMG-custom conversion kit for a Gygax combat exosuit, to convert it to the specialized Pyrnese breaching exosuit." + source_mech = list(/obj/mecha/combat/gygax,/obj/mecha/combat/gygax/dark) + result_mech = /obj/mecha/combat/gygax/inteq + diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index a1b46fd2fbfa..db59620b39fd 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -41,6 +41,16 @@ var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference var/completely_disabled = FALSE //stops the mech from doing anything + ///Vars for mech charges + var/charging = FALSE + var/charge_ready = TRUE + var/charge_cooldown = 50 + var/charge_power_consume = 200 + var/charge_distance = 5 + var/charge_break_walls = FALSE + var/charge_toss_structures = FALSE + var/charge_toss_mobs = FALSE + var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it. //inner atmos var/use_internal_tank = 0 @@ -90,6 +100,7 @@ var/datum/action/innate/mecha/mech_view_stats/stats_action = new var/datum/action/innate/mecha/mech_defense_mode/defense_action = new var/datum/action/innate/mecha/mech_overload_mode/overload_action = new + var/datum/action/innate/mecha/mech_charge_mode/charge_action = new var/datum/effect_system/smoke_spread/smoke_system = new //not an action, but trigged by one var/datum/action/innate/mecha/mech_smoke/smoke_action = new var/datum/action/innate/mecha/mech_zoom/zoom_action = new @@ -643,6 +654,7 @@ step_silent = FALSE /obj/mecha/Bump(atom/obstacle) + var/atom/throw_target = get_edge_target_turf(obstacle, dir) if(phasing && get_charge() >= phasing_energy_drain && !throwing) if(!can_move) return @@ -654,6 +666,27 @@ forceMove(get_step(src,dir)) use_power(phasing_energy_drain) addtimer(VARSET_CALLBACK(src, can_move, TRUE), step_in*3) + else if(charging) + if(charge_break_walls && iswallturf(obstacle)) + var/turf/closed/wall/crushed = obstacle + playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + visible_message(span_danger("[src] smashes through [obstacle]")) + crushed.dismantle_wall(TRUE) + if(isobj(obstacle)) + var/obj/object = obstacle + obstacle.mech_melee_attack(src) + if(!(object.resistance_flags & INDESTRUCTIBLE) && charge_toss_structures) + object.throw_at(throw_target, 4, 3) + visible_message(span_danger("[src] crashes into [obstacle]!")) + playsound(src, 'sound/effects/bang.ogg', 50, TRUE) + if(ishuman(obstacle)) + var/mob/living/carbon/human/H = obstacle + H.throw_at(throw_target,4,3) + visible_message(span_danger("[src] slams into \the [obstacle], sending [obstacle.p_them()] flying!")) + playsound(H, 'sound/effects/bang.ogg', 100, FALSE, -1) + H.Paralyze(20) + H.adjustStaminaLoss(30) + H.apply_damage(rand(20,35), BRUTE) else if(..()) //mech was thrown return @@ -1212,3 +1245,30 @@ GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013??? else to_chat(user, "None of the equipment on this exosuit can use this ammo!") return FALSE + + +/////////////////////// +////// Charging ///// +/////////////////////// + +/obj/mecha/proc/start_charge() + Shake(15, 15, 1 SECONDS) + var/obj/effect/temp_visual/decoy/new_decoy = new /obj/effect/temp_visual/decoy(loc,src) + animate(new_decoy, alpha = 0, color = "#5a5858", transform = matrix()*2, time = 2) + addtimer(CALLBACK(src,PROC_REF(handle_charge)),0.5 SECONDS, TIMER_STOPPABLE) + +/obj/mecha/proc/handle_charge() + var/turf/mecha_loc = get_turf(src) + charging = TRUE + var/turf/charge_target = get_ranged_target_turf(mecha_loc,dir,charge_distance) + if(!charge_target) + charging = FALSE + return + cell.use(charge_power_consume) + walk_towards(src, charge_target, 0.7) + sleep(get_dist(src, charge_target) * 0.7) + charge_end() + +/obj/mecha/proc/charge_end() + walk(src,0) + charging = FALSE diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 6d860558a652..f10fb49c29bc 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -183,6 +183,20 @@ chassis.occupant_message("You disable leg actuators overload.") UpdateButtonIcon() +/datum/action/innate/mecha/mech_charge_mode + name = "Charge" + button_icon_state = "mech_overload_off" + +/datum/action/innate/mecha/mech_charge_mode/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + if(chassis.charge_ready && !chassis.charging) + chassis.start_charge() + chassis.charge_ready = FALSE + addtimer(VARSET_CALLBACK(chassis, charge_ready, TRUE), chassis.charge_cooldown) + else + chassis.occupant_message(span_warning("The leg actuators are still recharging!")) + /datum/action/innate/mecha/mech_smoke name = "Smoke" button_icon_state = "mech_smoke" diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index a386a739622d..7c7dc8692cb5 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -377,8 +377,9 @@ //source is an object caused electrocuting (airlock, grille, etc) //siemens_coeff - layman's terms, conductivity //dist_check - set to only shock mobs within 1 of source (vendors, airlocks, etc.) +//drain_energy - whether the shock will drain power from the mech. Enabled by default. //No animations will be performed by this proc. -/proc/electrocute_mob(mob/living/carbon/victim, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE) +/proc/electrocute_mob(mob/living/carbon/victim, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE, drain_energy = TRUE) if(!istype(victim) || ismecha(victim.loc)) return FALSE //feckin mechs are dumb diff --git a/icons/mecha/inteq_gygax.dmi b/icons/mecha/inteq_gygax.dmi new file mode 100644 index 0000000000000000000000000000000000000000..08105d783ab99cfe823a59b186252d94f34851cd GIT binary patch literal 6336 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%0A@t?zmACl(B)?vAzDt(RK$q>g&a}U^f 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

    ppkB185t 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 Date: Fri, 4 Oct 2024 02:06:52 -0500 Subject: [PATCH 083/125] Automatic changelog generation for PR #3382 [ci skip] --- html/changelogs/AutoChangeLog-pr-3382.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3382.yml diff --git a/html/changelogs/AutoChangeLog-pr-3382.yml b/html/changelogs/AutoChangeLog-pr-3382.yml new file mode 100644 index 000000000000..eedebb40d990 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3382.yml @@ -0,0 +1,7 @@ +author: Gristlebee, Rye-Rice, INFRARED_BARON +changes: + - {rscadd: Inteq Gygax and mech charges} + - {rscadd: Paladin shield backlash} + - {bugfix: Durand shield blocking all projectiles} + - {imageadd: Inteq Gygax sprites} +delete-after: true From 8251d7e32a4250dd21b6680071a0d7dd135afbc4 Mon Sep 17 00:00:00 2001 From: MemeSnorfer <116136632+MemeSnorfer@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:09:35 -0700 Subject: [PATCH 084/125] Three More Elzu Horns (#3476) ## About The Pull Request Adds three more options for Elzuose horns. Cervid, Prong, and Brow. Images: ![image](https://github.com/user-attachments/assets/24f98d74-f64b-4b8d-8cab-9eb878c30646) ![image](https://github.com/user-attachments/assets/8e52c0ae-e7ee-4d34-82cd-35401a9dcae7) ![image](https://github.com/user-attachments/assets/5f1dfeab-7683-4055-8e1c-895b12dce505) ![image](https://github.com/user-attachments/assets/3008c58f-6022-4c4f-b840-7a3088dd8b6d) ## Why It's Good For The Game More customization options for the limited list of existing Elzuose horns. Must be good :P ## Changelog :cl: add: Three new Elzuose horn types. Cervid, Prong, and Brow /:cl: --- .../new_player/sprite_accessories/elzuose.dm | 12 ++++++++++++ icons/mob/ethereal_parts.dmi | Bin 8513 -> 9892 bytes 2 files changed, 12 insertions(+) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/elzuose.dm b/code/modules/mob/dead/new_player/sprite_accessories/elzuose.dm index 58317b5ab91a..9a15f0270fdf 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/elzuose.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/elzuose.dm @@ -37,6 +37,18 @@ name = "Sharp" icon_state = "sharp" +/datum/sprite_accessory/elzu_horns/cervid + name = "Cervid" + icon_state = "cervid" + +/datum/sprite_accessory/elzu_horns/prong + name = "Prong" + icon_state = "prong" + +/datum/sprite_accessory/elzu_horns/brow + name = "Brow" + icon_state = "brow" + //Start tails /datum/sprite_accessory/tails/elzu diff --git a/icons/mob/ethereal_parts.dmi b/icons/mob/ethereal_parts.dmi index 14e0c51037fb5161bc50b07c6c399b4cb5606c2f..c5d0c9b45f781cd50ef77083047ead224030ef2b 100644 GIT binary patch literal 9892 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 From 63a4c7333a1bcf22e925df6dc207dfb0151a6bbd Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 02:20:03 -0500 Subject: [PATCH 085/125] Automatic changelog generation for PR #3476 [ci skip] --- html/changelogs/AutoChangeLog-pr-3476.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3476.yml diff --git a/html/changelogs/AutoChangeLog-pr-3476.yml b/html/changelogs/AutoChangeLog-pr-3476.yml new file mode 100644 index 000000000000..51594996de27 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3476.yml @@ -0,0 +1,4 @@ +author: MemeSnorfer +changes: + - {rscadd: 'Three new Elzuose horn types. Cervid, Prong, and Brow'} +delete-after: true From 66f8417e54311817bd11577424e349fdf920594f Mon Sep 17 00:00:00 2001 From: Jedi-Toothpaste <53096233+Jedi-Toothpaste@users.noreply.github.com> Date: Fri, 4 Oct 2024 08:49:02 +0100 Subject: [PATCH 086/125] air alarms and more minor valor tweaks (#3452) ## About The Pull Request Fixes a few outlasting issues with the Valor that I forgot from the previous pass. - Namely, adding air alarms and scrubbers to each room where applicable. ![image](https://github.com/user-attachments/assets/ebaba7a1-7f11-45b2-b195-13b367bd632d) - Adding intercoms to High-Traffic Areas - Adding Firelocks under the Cargo Blast Doors. - Adds a Medical Webbing to the HC's Locker, since they don't spawn with one. Also, finally, FINALLY FIXES the WORST part of the Valor. This being the security laptop in the way of the windoor in the armoury. THIS GAME BREAKING FEATURE has FINALLY been fixed. ![image](https://github.com/user-attachments/assets/23f9ddbf-6c72-45f4-9024-dc74ce366c7d) ## Why It's Good For The Game Having intercoms around the high traffic areas, hangar, surgery, mess should be helpful. Crew on the Valor naturally congregate in the Cargo Bay while patients generally gather outside of Surgery. Having a full scrubber and vent network with Air Alarms is a no brainer, again. The firelock change was a request for better RP, as Valor crews tend to like opening the blast doors as if they're opening the way for the Subshuttle to land, I find this to be great fun, and I believe the Ship Designers in-universe would put in a secondary saefty measure incase the holofield fails. - Also people can get crushed in the doors if you trip the fire alarm, this is funny. ## Changelog :cl: add: Added extra intercoms in high traffic areas on the Valor Class add: Added Firelocks underneath the Cargo-Bay Doors on the Valor Class add: Air Alarms, Scrubbers and Vents to every applicable room /:cl: --- _maps/shuttles/inteq/inteq_valor.dmm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm index dac3ac7a0ebb..3f709a261b15 100644 --- a/_maps/shuttles/inteq/inteq_valor.dmm +++ b/_maps/shuttles/inteq/inteq_valor.dmm @@ -149,6 +149,9 @@ }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "bR" = ( @@ -1707,6 +1710,9 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "pt" = ( @@ -1971,6 +1977,9 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/dark, /area/ship/medical/surgery) "rX" = ( @@ -2272,10 +2281,6 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -20 - }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "tZ" = ( @@ -4281,6 +4286,12 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/patterned, /area/ship/cargo) "Nh" = ( From e5ffcaa49f4a46af520487d7e63f13d6fc594c57 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 03:00:05 -0500 Subject: [PATCH 087/125] Automatic changelog generation for PR #3452 [ci skip] --- html/changelogs/AutoChangeLog-pr-3452.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3452.yml diff --git a/html/changelogs/AutoChangeLog-pr-3452.yml b/html/changelogs/AutoChangeLog-pr-3452.yml new file mode 100644 index 000000000000..227901e38429 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3452.yml @@ -0,0 +1,6 @@ +author: Jedi-Toothpaste +changes: + - {rscadd: Added extra intercoms in high traffic areas on the Valor Class} + - {rscadd: Added Firelocks underneath the Cargo-Bay Doors on the Valor Class} + - {rscadd: 'Air Alarms, Scrubbers and Vents to every applicable room'} +delete-after: true From 03064786929daed1cad9412745a82a44b0a0106e Mon Sep 17 00:00:00 2001 From: zimon9 <122945887+zimon9@users.noreply.github.com> Date: Fri, 4 Oct 2024 05:31:54 -0400 Subject: [PATCH 088/125] Minor Colossus Filter Fix (#3442) ## About The Pull Request Swaps the positions of the filters on the Colossus so that oxygen is filtered to the oxygen tank, and nitrogen is filtered into the nitrogen tank. ![image](https://github.com/user-attachments/assets/253af707-0d9d-4b29-9369-bae5d3ac2c64) ## Why It's Good For The Game I know that a rework for the Colossus is in progress, but I felt that a minor fix wouldn't hurt, in the meantime. This prevents pure tanks from being contaminated with gasses that are not supposed to be there, messing up the overall gas mix composition of the air. ## Changelog :cl: fix: fixed the waste and scrubber gas reclamation filters on the colossus /:cl: --- _maps/shuttles/inteq/inteq_colossus.dmm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index f19c734f9d83..482d6999b28c 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -3032,9 +3032,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ - dir = 1 - }, /obj/machinery/power/terminal{ dir = 4 }, @@ -3045,6 +3042,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, /obj/machinery/atmospherics/pipe/simple/orange/hidden/layer1, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ + dir = 1 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "HD" = ( @@ -3975,13 +3975,13 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, /obj/machinery/atmospherics/pipe/simple/orange/hidden/layer1, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2, /turf/open/floor/plasteel/tech, /area/ship/engineering) "Sg" = ( From 49ecdce8fa42c638be71262da93a113ac8ec0f55 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 04:42:45 -0500 Subject: [PATCH 089/125] Automatic changelog generation for PR #3442 [ci skip] --- html/changelogs/AutoChangeLog-pr-3442.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3442.yml diff --git a/html/changelogs/AutoChangeLog-pr-3442.yml b/html/changelogs/AutoChangeLog-pr-3442.yml new file mode 100644 index 000000000000..93368cdd5e5a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3442.yml @@ -0,0 +1,4 @@ +author: zimon9 +changes: + - {bugfix: fixed the waste and scrubber gas reclamation filters on the colossus} +delete-after: true From f3fd10a0a4cc6a7a46e9d24236226747da4912ce Mon Sep 17 00:00:00 2001 From: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:49:09 -0500 Subject: [PATCH 090/125] TGUI pipe dispenser (#3464) ## About The Pull Request Implements a tweaked UI from rapid pipe dispensers for normal (obj/machinery/pipedispenser) dispensers Pipe dispensers now have a 5ms delay on prints and can make disposals and transport tubes. Removes dispenser/disposals and dispenser/transport because they're redundant now. ![image](https://github.com/user-attachments/assets/73a9bd7a-7d5d-49d2-a8f2-3313350ee4c8) updates text2path regex to 115 from 117 updates non-bitwise << uses to 262 from 266 ## Why It's Good For The Game The old UI sucks and is laggy and bad. ## Changelog :cl: add: pipe dispenser UI is now similar to rapid pipe dispenser UI. /:cl: --------- Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../independent/independent_junker.dmm | 2 +- check_regex.yaml | 4 +- code/game/machinery/pipe/pipe_dispenser.dm | 338 +++++++++--------- .../packages/tgui/interfaces/PipeDispenser.js | 193 ++++++++++ 4 files changed, 362 insertions(+), 175 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/PipeDispenser.js diff --git a/_maps/shuttles/independent/independent_junker.dmm b/_maps/shuttles/independent/independent_junker.dmm index 7819d04ec1c2..0ae98ef37fe2 100644 --- a/_maps/shuttles/independent/independent_junker.dmm +++ b/_maps/shuttles/independent/independent_junker.dmm @@ -2284,7 +2284,6 @@ /turf/closed/wall/r_wall, /area/ship/maintenance/port) "Ro" = ( -/obj/machinery/pipedispenser/disposal, /obj/item/reagent_containers/food/drinks/mug/tea{ pixel_y = 8; pixel_x = -7 @@ -2305,6 +2304,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, +/obj/machinery/pipedispenser, /turf/open/floor/plating, /area/ship/maintenance/central) "RQ" = ( diff --git a/check_regex.yaml b/check_regex.yaml index eadd642f0676..41174bd9aa22 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -31,14 +31,14 @@ standards: - exactly: [4, "/mob text paths", '"/mob'] - exactly: [42, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - - exactly: [117, "text2path uses", "text2path"] + - exactly: [115, "text2path uses", "text2path"] - exactly: [18, "world<< uses", 'world[ \t]*<<'] - exactly: [0, "world.log<< uses", 'world.log[ \t]*<<'] - exactly: [ - 266, + 262, "non-bitwise << uses", '(?--[piping_layer]++
    " - - var/recipes = GLOB.atmos_pipe_recipes - - for(var/category in recipes) - var/list/cat_recipes = recipes[category] - dat += "[category]:
      " - - for(var/i in cat_recipes) - var/datum/pipe_info/I = i - dat += I.Render(src) - - dat += "
    " - - user << browse("[src][dat]", "window=pipedispenser") - onclose(user, "pipedispenser") - return - -/obj/machinery/pipedispenser/Topic(href, href_list) - if(..()) - return 1 - var/mob/living/L = usr - if(!anchored || (istype(L) && !(L.mobility_flags & MOBILITY_UI)) || usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED) || !in_range(loc, usr)) - usr << browse(null, "window=pipedispenser") - return 1 - usr.set_machine(src) - add_fingerprint(usr) - if(href_list["makepipe"]) - if(wait < world.time) - var/p_type = text2path(href_list["makepipe"]) - if (!verify_recipe(GLOB.atmos_pipe_recipes, p_type)) - return - var/p_dir = text2num(href_list["dir"]) - var/obj/item/pipe/P = new (loc, p_type, p_dir) - P.setPipingLayer(piping_layer) - P.add_fingerprint(usr) - wait = world.time + 10 - if(href_list["makemeter"]) - if(wait < world.time) - new /obj/item/pipe_meter(loc) - wait = world.time + 15 - if(href_list["layer_up"]) - piping_layer = clamp(++piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX) - if(href_list["layer_down"]) - piping_layer = clamp(--piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX) - return + if(.) + return + + if(!usr.canUseTopic(src, BE_CLOSE)) + return + switch(action) + if("color") + paint_color = params["paint_color"] + if("category") + category = text2num(params["category"]) + switch(category) + if(DISPOSALS_CATEGORY) + recipe = first_disposal + if(ATMOS_CATEGORY) + recipe = first_atmos + if(TRANSIT_CATEGORY) + recipe = first_transit + p_dir = NORTH + if("print") + make_pipe() + if("piping_layer") + piping_layer = text2num(params["piping_layer"]) + if("ducting_layer") + ducting_layer = text2num(params["ducting_layer"]) + if("pipe_type") + var/static/list/recipes + if(!recipes) + recipes = GLOB.disposal_pipe_recipes + GLOB.atmos_pipe_recipes + GLOB.transit_tube_recipes + recipe = recipes[params["category"]][text2num(params["pipe_type"])] + p_dir = NORTH + if("setdir") + p_dir = text2dir(params["dir"]) + p_flipped = text2num(params["flipped"]) + return TRUE /obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params) add_fingerprint(user) @@ -70,15 +125,6 @@ else return ..() -/obj/machinery/pipedispenser/proc/verify_recipe(recipes, path) - for(var/category in recipes) - var/list/cat_recipes = recipes[category] - for(var/i in cat_recipes) - var/datum/pipe_info/info = i - if (path == info.id) - return TRUE - return FALSE - /obj/machinery/pipedispenser/wrench_act(mob/living/user, obj/item/I) ..() if(default_unfasten_wrench(user, I, 40)) @@ -96,129 +142,77 @@ default_deconstruction_crowbar(I) return TRUE -/obj/machinery/pipedispenser/disposal - name = "disposal pipe dispenser" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "pipe_d" - desc = "Dispenses pipes that will ultimately be used to move trash around." - density = TRUE - - //Allow you to drag-drop disposal pipes and transit tubes into it -/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/pipe, mob/usr) - if(!usr.incapacitated()) +/obj/machinery/pipedispenser/MouseDrop_T(obj/structure/pipe, mob/usr) + if(usr.incapacitated()) return - if (!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod)) + if(!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod)) return - if (get_dist(usr, src) > 1 || get_dist(src,pipe) > 1) + if(get_dist(usr, src) > 1 || get_dist(src,pipe) > 1) return - if (pipe.anchored) + if(pipe.anchored) return qdel(pipe) -/obj/machinery/pipedispenser/disposal/interact(mob/user) - - var/dat = "" - var/recipes = GLOB.disposal_pipe_recipes - - for(var/category in recipes) - var/list/cat_recipes = recipes[category] - dat += "[category]:
      " - - for(var/i in cat_recipes) - var/datum/pipe_info/I = i - dat += I.Render(src) - - dat += "
    " - - user << browse("[src][dat]", "window=pipedispenser") - return - - -/obj/machinery/pipedispenser/disposal/Topic(href, href_list) - if(..()) - return 1 - usr.set_machine(src) - add_fingerprint(usr) - if(href_list["dmake"]) - if(wait < world.time) - var/p_type = text2path(href_list["dmake"]) - if (!verify_recipe(GLOB.disposal_pipe_recipes, p_type)) - return - var/obj/structure/disposalconstruct/C = new (loc, p_type) - - if(!C.can_place()) - to_chat(usr, "There's not enough room to build that here!") - qdel(C) - return - if(href_list["dir"]) - C.setDir(text2num(href_list["dir"])) - C.add_fingerprint(usr) - C.update_appearance() - wait = world.time + 15 - return - -//transit tube dispenser -//inherit disposal for the dragging proc -/obj/machinery/pipedispenser/disposal/transit_tube - name = "transit tube dispenser" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "pipe_d" - density = TRUE - desc = "Dispenses pipes that will move beings around." - -/obj/machinery/pipedispenser/disposal/transit_tube/interact(mob/user) - - var/dat = {"Transit Tubes:
    -Straight Tube
    -Straight Tube with Crossing
    -Curved Tube
    -Diagonal Tube
    -Diagonal Tube with Crossing
    -Junction
    -Station Equipment:
    -Through Tube Station
    -Terminus Tube Station
    -Transit Tube Pod
    -"} - - user << browse("[src][dat]", "window=pipedispenser") - return - - -/obj/machinery/pipedispenser/disposal/transit_tube/Topic(href, href_list) - if(..()) - return 1 - usr.set_machine(src) - add_fingerprint(usr) - if(wait < world.time) - if(href_list["tube"]) - var/tube_type = text2num(href_list["tube"]) - var/obj/structure/C - switch(tube_type) - if(TRANSIT_TUBE_STRAIGHT) - C = new /obj/structure/c_transit_tube(loc) - if(TRANSIT_TUBE_STRAIGHT_CROSSING) - C = new /obj/structure/c_transit_tube/crossing(loc) - if(TRANSIT_TUBE_CURVED) - C = new /obj/structure/c_transit_tube/curved(loc) - if(TRANSIT_TUBE_DIAGONAL) - C = new /obj/structure/c_transit_tube/diagonal(loc) - if(TRANSIT_TUBE_DIAGONAL_CROSSING) - C = new /obj/structure/c_transit_tube/diagonal/crossing(loc) - if(TRANSIT_TUBE_JUNCTION) - C = new /obj/structure/c_transit_tube/junction(loc) - if(TRANSIT_TUBE_STATION) - C = new /obj/structure/c_transit_tube/station(loc) - if(TRANSIT_TUBE_TERMINUS) - C = new /obj/structure/c_transit_tube/station/reverse(loc) - if(TRANSIT_TUBE_POD) - C = new /obj/structure/c_transit_tube_pod(loc) - if(C) - C.add_fingerprint(usr) - wait = world.time + 15 - return +/obj/machinery/pipedispenser/proc/make_pipe(mob/user) + if(busy) + src.visible_message(span_warning("[src] is busy.")) + return + var/queued_p_type = recipe.id + var/queued_p_dir = p_dir + var/queued_p_flipped = p_flipped + switch(category) + if(ATMOS_CATEGORY) + if(recipe.type == /datum/pipe_info/meter) + new /obj/item/pipe_meter(loc) + on_make_pipe() + else + if(recipe.all_layers == FALSE && (piping_layer == 1 || piping_layer == 5)) + src.visible_message(span_warning("[src] can't print this object on the layer...")) + return + var/obj/machinery/atmospherics/path = queued_p_type + var/pipe_item_type = initial(path.construction_type) || /obj/item/pipe + var/obj/item/pipe/P = new pipe_item_type(loc, queued_p_type, queued_p_dir) + on_make_pipe() + + if(queued_p_flipped && istype(P, /obj/item/pipe/trinary/flippable)) + var/obj/item/pipe/trinary/flippable/F = P + F.flipped = queued_p_flipped + + P.update() + P.setPipingLayer(piping_layer) + if(ispath(path, /obj/machinery/atmospherics/pipe) && !findtext("[queued_p_type]", "layer_manifold")) + P.add_atom_colour(GLOB.pipe_paint_colors[paint_color], FIXED_COLOUR_PRIORITY) + + if(DISPOSALS_CATEGORY) //Making disposals pipes + new /obj/structure/disposalconstruct(loc, queued_p_type, queued_p_dir, queued_p_flipped) + on_make_pipe() + return + + if(TRANSIT_CATEGORY) //Making transit tubes + if(istype(queued_p_type, /obj/structure/c_transit_tube_pod)) + new /obj/structure/c_transit_tube_pod(loc) + on_make_pipe() + else + var/obj/structure/c_transit_tube/tube = new queued_p_type(loc) + on_make_pipe() + tube.setDir(queued_p_dir) + + if(queued_p_flipped) + tube.setDir(turn(queued_p_dir, 45)) + tube.simple_rotate_flip() + +/obj/machinery/pipedispenser/proc/on_make_pipe() + busy = TRUE + delay = addtimer(CALLBACK(src, PROC_REF(reset_busy)), 5) + +/obj/machinery/pipedispenser/proc/reset_busy() + busy = FALSE + +#undef ATMOS_CATEGORY +#undef DISPOSALS_CATEGORY +#undef TRANSIT_CATEGORY diff --git a/tgui/packages/tgui/interfaces/PipeDispenser.js b/tgui/packages/tgui/interfaces/PipeDispenser.js new file mode 100644 index 000000000000..61798b67306a --- /dev/null +++ b/tgui/packages/tgui/interfaces/PipeDispenser.js @@ -0,0 +1,193 @@ +import { classes } from 'common/react'; +import { useBackend, useLocalState } from '../backend'; +import { + Box, + Button, + ColorBox, + Flex, + LabeledList, + Section, + Tabs, +} from '../components'; +import { Window } from '../layouts'; + +const ROOT_CATEGORIES = ['Atmospherics', 'Disposals', 'Transit Tubes']; + +const ICON_BY_CATEGORY_NAME = { + 'Atmospherics': 'wrench', + 'Disposals': 'trash-alt', + 'Transit Tubes': 'bus', + 'Pipes': 'grip-lines', + 'Disposal Pipes': 'grip-lines', + 'Devices': 'microchip', + 'Heat Exchange': 'thermometer-half', + 'Station Equipment': 'microchip', +}; + +const PAINT_COLORS = { + grey: '#bbbbbb', + amethyst: '#a365ff', + blue: '#4466ff', + brown: '#b26438', + cyan: '#48eae8', + dark: '#808080', + green: '#1edd00', + orange: '#ffa030', + purple: '#b535ea', + red: '#ff3333', + violet: '#6e00f6', + yellow: '#ffce26', +}; + +export const PipeDispenser = (props, context) => { + const { act, data } = useBackend(context); + const { + category: rootCategoryIndex, + categories = [], + selected_color, + piping_layer, + mode, + } = data; + const previews = data.preview_rows.flatMap((row) => row.previews); + const [categoryName, setCategoryName] = useLocalState( + context, + 'categoryName' + ); + const shownCategory = + categories.find((category) => category.cat_name === categoryName) || + categories[0]; + return ( + + +
    + + + {ROOT_CATEGORIES.map((categoryName, i) => ( +
    + + +
    + {rootCategoryIndex === 0 && ( + + {[1, 2, 3, 4, 5].map((layer) => ( + + act('piping_layer', { + piping_layer: layer, + }) + } + /> + ))} + + )} + + {previews.map((preview) => ( + + ))} + +
    +
    + +
    + + {categories.map((category, i) => ( + setCategoryName(category.cat_name)} + > + {category.cat_name} + + ))} + + {shownCategory?.recipes.map((recipe) => ( + + act('pipe_type', { + pipe_type: recipe.pipe_index, + category: shownCategory.cat_name, + }) + } + /> + ))} +
    +
    +
    +
    +
    + ); +}; From 99d997dd367af9432197796edd1f8951c6f7f4a8 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 16:00:11 -0500 Subject: [PATCH 091/125] Automatic changelog generation for PR #3464 [ci skip] --- html/changelogs/AutoChangeLog-pr-3464.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3464.yml diff --git a/html/changelogs/AutoChangeLog-pr-3464.yml b/html/changelogs/AutoChangeLog-pr-3464.yml new file mode 100644 index 000000000000..766a414f4cd5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3464.yml @@ -0,0 +1,4 @@ +author: Thera-Pissed +changes: + - {rscadd: pipe dispenser UI is now similar to rapid pipe dispenser UI.} +delete-after: true From 34170c1ab1a4e6f27f4e98549997611610cd2c0b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 01:01:27 +0000 Subject: [PATCH 092/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3382.yml | 7 ------- html/changelogs/AutoChangeLog-pr-3442.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3452.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3464.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3466.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3468.yml | 7 ------- html/changelogs/AutoChangeLog-pr-3473.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3476.yml | 4 ---- html/changelogs/archive/2024-10.yml | 25 +++++++++++++++++++++++ 9 files changed, 25 insertions(+), 40 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3382.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3442.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3452.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3464.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3466.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3468.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3473.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3476.yml diff --git a/html/changelogs/AutoChangeLog-pr-3382.yml b/html/changelogs/AutoChangeLog-pr-3382.yml deleted file mode 100644 index eedebb40d990..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3382.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Gristlebee, Rye-Rice, INFRARED_BARON -changes: - - {rscadd: Inteq Gygax and mech charges} - - {rscadd: Paladin shield backlash} - - {bugfix: Durand shield blocking all projectiles} - - {imageadd: Inteq Gygax sprites} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3442.yml b/html/changelogs/AutoChangeLog-pr-3442.yml deleted file mode 100644 index 93368cdd5e5a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3442.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {bugfix: fixed the waste and scrubber gas reclamation filters on the colossus} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3452.yml b/html/changelogs/AutoChangeLog-pr-3452.yml deleted file mode 100644 index 227901e38429..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3452.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Jedi-Toothpaste -changes: - - {rscadd: Added extra intercoms in high traffic areas on the Valor Class} - - {rscadd: Added Firelocks underneath the Cargo-Bay Doors on the Valor Class} - - {rscadd: 'Air Alarms, Scrubbers and Vents to every applicable room'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3464.yml b/html/changelogs/AutoChangeLog-pr-3464.yml deleted file mode 100644 index 766a414f4cd5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3464.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscadd: pipe dispenser UI is now similar to rapid pipe dispenser UI.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3466.yml b/html/changelogs/AutoChangeLog-pr-3466.yml deleted file mode 100644 index d35081929039..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3466.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {balance: Replace red insuls with yellow insuls in syndicate toolboxes} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3468.yml b/html/changelogs/AutoChangeLog-pr-3468.yml deleted file mode 100644 index a0130e2f3b75..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3468.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Bjarl -changes: - - {rscadd: A cargo ship happened to lose an entire crate of Hammer Rocket Launchers - while travelling through the system. We have reason to believe they're probably - on sale now.} - - {rscdel: you can no longer purchase PML-9s on the black market.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3473.yml b/html/changelogs/AutoChangeLog-pr-3473.yml deleted file mode 100644 index 6ef0f09fd71e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3473.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: Waste Planet Turfs Now Look Much More Refined!} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3476.yml b/html/changelogs/AutoChangeLog-pr-3476.yml deleted file mode 100644 index 51594996de27..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3476.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: MemeSnorfer -changes: - - {rscadd: 'Three new Elzuose horn types. Cervid, Prong, and Brow'} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 7dff4c0f36d5..2055dcb1e4c0 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -24,3 +24,28 @@ 2024-10-03: Bjarl: - bugfix: defibs now work again. +2024-10-05: + Bjarl: + - rscadd: A cargo ship happened to lose an entire crate of Hammer Rocket Launchers + while travelling through the system. We have reason to believe they're probably + on sale now. + - rscdel: you can no longer purchase PML-9s on the black market. + Gristlebee, Rye-Rice, INFRARED_BARON: + - rscadd: Inteq Gygax and mech charges + - rscadd: Paladin shield backlash + - bugfix: Durand shield blocking all projectiles + - imageadd: Inteq Gygax sprites + Jedi-Toothpaste: + - rscadd: Added extra intercoms in high traffic areas on the Valor Class + - rscadd: Added Firelocks underneath the Cargo-Bay Doors on the Valor Class + - rscadd: Air Alarms, Scrubbers and Vents to every applicable room + MemeSnorfer: + - rscadd: Three new Elzuose horn types. Cervid, Prong, and Brow + PositiveEntropy: + - imageadd: Waste Planet Turfs Now Look Much More Refined! + Thera-Pissed: + - rscadd: pipe dispenser UI is now similar to rapid pipe dispenser UI. + generalthrax: + - balance: Replace red insuls with yellow insuls in syndicate toolboxes + zimon9: + - bugfix: fixed the waste and scrubber gas reclamation filters on the colossus From 8ad1a719bfb5df4f3994870399246c994c0a0649 Mon Sep 17 00:00:00 2001 From: Apogee-dev <60533805+Apogee-dev@users.noreply.github.com> Date: Fri, 4 Oct 2024 20:39:43 -0700 Subject: [PATCH 093/125] Shaves the Vaquero (#3438) ## About The Pull Request Snips one recruit slot off of the Vaquero ## Why It's Good For The Game thgvr request, also the vaq's genuinely overpopped. two recruits/deckhands is a handful even on a bigger ship, the vaq doesnt need a third of its crew to not know what they're doing ## Changelog :cl: balance: removed one recruit slot from the vaquero /:cl: --- _maps/configs/inteq_vaquero.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/configs/inteq_vaquero.json b/_maps/configs/inteq_vaquero.json index 232562369a3d..2b0bed8bfe98 100644 --- a/_maps/configs/inteq_vaquero.json +++ b/_maps/configs/inteq_vaquero.json @@ -39,7 +39,7 @@ }, "Recruit": { "outfit": "/datum/outfit/job/inteq/assistant", - "slots": 2 + "slots": 1 } }, "enabled": true From b5370df08612779732c9ccb8722a3daf63cfc048 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 22:50:54 -0500 Subject: [PATCH 094/125] Automatic changelog generation for PR #3438 [ci skip] --- html/changelogs/AutoChangeLog-pr-3438.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3438.yml diff --git a/html/changelogs/AutoChangeLog-pr-3438.yml b/html/changelogs/AutoChangeLog-pr-3438.yml new file mode 100644 index 000000000000..f446f6f0d204 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3438.yml @@ -0,0 +1,4 @@ +author: Apogee-dev +changes: + - {balance: removed one recruit slot from the vaquero} +delete-after: true From dd08ffa6609590363497fca01e67aa0bd3a1b10b Mon Sep 17 00:00:00 2001 From: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Date: Fri, 4 Oct 2024 22:42:01 -0500 Subject: [PATCH 095/125] Angle grinder AGAIN! Also, makes plasma cutters used for salvage instead of mining (and base gearpacks) (#3146) ## About The Pull Request re-implements #1716 as a base and adds cutter functionality to plasma cutters also implements and uses gear packs from #2103 that never got in. makes plasma cutters unable to mine, shorter range, and do burn instead of brute. angle grinders are integrated into grinder packs, like water backtanks. Also draws power from a cell. jackhammers can no longer break down walls and girders. ### Cutters can currently deconstruct: - girders - walls - reinforced walls - airlocks - airlock frames - grilles - machine frames - computer frames - catwalks - chairs - beds - tables - lockers & crates - salvage machines (the wasteplanet ones) - railings - lattice - wooden barricades cutters can also cut open safes and locked lockers & crates attempted to revert map changes but using git checkout doesn't completely revert the gecko. Will try again later. adds a mech salvage saw and a prototype energy saw. Doesn't make either available yet. sprites by me ![image](https://github.com/shiptest-ss13/Shiptest/assets/90987989/65bd6b99-d63d-4c75-9227-a9987fddf9d2) https://github.com/shiptest-ss13/Shiptest/assets/90987989/12262338-055f-4c7c-86d1-d31279ab953c ## Why It's Good For The Game Jackhammers as a main salvage tool is dumb, and angle grinders and cutters make more sense and have better functionality. Cutting apart old ruins and ships should be a reasonable source of material and shouldn't take years. ## Changelog :cl: add: angle grinders for salvage add: reworks plasma cutters for salvage /:cl: --------- Signed-off-by: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Co-authored-by: ritorizo Co-authored-by: FalloutFalcon Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- code/__DEFINES/dcs/signals/signals.dm | 2 + code/__DEFINES/tools.dm | 1 + code/datums/action.dm | 3 + code/datums/components/twohanded.dm | 4 +- code/datums/elements/tool_bang.dm | 40 +++ code/game/atoms.dm | 6 + code/game/machinery/constructable_frame.dm | 12 +- code/game/machinery/deployable.dm | 8 + code/game/machinery/doors/airlock.dm | 15 + code/game/mecha/equipment/tools/work_tools.dm | 80 +++++ code/game/mecha/mecha.dm | 3 + code/game/objects/items.dm | 4 + code/game/objects/items/gear_packs.dm | 285 ++++++++++++++++++ .../objects/structures/beds_chairs/bed.dm | 2 +- .../objects/structures/beds_chairs/chair.dm | 2 +- code/game/objects/structures/catwalk.dm | 2 +- .../structures/crates_lockers/closets.dm | 23 +- .../crates_lockers/closets/cardboardbox.dm | 7 + code/game/objects/structures/door_assembly.dm | 8 + code/game/objects/structures/false_walls.dm | 3 - code/game/objects/structures/girders.dm | 44 +-- code/game/objects/structures/grille.dm | 9 + code/game/objects/structures/lattice.dm | 9 + code/game/objects/structures/railings.dm | 9 + code/game/objects/structures/safe.dm | 7 + code/game/objects/structures/salvaging.dm | 10 + code/game/objects/structures/tables_racks.dm | 11 +- code/game/objects/structures/window.dm | 15 +- code/game/turfs/closed/_closed.dm | 15 + code/modules/cargo/packs/tools.dm | 7 + code/modules/mining/abandoned_crates.dm | 4 + .../modules/mining/equipment/angle_grinder.dm | 144 +++++++++ .../projectiles/ammunition/energy/plasma.dm | 7 +- .../projectiles/guns/energy/special.dm | 31 +- .../projectiles/projectile/special/plasma.dm | 6 +- code/modules/surgery/organic_steps.dm | 4 + icons/effects/cutting_effect.dmi | Bin 0 -> 1628 bytes icons/mecha/mecha_equipment.dmi | Bin 22898 -> 23410 bytes icons/mob/clothing/back.dmi | Bin 132854 -> 134924 bytes .../equipment/gear_handle_lefthand.dmi | Bin 0 -> 2222 bytes .../equipment/gear_handle_righthand.dmi | Bin 0 -> 2130 bytes icons/obj/item/gear_packs.dmi | Bin 0 -> 3311 bytes icons/obj/mining.dmi | Bin 65510 -> 66610 bytes shiptest.dme | 3 + sound/weapons/anglegrinder.ogg | Bin 0 -> 63533 bytes 45 files changed, 778 insertions(+), 67 deletions(-) create mode 100644 code/datums/elements/tool_bang.dm create mode 100644 code/game/objects/items/gear_packs.dm create mode 100644 code/modules/mining/equipment/angle_grinder.dm create mode 100644 icons/effects/cutting_effect.dmi create mode 100644 icons/mob/inhands/equipment/gear_handle_lefthand.dmi create mode 100644 icons/mob/inhands/equipment/gear_handle_righthand.dmi create mode 100644 icons/obj/item/gear_packs.dmi create mode 100644 sound/weapons/anglegrinder.ogg diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index fd56e61f003b..638b5220bc3c 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -182,6 +182,8 @@ #define COMSIG_ATOM_CROWBAR_ACT "atom_crowbar_act" ///from base of atom/analyser_act(): (mob/living/user, obj/item/I) #define COMSIG_ATOM_ANALYSER_ACT "atom_analyser_act" +///from base of atom/deconstruct_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_DECONSTRUCT_ACT "atom_deconstruct_act" ///for any tool behaviors: (mob/living/user, obj/item/I, list/recipes) #define COMSIG_ATOM_TOOL_ACT(tooltype) "tool_act_[tooltype]" diff --git a/code/__DEFINES/tools.dm b/code/__DEFINES/tools.dm index 35860ac927f4..eb2696c0afbb 100644 --- a/code/__DEFINES/tools.dm +++ b/code/__DEFINES/tools.dm @@ -15,6 +15,7 @@ #define TOOL_SCALPEL "scalpel" #define TOOL_SAW "saw" #define TOOL_KNIFE "knife" //luv me kuh-nyfe +#define TOOL_DECONSTRUCT "deconstruct" // If delay between the start and the end of tool operation is less than MIN_TOOL_SOUND_DELAY, // tool sound is only played when op is started. If not, it's played twice. diff --git a/code/datums/action.dm b/code/datums/action.dm index fb2d8b5e967f..9bc58c399dd4 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -249,6 +249,9 @@ /datum/action/item_action/toggle_mister name = "Toggle Mister" +/datum/action/item_action/toggle_gear_handle + name = "Toggle Gear Handle" + /datum/action/item_action/activate_injector name = "Activate Injector" diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm index 5ba0a368c637..4ede9a6fc168 100644 --- a/code/datums/components/twohanded.dm +++ b/code/datums/components/twohanded.dm @@ -9,8 +9,8 @@ dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS // Only one of the component can exist on an item var/wielded = FALSE /// Are we holding the two handed item properly var/force_multiplier = 0 /// The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded - var/force_wielded = 0 /// The force of the item when weilded - var/force_unwielded = 0 /// The force of the item when unweilded + var/force_wielded = 0 /// The force of the item when wielded + var/force_unwielded = 0 /// The force of the item when unwielded var/wieldsound = FALSE /// Play sound when wielded var/unwieldsound = FALSE /// Play sound when unwielded var/attacksound = FALSE /// Play sound on attack when wielded diff --git a/code/datums/elements/tool_bang.dm b/code/datums/elements/tool_bang.dm new file mode 100644 index 000000000000..bc002e936de4 --- /dev/null +++ b/code/datums/elements/tool_bang.dm @@ -0,0 +1,40 @@ +/** + * Tool bang bespoke element + * + * Bang the user when using this tool + */ +/datum/element/tool_bang + element_flags = ELEMENT_BESPOKE + id_arg_index = 2 + /// Strength of the bang + var/bang_strength + +/datum/element/tool_bang/Attach(datum/target, bang_strength) + . = ..() + if(!isitem(target)) + return ELEMENT_INCOMPATIBLE + + src.bang_strength = bang_strength + + RegisterSignal(target, COMSIG_TOOL_IN_USE, PROC_REF(prob_bang)) + RegisterSignal(target, COMSIG_TOOL_START_USE, PROC_REF(bang)) + +/datum/element/tool_bang/Detach(datum/source, force) + . = ..() + UnregisterSignal(source, list(COMSIG_TOOL_IN_USE, COMSIG_TOOL_START_USE)) + +/datum/element/tool_bang/proc/prob_bang(datum/source, mob/living/user) + SIGNAL_HANDLER + + if(prob(90)) + return + bang(source, user) + +/datum/element/tool_bang/proc/bang(datum/source, mob/living/user) + SIGNAL_HANDLER + + if(user && get_dist(get_turf(source), get_turf(user)) <= 1) + if(istype(user, /mob/living/carbon)) + var/mob/living/carbon/carbon = user + carbon.soundbang_act(min(bang_strength,1), 0, 1, 5) + diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b96e8a53c824..a140ec099085 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1282,6 +1282,8 @@ . = welder_act(user, I) if(TOOL_ANALYZER) . = analyzer_act(user, I) + if(TOOL_DECONSTRUCT) + . |= deconstruct_act(user, I) if(. || signal_result & COMPONENT_BLOCK_TOOL_ATTACK) //Either the proc or the signal handled the tool's events in some way. return TRUE @@ -1362,6 +1364,10 @@ /atom/proc/analyzer_act(mob/living/user, obj/item/I) return SEND_SIGNAL(src, COMSIG_ATOM_ANALYSER_ACT, user, I) +///Deconstruct act +/atom/proc/deconstruct_act(mob/living/user, obj/item/I) + return SEND_SIGNAL(src, COMSIG_ATOM_DECONSTRUCT_ACT, user, I) + ///Generate a tag for this atom /atom/proc/GenerateTag() return diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index f196fc6dc770..a62780aad05a 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -13,14 +13,22 @@ . += "It has \a [circuit] installed." -/obj/structure/frame/deconstruct(disassembled = TRUE) +/obj/structure/frame/deconstruct(disassembled = TRUE, scrapped = FALSE) if(!(flags_1 & NODECONSTRUCT_1)) new /obj/item/stack/sheet/metal(loc, 5) - if(circuit) + if(circuit && !scrapped) circuit.forceMove(loc) circuit = null qdel(src) +/obj/structure/frame/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if(I.use_tool(src, user, 3 SECONDS, volume=0)) + to_chat(user, "You cut apart \the [src].", "You cut apart \the [src].") + deconstruct() + return TRUE /obj/structure/frame/machine name = "machine frame" diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 41760633726e..3dedf5887d0c 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -79,6 +79,14 @@ return return ..() +/obj/structure/barricade/wooden/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 2 SECONDS, volume=0)) + to_chat(user, "You cut apart [src].") + deconstruct() + return TRUE /obj/structure/barricade/wooden/crude name = "crude plank barricade" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 4c27a08e64a7..3412321b380b 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1243,6 +1243,21 @@ return INVOKE_ASYNC(src, (density ? PROC_REF(open) : PROC_REF(close)), 2) +/obj/machinery/door/airlock/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + var/decon_time = 5 SECONDS + if(welded) + decon_time += 5 SECONDS + if(locked) + decon_time += 5 SECONDS + if(seal) + decon_time += 15 SECONDS + if (I.use_tool(src, user, decon_time, volume=100)) + to_chat(user, "You cut open the [src].") + deconstruct(FALSE, user) + return TRUE /obj/machinery/door/airlock/open(forced=0) if(operating || welded || locked || seal || !wires) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 44c8c6626dae..aa5dbf38c27f 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -491,6 +491,86 @@ return 1 //WS Edit End - Readded from Smartwire Revert +/obj/item/mecha_parts/mecha_equipment/salvage_saw + name = "109-C Salvage Saw" + desc = "Equipment for cutting open walls and airlocks." + icon_state = "mecha_saw" + equip_cooldown = 5 + energy_drain = 10 + force = 15 + var/dam_force = 30 + harmful = TRUE + tool_behaviour = TOOL_DECONSTRUCT + toolspeed = 0.5 + var/datum/effect_system/spark_spread/spark_system + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/can_attach(obj/mecha/M as obj) + if(..()) + if(istype(M, /obj/mecha/working) || istype(M, /obj/mecha/combat)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/attach() + ..() + toolspeed = 0.5 + return + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/detach() + ..() + toolspeed = 10 //yeah sure, use a mech tool without a mech. see how far that gets you + return ..() + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/action(atom/target) + if(!action_checks(target)) + return + if(isliving(target)) + if(chassis.occupant.a_intent == INTENT_HARM) + var/mob/living/M = target + saw_mob(M, chassis.occupant) + return + else + target.add_overlay(GLOB.cutting_effect) + if(target.deconstruct_act(chassis.occupant, src)) + do_sparks(2, TRUE, src) + chassis.stopped-- + target.cut_overlay(GLOB.cutting_effect) + if(!chassis.stopped) + occupant_message("[src] finishes cutting, allowing movement again.") + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/tool_start_check(user, amount) + if(!chassis.stopped) + occupant_message("[src] begins cutting, locking in place!") + chassis.stopped++ + return TRUE + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/proc/saw_mob(mob/living/target, mob/user) + target.visible_message("[chassis] is sawing [target] with [src]!", \ + "[chassis] is sawing you with [src]!") + if(!do_after_cooldown(target)) + return + log_combat(user, target, "sawed", "[name]", "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + if(target.stat == DEAD && target.getBruteLoss() >= 400) + log_combat(user, target, "gibbed", name) + target.gib() + else + var/obj/item/bodypart/target_part = target.get_bodypart(ran_zone(BODY_ZONE_CHEST)) + target.apply_damage(15, BRUTE, BODY_ZONE_CHEST, target.run_armor_check(target_part, "melee")) + + //blood splatters + var/splatter_dir = get_dir(chassis, target) + if(isalien(target)) + new /obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter(target.drop_location(), splatter_dir) + else + var/splatter_color = null + if(iscarbon(target)) + var/mob/living/carbon/carbon_target = target + splatter_color = carbon_target.dna.blood_type.color + new /obj/effect/temp_visual/dir_setting/bloodsplatter(target.drop_location(), splatter_dir, splatter_color) + + //organs go everywhere + if(target_part && prob(10)) + target_part.dismember(BRUTE) + //Dunno where else to put this so shrug /obj/item/mecha_parts/mecha_equipment/conversion_kit name = "Exosuit Conversion Kit" diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index db59620b39fd..eba4801ba56d 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -15,6 +15,7 @@ light_on = FALSE var/ruin_mecha = FALSE //if the mecha starts on a ruin, don't automatically give it a tracking beacon to prevent metagaming. var/can_move = 0 //time of next allowed movement + var/stopped = FALSE var/mob/living/carbon/occupant = null var/step_in = 10 //make a step in step_in/10 sec. var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. @@ -596,6 +597,8 @@ /obj/mecha/proc/domove(direction) if(can_move >= world.time) return 0 + if(stopped) + return 0 if(!Process_Spacemove(direction)) return 0 if(!has_charge(step_energy_drain)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index a1302008cf89..154f6bde143a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -2,6 +2,10 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/e GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons/effects/welding_effect.dmi', "welding_sparks", GASFIRE_LAYER, ABOVE_LIGHTING_PLANE)) +GLOBAL_DATUM_INIT(cutting_effect, /mutable_appearance, mutable_appearance('icons/effects/cutting_effect.dmi', "cutting_effect", GASFIRE_LAYER, ABOVE_LIGHTING_PLANE)) + +GLOBAL_DATUM_INIT(advanced_cutting_effect, /mutable_appearance, mutable_appearance('icons/effects/cutting_effect.dmi', "advanced_cutting_effect", GASFIRE_LAYER, ABOVE_LIGHTING_PLANE)) + GLOBAL_DATUM_INIT(cleaning_bubbles, /mutable_appearance, mutable_appearance('icons/effects/effects.dmi', "bubbles", ABOVE_MOB_LAYER, GAME_PLANE)) GLOBAL_VAR_INIT(rpg_loot_items, FALSE) diff --git a/code/game/objects/items/gear_packs.dm b/code/game/objects/items/gear_packs.dm new file mode 100644 index 000000000000..65db4ffa28c9 --- /dev/null +++ b/code/game/objects/items/gear_packs.dm @@ -0,0 +1,285 @@ +/obj/item/gear_pack + name = "gear pack" + desc = "A large backpack that usually holds things" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "waterbackpack" + item_state = "waterbackpack" + lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' + w_class = WEIGHT_CLASS_HUGE + slot_flags = ITEM_SLOT_BACK + item_flags = SLOWS_WHILE_IN_HAND + max_integrity = 300 + slowdown = 1 + drag_slowdown = 1 + actions_types = list(/datum/action/item_action/toggle_gear_handle) + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) + resistance_flags = FIRE_PROOF + var/on = FALSE + var/obj/item/stock_parts/cell/cell + var/preload_cell_type = /obj/item/stock_parts/cell/high + var/powered = FALSE + var/activate_sound = "sparks" + var/obj/item/gear_handle/gear_handle_type = /obj/item/gear_handle + var/obj/item/gear_handle/gear_handle + +/obj/item/gear_pack/get_cell() + return cell + +/obj/item/gear_pack/Initialize() + . = ..() + drag_slowdown = slowdown + gear_handle = new gear_handle_type(src) + cell = new preload_cell_type(src) + update_power() + return + +/obj/item/gear_pack/examine(mob/user) + . = ..() + . += "It is [ on ? "currently" : "not"] active." + if(cell) + . += "A small readout reports [PERCENT(cell.charge / cell.maxcharge)]% charge." + +/obj/item/gear_pack/fire_act(exposed_temperature, exposed_volume) + . = ..() + if(gear_handle?.loc == src) + gear_handle.fire_act(exposed_temperature, exposed_volume) + +/obj/item/gear_pack/extinguish() + . = ..() + if(gear_handle?.loc == src) + gear_handle.extinguish() + +/obj/item/gear_pack/proc/update_power() + if(!QDELETED(cell)) + if(QDELETED(gear_handle) || cell.charge < gear_handle.usecost) + powered = FALSE + else + powered = TRUE + else + powered = FALSE + update_icon() + +/obj/item/gear_pack/update_overlays() + . = ..() + + if(powered) + . += "[initial(icon_state)]-powered" + if(!QDELETED(cell)) + var/ratio = cell.charge / cell.maxcharge + ratio = CEILING(ratio*4, 1) * 25 + . += "[initial(icon_state)]-charge[ratio]" + if(!cell) + . += "[initial(icon_state)]-nocell" + if(!on) + . += "[initial(icon_state)]-attachment" + +/obj/item/gear_pack/CheckParts(list/parts_list) + ..() + cell = locate(/obj/item/stock_parts/cell) in contents + update_power() + +/obj/item/gear_pack/ui_action_click() + toggle_gear_handle() + +//ATTACK HAND IGNORING PARENT RETURN VALUE +/obj/item/gear_pack/attack_hand(mob/user) + if(loc == user) + if(slot_flags == ITEM_SLOT_BACK) + if(user.get_item_by_slot(ITEM_SLOT_BACK) == src) + ui_action_click() + else + to_chat(user, "Put the [src] on your back first!") + + else if(slot_flags == ITEM_SLOT_BELT) + if(user.get_item_by_slot(ITEM_SLOT_BELT) == src) + ui_action_click() + else + to_chat(user, "Strap the [src]'s belt on first!") + return + return ..() + +/obj/item/gear_pack/MouseDrop(obj/over_object) + . = ..() + if(ismob(loc)) + var/mob/M = loc + if(!M.incapacitated() && istype(over_object, /atom/movable/screen/inventory/hand)) + var/atom/movable/screen/inventory/hand/H = over_object + M.putItemFromInventoryInHandIfPossible(src, H.held_index) + +/obj/item/gear_pack/attackby(obj/item/W, mob/user, params) + if(W == gear_handle) + toggle_gear_handle() + else if(istype(W, /obj/item/stock_parts/cell)) + var/obj/item/stock_parts/cell/C = W + if(cell) + to_chat(user, "[src] already has a cell!") + else + if(C.maxcharge < gear_handle.usecost) + to_chat(user, "[src] requires a higher capacity cell.") + return + if(!user.transferItemToLoc(W, src)) + return + cell = W + to_chat(user, "You install a cell in [src].") + update_power() + + else if(W.tool_behaviour == TOOL_SCREWDRIVER) + if(cell) + cell.update_icon() + cell.forceMove(get_turf(src)) + cell = null + to_chat(user, "You remove the cell from [src].") + update_power() + else + return ..() + +/obj/item/gear_pack/emp_act(severity) + . = ..() + if(cell && !(. & EMP_PROTECT_CONTENTS)) + deductcharge(1000 / severity) + if(. & EMP_PROTECT_SELF) + return + update_power() + +/obj/item/gear_pack/proc/toggle_gear_handle() + set name = "Toggle gear_handle" + set category = "Object" + on = !on + + var/mob/living/carbon/user = usr + if(on) + //Detach the gear_handle into the user's hands + playsound(src, 'sound/items/handling/multitool_pickup.ogg', 100) + if(!usr.put_in_hands(gear_handle)) + on = FALSE + to_chat(user, "You need a free hand to hold the [gear_handle]!") + update_power() + return + else + //Remove from their hands and back onto the gear pack + remove_gear_handle(user) + + update_power() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + + +/obj/item/gear_pack/equipped(mob/user, slot) + ..() + if((slot_flags == ITEM_SLOT_BACK && slot != ITEM_SLOT_BACK) || (slot_flags == ITEM_SLOT_BELT && slot != ITEM_SLOT_BELT)) + remove_gear_handle(user) + update_power() + +/obj/item/gear_pack/item_action_slot_check(slot, mob/user) + if(slot == user.getBackSlot()) + return 1 + +/obj/item/gear_pack/proc/remove_gear_handle(mob/user) + if(ismob(gear_handle.loc)) + var/mob/M = gear_handle.loc + M.dropItemToGround(gear_handle, TRUE) + return + +/obj/item/gear_pack/Destroy() + if(on) + var/M = get(gear_handle, /mob) + remove_gear_handle(M) + QDEL_NULL(gear_handle) + QDEL_NULL(cell) + return ..() + +/obj/item/gear_pack/proc/deductcharge(chrgdeductamt) + if(cell) + if(cell.charge < (gear_handle.usecost+chrgdeductamt)) + powered = FALSE + update_power() + if(cell.use(chrgdeductamt)) + update_power() + return TRUE + else + return FALSE + +/obj/item/gear_handle + + name = "gear handle" + desc = "handles the gear." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "mister" + item_state = "mister" + lefthand_file = 'icons/mob/inhands/equipment/mister_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/mister_righthand.dmi' + + force = 0 + throwforce = 6 + w_class = WEIGHT_CLASS_BULKY + resistance_flags = INDESTRUCTIBLE + base_icon_state = "mister" + + var/req_pack = TRUE + var/usecost = 1000 + var/obj/item/gear_pack/pack + +/obj/item/gear_handle/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NO_STORAGE_INSERT, GENERIC_ITEM_TRAIT) + if (!loc || !istype(loc, /obj/item/gear_pack)) + return INITIALIZE_HINT_QDEL + if(!req_pack) + return + pack = loc + update_icon() + +/obj/item/gear_handle/Destroy() + pack = null + return ..() + +/obj/item/gear_handle/equipped(mob/user, slot) + . = ..() + if(!req_pack) + return + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(check_range)) + +/obj/item/gear_handle/Moved() + . = ..() + check_range() + + +/obj/item/gear_handle/fire_act(exposed_temperature, exposed_volume) + . = ..() + if((req_pack && pack) && loc != pack) + pack.fire_act(exposed_temperature, exposed_volume) + +/obj/item/gear_handle/proc/check_range() + SIGNAL_HANDLER + + if(!req_pack ||!pack) + return + if(!in_range(src,pack)) + var/mob/living/L = loc + if(istype(L)) + to_chat(L, "[pack]'s [src] overextends and comes out of your hands!") + else + visible_message("[src] snaps back into [pack].") + snap_back() + +/obj/item/gear_handle/dropped(mob/user) + . = ..() + if(!req_pack) + return ..() + if(user) + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + if(user != loc) + to_chat(user, "[src] snap back into the main unit.") + snap_back() + return + +/obj/item/gear_handle/proc/snap_back() + if(!pack) + return + playsound() + pack.on = FALSE + forceMove(pack) + pack.update_power() diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index ec7132a67cdd..533f58bdf2ac 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -71,7 +71,7 @@ return attack_hand(user) /obj/structure/bed/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1)) + if((W.tool_behaviour == TOOL_WRENCH || W.tool_behaviour == TOOL_DECONSTRUCT) && !(flags_1&NODECONSTRUCT_1)) W.play_tool_sound(src) deconstruct(TRUE) else diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 045bf39ae9b6..40e0d9388515 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -60,7 +60,7 @@ qdel(src) /obj/structure/chair/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1)) + if((W.tool_behaviour == TOOL_WRENCH || W.tool_behaviour == TOOL_DECONSTRUCT) && !(flags_1&NODECONSTRUCT_1)) W.play_tool_sound(src) deconstruct() else if(istype(W, /obj/item/assembly/shock_kit)) diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 20986f9e6c27..2202e84d70e4 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -57,7 +57,7 @@ . += "The supporting rods look like they could be welded." /obj/structure/catwalk/attackby(obj/item/C, mob/user, params) - if(C.tool_behaviour == TOOL_WELDER && !(resistance_flags & INDESTRUCTIBLE)) + if((C.tool_behaviour == TOOL_WELDER || C.tool_behaviour == TOOL_DECONSTRUCT) && !(resistance_flags & INDESTRUCTIBLE)) to_chat(user, "You slice off [src]") deconstruct() return diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 7731bf48d2ff..cd1c880eae74 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -255,10 +255,24 @@ if(user in src) return if(src.tool_interact(W,user)) - return 1 // No afterattack + return TRUE // No afterattack else return ..() +/obj/structure/closet/proc/try_deconstruct(obj/item/W, mob/user) + if(W.tool_behaviour == cutting_tool || W.tool_behaviour == TOOL_DECONSTRUCT) + if(!W.tool_start_check(user, amount = 0)) + return + to_chat(user, span_notice("You begin cutting \the [src] apart...")) + if(W.use_tool(src, user, 40, volume = 50)) + if(!opened) + return + user.visible_message(span_notice("[user] slices apart \the [src]."), + span_notice("You cut \the [src] apart with \the [W]."), + span_hear("You hear welding.")) + deconstruct(TRUE) + return TRUE + /obj/structure/closet/proc/tool_interact(obj/item/W, mob/user)//returns TRUE if attackBy call shouldnt be continued (because tool was used/closet was of wrong type), FALSE if otherwise . = TRUE if(opened) @@ -300,6 +314,13 @@ user.visible_message("[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ "You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ "You hear a ratchet.") + + else if(W.tool_behaviour == TOOL_DECONSTRUCT && locked) + user.visible_message("[user] is cutting \the [src] open !", "You begin to cut \the [src] open.") + if (W.use_tool(src, user, 10 SECONDS, volume=0)) + bust_open() + user.visible_message("[user] busted \the [src] open !", "You finish cutting \the [src] open.") + else if(user.a_intent != INTENT_HARM) var/item_is_id = W.GetID() if(!item_is_id) diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 7135b3d199a2..b0674a2d2b60 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -20,6 +20,13 @@ var/move_delay = FALSE var/egged = 0 +/obj/structure/closet/cardboard/try_deconstruct(obj/item/W, mob/user) + if(W.tool_behaviour == cutting_tool) + user.visible_message(span_notice("[user] cut apart \the [src]."), \ + span_notice("You cut \the [src] apart with \the [W].")) + deconstruct(TRUE) + return TRUE + /obj/structure/closet/cardboard/relaymove(mob/living/user, direction) if(opened || move_delay || user.incapacitated() || !isturf(loc) || !has_gravity(loc)) return diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 4246075e49f6..43052f1f0dbb 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -333,6 +333,14 @@ new mineral_path(T, 2) qdel(src) +/obj/structure/door_assembly/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 3 SECONDS, volume=100)) + to_chat(user, "You slice [src] apart.") + deconstruct(FALSE) + return TRUE /obj/structure/door_assembly/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) if(the_rcd.mode == RCD_DECONSTRUCT) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index d5a8c3e496c1..48bf8817e1e7 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -107,9 +107,6 @@ else if(W.tool_behaviour == TOOL_WELDER) if(W.use_tool(src, user, 0, volume=50)) dismantle(user, TRUE) - else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) - W.play_tool_sound(src) - dismantle(user, TRUE) else return ..() diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 362de185e9ba..df0d3cf1f43c 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -36,26 +36,7 @@ playsound(src, 'sound/machines/clockcult/integration_cog_install.ogg', 50, TRUE) add_fingerprint(user) - if(istype(W, /obj/item/gun/energy/plasmacutter)) - to_chat(user, "You start slicing apart the girder...") - if(W.use_tool(src, user, 10, volume=100)) - to_chat(user, "You slice apart the girder.") - var/obj/item/stack/sheet/metal/M = new (loc, 2) - M.add_fingerprint(user) - qdel(src) - - return - - else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) - to_chat(user, "You smash through the girder!") - new /obj/item/stack/sheet/metal(get_turf(src)) - W.play_tool_sound(src) - qdel(src) - - return - - - else if(istype(W, /obj/item/stack)) + if(istype(W, /obj/item/stack)) if(iswallturf(loc)) to_chat(user, "There is already a wall present!") return @@ -231,6 +212,15 @@ else return ..() +/obj/structure/girder/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if(I.use_tool(src, user, 3 SECONDS, volume=0)) + to_chat(user, "You cut apart \the [src].", "You cut apart \the [src].") + deconstruct() + return TRUE + // Screwdriver behavior for girders /obj/structure/girder/screwdriver_act(mob/user, obj/item/tool) if(..()) @@ -373,13 +363,6 @@ transfer_fingerprints_to(R) qdel(src) - else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) - to_chat(user, "Your jackhammer smashes through the girder!") - var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 2) - transfer_fingerprints_to(R) - W.play_tool_sound(src) - qdel(src) - else if(istype(W, /obj/item/stack/sheet/mineral/hidden/hellstone)) var/obj/item/stack/sheet/mineral/hidden/hellstone/R = W if(R.get_amount() < 1) @@ -447,13 +430,6 @@ transfer_fingerprints_to(B) qdel(src) - else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) - to_chat(user, "Your jackhammer smashes through the girder!") - var/obj/item/stack/tile/bronze/B = new(drop_location(), 2) - transfer_fingerprints_to(B) - W.play_tool_sound(src) - qdel(src) - else if(istype(W, /obj/item/stack/tile/bronze)) var/obj/item/stack/tile/bronze/B = W if(B.get_amount() < 2) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 5bca53e84dd6..b1897ee661d4 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -227,6 +227,15 @@ qdel(src) ..() +/obj/structure/grille/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 1 SECONDS, volume=100)) + to_chat(user, "You slice [src] apart.") + deconstruct(FALSE) + return TRUE + /obj/structure/grille/obj_break() if(!broken && !(flags_1 & NODECONSTRUCT_1)) new broken_type(src.loc) diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 30999b58a620..9aaefb8c014e 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -40,6 +40,15 @@ var/turf/T = get_turf(src) return T.attackby(C, user) //hand this off to the turf instead (for building plating, catwalks, etc) +/obj/structure/lattice/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if(I.use_tool(src, user, 1 SECONDS, volume=0)) + to_chat(user, "You cut apart \the [src].", "You cut apart \the [src].") + deconstruct() + return TRUE + /obj/structure/lattice/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) new build_material(get_turf(src), number_of_mats) diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm index 95c24145399f..d8f5c543a168 100644 --- a/code/game/objects/structures/railings.dm +++ b/code/game/objects/structures/railings.dm @@ -65,6 +65,15 @@ deconstruct() return TRUE +/obj/structure/railing/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 3 SECONDS, volume=0)) + to_chat(user, "You cut apart the railing.") + deconstruct() + return TRUE + /obj/structure/railing/deconstruct(disassembled) . = ..() if(!loc) //quick check if it's qdeleted already. diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 5f3e2914bc47..44a9f7f94717 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -75,6 +75,13 @@ FLOOR SAFES if(istype(I, /obj/item/clothing/neck/stethoscope)) attack_hand(user) return + + else if(I.tool_behaviour == TOOL_DECONSTRUCT) + user.visible_message("[user] begin to cut through the lock of \the [src].","You start cutting trough the lock of [src].") + if(I.use_tool(src, user, 60 SECONDS)) + broken = TRUE + user.visible_message("[user] successfully cuts trough the lock of \the [src].","You successfully cut trough the lock of [src].") + else to_chat(user, "You can't put [I] into the safe while it is closed!") return diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm index dbd75dac488f..f4aad715db19 100644 --- a/code/game/objects/structures/salvaging.dm +++ b/code/game/objects/structures/salvaging.dm @@ -34,6 +34,16 @@ qdel(src) return TRUE +/obj/structure/salvageable/deconstruct_act(mob/living/user, obj/item/tool) + . = ..() + user.visible_message("[user] starts slicing [src].", \ + "You start salvaging anything useful from [src]...") + if(tool.use_tool(src, user, 6 SECONDS)) + user.visible_message("[user] dismantles [src].", \ + "You salvage [src].") + dismantle(user) + qdel(src) + return TRUE //Types themself, use them, but not the parent object diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index a7404ef68a6c..d5b1710b6296 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -162,7 +162,7 @@ /obj/structure/table/attackby(obj/item/I, mob/user, params) var/list/modifiers = params2list(params) if(!(flags_1 & NODECONSTRUCT_1) && user.a_intent != INTENT_HELP) - if(I.tool_behaviour == TOOL_SCREWDRIVER && deconstruction_ready) + if((I.tool_behaviour == TOOL_SCREWDRIVER) && deconstruction_ready) to_chat(user, "You start disassembling [src]...") if(I.use_tool(src, user, 20, volume=50)) deconstruct(TRUE) @@ -227,6 +227,15 @@ else return ..() +/obj/structure/table/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 1 SECONDS, volume=0)) + to_chat(user, span_warning("You cut [src] into sheets.")) + deconstruct(wrench_disassembly = TRUE) + return TRUE + /obj/structure/table/proc/AfterPutItemOnTable(obj/item/I, mob/living/user) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 5420cc06b490..5064883c5de9 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -27,6 +27,7 @@ var/real_explosion_block //ignore this, just use explosion_block var/breaksound = "shatter" var/hitsound = 'sound/effects/Glasshit.ogg' + var/decon_time = 5 SECONDS flags_ricochet = RICOCHET_HARD ricochet_chance_mod = 0.4 @@ -289,6 +290,15 @@ qdel(src) update_nearby_icons() +/obj/structure/window/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, decon_time, volume=100)) + to_chat(user, span_warning("You shatter [src] with the [I].")) + deconstruct(FALSE) + return TRUE + /obj/structure/window/proc/spawnDebris(location) . = list() . += new /obj/item/shard(location) @@ -399,6 +409,7 @@ glass_type = /obj/item/stack/sheet/rglass rad_insulation = RAD_HEAVY_INSULATION ricochet_chance_mod = 0.8 + decon_time = 20 SECONDS //this is shitcode but all of construction is shitcode and needs a refactor, it works for now //If you find this like 4 years later and construction still hasn't been refactored, I'm so sorry for this @@ -408,7 +419,7 @@ switch(state) if(RWINDOW_SECURE) - if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HARM) + if((I.tool_behaviour == TOOL_WELDER) && user.a_intent == INTENT_HARM) user.visible_message("[user] holds \the [I] to the security screws on \the [src]...", "You begin heating the security screws on \the [src]...") if(I.use_tool(src, user, 150, volume = 100)) @@ -531,6 +542,7 @@ damage_deflection = 11 //WS Edit - Weakens R-Windows explosion_block = 2 glass_type = /obj/item/stack/sheet/plasmarglass + decon_time = 25 SECONDS //entirely copypasted code //take this out when construction is made a component or otherwise modularized in some way @@ -746,6 +758,7 @@ glass_type = /obj/item/stack/sheet/plastitaniumglass glass_amount = 2 rad_insulation = RAD_HEAVY_INSULATION + decon_time = 30 SECONDS /obj/structure/window/plasma/reinforced/plastitanium/unanchored anchored = FALSE diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index 766d7e0e5a24..ea0c0d4ed4b1 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -269,6 +269,21 @@ return FALSE +/turf/closed/deconstruct_act(mob/living/user, obj/item/I) + var/act_duration = breakdown_duration + if(!I.tool_start_check(user, amount=0)) + return FALSE + to_chat(user, "You begin slicing through the outer plating...") + while(I.use_tool(src, user, act_duration, volume=100)) + if(iswallturf(src)) + to_chat(user, "You slice through some of the outer plating...") + if(!alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE)) + return TRUE + else + break + + return FALSE + /turf/closed/mech_melee_attack(obj/mecha/M) M.do_attack_animation(src) switch(M.damtype) diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index e4081a448e0b..36bfefc02796 100644 --- a/code/modules/cargo/packs/tools.dm +++ b/code/modules/cargo/packs/tools.dm @@ -111,6 +111,13 @@ crate_name = "tank transfer valve crate" crate_type = /obj/structure/closet/crate/secure/science +/datum/supply_pack/tools/anglegrinder + name = "Angle Grinder" + desc = "Contains one angle grinder pack, a tool used for quick structure deconstruction and salvaging" + cost = 2000 + contains = list(/obj/item/gear_pack/anglegrinder) + crate_name = "Angle Grinder" + /* Liquid tanks */ diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index caf01866a019..406259246db1 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -124,6 +124,10 @@ qdel(src) ..() +// No busting open (used to disallow angle grinder cheesing +/obj/structure/closet/crate/secure/loot/bust_open() + boom() + /obj/structure/closet/crate/secure/loot/proc/spawn_loot() var/loot = rand(1,100) //100 different crates with varying chances of spawning switch(loot) diff --git a/code/modules/mining/equipment/angle_grinder.dm b/code/modules/mining/equipment/angle_grinder.dm new file mode 100644 index 000000000000..290cf0d153d7 --- /dev/null +++ b/code/modules/mining/equipment/angle_grinder.dm @@ -0,0 +1,144 @@ +/obj/item/gear_pack/anglegrinder + name = "grinder pack" + desc = "Supplies the high voltage needed to run the attached grinder." + icon = 'icons/obj/item/gear_packs.dmi' + item_state = "anglegrinderpack" + icon_state = "anglegrinderpack" + lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' + gear_handle_type = /obj/item/gear_handle/anglegrinder + +/obj/item/gear_handle/anglegrinder + name = "angle grinder" + desc = "A powerful salvage tool used to cut apart walls and airlocks. A hazard sticker recommends ear and eye protection." + icon = 'icons/obj/item/gear_packs.dmi' + icon_state = "anglegrinder" + item_state = "anglegrinder" + lefthand_file = 'icons/mob/inhands/equipment/gear_handle_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/gear_handle_righthand.dmi' + flags_1 = CONDUCT_1 + force = 13 + armour_penetration = 5 + w_class = WEIGHT_CLASS_BULKY + item_flags = ABSTRACT + attack_verb = list("lacerated", "ripped", "sliced", "sawed", "cut", "chopped", "diced") + hitsound = 'sound/weapons/anglegrinder.ogg' + usesound = 'sound/weapons/anglegrinder.ogg' + tool_behaviour = null // is set to TOOL_DECONSTRUCT once wielded + toolspeed = 1 + wall_decon_damage = 200 + usecost = 5 + pack = /obj/item/gear_pack/anglegrinder + var/startsound = 'sound/weapons/chainsawhit.ogg' + var/adv = FALSE + var/wielded = FALSE // track wielded status on item + var/two_hand_force = 24 + +/obj/item/gear_handle/anglegrinder/tool_start_check(mob/living/user, amount) + if(!pack) + to_chat(user, "how do you not have a pack for this. what.") + return FALSE + if(!pack.cell) + to_chat(user, "You need a cell to start!") + return FALSE + var/obj/item/stock_parts/cell/cell = pack.get_cell() + if(cell.charge < usecost) + to_chat(user, "You need more charge to complete this task!") + return FALSE + return TRUE + +/obj/item/gear_handle/anglegrinder/tool_use_check(mob/living/user, amount) + if(!pack.cell) + return FALSE + if(pack.deductcharge(usecost)) + return TRUE + else + to_chat(user, "You need more charge to complete this task!") + return FALSE + +/obj/item/gear_handle/anglegrinder/use(used) + return TRUE + +/obj/item/gear_handle/anglegrinder/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + +/obj/item/gear_handle/anglegrinder/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 30, 100, 0, startsound, TRUE) + AddComponent(/datum/component/two_handed, force_unwielded=force, force_wielded=two_hand_force, wieldsound=startsound) + AddElement(/datum/element/tool_bang, 2) + +/// triggered on wield of two handed item +/obj/item/gear_handle/anglegrinder/proc/on_wield(obj/item/source, mob/user) + SIGNAL_HANDLER + + tool_behaviour = TOOL_DECONSTRUCT + wielded = TRUE + sharpness = IS_SHARP + icon_state = "[initial(item_state)]-wield" + item_state = "[initial(item_state)]-wield" + +/// triggered on unwield of two handed item +/obj/item/gear_handle/anglegrinder/proc/on_unwield(obj/item/source, mob/user) + SIGNAL_HANDLER + + tool_behaviour = null + wielded = FALSE + sharpness = initial(sharpness) + icon_state = initial(icon_state) + item_state = initial(item_state) + +/obj/item/gear_handle/anglegrinder/get_dismemberment_chance() + if(wielded) + . = ..() + +/obj/item/gear_handle/anglegrinder/use_tool(atom/target, mob/living/user, delay, amount=1, volume=0, datum/callback/extra_checks) + if(adv) + target.add_overlay(GLOB.advanced_cutting_effect) + . = ..() + target.cut_overlay(GLOB.advanced_cutting_effect) + else + target.add_overlay(GLOB.cutting_effect) + . = ..() + target.cut_overlay(GLOB.cutting_effect) + +/obj/item/gear_pack/anglegrinder/energy + name = "energy supply pack" + desc = "a highly inefficient GEC-E-014 Supply Pack, used to generate and contain an energy field." + item_state = "energyanglegrinderpack" + icon_state = "energyanglegrinderpack" + gear_handle_type = /obj/item/gear_handle/anglegrinder/energy + +/obj/item/gear_handle/anglegrinder/energy + name = "energy saw" + desc = "An early prototype for handheld energy weapons, designed by a joint GEC-Cybersun lab to create an energy field for combat use." + icon_state = "energyanglegrinder" + item_state = "energyanglegrinder" + force = 5 + two_hand_force = 28 + armour_penetration = 16 + w_class = WEIGHT_CLASS_BULKY + item_flags = ABSTRACT + attack_verb = list("lacerated", "ripped", "burned", "sliced", "cauterized", "seared", "diced") + hitsound = 'sound/weapons/blade1.ogg' + usesound = 'sound/weapons/blade1.ogg' + startsound = 'sound/weapons/saberon.ogg' + toolspeed = 0.7 + usecost = 10 + pack = /obj/item/gear_pack/anglegrinder/energy + light_system = MOVABLE_LIGHT + light_range = 3 + light_color = LIGHT_COLOR_ELECTRIC_GREEN + light_on = FALSE + adv = TRUE + +/obj/item/gear_handle/anglegrinder/energy/on_wield(obj/item/source, mob/user) + . = ..() + set_light_on(TRUE) + +/obj/item/gear_handle/anglegrinder/energy/on_unwield(obj/item/source, mob/user) + . = ..() + set_light_on(FALSE) + diff --git a/code/modules/projectiles/ammunition/energy/plasma.dm b/code/modules/projectiles/ammunition/energy/plasma.dm index 00de4a90ffee..d593086157fd 100644 --- a/code/modules/projectiles/ammunition/energy/plasma.dm +++ b/code/modules/projectiles/ammunition/energy/plasma.dm @@ -2,10 +2,9 @@ projectile_type = /obj/projectile/plasma select_name = "plasma burst" fire_sound = 'sound/weapons/plasma_cutter.ogg' - delay = 15 - e_cost = 25 + delay = 30 + e_cost = 100 /obj/item/ammo_casing/energy/plasma/adv projectile_type = /obj/projectile/plasma/adv - delay = 10 - e_cost = 10 + delay = 20 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index c63c8358e2de..067a4bbc5d97 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -122,11 +122,12 @@ heat = 3800 usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') - tool_behaviour = TOOL_WELDER + tool_behaviour = TOOL_DECONSTRUCT wall_decon_damage = 200 - toolspeed = 0.7 //plasmacutters can be used as welders, and are faster than standard welders + toolspeed = 0.9 //plasmacutters can be used like angle grinders, and are a bit faster internal_cell = TRUE //so you don't cheese through the need for plasma - WS EDIT - var/charge_weld = 25 //amount of charge used up to start action (multiplied by amount) and per progress_flash_divisor ticks of welding + var/charge_cut = 100 //amount of charge used up to start action (multiplied by amount) and per progress_flash_divisor ticks of cutting + var/adv = FALSE /obj/item/gun/energy/plasmacutter/ComponentInitialize() . = ..() @@ -155,16 +156,16 @@ else ..() -// Can we weld? Plasma cutter does not use charge continuously. +// Can we cut? Plasma cutter does not use charge continuously. // Amount cannot be defaulted to 1: most of the code specifies 0 in the call. /obj/item/gun/energy/plasmacutter/tool_use_check(mob/living/user, amount) if(QDELETED(cell)) to_chat(user, "[src] does not have a cell, and cannot be used!") return FALSE - // Amount cannot be used if drain is made continuous, e.g. amount = 5, charge_weld = 25 + // Amount cannot be used if drain is made continuous, e.g. amount = 5, charge_cut = 25 // Then it'll drain 125 at first and 25 periodically, but fail if charge dips below 125 even though it still can finish action - // Alternately it'll need to drain amount*charge_weld every period, which is either obscene or makes it free for other uses - if(amount ? cell.charge < charge_weld * amount : cell.charge < charge_weld) + // Alternately it'll need to drain amount*charge_cut every period, which is either obscene or makes it free for other uses + if(amount ? cell.charge < charge_cut * amount : cell.charge < charge_cut) to_chat(user, "You need more charge to complete this task!") return FALSE @@ -186,13 +187,19 @@ return TRUE /obj/item/gun/energy/plasmacutter/use(amount) - return (!QDELETED(cell) && cell.use(amount ? amount * charge_weld : charge_weld)) + return (!QDELETED(cell) && cell.use(amount ? amount * charge_cut : charge_cut)) /obj/item/gun/energy/plasmacutter/use_tool(atom/target, mob/living/user, delay, amount=1, volume=0, datum/callback/extra_checks) if(amount) - target.add_overlay(GLOB.welding_sparks) + if(adv) + target.add_overlay(GLOB.advanced_cutting_effect) + else + target.add_overlay(GLOB.cutting_effect) . = ..() - target.cut_overlay(GLOB.welding_sparks) + if(adv) + target.cut_overlay(GLOB.advanced_cutting_effect) + else + target.cut_overlay(GLOB.cutting_effect) else . = ..(amount=1) @@ -201,11 +208,9 @@ icon_state = "adv_plasmacutter" item_state = "adv_plasmacutter" force = 15 + wall_decon_damage = 300 ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv) - wall_decon_damage = 200 - toolspeed = 0.4 - /obj/item/gun/energy/wormhole_projector name = "bluespace wormhole projector" desc = "A projector that emits high density quantum-coupled bluespace beams." //WS Edit - Any anomaly core for phazons diff --git a/code/modules/projectiles/projectile/special/plasma.dm b/code/modules/projectiles/projectile/special/plasma.dm index d957ad924572..68071bd2c557 100644 --- a/code/modules/projectiles/projectile/special/plasma.dm +++ b/code/modules/projectiles/projectile/special/plasma.dm @@ -1,10 +1,10 @@ /obj/projectile/plasma name = "plasma blast" icon_state = "plasmacutter" - damage_type = BRUTE - damage = 5 + damage_type = BURN + damage = 15 range = 4 - dismemberment = 20 + dismemberment = 10 /// chance that the plasmablast ruins the ore var/slag_chance = 33 impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index 8959a7f99715..39fb1d71b258 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -152,13 +152,17 @@ implements = list( TOOL_SAW = 100, /obj/item/melee/axe/fire = 50, + /obj/item/gear_handle/anglegrinder = 50, /obj/item/melee/arm_blade = 40, /obj/item/hatchet = 40, /obj/item/melee/knife/butcher = 33, + /obj/item/gun/energy/plasmacutter = 30, /obj/item = 10) //10% success (sort of) with any sharp item with a force>=10 time = 5.4 SECONDS preop_sound = list( /obj/item/circular_saw = 'sound/surgery/saw.ogg', + /obj/item/gear_handle/anglegrinder = 'sound/surgery/saw.ogg', + /obj/item/gun/energy/plasmacutter = 'sound/weapons/plasma_cutter.ogg', /obj/item/melee/arm_blade = 'sound/surgery/scalpel1.ogg', /obj/item/melee/axe/fire = 'sound/surgery/scalpel1.ogg', /obj/item/hatchet = 'sound/surgery/scalpel1.ogg', diff --git a/icons/effects/cutting_effect.dmi b/icons/effects/cutting_effect.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e8b4abeec5d087d5859cfd4243b70eb771f8a4fe GIT binary patch literal 1628 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
    Ji9tcDNlKLX7 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 nNU4SELd#^oqvihwAuaN(PFy5cX6SIp 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

  • RC_s45)!6_m&0^I8BtbTnykug1{EHHiJ%a# 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 literal 65925 zcmbrm2UHYWw=P=bC^?EmL6QF&4Mz4!U|dH0?>?s#vE#-fYru2pl*HRtzzb1nnbRqtOQy+{f{&;?~B1x*OT zl?6W>#Dw6Ct=+H<1mTolxqXd^>9v~>A@}b+(js0fWjb?} zFb<--OR*-%RMI`FK-U+wnC^~bEgD**x(jRI#bbx5q$|&SE$r^MSbzB3 z$XhzPS-DCwu0t9Y(_G(Axw}Whr6?ZrWb^8K&WAL*&-(%?Gp`FjFWh&YH4)f%^UWQw zX$leX2{aTI5_$6#KR05+^q|oc2la%3_35qn4(Vz5o$~qE$P99MA$Ju{qR9+a%M$J% zY>#g%kDy>Ou)DUOZzXeJrr^sDoR_5#7=wa(9yWb&P zMz4_xBQ9Z4N<7i26>W%DGzCU=Y+Y}faV@N_DoQ!#lt8d#b@(V=TgUWIq3+=wXLdMo4F0Vhwu8#Vrx}~NJO{k9CJR)gL;*!53kBsoEI!^u5@X6 zNEsJaR31C`nBK7B{KUG{SK&1h!fbgjLyg(rQZ@Lv`o=c9HP*ziibLJBVoHWs2;zX0 z733bfech;qyJ=}x9iyfKQ8>h`NWn+?ZR9!`m#eYF*L3w4b_ z_spp$7uWt0?oA`*2`~7M9NjOqu18+mhmVe`j`ffAAB>k;GZMe!0Ivf-&H)N4d^zw+ zXCd|ZbMhA}9Yl>im2#U8;=-PicU6ZJuvhtQB|`z&&k;|_;ZR{eMOEdC%K_eV@h=;@ z^E`Nt)GJmCxz?k6RL}AQxxG=8)caGBk=|r#f8uO2>Gkxp5X7%{ciIAU`(zI^tG*`mvcNXAt;7rZcHY?2q8+y+F*bJcX2j`bAxm#>i?D^H6Cva5lV*~G4K+@^KsBaU#lxNzklx_31-iR=aZXz6{;^QpY8}? zUwih*koC6-YN;oRdlEJMhTj<8k3$7z>>*D#lIHqnjDl`wP6Zs^H*UTUKO=@uAYHrO z^JpXa8|)80b48%S5U4Ae(gH$7WQQrIv;KIWPKAXNJ~9?CzCmAU5ns!VFQsyS_Vi)td&AHj9Ee<8t^Yq}31()I7w+84e?WGy) zQOOtmxuo~h!d4<0VuFfpq`_N}%^k=AI~WB?(c!EwWl?{>CRD$>&^qT*UHH6{VabD0 z$e>L?KpY3BTc_rNv4s`>|k{GnMf&qoMO7{f$U;;i@vmn(?ZM?e-zTQ)#L| zINWv$_h|WO^NTLw=d#|8XnA~6zDa|AV=Ng{J8h!u|7yaqe zd;<~tGkttHE94|m`NYSdAkv!C<@j&kzWGdS5<)!CgJ$mzDcOt%KX9R3*qK$A;Ec?t z%A+KP2b;}|%HW5efW???jYH$J6XFLdt63iImySRmB*B+rHXcfbq*mE$JU+HWC4{NXxJN;5y^Q zSnay~VPf;%%a{D`8aRH`9_i!z%7G_s+;lNN-kNedo^pM4P&!g#kF(xRvanJNCxk55 z;{5pCd1F{!J!s{I>U&>c$bmB+M+-aNY(sUaJULnEgR|CDM$`&e zubrVXONoKY(%j$uPGr1oJQG_iODQ3+E)H|w9woRP*VO%4Pq7RPL{|!msn&nw*9g8t zh0dYv-u%uB^S2frSW0?{gdDnubYbGZ>ZreC%%OtKymD^|gEtpkZpYh-nB=$niMOa5 z7=$DyvPoW|Sc+?DxktyynAW|319eg0|1v2rF0KAB!#W0jarDJ$g&xL<;J{AX)uO%P zCG79n*$G{F^uIx?ldFrq2`;`shC8+eLK8_wmW&-7(LX|t%?+eGULpSZb6;&Ry zr7AyO{upmeJ$;}8o>BrOmDh{%xiRN}Kn$;VGesTcSDvjuX})qJ=+Sa9``6H~U%71@ z;6!ATAA%?j;Wl)?VJ5SmNVOyV#@<5E>|UoZ5tM6;kXeqgPhurbR_RB(JlkG{pt$ZL zim9n7y%J06s_JUxC}4T4rN9DPKSLAY(Sg0R78R=Ge@;$^in{Br|PGN zvGB}Ir-Sb>d#^QUHc$bA*gbb}pxMydTLJD%6L%trZ$TOK_sEbs%I|n-Xk8<8!(`B1aWR;bO|atGI{%aNX&5n=JNplCcDUxIpVrC!_m2|u|U?Pp{@im zvfIbrlljsL*Ll>?5!s#6hT(q}wnVvotdLQG4~}f-Kpon9N?cV+Re|DO=ElBVy7iAb z4+i!l=|~d)CSt<#FV67nzCtttZ}C&IMkc198UfV{DDPbVz@;qDVlG+wg7S)y3-d)5 z7E|%~xnm@DQE0t6f}o(()~7rqY}YP9v)UKlz#L{Fi>|o0ctjK?eW{A0HSWcGi9|}% z_)UvMTp18CB;#pCV70CP0WrliF(vxDrae2+>Y)fYo=i+51eZ8H=mr-gegqaK*eL<~ zSD{}#mheKu@@)uj3H2fStdfd>kIMWwZw!sRz2v7geIP^QC<`VsrcWvFx5um1cdTCs zV4sCB4<}Y^fTPc7dz-=?qF3{kccN^IQ#vi~26w)%@j^y(@ByC$#x{ndN+aLgpm5y5 zgRY5*@fD4QZ#rI>@Q&yvjO`?-FsPVqqrUXz7QN5pc$1TlB;zG1T(!ZvYwO2jO#Kgk zvCEX=x}w)FVke-uCq6gcE=&T`>m-`8WWSBc!*83C0cXE{%Gy1-z9K`um`1DwXRclC zjZ#LqZTQPMiMTQP>9l8EZuXX*b70!u809=6?_i0UIL?MtzbY57k^>KdQ?5ni9=1ZI}T*_@x+_`Rx8b_$(gpL*e2Tz|;EwntU zk9-HA+}?xa_=0xwBl zz{@Wu7|7JF|84tr=oUfZaxV^)kdQ!3i2Q(Yb#ZB=f7D;5pY_vo%SIiF<~nWYWlAF6 zR#Q9YUm)8-tp&nFr!PdZpI==-hrB+>g$qbAnfH0?=rH`KJhN&UF*qBOI(*oUqdf4% zA3$YXY>diQwf za}M3XPrUr;kGz;Q*!9hOQc=dbpf0T3X=S zZg*_IIP=mB+)ddrH$2u*J)h*TC$v2J6GScO8-+d_fXM_9e}2G;6E`rKYl9SyV&-(> zCp~Ya^}Z*FjJWo6@kiMzlAj>}I5$?RM5G29)({g{o3e#NRo zV^LQjJfBo9snd$fv-jB+8JOy>&BH?JomQ?N28ia(MseY)Z#eGFhdy{t5*m%0+$%#i zN3fxox_q>ZlrTMiZ&oc!Se!(0-8N~!6O-vTVSHjKEQ7qt-6e#Dpi(tO?oPLNN*%26 zCWtn!veMg2r|KB63#|PJP=E)iM8(?=3$=3F?p0Hy=1@ch4LteX?g-0VSICRGuL|k zJ>)ZxbzAg7>0nFil^ZP|;~|J?=3J^o4__<-<>)K-5;cdT&SI_t{VdNigJt~9IJ^oM zhciNYf76n_S9h>Pe1$hL$;S+-2!@YLy!+T|Lp4r-9g>|0pOozRof+O-vXDPS1vPhA zHhZwvQzy+a^yTUOu&Njx4vlYk32%?GI>J9S{<%h;{j1DWHa^VOR<19K3zjW!)cWmj^R1Cku%H!t;)UCUpxvUwpT`lt5z^78+jp*d1o8 zPXKLJH&me1`TWYt>c(O#yi_$bL`g|WHH*})fe-{36Zhi5n(C!H>pGvxX61-`OXs#v zMfJ;ZUm@3L?}I5CW_UOzQ~D19`$q7;r(5qhoQbd@4Se4!#s7h~{n9tVf5q@smG^0_ z$KkgpriRgo!^1;z=qdx5rwqWc>lQG!+i9rv-peHY#vcyYS;NuoQF{sjs##H=(|+5Y zpu8d3%(_e9EsoE4Qs03hE2;JRdYlLKE!9Nsxvk@ATJKGdftfYuqRCPrXNl1Qk3*}M zT86CEQgTw1C5G07{qP{}x#i>OC@_XMv&IH)=g;G*4DSV@!7#e!9FhwQsp<3bAfM;A zT}dmA`Vo}kImr8uzY z65y)OY={pHiRyB{qqVqkiGs*`H`v(Hh(fsTgi8xEy6`GCny)IZ+rqTLB=gW%OSe_J zuc%D#YQdO|rH#$cM-3bl_qe|3zDtL*r^D7@!v|`&h%DzC-;)SWuk1Ih?5C(i7MN{K zqEoV4a^r5tYAZ*Y>3(cBdpl->9irI&Wto$);un;estG}lUcb(5uzL}|zCJpbtyTD< zm+cbF`x2zCuOCFj?x{}8PDttvSliBWynSkFDz07m)55$`uTY~y<64i>gOg5i=^bIA zQ5$jasyRD*IgO*uauh=l3x&sU(*73X zgI7xgEIT#ZxAd+u==sXkoA_u){-UnMF{CG+wap`MncF`VxlJXj9;to_rRAh0643c$ zG-zc8p&I9v)a&19Su7#E?Y!PwO5{Uv5F>$L-d^2QjNo48j6UE+DPsz=;F^Xe6Xo_V zu%P?Ji!4ouHx=bmjE947(feV{=HBz?JR2_6zbpz2t6d83`cpJ)A2*e_3LkxW2vIGJ z_>s^SSoU#U)hjR=t-}V$Nt1e`D3bTyFf3H|@bH**kc>75koj-0JnJ_W0@#UkM8Fj} z;&OzbFeN}Zd_qEm5I{*Z0JpStcQ>aiM?p}72^9b{(JbU&#)y?s67PW3}xMfNxfOhR0hVzy&y33R2cAuO*`zTB5Oh#E}|NGXGVjE$~$JX zt|8!){_+TR#Yn%-3xsZIQpEQ6ZJ+Rvus_yqvM45biC(EWnGfz-a-7>kA?Kc7&CI>V zK(=?Zc^4pmQ*rAfNd7DeosJnDf@KR8fH}J?A)#xBBgzDby?Wnx5O}CP4&9oir6oOt zH>yBLgn2mMIBajv5dgYHxgS1)`cF;4m28KC5)zES)WcmCG2Esu91v7-zSl_)8_f4a zZpcE~xQX%`tgO%(jW@uog}}7VuCA>%!V;FS;$JaA&mJ3}V?9);PRwWpM6qR8#kpSdE)&1KFCCOL5QM`&tOUgueIP zX^C7m#OQ zEx~K@PC)PUZW+^6NM#Jd;o`jnB1cuQGHNIN_WO%q$^~1z{(w zwY57}^&tNyocL}+|E9OVr73QEyorfV*O`HZHk-+@n3EiqGn2cel`}$S`ihG6y_kFU z`H@c4YAoicy}=KpYr=QIoSAE50ONL3oY2(r-I%a@Fgn9~3-?mnJ+R2z>NdqQo6^rGyD@8Vbpk%e!OKhZ@#Dvn#V9qiDg-2@sUz{o>aDKW#x6j3BJtfS6zU>OejpM8 zhDXDePv9{Oquirqq(Yj9QThzQIzmsP$Y~Fcdo4uxn$)BK{V2RPk7QIMGq=?8YW*Q` z@m0&xx`cq5wT(CnaMp@x%g1GnC?x5K@1Lnk0A0{Y_}>h8m4DI5<^?Ez5BAU+IC5{ zr+LTHGVCDiJ=XcYpp|*#W?Uw0uYz^boa7x8`uWD(acSzeZ%iOk#OLQ z-UxI9IrQ_(ZKFjT%gR)W6m?<%f#R<5v`v&#HUtabb9I$S^gdfNJuL>qzhMk-e8c zK_gXdJS}`nGJk}!0y5m(+)RA$#x@S$wqShxtK&D@$`9-eJ9_T8;sUr-U~_u6X;>lu zthE?izDu?JQ*5LjgiRaqG=~Xs$WesPQ78luhcR+Okn$Sl9A*dNC1&RzJ?I-94amX8 zskr&j^RX6)XD8>ES#P{(AupVItlR3%tt`nDnEX+c^GFKFQ-VPhNK|NHT%{fWCkrut z)#(bw+pJ7Ixn%3vrw&y)y z<|r@QVcmtu&rgiwH*ta-y2$&#d#|{X9np18NVpB5B-euki^8 zv{byJjrMvwRxE1X5)w^L>Cb$_f4!r%72SbDFsahUJ+iPJtjK6%xX3Ix;@AVY=dptMMtUl8GbI~(_vO{NDU6cL>D z7o<`CJpkinB5$M*G|{OK>*>)V#@E+4EWJO#=Qb%>$Aka)|i5P!qko+Fkg zpWZe!q5#-poarvdFVd)Ne6TD;A{WZj-7Q91G+rmoXD}R% z1(ZhzYT0G8)LR+0I0oZadV{s>M3O=DO7c2-B9L{F0UVhH;^SjFR5!yuX`HmY5Lc=R zURu&!lxYST8b}h74zoUcS&1AwOS(ppZpXhI_TYm@VQjA#udhE{He-DMfr0bp}BBZA3-LPj8gb$BSJ0;tcTZ)N4s)M6xEqoR7`d@JGV z3FU1k8QO*_WV3h!zydJYvoIc1)I|b@Fb~UQUYZ8!G-^r5XM9-~X|N($4mZCO`%h## zk8s^Vl4!=o>#_2<(O+4hlmCT)L(1!9-l=LJ?R)<`mbhtY1*7)pPg>YNEjZJ`+w$bX zeL&qbWo>)X^xNXZ`dn{d_Feu3J+B-bnW*gzUY1l;ESpIEMeX4wNB$cFjz%7`A*i7o zUBS+V+`1tSHBW{F;$!1&yk+K(JM>6DY4_G9`y-G?BUo!^?B3K<4JGoUg9;w}1#bG` zN+^Pw)YH*tA5y*(<}<{SFWqdKADX9O`fjyT*nVjtitmKWT2ZkXEW6N`Z|5ckTVH}o zgol*h-4dc1*(AEzN8J?oex5}0_qBKC%B7(MR^o#<*M~0FvC(kAUi0cx>Hb`0{|B1z z6Ue$pravqgl=dP73%PHY;jsY5Ikjv`+EBH=^xl25z(#d#-*@kD>FDU7)g0$j@w?jH z_3XpY>&U06+|qr@4jv;jw1$W7`R(c4Twl5^HpD)gXg$&v?)N^&to6e|&1~VUnu~gp zj(k4TM5M*S)WGiD@VDM=jnmnn9`8h6Wl?t=eJrj3Sg;?qBvjxVK@6z8XjATK!M1aw zt$_E#q_?4Wk?*yAY(r9hBUL>yUc9PFTR*Q3)q$|9(&(gMLZRaBjP_N?W1SIYC^ib= zJII9@e@g$g?ccei`6Y=A<*oPeo-^@PxD37bmBaiGmo&$DOV-g1)-q*yf70Ev&X9X3|HsyQ!=XSn052epyf2sjwyVG; z=~bmwn17_qZDjwTYf@&N`aTda-V@=z5L|G6nJj@C*&6356(v;TPR%8t>tz9OkNE3_ zm|mRglja}r5H9E{0PKLHYS0fRP=-TO-99Z7;l#a;8Jd> z-9OHQlefrv%EtV7Q(qlq!i3?nsx400XK4$^FT2MLtGVm0J6}HwR>Iew8LSlc@vI$V zAR8uSa=#JI4n&27ol~<8gP&qKoG4%lV~eY6NrU<(R=~*_uE*jAJW{yE$LBLLk$O6L zWA|$1YyM*WEI#^zTRVI^?2I&CPVurc8@~Y7pgRe>{7guDdS8e+uagt~MQT!pm-W`F z1{~-#W*ZTXjB!=(=IAMtPQuC~1AzR}6L*+2i1YSaN7%&Tl=0-1^46Js^AaKd6YJ%l z#`d?If2E;;wDNQGFJT)UVc(0GNwH)bc8dd5`u-r66Lp^``{d1VAXS1YZ>QmJ zc~{>HIlB3ufO=6FKl3JkCZrnAcI1l~kP$97SXFCrlSm+r6BnItjp1SD8yAE-(N?xV zqPbo?Mh@-VAMvF&U9lMiHw26Tu>Qv-Ww<`!&8whNq6FL#AV{2k<8Dhp(ioDfVbR9m zo^Jpf%B-qlqWoJgIXm+>nhzEx4P-F(+*Q;uHcr}^$C1)gm9XG|d9@ZeA(VfFdooMR;*wICzQ#WeT;9g}qTE%qs~s{spOL($6D-Z!Lu zcSYz4W zbJ$tO#L7Mn(iO7~Jg z^;FSX5b!5JqZf%smm0yip@Pz?i{kN*1fxg_$81#G-!S_M(!6ap!-2s129SQ7X&`q4 zr#}fPi;dU+Ama|4z3U7EgCqZM4y|rSb)%?m(!__C28V<305E8P&P}afiwU9c3IhP) z2U7eWik@o1_Jlp;NUlue!yhe!c<)4xMcmR(;=}6cK9rHW56I9LR;<1D@MX_0m?^BUfu%Fu{ySmPf#@knW?<$D;X{)VSYuWL|lc zD$9m4tb-#oD?k{Wdr|;V_~VJkUjYC1BH*mR@&fM%aVqOeJV*=lu3DOt$MRB*ScuGi zoHjb`?$6MVV~JZmomt&{Z|fth&tl%8)!@MV5c4~=%J}}7;F&#DF6IMuIt+z=esG2~ zMtFO53EuBLyM2k`TGs_)7;G&+0sZ2_$R5Xi1KHfsPpcop5Z@Koe9Evi`DuJZGC6D! z2&~O65!?-(Ou6sQ za6_Q415tr`Uj@ucng&KLD!JHJ{Mm$!<*P~`%l?tWdzWh-J+j0%`BP=p7#qaT=_3}l zXUom*TkNdAG5KF?v*aJPS^4S9MY=JYw$QU&dLrh#MCN=5l#6qPfvi?kQNB{->@o6H zpCaQ+E3J<++uI{QKeMt1kw98szRdRhVq0S;1B~g9d%#={)U24KUtlo+DuMS$C80Nh z-J+QJ{X`i~_+>;jf$E1rlkyuflRf{9vV9}(d|GWCyL|Nf_iyGToA2h!U2&W)SV0u5 zX`;*2C8Ae;%47lg4@ge}zBn_Ygoi)1K>pYj4g{oaz%<~}-)qC3}}U;ktf zL0nX3+Z3I7<(cgSq3%s7<(o@=QdDm2E9aQAJINlx0ytz)i}9OlJ`FEWbYl3TpZA>* z6-iv2DB8Pc!B{G-jQJUkzB>TRQ2X}6bdh@=7TgHH!f=M+R1K%oi5Tsj#^&@ ztJJuC56hR8X>_CokIrc?r&M*?bOM{NKcn`f8F+OA5Y|$Rl3+GYp+7VmUrQ!0uT)-|8Nz+mM@^9 zj7XbS_Dv7-2q#Y!@IP^Vs2&;L@gM2l896D;Y#=aZ!6I?bD>Gwi;`l&Y24M-ZeryiP zu{p`Cs_vyFVCTK##ai+@3G?aSN95u}g%z001>GMo{v(gqtq&1wrpPnX>>381+1 zEC|5``i}lYq$o58sx<(u{1JCyY{mWi7~843gv{a1nQ7{T%W|DIZijvkb(A$3CHFys%RSF0rzft^LMA{%v>rS%ic(fOx|0R6aq|S;qL`kWdw^a@*ndw< z{IB1-b2%o>fNPZ%uE%$eT3>Il5Fu8R*GhtE(0o!tg6fD~B6ov;vV$TQR{eg|U=q^Z zSW%~(2c|7;uYo?W{vzt#cjWuh4_F8LJL3hRm0jNgaOLP*b7q|~Ly1-HVW21qB%)O+ zJ!0v`#Xe){8ATK=zkCe$9EeU`THQaTdMzJk&Z#oqCfu3xNYi+da}OZ8e{vWcK&cX| zT_-9)T>0R>tXcHuWW#Uk8fPaABLXz}QtJZN-*x+*^Mvry?#phhZf-sep`K5C2fo1g z!XHm63`eJ_VbVj5z`7i4VUmtenrVc;0x+6PO<~d|&XdAtj_t;!lhXYWFfXHh6TzvL zGv5Nxx?)&_36y{!Zso#+HsL%@)N|~YqEya~<^Bp*>9LKog2lLw_sXhZdwyf&hceWG zCX;Ap?P1pl?&gQ+Xxn0v;-of4**c@(W-ji1Zw{<;OqZXBl|z}HeOyEn#FOyWd(ukuyg7O`DDkV z+%`gvtl=TtU{DWM9RGufGk$=0KTd@_hPDOZko_6(rrfnc4#YGo^ANv}Y?29UzJt(#srfXNg=puBU}-2Ac~Dd8*i`k_yq{s+>B4Q^0lric*E;gia-0OaW8tL z{Lz(+hb0Eou>jHSpZ@wa{DH&#Bvdrx5)kFwGAi`?el9tZAoul2CqVZs(wOa1~R#CFC4@zx`g>3YCfjnPVJR2 zE-;mGti&9A%6y^d>`JgopX=H*?{6FPcFFvm$gpU~{4OT_-dljoi-Dp7>Qq2y_UkqY zzibjq25LJ{JwP|3Hf7NvSwWyh5xjwXVnr*ss57K`%nFm0B7e2SMdoG@0G+Yg4&z;6 zAS8`JzgBUY0asr7o~?1d7J$aCaJ{QvPV3X)=w>`0ww7N_Ofq2#(HQ&D(O@7+@S(*< zH^0Q-{5>de2opm^fd-b#Ilg`PxeP6!Y6YN{oY4X3s%v?sCc%9I&=W{apymT4T(y@$ zzvHB|+Gu@Z3*$2DKrF{L;N=7DT01iRg!>&xHi=63KIeBQ^bJ3P`2ppjmS*^BGsqA- z3S7WK$ttp--8LO2Qh^>VkaMaQRph) zS##Y&=xsBjp;YIeNzdZ`Cw$h3)6WiF?PFnw^PmnhFvH)ro+`r)*VPc1!W6g)EhpQ* z#rj8&I_myQt-pEIpRj5B_}F^B12hx7OX?rQ5BqRb^uK{@3NsE(0JsA6!p(i(j7yTa3qA+ki!3A-<;{u^{DG5o`Y~naK3@4!AZ}5vfm_Ncq>-!8(2{)WR#BYF) zeg>f%=%H?I^jICVWN?u0cSgYcZmg|kc6P%BmN&aQ0#ak00Qt?rHoCw^es3{O;IDYz zV~Cd!(+{HBPuyly1RxOUILRj9$QX;$4mv<; z8MH2j>K{-B6#ji@EcV0dcNs&ox?KsKd)y@M(6snx2m--TFU^S(sDggaW}Mc4|9(<) zN7jfo9nX22XY1#KAMMxfPIkfs4}ZIIf`Y4S-I&aRZ+^YRYsAkyW=wLT#GzQs6r zQB7fMf6Dqgf1oAcA8#IA8GWo36I{ZMfv4JX{d>uzW0$UuGR^erX0!Cr!;t-ud(SU! zITxBk>{#wqs#22qQ8b!maR?4nMG(d_P78s|IAp2dU(b#MZ=CIe|3PM_m;dvn@E*$% z*vtGOf_TQ)T!|06@Cwq(%k4$Q1A^Zz*c$&gK*o+YvlXNe&HnzIFc)}Qr@s;00`teS ztjGGEtaSg;@HScK`!L@vfQ}alVtxcSe;Ms*hM2YMX5=`NFE0)AuNJHTsPMD=gK?i^|MT z_P_55`TqsLB4~Jcct~O=SS@d3QC)~aPkRa8-RJB6`!S^Dl}8CBd3RIG66~t+BJAKo zbth&=YgtJu>&GeTe5{%G@wH%Idmj!g<3L~FXD{$^--dWnKDi;7&Op_K?S^Y zl}i8VQ+jhSIGgij7067`^z|?EGi9-GE$G0{haCSd&y`>^i8|?iGh^*#o-1VfcrtV1 zS>BRKAD^ykZR8x&)6toL4_?uS50tnUE$=SUrC%e4IFR95J~cI(kjWawJ22AVaa9Ah zi{|AMV?P6FiSD$_ITUDRshY<63>9p;RPT8e>w}&t(Dsy;lS2m09(u%>D~!5IUb+f{ zv2Si}w)OUIuf!9_``o@W_x&-Y}aQnRd23Pt{sEG&y?>8?4ANTPl1I(FyLu@wzY`(^{*c`opv2WS;cv4 zUH}h{?Ua_%nCSCL-Do`#J(VxmZ5DYH@9$(s!oS4X|Kp<3^2#L5yO-nAW3lawq_r+T z;Gjdu(a}*|T|N1H*LLlfarTB2=^5I471u-l<&g0sQ&ZFNL*c7eL&mOX!o7=^V!C7> zYil=HmA2pu>W?K!zT&d7wibOguMiy*V|sqF3oXW*JbA)Ah%7D3|8bz2aEl;+B)F*P z`m^WHU%s?Z0*92`Tymp)#w^tYT!@Fbzk_hZSbNu)+O>@y`ZYAf^B8k<zo(3+v z5=C-)dMfhyA)lb2)=}UuBYcev~Z6FJKr^R>tteeb^5Hhwh%Cc(@&_W?K>l{StTfjbj8kaU{%|W%74usHb>~xYW-jU)0Rs*U<^nWLx`&|3F2B zNq9dum(AT=7002+&2;3)a8i?R;@7WV>+l9L;ODL;jnDdxlhM+vN`nWvA9Ph;So2>D zLVf=(u(Wogj=%>2bJ<|}{{8#S@?J2b1^Rj4^76DhxT5Ge%crKNL&wMU_40JwYK^)# zxqo3$6?dnJ%zQQSHg&bN`PGo%0oyt{G|_I&lh~(+vk?yt56_Plnyc)5=69p=-WU~C zgi|*p>0@+tyOi9zas(}iN0KmT_A1V@w<{?u+|QPt_#Yr)*3eDh3b{X@;q)+vCH{6v z&dTDQdv)i|oz+S^BJfnvaaX@g1q>ZU$(tkb`e_^6lMqxaQ2J+Js;}p#Wb)OrN*J79 zfoKYUU*M%Y8)t$3uGHYSm&3RXPmOWkLO!EDzPbVHn{Q=h_Zg@t@`=H@#yJsbwlGJn z9{ko&R^QeIImt`+IH;&JPr3Vzr%)N*NffBwdsPQSB4!6f;dUrzPFExPPv6 zIx_B?wQm>R!cKwWZ2=`}EZ*%+U1O%|I%#61qTD)MxDN4$=9~_qKLZ6+aJa9r< zrQevrgE`OTd=}=o)MK#JO5*RdGt|ZC!(R1l21uI6Dfdwm6BB(yL+@odk|!s(YLATw zq2uW{!V41ZvK&4?e*7pdqsveMK8oEkl?b~~R$eZs=JnM<^6EkMS6#QavXD*={gWq8 zz$DUZ&QbU^&6$*zmV!BYH)N$PK%^0~t26)?>Cb?_d4mk-ONw>9bpStj{bAq{W%DY$ zYK`+~_4ifVGvS#NvEgY6T9(+}hH<2Y*=b9Dj92zL%o6&URCia`8`Pullk$c8bf#$P zF~_H##P8*a4NoJksLfd+jZro?((R{w*@V4*x9GwqazCSrU+tya*E2*o{~8$ZjpA+Q zfkmNxZww#muGDc)ls1M9%<~&0xOMe*+80Pu`bl)>M5PS1*EbdRzO=E4E~(27R>*la z8j*{**mw3j=IsIE)fi5$)d@djqTQtSYM}_Pqt1D4rof7Q%ivV>qRuAEC-e(j9J8^N z`9)=R5SKG{;{{__>Z*9K9Z0~Zm=KjTd3kyL?NKt_iH$=?z2g1ZVzUF2Xp{42Gs2=T zs|_m>-o}+og(htvGt^nqG4-o*aG8FtvCP9jTHe&0oCnI9gX49#R(zYB^{v!LKnZVUWXY4V2w*)8o85G{s&eYw%&yofJVB?qjvj zQRt%wQgc$F%5Wr)YAbwe42R~E7RR)=O42|*+Gj=QGcoBQXm?Be-hzqbs% zUC!Vn#Tu->@^vy|U`=7@U`^8PL_{awDB)nmu5yWC$%$)YpXCl>tyxz|e+(9{)+>X| zU0z`)y*s2l=&p=8;8MXZ#rm#OL`$738c#wf_`(kzv=wgAwi|(9Qrt(D*k*6LsXI|I zy@3UAag}eHI?-|iCtkcZkvt-j7eoeHChnKb58VHxt=ZpR z$tC$hTBayB^5jsw*Zt|hKolC)7ln4IHtZ0-8VwpA2S-Qw-Zz;pEjPVh$p=}9*uM#M z&PER=4fM;*$mq!gd^+k~rcH9YMmuFbx$M+?hj+t68Pni(@%LF+j{9TBqynV{E4Ixn z#J=$6s;8OwSNKca^SQGeSXPEt9m?h`%MAXDA-O>y5$r6>U`fx)BHCR`)_+JIw{xkF zWR=ElWYoJ~<|9;LtcBBkR;!HR_PU4@@Cz;idQ{Af1{5VPu~F}Dud?Z{i0|Oo~k2!=&f-iA(Z6nAQ@76-2F4@6NAa7 z*9~e4|H7??CwGgIJRmx+el+^c?4%RYUQLj>!2R=!!aYB)>}{D3>{Skq4MKkMDJ3No zC1qtQpgoJ1aRb+THPTCIHeN&taL-=ew@%ed5pD?dVgBc{p-mUE_<%>YNots0Oc-3) zkzp3NvDxl?-F2fHH_?Utf@ip4tpmO6eNj*(`fLc(!;8>3AX*gqPC|PH3O_{bx7+*0 zVAeAIM-$Y%eR;w*2%)R)&m?GSVN(a{Do6fhOzV_}lJ5QfPQ9fZbfl*Jl!onUkFyAN zr#N1ICyuwCiP)L*bXhw=-W%LeF(N4=^jv#F7JL9U`!Xxssk-c4;_qRm5b;egA);Ps z|2}s*9DaSScd^~<>6`f{4%>EmdBer)h}r3>(Ne+F{me;R?$-oM8X`W|g&(eVgmJtk z(7H49EAR)3?!*dVaLRLAIg#+@NZnCj0_+{U#P;7G=+=k7z+a|4c=Y9&a*iz&ce6e9;Tf+L;jBV9S_9_%9dQ=; z;7*_3dB@-y$3PVA-eGvyrbzjnuJ#R8d>TR0@4lIine~45&e<3#yF=1>@ZlTDab#)2)^ONc z4%7|v_ycyfyP$OjL8y6aMB(DMer4C^H)#Z5s#RW`sKXqLELm!zZOY?3uBxYV^}IRsb2QBURFagJ;!m5dT6;+m?%Zmxz!kvs3R@T)cY=_z3% z8mfq1G}i=K0I&y1R-?}=o-vQ}iQqnYa_4gDJVW z)*5=eejnS8^bT?GkLxpi;;xfhO;iC~l2FS;+5_pnqTHvMss%LN_!wIr6Kr>dd zt?uB4`(9%^03$w%J`8u^5w)xXgV~J`;#E5nc^Rqrgfeh@VFGOC(2=j%TZ)-%UzLxZ zl!2OE0D#*uZ9o6wE(n!Ny^JJCg4e07hRrvUJ;2kM_@@`(#dV|8R}*s%q07&Id^p(N z4of`XC4R>g%*|S`tHO(hA0kgS^;5gvT!*-9!|>nie$A6E`EbyiTkF=J2LqzF-sNoU zE<9|rLgCNwdvE`4Ry=^7;z@iD^eXn6$`Cl_jPp{A$Oihg5xbh4m%CmJHIL0Bt}8!%&tFg;)W~w{wGW* zj!zrQ&gD*ctB~YOi1GQlM1OEEhNU=;Y;HeEeHy--0lRjDIO)%~sWwyPnV#_??%#zz z-9b6)*AWTYRevnhj53RF@}kuyOhp(F^?w8FXddYumNiT40b^H4GI1HLiWL`}M+cF*B&+0;Q)! ziEc+v*3eJwOldRq92!n7^t#^53&?w`di%~C_H=Fp3!_vNf6f>?)IHHtykva3iyTEIzf5KeH*j+F!K9-`?JQmCV#Q=d<(duVi&S= z$_{e$xpI9+(`m%ewQzkE!~XL$N~wpS-bnxlYF2z-5J#pVR(lCps$jls!b|`$pDGVI zDz*!9UE6%x^}b@(^9FYE8Nb>S`otYG03~2(hjckeDy9Q7iG~S(75r%-9d;GNid=c` z6l1*{GXuVudgfM2%$2|S@}`DWd_`#Vrugq@aIgmq)y_9Z2^K!BrRNy~-k!H(~XVcyP7Tu$=<2-QJ#-KZm2D)_Hg`6#n z2%;j!zey4L2V^VPsGMiWI^*^AIDa(X(>9K4|gRtlB6_W-%QErTCi zNmV1iXds$JGo(Ebts-ZQ{My4{+@*!6Dk3RMpfV!a>kuAwksoUjL>#-aH!>QZ^^MIB zObV?DgJxjkl8Gl`K3m*j+l1<@sINLly#!QBdneGMCr93fliQ9{`A9GYB=M$J((^JJmW97zEg!7$4W|FIrUiX1g{Pr@r=hx>Hr+&QCV4 z1WqdAWFW8vMn?PJ{hNq+1Ar=D^ESZER60Y3S07>M%cojyJ@s_6 z?Ns&L&0yDp8-$FMZ9Eo8A80iw*+<+_e-usX39IG3GZ9rD9#TK!iOwhwQy)muMx zNv*Q_qDfMRKvI3r$;9!|+{V4&JMPZNzHedK$zviXUfbvX zI$0M*%LbJZM%oS26&sL_*f||k@O>_;0`Row>@d|}9VR$UU z&E6yD#5so_eZ)FeSkb|=`K!uOpaJTc5NT;kA7crz*-P}#6n-yBVHw|QlL$jaXS{~_%wprZQT zb`Ra%ASJ0tDS}c%Hv%dlT>?srq{Pr5B_OQ~rGT^`-Hj-rq;yGl$1r!#@Bjbq{qDW% z-gUoqT`uR$IeW%Ad%y8K@B8le=-10A-9*O;#^|Jf-EKBoY5u0XCx2)*;b$M$>3|Lz zfjK}M9`=*UuV2YwlzhMe0s|(uRRmB>f2O~o<)_c7j*@utGc-9n7xNG4Z|J>bJm{tW z=4VQ9_}TyZXmER94-S5A_tWN%in70vwumHyLe)NrI?G4TTNIwk_}`^_NciHMBTjYy zWTY8-^@y17{sI`qoXiU1wmu_>C%ARGwgDmpK0>s24B$u_ng_JV547*Gz}AvO&b7wI zM*jdv$nWCyR#^cYZ_zOD5r$e+|CB3-%RP+K1-H)X1TJ+oj3Hn}TMvgXLLyrwc{rFk zzur%EmR|uzwS4m%AR?K4$di(*QEcnEeL_GGeXu zPHHX3nI5h7#E^Dj_YX$QgW|H7aEH3r5?tP6qw0bKB3IyQZaD9l(Knug_P5Sq4wFqWuSM zAg5inR=;c=N@k$7ykWOF%3F6AK@U!E^DMU4xe23cTDn4q-Lw$WQYABHA3&`#7hCk{ zEt-T(yj~D0JzJie0uDS)gZqZ0m-fUoU-0=8U0o1pf#)w}zM?$;f)hn2Xai70PlZ*F zkoSRgakCWbKugt9hI6wlP;{{BA&-=5z4k4;gITT#W%|en!#moyHgy6_y)}@o!s#uf zn9#NNg7Fs2>uDb>Vz3Fi2wTDIV2b?_&H`M@cM`Slz59?US?weNR zR@8@Zyfri2jm^z#|Ico5B=^< z99{2W5fT!)p6yv!oX`oH{t!6yx%^p)cCNx8K?m+V`(*SVlL+LyWo~Y8)~Dg)c7j8tLmYt>r6`=$42z;V1Ml_~)$$D<=S*y(qnO@>8Jvz# zvNAnH+}yJFO}i^;X=5XGFCv*M7kg8TeSz!%(*ooZo^V7%ZGlj?=+L;-C-)U)w1Gi+ z;l9KXH`;uscSG8j{(4Lg^23t8Dk%vjjUNxn$+@}3kkxPB9zw9TGbVog#vE+V6t<8< zWzsWevzce3ETfg0hFzOmHRn&fe|ae<*g(9%VbOeA$J*zNUQnw!)7*d*G!)zO2La zVs&6K2cOS2zPw2Pq59bPX+hNk7o&~u51K>atUZSc3OOvG;#*bC#MJK-`5Vb~y_sKN z5UJ_?Ar zQqF14-=*Q)YcvG+aqJ&RU4C?(=e@T#{=JcRBi}NU?*RCW4u8s(lTod28wv)q$2pnw zaj-&r3m8RX&`Mtmty}hib>;x)M1bi7{TJQ~C1i$LLCP1W%32pi&zx&2ah$}y%sBZ1 zAc(vM2X|Z=s7kdyeez?mOw|pzYErp`-|#I|PHwWRsT^d-yE*D4mdtO&ElFZI`StnZ zZ&NW$;KQUxhxy{N+9LF~1jD|RIw(=DpV%K*SCmNY->LN!E7r6Bu~vFEYzo}40igeR z<&8$)ffGGrs=u(AqKY)fyr{p0dl8*{g26i@xN(Czs!ltxF|pDW0N%4J9<*7xZ8du{ zK2}jU1$K~n)O#=|JbT*>cnY*$?rSQL=lN@0Y^tLajCVY&7~!Ol_q$aD#qZT2*5iNv z-%OEnHXkp)FT_2F_ik_i94skalnK`lq6C}0|Nclz9e+(p8lL1G0PMl9bhfX>dWYAVzG4x)waBx0 z*>zvSSe}on1!+~P7d%RW7i3|nUExa7X$}Ox+C4z;tbKq9iJk@UJ)2s0!eLnRL4!x9 zTk#;?9AaXc#>i4ehxFdTAa59Ht5f1=cHUn=&iM6w>X2q7=%9mBJDQO=yT2O`ku&6J zdqTAv+i&S$YPsRw+2bw$uI0+~e_ zWoGLAC49#PBC9WaFjBKGGEq1}c$KUz^SOUmn?a8#(!rMbO~L(8;d}8|36EIOt#LMB zk5#CzJ}{a~xO#+5V|K2>F`((J?F6E}p_=7DNji;=mKwruHON7?cS$^}jUoT9L5Q$H zs`sQvpHW})5qg=e-XyvHw^x6^;-`8|r8l*DQtRg)lTxY%FMC4MVyY*unokBI!#=-R z-?{mFF(op*8fr6xsU#xX>is%v0=g113t6cS$wpChq)U>jf}s?!77g)nf3+};Gh09? zOKS_;6b}Isp@*lcl6eogfj~s)x!eU6w(L>Gtds4&x_n*-H!9$!rIEkFB_*s!yS~hi zEo@02w5R)54V*#XD>#S+;0OJeyZL3I5KV4zQD6RCqHJ+(aBae5cd~jFHP}@6zkl7r zH@Wk0)!IAq@F`h(rnpb$BdPepPx+5NCncXf%@mRFTF7G#m}PnM$S{rYC-G98ZWlo}2G7SdLvDFLG519-i+YyO7A8Z_W1ngrRaEc`JaY3FoCo zAJ^Ux!N}1@A1}Td!j3>+q*g1d(%oHm&z@;MAyeEkC3d&9ym|OO=9{R`9{~|FZtlB= zOjDx}iyOT8xSj)kIHtg$Rt-Kjo>k&Q#zB_OzrKFxGR~8}?5S)o@f$big&&GJ`{y{- zcNEf;$N_YkB8ITBv9qeHtEc?0PhyzF2zQ8WH>spGHLM$ptG~7GM~2_qnlDrOY35#^ zzuloZXV|ZkF5g9KI~QQPX=MLU&8=W!ad&s{>9P|hWY;KJyZw_N7i#UT4J{}tVyeEt z-h|IJ{-wV9{Tn2gv{RD1?UHBhD>Sz_dnZrLh>`wWG6--Fu%2#9004OJ-01|H&?snV zy0$@Lv$NK9iJXQe6!Z_Uur$rg3QS$=>FL3O015HN0CqC=D^&)I~EiacYJGCYdjx&*=OV|VCxh~*w#xPV2xb zC3`TIp1?HfwZz(PR>QA%y&p$>?>0Vs1<4lSiX1_eZU=xr+`MqVl?`+1+SDdOMnN)> z8hRoB4Z>R0Xb?;IL#q>%)zSi^qND41`BdNYHyNSjt}^Ijwx;?HoW_Fwe07B22QOlAga;}V#O%Mv`>+i^x4@XbZ`tN+J=~~z6!K3xx zb<3-Q9|NDML|m`*r@WC2v7V!8%Dsz$iK;!Gxi zGF(2cX%L=^Mp|^BZ~611IudC9UOUm!6309f#oMHSD-OCVU!`(SBv~cv*K-?j13$Rm zge{^mB%b}cmg_e5SXey* z*RFZmoCl~>(Vv>+5nM2|;6l&v$gLU+a5iT;U?X7sxCKl^u8|PU=r?`{p4itnQC>s1 z>%i9*)};F&?E^8K#J?WrNgcMV9ddfw7?N3!eh`hQ$E5JQ(|uORr!5{#5)FE0;EpX9&Ifqg*E*AZyg#G6oFDFyiEgQ z*3`{Nvg#2%`oSf5lxhf>1VoCO`Y^V+>5E%H)}q1eg@lB#adIlC)S0sT?C;C8H@r%NFRdU!FhKxBJMz^)0$qhMZ6BF;P#-@p{h_$wGW~=?X0Kevbh?B?>c2G9>^Oi`h0aQC-y|07UA?lS&azXlw4Hb z;{XPt>gLea-RrN{)4#kM>8Fhh-(C&Om0=ET9t+VE?;RcnBM=CcFEi{uxWO1cO)UBn zHLIR~cxi#$)UpWyW!j6u?*dEfN;bQ{Pm!}WHZtZK7>A9Rxr}>urEZ7;R-S^NjY10g zz}#6{_{0foJ(--!<|+9&rQDHnSa}~_9i62ta@P>Z3=eNB5fF!h-WhDiNzwOZ58nO& zB}-76RZo_0myTV3b@ok9sxS6NgQBfVmA8u@Es*peJp}Cr~$5b#h zgR;KXV0ph=3b6}aS8XXQES!p?zwp~vd2tJD-Uqvp1V2Y>g32!)ZEd)+f`(VG(Q9*v z$ynty{Md+_z+al9@txlRgV;l!~8uy`qc`%>#r44<^8cdBiP|ZXt)Hu@A zWoV}!3a5%8R$f};c94aet^_g73Fs<`1_cFWeebOvVwXJ#moFnVY~Xq2=2i#S*cwiD z#9C*hO1v6*`iKmoJ1R-UWOu6ISbnQ_G%q17ou9=5Xh`#2{5r1w<%*tV#h2 zKs;+$p@_J+p23O=Ubt6@3_mo!c%bQ3t8yC|KH)->Tw*OJi#eO&T#^h-W=K?udh2ci zG$9ZUj?lL>>udi_p?3_T9Ep%_AzC)H_@qdOKg`qiSf%&$AXspCrU_+G^X4YETc*n5 z?1}0;S0q%YFZV(RRayH5MR27f7BUo{d*ME9&THmM4K#k|q$!W9RlN6Qqa?X&k7cRQ zGnLz~#Mrs-C92CrXj)SzaImKX6FiWa`a>fl@+~>BKI$|b3gzUoP%va{Oqf7T>zA2s zZ@W0P=&yRSs|LT}4dLW!3(nWta6l_N=(}Qg)jzj8>OE_I>?ka7i-0WulZElBCvZj* zRhLootE)X+A!DKheZaNMRL47!LsDbR6XMQn1})DH8)U!||I8uEt2qn_F?%CRsLlKg zPp&>BLUfKhJNtS!mhT*aO=Tq8+_h2MMZkUqG*AkI&bRFIXH22?$)hD4&{{#eM&- z<}lYhv*=UCBGFB56xw>>_zGC_A+O4=o6vp(>}(Z(7{_AMF}ZR505&DA94$cp>${Bf z?vLqKAi321(6KdEEAD*$W3%#ytg+hKD5FKSYeBG3VMlYS00vM{QFR#qFdbcexRhTi zs3{(;Q- z+uS`Zt(3F;L0ss4{wLu)-pTkQn<(vVoznS$hLrZTLYjiIG4^b@4NEK>4#~cDz+v_0S2^iZp9wNE zTP4#&Ovt38&SxOG&C^qfK5}bi*)U5Zj-%tpsMB4E@FLVX21pUjEjHYfHVt<^xh7&@ zEvtMG9$*}Rspq`6I=a4lLjvoeZI&oTa7%Zac?ti~aeWYK`w_fXAz};`8X9`yKMDsh zC4Al6dk^MIPbGo+n3)nD>Fu4f;SV~MP=0zm>3Esw?G3_|GP1IP@?q`aAt5e4T7PP7 zK0S^klRlHFBB)TAk80+kgvkBWIqC43F$jE?OAxOkAAH46BJ;j1D{|hrG!HB&at_Kh zV#XgqCD*=1^)0_y;fs~4dr32}Qm$CD`s!7-@wc}{b!WZ#hlrqkf4Ze=1Sm;cI3UaS}&s_L(OD#%yQNKv|=)?E^q<$X!hFe z@cWIgob70%vHUm5wFDYFi73%R?uuWp;u$=SlC9-qC)L^!St`Zu_qIFhd3f(3Igvj+ zE;7MvPD6)Io~t4Qy^yPpS9k{qAYZ`la(gPomAB~jBo^H60seCI(n_Dp+W3+_aVc% zgC{0c{RYPSGJ`-I;BX2TacMuWbZLf-Pg~0P`#0wa@W-UR+GBfYJJEXfBgm!@V>$Ev zYtza~!t4wqV%~=+j19dT&p+RgjEGX-#aX&XB*chw?ytYsGGk)CELGIEVW#{zrqntg zLIT3fd&aLNkD)vvZ?jxdSh8e;$$b{RCkIf0-Mu|ZWb^Dn-vPem8kUKCHUa0^zOAeW zwL&5*yo(W&L>q-wx{kWK@+D|V&e46`xxGXd{MY#usEfgPG%>BedN_FxNl5Zn<{>Zd z@=b02CePkz%-?sKQjD02J~@PEF?P(LJa}ZT&i&4IjRsWks~!z4Q(;B`Y8|i_WVQQ7 z(~+6cxta}NI+6G9JBr_BXXo7j5H5S)ChAEtHa+1x?^icIDgXWBDl&qqcEv%}=wvoINo|sN^(#&+I$W_+?|qoEj(FOR#r%60=F*h-i`^I>D5z{m*C2 z+1AN(*G_aqw#`T?hi{k>1jhk%rE4fXRf>(2l!}y_G-6Ad{KWL zg+U`LL1okzmrGb~!hE-(450y9wI`~n8=ti-7B1)F@z(s-SdfqG(n*QF;pRY;xWxQ3-3`|6J+UaDP zi8<}D4C#mWuC-@o2}w!!&4ba*@%nwz$`Bq^Kqjl8LG^WnW7P2t`Pk-@O!_Y#I=s|x z$pNFaNFV=Do4JkuAGH8MHtS8IM1Gfl1oKE@c|BP0-Cw+jP95LX=sZAWQL_DuDZe-4 z2#UeX{f8mToqv;|`uF+&JA;1PFZ*8~*aO!OMvGwyY^C^{a##=vHDTBNiRNWR8|(5L zWchwW+t1t{_z6GJ84atmhf!`nR5*Ggr-9s7H?@XZ4d=$1TsXsj(-{>98|aMULOIiT zwwH*Tl30dB(FiYS>t%7QDO>EFt8V2jPTn^^mwx>Gn*qTYiW+EdNR@vuiGCeogZ)_m zX*TT8YkKH~DB5{jI9Ma!ZA5c5TQ&3OTr1$VAE_rygFA6;{1I~Qd3X`P5G}Q5c7S-l z7<4tHne*?4WOi2ga=6&XE~?4Z5eTnmn^E3BkrjQ(Qt-XLtV$$Vx$4;8CtUOoU%jsJ zqoEn!ziOf&RaNOb#+2_z`677?5CJ&y+F)0e6{Vp_L&RGB~9R_?zmkfeN zEDj+E08a(=ps(YS0|oEZAo!y)yjEN$%J*lNonGXJ$8Y5C_%$=jj2~mlWb`e+!wzu{ z*5D5QKo@c@O`)E6G3Sm%eg7R`-W^AX?Y&ky<&VATaixBMK4qGA$wr4SFk8@8&y1p+ z4%5%P#(Ki@yLE0P`ZCA2ejC+XPGQ|LbWwyr^mO9BxmoswhD038SC<8X+uF|IweHIf ziJv*n97;hh)f7f4&a>R9Qq@?>-!$)n*V{LhzDAu`yx@WGQO7_YflI4LTe7$~uFEIwW>=YL*Y;DOP0;cm{$ z``6GAKUI6)GCP8oJI4gL_M=aO7S?weiXG$ot>5)o=d2%8&|E<$_0R97DHg%srGp^B zX28Kvi&ri#jjm&FlP}JaG7csLW}yn-zxg&<vfGTcWjmSwW;JVDTH?Dc7( zkB&C7i@yRi>GS>q>gm&O>_tjMuck{!ooac!GT2U0ne&c6z`F>N z6KrT?J;rW`;hp~IccjP~alvmU40xs6@!=u%A#Awv?`69Z7+}zRSf%|KX>&gC8w}WA zys`mMrc>k^@sN-ZZ>$jR%pDkqHpo1vgwo&K8S$V_9%9$FjwO zQ~lpLUpU}{AZ`^T?!c0Q{}3}rKfZwgP{oM<%>FXPob5Xa<)m8ZP*euOH&f+&^Ff|K0RHYT*lc+Xs94VThfMPewJTfqAcq?X~EVz91{j!{6Lb2ceO5w|IR zps*Nm5g8f%TrkLpD35=t+dU>y)&J$~d_1^%5a53}qZR&#&JOjFqKPX3uQul=Y+lM+ z{nl(V#3U_Kvw5nw_w_zKQ)K!8u#6wF+=m4U&ZZ2X6>Au+6PGt9nK>B*aAFmS`L{|pvB`uBW={d zz3_^KT&6u;@75U;r+Do6<(?Unfzdo5={H3uo|Nms-6gKM*bT2b(c~)p5LYaG1pdS1 zGJd(Sjl|#IAA(Elu!g>0VKz95CAM!S?LMax!+lC*88v%_+RY&Z^S02~_S528@Lu() zk8fIq2{nq!=Kuy3j51y|6v(MO%m6Q#FTaIdI`pGX%*Tb!-cD;q^!->)Ad5-COE)66 za}t(WS{c6V!vs)a-hu6;)7mCM&QA6ln3$*9ITh=lyF5Oc&hg`4c*T(e?A5q@mjP^H zaT1+VfSW;J#-jfEQ$pZvC;m_T;d+iUj)3Kl?)2hKvw!`_nfw!m6Jz9Lk%Nn0uF+Nu zn%|kdkNx4b#9jmI^vueH*;X)Bzr=hIVt|kRTJgqV8Pp| zHXbnvh%vE=F-kb@Y|v5#ePGgcT9B4zj^hq7jBe}$CMDmfKDOxW1hl=&b-f5a_JrM^ zrL!$lT1u)jscx(vjQG`kTa4Y^@thSJKaeM%LhTUNbsFGLtU(#?u2J)p^D{}5~VflAPu}}0EgH1>XA4o|-S=lO~W#~wa(#`n!KqDo$6LMgUAl-4- zx|A~W<*K$Xlie2$lTI~!v^|n8{dNu#w&yu_$uACILo=uFr7LGX47$g2>88j*c?Zw4XRPu<&)QT}ZLv#N77ethhVLvv)tPqDglQ_?$H z){@jLw9XA=nhTpqxSvQImH0#xvP^E5WcpT<23boGJjO$vkSAW% z>|*!zuG~%QI>y+#|2E$1C{(SmGv*7SWRgHEKYCucP=~CgV`SdfMlIptc;h&~5N^Qh z%+BHl2Wt95S)i9gW&Y>SjN99eQkfE7^gEZJpTU5m;}fs;4*7mAEChnLv*QJ(s-bLi z0~iMMw)Y-ATg#a4p&X`2g}czvN7Kj>zW3fUY}Cd%|3kQ$ZypFKK0la0YqcFeE~y*1|PZ3ZB}w==NyaH=Po`3;>srF zGd@9`v>3CI>=CsBjY!qt&Tu{lTZl0HF^1NUX#4^mBdFkR zJt-mr8L0jnw2$?U{F{)JpYoeGOfO%4;SVA;Gvf8Lrw=P>nP{?&vlei^{4iO`5RCD` z|Akd<){K^KuO}4@1gaLIkeB?W?gLws#2l?=GG^C!cZ}dS)&n-fc<2sV?zGO$jijJ{ z+E7rj*#kTp)J?!IqmWT`{eTeBE7Uuk_pVM|_KTFpwoR|ZkAfd9w^K<2 z1{W?ApM>~)nb1h=XcffTvsJj9^Q_XTH5YF^7@l9lOA$BvG< zHLVQ<$ngKfix;Lu4c=#}MF~V>^;0nvK7HH0cz5mgOP9*xx0l1ZBQk%vS7MhCxkuEc z51tyCMuMv%$+P7{&Ucyu!LeOGAI|TMNGbLDQs==01#ZhDl^uT(+LXxBIRoSFnZt-- zj)qB&_oT-yj>cW6>OKA2^F;@(r=c;mhW#Gi#wCvJ;23S~%?in%u(&cm)-9R- zaL2NPb&_)|ay+@dhJ zR$($TZ*zaV55{wKU2ih?wZZ6aL$OOXE@mz7eX$P17WtG<>8K>NeD|Ta_zxGi#8)P4 z%paZSwz-29=b!rA-rsv09Ml*XHxw=7=*N$Fh3Qj_S6EWkg&!l7`_5t5=B_OFCZPyL zuCfPH{IUw#nzQjH5{Qw3$K{}-uhncA-Qq(>RVErt2VRFw`#f^gQQ!$$htoWn&=8GX zFS+Y=XE3mjHo}fjZ)fzDsL?&vsOQ1o5N|Fd$P=@-06x)iK-Ew&UF-$4WaMnC!41EA z0Cy7@HCdGP%%|*0B5RgCbt)i4#hRupb^=rE6GC2;*cdVbiMc;}V?EY|JX?R36zvyx zOpk7Hr}Xg;&~=g@Np(IGNVEXFq1W=GrTN`7q1#@Z`sSNI=J8(BKvYypI7AXRBQNGC z^$%ePG)u{>gS}vf6)bNZ z`(qtf1?rh4xQ&IX-BE6WX6q-DNyy!ZJ|WiH=OR8v)Tz_K+c47vW+|WIK?OURsO&## zKD`ll8k!y8BgaAq#dTe5e=G~kkoV(tiY9C9H@`)kCAPo#CbmCS6Dmk8RW2FNkj*fx zIrRtEAETK5NJQf6M3js86abdA`o}Qyy4&KK&B9|*d4+hh>i9YHDDtF( zOo|P5HKU_*ll^>Wc1K=Om+6A(YOBjIrG=C5TmvbXiArSkQ}Nr|+^zCEM;#v4Wrnv% z{3>gk$GRQ#S4$56bqVgS%6I)6D`VJhostUMA9pFQC>~tt$b22>+c3rej^2vR12;A` zDfJ&}3^RZ8Iwn`I)uSr;{zn2u#Dyge?Ar6xo%QcYwHx_^!)pnn0Nyjy{P^4p3=1SI z>yr@FzudzRI+R_+GEXUJ`?}+}>f~{QomAG$w>KAeMCEUtVVD%fOHhJ{!U-%??)>=P zn#Epe*m1_^qQ>JV1_h{F)P&EygvtfV@8=KwxZElh5VCiy;CW76*;*y2g2ZbZGioWW zB-e8Y`!xlV-GK}6{%g`gLiT}xmI1bzMwb}jc`C(ZxYMD{;4T&-o;OX!FB$rE&v`|i{7H^NWlbx4hY^rES4LG!3`6JSZx>0B21h)6Z!k*^hR^rYJFsN`>VAkRzlGSL>s7V3s5rk3+2Hj!$=l3Jne&* zPBL>^(KhbkLj5)~fi=hMFzSJ-!Ej_5Jw*TTHho~tY?}!mn`zFlnaX1JdZXa|mJiBZ zF}ES}?rGGN#WAZT5`pS{FShw+n)Qp$;)>SwLb?6UEr!>eu^N)+WGvTMJo^hTG~ShI z)ojZhYV1Aj7P(JP`0bbF8*Oc&$B!S=Kl7lGF8fY9!%7*6o!bK*Z&gZ{WPV}QLTB`q zsqY?3N46kpu${Cb``R}9npOIG_tdiB@NZLVV}-eR3iclB)iO!dq7sds&5ibIM<(nR zg0YLSh{BfZ!2s)2>s{knFN{Nd++_O5c)+2l{e>kYb<2oOO^a9u3^Q;nH=&2penIZz;GU*naulUv=z=78rzcAj5m7hM;<04kiyV;E; zUtycs?zDE3iN30~lcev~e!o;M<_g5HgUp`^HW5*F&vSk;p2Hx`wZJGy$RO-3iU7=7 z$jkTBWUBs9M2=Rf*e;IEHSm!yTVz(0i2>k_M=A!6dHGQ=?q}7Os z!G(-_8-mc+{|r|D*A@g}`7~kaAfg~>>fo#0{>vZq ztZg_ssM=Aja<7C04TMxv>Ec6cU+%atY z!#+a+bn97_*L@qV!FF(AVf&cDIEWipz7KU}A5A>s0>l0~$8e2ElI*v*=J6rj4^Sga zbQzqPUJZ?JerNkR7xbirvcwop_j)&IN3nxY*xaVAgCxsaDgSLtmleUX1v3B z{Yo8GR+!Aer>mGytuH>xkQbQ zn^}D)jH*~@O7e2r`Hda~#-cw$WtmHnE?5i*hlw_d42C*QgT66VK@;K9DE5Z^;21BD zzZy16cuaMUS602=!J%blv&B7U=4Kyw3l^*1+NZnbWDza}0}v6YeE|(+i5XNC0K+hx zCDy9H9tafdUbiv?&8DM1n5Rq0ir7TQ$rLCNn0-=?J0WP(J`8Y%wJt3{ z`2n4;fZlxwI$@daZ}L8zYZcVH?;>jlggn@vsAkN0h^clb?!ZRsRK8wTg^gSdQSLq` ztr|QF*YhKS@RN;+-#6i%dQ2%fyd15`l67t!^Si{IA(Nm+g2351V$XiRMLRDqPiQ$C zrSkYDi>li4$@$sYYl%!rcyF**xpSZb+Nki0Kv{WLxP~OS*yoic!Ds=A^_KeU8MJ2f zkVqcd?y^+B1cdu1%hR> znK=47;BZxxH>2R6H03y9A=zuFO!D6-->`aAsI}GIOQC-8s}jzm1PUS!zx}?8(i)9V z8i874m74R}Dbc;)ngY=Cn7%~CVX`J`YzWA8dwSIKY1hAHZxx1XY%KBwMY*-QiFF%7 zW56kGJ%c-Mxe-9NQ(JC-oe-5DMSr$V?kRi43TlHt`MPXY4!Ns#&H4z1dZP(9Br%Mt znb9VZxcVVpDo_6r|>bJ2)~azz)Q^0n!xK9^t5BA-Bz;%-ZrFhra8S@x$yEH*sn)C}vh-_*7w`!Ni; zN(#09+P5&M%;fjyM4*lkT0~!*qxgSQau$5Y{mjMYPDg(*2kW_5F_#6iu6 zE(nQ1?2U5HzV>{9BHBZ>jAQruJfgUs;wBJXHak$7o;p9V^ph?WUZ@cvcNmR`5axM% z?3u9myH_U0F0^3G2RNAw#WpklI{kyKA8A2IysYcpsm}{r0Y>k_&HdS@h_#dgAKZni z7!6>F;bui`tufawB0$81*+m)S8kcHmTY-%DCQ35U9h9~X>+*uMuQm!*k8~b4G|!_? zmGn{-;%rmy{gc>yR1$C_+qnogbiyqs>wC^OxjSQi%}-wCWPRz$nQz{(#svXR`%6}6 z%>UpP5Je>egK;cds{`xC@+}e__j3c-)=fF(?7XY6wfg9oXQZNyH3>}Dn<@g!CJRb4 zdlk=f-+>|kIV5WHq-DlFFp}9i>}zugv`YNOhp5UD&jKAe?n41xINQ*QG)O@VYATxn zYgSm9iKc!=Sq4e`$&zw{3>3o;uSU}&hIDc^!xa^83Jb@xS8n6t;8+b*4!TkOdYAyb zfS1K2(?pZ|y_%RGkMGc;qX->8(fLet@+KZQnZ4h4I6pAPb;^?ts(Uyjlqa(5L@fH>Bj)U)AS}M90_GL;Asx%dzRa?&xs%B zf5kyr=vdVfoXH(BSih~Mr9Flnqg)PQ=vq#-7B(a*6k(HnC5lt?QS$1Krz7;)kwz0} z1?_Ff|Jj>&Chg7ZrhK=;Sm74~$kb|e5l~ErukZ8_2cmCzjeFXVtBjHDmQw@&bkD{0 zXJF~}O$|sZ-$H&i9`jOjj@dI3@ANY9WsEl`3*2zilxAg z@qtHS%Hj;K2Cg7o+j+iM<`fRY5@qJmBusDTOo%lkxW9=0^Meom{evSTBW0y`7qH67 zx>8f=tr1^mV1gp`(cdB-rD8j?vWnanT~zBftdf{tP>+M@VL|jrWC{eoS$_Yf zB^50V+TT7BW8Ffg9u0Aj2QW%+1i&u>9-PmW>X?K1|JFA+sH~w8-Bk^~AJkV%D4>$@ zMSG3=9!7yL3+8)hi&2hK7#oBQgGd{kjP|~PQp6Hfq!w~;b$lz}52ix4_J!iRGO{mB zj5>ZBB4Wg%cO0ls|I#f_`T4PBPu9I53-a~5GY7d1EKb+m2w#h1p$hEPu7(mNkK$Ni zq^-iT4|sX$pNDom@V|P1iG_s$CsMKWl+{K(L6M1})IlYDNKFE$xK+ri!6EGCAf&x)Cot~uORXeF3>4T?chRNO&j7iA_s3Bsyzii z6ciDQ7bDU-q1OJ(Sob#rN7c@?YZCHBFyih^3@(}fg?q5}juXFKW{6uDNgBpY4fo_m1aJd1QNYd)>B5XCw|ad{H3= z%6w|7c_C+Td=a&?#c5Z5GSS57YiW5CEmdgz`j)HA9B8@K`r)Clj|TSLd)4C0HhBVG z$#tergYIY4n4gaQH2CJhoSAVc0&t$9Jq{Xbn?5^cfy|${V*Ppid(T_9dO2;rFdCp8 zB92K|t2e}A2#>?fHpRN{t#+uY1K9~$lp$q%l{pj1EDm2vWj-E2z;edga(ko(5>|;ymSF8-YnEOQwf>G?+?1~|ndy!!UpZ=p3;IU86yB9KG zY9LX9Th@&8pN?CS3WipPh>_!(r z`NThxf}8*}G&?)cbWT+AFX4Hw#x*@NV3CsWe$G4zN4avwS)NKmnj^;PP#Tt zQEiX)rKo7DJ}Xe$#02LT&Y}AW!Hr&xo}CdcT2V{GAaftUNE)Adre8J|)?&yW{?>k9 zkvv5!0wc+&&dc>1$MvoD!$Y%OKq_Q(tJyBjyvYEZ$8P18?bk0;RG4}36w8YTHP@Qw zYImRh-~8pK+o`FjETs%04qX+=3JTm}V@W~LI`~^U#vvdOD$G{7TXE7-^sY$DAG)bm|Fusf{{~<~u`Z$xFaJ?qSkAUSkiXv=LYnO`A}7&&hgU z>9G7a&)N_^y`Od@cSvtuDjSx79n*!h4z>iL#FGyMFHh?EG~oklj>BBztXpbu;AW#$ zW>*0Vfu9p?Q&OjcBeqpP0e??nq3u+*In50xfHu(x0W$wlw2KM(`uf&0Yf-)%QgtAeV=_N>XgKgr8eb`N=WSAlQK^X2|qn10M~%nL@K0CIh70w5pz-!jMK>Z+tMph``Lp!g+G7( z3=I!sfD&xAPn3@fse$3jS)&A&?1xQd*L~21s{@GetGdRx%I$D;2>Af^;+Vb&Z1^x9 z`r3!HZu2VxG62;PY;<-_cqW`%4t~;tyAs^bVD}=~RkZ^tv~Q(9XyQ(s+_}gI{L{L- zb2E|*5;&(Q!NoUkfd7l!=yx{>d*A(GMw4A!J~3NXneo379BcN;R7nOPsMgHadXzqW z5g=|*Fq<&2t^b|6V7A>OFx2$!&CR_UNv)1r-X= zW%siz2EKT;PZ6=PVRG4UFj3;-;`2K@q@i+wYio8YpB_`&b*qK=GyUD{x4sLKNN$0{ z4x(<(OP1@0>uYN=%F1|PX6st*!Gi`?R=CtKEn|SRrKHe#&H%LrqV&PUQU*B}%6HKs z(~mnr@bVUS!KVV@^akWRzpJJ2C~1UDD7CoASD2DBwcRAb(CQQyqoUycg-dz`8r1+AD0xVzkyegYK+I6!yI4PcX6HB&G5vGO;Q6C_xzAu8mbU3X{JglUWhHB-H_#Ukzi53`MDqTu8Ptt)_&3k8ks=)+{q&DlWRG%*wr9lf>WV3Bq0$&9+Z z#i%pK;L`IYLp$rZyZ`dU-QHqC(v4gGB=PXI(!#Nz-B073j&KJ$!#PH-iPBnf1{Ya- zGtWeA15YFET|kfxiJTeC`8{Xpm@K7 zHm2HjujZ)lKYI);O5O38(Zc3tRHUPBG%zHDLVZIxI^fBb@f^yaXBzY9=qP%71n_}<)^cD@jKXiq%@DNU)0sC| zf?0BRzYkz2@R+gSfqA8*w&mKWsczk?!EjDd97AVGXO43W`0D9)qC@7xMD`xB^v+>C z#=24=8s9q!7ztPSC4>26Yr&8r2UMuo{z*PpKCCU#N$Bxw&3e2fA-Fe(r(+(g0f7(-G@pRb3l3yLuGoQ^j?Ik?mzD1{ z)O3~OJ!Brxl$0zcMJsLupMGgpY3UUh+(oz$94iA5B1LY4vFZoRU#LUMrU8Xs1q=Z|&Q)cw3rG@v1R( z@BWRXD{|9WPmOl1D_plG4`f$DvyC)}eD#r_JUG#Qx#JCAgJTU~lEuj7Ck`5!(dFf( zAy)s1gYrmFWarlA*a^ETq7rRRT3cm6tHxJtk4kK&pmTmS5}U4&o3tp=`fOJIxuQY` z7y~f*b@3`tE&DJA1_o&n1_3_)e3&$r1N2^n6Q7uv+Boi?Y#B-$PJI=2YXZ)kWfy|T zp#bpXiaG{gTSV?p9U`F7V2yo6=_3gau2r0gZK$H6p@s+@HFY#ya#Ne8%Bl)?r_xgB zb7wYQ-qa~2n_IL|L+VPt$LFGX13p1hdjF!it@;S(CBpYzBfEv4cy7Lazjjgj7xlTI zkMdwlon^iGp6$-2kul6z}?1rZd*e8!#N!`I6K`L_}Qf&At3)h(0jElG`w% zVr3=!_$VAWJ$hnX^dvYhv|Jq!0YIvd5tA|<6&8jI9vv$PO^k(uc0FK>lk^9$ovH0U zy2$h=3j0me+pgO|rD7MY(WThoBbeU(c|x8$bn_#@jQiAj!;a zNwjUc_4@9$JxSAFo$JSG1F#yyoTra3&h>{M{!iO?;z=aF{}WA41{Ml1WA?vVk-P%C zjDa*%RKe|9mDq^j-sEebt4@pZ?Z7GxkJXuI_<_V9g9lN$^VOA(=)ZOsz5K=q*7BX& zry#oAgX6vyYp|!Dc7_a;+ySrxn3cAvDJh&Jf}fv%@8AHF?fMnIrcNT)+K1(V{(d5G z7VKJCeQPc+FAo3~f33hVEDD%ue|T=j2A+1@uZ(8W80|K^V)~14fDCSYEOl>O@R9YFrAyG745B<)cPfkt_fsBszq%J8dj>2m!Ow0#wI;#Um zP}KhET|axU;OhRJrC7h77o&|cn)@SH{H+7(SW#yYNR2TJDklBIfF~o?s$eH0XiH1Z z!ZN@w3&As}=mc*C11bIk=GrBai>Ta~ISew=`{^R9ostnr!>nm!L9-=}m;KCPQ z20||1U}HV_*>j0fP?#|ty->L!XM=L!K2Jyg!$Yj6A7%5`KI(5FzhFE$8sMY1>cGwB zX{!tsu;PEJH>Gl5(WKTufA)M^)^E|_{eA-TXb{(4|DUCI(bF_Yv@w8fl( zZoz$u2*Z__x>|s-AfW2nNdLvql>J!b*e?sqf=9jzw$7x@NT=@;Xzz#)M*I_ym|&!+ zU}y9-G3hq!Ofn@mVKQ%MC^j;D&0r6&dv=H&iYSR+K0Oe$zCM0MzSv3u`bYHa=E z7U1$Q$yq7kodTHd)y?-E9UY;Gx@R{SywY>H)xqN2ad5#NXhsc;)pU<~!Pz*e^$3IJHb{O*i4mHcS8K zP|(1$4-zR$2k8o+aELLAVcRB_zx1nF5V z-IjEv#XXBPRC3ft>u}eS_Rhok&BK;Nhf31`d*lyJB^5uTwV{aB78m~md9RBoj)cHc zIl;c~-@jhwjo=L49gkA09R%r8wtH4Z^3J{5{%lrbXumu!v z27~911CSQ2#G$6HPQk(gfE@<#&;ZyuJ$GSm!2STpR)2v`?)=IMPH-Fa@zLtuA0kU- zz}=tTrjeAC9QySuh)K*T!ZN&ax25v9#L@LW>PeU&mKuoc>9;lPi2xHj$bX>{1W+u5 zQI0PMU|))$8SSzKK)yyN;L)mWQ&Slk@8e*Xr4twtoLErpb25PLhek$10F7%q{^*DL zSmNBz0&w(mFDp+v`q0IfpbeR;Y(CG~B@JO$`LF-R*jq=n6?AW-!JQz*y=b906qiEL zwzw3BLUD(dA|bd-p;)1~7K*zDX$ytoP`tRi2MEbMyzlS(?z(r~Z>{@B);h_VGnunz z&z@&Lvu96pNn_)5!O-)VboL{=fE^|No7Uhe`f3YSWu4 zuIA<*gkJJg5=T1i;ISYy{~IarW^7T5a{!@$anIOTS}=1Clubcn-sQo)x|Hb@^t37K z*tJ!>lOOeY_F9Z?UL}Dr6}(|;c={g#5jP4Y#|9*e>CQ+t9)Tj|YYR&-I%t z#K)tj>)Y$0D|zw)w!#|kazPuOU*TIO9gVWtlYZx$A{-wt?Bf{d!WTG~@G8v{nW4}P z^VS%t<4h6DtUzg>v{oPoHg_r+;CdOJpPjA)i(q}@g)J@L#AyFCBrnjp&aO_CS zgIO*_|03#zq9R60PR@X&ho{zUzyP=TEC`*s|H+GG|Wd6r3l zD)wLCd<0NYPN#BGQh1&zGMANpwi97$prCrH5o76x+eN@J%Hn0x`Z9a_#_tC@GkN?- zh%X4jy7a-7=KB}SZ>dp4?*mhZHiB|K2vpk|QRa|sw?y(oKL{YWp{k15S_ zI~S6`O8h#jjpYMhlTh?qP26Xd{wUL(YQ#(&r_!9K+*b3$r{!sNQM(~C@}u6`$$re{ zzPan=IbgejX%A{2l{13a%JEP7mpK7blI+BKW@j+H#En@00(4 zw)O`G_Hd<)^FO+8a*?u<^9!pKJBdZh(os@mM=2W{U#${yCBoBDJeAAODpCGzyQ2g- zK87F5+ILH#2tk9cCi=<1YyU;a@lp$Xa|Z3bVMzpioq{Z<1N9u5ue)qNsJ+wg~z zCTqb0SuHXrf21^$xSeq_Uidorc`%1?QF$Wr*02O=E6ki^c{K@@xA7K{RYQ?5%-eEd zpbztRHvMs7mb~8tPO;w~oB6A{G)0S$IAnih(HbHng~SpdL@3*ztSz{`EE3pvEO)Xg zo~a%>0ODSOy;#6*MZmLG&(J>Jil&6{bfn}g2A<7T7gG4CYFmpCtPrr{Z`c6-@Cl!NIPB`yK!%)#HacpY6wvC}%v;(Q5z3Fd`9Y1B zja+>E%6S&dYrlTxZ}{QG48>xBgFM#P@@Dq)ou>0ky0Fzge_mNX4F1J|k&rDLArF%W z28b4SYC$9VRP)}KFNqo|)}Mn3#9Ix$TK|H&J(jdKD&<^F>Fr_@n{lon5Y-gSC;$T? zmM6SFOZXzhT@9u!y=Uzg0}atV>*|y4*Aq{!FMl>HqZsWHp@~j_uA8{R7{K>e+5t6t z4Ddw!-lbXqcPGknOC-IgZ`7ZrreTaYZPpa=y@6k~W91d^mfUQdu9Fp@29BWw0)%P2 zM!mbxdK8E;OPJ2$=wGPBx6zYJ!R^-Vn*CfU_-$Nz;&I-dncH8ztjaUENbo5ZU0mnpJZ{it;{uxF0R?O5~pJ%t2p)H~V0$*=DQmrybYKNhg>p4kURjWC)qz!06j$5~vOJx{fCN>YzA>wm#D3%%^fbj(jC zvD-gC1kgCQ61jp+jcN$!O#^mxD(30uTuVHj9?d}R2eyrffflPi7!wA9fj|c)VxSH4 z;mw3-Iw~B{;(|C{i~=SG83H7~`Aq=`^rXVXxJPe=>gRA{!m;FM%GVFbS#c|*^>K+# z>v2P5|1paD@~K?7k_P(pr?iu`&1sn%@qZK}0jO4nzB!awRk~ngLI6gkd2H6^v_KxgCVW2_DzlN{^WbP>t#!ztFMy^!MK6`#c zWiL$4V(2HoyH5n`mVX63A&sMD_*-ZO)c&4c@+^KT4Oy>w&-uzv2H=>Ie0IsIC{mf< zBkSSYO@}QqtHdwj<3kdw`KQbs1MUySWOlPu;)&}k!a24V=ROF;ne-O5vmf)D{MwnH zXGv8TU|A)`yuIn3wN+4hC&~ypXoid2vvxFXnQ4>f`J{LKLOeNC3b@}iq^2Rm3^$F) zyj3sgA&${@^ctmh#36&&w~y4C~@?uH6;fVDD#T2^py=@3BF^Z~G=w;JUy zIaxAUc%w{FA`J(fpNHqN<!nc3u%N-5UJ)(W!44t{YwquN@4xq! z$R!8>EK}a(ev7twAou>H^DyEN$70&m{8i9X43^p+ zQZr`6{x(k6#F@@>6Xr5h`@%XtlAo7v>KOI5bh{8N8+H5)$b{3GM&m-3td((-v3nkxTYCPB6bQe7?qz?+2EU{xhIFg{4Cd}TNiZG=2~3( zxQJoBR~g>T64FABV~rBW{C+vn*9HoY4ZHWNeh>VXOpxnVvKT|n(N5iDnuQCkaN{&Ohsl1w}t&{ zrzv{J)AK@O)%(LBxs?Own z`XuH6io%WG@yIv_&{T#RIY)j`$B#9lfEr-d2Kqq7!S@N!B_u0UK~ZD4ADF856=%vr z&8t;h6nT3U`&uozL;%R{6L0Ip2VY`R*YrTI;`OeSoO(9pnOl0l6)5tIriGG>B_G-R zLmwfx863%WyOkBUIBIb=>|b#@b%fF4y9yZkGqCC#IK8a-EjQ8)6*wR%d2*2Dme

    JmH&3vqAyD!9`fB0F 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%0DNU&9N7DkV#tjELh>3a_@k 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

    ;rFl` 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%0D->Y6P%!?TL74~GLaqp$5 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 PKtMTp^o(7V4L2B$628Nmc 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 diff --git a/icons/mob/inhands/equipment/gear_handle_lefthand.dmi b/icons/mob/inhands/equipment/gear_handle_lefthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..169f91ce6eba90272a60d8bd835fa0bd9ffa7c0d GIT binary patch literal 2222 zcmZ`*do$SdvRFn@fm7FDALO#HfXcTxQEF zVs2r%=Jul8rZB>IcYf!0&hL-+{LXnU=RD_mp7T7P=Q+=L;w{XL4?rX#000~?xngvk zrz3dm0v6=Sfsharo_ZE?!{&jJhrio>uX_)?@V)>LoJ~q>gnU#zf}R^K-n`@4l1H_D zd0DNBeXvdAgN6L4z!N;Xhru{m8!kj^_VPPU^)*21gj9+@bhml1&Hv)Efmyj$UYkOC z#yq5GtG)bASdzLiN!mtA4OK;-x-$D}w`<|sCARpac37IP{UlS;nRt^%8h<0++)tK) zHS!IuVXm%h*b@LiXvo9}bt5=?DF<^$`YWszX?4c!J0t4c>9V7TS`G)uA=eZy6oN|a5x37o&j^2*%i9F-8jCj-VsLJA0-R^7fEBXn`uB6 zsaMm3y^uR-IvRj(d9O%S!9MI<=}4Xu@A0lve4jn_AuBTcEZOJGIn^Yw7Js-Kd~h%> zwKRD7^e}Rs_4s-X`u6XcRzGuJ&8ECvGM?#KJYGD_P>>kG4D9Tz-7|IcMz-MII=BXe z$5($j@l}tiaJS0l?9xx}6L?!We!TuG;pT=$Qn(gH?S;h7MqUm>ACqZydn*^m4%;WKvV4j|Z+CpyTd80_da2r! z#q+EzU-9Z|@87jOyHrs}dsL@UScRNlN8Jv2vJ4xxoZD*z(>uCr1kjO)7#U!5=?d}Y z@v?=h`s<^$YQwMeHaP*y1cG8pqi(q2JX~UTI8B=q!g&g+4XTrf*xhvottW!8Y&e%3 zPBx~iLM!Dg<@G-_2-kiZLyRpTI;Ho~eRc-ci|9nQ;vU~bG~QWMrM_%IjF(M_^E8(x zH!u*OoDMrZ42AU!e?pgY568Z5N|*5#I}GSl)^rrnceh1lti#{ms#1jc*f;i}3M|&7 z#yJ=Vv1)MtIo&!sX-*t>qQ+R@9_$^f&Uz-F2Zr6*CCfn-bS9{wyCjLF%Y)AJLJ9LL z=C((b*$>wZUiBXreqT*KFa6-IJBQl`nz#@l_dTwfbr(6LfIR?gH?#A^#X;NSh`pR9 zXb&#pc^>{}GG;6^exr+MT|F>L+|0=8*n8cRRq9~<7Z1Z5+VhoA`2oN6 zPip)=@TY5pnExy_n?L7MC;~Vi-41$wT{(dS>7Yvp?@y5~u?@Y3^Ry5`k+jyD@YgOj zW$pW@5&Y^rl9IWjrNkC>xy6X}V@jI`OeaV7*;BOKCfpmj-JFEHr@mo*=Tjrp+L%4O zAdmcjA!K0j3cn8Q^Zb^Wp(9c_jnxN#Ii=(bC5iBtzMPdNuR2j(<9#QjC`W)N=xB+v zM=R+PEbZxh+M-m#YmpE{p7k6So2fSA0PVG-q-6RJ=b+k|)``F?L0A-7KLhHFC(pA} zpDxSUw#x12RUyTi^9?rKRkVJag7=!dz-}<46~zz}lhjD&ap|xDBz|snesSpC#n<4% zr8XU3g+a2uEa06;%Y~S$x&DymVF1(>)H#J~lZR);}M6m~#rFa(~Ota8WC5znB2(;Qysbiq*Jb(s990iN$Vt=?+`6X7xRn3K6Un zOfrIcPBOpdOSWRHKe{={u2lh?3+>I8EX;}H%J%R*Ta~=0iFTVgDS(2e>AgSnj+Scf zh&|YNhzD_;8gU6o!qaK|W!qlO^ zAs^lx=_W9`n|_zxtv6|Kp4I!@->APocQH5D|DzS9U&RMXQDm!VA}Bc(@?MmoB*o)` zX+jVWT9?ME=DFqw+vnF!XY^w{R*pdQGDY@%CNoG+ zC0of@##XBr@8_O#&*z_eKj+;05P8)~0(=q-0DuI-8t%Yj z951{@gm`&0Apyao#|e(87lF>+)UR306;hi0f#xp7q8;&g5(2aKO`$#@?CU{6eY;fVHv*Z>6vUrHUEsW|2+Ki zfe2{YX$59t{a^u!JjxzU**a_j*KSZmAs+v6_h`=P^i-;cj9(Qj>g>B-PCB_Nd8v_Q| zk^9q~&mMlw&ku9gNRcn?JUCrfdPm0rYbJki1wzCK1x*9%lim&W^NFUv(4WvF_yZrj zuTSEcvQw+X3{?fw-Yq$nx=gFP1hWw}{-aHJFz4k8>Upr@&t<^tHsw=Nr+XTid+S9Q zsC`9xbQg%z>nz&PG0j1KUZ%-kO#a;HN%4p9*wu6PX5yLedgGz{zCIaC14oJOC544r zrwep-S%SQJX~3~xBTZ^V26lTmXwg1`u)~?q@iKiI6)z_%e}e(xQZMWWFPiSI>v$El zX$}C|Q*A>=ZK!cyOp+X~V(?EuT!IYjSb?TFvClVWO8Dn~yi<^%{ha&>+G5+=M+dN@ z)Y(+_#*0-Zwc^AFNzxJXNLt*qh_<$2_1<2VfG3vo>J`Y4yX)oNsl(XA9#klek)g~2 z=%c1@n5kPq4ehQip-DB{?BXYynmhqdx3XNej^oY*$S&^WsrdJvp0M6N!uaR zbU|F#l6mRKcC#31+c|_&>n1SS^OD3^)9AH2+~?k0eN0S!hCDA{{=7VyyWNw$tbM@o z$(p`?b?n(>-KJh7Z-MDdM{g>Yw+9(9xBnQh8m@o{NgZsFMq9=zu_$adF9g8pR{o-w zVU3F!ezsCfOU4kT+;aPN^qQPo!f@W=!!o5PB0X!kXW3a-x0V&L$^DmSn3X8b>J-)n zvn=z$^&On1`cYFsVxKO4Fex-TNeSUMk5*|hV|HL}eV1D1O|C-jfW{x_F&0fUF&_YM z%*3!43c?Dj#B&b7)7UK9#%Q0;i8Wg4*l+PN0njqmpIfrGrFMDG1U#=-8gE~-DZp#E zz#gGSg9sz#xw=zr_IEEHqzWXtIXr6O4w*bdycu|RI?-MR<0p1=)arm}>00)6>J z)>bE%RKO2L{qRwE_48p{s8^0KJHd(pR6f)(P_93rj?bCDSnAMmSr~LPb!~NhiJ@O} z3Q+NRgi&$s?whLp~^d{98;Nqd4Ga%oq|OhB;0_IP3XNnlHw)*4XX28qa_h6ppHOh@Gz|4{TG z^(Mgo)}z1eTUM!cg6r%W*Hj#h*spUJb3(fU@%RWEysDpCoaVLsszuw1bOE_OXrgF} zwch4|5TW~8bv5!>-NT|gIgEAAQs)ZZn^g4dJ^2dDgB6*M* zV-)@HeqVu2?VJPKObKdC&vZ3oTwY!~GDym|$ zkXHz^=P_Cl8mq-;_iNv^q06T0i~rrZ??!5_G|6LVHW;V#RnN88^QM(@SKh>Ds@nR_ zquGrfKl|OR)Ysw%o*%v$Yt=b?nG3O_Sk`IvpWj^9VkPUHEK+}iUcBze=l!A^czt6K zwr?D%@0ulj#07~)s+=(*j#zameq~=TebTvW)EhO4CukImJXd+**lK~cjMxl)ElmR5 j8z#IrA^q>}S-7#ZnnV~Zcva=^?*Twuz6!6k@J{&)|0@n2 literal 0 HcmV?d00001 diff --git a/icons/obj/item/gear_packs.dmi b/icons/obj/item/gear_packs.dmi new file mode 100644 index 0000000000000000000000000000000000000000..76fb94bd4ff34adcfce99fc84629a461fc7727b9 GIT binary patch literal 3311 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 P3N(P!yr)s5ZWj12i6ZvA delta 2594 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
    Release notes

    Sourced from axios's releases.

    Release v1.7.4

    Release notes:

    Bug Fixes

    Contributors to this release

    Release v1.7.3

    Release notes:

    Bug Fixes

    • adapter: fix progress event emitting; (#6518) (e3c76fc)
    • fetch: fix withCredentials request config (#6505) (85d4d0e)
    • xhr: return original config on errors from XHR adapter (#6515) (8966ee7)

    Contributors to this release

    Release v1.7.2

    Release notes:

    Bug Fixes

    Contributors to this release

    Release v1.7.1

    Release notes:

    Bug Fixes

    • fetch: fixed ReferenceError issue when TextEncoder is not available in the environment; (#6410) (733f15f)

    Contributors to this release

    Release v1.7.0

    Release notes:

    Features

    ... (truncated)

    Changelog

    Sourced from axios's changelog.

    1.7.4 (2024-08-13)

    Bug Fixes

    Contributors to this release

    1.7.3 (2024-08-01)

    Bug Fixes

    • adapter: fix progress event emitting; (#6518) (e3c76fc)
    • fetch: fix withCredentials request config (#6505) (85d4d0e)
    • xhr: return original config on errors from XHR adapter (#6515) (8966ee7)

    Contributors to this release

    1.7.2 (2024-05-21)

    Bug Fixes

    Contributors to this release

    1.7.1 (2024-05-20)

    Bug Fixes

    • fetch: fixed ReferenceError issue when TextEncoder is not available in the environment; (#6410) (733f15f)

    Contributors to this release

    ... (truncated)

    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axios&package-manager=npm_and_yarn&previous-version=1.6.1&new-version=1.7.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/shiptest-ss13/Shiptest/network/alerts).
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tgui/packages/tgui-dev-server/package.json | 2 +- tgui/yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tgui/packages/tgui-dev-server/package.json b/tgui/packages/tgui-dev-server/package.json index a026558a47a1..1a0f4c972244 100644 --- a/tgui/packages/tgui-dev-server/package.json +++ b/tgui/packages/tgui-dev-server/package.json @@ -4,7 +4,7 @@ "version": "4.3.1", "type": "module", "dependencies": { - "axios": "^1.6.0", + "axios": "^1.7.4", "glob": "^7.1.7", "source-map": "^0.7.3", "stacktrace-parser": "^0.1.10", diff --git a/tgui/yarn.lock b/tgui/yarn.lock index bdf58e167804..6bb17b2fc675 100644 --- a/tgui/yarn.lock +++ b/tgui/yarn.lock @@ -2951,14 +2951,14 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.6.0": - version: 1.6.1 - resolution: "axios@npm:1.6.1" +"axios@npm:^1.7.4": + version: 1.7.5 + resolution: "axios@npm:1.7.5" dependencies: - follow-redirects: ^1.15.0 + follow-redirects: ^1.15.6 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 573f03f59b7487d54551b16f5e155d1d130ad4864ed32d1da93d522b78a57123b34e3bde37f822a65ee297e79f1db840f9ad6514addff50d3cbf5caeed39e8dc + checksum: 2859fe01437cf133eee35571abc1d4b5224bb13e530e66cb3581ca226e170541dd5eef9f46abb41592cee0a2f54930c9e4978354e0cf1064748fc20d9a05e9d5 languageName: node linkType: hard @@ -4814,13 +4814,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.0": - version: 1.15.4 - resolution: "follow-redirects@npm:1.15.4" +"follow-redirects@npm:^1.15.6": + version: 1.15.6 + resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: debug: optional: true - checksum: e178d1deff8b23d5d24ec3f7a94cde6e47d74d0dc649c35fc9857041267c12ec5d44650a0c5597ef83056ada9ea6ca0c30e7c4f97dbf07d035086be9e6a5b7b6 + checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 languageName: node linkType: hard @@ -8940,7 +8940,7 @@ resolve@^2.0.0-next.3: version: 0.0.0-use.local resolution: "tgui-dev-server@workspace:packages/tgui-dev-server" dependencies: - axios: ^1.6.0 + axios: ^1.7.4 glob: ^7.1.7 source-map: ^0.7.3 stacktrace-parser: ^0.1.10 From 588a191d891c889253d94c09e2e3ea260700803f Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:56:09 -0400 Subject: [PATCH 104/125] Nanotrasen Turrets (#3451) ## About The Pull Request Adds Nanotrasen ship turrets. Nanotrasen ship turrets are higher rof, higher range, less damage, somewhat slower projectiles (not a major amount, but still slower). The only turret mapped in currently is the /light turret, on the Meta and Delta. A medium turret, heavy turret, and pulse turret are also defined for mapper usage. Note: They will not actually be higher ROF until #3407 is resolved. ## Why It's Good For The Game Continud turretification. ## Changelog :cl: add: Sharplite has produced a line of turrets for Nanotrasen, which is now mounting them on relevant vessels. /:cl: --- .../shuttles/nanotrasen/nanotrasen_delta.dmm | 18 ++++---- _maps/shuttles/nanotrasen/nanotrasen_meta.dmm | 42 +++++++++++-------- .../machinery/porta_turret/portable_turret.dm | 38 +++++++++++++++++ code/modules/projectiles/projectile/beams.dm | 23 ++++++++++ 4 files changed, 94 insertions(+), 27 deletions(-) diff --git a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm index 00967afb927e..351e8e2df037 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm @@ -1371,9 +1371,9 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "jH" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 9; - id = "delta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "delta_grid"; + dir = 9 }, /turf/closed/wall/mineral/titanium, /area/ship/bridge) @@ -2891,9 +2891,9 @@ /turf/open/floor/plasteel/white, /area/ship/science/robotics) "WG" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 4; - id = "delta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "delta_grid"; + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/ship/bridge) @@ -3018,9 +3018,9 @@ /turf/open/floor/plasteel/white, /area/ship/science/robotics) "YZ" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 10; - id = "delta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "delta_grid"; + dir = 10 }, /turf/closed/wall/mineral/titanium, /area/ship/bridge) diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm index eaf4abc2b9b3..95b61c204b54 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm @@ -1680,9 +1680,10 @@ /turf/open/floor/plating, /area/ship/cargo) "jo" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 4; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/ship/crew) @@ -2206,9 +2207,10 @@ /turf/open/floor/plasteel/dark, /area/ship/cargo) "uT" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 4; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/ship/crew/canteen/kitchen) @@ -2399,9 +2401,10 @@ /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) "yF" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 1; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 5 }, /turf/closed/wall/mineral/titanium, /area/ship/engineering) @@ -3079,9 +3082,10 @@ /turf/open/floor/plating, /area/ship/engineering) "Lo" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 2; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 6 }, /turf/closed/wall/mineral/titanium, /area/ship/engineering) @@ -3480,16 +3484,18 @@ /turf/open/floor/plasteel/dark, /area/ship/cargo) "TR" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 2; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 10 }, /turf/closed/wall/mineral/titanium, /area/ship/crew/canteen) "TV" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 1; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 9 }, /turf/closed/wall/mineral/titanium, /area/ship/crew) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 663df697f01c..5c592c7409dd 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -842,6 +842,44 @@ DEFINE_BITFIELD(turret_flags, list( stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' desc = "A ballistic machine gun auto-turret." +//high rof, range, faster projectile speed +/* 'Nanotrasen' turrets */ + +/obj/machinery/porta_turret/ship/nt + name = "Sharplite Defense Turret" + desc = "A cheap and effective turret designed by Sharplite and purchased and installed on most Nanotrasen Vessels." + faction = list(FACTION_PLAYER_NANOTRASEN, "turret") + icon_state = "standard_lethal" + base_icon_state = "standard" + stun_projectile = /obj/projectile/beam/disabler/sharplite + lethal_projectile = /obj/projectile/beam/laser/sharplite + lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg' + stun_projectile_sound = 'sound/weapons/taser2.ogg' + shot_delay = 10 + scan_range = 10 + +/obj/machinery/porta_turret/ship/nt/light + name = "Sharplite LDS" + desc = "A cheap and effective 'defensive system' designed by Sharplite for installation on Nanotrasen vessels." + stun_projectile = /obj/projectile/beam/disabler/weak/sharplite + lethal_projectile = /obj/projectile/beam/laser/light/sharplite + lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg' + stun_projectile_sound = 'sound/weapons/taser2.ogg' + + +/obj/machinery/porta_turret/ship/nt/heavy + name = "Sharplite Defense Cannon" + desc = "A heavy laser mounting designed by Sharplite for usage on Nanotrasen vessels." + lethal_projectile = /obj/projectile/beam/laser/heavylaser/sharplite + lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + +/obj/machinery/porta_turret/ship/nt/pulse + name = "Sharplite Pulse Cannon" + desc = "A pulse cannon mounting designed by Sharplite. Not sold to any purchasers and exclusively used on Nanotrasen Vessels." + lethal_projectile = /obj/projectile/beam/pulse/sharplite_turret + lethal_projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg' + + /* Syndicate Turrets */ diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index c46a4c6cb2f9..b95c3dd37ddb 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -37,6 +37,15 @@ muzzle_type = /obj/effect/projectile/muzzle/laser impact_type = /obj/effect/projectile/impact/laser +/obj/projectile/beam/laser/sharplite + speed = 0.4 + +/obj/projectile/beam/laser/light + damage = 15 + +/obj/projectile/beam/laser/light/sharplite + speed = 0.4 + /obj/projectile/beam/laser/eoehoma damage = 25 armour_penetration = -10 @@ -54,6 +63,9 @@ muzzle_type = /obj/effect/projectile/muzzle/heavy_laser impact_type = /obj/effect/projectile/impact/heavy_laser +/obj/projectile/beam/laser/heavylaser/sharplite + speed = 0.4 + /obj/projectile/beam/laser/on_hit(atom/target, blocked = FALSE) . = ..() if(iscarbon(target)) @@ -119,9 +131,15 @@ muzzle_type = /obj/effect/projectile/muzzle/disabler impact_type = /obj/effect/projectile/impact/disabler +/obj/projectile/beam/disabler/sharplite + speed = 0.4 + /obj/projectile/beam/disabler/weak damage = 15 +/obj/projectile/beam/disabler/weak/sharplite + speed = 0.4 + /obj/projectile/beam/disabler/weak/negative_ap armour_penetration = -30 range = 9 @@ -148,6 +166,11 @@ return targets_turf.IgniteTurf(rand(8,22), "blue") +/obj/projectile/beam/pulse/sharplite_turret + wall_damage_flags = null + wall_damage_override = 0 + speed = 0.4 + /obj/projectile/beam/pulse/shotgun damage = 40 From b0098229bebb1a36b589347cd69c23b86868b5ae Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 00:10:21 -0500 Subject: [PATCH 105/125] Automatic changelog generation for PR #3451 [ci skip] --- html/changelogs/AutoChangeLog-pr-3451.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3451.yml diff --git a/html/changelogs/AutoChangeLog-pr-3451.yml b/html/changelogs/AutoChangeLog-pr-3451.yml new file mode 100644 index 000000000000..a09e9e0324b7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3451.yml @@ -0,0 +1,5 @@ +author: Bjarl +changes: + - {rscadd: 'Sharplite has produced a line of turrets for Nanotrasen, which is now + mounting them on relevant vessels.'} +delete-after: true From 5f9d09f7c5592a510a6f4f906e3cce15044363a5 Mon Sep 17 00:00:00 2001 From: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> Date: Sat, 5 Oct 2024 21:15:32 +0200 Subject: [PATCH 106/125] Komodo FO is now an officer. (#3449) ## About The Pull Request Title plus puts them at the top of the list. ## Why It's Good For The Game FOs are officers and at the top of the list. ## Changelog :cl: fix: Komodo Bridge Officer is now actually an officer. /:cl: --- _maps/configs/syndicate_gorlex_komodo.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json index ca72d5b0eef5..b51dee46ffd9 100644 --- a/_maps/configs/syndicate_gorlex_komodo.json +++ b/_maps/configs/syndicate_gorlex_komodo.json @@ -29,6 +29,11 @@ "officer": true, "slots": 1 }, + "Bridge Officer": { + "outfit": "/datum/outfit/job/syndicate/head_of_personnel/cybersun", + "officer": true, + "slots": 1 + }, "Medic": { "outfit": "/datum/outfit/job/syndicate/doctor/gorlex", "slots": 1 @@ -44,10 +49,6 @@ "Deck Assistant": { "outfit": "/datum/outfit/job/syndicate/assistant/gorlex", "slots": 2 - }, - "Bridge Officer": { - "outfit": "/datum/outfit/job/syndicate/head_of_personnel/cybersun", - "slots": 1 } }, "enabled": true From c06cd86246f21eb9bd8247862c830dd69efaaae5 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 14:26:07 -0500 Subject: [PATCH 107/125] Automatic changelog generation for PR #3449 [ci skip] --- html/changelogs/AutoChangeLog-pr-3449.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3449.yml diff --git a/html/changelogs/AutoChangeLog-pr-3449.yml b/html/changelogs/AutoChangeLog-pr-3449.yml new file mode 100644 index 000000000000..b13db714084e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3449.yml @@ -0,0 +1,4 @@ +author: Sadhorizon +changes: + - {bugfix: Komodo Bridge Officer is now actually an officer.} +delete-after: true From 9677097580df8d89d8c2704073e0d0b82668bf59 Mon Sep 17 00:00:00 2001 From: Apogee-dev <60533805+Apogee-dev@users.noreply.github.com> Date: Sat, 5 Oct 2024 13:30:52 -0700 Subject: [PATCH 108/125] Nanotrasen Harrier-class Exploration Cruiser (#3185) ## About The Pull Request ![harrier](https://github.com/user-attachments/assets/34ba8038-b64e-4da9-be85-a448e1d71262) ![harrier_areas](https://github.com/user-attachments/assets/c777f96d-b8b5-484e-910b-53b81a4aaeb5) _Originally an advanced ICW-era command cruiser, the surviving Harriers have been refurbished as exploration and "reclamation" ships in the post-ICW era. Large, well-rounded, and boasting excellent crew accomodations, Harriers are exceedingly popular with Nanotrasen crews in spite of their lack of specialized equipment._ Replaces both the Osprey and the Skipper with the Harrier, filling roughly the same role. Key features: - Internal Affairs office - Security office with working brig - Dedicated AI core - Working mail and disposals system - A fancy atrium - The sector's biggest cafeteria Hopefully this irons out some of the more common issues with the Osprey and makes for a more well-rounded and enjoyable ship that _actually gives Nanotrasen security slots for once._ ## Why It's Good For The Game Osprey is crungled and Skipper competes for niche space. Harrier should do better than either, with more polish and faction flavor. ## Changelog :cl: add: Added Nanotrasen Harrier-class cruiser del: Removed Osprey-class cruiser del: Removed Skipper-class cruiser /:cl: --- _maps/configs/nanotrasen_harrier.json | 76 + _maps/configs/nanotrasen_osprey.json | 75 - _maps/configs/nanotrasen_skipper.json | 64 - ...asen_osprey.dmm => nanotrasen_harrier.dmm} | 17303 +++++++++------- .../nanotrasen/nanotrasen_skipper.dmm | 7391 ------- .../clothing/outfits/factions/nanotrasen.dm | 11 +- 6 files changed, 9657 insertions(+), 15263 deletions(-) create mode 100644 _maps/configs/nanotrasen_harrier.json delete mode 100644 _maps/configs/nanotrasen_osprey.json delete mode 100644 _maps/configs/nanotrasen_skipper.json rename _maps/shuttles/nanotrasen/{nanotrasen_osprey.dmm => nanotrasen_harrier.dmm} (52%) delete mode 100644 _maps/shuttles/nanotrasen/nanotrasen_skipper.dmm diff --git a/_maps/configs/nanotrasen_harrier.json b/_maps/configs/nanotrasen_harrier.json new file mode 100644 index 000000000000..161a699c2783 --- /dev/null +++ b/_maps/configs/nanotrasen_harrier.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "map_name": "Harrier-class Exploration Cruiser", + "prefix": "NTSV", + "faction": "/datum/faction/nt", + "namelists": [ + "NANOTRASEN", + "SPACE", + "MYTHOLOGICAL", + "WEAPONS" + ], + "map_short_name": "Harrier-class", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm", + "description": "Originally an advanced ICW-era command cruiser, the surviving Harriers have been refurbished as exploration and \"reclamation\" ships in the post-ICW era. Large, well-rounded, and boasting excellent crew accomodations, Harriers are exceedingly popular with Nanotrasen crews in spite of their lack of specialized equipment.", + "tags": ["Generalist"], + "limit": 1, + "starting_funds": 4000, + "job_slots": { + "Captain": { + "outfit": "/datum/outfit/job/nanotrasen/captain", + "officer": true, + "slots": 1 + }, + "First Officer": { + "outfit": "/datum/outfit/job/nanotrasen/hop", + "officer": true, + "slots": 1 + }, + "Supply Director": { + "outfit": "/datum/outfit/job/nanotrasen/quartermaster", + "officer":true, + "slots": 1 + }, + "Internal Affairs Agent": { + "outfit": "/datum/outfit/job/nanotrasen/lawyer/corporaterepresentative", + "slots": 1 + }, + "Security Officer": { + "outfit": "/datum/outfit/job/nanotrasen/security", + "slots": 1 + }, + "Medical Doctor": { + "outfit": "/datum/outfit/job/nanotrasen/doctor", + "slots": 1 + }, + "Paramedic": { + "outfit": "/datum/outfit/job/nanotrasen/paramedic", + "slots": 1 + }, + "Engineer": { + "outfit": "/datum/outfit/job/nanotrasen/engineer", + "slots": 1 + }, + "Atmospheric Technician": { + "outfit": "/datum/outfit/job/nanotrasen/atmos", + "slots": 1 + }, + "Cargo Technician": { + "outfit": "/datum/outfit/job/nanotrasen/cargo_tech", + "slots": 1 + }, + "Cook": { + "outfit": "/datum/outfit/job/independent/cook", + "slots": 1 + }, + "Janitor": { + "outfit": "/datum/outfit/job/nanotrasen/janitor", + "slots": 1 + }, + "Assistant": { + "outfit": "/datum/outfit/job/nanotrasen/assistant", + "slots": 2 + } + }, + "enabled": true +} diff --git a/_maps/configs/nanotrasen_osprey.json b/_maps/configs/nanotrasen_osprey.json deleted file mode 100644 index 473389fce14f..000000000000 --- a/_maps/configs/nanotrasen_osprey.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "map_name": "Osprey-class Exploration Cruiser", - "faction": "/datum/faction/nt", - "prefix": "NTSV", - "namelists": [ - "NANOTRASEN", - "SPACE", - "MYTHOLOGICAL", - "WEAPONS" - ], - "map_short_name": "Osprey-class", - "map_path": "_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm", - "description": "Some of the most modern ships in Nanotrasen’s fleet and a prestigious assignment for their captains, the famed Osprey of the ICW’s most dramatic astronautical engagements lives on as a very well-appointed exploration ship. Extensively refurbished from their origins as Bluespace Artillery platforms, the contemporary Osprey repurposes military-grade sensor equipment and AI systems for exploration and scientific work. Features include respectably-equipped medical, culinary, and scientific facilities and an AI core, as well as a ship-wide disposals and delivery system and a very spacious cargo bay. However, the powerful (if temperamental) supermatter engines that powered the initial batch of Ospreys were stripped out during their rebuilds, and the replacement generator banks have left contemporary Ospreys somewhat power-starved.", - "tags": ["Cargo", "Robotics", "Generalist"], - "limit": 1, - "starting_funds": 4000, - "job_slots": { - "Captain": { - "outfit": "/datum/outfit/job/nanotrasen/captain", - "officer": true, - "slots": 1 - }, - "First Officer": { - "outfit": "/datum/outfit/job/nanotrasen/hop", - "officer": true, - "slots": 1 - }, - "Scientist": { - "outfit": "/datum/outfit/job/nanotrasen/scientist", - "slots": 2 - }, - "Medical Doctor": { - "outfit": "/datum/outfit/job/nanotrasen/doctor", - "slots": 1 - }, - "Paramedic": { - "outfit": "/datum/outfit/job/nanotrasen/paramedic", - "slots": 1 - }, - "Engineer": { - "outfit": "/datum/outfit/job/nanotrasen/engineer", - "slots": 1 - }, - "Atmospheric Technician": { - "outfit": "/datum/outfit/job/nanotrasen/atmos", - "slots": 1 - }, - "Quartermaster": { - "outfit": "/datum/outfit/job/nanotrasen/quartermaster", - "slots": 1 - }, - "Cargo Technician": { - "outfit": "/datum/outfit/job/nanotrasen/cargo_tech", - "slots": 1 - }, - "Shaft Miner": { - "outfit": "/datum/outfit/job/nanotrasen/miner", - "slots": 1 - }, - "Cook": { - "outfit": "/datum/outfit/job/cook", - "slots": 1 - }, - "Janitor": { - "outfit": "/datum/outfit/job/janitor", - "slots": 1 - }, - "Assistant": { - "outfit": "/datum/outfit/job/nanotrasen/assistant", - "slots": 3 - } - }, - "enabled": true -} diff --git a/_maps/configs/nanotrasen_skipper.json b/_maps/configs/nanotrasen_skipper.json deleted file mode 100644 index a64c4c777342..000000000000 --- a/_maps/configs/nanotrasen_skipper.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "map_name": "Skipper-class Heavy Cruiser", - "faction": "/datum/faction/nt", - "map_short_name": "Skipper-class", - "prefix": "NTSV", - "namelists": [ - "NANOTRASEN", - "SPACE", - "MYTHOLOGICAL", - "WEAPONS", - "MERCANTILE" - ], - "map_path": "_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm", - "description": "An example of one of Nanotrasen’s “standard-pattern” cruisers. The Skipper-class is well-equipped by Frontier standards, with ample room for engineering equipment, well-appointed crew accommodations, and a decent supply of defensive weaponry. Notably, the Skipper comes with a larger command section than average, and the officers on Skippers tend to be better-equipped than their peers. Though not as prestigious as a position aboard an Osprey, few Nanotrasen captains would turn down a position commanding a Skipper.", - "tags": [ - "Engineering", - "Mining" - ], - "starting_funds": 4500, - "job_slots": { - "Captain": { - "outfit": "/datum/outfit/job/nanotrasen/captain", - "officer": true, - "slots": 1 - }, - "First Officer": { - "outfit": "/datum/outfit/job/nanotrasen/hop", - "officer": true, - "slots": 1 - }, - "Internal Affairs Agent": { - "outfit": "/datum/outfit/job/nanotrasen/lawyer/corporaterepresentative", - "slots" : 1 - }, - "Medical Doctor": 1, - "Engineer": { - "outfit": "/datum/outfit/job/nanotrasen/engineer", - "slots": 1 - }, - "Atmospheric Technician": { - "outfit": "/datum/outfit/job/nanotrasen/atmos", - "slots": 1 - }, - "Shaft Miner": 2, - "Cargo Technician": { - "outfit": "/datum/outfit/job/nanotrasen/cargo_tech", - "slots": 1 - }, - "Security Officer": { - "outfit": "/datum/outfit/job/nanotrasen/security", - "slots": 1 - }, - "Cook": { - "outfit": "/datum/outfit/job/cook", - "slots": 1 - }, - "Assistant": { - "outfit": "/datum/outfit/job/assistant", - "slots": 3 - } - }, - "enabled": true -} diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm similarity index 52% rename from _maps/shuttles/nanotrasen/nanotrasen_osprey.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_harrier.dmm index 4079e386726f..9e5d93f7af77 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm @@ -1,966 +1,1022 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ac" = ( -/obj/structure/chair/comfy/orange/directional/north, -/obj/structure/closet/secure_closet/wall/directional/west{ - icon_door = "sec_wall"; - icon_state = "sec_wall"; - name = "gun locker"; - req_access_txt = "19" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" +"ad" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 }, -/obj/item/storage/backpack/duffelbag/sec, -/obj/item/storage/backpack/messenger/sec, -/obj/item/storage/backpack/satchel/sec, -/obj/item/storage/backpack/security, -/obj/item/clothing/accessory/armband, -/obj/item/clothing/suit/armor/vest, -/obj/item/storage/box/handcuffs, -/obj/item/storage/box/deputy, -/obj/item/stock_parts/cell/gun, -/obj/item/stock_parts/cell/gun/mini, -/obj/item/stock_parts/cell/gun/mini, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/gun/energy/e_gun, -/obj/item/gun/ballistic/automatic/pistol/commander/no_mag, -/obj/item/gun/energy/e_gun/mini, -/obj/item/gun/energy/e_gun/mini, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"aj" = ( -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"ak" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/structure/disposalpipe/segment{ dir = 8 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"ao" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4; - icon_state = "passive_vent_map-2"; - piping_layer = 1 +/area/ship/crew/canteen) +"ai" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/turf/open/floor/engine/hull, -/area/ship/external) -"ap" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/wood, +/area/ship/crew) +"aq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"av" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "5-10" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"ar" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-10" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "2-8" + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"aE" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"aI" = ( -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"aL" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/computer/cargo{ +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"aA" = ( +/obj/docking_port/stationary{ + dwidth = 15; + height = 15; + width = 30 + }, +/turf/template_noop, +/area/template_noop) +"aC" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"aE" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_disposals"; + name = "Disposals Blast Door" }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"aW" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "harrier_disposalfield"; + locked = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"aY" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plating, +/area/ship/engineering) +"aH" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/end, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"aL" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 9 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"aO" = ( +/obj/structure/railing{ + dir = 8 }, -/obj/structure/sign/poster/official/get_your_legs{ - pixel_y = 32 +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 }, -/obj/machinery/camera/autoname{ - dir = 6 +/obj/structure/bed/dogbed, +/mob/living/simple_animal/pet/dog/corgi/puppy{ + name = "Louis Tennant" }, -/obj/structure/railing, -/turf/open/floor/plasteel/stairs{ +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"aR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/area/ship/hallway/central) -"bb" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/sign/poster/retro/we_watch{ - pixel_x = 32 - }, -/obj/machinery/camera/autoname{ +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"bg" = ( -/obj/effect/turf_decal/box/corners, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"aX" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"ba" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"bc" = ( +/obj/machinery/door/airlock/mining{ + name = "Cargo Office"; + req_access_txt = "31" + }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"bh" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"bl" = ( -/obj/machinery/door/airlock/external/glass, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/borderfloor, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"bs" = ( -/obj/structure/table, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"bw" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"bA" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"bF" = ( /turf/open/floor/plasteel, /area/ship/cargo) -"bG" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "osprey_packagesort" +"bd" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plating, -/area/ship/cargo/office) -"bH" = ( -/obj/machinery/autolathe, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_y = 32 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"be" = ( +/obj/structure/sign/directions/security{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 6 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) +"bg" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, /area/ship/engineering) -"bN" = ( -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 +"bi" = ( +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/power/terminal{ dir = 8 }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/ship/cargo) -"bT" = ( -/obj/structure/spider/stickyweb, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/toy/figure/cargotech, /turf/open/floor/plating, -/area/ship/cargo) -"cd" = ( -/obj/machinery/door/airlock/medical{ - name = "Infirmary"; - req_access_txt = "5"; - dir = 4 +/area/ship/engineering/atmospherics) +"bk" = ( +/obj/effect/turf_decal/atmos/air, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + external_pressure_bound = 13000 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/turf/open/floor/engine/air, +/area/ship/engineering/atmospherics) +"bn" = ( +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"bp" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/trimline/opaque/blue/line, +/obj/structure/chair/handrail{ + dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/ship/medical) -"ce" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"bu" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"cg" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -5; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"ch" = ( -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"bv" = ( +/obj/machinery/photocopier, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"bH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ dir = 8 }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/corner, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"bJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortTypes = list(17,18,19,20,21); + tag = "Kitchen" }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"bK" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"ci" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"bL" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/tech, /area/ship/engineering) -"co" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"cp" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 10 +"bM" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 }, -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 1; - icon_state = "pump_map-5"; - piping_layer = 5 +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"bR" = ( +/obj/effect/turf_decal/ntspaceworks_big/one{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{ - dir = 9 +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"cq" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/canteen) -"ct" = ( -/obj/structure/closet/secure_closet{ - icon_state = "science"; - name = "scientist's locker"; - req_access_txt = "47" +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 4 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"bU" = ( +/obj/structure/chair/sofa/blue/corpo/right, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"bW" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger/tox, -/obj/item/storage/backpack/satchel/tox, -/obj/item/storage/backpack/science, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/clothing/under/rank/rnd/scientist/skirt, -/obj/item/clothing/under/rank/rnd/scientist, -/obj/item/clothing/suit/toggle/labcoat/science, -/obj/item/clothing/glasses/science, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/science) -"cD" = ( -/obj/machinery/door/window/brigdoor/westleft{ - name = "AI Core Access"; - req_one_access_txt = "16" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/rack, -/obj/item/aicard, -/obj/item/borg/upgrade/ai, -/obj/item/mmi/posibrain, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"cI" = ( -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"cJ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"cK" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/wood, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"bX" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/canteen) -"cL" = ( -/obj/machinery/airalarm/directional/west, +"cb" = ( +/obj/machinery/photocopier, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"cc" = ( +/obj/structure/chair/sofa/blue/corpo/left/directional/west, /obj/effect/turf_decal/siding/wood{ - dir = 9 + dir = 6 }, +/obj/item/radio/intercom/directional/south, /turf/open/floor/wood, -/area/ship/crew/canteen) -"cN" = ( -/obj/machinery/mineral/unloading_machine{ - input_dir = 2; - output_dir = 1 +/area/ship/crew) +"cf" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"cg" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 }, -/turf/open/floor/plating, -/area/ship/cargo) -"cT" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 5 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{ - dir = 6 +/turf/open/floor/plating, +/area/ship/engineering) +"ch" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"cY" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"cl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 + dir = 6 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 + dir = 6 }, -/obj/structure/cable{ - icon_state = "2-8" +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"cm" = ( +/obj/machinery/door/airlock/external, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/port) +"co" = ( +/obj/structure/chair/comfy/blue/corpo{ + dir = 1 }, -/obj/machinery/light_switch{ - pixel_x = 20; - dir = 8; - pixel_y = 0 +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-4" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"dm" = ( -/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"cp" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/cryo) +"ct" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"do" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "24" - }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "osprey_disposals_preopen" +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"cx" = ( +/obj/structure/chair/sofa/blue/corpo/left, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"dr" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"cy" = ( +/obj/machinery/atmospherics/pipe/manifold/purple/visible, +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/turretid{ - pixel_y = -28; - req_access = null; - req_access_txt = "16" +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"cz" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"cB" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/hallway/starboard) +"cE" = ( +/obj/structure/table, +/obj/item/storage/box/cups{ + pixel_y = 6 }, -/obj/machinery/light/directional/south, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"dw" = ( -/obj/machinery/cryopod{ - dir = 1 +/area/ship/bridge) +"cF" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 8 }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/cryo) -"dx" = ( +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"cH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/machinery/light/directional/south, /obj/structure/disposalpipe/segment{ - dir = 5 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"cN" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloor{ dir = 4 }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/port) +"cS" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"dE" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/medical) -"dJ" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"cW" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/bar, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"dK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 +"cY" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/siding/wideplating/dark, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ship/bridge) +"da" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"dN" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/chair/handrail{ dir = 8 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/port) +"dd" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -7; + pixel_y = -20 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"de" = ( +/obj/machinery/advanced_airlock_controller{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/port) +"di" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/structure/curtain, /turf/open/floor/plasteel/white, /area/ship/medical) -"dP" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/fancy, -/obj/item/bedsheet/captain, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"dS" = ( +"dj" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"do" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, -/obj/structure/window/plasma/reinforced{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"ea" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"dr" = ( +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/plasteel, +/area/ship/bridge) +"dt" = ( +/obj/structure/sign/departments/restroom, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew) +"dv" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"eh" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreycargo" +/turf/open/floor/plasteel/dark, +/area/ship/security) +"dz" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -6 }, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/cargo/office) -"ej" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 +/obj/item/stamp/captain{ + pixel_x = 6 + }, +/obj/item/pen/fountain/captain{ + pixel_x = -6 }, +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"dA" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/port) +"dB" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/solgovgold{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"ep" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +"dF" = ( +/obj/effect/turf_decal/industrial/loading{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"dG" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/storage/eva) +"dI" = ( +/obj/machinery/door/airlock{ + dir = 4; + name = "Custodial Closet"; + req_access_txt = "26" }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"ez" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/mauve, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"eB" = ( -/obj/machinery/vending/cola/random, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/purple{ +/obj/effect/turf_decal/borderfloor{ dir = 8 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"eD" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/fancy, -/obj/item/bedsheet/head_of_personnel, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"eE" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/industrial/warning{ +/area/ship/crew/janitor) +"dJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"eG" = ( -/obj/structure/disposalpipe/segment, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"dK" = ( +/obj/machinery/suit_storage_unit/standard_unit, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/effect/turf_decal/borderfloor{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"eP" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/port) +"dL" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/structure/chair/handrail{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/port) +"dN" = ( +/obj/structure/railing{ + dir = 10; + layer = 3.1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"dO" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"eT" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/computer/atmos_control/incinerator{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"dV" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/hallway/starboard) +"dX" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"ea" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"ec" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/secure_data/laptop{ dir = 4; - sortTypes = list(5); - tag = "CE Office" + pixel_y = 6 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/sign/poster/official/moth/hardhats{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"eX" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"eg" = ( +/obj/machinery/computer/helm/viewscreen/directional/south, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"ei" = ( +/obj/machinery/computer/security{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"eZ" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science/ai_chamber) -"fa" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/vired/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/camera, +/obj/structure/window/reinforced{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"fb" = ( -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/obj/structure/curtain/bounty, -/obj/structure/sign/poster/official/ue_no{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"fc" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"fg" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/dark, +/area/ship/security) +"ej" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"er" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"fh" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/trash/can/food/peaches/maint, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ship/cargo) -"fj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 9 }, +/turf/open/floor/wood, +/area/ship/crew) +"es" = ( +/obj/structure/closet/secure_closet/engineering_electrical, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-8" }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"fn" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/item/radio/intercom/directional/north{ - pixel_y = 22 +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"ew" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"fF" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -21 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"ex" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ez" = ( /obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 4 +/obj/item/lighter{ + pixel_x = 6; + pixel_y = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 1 +/obj/item/storage/fancy/cigarettes/cigpack_cannabis{ + pixel_x = -3; + pixel_y = 11 }, +/turf/open/floor/plasteel, +/area/ship/engineering) +"eA" = ( +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-2" }, -/obj/item/assembly/flash/handheld{ - pixel_x = 5 +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"eG" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/assembly/flash/handheld{ - pixel_x = -5 +/obj/machinery/door/airlock/engineering/glass{ + dir = 4; + name = "Engineering"; + req_access_txt = "10" }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/science) -"fJ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/engine/hull, -/area/ship/external) -"fU" = ( -/obj/machinery/button/door{ - dir = 1; - id = "osprey_atmos"; - pixel_y = -25 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"ga" = ( -/obj/structure/table, /obj/structure/disposalpipe/segment{ dir = 8 }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"eJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_cw{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"eQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"gc" = ( /obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 + dir = 8 }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"gg" = ( -/obj/effect/turf_decal/industrial/warning{ +"eX" = ( +/obj/machinery/door/airlock/medical{ + dir = 4; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"gi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"go" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/sign/poster/contraband/tools{ - pixel_y = 32 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/reagent_dispensers/foamtank, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"gt" = ( -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plasteel/white, +/area/ship/medical) +"eY" = ( +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"eZ" = ( +/obj/structure/noticeboard{ + name = "Supply Requests Board"; + pixel_y = 25 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "harriercargo" + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/landmark/start/cook, -/obj/machinery/holopad/emergency/bar, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"gw" = ( -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plating, /area/ship/cargo) -"gy" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +"fb" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"fc" = ( +/obj/structure/table/wood/reinforced, +/obj/machinery/fax/nanotrasen, +/obj/machinery/light/small/directional/east, +/obj/machinery/button/door{ + dir = 1; + id = "harrieriaa"; + name = "window shutter"; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"fd" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/instrument/guitar{ + pixel_y = -2 }, -/obj/effect/turf_decal/industrial/shutoff, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"gB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/area/ship/engineering) +"fh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"gC" = ( -/obj/machinery/door/poddoor/shutters{ - id = "osprey_atmos"; - name = "Atmospherics Storage"; +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"gE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/industrial/warning, +/obj/item/radio/intercom/directional/east, /turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"gH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"gJ" = ( -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, -/obj/machinery/advanced_airlock_controller{ - pixel_x = -24 +/area/ship/engineering/engine) +"fi" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2, /turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"fl" = ( +/obj/structure/chair/sofa/blue/corpo/left/directional/north, +/turf/open/floor/plasteel, /area/ship/hallway/central) -"gM" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows" +"fn" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 12; + pixel_y = 0 }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plating, -/area/ship/crew/canteen) -"gT" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"gV" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/cryo) -"gW" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/industrial/shutoff, -/turf/open/floor/plasteel, -/area/ship/cargo) -"gX" = ( -/obj/machinery/power/terminal, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ship/engineering) -"hc" = ( -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"hd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = 32 }, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"hg" = ( +/turf/open/floor/plasteel/white, +/area/ship/medical) +"fr" = ( /obj/effect/turf_decal/industrial/warning{ dir = 1 }, @@ -968,3046 +1024,2821 @@ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"hh" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/science) -"hj" = ( -/obj/machinery/mass_driver{ - dir = 8; - id = "osprey_disposals" +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/item/reagent_containers/food/snacks/deadmouse, -/obj/structure/window/reinforced{ - dir = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/starboard) +"fu" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"fv" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, /turf/open/floor/plating, -/area/ship/crew/janitor) -"hl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/lightgrey{ - dir = 9 +/area/ship/medical) +"fw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"hm" = ( -/obj/machinery/holopad/emergency/atmos, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"hr" = ( -/obj/machinery/power/smes/engineering, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"hs" = ( -/obj/structure/sign/number/eight{ - color = "Black"; - dir = 1 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"ht" = ( -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "\proper captain's locker"; - req_access_txt = "20" + icon_state = "1-2" }, -/obj/item/storage/backpack/duffelbag/captain, -/obj/item/storage/backpack/messenger/com, -/obj/item/storage/backpack/satchel/cap, -/obj/item/storage/backpack/captain, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/nanotrasen/captain/skirt, -/obj/item/clothing/under/nanotrasen/captain, -/obj/item/clothing/suit/armor/nanotrasen/captain, -/obj/item/clothing/suit/armor/nanotrasen/captain/parade, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/nanotrasen/captain/peaked, -/obj/item/clothing/head/nanotrasen/captain, -/obj/item/storage/belt/sabre, -/obj/item/assembly/flash/handheld, -/obj/item/disk/nuclear/fake{ - desc = "An ICW-era self-destruct authorization disk. The codes on this are long past obsolete, but it's still a flagrant violation of company policy."; - name = "outdated nuclear authentication disk" - }, -/obj/item/clothing/head/caphat/parade, -/obj/item/clothing/suit/armor/vest/capcarapace, -/obj/item/clothing/gloves/color/captain/nt, -/turf/open/floor/carpet/royalblue, +/turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"hv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 +"fz" = ( +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 6 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"hw" = ( -/obj/machinery/computer/rdconsole/core, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"hy" = ( -/obj/structure/chair, -/obj/structure/disposalpipe/segment{ +/obj/structure/sign/directions/command{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/central) -"hD" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 +"fH" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 }, -/obj/structure/window/reinforced{ - dir = 1 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"fI" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) +"fO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/door/window/eastright, -/obj/structure/disposalpipe/trunk, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/ship/cargo) -"hG" = ( -/turf/open/floor/plasteel/white, -/area/ship/science) -"hL" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/stairs{ - dir = 4 - }, -/area/ship/hallway/central) -"hQ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/docking_port/mobile{ +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"fR" = ( +/obj/structure/filingcabinet/chestdrawer{ + density = 0; dir = 4; - launch_status = 0; - preferred_direction = 4; - port_direction = 2 - }, -/turf/open/floor/engine/hull, -/area/ship/external) -"hU" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 + pixel_x = -6 }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" +/turf/open/floor/plasteel/white, +/area/ship/medical) +"fT" = ( +/turf/open/floor/plasteel/white, +/area/ship/medical) +"fX" = ( +/obj/structure/bodycontainer/morgue{ + dir = 2 }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Thruster Blast Door"; - dir = 4 +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"fZ" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"ie" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"gf" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "1-4" }, -/obj/effect/landmark/observer_start, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"ik" = ( -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"il" = ( /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 9 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"gg" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"in" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"ip" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1; - sortTypes = list(4); - tag = "Engineering" +/turf/open/floor/plasteel, +/area/ship/crew) +"gk" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/security) +"gm" = ( +/obj/structure/chair/comfy/blue/corpo/directional/west, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"gn" = ( +/obj/structure/AIcore, +/obj/item/radio/intercom/wideband/directional/west, +/obj/item/radio/intercom/directional/north{ + freqlock = 1; + frequency = 1351 }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"go" = ( +/obj/effect/turf_decal/industrial/warning, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-2" }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"ir" = ( -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 5 }, -/obj/machinery/camera/autoname, -/obj/machinery/jukebox, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner{ dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"it" = ( -/obj/machinery/sleeper{ +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"gq" = ( +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/lime{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"iv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/structure/chair/handrail{ + dir = 1 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"iw" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/cargo) -"iA" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"gA" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/turf/open/floor/plasteel, +/area/ship/crew) +"gC" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"iD" = ( -/obj/structure/table/reinforced, -/obj/machinery/reagentgrinder{ - pixel_y = 8 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/crew/canteen) -"iI" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/cargo/office) -"iM" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 4; - pixel_y = 9 - }, -/obj/item/stack/cable_coil/cyan{ - pixel_x = -3 +"gD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/stack/cable_coil/cyan{ - pixel_x = 5 +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"gE" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierbridge"; + name = "Window Blast Door" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ship/bridge) +"gF" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/item/storage/box/stockparts/basic, -/turf/open/floor/plasteel/white, -/area/ship/science) -"iO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"gH" = ( /obj/structure/bed, +/obj/item/bedsheet/nanotrasen, /obj/structure/curtain/bounty, -/obj/item/bedsheet/dorms, /turf/open/floor/wood, -/area/ship/crew/dorm) -"iQ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/machinery/light/directional/south, -/obj/structure/railing{ +/area/ship/crew/law_office) +"gM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"gN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"iZ" = ( -/obj/structure/ore_box, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"ja" = ( -/obj/structure/sign/number/one{ - color = "Black"; - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"jc" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"je" = ( /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 10 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"gO" = ( +/obj/item/storage/backpack/satchel/med, +/obj/item/clothing/shoes/sneakers/white, +/obj/item/clothing/under/nanotrasen/medical, +/obj/item/clothing/suit/toggle/labcoat/nanotrasen, +/obj/item/clothing/glasses/hud/health, +/obj/item/storage/pill_bottle/stimulant{ + pixel_x = 5 }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"jk" = ( -/obj/machinery/medical_kiosk, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/structure/closet/secure_closet/medical3{ + populate = 0 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/structure/sign/poster/official/help_others{ - pixel_y = -32 +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plasteel/white, /area/ship/medical) -"jn" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" +"gQ" = ( +/obj/item/table_bell{ + pixel_x = -4; + pixel_y = 13 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"jo" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 1 +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/structure/ore_box, -/obj/machinery/button/door{ - dir = 8; - id = "ospreydoors"; - name = "Blast Door Control"; - pixel_x = 25; - pixel_y = 5 +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "harriercargo" }, -/obj/machinery/button/shieldwallgen{ - dir = 8; - id = "osprey_cargofield"; - pixel_x = 24; - pixel_y = -5 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plating, /area/ship/cargo) -"jC" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +"gU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 + dir = 4 }, -/obj/structure/sign/poster/official/safety_internals{ - pixel_x = -32 +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"jG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/plasteel, +/area/ship/engineering) +"gV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 - }, -/obj/item/storage/box/shipping, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"jM" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortTypes = list(17,18,19,20,21); - tag = "Kitchen" +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"gX" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"jU" = ( -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -12 +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ha" = ( +/obj/machinery/door/airlock/external/glass, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/port) +"hj" = ( +/obj/structure/sign/warning/vacuum, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/eva) +"hq" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate{ + name = "food crate" }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/item/storage/cans/sixbeer, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"hx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"kb" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"ke" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Infirmary"; +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"hy" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_x = 4; + pixel_y = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/item/storage/box/mousetraps{ + pixel_x = -9 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"hA" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 4 }, -/obj/effect/turf_decal/borderfloor{ +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"kf" = ( -/obj/machinery/door/airlock{ - name = "Custodial Closet"; +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"hB" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/door/airlock/medical/glass{ + dir = 4; + name = "Infirmary"; + req_ship_access = 0 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"ki" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/borderfloor{ dir = 8 }, -/obj/machinery/light/small/directional/north, /turf/open/floor/plasteel, -/area/ship/crew/janitor) -"ko" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/purple{ +/area/ship/medical) +"hD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor, +/obj/machinery/door/airlock/public/glass{ + dir = 1; + name = "Canteen" }, -/obj/machinery/light/directional/north, /turf/open/floor/plasteel, -/area/ship/cargo) -"kB" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 - }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Thruster Blast Door"; - dir = 4 +/area/ship/crew/canteen) +"hE" = ( +/obj/structure/sign/poster/contraband/syndiemoth{ + pixel_y = 32 }, +/obj/item/toy/plush/moth/firewatch, +/obj/item/toy/sword, /turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"kD" = ( -/obj/structure/window/plasma/reinforced, +/area/ship/engineering/engine) +"hH" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/engineering) +"hI" = ( +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/atmos/air{ +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"hL" = ( +/obj/effect/landmark/start/janitor, +/obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"kG" = ( -/obj/machinery/power/terminal{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ dir = 8 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"hP" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-8" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"kL" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/item/pen{ - pixel_x = 7 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/item/folder{ - pixel_x = -6; - pixel_y = 3 +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"hQ" = ( +/obj/machinery/computer/monitor{ + dir = 8; + icon_state = "computer-left" }, -/obj/machinery/button/door{ - dir = 4; - id = "ospreysci"; - name = "Shutter Control"; - pixel_x = -25; - pixel_y = -5 +/turf/open/floor/plasteel, +/area/ship/engineering) +"hV" = ( +/obj/machinery/door/airlock/command{ + name = "Restroom" }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = 5 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/borderfloorblack, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"hY" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/science/ai_chamber) +"if" = ( +/obj/machinery/holopad/emergency/medical, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/mauve, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/blue/filled/corner, +/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 1 }, /turf/open/floor/plasteel/white, -/area/ship/science) -"kP" = ( -/turf/open/floor/engine/hull, -/area/ship/external) -"kQ" = ( +/area/ship/medical) +"ig" = ( /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/janitor) -"kS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/area/ship/crew/law_office) +"ih" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"ir" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/medical) +"iy" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/suit/apron/chef, +/obj/item/clothing/under/rank/civilian/chef, +/obj/item/clothing/head/chefhat, +/obj/item/storage/backpack/messenger, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/canteen) +"iz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"iA" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/borderfloor{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/starboard) +"iD" = ( +/obj/structure/cable{ + icon_state = "1-8" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"kU" = ( -/obj/machinery/recharge_station, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"kV" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows"; +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plating, -/area/ship/hallway/central) -"kZ" = ( -/obj/machinery/vending/snack/random, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/structure/railing{ - layer = 2.91 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"la" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light/directional/north, -/obj/structure/railing, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"lb" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"iG" = ( +/obj/structure/chair/office, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"lh" = ( -/obj/structure/chair{ +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"iI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"li" = ( -/turf/template_noop, -/area/template_noop) -"lk" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/door/poddoor/shutters{ - id = "ospreycargo" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/cargo/office) -"ll" = ( /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"iM" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "osprey_disposals_preopen" - }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/structure/sign/warning/securearea{ - pixel_x = 25 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"lr" = ( -/obj/machinery/door/window/brigdoor/westleft{ - name = "AI Core Access"; - req_one_access_txt = "16" + icon_state = "1-4" }, -/obj/structure/AIcore, -/obj/item/circuitboard/aicore, -/obj/item/stack/sheet/rglass{ - amount = 5 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/radio/intercom/directional/south, -/obj/item/radio/intercom/directional/north{ - frequency = 1351; - freqlock = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/radio/intercom/wideband/directional/east, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"lt" = ( /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 1 }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"iP" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 }, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/wood, -/area/ship/crew/canteen) -"lv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/area/ship/crew) +"iQ" = ( +/obj/machinery/door/window/westleft{ + req_access_txt = "2" }, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"ly" = ( -/obj/structure/chair{ +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{ dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/vired/corner, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"iS" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"iT" = ( +/obj/structure/disposaloutlet{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/disposalpipe/trunk{ + dir = 1 }, +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_garbage" + }, +/turf/open/floor/plating, +/area/ship/crew/janitor) +"iV" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"lz" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"lA" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"lF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortTypes = list(9,10,11); + tag = "Medbay" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 4 }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"je" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"jf" = ( +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"jl" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" + }, +/obj/machinery/door/airlock/atmos{ + dir = 8; + name = "Atmospherics"; + req_access_txt = "10" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"lJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"lL" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/rnd/server, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"lM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/structure/closet/secure_closet{ - icon_state = "atmos"; - name = "\proper atmospheric technician's locker"; - req_access = list(24) - }, -/obj/item/storage/backpack/industrial, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/under/rank/engineering/atmospheric_technician, -/obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/head/hardhat/weldhat/dblue, -/obj/item/storage/belt/utility/atmostech, -/obj/item/extinguisher/advanced, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/item/holosign_creator/atmos, -/obj/item/storage/box/metalfoam, -/obj/item/pipe_dispenser, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"lV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"lY" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - pixel_y = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/ship/crew/canteen) -"mf" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/area/ship/engineering/atmospherics) +"jm" = ( +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engineering Office"; + req_access_txt = "10" }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"mg" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"mj" = ( -/obj/machinery/cryopod, -/obj/structure/window/reinforced{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/cryo) -"mo" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8; - sortType = 6; - tag = "Atmospherics" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/borderfloor{ dir = 4 }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"ju" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "5-10" }, -/obj/machinery/light_switch{ - pixel_y = 24 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"jx" = ( +/obj/machinery/disposal/bin, +/obj/machinery/door/window/northleft{ + dir = 4; + req_access_txt = "19" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"mq" = ( -/obj/structure/disposalpipe/sorting/mail{ - dir = 2; - sortTypes = list(2,3); - tag = "QM Office" +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"jA" = ( +/obj/machinery/door/airlock/security{ + name = "Security Office" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"mu" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "osprey_production" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"my" = ( -/obj/structure/table, -/obj/item/stack/packageWrap{ - pixel_y = 9 - }, -/obj/item/hand_labeler{ - pixel_x = 2; - pixel_y = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/machinery/door/firedoor/border_only, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 8 +/turf/open/floor/plasteel/dark, +/area/ship/security) +"jD" = ( +/obj/structure/fluff/hedge, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/end{ + dir = 1 }, -/obj/item/storage/box/gloves{ - pixel_x = -3; - pixel_y = -8 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"jH" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/medical) +"jI" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/science) -"mB" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/industrial/caution, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"mF" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"jL" = ( +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 + }, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"mH" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/five{ - pixel_x = -3 +/area/ship/crew/canteen) +"jM" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/item/stack/sheet/glass/five{ - pixel_x = 2; - pixel_y = 5 +/obj/machinery/power/terminal, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"mI" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 +/obj/structure/sign/warning/electricshock{ + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"jN" = ( +/obj/machinery/door/airlock{ + name = "Internal Affairs Office"; + req_access_txt = "38" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor, /turf/open/floor/plasteel, +/area/ship/crew/law_office) +"jT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"mR" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 +"jU" = ( +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 +/turf/open/floor/circuit, +/area/ship/engineering/engine) +"ka" = ( +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/plasteel, /area/ship/cargo) -"mV" = ( -/obj/structure/chair/office{ - dir = 4 +"km" = ( +/obj/structure/closet/secure_closet/armory1{ + populate = 0; + req_access = list(2) }, -/obj/effect/turf_decal/siding/wood{ - dir = 6 +/obj/machinery/airalarm/directional/east, +/obj/item/clothing/suit/armor/nanotrasen, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/item/clothing/head/helmet/sec, +/obj/item/clothing/head/helmet/sec, +/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{ + dir = 8 }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"mW" = ( -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"mY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"mZ" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"kn" = ( /obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/closet/secure_closet/engineering_welding, -/obj/machinery/button/door{ - dir = 1; - id = "osprey_thruster_port"; - name = "Blast Door Control"; - pixel_y = -25 + icon_state = "6-9" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"na" = ( -/obj/structure/window/reinforced{ - dir = 1 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"ko" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/tank_dispenser/oxygen, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"nf" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/structure/mirror{ - pixel_x = 25 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"kq" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"nl" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"nx" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"kr" = ( +/obj/machinery/jukebox, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 6 }, -/obj/machinery/light/directional/south, -/obj/structure/window/reinforced{ +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"ky" = ( +/obj/structure/railing{ dir = 8 }, -/obj/structure/window/reinforced{ - dir = 4 +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/machinery/door/window/northleft{ - req_access_txt = "19" +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/ntblue, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"nE" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"nK" = ( -/obj/structure/sign/warning/docking{ - pixel_y = 9 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/hallway/central) -"nL" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/door/airlock/medical{ - name = "Infirmary"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +"kA" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"kE" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/ship/crew) +"kH" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/mapping_helpers/airlock/unres{ +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/turf_decal/borderfloor{ +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"kJ" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel, -/area/ship/medical) -"nT" = ( -/obj/structure/filingcabinet/double/grey, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 +/obj/machinery/door/airlock{ + dir = 4; + name = "Cryogenic Storage" }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"nZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/turf_decal/borderfloor{ + dir = 8 }, +/turf/open/floor/plasteel, +/area/ship/crew/cryo) +"kM" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"oi" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 9 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"kO" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "2-4" }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"kR" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 +/obj/machinery/power/terminal{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"oo" = ( -/obj/machinery/space_heater, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"os" = ( -/obj/machinery/cryopod, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/cryo) -"ot" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plating, +/area/ship/engineering) +"kV" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"ou" = ( -/obj/effect/turf_decal/industrial/warning, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/industrial/caution{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"ow" = ( -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"oB" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +"la" = ( +/obj/machinery/computer/crew{ + dir = 8; + icon_state = "computer-right" }, -/obj/effect/turf_decal/corner/opaque/mauve, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/camera/autoname{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"oE" = ( -/obj/structure/closet/wall/directional/south{ - icon_door = "grey_wall" - }, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack/satchel, -/obj/item/storage/backpack/satchel, -/obj/item/storage/backpack, -/obj/item/storage/backpack, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"oF" = ( -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"oK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"lg" = ( +/obj/structure/mirror{ + pixel_y = 32 }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"oN" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{ - dir = 1 +/obj/structure/sink{ + pixel_y = 17 }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"oO" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/freezer, +/area/ship/bridge) +"lj" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"ln" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"ls" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 2; + sortType = 1; + sortTypes = list(1, 22); + tag = "Disposals" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 4 }, +/turf/open/floor/plasteel, +/area/ship/hallway/starboard) +"lA" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/closet/firecloset/wall/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"oQ" = ( -/obj/machinery/power/smes/engineering, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "2-8" }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"oU" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"oW" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southright{ - dir = 1; - name = "Medical Desk"; - req_access_txt = "5" +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, -/obj/item/table_bell, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortTypes = list(4, 5); + tag = "Engineering" }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/door/poddoor/shutters{ - id = "ospreymed" +/turf/open/floor/plasteel, +/area/ship/engineering) +"lD" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/security) +"lE" = ( +/obj/structure/fluff/hedge, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"oX" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Infirmary"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 8 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/central) +"lH" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel, +/area/ship/bridge) +"lP" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/effect/turf_decal/borderfloor{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/cargo) +"lQ" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/atmospherics/components/binary/volume_pump/on{ + name = "Recycling to Environment"; + piping_layer = 1 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"pe" = ( -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/door/poddoor{ - id = "osprey_disposals"; - name = "Disposals Blast Door"; - dir = 4 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"lX" = ( +/obj/structure/closet/wardrobe/mixed{ + name = "custodial wardrobe"; + populate = 0 }, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-2" }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/item/radio/intercom/directional/north, +/obj/item/clothing/under/nanotrasen/janitor, +/obj/item/clothing/head/nanotrasen/cap/janitor, +/obj/item/clothing/shoes/galoshes, +/obj/item/storage/belt/janitor, +/obj/item/clothing/gloves/color/black, /turf/open/floor/plating, -/area/ship/science/ai_chamber) -"pk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/area/ship/crew/janitor) +"mc" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"pm" = ( -/obj/structure/frame/computer{ - dir = 8 + icon_state = "1-4" }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"pp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 5 }, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"pq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"mk" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"pv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"mm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-8" }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"pz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"ms" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"my" = ( +/obj/machinery/power/generator{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ +/turf/open/floor/plating, +/area/ship/engineering/engine) +"mB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"pC" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"mC" = ( +/obj/effect/turf_decal/industrial/warning/corner{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/effect/turf_decal/industrial/warning/corner, +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"pD" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 +/obj/machinery/button/ignition{ + dir = 4; + id = "harrier_igniter"; + pixel_x = -20 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"mG" = ( +/obj/structure/table/glass, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_x = -3; + pixel_y = 13 }, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = -25 + }, +/obj/item/clothing/gloves/color/latex/nitrile, +/obj/item/clothing/suit/nanotrasen/medical_smock, +/obj/item/clothing/head/nanotrasen/surgical, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"mH" = ( +/obj/structure/railing, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-4" }, -/turf/open/floor/plating, -/area/ship/engineering) -"pH" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"pJ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "osprey_atmos"; - name = "Atmospherics Storage"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"pK" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"pL" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ +/turf/open/floor/plasteel, +/area/ship/cargo) +"mJ" = ( +/obj/machinery/conveyor{ dir = 1; - name = "Research Desk"; - req_access_txt = "47" - }, -/obj/item/table_bell, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/shutters{ - id = "ospreysci" + id = "harrier_garbage" }, -/obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/ship/science) -"pP" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins, -/obj/effect/turf_decal/industrial/outline/yellow, +/area/ship/crew/janitor) +"mK" = ( +/obj/machinery/light/directional/north, +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"mN" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-8" }, -/obj/machinery/camera/autoname, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 23 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"pT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" + dir = 1; + pixel_x = -5; + pixel_y = -20 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"pU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"qa" = ( -/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"mO" = ( +/obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "0-8" }, /obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/sign/warning/enginesafety{ - pixel_y = 32 - }, -/turf/open/floor/plating, +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"qb" = ( -/obj/structure/closet/secure_closet{ - icon_state = "science"; - name = "scientist's locker"; - req_access_txt = "47" - }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 4 +"mV" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 1 +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"mW" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger/tox, -/obj/item/storage/backpack/satchel/tox, -/obj/item/storage/backpack/science, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/clothing/under/rank/rnd/scientist/skirt, -/obj/item/clothing/under/rank/rnd/scientist, -/obj/item/clothing/suit/toggle/labcoat/science, -/obj/item/clothing/glasses/science, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/science) -"qc" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"qp" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"mZ" = ( +/obj/structure/table/reinforced, +/obj/item/cutting_board, +/obj/item/melee/knife/butcher, +/obj/item/kitchen/rollingpin, +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/machinery/light_switch{ + pixel_x = -7; + pixel_y = 20 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"qs" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/firealarm/directional/north{ + pixel_x = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"na" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/condiment/ketchup{ + pixel_x = 9; + pixel_y = 16 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/reagent_containers/condiment/mayonnaise{ + pixel_y = 16 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/item/reagent_containers/condiment/hotsauce{ + pixel_x = -9; + pixel_y = 15 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"qv" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -5; + pixel_y = 5 }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/structure/closet/emcloset/wall/directional/south, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"qw" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 5; + pixel_y = 5 }, -/obj/item/trash/can, -/turf/open/floor/wood, +/turf/open/floor/plating, /area/ship/crew/canteen) -"qL" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, +"nf" = ( /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 8 + icon_state = "1-2" }, /turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ng" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/crew/law_office) +"nj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, /area/ship/cargo) -"qM" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/structure/marker_beacon, -/turf/open/floor/engine/hull, -/area/ship/external) -"qN" = ( +"nv" = ( +/obj/machinery/deepfryer, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/structure/closet{ - icon_door = "black"; - name = "wardrobe" - }, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack, -/obj/item/storage/backpack/satchel/leather, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/rank/civilian/chef, -/obj/item/clothing/under/rank/civilian/chef/skirt, -/obj/item/clothing/under/rank/civilian/bartender, -/obj/item/clothing/under/rank/civilian/bartender/skirt, -/obj/item/clothing/suit/toggle/chef, -/obj/item/clothing/accessory/waistcoat, -/obj/item/clothing/head/chefhat, -/obj/item/storage/box/drinkingglasses, -/obj/item/storage/fancy/candle_box, -/obj/item/radio/intercom/directional/east, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"qX" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 +"nx" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"nz" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "harrier_disposals" }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Thruster Blast Door"; +/turf/open/floor/plating, +/area/ship/crew/janitor) +"nQ" = ( +/obj/structure/chair/comfy/blue/corpo{ + dir = 8 + }, +/obj/effect/landmark/start/lawyer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"ra" = ( +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"nZ" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"oe" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"og" = ( +/obj/structure/cable{ + icon_state = "6-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"rd" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/closet/crate/science{ - name = "cyborg parts crate" +/obj/structure/chair/handrail, +/turf/open/floor/plasteel, +/area/ship/hallway/port) +"oi" = ( +/obj/structure/toilet{ + pixel_y = 10 }, -/obj/item/bodypart/leg/right/robot, -/obj/item/bodypart/r_arm/robot, -/obj/item/bodypart/leg/left/robot, -/obj/item/bodypart/l_arm/robot, -/obj/item/bodypart/head/robot, -/obj/item/bodypart/chest/robot, -/obj/item/robot_suit, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/small/directional/west, /turf/open/floor/plasteel/dark, -/area/ship/science) -"rf" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/area/ship/security) +"oj" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/structure/sign/warning/securearea{ - pixel_x = 25 + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"ry" = ( -/obj/item/storage/backpack/explorer, -/obj/item/storage/backpack/satchel/explorer, -/obj/item/storage/backpack/duffelbag, -/obj/structure/closet/secure_closet{ - icon_state = "mining"; - name = "mining wardrobe"; - req_access_txt = "48" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/rank/cargo/miner, -/obj/item/storage/belt/mining/alt, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/head/hardhat/mining, -/obj/structure/sign/poster/contraband/ss13{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"rz" = ( -/obj/structure/bed, -/obj/structure/curtain/bounty, -/obj/item/bedsheet/dorms, -/obj/structure/sign/poster/official/soft_cap_pop_art{ - pixel_y = 32 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"rG" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/ntblue/line, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"ok" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/engineering/engine) +"ol" = ( +/obj/structure/closet/secure_closet/captains{ + populate = 0 }, -/turf/open/floor/plating, -/area/ship/engineering) -"rH" = ( +/obj/machinery/firealarm/directional/west, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/under/nanotrasen/captain, +/obj/item/clothing/suit/armor/nanotrasen/captain/parade, +/obj/item/clothing/neck/cloak/nanotrasen, +/obj/item/storage/backpack/captain, +/obj/item/clothing/head/nanotrasen/captain/peaked, +/obj/item/clothing/glasses/sunglasses, +/obj/item/storage/belt/sabre, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"op" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"rJ" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"rN" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +"ow" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 6 }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"ox" = ( /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"rO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 }, +/turf/open/floor/plasteel, +/area/ship/bridge) +"oG" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/cargo) +"oT" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"oU" = ( +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"rP" = ( -/obj/structure/chair/stool/bar{ - dir = 1 +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"oV" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"rS" = ( -/obj/effect/turf_decal/corner/transparent/neutral, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"rX" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ +"oX" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"rZ" = ( -/obj/structure/chair/stool/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/small/directional/north, +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"pd" = ( /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"sd" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"si" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/siding{ + dir = 9 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"sl" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = -4; - pixel_y = 10 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = 4; - pixel_y = 10 +/area/ship/crew/canteen) +"pp" = ( +/obj/structure/railing{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 }, -/obj/item/table_bell, -/obj/machinery/door/poddoor/shutters{ - id = "ospreykitchen" +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"pr" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ + dir = 9 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"sq" = ( -/obj/machinery/atmospherics/components/binary/valve/digital/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/turf/open/floor/plasteel/patterned/grid, +/obj/machinery/atmospherics/pipe/manifold4w/purple/visible, +/turf/open/floor/plasteel/patterned, /area/ship/engineering/atmospherics) -"ss" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +"pF" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"su" = ( +/obj/effect/turf_decal/trimline/opaque/vired/line{ + dir = 1 + }, +/obj/item/storage/box/evidence{ + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"pH" = ( /obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ - id = "ospreywindows"; - dir = 4 + dir = 1; + id = "harrieriaa" }, /turf/open/floor/plating, -/area/ship/hallway/central) -"sw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"sy" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/structure/rack, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"sC" = ( -/obj/structure/chair/stool/bar{ - dir = 1 +/area/ship/crew/law_office) +"pI" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"pP" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/crew/canteen) +"pQ" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/railing{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/ship/crew/canteen) -"sE" = ( -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = -2 - }, -/obj/item/reagent_containers/food/drinks/waterbottle/large{ - pixel_x = 5 - }, -/obj/item/reagent_containers/food/drinks/waterbottle/large{ - pixel_x = 1; - pixel_y = -3 - }, -/obj/item/reagent_containers/food/drinks/waterbottle/large{ - pixel_x = 8; - pixel_y = -3 - }, -/obj/structure/closet/crate{ - name = "food crate" - }, -/obj/item/storage/cans/sixbeer, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +"pR" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 4 }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"pW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"pX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" + dir = 9 }, /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) -"sG" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/hallway/central) -"sI" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/closet/emcloset/wall/directional/south, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"sJ" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"pY" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"sO" = ( -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"sZ" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/ntspaceworks_big/seven{ dir = 8 }, -/obj/structure/disposalpipe/junction/flip, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"tb" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/frame/computer, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"tc" = ( -/obj/structure/table/reinforced, -/obj/machinery/fax/nanotrasen, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"pZ" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/structure/sign/poster/official/random{ + pixel_x = -32 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 10 }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"qf" = ( +/obj/structure/chair/comfy/blue/corpo/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/line, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"ti" = ( -/obj/machinery/door/airlock/external/glass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"tm" = ( -/obj/machinery/disposal/bin{ - name = "biohazard disposal unit" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/machinery/light/directional/west, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"to" = ( +"qg" = ( /obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"tp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 + icon_state = "4-9" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"qh" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "5-10" }, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"tr" = ( -/obj/machinery/computer/security{ - dir = 8; - icon_state = "computer-right" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"tx" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ospreybridge"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/bridge) -"tF" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"ql" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 9 }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"tG" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"qo" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/structure/closet/crate, -/obj/item/vending_refill/coffee, -/obj/effect/spawner/lootdrop/maintenance/three, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plasteel, /area/ship/cargo) -"tH" = ( +"qp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ dir = 6 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"tL" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"qq" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer5{ + dir = 8 }, -/obj/structure/closet/emcloset/wall/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"tO" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plating, +/area/ship/engineering/engine) +"qr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"qw" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south{ dir = 8 }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"tT" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +"qx" = ( +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"qB" = ( +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/machinery/power/smes/engineering, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"qE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/turf/open/floor/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, /area/ship/crew/canteen) -"tY" = ( -/obj/effect/turf_decal/borderfloor{ +"qF" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 1 }, -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" - }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, /obj/machinery/door/firedoor/border_only{ dir = 1 }, /obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"ud" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"uh" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"qI" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/canteen) +"qJ" = ( +/obj/item/bodypart/leg/right/robot, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/leg/left/robot, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/head/robot, +/obj/item/bodypart/chest/robot, +/obj/item/robot_suit, +/obj/machinery/recharge_station, +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"qK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, /turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"ui" = ( -/obj/structure/cable{ - icon_state = "0-8" +/area/ship/storage/eva) +"qO" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 1 }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"uk" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/siding/white{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"qQ" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/crew) +"qX" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"rc" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"un" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/holopad/emergency/medical, -/obj/effect/turf_decal/box/white{ - color = "#2CB2E8" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"uq" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"rf" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plating, /area/ship/engineering/atmospherics) -"ut" = ( -/obj/structure/chair, -/obj/effect/landmark/start/janitor, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4; - sortType = 1; - tag = "Disposals" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +"rh" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering/atmospherics) +"ri" = ( +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"ux" = ( -/obj/machinery/computer/operating, -/obj/effect/turf_decal/corner/opaque/pink{ +/obj/structure/sink{ + dir = 8; + pixel_x = 12 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"rj" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) +"rk" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/obj/effect/turf_decal/corner/opaque/pink{ +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"uz" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4; - icon_state = "passive_vent_map-4"; - piping_layer = 5 - }, -/turf/open/floor/engine/hull, -/area/ship/external) -"uA" = ( -/obj/machinery/holopad/emergency/command, -/obj/effect/turf_decal/box/white, /turf/open/floor/plasteel/dark, -/area/ship/bridge) -"uC" = ( -/obj/machinery/computer/crew{ - dir = 8; - icon_state = "computer-left" +/area/ship/science/ai_chamber) +"rm" = ( +/obj/structure/railing{ + dir = 6; + layer = 3.1 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"uE" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"rr" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/mining, +/obj/structure/window/reinforced{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/condiment/soymilk, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/canteen) +"ru" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"rx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"uI" = ( -/mob/living/simple_animal/mouse{ - desc = "This rat seems particularly old and crotchety."; - name = "Splinter" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"rJ" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierdoors"; + name = "Cargo Bay Blast Door" + }, +/turf/open/floor/plating, +/area/ship/storage/eva) +"rK" = ( +/obj/structure/chair/sofa/blue/corpo/left/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, /turf/open/floor/plasteel, -/area/ship/crew/janitor) -"uJ" = ( +/area/ship/hallway/central) +"rL" = ( +/obj/machinery/iv_drip, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"rQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/machinery/airalarm/directional/south, /obj/structure/disposalpipe/segment{ dir = 8 }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"rR" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"uM" = ( -/obj/machinery/door/airlock{ - name = "Cryopod Room" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/borderfloor, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"uN" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/item/kirbyplants/random, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"uQ" = ( -/obj/machinery/door/airlock/external, -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"vi" = ( -/obj/structure/table, -/obj/item/storage/bag/trash{ - pixel_x = 5 +/area/ship/hallway/port) +"rS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket{ - pixel_x = -3; - pixel_y = 8 +/obj/machinery/airalarm/directional/east, +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 9 +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"rT" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/hallway/port) +"rZ" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"sc" = ( +/obj/effect/turf_decal/ntspaceworks_big/four{ dir = 8 }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"vj" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"se" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ dir = 6 }, -/obj/structure/cable{ - icon_state = "2-4" +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"sf" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"sh" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"sl" = ( +/obj/item/gun/energy/e_gun, +/obj/structure/guncloset/ecase{ + req_access_txt = "20" }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"sn" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"ss" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"vl" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"st" = ( +/obj/machinery/door/airlock/command{ + dir = 4; + name = "Bridge"; + req_access = list(19, 41) }, -/obj/effect/turf_decal/trimline/opaque/blue/end, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"vp" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/cell_charger, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/stock_parts/cell/high/plus, -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 }, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"vx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/area/ship/bridge) +"sv" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"vD" = ( -/obj/structure/window/reinforced{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"sw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_garbage" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"vY" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"sy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"wb" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"sD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"wc" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "osprey_packagesort" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plating, -/area/ship/cargo/office) -"wd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"wj" = ( -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"sE" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/borderfloor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortTypes = list(7, 8); + tag = "Security" }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"wn" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -6 +/obj/effect/turf_decal/trimline/opaque/vired/line, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"sF" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/item/stamp/captain{ - pixel_x = 6; - pixel_y = 6 +/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer5{ + dir = 8 }, -/obj/item/stamp/head_of_personnel{ - pixel_x = 6 +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/item/pen/fountain/captain{ - pixel_x = -7 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"sG" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "harrier_packagesort" }, -/obj/item/pen/fourcolor, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 +/obj/machinery/light/directional/north, +/turf/open/floor/plating, +/area/ship/cargo) +"sN" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/light_switch{ - pixel_x = -11; - pixel_y = 24 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/cargo) +"sU" = ( +/turf/open/floor/wood, +/area/ship/crew/law_office) +"ta" = ( +/obj/structure/railing, +/obj/effect/turf_decal/siding/wideplating/dark, +/turf/open/floor/plasteel/stairs{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/ship/bridge) -"wo" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 +"td" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Thruster Blast Door"; +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"tk" = ( +/obj/structure/railing, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"wq" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - dir = 1; - name = "Medical Desk"; - req_access_txt = "5" - }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/door/poddoor/shutters{ - id = "ospreymed" +/turf/open/floor/plasteel, +/area/ship/cargo) +"tm" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"wr" = ( -/obj/structure/chair{ - dir = 1 +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"tq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ +/turf/open/floor/engine/plasma, +/area/ship/engineering/atmospherics) +"ty" = ( +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"wx" = ( -/obj/machinery/door/poddoor{ - id = "ospreydoors"; - name = "Cargo Bay Blast Door"; - dir = 4 +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 }, -/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/wood, +/area/ship/crew) +"tC" = ( +/obj/structure/rack, +/obj/item/pickaxe, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"tF" = ( /obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "osprey_cargofield"; - locked = 1 + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech, -/area/ship/cargo) -"wC" = ( -/obj/machinery/vending/snack/random, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"wF" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"tG" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/dark/hidden/layer5{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"tH" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/folder/yellow, +/obj/item/stamp/denied{ + pixel_x = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/machinery/turretid{ - pixel_x = 28; - req_access = null; - req_access_txt = "16" +/obj/item/stamp{ + pixel_x = -5; + pixel_y = 9 }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"wP" = ( -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 +/obj/item/pen/red, +/obj/machinery/button/door{ + dir = 4; + id = "harrierdoors"; + name = "External Blast Door Control"; + pixel_x = -25; + pixel_y = 6 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/machinery/button/shieldwallgen{ + dir = 4; + id = "harrier_cargofield"; + pixel_x = -24; + pixel_y = -5 }, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plasteel, -/area/ship/crew/canteen) -"wQ" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner, +/area/ship/cargo) +"tI" = ( +/obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Thruster Blast Door"; - dir = 4 + dir = 1; + id = "harrierwindows"; + name = "Window Blast Door" }, /turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"wR" = ( -/obj/structure/closet/crate/freezer/blood, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/corner/opaque/lime{ +/area/ship/security) +"tJ" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/lime{ +/obj/effect/turf_decal/corner/opaque/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/lime, -/obj/structure/sign/poster/official/moth/epi{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"tN" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate/internals, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"tO" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/canteen) +"tQ" = ( +/obj/machinery/igniter{ + id = "harrier_igniter" + }, +/obj/machinery/air_sensor/atmos/incinerator_tank, +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"tS" = ( +/obj/machinery/disposal/bin{ + name = "biohazard disposal unit" + }, +/obj/effect/turf_decal/box/white{ + color = "#2CB2E8" }, /obj/machinery/light/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/ship/medical) -"wT" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"wV" = ( -/obj/effect/landmark/start/atmospheric_technician, +"tT" = ( +/obj/effect/turf_decal/trimline/opaque/vired/line, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"tV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"wW" = ( -/turf/open/floor/plasteel/stairs/right{ - dir = 4 + dir = 1 }, -/area/ship/cargo) -"wY" = ( +/obj/machinery/light/small/directional/south, /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"tY" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"tZ" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 4 }, +/obj/structure/closet/emcloset/wall/directional/north, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"uc" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-8" }, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"xb" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"xj" = ( -/obj/structure/janitorialcart{ +/turf/open/floor/plasteel/dark, +/area/ship/security) +"ud" = ( +/obj/machinery/cryopod{ dir = 8 }, -/obj/structure/disposalpipe/sorting/mail{ +/obj/machinery/light_switch{ dir = 8; - sortType = 22; - tag = "Jantor Closet" + pixel_x = 20; + pixel_y = 5 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"xp" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"xq" = ( -/obj/machinery/button/door{ - dir = 8; - id = "ospreywindows"; - name = "External Window Shutters"; - pixel_x = 32; - pixel_y = -6 +/turf/open/floor/circuit, +/area/ship/crew/cryo) +"ue" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/machinery/button/door{ - dir = 8; - id = "ospreybridge"; - name = "Bridge Lockdown"; - pixel_x = 32; - pixel_y = 6 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/freezer, +/area/ship/bridge) +"uf" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 }, -/obj/machinery/modular_computer/console/preset/command{ +/obj/structure/chair/handrail{ dir = 8 }, -/obj/item/radio/intercom/wideband/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"xB" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Infirmary"; - dir = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/starboard) +"uh" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"uk" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"ul" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"um" = ( +/obj/machinery/smartfridge/bloodbank/preloaded, +/turf/open/floor/plasteel/tech/grid, /area/ship/medical) -"xE" = ( -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -16 +"uo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"xF" = ( -/obj/effect/turf_decal/corner/opaque/green{ +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/structure/chair/handrail{ dir = 4 }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"xG" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "osprey_cargoload" +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"up" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/camera/autoname{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/turf/open/floor/plating, -/area/ship/cargo) -"xH" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"xJ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Infirmary"; +/obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/machinery/light/small/directional/east, /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 10 }, +/turf/open/floor/wood, +/area/ship/crew) +"ur" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/borderfloor{ +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"uu" = ( +/obj/machinery/disposal/deliveryChute{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"xK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"xN" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"xP" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "osprey_atmosfield" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/door/poddoor{ - id = "osprey_tank_vent" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"xT" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 10 +/obj/machinery/door/window/westleft, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/turf/open/floor/plasteel/stairs{ +/turf/open/floor/plating, +/area/ship/cargo) +"uv" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ dir = 4 }, -/area/ship/hallway/central) -"xY" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"yc" = ( -/obj/structure/closet/secure_closet{ - icon_state = "med"; - name = "medicine locker" +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/obj/item/storage/firstaid/fire{ - pixel_x = -4; - pixel_y = 5 +/obj/effect/turf_decal/siding/yellow{ + dir = 9 }, -/obj/item/storage/firstaid/regular, /obj/machinery/button/door{ - dir = 1; - id = "ospreymed"; - name = "Shutter Control"; - pixel_x = 5; - pixel_y = -25 + dir = 4; + id = "harrier_enginevent"; + name = "Blast Door Control"; + pixel_x = -25; + pixel_y = 1 }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -5; - pixel_y = -24 +/obj/structure/chair/handrail, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"uw" = ( +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/camera/autoname{ +/obj/structure/chair/handrail{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"yd" = ( -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"yg" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"yj" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/engineering/atmospherics) -"yl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"yn" = ( -/obj/structure/disposalpipe/sorting/wrap, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"yq" = ( +/area/ship/hallway/starboard) +"uy" = ( +/obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"uz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, +/obj/machinery/light/directional/east, /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/turf_decal/siding/wood{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"yw" = ( -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"uB" = ( +/obj/docking_port/mobile{ + dir = 4; + launch_status = 0; + port_direction = 2; + preferred_direction = 4 }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"uC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 2; + sortTypes = list(8,15,30); + tag = "Bridge" + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"uD" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/status_display/shuttle{ - pixel_x = 32 +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"uG" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierwindows"; + name = "Window Blast Door" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"yC" = ( -/obj/machinery/camera/emp_proof/motion{ +/turf/open/floor/plating, +/area/ship/crew/canteen) +"uH" = ( +/obj/structure/table/reinforced, +/obj/item/table_bell{ + pixel_x = -4; + pixel_y = 13 + }, +/obj/machinery/door/window/westright, +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"yE" = ( -/obj/machinery/vending/cola/random, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"uI" = ( +/obj/machinery/door/window/southright{ + dir = 8; + name = "Freezer"; + req_access_txt = "28" + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/siding{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/turf/open/floor/plasteel/freezer, +/area/ship/crew/canteen) +"uS" = ( +/obj/machinery/door/airlock{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/structure/railing{ - layer = 2.91 +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"yI" = ( -/obj/machinery/camera/autoname{ - dir = 5 - }, -/obj/machinery/computer/cryopod/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"yP" = ( -/obj/machinery/telecomms/relay{ - freq_listening = list(1351); - id = "Nanotrasen Relay"; - name = "Nanotrasen relay"; - network = "nt_commnet" +/area/ship/crew) +"uT" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" }, -/obj/machinery/door/window/brigdoor/westleft{ - dir = 4; - name = "Comms Relay"; - req_one_access_txt = "61" +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"yQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"uW" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"uX" = ( +/obj/structure/guncloset{ + req_access_txt = "2" }, -/obj/machinery/status_display/shuttle{ - pixel_x = 32 +/obj/item/gun/energy/e_gun/mini, +/obj/item/gun/ballistic/automatic/pistol/commander/no_mag, +/obj/item/radio/intercom/directional/east, +/obj/structure/sign/nanotrasen/vigilitas{ + pixel_y = 32 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"yS" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/frame/machine, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"yT" = ( -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/item/gun/energy/disabler, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"uZ" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"va" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/arrow_ccw{ dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"yU" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 +/obj/machinery/camera{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"vd" = ( +/obj/structure/closet/secure_closet/head_of_personnel{ + populate = 0 + }, +/obj/machinery/firealarm/directional/west, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/under/nanotrasen/officer, +/obj/item/clothing/suit/toggle/nanotrasen, +/obj/item/clothing/head/nanotrasen/officer, +/obj/item/clothing/head/nanotrasen/beret, +/obj/item/clothing/glasses/sunglasses, +/obj/item/storage/backpack/satchel/leather, +/obj/item/storage/box/ids, +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"vj" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortTypes = list(2,3); + tag = "QM Office" }, /turf/open/floor/plasteel, /area/ship/cargo) -"yX" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/directional/north, -/obj/machinery/rnd/destructive_analyzer, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"zb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"zi" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +"vl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/green{ +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"vm" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/ship/hallway/central) -"zl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +"vr" = ( +/obj/structure/railing, +/obj/structure/disposaloutlet{ + dir = 1 }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"zt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_packagesort" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"vs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, +/obj/effect/turf_decal/siding/yellow, +/turf/open/floor/plasteel, +/area/ship/engineering) +"vC" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/stairs/mid{ - dir = 4 +/obj/machinery/door/airlock{ + dir = 4; + name = "Restroom"; + req_ship_access = 0 }, -/area/ship/cargo) -"zy" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Canteen"; +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/borderfloor{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/door/firedoor/border_only{ @@ -4016,1612 +3847,1496 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/ship/crew/canteen) -"zF" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/area/ship/crew) +"vI" = ( +/obj/structure/table, +/obj/item/storage/bag/trash{ + pixel_x = 5 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"zJ" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 +/obj/item/reagent_containers/glass/bucket{ + pixel_x = -3; + pixel_y = 8 }, -/obj/machinery/vending/snack/random, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"zL" = ( -/obj/machinery/door/airlock/command{ - name = "First Officer's Quarters"; - req_access_txt = "57"; +/obj/item/mop, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"vL" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/railing/corner{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 + dir = 9 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"zM" = ( -/obj/structure/disposaloutlet{ - dir = 4 +"vM" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/structure/window/reinforced{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/structure/window/reinforced, -/obj/machinery/conveyor{ - dir = 4; - id = "osprey_packagesort" +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"vN" = ( +/obj/structure/chair/office{ + dir = 8 }, -/turf/open/floor/plating, -/area/ship/cargo/office) -"zN" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/plasteel, +/area/ship/cargo) +"vS" = ( +/obj/structure/filingcabinet/double/grey, +/obj/structure/sign/nanotrasen/ns{ + pixel_y = 32 }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"vT" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/railing, -/turf/open/floor/plasteel/stairs{ - dir = 4 - }, -/area/ship/hallway/central) -"zQ" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Canteen" }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"vW" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/opaque/blue/end{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/blue/line, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"zU" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/opaque/bar{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Ac" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ag" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering"; - req_access_txt = "10"; - dir = 8 +/obj/effect/turf_decal/siding/wood{ + dir = 10 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/structure/closet/emcloset/wall/directional/south, +/turf/open/floor/wood, +/area/ship/crew) +"vY" = ( +/obj/structure/cable{ + icon_state = "1-8" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/ntspaceworks_big/eight{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"vZ" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plating, +/area/ship/crew/canteen) +"wa" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierwindows"; + name = "Window Blast Door" + }, +/turf/open/floor/plating, +/area/ship/hallway/central) +"wd" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/engineering) -"Ai" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 +/obj/machinery/conveyor_switch/oneway{ + id = "harrier_packagesort" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/disposalpipe/segment{ + dir = 10 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"Aj" = ( -/obj/machinery/door/firedoor/heavy, +/area/ship/cargo) +"wn" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, /obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Blast Door"; - dir = 4 + dir = 1; + id = "harrierdoors"; + name = "Cargo Bay Blast Door" }, -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "harrier_cargofield"; + locked = 1 }, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"An" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreysci" +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/machinery/door/firedoor/window, /turf/open/floor/plating, -/area/ship/science) -"Ap" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/area/ship/storage/eva) +"wp" = ( +/obj/machinery/washing_machine, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel, +/area/ship/crew) +"wq" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"AB" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"AR" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/door/airlock/mining{ - name = "Cargo Office"; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/effect/turf_decal/ntspaceworks_big/six{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"AS" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/structure/chair/office{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"wr" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"wz" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 + }, +/obj/structure/railing/corner{ dir = 1 }, -/obj/effect/landmark/start/quartermaster, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"AT" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-8" }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"wA" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Bc" = ( -/obj/structure/table/optable, -/obj/effect/turf_decal/corner/opaque/pink{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/ship/medical) -"Bl" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/volume_pump, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Bn" = ( +"wD" = ( /obj/structure/disposalpipe/segment, -/obj/structure/closet/emcloset/anchored, -/obj/machinery/firealarm/directional/west, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 10 +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, +/turf/open/floor/plasteel, +/area/ship/hallway/starboard) +"wH" = ( +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"wL" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Bp" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -32 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Bq" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/table, -/obj/item/storage/belt/utility{ - pixel_y = 6 - }, -/obj/item/hand_labeler{ - pixel_x = 15; - pixel_y = 7 - }, -/obj/item/multitool{ - pixel_x = 7; - pixel_y = 2 - }, -/obj/item/clothing/head/soft{ - pixel_x = -7 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"wM" = ( +/obj/machinery/telecomms/relay{ + freq_listening = list(1351); + id = "Nanotrasen Relay"; + name = "Nanotrasen relay"; + network = "nt_commnet" }, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"wN" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"wO" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, +/obj/structure/disposalpipe/trunk, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"Bs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"Bu" = ( -/obj/machinery/vending/cola/random, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/area/ship/hallway/central) +"wS" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/borderfloor{ dir = 4 }, -/obj/item/radio/intercom/directional/north, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"Bv" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_packagesort" - }, -/obj/structure/sign/poster/contraband/steppyflag{ - pixel_x = 32 +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/starboard) +"wU" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plating, -/area/ship/cargo/office) -"BH" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/dorm) -"BK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"wX" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/crew) +"wY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output, +/turf/open/floor/engine/n2, +/area/ship/engineering/atmospherics) +"xa" = ( +/obj/effect/turf_decal/siding/yellow, +/turf/open/floor/plasteel, +/area/ship/engineering) +"xe" = ( +/obj/machinery/button/door{ + dir = 4; + id = "harriercargo"; + name = "Shutter Control"; + pixel_x = -25; + pixel_y = 5 }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/button/door{ + id = "harriercargoaccess"; + name = "Cargo Bay Shutters"; + pixel_x = -6; + pixel_y = 24 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"BL" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/button/door{ + id = "harriereva"; + name = "EVA Storage Shutters"; + pixel_x = 6; + pixel_y = 24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/computer/cargo, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ dir = 8 }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"xf" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"BN" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"BU" = ( -/obj/machinery/door/window/eastleft, -/obj/structure/toilet{ - dir = 4 + dir = 10 }, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"Cj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Cn" = ( -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Cp" = ( -/obj/structure/disposalpipe/segment{ +"xg" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/bar, -/obj/effect/turf_decal/corner/opaque/bar{ - dir = 4 +/obj/structure/railing/corner{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 6 }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Cu" = ( -/obj/effect/turf_decal/box/corners{ +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"xj" = ( +/obj/structure/railing, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Cv" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo) -"Cw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"CA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plasteel, /area/ship/cargo) -"CC" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, +"xl" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"CF" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/medical) -"CH" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 + dir = 4 }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"xn" = ( +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"xo" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"CL" = ( -/obj/machinery/door/airlock{ - name = "Restroom"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/closet/emcloset/wall/directional/south, +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"xv" = ( +/obj/structure/chair{ dir = 4 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/siding/yellow, +/turf/open/floor/plasteel, +/area/ship/engineering) +"xy" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"xD" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, /turf/open/floor/plasteel, -/area/ship/crew/toilet) -"CQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/area/ship/hallway/central) +"xH" = ( +/obj/structure/railing, +/obj/structure/table, +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"CT" = ( -/obj/machinery/deepfryer, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/junction/yjunction{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/item/stack/packageWrap{ + pixel_y = 11 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"Dg" = ( -/obj/machinery/door/window/southright{ - name = "Kitchen"; - req_access_txt = "28" +/obj/item/stack/packageWrap{ + pixel_y = 5 }, +/obj/item/stack/wrapping_paper, +/obj/item/stack/tape, +/turf/open/floor/plasteel, +/area/ship/cargo) +"xK" = ( /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/curtain/bounty, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"Di" = ( -/obj/structure/filingcabinet/double, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 4 +"xM" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Dj" = ( -/obj/structure/table/glass, -/obj/item/defibrillator, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 4 +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"xN" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/pink{ +/obj/structure/window/reinforced{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/pink, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_x = 25 +/obj/machinery/computer/med_data/laptop{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Dq" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/marker_beacon, -/turf/open/floor/engine/hull, -/area/ship/external) -"Dx" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"DA" = ( -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/siding/wood{ - dir = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/light_switch{ - pixel_x = 20; - dir = 8; - pixel_y = 11 +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"DE" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 8 +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"xQ" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"xS" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"DF" = ( -/obj/structure/sign/number/eight{ - color = "Black" +/turf/open/floor/plasteel, +/area/ship/crew) +"yc" = ( +/obj/structure/cable{ + icon_state = "5-10" }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"DH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"yd" = ( +/obj/structure/railing{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding/yellow{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"DK" = ( -/obj/machinery/vending/dinnerware, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ship/engineering/engine) +"yl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"ym" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"DO" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/machinery/firealarm/directional/east, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"yr" = ( +/obj/machinery/door/airlock/mining{ + dir = 4; + name = "Storage Bay"; + req_access_txt = "31" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, /turf/open/floor/plasteel/patterned, /area/ship/cargo) -"DP" = ( -/obj/structure/sign/number/four{ - color = "Black"; - dir = 1 +"ys" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 6 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"DU" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"DV" = ( -/obj/structure/chair{ +/obj/effect/turf_decal/industrial/warning, +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/structure/railing{ - dir = 6; - layer = 3.1 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"yx" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"DY" = ( -/obj/structure/chair{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/directional/east, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Ee" = ( -/obj/structure/closet/secure_closet{ - icon_state = "med_secure"; - name = "medical doctor's locker" - }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 6 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"yz" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/item/storage/backpack/duffelbag/med, -/obj/item/storage/backpack/messenger/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/medic, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/clothing/under/rank/medical/doctor/skirt, -/obj/item/clothing/under/rank/medical/doctor, -/obj/item/clothing/suit/toggle/labcoat, -/obj/item/storage/belt/medical, -/obj/item/clothing/glasses/hud/health, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -19; - pixel_y = 12 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ek" = ( +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"yB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"yE" = ( /obj/effect/turf_decal/industrial/warning{ - dir = 6 + dir = 5 }, -/obj/machinery/conveyor_switch/oneway{ - id = "osprey_packagesort" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"Em" = ( -/obj/machinery/door/window/eastright{ - dir = 2; - req_access = list(11) +/area/ship/cargo) +"yG" = ( +/obj/structure/table/wood, +/obj/item/storage/pill_bottle/dice, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/computer/helm/viewscreen/directional/south, +/turf/open/floor/wood, +/area/ship/crew) +"yI" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, /obj/machinery/door/firedoor/border_only, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "5-10" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Es" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"yL" = ( +/obj/structure/fluff/hedge, +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/central) -"Ey" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +"yR" = ( +/obj/item/storage/backpack/medic, +/obj/item/clothing/shoes/sneakers/blue, +/obj/item/clothing/under/nanotrasen/medical/paramedic, +/obj/item/clothing/head/nanotrasen/cap/medical, +/obj/item/clothing/glasses/hud/health, +/obj/item/storage/belt/medical/paramedic, +/obj/structure/closet/secure_closet/medical3{ + icon_state = "brig_phys"; + name = "paramedic's locker"; + populate = 0; + req_access = list(5) + }, +/obj/item/storage/backpack/messenger/para, +/obj/effect/turf_decal/trimline/opaque/blue/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"yS" = ( +/obj/machinery/door/airlock/external/glass{ + dir = 4 }, +/obj/effect/turf_decal/industrial/warning/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/engine, +/area/ship/engineering/engine) +"yY" = ( +/obj/structure/toilet{ + dir = 1 }, -/obj/structure/railing, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"EA" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/freezer, +/area/ship/bridge) +"za" = ( +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "harrier_packagesort" + }, +/turf/open/floor/plating, /area/ship/cargo) -"EN" = ( +"zc" = ( /obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows"; +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ dir = 4 }, -/obj/machinery/door/firedoor/heavy, /turf/open/floor/plating, -/area/ship/crew/cryo) -"EO" = ( -/obj/structure/closet, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"ET" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = 6 - }, -/obj/item/folder, -/obj/item/pen, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"EW" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/area/ship/engineering/atmospherics) +"zd" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plating, -/area/ship/engineering) -"EX" = ( +/obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 6 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"zm" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/camera, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"zr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Fe" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "10" +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/firealarm/directional/north{ + pixel_x = 6 }, -/obj/effect/turf_decal/borderfloor{ +/obj/effect/turf_decal/trimline/opaque/vired/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"Fj" = ( -/obj/structure/window/reinforced{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ship/security) +"zs" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 4; + piping_layer = 1 }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Fk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"zv" = ( +/obj/effect/turf_decal/trimline/opaque/blue/line, +/obj/structure/closet/emcloset/wall/directional/south, +/obj/machinery/camera{ + dir = 10 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Fo" = ( -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plasteel/white, +/area/ship/medical) +"zx" = ( +/obj/structure/sign/directions/service{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = -6 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_y = 6 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/canteen) -"Fr" = ( -/obj/structure/table, -/obj/item/instrument/saxophone, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"Fs" = ( -/obj/machinery/door/window/northleft{ - name = "Mining Storage"; - req_access_txt = "48" +"zy" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor{ +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"zF" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/central) +"zI" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 + icon_state = "1-4" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"FC" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/components/binary/volume_pump/on/layer4{ + dir = 8; + name = "Waste to Recycling" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/green/visible/layer1{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"FF" = ( -/obj/machinery/button/massdriver{ - id = "osprey_disposals"; - name = "disposals button"; - pixel_x = 7; - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 5 }, -/obj/machinery/button/door{ - id = "osprey_disposals_preopen"; - pixel_x = -7; - pixel_y = 25 +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 5 }, -/obj/machinery/conveyor_switch/oneway{ - id = "osprey_garbage" +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 1 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"FI" = ( -/obj/structure/sign/warning/docking{ - pixel_y = -8 +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/hallway/central) -"FL" = ( -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"FP" = ( /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"zO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"FV" = ( -/obj/structure/sign/departments/restroom, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"FZ" = ( -/obj/structure/table/wood, -/obj/structure/bedsheetbin, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Ga" = ( -/obj/structure/chair{ +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"zT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"zU" = ( +/obj/structure/cable{ + icon_state = "4-10" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Ge" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/plasteel, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Gk" = ( -/obj/effect/turf_decal/box/corners, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Gp" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +"zV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair/handrail{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Gr" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"zX" = ( +/obj/machinery/computer/station_alert{ + dir = 8; + icon_state = "computer-left" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"zY" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue, /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Gt" = ( -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/door/poddoor{ - id = "ospreydoors"; - name = "Cargo Bay Blast Door"; - dir = 4 +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"Ad" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/plasteel/tech, -/area/ship/cargo) -"Gu" = ( -/obj/machinery/conveyor/inverted{ - dir = 10; - id = "osprey_packagesort" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plating, -/area/ship/cargo/office) -"Gw" = ( -/obj/machinery/conveyor/inverted{ - dir = 6; - id = "osprey_production" +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Ah" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/door/window/westright, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 22; + tag = "Janitor Closet" }, /turf/open/floor/plating, -/area/ship/cargo) -"Gz" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "10" +/area/ship/crew/janitor) +"Aj" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/borderfloor, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Ak" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"Al" = ( +/obj/structure/railing, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/hand_labeler_refill, +/obj/item/hand_labeler_refill, +/obj/item/hand_labeler, +/obj/item/destTagger, +/turf/open/floor/plasteel, +/area/ship/cargo) +"Ao" = ( +/obj/machinery/computer/card{ + dir = 8; + icon_state = "computer-left" + }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, /turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"GC" = ( -/obj/machinery/vending/boozeomat, -/obj/effect/turf_decal/corner/opaque/white{ +/area/ship/bridge) +"Av" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 8 }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = 32 - }, -/obj/machinery/light/directional/west, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"Aw" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/opaque/ntblue/line, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"GG" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/deliveryChute, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/window/southright, -/turf/open/floor/plating, -/area/ship/cargo/office) -"GN" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +"Ax" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"GU" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 + dir = 10 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"GX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Hb" = ( -/obj/structure/closet/secure_closet{ - icon_state = "med"; - name = "mortuary locker" +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/item/storage/box/bodybags{ - pixel_x = -7; - pixel_y = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"Az" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/storage/box/syringes{ - pixel_x = -6 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/item/storage/box/gloves, -/obj/item/reagent_containers/glass/bottle/formaldehyde{ - pixel_x = 8; - pixel_y = 8 +/obj/machinery/camera, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"AE" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering/engine) +"AS" = ( +/obj/structure/bed, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"AW" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/reagent_containers/glass/bottle{ - list_reagents = list(/datum/reagent/medicine/thializid=30); - name = "thializid bottle"; - pixel_x = 5 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Bb" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Bd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/item/storage/box/masks, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Hf" = ( -/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"Bj" = ( +/obj/machinery/holopad/emergency/kitchen, +/obj/effect/turf_decal/box, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/sign/warning/electricshock{ - pixel_y = 25 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Hi" = ( /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Bm" = ( +/obj/machinery/holopad/emergency/engineering, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"Bq" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/turf/open/floor/plasteel, +/area/ship/crew) +"Br" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/item/paper_bin, +/obj/item/folder/white, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Hk" = ( -/obj/machinery/power/shuttle/engine/electric{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"Bs" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, /area/ship/engineering/atmospherics) -"Hn" = ( -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"Ho" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +"Bx" = ( +/obj/structure/sign/departments/custodian, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"BA" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, /turf/open/floor/plasteel, /area/ship/hallway/central) -"Ht" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, +"BF" = ( +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"Hx" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 6 - }, -/obj/item/clipboard{ - pixel_x = -7 - }, -/obj/item/folder/white{ - pixel_x = -7 - }, -/obj/item/pen{ - pixel_x = -7 +/area/ship/bridge) +"BG" = ( +/obj/structure/chair/office/light{ + dir = 8 }, -/obj/item/stamp/cmo{ - pixel_x = -1; - pixel_y = 12 +/obj/effect/landmark/start/paramedic, +/obj/machinery/button/door{ + dir = 1; + id = "lobbydoors"; + name = "Lobby Door Control"; + normaldoorcontrol = 1; + pixel_y = -20 }, /turf/open/floor/plasteel/white, /area/ship/medical) -"Hy" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 +"BI" = ( +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 }, -/obj/structure/rack, -/obj/item/pickaxe, -/obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"HD" = ( -/obj/structure/closet/secure_closet{ - icon_state = "hop"; - name = "\proper first officer's locker"; - req_access_txt = "57" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/sign/poster/official/bless_this_spess{ - pixel_y = 32 +/obj/machinery/door/airlock/medical/glass{ + dir = 4; + name = "Infirmary"; + req_access_txt = "5" }, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack, -/obj/item/storage/backpack/satchel/leather, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/nanotrasen/officer/skirt, -/obj/item/clothing/under/nanotrasen/officer, -/obj/item/clothing/suit/armor/vest/hop, -/obj/item/clothing/gloves/color/white, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/nanotrasen/officer, -/obj/item/assembly/flash/handheld, -/obj/item/storage/box/ids, -/obj/item/storage/box/PDAs, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"HE" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Blast Door"; - dir = 4 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"HK" = ( -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"HU" = ( -/obj/structure/chair{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/borderfloor{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue, /turf/open/floor/plasteel/white, /area/ship/medical) -"HV" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Ib" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/railing, +"BO" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, /turf/open/floor/plasteel, /area/ship/hallway/central) -"Ie" = ( -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 +"BS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_cw{ dir = 1 }, -/obj/machinery/photocopier, -/obj/machinery/computer/helm/viewscreen/directional/west, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"Ig" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"BU" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Ih" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/turf/open/floor/plating, +/area/ship/crew/canteen) +"BY" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/camera/autoname{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 10 }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ii" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/disposalpipe/segment{ - dir = 9 + dir = 6 }, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Ci" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_enginevent" }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Iq" = ( -/obj/structure/table, -/obj/item/multitool{ - pixel_y = 8 +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"Ck" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/welding{ - pixel_y = -1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"Iv" = ( -/obj/machinery/pipedispenser, -/obj/structure/cable{ - icon_state = "2-8" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-4" +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Cm" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Cn" = ( +/obj/structure/table/wood, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 6 +/obj/machinery/airalarm/directional/north, +/obj/item/reagent_containers/food/drinks/bottle/champagne{ + pixel_x = 6; + pixel_y = 22 }, -/obj/machinery/button/door{ - id = "osprey_thruster_starboard"; - name = "Blast Door Control"; - pixel_y = 25 +/obj/item/reagent_containers/food/drinks/bottle/champagne{ + pixel_x = -6; + pixel_y = 22 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Ix" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/item/reagent_containers/food/drinks/modglass/large{ + pixel_x = 7; + pixel_y = 12 }, -/obj/machinery/suit_storage_unit/engine, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 8 +/obj/item/reagent_containers/food/drinks/modglass/large{ + pixel_x = -6; + pixel_y = 12 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/item/reagent_containers/food/drinks/modglass/large{ + pixel_y = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Iz" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24"; - dir = 8 +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"Co" = ( +/obj/structure/chair/sofa/blue/corpo/left/directional/east, +/turf/open/floor/wood, +/area/ship/crew) +"Cv" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/security) +"Cz" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"CA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 6 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"CH" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"CI" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"CJ" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"IA" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/structure/closet/crate/internals, -/obj/item/clothing/suit/space/orange, -/obj/item/clothing/suit/space/orange, -/obj/item/clothing/suit/space/orange, -/obj/item/clothing/head/helmet/space/orange, -/obj/item/clothing/head/helmet/space/orange, -/obj/item/clothing/head/helmet/space/orange, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"IL" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"IR" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/machinery/camera{ + dir = 6 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/turf/open/floor/plasteel, +/area/ship/crew) +"CK" = ( +/obj/structure/closet/secure_closet/security{ + populate = 0; + req_access = list(2) }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/poddoor/shutters{ - id = "ospreykitchen" +/obj/structure/sign/poster/retro/lasergun_new{ + pixel_x = 32 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"IT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/nanotrasen/security, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/head/nanotrasen/cap/security, +/obj/item/clothing/head/nanotrasen/beret/security, +/obj/item/clothing/glasses/sunglasses, +/obj/item/storage/backpack/security, +/obj/item/storage/box/handcuffs, +/obj/item/reagent_containers/spray/pepper, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm/rubbershot, +/obj/effect/turf_decal/trimline/opaque/vired/line, +/obj/item/storage/belt/security, +/obj/item/melee/knife/survival, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"CN" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_packagesort" }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/structure/sign/poster/official/random{ + pixel_x = 32 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"IU" = ( -/obj/effect/landmark/start/paramedic, -/obj/effect/turf_decal/corner/opaque/lime{ +/turf/open/floor/plating, +/area/ship/cargo) +"CO" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/eva) +"CP" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 10 + }, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"CR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 5 }, /turf/open/floor/plasteel/white, /area/ship/medical) -"IV" = ( -/obj/structure/chair{ +"CV" = ( +/obj/machinery/power/shuttle/engine/fueled/plasma{ dir = 4 }, -/obj/structure/sign/poster/official/high_class_martini{ - pixel_y = -32 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 10 +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_thrusters_port"; + name = "Thruster Blast Door" }, -/obj/machinery/light/directional/west, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"IW" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/dorm) -"IX" = ( -/obj/effect/turf_decal/box/corners{ +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"CW" = ( +/obj/machinery/cryopod{ dir = 4 }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"IY" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/engineering/atmospherics) -"Jc" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/shower{ +/turf/open/floor/circuit, +/area/ship/crew/cryo) +"Da" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_x = 25 +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"Db" = ( +/obj/structure/chair/comfy/blue/corpo{ + dir = 4 }, -/turf/open/floor/noslip, -/area/ship/engineering) -"Jl" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"Dg" = ( +/obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Jt" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Jw" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 5 }, -/obj/machinery/door/window/eastleft, -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_garbage" +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"Dk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/janitor) -"JD" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/effect/turf_decal/industrial/warning/corner, -/obj/effect/turf_decal/corner/opaque/lime, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 4 +"Dl" = ( +/obj/machinery/computer/cryopod/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"Dr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/blue/filled/end, /turf/open/floor/plasteel/white, /area/ship/medical) -"JG" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 +"Ds" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/obj/structure/disposalpipe/trunk{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 5; - pixel_y = -24 +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/button/door{ - dir = 1; - id = "ospreykitchen"; - name = "Shutter Control"; - pixel_x = -5; - pixel_y = -25 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"JL" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/drinks/shaker, -/obj/item/reagent_containers/condiment/enzyme, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Dy" = ( +/obj/structure/railing{ dir = 8 }, -/obj/item/reagent_containers/glass/rag, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"JN" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/stairs{ dir = 1 }, -/obj/machinery/door/poddoor{ - id = "osprey_tank_vent" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"JO" = ( -/obj/machinery/holopad/emergency/engineering, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"JW" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"JX" = ( -/obj/structure/sign/departments/engineering, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/janitor) -"Ka" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/area/ship/bridge) +"DC" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Computer Core" }, /obj/structure/cable{ icon_state = "4-8" @@ -5629,849 +5344,883 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cabinet/fireaxe{ - pixel_y = 32 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Ko" = ( -/obj/structure/window/plasma/reinforced, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"DD" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"KA" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"KC" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"KD" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"DH" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"KE" = ( -/obj/structure/closet/secure_closet{ - icon_state = "brig_phys"; - name = "paramedic's locker" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"DM" = ( +/obj/machinery/door/firedoor/window, +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierbridge"; + name = "Window Blast Door" }, -/obj/item/storage/backpack/duffelbag/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/medic, -/obj/item/storage/backpack/messenger/para, -/obj/item/clothing/shoes/sneakers/blue, -/obj/item/clothing/under/rank/medical/paramedic/skirt, -/obj/item/clothing/under/rank/medical/paramedic, -/obj/item/clothing/head/soft/paramedic, -/obj/item/storage/belt/medical, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"KI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"KL" = ( -/obj/structure/chair/comfy/orange/directional/south, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "0-8" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/ship/bridge) -"La" = ( +"DP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"DQ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"Eb" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "5-10" }, -/obj/structure/disposalpipe/junction/flip, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Lc" = ( -/obj/machinery/computer/med_data{ - dir = 4 +"Eh" = ( +/obj/structure/railing{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ll" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"Lt" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/siding/yellow{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"Ei" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/effect/turf_decal/industrial/shutoff, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Lz" = ( -/obj/structure/table/reinforced, +"Em" = ( +/obj/machinery/door/window/southright{ + name = "Kitchen"; + req_access_txt = "28" + }, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/machinery/door/poddoor/shutters{ - id = "ospreykitchen" - }, -/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"LB" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible, -/obj/effect/turf_decal/industrial/warning{ +"Eq" = ( +/obj/effect/turf_decal/atmos/oxygen, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 8; + piping_layer = 1 + }, +/turf/open/floor/engine/o2, +/area/ship/engineering/atmospherics) +"Er" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"LE" = ( -/obj/machinery/door/window/brigdoor/westleft{ - name = "AI Core Access"; - req_one_access_txt = "16" +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 }, -/obj/structure/rack, -/obj/item/aiModule/core/full/asimov, -/obj/item/aiModule/core/full/corp, -/obj/item/aiModule/core/freeformcore, -/obj/item/aiModule/reset/purge{ - pixel_y = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"LF" = ( -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"LK" = ( -/obj/structure/window/reinforced, -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 2; - pixel_y = 10 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"LV" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"LW" = ( /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Ev" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Ey" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"LX" = ( -/obj/structure/disposalpipe/trunk{ +/obj/effect/turf_decal/borderfloor, +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 + }, +/obj/structure/chair/handrail{ dir = 4 }, -/obj/structure/disposaloutlet{ - dir = 1 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/eva) +"Ez" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_garbage" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/ntspaceworks_big/two{ + dir = 8 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"Ma" = ( /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"EB" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/turretid{ - pixel_x = 28; - req_access = null; - req_access_txt = "16" - }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/cargo) +"ED" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"Mc" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/mineral/titanium/nodiagonal, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Mo" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Mu" = ( -/obj/structure/window/reinforced{ - dir = 8 +"EF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer4{ + dir = 4; + piping_layer = 5 }, -/obj/structure/closet/secure_closet{ - icon_state = "eng_secure"; - name = "engineer's locker"; - req_access = list(11) +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"EJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/obj/item/storage/backpack/industrial, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/under/rank/engineering/engineer/nt, -/obj/item/clothing/under/rank/engineering/engineer/nt/skirt, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/head/hardhat/weldhat, -/obj/item/storage/belt/utility/full/engi, -/obj/machinery/light_switch{ - pixel_y = 24 +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"EQ" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + name = "Air to Supply" }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ES" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/janitorialcart{ dir = 8 }, -/obj/item/holosign_creator/engineering, -/obj/item/storage/box/metalfoam, -/obj/item/gun/energy/plasmacutter, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"My" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"EU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"EV" = ( +/obj/structure/bed, +/obj/structure/curtain/bounty, +/obj/item/bedsheet/nanotrasen, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"EX" = ( +/obj/machinery/door/airlock/command{ dir = 4; - sortTypes = list(16,26); - tag = "Dormitories" + name = "Captain's Quarters"; + req_access_txt = "20" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm/dormtwo) +"EY" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp/green, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"MB" = ( -/obj/structure/sign/departments/engineering, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"MJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"Fi" = ( +/obj/machinery/holopad/emergency/command, +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Fl" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "5-10" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"ML" = ( -/obj/effect/turf_decal/box, -/obj/machinery/shower{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Fo" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/cargo) -"MM" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/engineering) -"MR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"MT" = ( -/obj/machinery/power/ship_gravity, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning/corner, -/turf/open/floor/plasteel/patterned/grid, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Fp" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering) -"Nd" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"Fx" = ( +/obj/structure/railing/corner, +/obj/structure/table/reinforced, +/obj/machinery/fax/nanotrasen, /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Ni" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 + icon_state = "1-8" }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Nm" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Fy" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"FD" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"Np" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 8 }, +/obj/structure/sign/poster/official/safety_eye_protection{ + pixel_y = 32 + }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"Nq" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/area/ship/engineering) +"FK" = ( +/obj/machinery/computer/aifixer, +/obj/machinery/camera/motion{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"FN" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/camera{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"FO" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"FP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ - dir = 9 +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_cw, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"FQ" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/sign/poster/official/moth/piping{ - pixel_x = 32 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Nr" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/structure/table, -/obj/item/stack/sheet/metal/five{ - pixel_x = -3 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"FS" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/stack/sheet/glass/five{ - pixel_x = 2; - pixel_y = 5 +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 6 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"FX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"Nv" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/structure/sign/poster/retro/radio{ - pixel_x = -32 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"FY" = ( +/obj/structure/table/glass, +/obj/item/storage/box/bodybags{ + pixel_x = -7; + pixel_y = 4 }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"Nw" = ( -/obj/machinery/door/airlock{ - name = "Dormitory" +/obj/item/reagent_containers/glass/bottle/formaldehyde{ + pixel_x = 8; + pixel_y = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/light/small/directional/south, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor{ - dir = 1 +/obj/item/reagent_containers/syringe, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"Ga" = ( +/obj/effect/landmark/start/station_engineer, +/obj/structure/chair{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel, +/area/ship/engineering) +"Gd" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/end{ dir = 1 }, -/turf/open/floor/plasteel, -/area/ship/crew/dorm) -"NA" = ( -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"Gg" = ( +/obj/structure/railing, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"ND" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"NH" = ( -/obj/structure/table/glass, -/obj/item/storage/backpack/duffelbag/med/surgery{ - pixel_x = -3; - pixel_y = 13 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/pink{ +/turf/open/floor/plasteel/stairs{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/pink, -/obj/item/clothing/gloves/color/latex/nitrile, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"NP" = ( -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ +/area/ship/cargo) +"Gi" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/structure/window/reinforced{ +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Gq" = ( +/obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"NT" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"NW" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Of" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on/layer2{ - dir = 1 +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"Gr" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" }, /obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"Oh" = ( -/obj/structure/dresser, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Oj" = ( -/obj/effect/landmark/start/scientist, -/obj/structure/chair/office/light, +/obj/item/clothing/shoes/sneakers/brown, +/obj/item/clothing/under/nanotrasen/supply/qm, +/obj/item/storage/backpack/satchel/leather, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/head/nanotrasen/cap/supply, +/obj/structure/closet/secure_closet/quartermaster{ + populate = 0 + }, +/obj/item/stack/tape, +/turf/open/floor/plasteel/tech, +/area/ship/cargo) +"Gy" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/medical) +"Gz" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"GE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/corner/opaque/mauve, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 8 +/obj/structure/sign/warning/electricshock{ + pixel_x = -23 }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"Ol" = ( -/obj/effect/turf_decal/corner/opaque/purple{ +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"GF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) -"Oq" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +"GG" = ( +/obj/machinery/power/shuttle/engine/fueled/plasma{ + dir = 4 }, -/obj/structure/sign/poster/official/miners{ - pixel_x = 32 +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_thrusters_starboard"; + name = "Thruster Blast Door" }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Os" = ( +/turf/open/floor/plating, +/area/ship/engineering) +"GH" = ( /obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/light/small/directional/south, /obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 1; - id = "osprey_cargofield"; - locked = 1 - }, -/obj/machinery/door/poddoor{ - id = "ospreydoors"; - name = "Cargo Bay Blast Door"; - dir = 4 + icon_state = "4-8" }, /turf/open/floor/plasteel/tech, +/area/ship/engineering) +"GK" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/cargo) -"Ou" = ( -/obj/structure/closet/secure_closet{ - icon_door = "mixed"; - icon_state = "generic"; - name = "custodial closet" - }, -/obj/item/storage/backpack, -/obj/item/clothing/shoes/galoshes, -/obj/item/clothing/under/rank/civilian/janitor, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/science, -/obj/item/storage/belt/janitor, -/obj/item/clothing/head/soft/purple, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 5 +"GY" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/structure/cable, -/obj/item/holosign_creator/janibarrier, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"OA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced, -/obj/structure/table, -/obj/item/circuitboard/machine/pacman/super{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/circuitboard/machine/pacman/super{ - pixel_y = -4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Ha" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 +/obj/machinery/light/small/directional/south, +/obj/structure/table/wood, +/obj/item/storage/lockbox/medal{ + pixel_y = 6 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"He" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"OB" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +"Hh" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/structure/window/reinforced{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-9" }, -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_garbage" +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Hj" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/item/trash/popcorn, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"OD" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "osprey_cargoload" +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/plating, -/area/ship/cargo) -"OG" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "osprey_production" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 }, -/obj/effect/turf_decal/industrial/warning/cee{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 10 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"OH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"OS" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreymed" + dir = 6 }, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/medical) -"OV" = ( /obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/sign/departments/custodian, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/janitor) -"OW" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/green{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"Hk" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 1 }, -/obj/structure/disposalpipe/sorting/mail/flip{ - sortTypes = list(7,8,15,29,30); - tag = "Command" +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/poddoor/shutters{ + id = "harriercargoaccess" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"Pa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/area/ship/storage/eva) +"Ho" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 11 }, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"Pe" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 + }, +/obj/effect/turf_decal/trimline/opaque/vired/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Hq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"Hu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Pg" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/ntblue{ +"Hw" = ( +/obj/structure/chair/comfy/blue/corpo/directional/west, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"Pj" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 2 +"Hx" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"HC" = ( +/obj/structure/chair/stool/bar{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding, /turf/open/floor/plasteel, -/area/ship/cargo) -"Pl" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"Po" = ( -/turf/open/floor/plasteel/dark, -/area/ship/science) -"Pq" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 +/area/ship/crew/canteen) +"HD" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 1; + piping_layer = 1 }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"HG" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Helm" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"PE" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/effect/landmark/start/head_of_personnel, +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 1 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"HI" = ( +/obj/structure/bed, +/obj/item/bedsheet/captain, +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"HL" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" }, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_y = 25 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"PJ" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor{ dir = 1 }, -/obj/effect/turf_decal/siding/white{ +/turf/open/floor/plasteel/tech, +/area/ship/engineering/engine) +"HO" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/curtain, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"HW" = ( +/obj/machinery/atmospherics/components/unary/shuttle/heater{ dir = 4 }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"HY" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"PP" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/crew/cryo) -"PQ" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortTypes = list(12,13,14,23,24,25,27,28); - tag = "Research" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"Ia" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Ig" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/vired/line, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Ih" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/south, /turf/open/floor/plasteel, -/area/ship/cargo) -"PS" = ( -/obj/structure/window/reinforced{ - dir = 4 +/area/ship/hallway/starboard) +"Ij" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/components/binary/volume_pump, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"PU" = ( -/obj/structure/chair{ +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer5{ dir = 8 }, -/obj/structure/railing{ - dir = 5; - layer = 4.1 - }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"Im" = ( +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"In" = ( +/obj/structure/chair/sofa/blue/corpo/right/directional/north, /turf/open/floor/plasteel, -/area/ship/cargo) -"PV" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortTypes = list(9,10,11); - tag = "Medbay" +/area/ship/hallway/central) +"Io" = ( +/obj/machinery/advanced_airlock_controller{ + pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, +/turf/open/floor/engine, +/area/ship/engineering/engine) +"Is" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"Iu" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/carpet/cyan, /area/ship/medical) -"PW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"Qb" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, +"IE" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/dormtwo) +"IK" = ( +/obj/structure/table/glass, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"IM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/eva) +"IS" = ( +/obj/structure/sign/warning/docking{ + pixel_y = -8 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) +"IT" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, /area/ship/engineering/atmospherics) -"Qm" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +"IV" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -6479,624 +6228,594 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"IX" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/box, +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ - dir = 8 + icon_state = "0-4" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Qr" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage/eva) +"Jd" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-2" }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Je" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/airalarm/directional/south, -/obj/machinery/camera/autoname{ - dir = 1 +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Jk" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"Jl" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Qt" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Qv" = ( -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Jt" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/storage/eva) +"Ju" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, +/turf/open/floor/wood, +/area/ship/crew) +"Jv" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/cargo) +"Jw" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-8" }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Qy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"QD" = ( -/obj/machinery/atmospherics/components/binary/volume_pump, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Jx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"JB" = ( +/obj/effect/turf_decal/number/nine{ + dir = 8 + }, +/obj/machinery/button/door{ + dir = 4; + id = "harrier_thrusters_starboard"; + name = "Blast Door Control"; + pixel_x = -25; + pixel_y = 6 + }, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"QE" = ( -/obj/structure/disposalpipe/segment{ +"JC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"JH" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"JK" = ( +/obj/machinery/atmospherics/pipe/manifold/purple/visible{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, +/turf/open/floor/plating, +/area/ship/engineering) +"JL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/blue/corner, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"QI" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"QJ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "osprey_cargoload" - }, -/obj/structure/sign/warning{ - pixel_y = -25 +"JN" = ( +/obj/machinery/photocopier, +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/ship/cargo) -"QK" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +"JP" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ dir = 5 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"QW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"Re" = ( -/obj/structure/sign/number/one{ - color = "Black" - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"Ri" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Ro" = ( +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"JQ" = ( +/obj/structure/sign/warning/vacuum/external, /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"Rq" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/crew/dorm) -"Rr" = ( -/turf/open/floor/plasteel/stairs/left{ - dir = 4 +/area/ship/hallway/starboard) +"JS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 }, -/area/ship/cargo) -"Ry" = ( -/obj/structure/table/reinforced, -/obj/item/areaeditor/shuttle{ - pixel_x = 5; - pixel_y = 1 +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"JT" = ( +/obj/structure/table/glass, +/obj/item/storage/box/matches{ + pixel_y = 9 }, -/obj/item/megaphone/command{ - pixel_x = 1; - pixel_y = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/ntblue, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"RB" = ( -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 8 +"JU" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plasteel/patterned, /area/ship/engineering/atmospherics) -"RD" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "24" - }, +"JX" = ( /obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/borderfloor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"RE" = ( -/obj/structure/closet/crate/engineering{ - name = "fuel crate" +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"JZ" = ( +/obj/structure/chair/sofa/blue/corpo/left, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Kc" = ( +/obj/structure/closet/secure_closet/atmospherics{ + populate = 0 }, -/obj/item/stack/sheet/mineral/plasma/twenty, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech/techmaint, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/airalarm/directional/south, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/nanotrasen/engineering/atmos, +/obj/item/clothing/suit/nanotrasen/vest/blue, +/obj/item/storage/backpack/industrial, +/obj/item/clothing/head/hardhat/nanotrasen/blue, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/glasses/meson/engine, +/obj/item/analyzer, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"RI" = ( -/obj/structure/disposalpipe/trunk{ +"Kd" = ( +/obj/structure/chair{ dir = 1 }, -/obj/machinery/disposal/bin, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_x = 25 - }, -/obj/structure/sign/poster/official/moth/smokey{ - pixel_y = -32 - }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 10 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"RO" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Kg" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ship/crew) +"Ki" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ - dir = 10 - }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"RQ" = ( -/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/plasteel, -/area/ship/cargo) -"RU" = ( -/obj/structure/table/wood, -/obj/item/toy/plush/carpplushie, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"RW" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/area/ship/engineering) +"Kj" = ( +/obj/structure/closet/secure_closet/engineering_personal{ + populate = 0 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"RY" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible, -/turf/open/floor/plasteel/patterned/grid, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/firealarm/directional/south, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/nanotrasen/engineering, +/obj/item/clothing/suit/nanotrasen/vest, +/obj/item/storage/backpack/industrial, +/obj/item/clothing/head/hardhat/nanotrasen, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"Sa" = ( -/obj/structure/table, -/obj/item/storage/box/lights/mixed{ - pixel_x = 4; - pixel_y = 9 +"Kl" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/airalarm/directional/south, -/obj/item/storage/box/mousetraps{ - pixel_x = -9 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"Sd" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Se" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"Si" = ( /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/nsorange/line, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Kq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"Kr" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Sm" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/vired/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Kt" = ( +/obj/structure/table/wood, +/obj/structure/bedsheetbin, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 }, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"Kx" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Su" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"SB" = ( -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/door/poddoor{ - id = "osprey_disposals"; - name = "Disposals Blast Door"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"SC" = ( -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/mauve, -/turf/open/floor/plasteel/white, -/area/ship/science) -"SD" = ( +/obj/structure/closet/emcloset/wall/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Ky" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Kz" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "0-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"SG" = ( -/obj/structure/closet/secure_closet{ - icon_state = "qm"; - name = "\proper quartermaster's locker"; - req_access_txt = "41" +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_thrusters_port"; + name = "Thruster Blast Door" + }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"KA" = ( +/obj/structure/crate_shelf, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"KB" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable, -/obj/item/storage/backpack, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack/satchel/leather, -/obj/item/storage/backpack/duffelbag, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/under/rank/cargo/qm/skirt, -/obj/item/clothing/under/rank/cargo/qm, -/obj/item/clothing/head/beret/qm, -/obj/item/stamp/qm, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/gloves/fingerless, -/obj/item/megaphone/cargo, -/obj/item/clothing/head/safety_helmet, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -8; - pixel_y = -16 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"SK" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/taperecorder, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/dark, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"KC" = ( +/turf/closed/wall/mineral/titanium/interior, /area/ship/bridge) -"SO" = ( -/obj/effect/turf_decal/siding/wood{ +"KG" = ( +/obj/structure/table/wood/reinforced, +/obj/item/folder/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"KM" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"KN" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/poddoor/shutters{ + id = "harriercargoaccess" }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"SQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northleft{ - dir = 2; - name = "Cargo Desk"; - req_access_txt = "31" +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"KO" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/structure/noticeboard{ - dir = 4; - pixel_x = -32 +/obj/effect/turf_decal/siding/yellow{ + dir = 10 }, -/obj/item/table_bell, -/obj/machinery/door/poddoor/shutters{ - id = "ospreycargo" +/obj/machinery/firealarm/directional/south, +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ship/cargo/office) -"SR" = ( -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"KQ" = ( +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/structure/disposalpipe/junction/flip{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/structure/closet/secure_closet{ - icon_state = "cargo"; - name = "\proper cargo technician's locker"; - req_access_txt = "31" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding{ + dir = 8 }, -/obj/item/storage/backpack, -/obj/item/storage/backpack/satchel, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack/duffelbag, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/under/rank/cargo/tech/skirt, -/obj/item/clothing/under/rank/cargo/tech, -/obj/item/clothing/head/safety_helmet, -/obj/machinery/airalarm/directional/south, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"SU" = ( -/obj/machinery/cryopod{ - dir = 1 +/area/ship/crew/canteen) +"KS" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm) +"KT" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/sign/poster/official/work_for_a_future{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/cryo) -"SW" = ( -/obj/machinery/button/door{ - dir = 8; - id = "ospreysci_window"; - name = "Shutter Control"; - pixel_x = 25 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"SX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"Tb" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "osprey_atmosfield" +/turf/open/floor/plasteel, +/area/ship/hallway/starboard) +"KW" = ( +/obj/structure/chair/sofa/blue/corpo/right/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"KY" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"KZ" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Lb" = ( /obj/effect/turf_decal/industrial/warning{ - dir = 1 + dir = 8 }, -/obj/machinery/door/poddoor{ - id = "osprey_tank_vent" +/obj/machinery/conveyor_switch/oneway{ + id = "harrier_garbage" }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"Tg" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Ti" = ( -/obj/machinery/conveyor/inverted{ - dir = 5; - id = "osprey_production" +/obj/machinery/button/massdriver{ + id = "harrier_disposals"; + name = "disposals button"; + pixel_x = 5; + pixel_y = 20 + }, +/obj/machinery/button/shieldwallgen{ + id = "harrier_disposalfield"; + pixel_x = -5; + pixel_y = 20 }, /turf/open/floor/plating, -/area/ship/cargo) -"Tn" = ( +/area/ship/crew/janitor) +"Lc" = ( /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, -/obj/machinery/power/smes/shuttle/precharged{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Thruster Blast Door"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Tq" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"Tr" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"Lf" = ( +/obj/structure/railing{ dir = 4 }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Thruster Blast Door"; +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Tt" = ( -/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/siding/yellow{ + dir = 5 + }, /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"Lh" = ( +/obj/structure/railing{ + dir = 5; + layer = 4.1 }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"Tw" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/effect/turf_decal/siding/yellow{ + dir = 5 }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"Li" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, -/obj/structure/sign/poster/official/safety_internals{ - pixel_x = -32 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/crew) +"Lj" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/trimline/opaque/blue/line, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"Lp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Tx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Tz" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Lv" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"TG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Lw" = ( /obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"TH" = ( -/obj/structure/disposalpipe/junction, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -7104,193 +6823,170 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"TJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"TP" = ( -/obj/structure/closet/secure_closet{ - icon_state = "mining"; - name = "miner's equipment locker"; - req_access_txt = "48" - }, -/obj/item/clothing/under/rank/cargo/miner, -/obj/item/mining_scanner, -/obj/item/mining_scanner, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"TR" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/bar{ - dir = 4 +/obj/machinery/camera{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/bar, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"TU" = ( -/obj/machinery/door/airlock/research{ - name = "Science Lab"; - req_access_txt = "47" +"Lz" = ( +/obj/structure/chair/comfy/blue/corpo/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"LD" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" }, -/turf/open/floor/plasteel, -/area/ship/science) -"TW" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/conveyor_switch/oneway{ - id = "osprey_cargoload" +/turf/open/floor/plating, +/area/ship/hallway/starboard) +"LJ" = ( +/obj/machinery/advanced_airlock_controller{ + pixel_x = -24 }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"TZ" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/rnd/production/circuit_imprinter/department/science, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"Uc" = ( -/obj/structure/window/plasma/reinforced{ +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/starboard) +"LK" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"LP" = ( +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/machinery/atmospherics/pipe/layer_manifold/visible, -/obj/machinery/button/door{ - dir = 1; - id = "osprey_tank_vent"; - pixel_x = -5; - pixel_y = -25 +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"LW" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/button/shieldwallgen{ - dir = 1; - id = "osprey_atmosfield"; - pixel_x = 5; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"LZ" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Uj" = ( /obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows" +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" }, -/obj/machinery/door/firedoor/heavy, /turf/open/floor/plating, -/area/ship/medical) -"Uo" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/area/ship/engineering) +"Me" = ( +/obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Mf" = ( +/obj/structure/railing{ dir = 8 }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"UB" = ( -/obj/machinery/sleeper{ - dir = 4 +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/lime{ +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Mn" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"Mo" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ + dir = 9 }, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_x = -25 +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Ms" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"UG" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"UL" = ( -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"UT" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Helm" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"UU" = ( -/obj/structure/chair{ - dir = 8 +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"UZ" = ( -/obj/effect/turf_decal/siding/white{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"Vf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/obj/machinery/camera, +/turf/open/floor/plasteel, +/area/ship/engineering) +"Mu" = ( +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/ship/crew) +"Mv" = ( +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"Mx" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"Vh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Vl" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo) -"Vq" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_packagesort" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plating, -/area/ship/cargo/office) -"Vs" = ( -/obj/effect/turf_decal/corner/opaque/red, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"MB" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -7298,2621 +6994,4766 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Vx" = ( -/obj/machinery/door/window/eastleft, -/obj/machinery/shower{ - pixel_y = 10 +/obj/structure/sign/poster/official/random{ + pixel_y = 32 }, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"VA" = ( -/obj/structure/cable{ - icon_state = "0-8" +/turf/open/floor/wood, +/area/ship/crew) +"MK" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 }, -/obj/machinery/power/smes/shuttle/precharged{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 4 }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" +/turf/open/floor/plasteel, +/area/ship/hallway/port) +"MM" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner, /obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Thruster Blast Door"; - dir = 4 + dir = 4; + id = "harrier_thrusters_starboard"; + name = "Thruster Blast Door" + }, +/obj/structure/cable{ + icon_state = "0-4" }, /turf/open/floor/plating, /area/ship/engineering) -"VC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +"MP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/chair/handrail{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/science) -"VF" = ( -/obj/structure/chair/comfy/orange/directional/east, -/obj/effect/landmark/start/captain, -/obj/machinery/airalarm/directional/west, -/obj/structure/sign/poster/retro/lasergun_new{ - pixel_y = 32 +/area/ship/science/ai_chamber) +"MQ" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"VI" = ( -/obj/effect/landmark/start/scientist, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"VL" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 +/obj/structure/disposalpipe/junction/flip{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"MT" = ( +/obj/structure/bed, +/obj/structure/curtain/cloth/fancy, +/obj/item/bedsheet/head_of_personnel, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"MV" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"VN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"MW" = ( +/obj/structure/chair/sofa/blue/corpo/right/directional/east, +/obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, -/area/ship/crew/canteen) -"VR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 +/area/ship/crew) +"MX" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"MZ" = ( +/turf/template_noop, +/area/template_noop) +"Nc" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Ni" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/effect/turf_decal/industrial/shutoff, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Nk" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/north, +/obj/machinery/camera, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"VS" = ( +/area/ship/hallway/port) +"Nl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 + dir = 4 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"VV" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science/ai_chamber) -"VW" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/door/poddoor/shutters{ - id = "ospreysci_window" +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"Wb" = ( -/obj/structure/table, /turf/open/floor/plasteel, -/area/ship/crew/cryo) -"Wc" = ( -/obj/effect/turf_decal/industrial/loading, -/obj/machinery/mineral/processing_unit_console{ - machinedir = 1; - pixel_x = -32; - pixel_y = -4 +/area/ship/storage/eva) +"Nm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Wf" = ( -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Nn" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/ntspaceworks_big/five{ + dir = 8 }, /obj/structure/disposalpipe/segment, -/obj/machinery/camera/autoname{ - dir = 5 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"No" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Wj" = ( -/obj/machinery/mineral/processing_unit, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating, -/area/ship/cargo) -"Wk" = ( -/obj/structure/sign/number/four{ - color = "Black" +/area/ship/engineering/engine) +"Np" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Helm" }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"Wn" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/south, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"Wq" = ( -/obj/docking_port/stationary{ - dwidth = 15; - width = 30; - height = 15; - dir = 2 +/obj/effect/landmark/start/captain, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 }, -/turf/template_noop, -/area/template_noop) -"Ws" = ( -/obj/structure/chair/comfy/orange/directional/east, -/obj/effect/landmark/start/head_of_personnel, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/carpet/blue, +/turf/open/floor/plasteel/dark, /area/ship/bridge) -"WE" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +"Nq" = ( +/obj/machinery/door_timer{ + id = "Cell 1"; + pixel_y = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"WK" = ( -/obj/structure/window/reinforced{ +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/security) +"Nr" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 8 }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/effect/turf_decal/number/four{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/machinery/light/small/directional/north, +/obj/machinery/camera{ + dir = 6 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"WN" = ( -/turf/open/floor/plasteel/white, -/area/ship/medical) -"WS" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 8 +"Nt" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/landmark/start/assistant, -/obj/structure/railing, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"WU" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/engineering) -"WZ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Canteen"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ + dir = 6 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 1; + name = "Fuel Mixer" }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Nv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/borderfloor{ - dir = 4 + dir = 6 }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Ny" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/door/airlock/glass{ + dir = 4; + name = "Crew Quarters"; + req_ship_access = 0 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"Xe" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/brown, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Xi" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/borderfloor{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Nz" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/power/terminal{ dir = 1 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Xl" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 1 +/obj/structure/sign/warning/electricshock{ + pixel_y = -20 }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_x = -32 +/turf/open/floor/plating, +/area/ship/engineering/engine) +"ND" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierdoors"; + name = "Cargo Bay Blast Door" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Xo" = ( -/obj/docking_port/stationary{ - dwidth = 15; - width = 30; - height = 15 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "harrier_cargofield"; + locked = 1 }, -/turf/template_noop, -/area/template_noop) -"Xp" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access_txt = "20"; - dir = 4 +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plating, +/area/ship/storage/eva) +"NE" = ( +/obj/structure/filingcabinet/double{ + dir = 8; + pixel_x = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_x = 32 }, -/obj/effect/turf_decal/borderfloor{ +/turf/open/floor/wood, +/area/ship/crew/law_office) +"NF" = ( +/obj/structure/toilet{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Xr" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 +/obj/structure/window/reinforced{ + dir = 1 }, +/obj/structure/curtain, /turf/open/floor/plasteel/freezer, /area/ship/crew/toilet) -"Xv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"NP" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"Xz" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"XE" = ( -/obj/structure/table/reinforced, -/obj/item/melee/knife/kitchen, -/obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/condiment/sugar, -/obj/item/reagent_containers/condiment/rice, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"NQ" = ( +/obj/structure/rack, +/obj/item/circuitboard/aicore, +/obj/item/stack/sheet/rglass{ + amount = 5 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"XK" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 4 +/obj/item/assembly/flash/handheld{ + pixel_x = 5 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/assembly/flash/handheld{ + pixel_x = -5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"XR" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/item/stock_parts/cell/high/plus, +/obj/item/borg/upgrade/ai, +/obj/item/aicard, +/obj/item/mmi/posibrain, +/obj/item/aiModule/reset/purge, +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"NS" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/manifold/green/hidden/layer1{ +/obj/machinery/light/small/directional/north, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"NT" = ( +/obj/machinery/power/smes/shuttle/precharged{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"XU" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_y = 12 - }, -/obj/item/lighter{ - pixel_x = -6; - pixel_y = -3 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/light/small/directional/north, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"XX" = ( -/obj/effect/turf_decal/borderfloor{ +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"NX" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Ob" = ( +/obj/structure/railing, +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/advanced_airlock_controller{ - pixel_x = -24 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Yc" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Yh" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/industrial/caution{ + dir = 4 }, -/obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plasteel, -/area/ship/crew/janitor) -"Yt" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/area/ship/engineering/engine) +"Oh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Yw" = ( -/obj/structure/noticeboard{ - pixel_y = 32 +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"Om" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew) +"Os" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 9 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"YD" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"YF" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/clipboard, -/obj/item/pen/red, -/obj/machinery/button/door{ - dir = 4; - id = "ospreycargo"; - name = "Shutter Control"; - pixel_x = -25; - pixel_y = 5 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = -5 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Ot" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/item/folder/yellow, -/obj/item/stamp/denied{ - pixel_x = 4 - }, -/obj/item/stamp{ - pixel_x = -5; - pixel_y = 9 +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Oy" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 }, -/obj/item/pen/red, -/obj/item/holochip{ - credits = 4000 +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"YH" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/wood, -/obj/item/trash/plate, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"YI" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows"; +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plating, -/area/ship/crew/dorm) -"YJ" = ( /obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"YK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"OA" = ( +/obj/structure/railing{ + dir = 1 }, /obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"YP" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/turf/open/floor/plasteel/stairs{ dir = 8 }, -/obj/structure/sign/poster/official/random{ - pixel_x = -32 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/science) -"YR" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Operations" - }, -/turf/open/floor/plasteel/dark, /area/ship/bridge) -"Zj" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Zo" = ( -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, +"OB" = ( +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Zr" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/medical) -"Zs" = ( -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/machinery/autolathe, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"OD" = ( +/obj/machinery/vending/snack/random, /obj/machinery/light/directional/south, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"Zu" = ( -/obj/effect/turf_decal/corner/opaque/brown, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/area/ship/hallway/central) +"OK" = ( +/obj/structure/table/reinforced, +/obj/item/table_bell{ + pixel_x = -4; + pixel_y = 13 }, +/turf/open/floor/plating, +/area/ship/crew/canteen) +"OO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 10 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"ZC" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/machinery/light/directional/south, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"ZJ" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/hallway/central) -"ZK" = ( -/obj/structure/window/reinforced{ - dir = 1 +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/structure/table, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"ZO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"OR" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"ZR" = ( -/obj/machinery/porta_turret/ai, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"ZW" = ( -/obj/structure/disposalpipe/junction{ +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"OW" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"ZX" = ( -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ - dir = 4 +/turf/open/floor/plating, +/area/ship/engineering/engine) +"OX" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair/office{ + dir = 8 }, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Blast Door"; +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Pb" = ( +/obj/structure/dresser{ dir = 4 }, -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"ZY" = ( +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"Pi" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"Pj" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"Pk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"Pm" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Pn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Po" = ( +/obj/effect/turf_decal/ntspaceworks_big/three{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Pq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/engine, +/area/ship/engineering/engine) +"Pr" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Ps" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/obj/structure/mirror{ + pixel_y = -25 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"Pu" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window/eastleft, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating, +/area/ship/cargo) +"Pv" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_packagesort" + }, +/obj/machinery/camera{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Pw" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Py" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/recharger, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Pz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"PA" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering) +"PC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew) +"PF" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"PH" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"PL" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"PQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"PU" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"PZ" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"Qb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Qf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 8 + }, +/obj/structure/chair/handrail{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Qm" = ( +/obj/machinery/atmospherics/components/binary/circulator{ + piping_layer = 5 + }, +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"Qn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Qs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/atmos{ + dir = 1; + name = "Atmospherics"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible/layer1, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"Qu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Qx" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/port) +"Qz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"QC" = ( +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/arrow_ccw{ + dir = 4 + }, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"QG" = ( +/obj/machinery/button/door{ + dir = 4; + id = "harrier_thrusters_port"; + name = "Blast Door Control"; + pixel_x = -25; + pixel_y = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"QH" = ( +/obj/effect/turf_decal/atmos/nitrogen, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + piping_layer = 1 + }, +/turf/open/floor/engine/n2, +/area/ship/engineering/atmospherics) +"QN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"QO" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/crew/law_office) +"QP" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/sink{ + pixel_y = 15 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"QQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"QR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/computer/helm/viewscreen/directional/south, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"QV" = ( +/obj/structure/railing, +/obj/machinery/autolathe, +/turf/open/floor/plasteel, +/area/ship/cargo) +"QW" = ( +/obj/machinery/door/airlock/command{ + dir = 8; + name = "First Officer's Quarters"; + req_access_txt = "57" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"QX" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ship/bridge) +"Ra" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Rb" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Rf" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierwindows"; + name = "Window Blast Door" + }, +/turf/open/floor/plating, +/area/ship/crew/law_office) +"Rg" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Rn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"Ro" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Rs" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"Rt" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/circuit, +/area/ship/crew/cryo) +"Rv" = ( +/obj/effect/turf_decal/number/nine{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Ry" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom/wideband/table{ + dir = 4; + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/megaphone/command, +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"RB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"RJ" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/crew/toilet) +"RR" = ( +/obj/effect/landmark/start/atmospheric_technician, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/engineering) +"RT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"RU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"RV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"RX" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 1; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Sb" = ( +/obj/structure/cable{ + icon_state = "5-10" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/firealarm/directional/north, +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Sj" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 1; + piping_layer = 5 + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"Sm" = ( +/obj/structure/cable{ + icon_state = "6-9" + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 29; + tag = "Internal Affairs Office" + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Sn" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) +"Sr" = ( +/obj/structure/railing{ + dir = 6; + layer = 3.1 + }, +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 1; + name = "Environment to Recycling"; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"St" = ( +/obj/machinery/door/airlock/external, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"Sw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Sy" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"SB" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"SE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"SF" = ( +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"SM" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/ship/medical) +"SN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew) +"SS" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/starboard) +"SW" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8; + icon_state = "computer-right" + }, +/obj/effect/turf_decal/siding/yellow, +/turf/open/floor/plasteel, +/area/ship/engineering) +"SZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"Ta" = ( +/obj/structure/bookcase, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"Tf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Th" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "harriereva" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"Tj" = ( +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Tm" = ( +/obj/structure/chair/comfy/blue/corpo/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"Tr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Tu" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/five{ + pixel_x = -3 + }, +/obj/item/stack/sheet/glass/five{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Tv" = ( +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Tx" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Tz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"TC" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4; + piping_layer = 1 + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"TD" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"TI" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/janitor) +"TJ" = ( +/obj/structure/chair/sofa/blue/corpo/right, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"TM" = ( +/obj/machinery/shower{ + pixel_y = 18 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/noslip, +/area/ship/storage/eva) +"TO" = ( +/obj/machinery/computer/helm{ + dir = 8; + icon_state = "computer-right" + }, +/obj/machinery/button/door{ + dir = 1; + id = "harrierwindows"; + name = "External Windows"; + pixel_x = -1; + pixel_y = -20 + }, +/obj/machinery/button/door{ + dir = 1; + id = "harrierbridge"; + name = "Bridge Lockdown"; + pixel_x = 10; + pixel_y = -20 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"TT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/obj/structure/chair/handrail{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/eva) +"TX" = ( +/obj/structure/filingcabinet/double{ + pixel_x = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/camera, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"TZ" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierbridge"; + name = "Window Blast Door" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"Ub" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/structure/cable{ + icon_state = "6-9" + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Ud" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Uf" = ( +/obj/structure/window/reinforced, +/obj/machinery/shower{ + pixel_y = 18 + }, +/obj/structure/curtain, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"Ug" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"Uj" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"Um" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/ship/crew) +"Up" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass{ + dir = 4; + name = "Crew Quarters"; + req_ship_access = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Uq" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"Ur" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Us" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"Ut" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Uw" = ( +/obj/structure/cable{ + icon_state = "6-9" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/chair/handrail{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Ux" = ( +/obj/machinery/atmospherics/components/binary/circulator/cold{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"UD" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"UF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"UI" = ( +/obj/structure/table/wood/reinforced, +/obj/item/flashlight/lamp/green, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"UJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8; + name = "Engine Waste to Environment"; + piping_layer = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"UN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 26; + tag = "Dormitories" + }, +/turf/open/floor/wood, +/area/ship/crew) +"US" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering) +"UT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"UV" = ( +/obj/structure/window/reinforced, +/obj/machinery/shower{ + pixel_y = 18 + }, +/obj/structure/curtain, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"UW" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/medical) +"UZ" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 9 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering) +"Vc" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/box, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage/eva) +"Vi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on/layer2, +/turf/open/floor/engine/air, +/area/ship/engineering/atmospherics) +"Vp" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"Vr" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "harriereva" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"Vs" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/ship/crew/janitor) +"Vv" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/hallway/port) +"VA" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"VE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/stairs, +/area/ship/storage/eva) +"VJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor, +/obj/machinery/door/airlock/public/glass{ + dir = 1; + name = "Canteen" + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"VO" = ( +/obj/structure/closet/secure_closet{ + icon_state = "med"; + name = "medicine locker"; + req_access = list(5) + }, +/obj/item/storage/box/gloves, +/obj/item/storage/box/masks, +/obj/item/storage/box/syringes, +/obj/item/storage/firstaid/fire{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/storage/firstaid/regular, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"VS" = ( +/obj/machinery/shower{ + dir = 4; + pixel_y = 10 + }, +/obj/structure/curtain, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/bridge) +"VY" = ( +/obj/structure/table/wood/reinforced, +/obj/item/paper_bin, +/obj/item/pen/fountain, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 + }, +/obj/machinery/camera{ + dir = 10 + }, +/obj/item/stamp/centcom, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"VZ" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/stamp/head_of_personnel{ + name = "first officer's rubber stamp"; + pixel_x = 6 + }, +/obj/item/pen/fourcolor{ + pixel_x = -6 + }, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Wa" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 15; + height = 15; + width = 30 + }, +/turf/template_noop, +/area/template_noop) +"Wd" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"We" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 + }, +/obj/machinery/camera, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Wj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Wk" = ( +/obj/machinery/door/window/brigdoor/security/cell/eastleft{ + id = "Cell 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Wm" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Wp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"Wt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Wv" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Wx" = ( +/obj/machinery/atmospherics/components/unary/shuttle/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/engineering) +"WH" = ( +/obj/structure/cable{ + icon_state = "6-9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"WL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/blue/filled/end{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"WN" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"WP" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"WR" = ( +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"WT" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/kotahi, +/turf/open/floor/wood, +/area/ship/crew) +"WV" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"Xf" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Xg" = ( +/obj/machinery/door/airlock/external/glass, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"Xj" = ( +/obj/structure/cable{ + icon_state = "5-10" + }, +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Xl" = ( +/obj/effect/turf_decal/atmos/plasma, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 8; + piping_layer = 1 + }, +/turf/open/floor/engine/plasma, +/area/ship/engineering/atmospherics) +"Xo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Xw" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_disposals"; + name = "Disposals Blast Door" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "harrier_disposalfield"; + locked = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/crew/janitor) +"Xz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"XB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"XF" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierbridge"; + name = "Window Blast Door" + }, +/obj/structure/cable{ + icon_state = "0-1" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"XH" = ( +/obj/structure/chair/sofa/blue/corpo/right/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ship/crew) +"XI" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"XK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"XL" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"XP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 9 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/light/directional/east, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"XQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"XW" = ( +/turf/open/floor/plasteel/stairs, +/area/ship/storage/eva) +"XY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Yb" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierbridge"; + name = "Window Blast Door" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"Yc" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"Yi" = ( +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"Yk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew) +"Yp" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering/atmospherics) +"Yr" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" + }, +/turf/open/floor/plating, +/area/ship/hallway/port) +"Yw" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 4 + }, +/obj/machinery/camera{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/starboard) +"Yy" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"Yz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/closet/emcloset/wall/directional/north, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"YB" = ( +/obj/structure/closet/secure_closet/bar{ + name = "internal affairs agent's locker"; + populate = 0; + req_access = list(38) + }, +/obj/machinery/airalarm/directional/north, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/under/nanotrasen/affairs, +/obj/item/clothing/suit/nanotrasen/suitjacket, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/storage/backpack/satchel/leather, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"YC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/blue/filled/end{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"YM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"YP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/blue/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"YT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/engineering) +"YV" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 8 + }, +/obj/item/folder/red{ + pixel_x = 8 + }, +/obj/machinery/recharger{ + pixel_x = -6 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/machinery/door/window/westleft{ + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"YW" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"YX" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"YZ" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Za" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"Zb" = ( +/turf/open/floor/plasteel, +/area/ship/crew) +"Ze" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 8 + }, +/turf/open/floor/engine/o2, +/area/ship/engineering/atmospherics) +"Zf" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/security) +"Zg" = ( +/obj/structure/filingcabinet/double{ + dir = 1; + pixel_x = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/camera{ + dir = 1 + }, +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"Zi" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/stairs, +/area/ship/engineering/engine) +"Zk" = ( +/obj/structure/closet/secure_closet{ + icon_state = "cargo"; + name = "\proper cargo technician's locker"; + req_access_txt = "31" + }, /obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/rnd/production/protolathe/department/science, +/obj/machinery/airalarm/directional/east, +/obj/machinery/firealarm/directional/south, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/under/nanotrasen/supply, +/obj/item/clothing/head/nanotrasen/cap/supply, +/obj/item/clothing/gloves/fingerless, +/obj/item/storage/backpack/messenger, +/turf/open/floor/plasteel/tech, +/area/ship/cargo) +"Zm" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/port) +"Zv" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Zw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/camera{ + dir = 8 + }, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"ZJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/opaque/blue/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"ZL" = ( +/obj/effect/turf_decal/trimline/opaque/blue/filled/end{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"ZN" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 1 + }, /turf/open/floor/plasteel/dark, -/area/ship/science) -"ZZ" = ( -/obj/structure/sign/nanotrasen, +/area/ship/bridge) +"ZQ" = ( +/obj/structure/sign/number/random{ + color = "Black" + }, /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/cryo) +/area/ship/cargo) +"ZS" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/crew/canteen) +"ZU" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 8; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ZX" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-1" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) (1,1,1) = {" -li -WU -pD -pD -rG -rG -pD -pD -WU -li -li -li -li -li -li -li -li -li -li -li -li -li -li -li -yj -Hk -Hk -wT -wT -Hk -Hk -yj -li +MZ +MZ +MZ +MZ +MZ +Yp +CV +CV +Yp +MZ +MZ +MZ +MZ +ok +AE +AE +AE +AE +Ci +AE +AE +AE +AE +ok +MZ +MZ +MZ +MZ +US +GG +GG +US +MZ +MZ +MZ +MZ +MZ "} (2,1,1) = {" -li -WU -Tn -VA -qX -Tr -Tn -VA -WU -li -li -li -li -li -li -li -li -li -li -li -li -li -li -li -yj -wo -wQ -kB -hU -wo -wQ -yj -li +MZ +Yp +Kz +Yp +Kz +Yp +HW +HW +Yp +MZ +MZ +MZ +MZ +AE +Pq +Io +LK +EF +tQ +Uj +AE +AE +hE +AE +MZ +MZ +MZ +MZ +US +Wx +Wx +US +MM +US +MM +US +MZ "} (3,1,1) = {" -li -WU -eE -eE -EW -LB -eE -eE -WU -li -li -li -li -li -li -li -li -li -li -li -li -li -li -li -yj -kG -kG -cJ -cJ -kG -kG -yj -li +MZ +Yp +NT +rh +NT +Yp +rf +cy +Yp +Mv +zs +Sj +Mv +AE +AE +yS +AE +qq +Jk +OW +AE +AE +AE +AE +Mv +Mv +TC +Mv +US +JK +UZ +US +cg +Fp +cg +US +MZ "} (4,1,1) = {" -li -WU -pP -ap -KC -Gr -oi -mZ -WU -li -li -li -li -li -li -li -li -li -li -li -li -li -li -li -yj -Iv -Bl -Tz -ra -Ri -dS -yj -li +MZ +Yp +bi +OR +bi +QG +jf +uW +Yp +Yp +zc +Yp +Yp +AE +uv +Ob +mC +sF +Bm +uk +Dg +Eh +KO +AE +aE +US +LZ +US +US +Nr +Rv +JB +kR +PA +kR +US +MZ "} (5,1,1) = {" -li -WU -NT -Yc -RY -SD -BN -ci -WU -MM -li -li -li -li -li -li -li -li -li -li -li -li -li -IY -yj -pT -pH -kb -Jl -kD -SX -Tb -li +MZ +Yp +NS +nf +XY +cS +vM +Bs +gX +lQ +UJ +Xz +Nt +Qs +zI +Sr +ys +Ij +dO +MX +yz +Lh +yx +HL +uD +uT +Mo +fb +Mx +Nn +wq +pY +vY +Ni +es +US +MZ "} (6,1,1) = {" -li -WU -qc -PS -Fj -QD -vY -yg -Tg -WU -ao -kP -uz -VV -VV -VV -VV -VV -VV -VV -ao -kP -uz -yj -go -pz -Gp -wV -Gp -Ko -tF -JN -li +MZ +Yp +Yp +Yp +zm +WN +JU +fH +HD +zy +CP +RX +pr +WV +Lf +Zi +gf +Qm +my +Ux +Hj +yd +UD +AE +GH +US +DQ +bL +ym +bR +Ez +Po +sc +He +ea +US +MZ "} (7,1,1) = {" -li -WU -qa -gX -hr -vx -XK -jn -MT -VV -Aj -VV -HE -VV -kU -VV -yP -VV -kU -VV -pe -eZ -ZX -VV -RB -qp -HV -GX -xp -cT -Of -xP -li +MZ +Yp +bk +NX +KZ +kq +Ds +Yp +Gi +Zv +Yp +Gi +cF +AE +jM +bK +kH +XP +No +Zw +Us +qB +Nz +AE +Xw +TI +TI +TI +TI +TI +eG +hH +hH +hH +US +US +MZ "} (8,1,1) = {" -li -WU -RE -JO -uh -lb -vj -ip -YJ -Fe -RO -rf -Ma -Gz -wY -LW -Ap -BL -Tt -do -XR -ll -wF -RD -Nq -MJ -Uo -sq -sw -cp -Uc -yj -li -"} -(9,1,1) = {" -li -WU -Hf -gX -oQ -NW -rN -Ro -Ro -Ro -Ro -Ro -Ro -VV -bw -hd -ZR -ZO -dr -VV -SB -kQ -kQ -kQ -kQ -kQ -oO -HK -hm -HK -Qb -yj -li +MZ +Yp +Vi +dX +EQ +Ev +ex +Yp +Eq +Ze +Yp +Xl +tq +AE +aX +ru +fh +AE +jU +AE +mk +ru +EJ +AE +nz +mJ +mJ +Vs +iT +TI +FD +fd +ez +xa +Kc +US +MZ +"} +(9,1,1) = {" +MZ +Yp +Yp +Yp +oX +fu +Tr +cp +cp +cp +cp +cp +KS +KS +KS +hY +hY +hY +hY +hY +hY +hY +IE +IE +IE +TI +Lb +Ah +bd +TI +Ms +Ga +RR +vs +Kj +US +MZ "} (10,1,1) = {" -li -WU -Mu -Ix -WK -mY -Qr -Ro -BU -Ro -BU -Ro -Vx -VV -ui -cI -cI -yC -xE -VV -hj -vD -Jw -OB -LX -kQ -Ka -lV -Mo -eX -fU -yj -li +MZ +Yp +QH +Ud +ZU +fu +Kx +cp +Pj +CW +CW +cp +MT +hI +vd +hY +wM +hY +gn +hY +qJ +hY +ol +oU +HI +TI +hy +Dk +Is +TI +lA +YT +Ki +xv +Pr +US +MZ "} (11,1,1) = {" -li -WU -Qv -lz -Em -dm -BK -Ro -jc -zl -Hn -oK -Hn -VV -cD -VV -lr -VV -LE -VV -ki -Yh -je -ut -vi -kQ -uq -NP -yj -pJ -gC -yj -li +MZ +Yp +wY +NX +IT +kM +RU +cp +DD +ms +Dl +cp +Tz +ln +Vp +hY +eA +MP +Da +uo +SF +hY +Tm +sD +Ha +TI +vI +hL +ES +TI +gU +bg +hQ +SW +mO +US +MZ "} (12,1,1) = {" -li -WU -Zo -LF -LK -KI -mf -Ro -to -pq -PW -VS -gT -gT -gT -gT -gT -gT -gT -gT -gT -FF -uI -wb -Sa -kQ -Xi -lM -yj -oo -oo -yj -li +MZ +Yp +Yp +Yp +Yp +Yp +jl +cp +xl +ud +Rt +cp +fZ +Pk +gm +hY +FK +rk +jI +Mn +NQ +hY +Cn +sy +sl +TI +lX +Ax +mc +TI +jm +US +US +US +US +US +MZ "} (13,1,1) = {" -li -WU -bH -Xz -OA -Jc -eT -Ro -Xr -dx -Hn -nf -gT -eD -pU -Ws -gT -VF -Pa -dP -gT -fn -xj -uJ -Ou -kQ -mo -RI -yj -ik -lA -yj -li +MZ +aL +cN +de +dK +cf +rR +cp +kJ +cp +cp +cp +KS +QW +KS +hY +hY +hY +DC +hY +hY +hY +IE +EX +IE +TI +TI +TI +dI +TI +KT +Sn +iA +LJ +wS +IS +MZ "} (14,1,1) = {" -li -WU -WU -WU -WU -WU -Ag -MB -Ro -CL -FV -Ro -gT -HD -lv -Wn -gT -XU -pp -ht -gT -kQ -OV -kf -kQ -JX -Iz -yj -yj -yj -yj -yj -li +aA +cm +da +dA +dL +ha +bW +DH +mN +Gz +dr +lH +BF +Rg +Jx +bv +ow +jx +IV +TD +cE +cz +Jx +fO +Gz +lg +VS +Bx +FQ +Lv +Jl +Xg +fr +SS +uf +St +Wa "} (15,1,1) = {" -li -nK -GU -XX -Tw -Mc -Hi -si -gc -TH -kZ -ZC -gT -gT -zL -gT -gT -gT -Xp -gT -gT -la -eB -zF -OW -sZ -Vs -Mc -jC -gJ -Zj -FI -li +MZ +PF +PF +PF +PF +Pi +og +JC +rQ +Gz +ox +Dy +Dy +Sy +Aj +Pz +dB +UT +Fi +tG +Tx +aq +fw +mm +hV +ue +yY +Gz +RT +qp +uw +JQ +fI +fI +fI +fI +MZ "} (16,1,1) = {" -Xo -uQ -mB -Tq -rJ -bl -yQ -sJ -sJ -gy -yE -xK -tY -ow -hl -KL -SK -ac -ej -ce -wj -Ey -wC -VR -QI -Ii -yw -ti -hg -oN -ou -uQ -Wq +MZ +ig +gH +pI +co +ig +QO +Hh +iI +uZ +st +Gz +Gz +TX +Me +ss +FP +wL +JT +Lz +BS +Bb +sh +Zg +Gz +Gz +Gz +Gz +Yz +Xj +Cv +Zf +oi +ew +AS +Zf +MZ "} (17,1,1) = {" -li -BH -IW -IW -IW -IW -IW -IW -Qt -Pe -WS -xT -gT -Di -Fk -UL -uA -UL -Tx -nx -gT -aY -hy -Np -rS -gV -gV -gV -gV -gV -gV -ZZ -li +MZ +ig +YB +Rn +oT +Ta +ig +tZ +Sm +Qf +iD +ZX +gE +Rb +VA +bn +FP +ZN +IK +qf +eJ +FO +iG +zY +XF +Jd +nZ +zV +av +bH +lD +Nq +QP +Wk +dv +Zf +MZ "} (18,1,1) = {" -li -IW -iO -KD -fb -RU -iO -IW -tL -Pe -Ib -hL -gT -wn -UL -YR -UL -UT -UL -Ry -gT -zN -RW -Np -qv -gV -os -ea -yI -Su -dw -gV -li +MZ +Rf +tm +Oh +ko +Wp +jN +Jw +gN +uh +uC +QQ +gE +Fx +VZ +OA +cY +JP +Hw +iS +QX +ta +dz +EY +XF +cl +Sw +yc +hx +sE +jA +Kr +LW +Fo +Ig +tI +MZ "} (19,1,1) = {" -li -IW -fc -pv -iv -nl -oE -IW -xF -Pe -RW -mI -DU -tc -uC -tr -xq -ud -pm -Pg -DU -iA -Yt -qs -bA -gV -mj -PJ -UZ -uk -SU -gV -li +MZ +Rf +JX +Db +gD +Db +pH +MK +Qx +Zm +Hx +iI +KC +Gz +aO +xg +vL +qX +pp +Mf +wz +Ra +ky +Gz +KC +Ro +ju +wD +ls +Yw +Zf +zr +Ky +Nc +tT +tI +MZ "} (20,1,1) = {" -li -IW -rz -SO -Xv -Nm -GN -Nw -zi -ep -My -Ai -sG -tx -tx -tx -gT -tx -tx -tx -sG -CC -WE -rO -VL -uM -pk -tp -yl -gB -sI -gV -li +MZ +ig +uy +UI +KG +VY +ig +Yr +Yr +Vv +wN +WH +wN +gE +Py +uz +HG +YZ +FS +YZ +Np +Qb +AW +XF +ba +qh +ba +cB +LD +LD +Zf +ei +YV +ec +iQ +Zf +MZ "} (21,1,1) = {" -li -IW -Oh -hv -LV -mV -cg -IW -bh -Cn -mg -Cn -ak -ak -ak -ak -Ni -ak -ak -ak -ak -in -RW -Cn -rX -gV -Yw -FL -FL -FL -EO -gV -li +MZ +Rf +JX +eY +nQ +eg +ig +MZ +MZ +PF +Nk +Os +Uw +Gz +Yb +Gz +Ao +la +Ry +zX +TO +Gz +TZ +Gz +Sb +Wj +Ih +fI +MZ +MZ +Zf +Ho +OX +Nc +tT +tI +MZ "} (22,1,1) = {" -li -Rq -IW -FZ -xN -ET -IW -IW -ZJ -Es -cY -Nd -Nd -Si -Nd -La -ie -Nd -Lt -Ho -xY -eG -Qy -Ge -ZJ -gV -gV -bs -Fr -Wb -gV -PP -li +MZ +Rf +Yc +sU +SZ +fc +ig +MZ +MZ +rT +Vv +iI +wN +Ub +qx +KC +Yb +Yb +Yb +Yb +DM +KC +qx +yI +ba +Qz +cB +dV +MZ +MZ +Zf +pF +Pn +uc +CK +tI +MZ "} (23,1,1) = {" -li -li -Rq -YI -YI -YI -Rq -li -sG -su -ZJ -AB -zJ -JW -ND -Pq -bb -dJ -Cp -TR -zU -uN -ZJ -kV -sG -li -PP -EN -EN -EN -PP -li -li +MZ +ng +ig +NE +cb +ig +ng +MZ +MZ +MZ +PF +OO +RB +qF +GY +GE +DP +DP +Ad +Cm +CA +GE +Eb +CH +gM +sw +fI +MZ +MZ +MZ +gk +Zf +uX +km +Zf +gk +MZ "} -(24,1,1) = {" -li -li -li -li -li -li -li -li -li -li -sG -cq -cq -cq -cq -cq -cq -cq -WZ -zy -cq -cq -sG -li -li -li -li -li -li -li -li -li -li +(24,1,1) = {" +MZ +MZ +ng +ig +ig +ng +MZ +MZ +MZ +MZ +rT +PF +Vv +JH +Cm +kn +Cm +jT +zT +Cm +FX +Fl +Cm +td +cB +fI +dV +MZ +MZ +MZ +MZ +gk +Zf +Zf +gk +MZ +MZ "} (25,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -cq -GC -jU -JG -cq -Bu -cL -oU -lt -IV -cq -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +PF +PF +fz +We +qg +fl +lE +TJ +zU +BO +be +fI +fI +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (26,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -gM -JL -rH -wP -IR -rZ -FC -jM -pC -YH -gM -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +rj +Wm +CI +In +lE +JZ +ch +OD +rj +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (27,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -gM -iD -rH -rH -Lz -rP -xb -Ga -pK -UU -gM -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +wa +wO +RV +wr +MQ +vm +ch +KM +wa +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (28,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -cq -lY -rH -gt -Lz -rP -xb -ga -pK -Bp -cq -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +wa +bU +CI +Ia +tJ +Ia +ch +rK +wa +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (29,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -gM -CT -rH -rH -sl -sC -qw -ly -pK -lh -gM -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +wa +cx +CI +nx +PU +qO +ch +KW +wa +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (30,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -gM -XE -rH -Fo -Dg -DH -VN -aj -cK -Jt -gM -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +rj +JS +NP +ED +Ut +Cm +rc +xD +rj +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (31,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -cq -DK -tO -qN -cq -ir -DA -yq -tT -DY -cq -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +pP +BU +BU +BU +qI +qI +vT +zx +KB +hA +Er +CO +CO +CO +CO +CO +dG +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (32,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Zr -Zr -Zr -Zr -Zr -Zr -Zr -ke -xB -Zr -Zr -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +pP +qI +qI +Tv +kO +YM +Qu +mV +YX +qI +aR +qx +Lw +CO +XI +TT +Ey +fi +CO +CO +dG +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (33,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Zr -ux -Xl -KE -Ee -tm -Zr -eP -dN -Ih -Zr -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +pP +qI +qI +jD +aC +aH +Wt +Gd +aC +aH +gV +ZS +eQ +zO +Tf +CO +oe +qK +IM +sf +CO +CO +CO +CO +dG +MZ +MZ +MZ +MZ +MZ +MZ "} (34,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Uj -Bc -WN -Vh -YK -aW -nL -PV -FP -HU -Uj -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +uG +pZ +dJ +ql +PH +Kd +Je +ql +PH +Kd +mB +ZS +UF +zF +xo +CO +Jt +Vr +Th +Jt +CO +TM +IX +Vc +hj +MZ +MZ +MZ +MZ +MZ +MZ "} (35,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Uj -Dj -NH -WN -CQ -Lc -OS -QE -uE -HU -Uj -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +uG +Aw +mB +Xf +Pw +se +Je +Ur +Pw +se +mB +ZS +JL +zF +oV +Jt +Av +vl +Nl +bM +rm +PZ +ur +PL +ND +MZ +MZ +MZ +MZ +MZ +MZ "} (36,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Zr -Zr -Zr -aI -un -YD -wq -zQ -vl -jk -Zr -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +uG +qw +mB +xn +xn +xn +BY +Nm +yB +yB +qE +hD +Hu +Wv +Qn +Hk +Ug +ct +MV +lj +VE +mW +hP +ih +rJ +MZ +MZ +MZ +MZ +MZ +MZ "} (37,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Uj -UB -it -WN -CQ -Hx -oW -Qm -Ac -wr -Uj -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +uG +kr +pd +KQ +KQ +Pm +Bj +XQ +QN +QN +wU +VJ +iM +pR +oj +KN +XK +sv +wH +je +XW +WR +HY +ih +rJ +Wa +MZ +MZ +MZ +MZ +MZ "} (38,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Uj -IU -WN -gH -OH -yc -Zr -Sm -il -wr -Uj -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +qI +qI +pQ +na +OK +HC +bu +ql +PH +Kd +bu +ZS +XB +zF +kV +Jt +PQ +Gq +QC +va +dN +Yi +Uq +go +wn +MZ +MZ +MZ +MZ +MZ +MZ "} (39,1,1) = {" -li -li -li -li -li -li -li -li -li -li -CF -Zr -wR -JD -gg -gg -Hb -Zr -CH -QK -Sd -Zr -CF -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +qI +mZ +ad +xK +vZ +HC +bu +Xf +Pw +se +bu +ZS +Ot +yL +Ei +GK +oG +eZ +gQ +oG +oG +oG +yr +oG +ZQ +MZ +MZ +MZ +MZ +MZ +MZ "} (40,1,1) = {" -li -li -li -li -li -li -li -li -hh -IL -IL -IL -IL -Zr -cd -cd -dE -Zr -xJ -oX -Pl -Pl -Pl -Pl -iI -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +qI +nv +Oy +ul +vZ +HC +rx +Gd +aC +aH +Ck +ZS +rc +SE +do +oG +xe +vN +Bd +tH +tk +hq +WP +KA +ZQ +MZ +MZ +MZ +MZ +MZ +MZ "} (41,1,1) = {" -li -li -li -li -li -li -li -hh -IL -YP -my -kL -IL -Pj -bN -bN -Wf -Bn -TJ -Xe -Pl -YF -Ie -nT -Pl -iI -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +qI +op +XL +YW +Em +jL +bJ +FN +kA +Tj +gC +qI +xf +BA +Kl +bc +EB +sN +EU +ka +mH +tN +GF +Tu +ZQ +MZ +MZ +MZ +MZ +MZ +MZ "} (42,1,1) = {" -li -li -li -li -li -li -li -IL -qb -Se -co -Oj -pL -Ol -RQ -RQ -RQ -RQ -PQ -EX -SQ -AS -mW -tH +MZ +MZ +MZ +MZ +MZ +MZ +qI +LP +ri +gq +bX +qI +Ny +qI +qI +qI +Up +qI +OB +iV +cW +oG +JN +Za +vj +nj +xj Nv -Pl -li -li -li -li -li -li -li +pX +tC +ZQ +MZ +MZ +MZ +MZ +MZ +MZ "} (43,1,1) = {" -li -li -li -li -li -li -li -IL -ct -hG -Iq -SC -An -mR -MR -bF -bF -bF -fg -Zu -eh -aL -mF -ZW -Zs -Pl -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +pP +qI +rr +uI +qI +Ju +Yk +iP +ai +ty +vW +jH +fv +hB +ir +oG +vS +Za +qo +QV +Gg +yl +dF +oG +Jv +MZ +MZ +MZ +MZ +MZ +MZ "} (44,1,1) = {" -li -li -li -li -li -li -li -IL -PE -Vf -iM -ez -TU -yU -fa -gi -lF -gi -gW -nZ -AR -kS -yn -mq -SG -Pl -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +qI +tO +iy +qI +Kg +up +Um +UN +Mu +er +jH +KY +Lc +QR +oG +Pu +lP +Yy +Al +tF +Lp +uu +oG +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (45,1,1) = {" -li -li -li -li -li -li -li -IL -fF -TG -ss -oB -IL -ko -DV -wW -zt -Rr -PU -iQ -Ll -Nr -tH -IT -SR -Pl -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +pP +qI +qI +qI +Om +Om +Om +SN +Co +MW +jH +sn +Iu +tV +oG +sG +yE +wd +xH +Xo +cH +oG +Jv +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (46,1,1) = {" -li -li -li -li -li -li -li -ja -ZY -VC -TZ -Po -VW -xH -yd -yd -ot -yd -TW -hD -lk -vp -Ht -lJ -zM -DF -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Om +Om +EV +Kq +EV +Om +MB +WT +yG +jH +zd +Rs +Im +oG +za +CN +Pv +vr +Gr +Zk +oG +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (47,1,1) = {" -li -li -li -li -li -li -li -DP -hw -VI -rd -Po -VW -xH -Cw -tG -AT -Ig -DO -OD -eh -Bq -hc -QW -wc -Wk -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +qQ +Om +xy +qr +Fy +Om +PC +XH +cc +jH +Az +xN +uH +oG +oG +oG +oG +oG +oG +oG +Jv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (48,1,1) = {" -li -li -li -li -li -li -li -DP -yX -zb -yS -Po -VW -xH -yd -oF -sE -oF -gw -OD -eh -jG -UG -Ek -bG -Wk -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Om +EV +qr +EV +Om +gg +Li +xS +jH +BI +Br +BG +jH +di +rL +di +Lj +um +jH +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (49,1,1) = {" -li -li -li -li -li -li -li -hs -lL -sO -tb -SW -IL -Hy -yd -IX -CA -Gk -gw -QJ -Pl -GG -Bv -Vq -Gu -Re -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +qQ +wX +Hq +pW +uS +gA +Bq +kE +jH +YP +Cz +fT +fR +ZL +fT +fT +zv +jH +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (50,1,1) = {" -li -li -li -li -li -li -li -sd -IL -IL -IL -IL -IL -sy -yd -nE -CA -IA -gw -xG -Pl -Pl -Pl -Pl -Pl -aE -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Om +Kt +Pb +Om +CJ +Zb +wp +jH +ZJ +wA +iz +YC +if +Dr +CR +bp +jH +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (51,1,1) = {" -li -li -li -li -li -li -li -iw -Cv -bT -Ti -Wj -Wc -yd -yd -mH -dK -Dx -gE -DE -ZK -iZ -wd -ry -Cv -iw -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +qQ +Om +Om +Om +vC +dt +Om +jH +yR +gO +VO +SB +WL +fn +tS +Gy +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (52,1,1) = {" -li -li -li -li -li -li -li -li -Cv -fh -mu -OG -yd -yd -Bs -Cu -ar -bg -fj -ch -Fs -NA -Cj -TP -Cv -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +tY +tY +Uf +xQ +dd +tY +jH +jH +jH +jH +SM +eX +jH +jH +jH +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (53,1,1) = {" -li -li -li -li -li -li -li -li -iw -Cv -Gw -cN -jo -KA -qL -EA -EA -EA -qL -yT -na -ML -Oq -Cv -iw -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +RJ +tY +mK +gF +Ps +tY +MZ +MZ +MZ +jH +Wd +ej +FY +jH +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (54,1,1) = {" -li -li -li -li -li -li -li -li -li -iw -Cv -Cv -Cv -Cv -wx -Gt -Gt -Gt -Os -Vl -Cv -Cv -Cv -iw -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +tY +UV +xM +Ak +tY +MZ +MZ +MZ +jH +dj +rZ +mG +jH +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (55,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -iw -Cv -Dq -fJ -fJ -hQ -fJ -fJ -qM -Cv -iw -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +RJ +tY +HO +NF +tY +MZ +MZ +MZ +jH +fX +rS +jH +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (56,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -li -Cv -li -li -li -li -li -li -li -Cv -li -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +RJ +tY +uB +tY +MZ +MZ +MZ +jH +jH +jH +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm deleted file mode 100644 index b4ae5230cc7b..000000000000 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ /dev/null @@ -1,7391 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ai" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"al" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"ao" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"aA" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"aF" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"aL" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"aN" = ( -/obj/structure/catwalk/over, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"aQ" = ( -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/cargo) -"aR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"aZ" = ( -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"bd" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"bf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"bh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"bk" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ - dir = 4 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/engine) -"bo" = ( -/obj/structure/dresser, -/obj/item/flashlight/lamp{ - pixel_x = -5; - pixel_y = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"bq" = ( -/obj/structure/dresser, -/obj/item/storage/lockbox/medal{ - pixel_y = 13 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"bs" = ( -/obj/structure/holosign/barrier/engineering/infinite{ - name = "maintenance barrier" - }, -/obj/structure/catwalk/over, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"bw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ - pixel_y = 32 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"bz" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"bA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"bG" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/machinery/door/poddoor{ - dir = 4; - id = "enginelockdown" - }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"bO" = ( -/obj/structure/table/reinforced, -/obj/item/flashlight/lamp{ - pixel_x = -9; - pixel_y = 13 - }, -/obj/machinery/recharger, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/crew/crewthree) -"bR" = ( -/obj/structure/catwalk/over, -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"bW" = ( -/obj/structure/displaycase/captain{ - req_access = null; - req_access_txt = "20" - }, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"bY" = ( -/obj/machinery/vending/cola/space_up, -/turf/open/floor/wood, -/area/ship/hallway/central) -"bZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"cd" = ( -/obj/machinery/light/dim/directional/south, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"cp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"cq" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"cF" = ( -/obj/structure/chair/comfy/grey/directional/east, -/turf/open/floor/wood, -/area/ship/hallway/central) -"cJ" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = -30 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"cL" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/turf_decal/techfloor/corner, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"cQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"cS" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"de" = ( -/obj/machinery/light/dim/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"dj" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"dl" = ( -/obj/structure/sign/poster/official/obey{ - pixel_x = -30 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = 5 - }, -/obj/item/folder/blue{ - pixel_x = -8; - pixel_y = 7 - }, -/obj/item/stamp/head_of_personnel{ - pixel_x = -7; - pixel_y = -3 - }, -/obj/item/folder/red{ - pixel_x = -8; - pixel_y = 11 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"dp" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"dq" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"du" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/holopad/emergency/command, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"dy" = ( -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"dB" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"dG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/firealarm/directional/south, -/obj/item/gun/energy/laser{ - pixel_y = -6 - }, -/obj/item/gun/energy/e_gun/mini{ - pixel_y = -2; - pixel_x = 6 - }, -/obj/item/gun/energy/e_gun/mini{ - pixel_x = -8; - pixel_y = -2 - }, -/obj/structure/closet/secure_closet{ - anchored = 1; - can_be_unanchored = 1; - icon_state = "sec"; - name = "firearm locker"; - req_access_txt = "1" - }, -/obj/item/gun/ballistic/automatic/pistol/commander, -/obj/item/gun/ballistic/automatic/pistol/commander, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"dJ" = ( -/obj/machinery/button/door{ - dir = 4; - pixel_x = -24; - id = "enginelockdown"; - name = "Lockdown Engines" - }, -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8; - name = "Activate Exhaust" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"dM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"dO" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped/layer4, -/obj/item/paper/guides/jobs/engi/combustion_thruster, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"dS" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"dW" = ( -/obj/structure/filingcabinet/employment, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"dX" = ( -/obj/structure/table/chem, -/obj/item/clothing/glasses/hud/health, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/obj/item/reagent_containers/glass/beaker{ - pixel_y = 12; - pixel_x = -9 - }, -/obj/structure/sink/chem{ - pixel_x = 2; - pixel_y = 3 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"dZ" = ( -/obj/structure/cabinet/fireaxe{ - pixel_y = -29 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"ed" = ( -/obj/structure/table, -/obj/machinery/fax/nanotrasen, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"eg" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"ek" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light_switch{ - pixel_x = -14; - pixel_y = 24 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"er" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/engineering/atmospherics) -"eu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 6 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"eB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 6; - pixel_y = -24 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"eC" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/turf/open/floor/plating, -/area/ship/crew/crewthree) -"eD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/structure/sign/poster/contraband/syndicate_recruitment{ - pixel_x = 30 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"eL" = ( -/obj/machinery/door/airlock/command{ - name = "Internal Affairs Office" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"eP" = ( -/obj/structure/chair/comfy/grey/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"eQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"eY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"fa" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/dice{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/spacecash/bundle/c5, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"fc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"fg" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "coolingshutdown" - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"fi" = ( -/obj/machinery/door/airlock/command{ - dir = 4; - name = "Personal Quarters"; - req_one_access_txt = "57" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"fl" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"fn" = ( -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/wood, -/area/ship/hallway/central) -"fo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"fs" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/button/door{ - dir = 8; - id = "amogusdoors"; - name = "Cargo Blast Door Control"; - pixel_x = 25; - pixel_y = -4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/button/shieldwallgen{ - dir = 8; - id = "skippyshieldywalle"; - pixel_x = 24; - pixel_y = 5 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"ft" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "TEG to Exhaust" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"fu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/sign/poster/official/random{ - pixel_x = 30 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"fw" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/item/paper{ - default_raw_text = "The igniter in the chamber does not work very well. I suggest throwing lit welders down the disposal chute over there to ignite the chamber." - }, -/obj/item/weldingtool, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"fx" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/closed/wall, -/area/ship/hallway/central) -"fz" = ( -/obj/machinery/shower{ - pixel_y = 18 - }, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 1 - }, -/turf/open/floor/noslip, -/area/ship/engineering/atmospherics) -"fD" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"fG" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"fI" = ( -/obj/structure/chair/sofa/brown/left/directional/west, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"fQ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 1; - name = "Fuel Pump" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"fT" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"fU" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew/cryo) -"fW" = ( -/turf/template_noop, -/area/template_noop) -"fY" = ( -/obj/structure/table, -/obj/item/trash/raisins, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood, -/area/ship/hallway/central) -"ga" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/ship/medical) -"gc" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"gh" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/window/reinforced/spawner/west, -/obj/machinery/door/poddoor{ - dir = 4; - id = "enginelockdown" - }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"gi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"gk" = ( -/obj/structure/sign/poster/official/safety_internals{ - pixel_x = -32 - }, -/obj/structure/tank_dispenser, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"gm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"gr" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"gu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"gx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4, -/turf/open/floor/plating, -/area/ship/hallway/central) -"gB" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Cooling to TEG" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"gM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"gN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"gO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "thruster fuel pump" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"gP" = ( -/obj/effect/landmark/observer_start, -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/ship/hallway/central) -"gQ" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"hb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"hc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"hi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"hr" = ( -/turf/closed/wall/r_wall, -/area/ship/hallway/central) -"hz" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel, -/area/ship/cargo) -"hA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"hC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 9 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"hG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"hJ" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor{ - id = "windowlockdown" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/medical) -"hM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"hP" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"hT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"hZ" = ( -/obj/item/extinguisher/advanced, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/item/clothing/under/rank/engineering/engineer/hazard, -/obj/item/clothing/under/rank/engineering/engineer/nt, -/obj/item/clothing/under/rank/engineering/engineer/nt/skirt, -/obj/item/clothing/under/rank/engineering/atmospheric_technician, -/obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt, -/obj/item/clothing/head/beret/atmos, -/obj/item/clothing/head/beret/eng, -/obj/item/analyzer, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/structure/closet/secure_closet{ - icon_state = "eng_secure"; - name = "engineer's locker"; - req_access = list(11); - anchored = 1 - }, -/obj/item/pipe_dispenser, -/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"ib" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"ic" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"id" = ( -/obj/machinery/shower{ - dir = 4; - pixel_y = 8 - }, -/obj/structure/curtain, -/obj/item/bikehorn/rubberducky/plasticducky, -/obj/effect/turf_decal/techfloor/hole{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/crewtwo) -"ie" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"if" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"ih" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridgelockdown" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/bridge) -"ik" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/obj/machinery/light/broken/directional/south, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"il" = ( -/obj/structure/closet/crate/bin, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"im" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/ship/external) -"ir" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"is" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/airlock/mining/glass, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"iv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/ship/bridge) -"ix" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"iB" = ( -/obj/machinery/door/airlock/command{ - dir = 4; - name = "Personal Quarters"; - req_one_access_txt = "20" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"iI" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/autolathe, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"iP" = ( -/obj/structure/chair/comfy/grey/directional/north, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"iY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"ja" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/item/soap/nanotrasen, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"jf" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/wrapping, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"ji" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/crewthree) -"jq" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor{ - id = "windowlockdown" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/crew/dorm) -"jr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 - }, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"js" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/closet/cardboard{ - name = "janitorial supplies" - }, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/item/soap, -/obj/item/storage/bag/trash, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"jv" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"jK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"jM" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Helm" - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"jS" = ( -/turf/closed/wall, -/area/ship/crew/dorm) -"jX" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "skippyshieldywalle"; - locked = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id = "amogusdoors"; - name = "Cargo Bay Blast Door" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"jZ" = ( -/obj/structure/closet/radiation, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 5 - }, -/obj/structure/sign/warning/incident{ - pixel_y = 32 - }, -/turf/open/floor/noslip, -/area/ship/engineering/atmospherics) -"kn" = ( -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - dir = 4; - pixel_x = -23; - pixel_y = 8 - }, -/obj/machinery/button/ignition/incinerator/atmos{ - dir = 4; - pixel_x = -23; - pixel_y = -3 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"kp" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"ky" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/layer2, -/turf/open/floor/plating, -/area/ship/hallway/central) -"kz" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering/atmospherics) -"kB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"kE" = ( -/obj/machinery/newscaster/directional/west, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"kL" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/green/mono, -/obj/machinery/reagentgrinder{ - pixel_y = 11 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"kM" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/charcoal/less{ - pixel_x = -9 - }, -/obj/item/reagent_containers/glass/bottle{ - list_reagents = list(/datum/reagent/medicine/thializid=30); - name = "thializid bottle" - }, -/obj/item/reagent_containers/glass/bottle/formaldehyde{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 7 - }, -/obj/effect/turf_decal/borderfloorwhite{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"kO" = ( -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"kU" = ( -/turf/closed/wall, -/area/ship/crew/toilet) -"kW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"lf" = ( -/obj/structure/closet/secure_closet{ - icon_state = "hop"; - name = "\proper first officer's locker"; - req_access_txt = "57" - }, -/obj/item/storage/backpack/satchel/leather, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/suit/armor/vest/hop, -/obj/item/clothing/head/nanotrasen/officer/fedora, -/obj/item/storage/box/ids, -/obj/item/storage/box/PDAs, -/obj/item/assembly/flash/handheld, -/obj/item/clothing/head/beret/command, -/obj/item/door_remote/captain, -/obj/structure/sign/poster/official/ian{ - pixel_y = 32 - }, -/obj/effect/turf_decal/siding/wood, -/obj/item/clothing/under/nanotrasen/officer, -/obj/item/clothing/under/nanotrasen/officer/skirt, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"lg" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"lh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"lk" = ( -/obj/structure/table/wood/reinforced, -/obj/item/flashlight/lamp/green{ - pixel_y = 10; - pixel_x = -6 - }, -/obj/item/pen/fountain/captain{ - pixel_x = -10 - }, -/obj/item/paper{ - pixel_x = 10; - pixel_y = -2 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"ls" = ( -/turf/closed/wall/r_wall, -/area/ship/medical) -"lw" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/canteen/kitchen) -"lA" = ( -/obj/structure/closet/crate/bin, -/obj/machinery/light/broken/directional/east, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"lE" = ( -/obj/machinery/suit_storage_unit/industrial/atmos_firesuit, -/obj/structure/sign/warning/hottemp{ - pixel_x = -29 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"lR" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"lU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"lV" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"lW" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"lY" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"mc" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"mf" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/closed/wall, -/area/ship/hallway/central) -"mg" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"mi" = ( -/obj/structure/window/reinforced/tinted, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central7{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"mw" = ( -/obj/machinery/door/window/southright, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"mF" = ( -/obj/machinery/power/shuttle/engine/fire{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/external) -"mI" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/structure/curtain/cloth/grey, -/obj/structure/sign/poster/official/random{ - pixel_x = -30 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"mL" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_y = 8 - }, -/obj/item/storage/toolbox/mechanical, -/obj/structure/sign/warning/nosmoking/burnt{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"mM" = ( -/turf/open/floor/wood, -/area/ship/crew/office) -"mN" = ( -/obj/structure/catwalk/over, -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"mQ" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"mS" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"mT" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/pen/fourcolor{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/pen/fountain{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/melee/knife/letter_opener{ - desc = "A military combat utility survival knife, imported from Earth. An expensive paperweight indeed."; - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/stamp/centcom{ - pixel_x = -10; - pixel_y = 13 - }, -/obj/item/stamp/law{ - pixel_x = -10; - pixel_y = 7 - }, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/wood, -/area/ship/crew/office) -"mU" = ( -/obj/structure/urinal{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/light/small/directional/east, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -11 - }, -/obj/effect/decal/cleanable/chem_pile, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"mX" = ( -/obj/machinery/door/poddoor/incinerator_atmos_aux{ - dir = 4 - }, -/obj/structure/sign/warning{ - pixel_y = 28 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/engine) -"nd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 24 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"ne" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"ng" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom/wideband/table{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"nj" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"np" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"nq" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/office) -"nu" = ( -/obj/machinery/computer/atmos_control/incinerator{ - dir = 4; - sensors = list("nemo_incinerator_sensor"="Incinerator Chamber") - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"nv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"nB" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/bed/roller, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"nF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/engine) -"nX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"og" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/engineering/atmospherics) -"ok" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"om" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"oq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"oD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"oE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"oN" = ( -/obj/structure/bed/dogbed/ian, -/mob/living/simple_animal/pet/dog/corgi/Lisa, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"oT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"oU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"pf" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"ph" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "bridgelockdown"; - name = "Bridge Lockdown"; - pixel_x = 8; - pixel_y = 25 - }, -/obj/machinery/button/door{ - id = "coolingshutdown"; - name = "Shutdown Cooling"; - pixel_x = -5; - pixel_y = 25 - }, -/obj/machinery/button/door{ - pixel_y = 25; - pixel_x = 21; - id = "windowlockdown"; - name = "Window Lockdown" - }, -/obj/item/cigbutt/cigarbutt, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"pn" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = 30 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"pq" = ( -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"pr" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"ps" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"pt" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/westleft, -/obj/machinery/door/window/eastright, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"pz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"pB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"pD" = ( -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"pI" = ( -/obj/structure/table, -/obj/item/trash/candle{ - pixel_y = 12 - }, -/obj/machinery/light/directional/south, -/obj/item/trash/plate, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"pM" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/visible/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/engineering/atmospherics) -"pT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output, -/turf/open/floor/engine/o2, -/area/ship/engineering/atmospherics) -"pZ" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"qa" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/crewtwo) -"qb" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"qg" = ( -/obj/structure/toilet{ - pixel_y = 10 - }, -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"qp" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/vomit/old, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"qq" = ( -/obj/structure/table, -/obj/item/newspaper, -/turf/open/floor/wood, -/area/ship/hallway/central) -"qr" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"qy" = ( -/obj/machinery/light/directional/west, -/obj/machinery/mineral/ore_redemption, -/turf/open/floor/plasteel, -/area/ship/cargo) -"qF" = ( -/obj/machinery/power/shuttle/engine/fire{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/external) -"qK" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"qR" = ( -/obj/machinery/door/airlock/mining{ - name = "Cargo Office" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"qS" = ( -/obj/structure/closet/secure_closet/wall/directional/west{ - name = "The Captain's Personal Medicine Cabinet And Soap Holder"; - req_access_txt = "20" - }, -/obj/item/soap/nanotrasen, -/obj/item/razor, -/obj/item/storage/pill_bottle/psicodine, -/obj/item/storage/pill_bottle/charcoal/less, -/obj/item/lipstick/random, -/obj/item/stack/medical/bruise_pack{ - amount = 3 - }, -/obj/item/stack/medical/ointment{ - amount = 5; - desc = "Used to treat...... well, it's topical, and it's clearly been used....." - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/crewtwo) -"qY" = ( -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"ra" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Air to Distro"; - target_pressure = 1000; - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"rc" = ( -/obj/machinery/firealarm/directional/south, -/obj/machinery/vending/cigarette, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"re" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"rq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"rw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"rx" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 10 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/light_switch{ - pixel_x = 13; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"rz" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/sign/warning/electricshock{ - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"rF" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"rK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"rM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output, -/turf/open/floor/engine/n2, -/area/ship/engineering/atmospherics) -"rW" = ( -/obj/structure/table, -/obj/item/cigbutt, -/obj/item/cigbutt{ - pixel_x = -10; - pixel_y = 12 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"sc" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Operations" - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"sd" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/wood, -/area/ship/hallway/central) -"sh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/decal/cleanable/ash, -/turf/open/floor/plasteel, -/area/ship/cargo) -"si" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"sk" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ - dir = 1 - }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"sn" = ( -/obj/structure/curtain, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"sz" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 6 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"sA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"sC" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"sD" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"sJ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"sK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/power/ship_gravity, -/obj/structure/cable{ - icon_state = "0-1" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"sU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"sY" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor{ - id = "windowlockdown" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/crew/office) -"ta" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"tf" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ship/engineering/atmospherics) -"tk" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 73 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"tm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"tp" = ( -/obj/machinery/atmospherics/components/binary/circulator/cold{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"tr" = ( -/obj/machinery/door/window/westright, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"ts" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"tx" = ( -/turf/closed/wall/r_wall, -/area/ship/cargo) -"tz" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/industrial/loading{ - dir = 1 - }, -/obj/structure/ore_box, -/obj/structure/sign/warning/fire{ - pixel_x = -23 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"tB" = ( -/turf/closed/wall, -/area/ship/crew/office) -"tF" = ( -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 1; - name = "Emergency Recycling Override" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"tI" = ( -/obj/structure/table, -/obj/machinery/light/dim/directional/north, -/obj/item/reagent_containers/food/drinks/mug/tea, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"tR" = ( -/obj/machinery/door/airlock/external, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plating, -/area/ship/hallway/central) -"tX" = ( -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"tZ" = ( -/obj/effect/turf_decal/borderfloorwhite/full, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"ub" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"ug" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"uh" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/chair/comfy/grey/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"ul" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering/engine) -"um" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"uq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"us" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"ut" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"uv" = ( -/obj/structure/fluff/hedge, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"uw" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/structure/table/reinforced, -/obj/item/melee/knife/kitchen, -/obj/item/cutting_board, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"uD" = ( -/obj/machinery/airalarm/directional/east, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/table/reinforced, -/obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = -2; - pixel_y = 11 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_y = 6; - pixel_x = -8 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"uG" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "skippyshieldywalle"; - locked = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id = "amogusdoors"; - name = "Cargo Bay Blast Door" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"uL" = ( -/obj/structure/table/wood, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"uM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"uQ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "hallwindows"; - name = "Cargo Shutters"; - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"uS" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/west, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"uT" = ( -/obj/machinery/light/directional/west, -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"uX" = ( -/obj/item/reagent_containers/food/snacks/chips{ - pixel_x = 10; - pixel_y = 15 - }, -/obj/machinery/light/directional/south, -/obj/structure/chair/plastic{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"uY" = ( -/obj/structure/frame/computer{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"va" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"vc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"ve" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"vf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"vo" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/megaphone/command, -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"vp" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"vB" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"vI" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/item/trash/plate, -/obj/effect/turf_decal/corner/opaque/green/half{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"vO" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/structure/sign/poster/official/random{ - pixel_x = -30 - }, -/obj/structure/table, -/obj/item/trash/cheesie, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"vP" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/borderfloorwhite{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"vR" = ( -/obj/structure/chair/office, -/turf/open/floor/wood, -/area/ship/crew/office) -"vW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"vY" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"vZ" = ( -/obj/structure/bed, -/obj/item/bedsheet/captain, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"wb" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"wd" = ( -/obj/structure/table, -/obj/item/stack/medical/gauze, -/obj/item/storage/firstaid/regular, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"we" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"wg" = ( -/obj/machinery/door/airlock/external, -/obj/docking_port/mobile{ - dir = 2; - launch_status = 0; - port_direction = 8; - preferred_direction = 4 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"wp" = ( -/obj/structure/table/wood/reinforced, -/obj/item/hand_tele{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/coin/hellstone{ - pixel_x = -12; - pixel_y = -3 - }, -/obj/item/stamp/captain{ - pixel_y = 13; - pixel_x = -8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"wt" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "thruster fuel pump" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"ww" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"wA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/engineering, -/obj/item/stack/sheet/metal/twenty, -/obj/item/stack/sheet/glass/twenty, -/obj/item/tank/internals/oxygen, -/obj/item/tank/internals/oxygen, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"wB" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"wC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ - dir = 1 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/atmospherics) -"wG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"wH" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/toilet) -"wO" = ( -/obj/structure/table/wood, -/obj/item/instrument/piano_synth, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"wT" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/closet/secure_closet/freezer{ - anchored = 1 - }, -/obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/storage/box/ingredients/vegetarian, -/obj/item/storage/fancy/egg_box, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"wX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"wZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"xb" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"xf" = ( -/turf/closed/wall, -/area/ship/crew/canteen/kitchen) -"xi" = ( -/obj/structure/bed, -/obj/item/bedsheet/head_of_personnel, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"xo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"xs" = ( -/obj/structure/chair/sofa/brown/directional/south, -/obj/machinery/light/directional/north, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"xu" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor{ - id = "windowlockdown" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"xA" = ( -/obj/machinery/computer/secure_data{ - dir = 4 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/crew/crewthree) -"xE" = ( -/obj/machinery/photocopier, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 23 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"xK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"xO" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"xW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/chair/comfy/grey/directional/east, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"yf" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - pixel_x = -1; - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"yh" = ( -/obj/item/radio/intercom/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"yj" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"yo" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/external) -"ys" = ( -/turf/closed/wall, -/area/ship/cargo/office) -"yB" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/clothing/under/suit/dresssuit/skirt, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/suit/charcoal, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/suit/hooded/hoodie/black, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"yF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"yG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"yM" = ( -/obj/structure/table/wood/reinforced, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_y = 12 - }, -/obj/item/lighter{ - pixel_x = -6; - pixel_y = -3 - }, -/obj/item/coin/titanium{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"yU" = ( -/obj/machinery/door/airlock{ - name = "Crew Quarters" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"ze" = ( -/obj/structure/sink{ - pixel_y = 22 - }, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/toilet{ - dir = 8; - name = "The Throne"; - desc = "Man, its good to be king." - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/crewtwo) -"zi" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = -14 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"zu" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"zy" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "thruster fuel pump" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"zC" = ( -/obj/machinery/suit_storage_unit/cmo, -/obj/effect/turf_decal/borderfloorwhite/full, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"zG" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor/wood, -/area/ship/hallway/central) -"zJ" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, -/obj/structure/mirror{ - pixel_x = 25 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"zK" = ( -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/simple/brown/visible/layer4, -/obj/machinery/atmospherics/components/unary/portables_connector, -/obj/effect/turf_decal/industrial/outline/orange, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"zM" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"zO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"zP" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "coolingshutdown" - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"zS" = ( -/obj/structure/table/optable, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Aa" = ( -/obj/structure/chair/comfy/orange/directional/east, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"Ao" = ( -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"As" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/suit/toggle/lawyer/burgundy, -/obj/item/clothing/suit/toggle/lawyer/charcoal, -/obj/item/clothing/suit/toggle/lawyer/navy, -/obj/item/clothing/under/rank/security/detective, -/obj/item/clothing/under/rank/security/detective/skirt, -/obj/item/clothing/under/suit/black, -/obj/item/clothing/under/suit/black/skirt, -/obj/item/clothing/under/suit/black_really, -/obj/item/clothing/under/suit/black_really/skirt, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/neck/tie, -/obj/item/clothing/glasses/regular, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/ship/crew/office) -"At" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Au" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Az" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"AB" = ( -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"AE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"AG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "engine fuel pump" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"AP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/computer/helm/viewscreen/directional/south, -/obj/effect/turf_decal/number/right_eight, -/obj/effect/turf_decal/number/left_nine, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"AT" = ( -/turf/closed/wall, -/area/ship/medical) -"Bc" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew/cryo) -"Bd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Bg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Bh" = ( -/obj/structure/table, -/obj/item/flashlight/lamp/green{ - pixel_x = -6; - pixel_y = 13 - }, -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_x = -30 - }, -/obj/item/spacecash/bundle/c50, -/turf/open/floor/wood, -/area/ship/crew/office) -"Bq" = ( -/obj/machinery/airalarm/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Br" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Bw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/effect/decal/cleanable/food/tomato_smudge, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"BE" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"BH" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/east, -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 24 - }, -/obj/item/paicard, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"BI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/obj/effect/turf_decal/ntspaceworks_small, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"BJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/stairs, -/area/ship/bridge) -"BK" = ( -/obj/structure/catwalk/over, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/robot_debris/gib, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"BS" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"BW" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Ca" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Cl" = ( -/obj/machinery/door/airlock{ - dir = 4; - name = "Bathroom" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/toilet) -"Co" = ( -/obj/structure/spirit_board, -/obj/structure/catwalk/over, -/obj/item/toy/plush/moth/firewatch{ - pixel_y = 14; - name = "soot-covered moth plushie" - }, -/obj/structure/sign/poster/contraband/stechkin{ - pixel_x = 32 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"Cr" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Cs" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Cu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Cy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Cz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"CA" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"CB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"CE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"CH" = ( -/obj/structure/chair/sofa/brown/right/directional/east, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"CM" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"CR" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"CV" = ( -/obj/effect/turf_decal/ntspaceworks_small/right, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Da" = ( -/obj/effect/turf_decal/techfloor, -/obj/machinery/computer/cryopod/directional/west, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"Dc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Dd" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Nitrogen to Air"; - dir = 8; - target_pressure = 1000 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Dp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/closet/emcloset/wall/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Dy" = ( -/obj/structure/closet/cardboard{ - name = "pranking materials" - }, -/obj/item/toy/katana, -/obj/item/bikehorn, -/obj/item/grown/bananapeel, -/obj/item/gun/ballistic/automatic/toy/pistol, -/obj/item/restraints/legcuffs/beartrap, -/obj/item/poster/random_contraband, -/obj/item/poster/random_contraband, -/obj/item/poster/random_contraband, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"Dz" = ( -/obj/machinery/modular_computer/console/preset/command{ - dir = 8 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 - }, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/crew/crewthree) -"DF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ - dir = 1 - }, -/turf/open/floor/engine/hydrogen, -/area/ship/engineering/atmospherics) -"DL" = ( -/obj/effect/decal/cleanable/food/flour, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"DN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"DV" = ( -/obj/structure/chair/sofa/brown/corner/directional/south, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/obj/machinery/computer/helm/viewscreen/directional/east, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"DZ" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/decal/cleanable/food/flour, -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -11 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Eb" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"Ek" = ( -/obj/machinery/advanced_airlock_controller{ - pixel_x = 25 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Eu" = ( -/obj/docking_port/stationary{ - dwidth = 15; - width = 30; - height = 15; - dir = 2 - }, -/turf/template_noop, -/area/template_noop) -"Ev" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = 6 - }, -/obj/item/pen{ - pixel_x = 5; - pixel_y = 2 - }, -/obj/item/reagent_containers/food/snacks/fortunecookie{ - pixel_y = 7; - pixel_x = -7 - }, -/obj/machinery/newscaster/directional/east, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Ew" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Ex" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/obj/machinery/light/dim/directional/west, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"EE" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/machinery/door/poddoor{ - dir = 4; - id = "enginelockdown" - }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" - }, -/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"EF" = ( -/obj/machinery/modular_computer/console/preset/command{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/bar/half{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"EG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/wood, -/area/ship/hallway/central) -"EJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"EP" = ( -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"ES" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/light/broken/directional/east, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Fc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Fj" = ( -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Fn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"Fq" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Fu" = ( -/turf/closed/wall, -/area/ship/cargo) -"Fv" = ( -/obj/machinery/fax/nanotrasen, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"Fx" = ( -/obj/machinery/light/dim/directional/south, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/food/egg_smudge, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"FB" = ( -/obj/structure/flora/bigplant, -/turf/open/floor/wood, -/area/ship/hallway/central) -"FC" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/shovel, -/obj/item/kinetic_crusher, -/turf/open/floor/plasteel, -/area/ship/cargo) -"FO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel, -/area/ship/cargo) -"FW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Gb" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"Gc" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/borderfloorwhite/full, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Gh" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Activate Cooling" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"Gi" = ( -/turf/open/floor/engine, -/area/ship/engineering/engine) -"Gm" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Gp" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Gq" = ( -/obj/structure/table, -/obj/item/folder/blue, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/item/clipboard, -/turf/open/floor/wood, -/area/ship/crew/office) -"Gs" = ( -/obj/machinery/door/window/westleft, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = -33 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"GL" = ( -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"GQ" = ( -/obj/structure/fluff/hedge, -/turf/open/floor/wood, -/area/ship/crew/office) -"GW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Hb" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Hd" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/neutral/half{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Hm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/components/binary/pump/layer4{ - name = "Oxygen to Mix" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Hq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 9 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Hu" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{ - dir = 5 - }, -/obj/effect/turf_decal/atmos/mix, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"HA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"HE" = ( -/obj/structure/catwalk/over, -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"HL" = ( -/obj/machinery/igniter/incinerator_atmos, -/obj/machinery/air_sensor/atmos/incinerator_tank{ - id_tag = "nemo_incinerator_sensor" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/engine) -"HO" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/table/glass, -/obj/item/storage/backpack/duffelbag/med/surgery{ - pixel_y = 11 - }, -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"HR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"HW" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"HZ" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Ir" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"IA" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"IB" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"IV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"Jj" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Jk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Jm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Jn" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"JA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/computer/cargo{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"JE" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"JJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/wood, -/area/ship/hallway/central) -"JM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"JQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel, -/area/ship/cargo) -"JS" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_x = -30 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew/cryo) -"JT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"JX" = ( -/obj/effect/turf_decal/radiation/white, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"JY" = ( -/obj/structure/closet/emcloset/anchored, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Ka" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/wood, -/area/ship/hallway/central) -"Kb" = ( -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Kd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Kf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Kh" = ( -/obj/machinery/button/door{ - dir = 1; - pixel_y = -24; - id = "privacyshutters" - }, -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Ki" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"Kn" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 8 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"Kv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Kz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"KH" = ( -/obj/structure/punching_bag, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 6; - pixel_y = -24 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"KI" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/structure/barricade/wooden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"KL" = ( -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"KU" = ( -/obj/machinery/computer/arcade/orion_trail{ - dir = 8; - pixel_x = 5 - }, -/obj/item/reagent_containers/food/drinks/waterbottle{ - pixel_x = -15; - pixel_y = 10 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"La" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/table/wood, -/obj/structure/bedsheetbin, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Lm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input, -/turf/open/floor/engine/o2, -/area/ship/engineering/atmospherics) -"Lq" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "coolingshutdown" - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"Ls" = ( -/obj/machinery/door/airlock/mining/glass, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Lv" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"Lz" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"LA" = ( -/obj/structure/frame/computer{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"LD" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood, -/area/ship/crew/office) -"LX" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "hallwindows"; - name = "Shutters Control"; - pixel_y = 24 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Mi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Mk" = ( -/obj/machinery/door/airlock{ - dir = 4; - name = "Dormitory" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Mn" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/storage/backpack, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/storage/backpack/satchel, -/obj/item/radio, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Mq" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/visible/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Mr" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"ME" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 1 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"MG" = ( -/obj/effect/turf_decal/borderfloorwhite/full, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = 5 - }, -/obj/item/folder/blue{ - pixel_y = 11; - pixel_x = -8 - }, -/obj/item/stamp/cmo{ - pixel_x = -7 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"MH" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central7{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"MI" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northright, -/obj/machinery/door/window/southright{ - req_one_access_txt = "57" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/crewthree) -"MJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"MP" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"MS" = ( -/obj/machinery/atmospherics/components/binary/circulator, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"MT" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"MV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix Extract to TEG" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"MZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"Nh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Ni" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Nm" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/structure/table, -/obj/item/clipboard{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/stamp{ - pixel_x = 10 - }, -/obj/item/stamp/denied{ - pixel_x = 2 - }, -/obj/item/flashlight/lamp{ - pixel_x = -8; - pixel_y = 10 - }, -/obj/item/folder{ - pixel_x = -10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Np" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light_switch{ - pixel_x = -14; - pixel_y = 24 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Ny" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"NB" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"NC" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"NH" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"NK" = ( -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 24 - }, -/obj/effect/turf_decal/radiation/white, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"NL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"Oi" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"Om" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Oo" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"Op" = ( -/obj/effect/turf_decal/borderfloorwhite{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"OF" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"OG" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_y = 9; - pixel_x = -1 - }, -/obj/item/lighter{ - pixel_y = 7; - pixel_x = 4 - }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"OH" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/space_heater, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"OJ" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/window/reinforced/spawner/west, -/obj/machinery/door/poddoor{ - dir = 4; - id = "enginelockdown" - }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"OQ" = ( -/obj/machinery/door/poddoor{ - id = "amogusdoors"; - name = "Cargo Bay Blast Door" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/open/floor/plating, -/area/ship/cargo) -"OT" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Pb" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ship/external) -"Pf" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input, -/turf/open/floor/engine/n2, -/area/ship/engineering/atmospherics) -"Pk" = ( -/obj/effect/turf_decal/borderfloorwhite/full, -/obj/machinery/sleeper, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Pl" = ( -/obj/structure/chair/stool/bar{ - dir = 1; - pixel_y = 10 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Pq" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Px" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"PI" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"PJ" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/neutral/half{ - dir = 1 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_y = 6; - pixel_x = -8 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = -2; - pixel_y = 11 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Qo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 9 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Qp" = ( -/turf/closed/wall/r_wall, -/area/ship/bridge) -"Qs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"QK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"QM" = ( -/obj/structure/closet/crate/freezer/blood, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"QQ" = ( -/obj/item/cigbutt, -/obj/item/cigbutt{ - pixel_x = -10; - pixel_y = 10 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"QU" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/machinery/newscaster/directional/west, -/obj/structure/chair, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"QY" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/structure/closet/crate/bin, -/obj/item/trash/plate, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Ra" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 4 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Re" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Ri" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Rv" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/brown/visible, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Rw" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"RB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"RK" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Oxygen to Air and Mix"; - target_pressure = 1000 - }, -/obj/effect/turf_decal/atmos/oxygen, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"RL" = ( -/obj/structure/closet/secure_closet/freezer{ - anchored = 1 - }, -/obj/item/reagent_containers/condiment/enzyme, -/obj/item/reagent_containers/condiment/sugar, -/obj/item/reagent_containers/condiment/rice, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"RO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ - dir = 8 - }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"RQ" = ( -/obj/machinery/power/generator{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"RR" = ( -/obj/effect/turf_decal/borderfloorwhite{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"Sc" = ( -/obj/structure/chair/office{ - dir = 1; - name = "Requests" - }, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/crew/crewthree) -"Ss" = ( -/obj/machinery/vending/boozeomat, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Sv" = ( -/obj/machinery/vending/cola/shamblers, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"SA" = ( -/obj/machinery/door/airlock/command{ - name = "Requests Office"; - req_one_access_txt = "57"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"SE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/turf_decal/atmos/air{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"SG" = ( -/obj/effect/decal/cleanable/food/egg_smudge, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"SK" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/ship/hallway/central) -"SO" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/crewtwo) -"SY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Ta" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Tc" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_y = 10; - pixel_x = 9 - }, -/obj/item/trash/popcorn, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Tf" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/empty, -/obj/item/stock_parts/cell/high/empty, -/obj/item/stock_parts/cell/high/empty, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Th" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/chair/sofa/brown/left/directional/east, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = 14 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"Tm" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Tz" = ( -/obj/machinery/vending/snack/random, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"TF" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"TG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"TH" = ( -/obj/machinery/button/door{ - dir = 4; - pixel_x = -24; - id = "enginelockdown"; - name = "Lockdown Engines" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"TI" = ( -/obj/effect/decal/cleanable/ash, -/turf/open/floor/plasteel, -/area/ship/cargo) -"TJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"TL" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"TN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/obj/effect/turf_decal/atmos/nitrogen, -/obj/structure/sign/warning/gasmask{ - pixel_x = 31 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"TO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 8 - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"TS" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Ug" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"Uh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Uk" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"Uo" = ( -/obj/machinery/newscaster/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Ut" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Privacy Shutters"; - id = "privacyshutters" - }, -/obj/structure/window/fulltile, -/obj/structure/grille, -/turf/open/floor/plasteel/dark, -/area/ship/crew/office) -"Uu" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Uv" = ( -/obj/structure/table, -/turf/open/floor/wood, -/area/ship/crew/office) -"UA" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/grey, -/obj/item/bedsheet/random, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"UD" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"UI" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"UJ" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/sign/warning/enginesafety{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"UM" = ( -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "\proper captain's locker"; - req_access_txt = "20" - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 - }, -/obj/item/storage/backpack/satchel/cap, -/obj/item/storage/backpack/captain, -/obj/item/storage/belt/sabre, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/suit/armor/vest/capcarapace, -/obj/item/clothing/shoes/laceup, -/obj/item/door_remote/captain, -/obj/item/clothing/gloves/color/captain/nt, -/obj/item/clothing/suit/armor/nanotrasen/captain, -/obj/item/clothing/suit/armor/nanotrasen/captain/parade, -/obj/item/clothing/gloves/color/captain/nt, -/obj/item/clothing/under/nanotrasen/captain/skirt, -/obj/item/clothing/under/nanotrasen/captain, -/obj/item/clothing/head/nanotrasen/captain/peaked, -/obj/item/clothing/head/nanotrasen/captain, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"UN" = ( -/turf/open/floor/wood, -/area/ship/hallway/central) -"UR" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 6 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Vd" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/engineering/atmospherics) -"Ve" = ( -/obj/structure/railing, -/obj/item/kirbyplants/random, -/obj/machinery/light/dim/directional/west, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Vj" = ( -/turf/closed/wall, -/area/ship/hallway/central) -"Vp" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/drinks/beer, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/green/half{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Vq" = ( -/obj/structure/closet/secure_closet{ - anchored = 1; - can_be_unanchored = 1; - icon_state = "sec"; - name = "equipment locker"; - req_access_txt = "1" - }, -/obj/item/melee/baton/loaded, -/obj/item/restraints/handcuffs, -/obj/item/restraints/handcuffs, -/obj/item/stock_parts/cell/gun, -/obj/item/stock_parts/cell/gun/mini, -/obj/item/stock_parts/cell/gun/mini, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"VP" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"VQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Wa" = ( -/obj/effect/turf_decal/borderfloorwhite/full, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Wg" = ( -/obj/structure/table, -/obj/item/toy/cards/deck{ - pixel_y = 7 - }, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"Wr" = ( -/obj/machinery/vending/clothing{ - pixel_y = 10 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Ws" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"Wy" = ( -/obj/structure/closet/emcloset/wall/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Wz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/wood, -/area/ship/hallway/central) -"WC" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"WE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 10 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"WO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel, -/area/ship/cargo) -"WP" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"WR" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/vending/dinnerware, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"WU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/machinery/light/directional/west, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"WX" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"WZ" = ( -/turf/closed/wall, -/area/ship/crew/cryo) -"Xe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Xl" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/structure/curtain/cloth/grey, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"Xp" = ( -/turf/closed/wall/r_wall, -/area/ship/cargo/office) -"Xt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Xu" = ( -/obj/machinery/medical_kiosk, -/obj/machinery/light/directional/south, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"Xy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"XA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/ntspaceworks_small/left, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"XJ" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/door/window/brigdoor/southright{ - name = "The Captain's Personal Lavatory"; - opacity = 1; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/crew/crewtwo) -"XU" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/dorm) -"XY" = ( -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridgelockdown" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/bridge) -"Yb" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Yj" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"Ym" = ( -/obj/machinery/door/poddoor{ - id = "amogusdoors"; - name = "Cargo Bay Blast Door" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ship/cargo) -"Yn" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"Yp" = ( -/obj/structure/closet/secure_closet/miningcloset{ - anchored = 1 - }, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/clothing/suit/hooded/explorer, -/obj/item/clothing/suit/hooded/explorer, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/mining_scanner, -/obj/item/mining_scanner, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 23 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Yv" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Yx" = ( -/obj/structure/chair/sofa/brown/right/directional/south, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 23 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"YC" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"YQ" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"YT" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/medical, -/obj/item/defibrillator, -/obj/item/pinpointer/crew/prox, -/obj/item/storage/firstaid/fire, -/obj/item/storage/box/bodybags, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"Za" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"Zd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Zf" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Zo" = ( -/obj/machinery/computer/crew{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/bar/half{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Zr" = ( -/obj/machinery/firealarm/directional/east, -/obj/machinery/atmospherics/components/binary/volume_pump{ - name = "Fuel Pump" - }, -/obj/machinery/atmospherics/components/binary/valve/on/layer4{ - name = "Emergency Stop" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Zu" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"Zw" = ( -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"ZD" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/sign/warning/electricshock{ - pixel_y = 25 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"ZE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"ZI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/cargo) -"ZJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/dresser, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"ZR" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) - -(1,1,1) = {" -fW -fW -fW -fW -fW -fW -fW -yo -Pb -Pb -ul -ul -ul -ul -mX -ul -ul -ul -ul -Pb -Pb -fW -fW -fW -fW -fW -fW -fW -fW -fW -"} -(2,1,1) = {" -fW -fW -fW -fW -fW -qF -mF -tf -gh -OJ -ul -lE -dj -nF -HL -bk -dj -Zf -ul -gh -OJ -kz -mF -mF -fW -fW -fW -fW -fW -fW -"} -(3,1,1) = {" -fW -fW -fW -kz -kz -bG -EE -tf -ZD -IA -WU -JX -ul -lY -lV -lY -ul -NK -uT -IA -IA -kz -bG -EE -kz -kz -fW -fW -fW -fW -"} -(4,1,1) = {" -fW -fW -kz -kz -JT -wt -gO -dJ -xO -sz -cQ -aR -kn -MV -sK -AG -Jm -uM -yG -we -sD -TH -zy -zy -gk -kz -kz -fW -fW -fW -"} -(5,1,1) = {" -fW -kz -kz -kz -Np -Kd -Jk -nj -Hm -RB -Lz -MJ -IV -NH -lg -Yn -Uk -ub -Oo -bI -Xe -yF -CR -Hu -mL -kz -kz -kz -fW -fW -"} -(6,1,1) = {" -fW -kz -pT -At -RK -qK -dS -Ra -tF -mS -cL -EJ -CE -HR -Ws -bA -fc -hc -Kz -Fc -lW -sJ -qK -dO -qK -Rv -DF -kz -fW -fW -"} -(7,1,1) = {" -fW -kz -Lm -pZ -yj -TF -gN -Ni -vW -ne -ra -hZ -ft -MS -RQ -tp -Gi -vB -fw -Tf -ww -Mq -zK -Zr -Ew -Rv -wC -kz -fW -fW -"} -(8,1,1) = {" -kz -kz -kz -Cu -Px -Px -TS -lR -dZ -kz -TO -ul -rx -fT -nu -gB -vB -mc -kz -kz -Vd -pM -Fu -Fu -Fu -tx -tx -tx -tx -fW -"} -(9,1,1) = {" -kz -Pf -pZ -Dd -Ri -Yv -TG -oE -EP -va -RO -ul -Lv -Yj -fD -MP -Gh -ik -kz -fz -ai -CA -Fu -FC -Fq -qy -tz -pr -uG -fW -"} -(10,1,1) = {" -kz -rM -At -TN -kB -fl -fu -bf -SE -At -sk -ul -UJ -rz -Gi -tk -aL -pB -kz -jZ -wB -sC -Fu -Ca -hz -sh -Kv -jv -Ym -fW -"} -(11,1,1) = {" -kz -kz -kz -kz -kz -kz -kz -kz -kz -kz -kz -ul -ul -ul -ul -ul -ul -ul -kz -kz -er -og -Fu -Om -JQ -WO -FO -JE -Ym -fW -"} -(12,1,1) = {" -hr -JY -SK -hr -UD -dB -rK -um -QU -vO -QY -WZ -JS -Bc -Da -Bc -fU -WZ -rW -cS -sU -bh -Fu -Yp -TI -PI -Pq -fQ -OQ -fW -"} -(13,1,1) = {" -wg -ky -gx -tR -VQ -ES -Bw -tm -gi -Ao -Fx -WZ -ek -Ug -qp -CM -BS -WZ -tI -xb -hA -bz -Ls -aQ -aQ -ZI -ug -jv -Ym -Eu -"} -(14,1,1) = {" -hr -Ek -hr -hr -hr -hr -hr -Xt -GW -Ao -Tc -WZ -ZJ -Nh -xK -xW -Mn -WZ -il -pD -Cz -pz -is -Gp -bZ -Uu -NC -fs -jX -fW -"} -(15,1,1) = {" -lw -lw -lw -DZ -dp -rF -Vp -Pl -GW -qY -aF -WZ -WZ -Wr -vc -Ev -WZ -WZ -ib -cq -Mi -wZ -Fu -MH -yh -zu -zu -tx -tx -fW -"} -(16,1,1) = {" -fW -lw -wT -KL -vY -KL -Hd -Pl -GW -UI -fn -FB -WZ -WZ -Mk -WZ -Vj -bY -HW -WP -hA -si -ys -pt -ys -uQ -uQ -Xp -fW -fW -"} -(17,1,1) = {" -fW -lw -RL -OT -Ss -OT -vI -Pl -gr -gQ -JJ -cp -Wz -hb -Ki -lh -EG -cp -ie -Tm -Hq -gc -ys -LX -Nm -hG -hG -Xp -fW -fW -"} -(18,1,1) = {" -fW -lw -WR -SG -OT -wX -PJ -Pl -if -UI -sd -re -re -Gb -UN -al -UN -UN -HW -WP -eu -hC -qR -Au -JA -wG -Uh -Xp -fW -fW -"} -(19,1,1) = {" -fW -lw -kL -Zd -DL -Br -xf -kO -if -YQ -Vj -Yx -Wg -Oi -gP -UN -UN -KH -mf -ts -hA -pD -ys -nd -Zw -nv -gm -Xp -fW -fW -"} -(20,1,1) = {" -fW -lw -yf -uw -uD -jr -tX -Bg -xo -pI -Vj -xs -fa -Oi -cF -cF -UN -uX -fx -WC -hA -pD -ys -OH -nB -wA -AP -Xp -fW -fW -"} -(21,1,1) = {" -fW -lw -xf -xf -xf -xf -xf -nX -Dc -Cs -Vj -DV -fI -Ka -qq -fY -zG -KU -Vj -qr -hA -rc -ys -iI -pq -AB -XA -Xp -fW -fW -"} -(22,1,1) = {" -fW -sY -As -mT -Bh -LD -Ut -BE -zO -TL -ji -ji -ji -ji -ji -qa -qa -qa -hr -pD -hA -om -ys -jf -lU -ic -BI -Xp -fW -fW -"} -(23,1,1) = {" -fW -sY -QQ -vR -Uv -mM -Ut -pD -ir -pD -eC -xA -bO -dl -ji -id -qS -qa -Hb -pD -hA -Jj -ys -js -pf -YT -CV -Xp -fW -fW -"} -(24,1,1) = {" -fW -sY -GQ -mM -Gq -zM -Ut -pD -ir -pD -MI -Sc -us -Vq -ji -ze -SO -qa -Tz -Bd -ta -Vj -ys -ys -ys -ys -ys -Xp -fW -fW -"} -(25,1,1) = {" -fW -sY -uv -NL -oU -MZ -Ut -pD -sA -ZE -ji -Dz -ps -dG -ji -qa -XJ -qa -hr -Bq -hA -ga -bd -Th -CH -kE -Xu -ls -fW -fW -"} -(26,1,1) = {" -fW -nq -nq -xE -SY -Kh -tB -om -ir -cd -ji -ji -SA -ji -ji -bq -GL -bW -hr -ZR -QK -Jn -iY -OF -CB -oq -ls -ls -fW -fW -"} -(27,1,1) = {" -fW -fW -nq -ed -Ta -Cy -eL -oT -fo -Ny -ji -Aa -kp -oN -ji -lk -iP -vp -qa -pD -hA -ve -dy -ix -Za -wd -hJ -fW -fW -fW -"} -(28,1,1) = {" -fW -fW -nq -dW -Gm -OG -tB -eg -JM -VP -ji -yM -Qs -rw -ji -wp -ok -ao -qa -Uo -hA -ga -vP -RR -Op -kM -hJ -fW -fW -fW -"} -(29,1,1) = {" -fW -fW -nq -tB -tB -tB -tB -tB -vf -Ir -ji -lf -Xy -xi -ji -UM -hi -vZ -qa -de -eY -AT -Pk -tZ -Wa -MG -hJ -fW -fW -fW -"} -(30,1,1) = {" -fW -fW -XU -IB -eP -Re -BW -jS -bw -Kb -ji -ji -fi -ji -ji -qa -iB -qa -qa -gM -dM -AT -Gc -tZ -Wa -zC -hJ -fW -fW -fW -"} -(31,1,1) = {" -fW -fW -XU -XU -wO -WX -eB -jS -hT -cJ -Qp -Ve -Eb -BJ -zi -iv -AE -Ex -Qp -pn -hA -AT -HO -tr -Gs -ls -ls -fW -fW -fW -"} -(32,1,1) = {" -fW -fW -fW -XU -uL -uh -Kf -yU -WE -YC -Yb -Az -Mr -MT -Zu -UR -Rw -aA -Fj -DN -Qo -AT -zS -Cr -oD -ls -fW -fW -fW -fW -"} -(33,1,1) = {" -fW -fW -fW -XU -dq -uq -eQ -jS -Wy -om -Qp -ph -sc -FW -du -HA -jM -wb -Qp -Sv -Dp -AT -LA -dX -QM -ls -fW -fW -fW -fW -"} -(34,1,1) = {" -fW -fW -fW -XU -XU -mQ -jK -jS -lA -HZ -Qp -EF -Zo -Fv -ng -vo -hP -uY -Qp -kU -Cl -kU -kU -kU -wH -ls -fW -fW -fW -fW -"} -(35,1,1) = {" -fW -fW -fW -fW -XU -yB -TJ -jS -jS -jS -XU -XY -XY -XY -ih -ih -XY -XY -wH -qg -fG -mi -ja -kU -wH -fW -fW -fW -fW -fW -"} -(36,1,1) = {" -fW -fW -fW -fW -XU -bo -gu -Xl -uS -mI -XU -mg -ME -ME -NB -np -ME -qb -wH -mU -zJ -mw -sn -kU -wH -fW -fW -fW -fW -fW -"} -(37,1,1) = {" -fW -fW -fW -fW -XU -XU -hM -rq -Fn -aZ -XU -np -ME -ME -ME -ME -qb -Kn -wH -kU -kU -KI -kU -wH -wH -fW -fW -fW -fW -fW -"} -(38,1,1) = {" -fW -fW -fW -fW -fW -XU -La -kW -aZ -aZ -jq -mg -ME -ME -ME -ME -NB -Kn -xu -bR -mN -bs -HE -wH -fW -fW -fW -fW -fW -fW -"} -(39,1,1) = {" -fW -fW -fW -fW -fW -XU -XU -Xl -aZ -aZ -jq -fg -Lq -Lq -Lq -Lq -Lq -zP -xu -aN -ut -eD -wH -wH -fW -fW -fW -fW -fW -fW -"} -(40,1,1) = {" -fW -fW -fW -fW -fW -fW -XU -XU -BH -UA -jq -im -fW -fW -fW -fW -fW -im -xu -BK -Dy -wH -wH -fW -fW -fW -fW -fW -fW -fW -"} -(41,1,1) = {" -fW -fW -fW -fW -fW -fW -fW -XU -XU -XU -XU -im -fW -fW -fW -fW -fW -im -wH -Co -wH -wH -fW -fW -fW -fW -fW -fW -fW -fW -"} -(42,1,1) = {" -fW -fW -fW -fW -fW -fW -fW -fW -XU -XU -XU -im -fW -fW -fW -fW -fW -im -wH -wH -wH -fW -fW -fW -fW -fW -fW -fW -fW -fW -"} -(43,1,1) = {" -fW -fW -fW -fW -fW -fW -fW -fW -fW -XU -XU -im -fW -fW -fW -fW -fW -im -wH -wH -fW -fW -fW -fW -fW -fW -fW -fW -fW -fW -"} diff --git a/code/modules/clothing/outfits/factions/nanotrasen.dm b/code/modules/clothing/outfits/factions/nanotrasen.dm index aaba1d8054cf..3c9e379e74db 100644 --- a/code/modules/clothing/outfits/factions/nanotrasen.dm +++ b/code/modules/clothing/outfits/factions/nanotrasen.dm @@ -401,6 +401,15 @@ shoes = /obj/item/clothing/shoes/sneakers/black belt = /obj/item/pda +// Janitor +/datum/outfit/job/nanotrasen/janitor + name = "Nanotrasen - Janitor" + jobtype = /datum/job/janitor + job_icon = "janitor" + + uniform = /obj/item/clothing/under/nanotrasen/janitor + head = /obj/item/clothing/head/nanotrasen/cap/janitor + // Lawyer /datum/outfit/job/nanotrasen/lawyer name = "Nanotrasen - Lawyer" @@ -423,8 +432,6 @@ id_assignment = "Corporate Representative" job_icon = "nanotrasen" - uniform = /obj/item/clothing/under/rank/command/head_of_personnel/suit - suit = null ears = /obj/item/radio/headset/headset_cent l_hand = /obj/item/clipboard r_pocket = /obj/item/pen/fountain From 48ddc5684473ae02b3fbd7103555a648212ed195 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 15:41:19 -0500 Subject: [PATCH 109/125] Automatic changelog generation for PR #3185 [ci skip] --- html/changelogs/AutoChangeLog-pr-3185.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3185.yml diff --git a/html/changelogs/AutoChangeLog-pr-3185.yml b/html/changelogs/AutoChangeLog-pr-3185.yml new file mode 100644 index 000000000000..157c1439068f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3185.yml @@ -0,0 +1,6 @@ +author: Apogee-dev +changes: + - {rscadd: Added Nanotrasen Harrier-class cruiser} + - {rscdel: Removed Osprey-class cruiser} + - {rscdel: Removed Skipper-class cruiser} +delete-after: true From 608589a34e27b425e7e91f95be188d2eaf8d02cc Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 01:06:57 +0000 Subject: [PATCH 110/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3146.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3185.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3406.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3421.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3436.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3438.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3449.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3451.yml | 5 ----- html/changelogs/archive/2024-10.yml | 20 ++++++++++++++++++++ 9 files changed, 20 insertions(+), 39 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3146.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3185.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3406.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3421.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3436.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3438.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3449.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3451.yml diff --git a/html/changelogs/AutoChangeLog-pr-3146.yml b/html/changelogs/AutoChangeLog-pr-3146.yml deleted file mode 100644 index 2b6397e66448..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3146.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Thera-Pissed -changes: - - {rscadd: angle grinders for salvage} - - {rscadd: reworks plasma cutters for salvage} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3185.yml b/html/changelogs/AutoChangeLog-pr-3185.yml deleted file mode 100644 index 157c1439068f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3185.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Apogee-dev -changes: - - {rscadd: Added Nanotrasen Harrier-class cruiser} - - {rscdel: Removed Osprey-class cruiser} - - {rscdel: Removed Skipper-class cruiser} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3406.yml b/html/changelogs/AutoChangeLog-pr-3406.yml deleted file mode 100644 index 16dcd1234872..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3406.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Bjarl -changes: - - {rscadd: IRMG engineers have rolled new turrets out into the frontier. Please - report back on their effectiveness. Unless you have been shot. Then you should - be dead.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3421.yml b/html/changelogs/AutoChangeLog-pr-3421.yml deleted file mode 100644 index 7e32d923d25c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3421.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SomeguyManperson -changes: - - {rscdel: missions will no longer request capturing ice demons} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3436.yml b/html/changelogs/AutoChangeLog-pr-3436.yml deleted file mode 100644 index 6020a91bbc22..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3436.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Apogee-dev -changes: - - {balance: increased mudskipper limit to 2} - - {balance: cut a deckhand slot from kilo} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3438.yml b/html/changelogs/AutoChangeLog-pr-3438.yml deleted file mode 100644 index f446f6f0d204..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3438.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Apogee-dev -changes: - - {balance: removed one recruit slot from the vaquero} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3449.yml b/html/changelogs/AutoChangeLog-pr-3449.yml deleted file mode 100644 index b13db714084e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3449.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Sadhorizon -changes: - - {bugfix: Komodo Bridge Officer is now actually an officer.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3451.yml b/html/changelogs/AutoChangeLog-pr-3451.yml deleted file mode 100644 index a09e9e0324b7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3451.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Bjarl -changes: - - {rscadd: 'Sharplite has produced a line of turrets for Nanotrasen, which is now - mounting them on relevant vessels.'} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 2055dcb1e4c0..ef18854c4aac 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -49,3 +49,23 @@ - balance: Replace red insuls with yellow insuls in syndicate toolboxes zimon9: - bugfix: fixed the waste and scrubber gas reclamation filters on the colossus +2024-10-06: + Apogee-dev: + - balance: removed one recruit slot from the vaquero + - rscadd: Added Nanotrasen Harrier-class cruiser + - rscdel: Removed Osprey-class cruiser + - rscdel: Removed Skipper-class cruiser + - balance: increased mudskipper limit to 2 + - balance: cut a deckhand slot from kilo + Bjarl: + - rscadd: IRMG engineers have rolled new turrets out into the frontier. Please report + back on their effectiveness. Unless you have been shot. Then you should be dead. + - rscadd: Sharplite has produced a line of turrets for Nanotrasen, which is now + mounting them on relevant vessels. + Sadhorizon: + - bugfix: Komodo Bridge Officer is now actually an officer. + SomeguyManperson: + - rscdel: missions will no longer request capturing ice demons + Thera-Pissed: + - rscadd: angle grinders for salvage + - rscadd: reworks plasma cutters for salvage From 3ce983e40ec619de0094f6806e0b3a1e44ecd32e Mon Sep 17 00:00:00 2001 From: thgvr <81882910+thgvr@users.noreply.github.com> Date: Sat, 5 Oct 2024 19:40:04 -0700 Subject: [PATCH 111/125] skhrinks gun cases (#3481) ## About The Pull Request i put it in the washing machine for too long ![image](https://github.com/user-attachments/assets/e91b4291-0ce3-4149-aa73-1d3f76a95529) ## Changelog :cl: imageadd: Shrunk down the sprite of guncases /:cl: --- code/game/objects/items/storage/guncases.dm | 8 +++----- icons/obj/guncase.dmi | Bin 359 -> 344 bytes icons/obj/guncase_48x32.dmi | Bin 606 -> 0 bytes 3 files changed, 3 insertions(+), 5 deletions(-) delete mode 100644 icons/obj/guncase_48x32.dmi diff --git a/code/game/objects/items/storage/guncases.dm b/code/game/objects/items/storage/guncases.dm index 8fe256f2b6c2..2feb49af03f7 100644 --- a/code/game/objects/items/storage/guncases.dm +++ b/code/game/objects/items/storage/guncases.dm @@ -1,8 +1,8 @@ /obj/item/storage/guncase name = "gun case" desc = "A large box designed for holding firearms and magazines safely." - icon = 'icons/obj/guncase_48x32.dmi' - icon_state = "riflecase" + icon = 'icons/obj/guncase.dmi' + icon_state = "guncase" item_state = "infiltrator_case" force = 12 throwforce = 12 @@ -14,7 +14,6 @@ drop_sound = 'sound/items/handling/toolbox_drop.ogg' pickup_sound = 'sound/items/handling/toolbox_pickup.ogg' - /obj/item/storage/guncase/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) @@ -38,7 +37,6 @@ /obj/item/storage/guncase/absolution/PopulateContents() new /obj/item/gun/ballistic/shotgun/flamingarrow/absolution/no_mag(src) - /obj/item/storage/guncase/skm /obj/item/storage/guncase/skm/PopulateContents() new /obj/item/gun/ballistic/automatic/assault/skm/no_mag(src) @@ -101,7 +99,7 @@ name = "pistol case" desc = "A large box designed for holding pistols and magazines safely." icon = 'icons/obj/guncase.dmi' - icon_state = "pistolcase" + icon_state = "guncase" item_state = "infiltrator_case" force = 12 throwforce = 12 diff --git a/icons/obj/guncase.dmi b/icons/obj/guncase.dmi index 4941b965f2f84c706c80c274ad72397d7f6c0d8c..83b5292a5cfdb9818bffc775c7e81593874ef54e 100644 GIT binary patch delta 208 zcmV;>05AXN0@wnOOaW_=O-O$!y)-X5u{c$Ui!&v&s2C_>$i^dnWB*&Y@~yMwwy9?e@Y|19jY&v{c!-7?7DF5t9a z4h<~X-|wL^$VT>qYo;Cwcb%yKsa$8o3ZrpGH#wSx9j;dDHJ!Ca1Q9ZO61ZJI^WyEd ZdjizcKL+Sz=o|n5002ovPDHLkV1gqTV%7iv diff --git a/icons/obj/guncase_48x32.dmi b/icons/obj/guncase_48x32.dmi deleted file mode 100644 index b5dc20bc64e545e453d1d1c6cde50dca893cb21c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#aV)qvGg33t zGfIFQVZgi*W9;OoBp6G6l9j~y_WSSWJNkB#=eY_Qsc#2txyE`8VOUe1s zDANOY1BNH3d$vo8F#Iwj$Q zuY^*-%Y305fD)E!a$NZiX|=3Q&^26q=%c7}Bsf;V?#A{KxV##FM`inIu@icFoc88? z8$JXX+sc%8n2i8&T%gSkds#HsToOAeAGa0#g*d4TSU-}*EwPjE5wrkT`T#uNUAd2l z(5FTU*yckY-T|<6Z51Va+~0I~$$m42l|k^lez07*qoM6N<$g8LQ@%>V!Z From 91b04049c165169599ef28928fb03214226fad4a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 21:50:36 -0500 Subject: [PATCH 112/125] Automatic changelog generation for PR #3481 [ci skip] --- html/changelogs/AutoChangeLog-pr-3481.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3481.yml diff --git a/html/changelogs/AutoChangeLog-pr-3481.yml b/html/changelogs/AutoChangeLog-pr-3481.yml new file mode 100644 index 000000000000..d4489159840d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3481.yml @@ -0,0 +1,4 @@ +author: thgvr +changes: + - {imageadd: Shrunk down the sprite of guncases} +delete-after: true From ae2ed959360fc99f2be2e9eba65ce96d38af060b Mon Sep 17 00:00:00 2001 From: thgvr <81882910+thgvr@users.noreply.github.com> Date: Sat, 5 Oct 2024 20:21:13 -0700 Subject: [PATCH 113/125] Some backpack sprites for Kepori (#3430) ## About The Pull Request ![image](https://github.com/user-attachments/assets/ecfb8832-7b72-4951-93b6-1b62c7c86483) ## Changelog :cl: imageadd: Some backpack sprites for Kepori /:cl: --- .../BeachRuins/beach_fishing_hut.dmm | 2 - code/__DEFINES/species_clothing_defines.dm | 1 + code/datums/diseases/gastrolisis.dm | 17 +----- code/game/gamemodes/clown_ops/clown_ops.dm | 1 - code/game/objects/items.dm | 3 +- code/game/objects/items/pneumaticCannon.dm | 20 ------- code/game/objects/items/storage/backpack.dm | 55 ++---------------- .../game/objects/items/storage/uplink_kits.dm | 1 - .../crates_lockers/closets/job_closets.dm | 3 +- code/modules/antagonists/santa/santa.dm | 4 -- code/modules/clothing/outfits/event.dm | 26 --------- code/modules/jobs/job_types/clown.dm | 2 - code/modules/jobs/job_types/geneticist.dm | 1 - .../carbon/human/species_types/snail.dm | 31 ---------- .../mob/living/carbon/human/update_icons.dm | 47 ++++++++------- code/modules/vending/wardrobes.dm | 3 +- icons/mob/clothing/back.dmi | Bin 134924 -> 94578 bytes icons/mob/clothing/back/backpacks.dmi | Bin 0 -> 36985 bytes icons/mob/clothing/back/backpacks_kepori.dmi | Bin 0 -> 2255 bytes .../mob/species/kepori/onmob_back_kepori.dmi | Bin 0 -> 211 bytes icons/obj/clothing/back/backpacks.dmi | Bin 0 -> 26261 bytes icons/obj/storage.dmi | Bin 81584 -> 56964 bytes shiptest.dme | 1 - 23 files changed, 35 insertions(+), 183 deletions(-) delete mode 100644 code/modules/clothing/outfits/event.dm create mode 100644 icons/mob/clothing/back/backpacks.dmi create mode 100644 icons/mob/clothing/back/backpacks_kepori.dmi create mode 100644 icons/mob/species/kepori/onmob_back_kepori.dmi create mode 100644 icons/obj/clothing/back/backpacks.dmi diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm index ed6c353d26d7..ea1a18b11c4b 100644 --- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm @@ -203,7 +203,6 @@ "kj" = ( /obj/structure/closet/cabinet, /obj/item/pneumatic_cannon/speargun, -/obj/item/storage/backpack/magspear_quiver, /obj/item/melee/knife/hunting, /turf/open/floor/wood, /area/ruin/beach) @@ -1051,7 +1050,6 @@ "PB" = ( /obj/structure/closet/cabinet, /obj/item/pneumatic_cannon/speargun, -/obj/item/storage/backpack/magspear_quiver, /obj/item/melee/knife/hunting, /obj/machinery/light/small/directional/east{ light_color = "#d8b1b1" diff --git a/code/__DEFINES/species_clothing_defines.dm b/code/__DEFINES/species_clothing_defines.dm index 6f07a76c8293..4dd9e26da752 100644 --- a/code/__DEFINES/species_clothing_defines.dm +++ b/code/__DEFINES/species_clothing_defines.dm @@ -30,6 +30,7 @@ ///KEPORI PATHS #define KEPORI_UNIFORM_PATH 'icons/mob/species/kepori/onmob_uniform_kepori.dmi' +#define KEPORI_BACK_PATH 'icons/mob/species/kepori/onmob_back_kepori.dmi' #define KEPORI_SHOES_PATH 'icons/mob/species/kepori/onmob_feet_kepori.dmi' #define KEPORI_SUIT_PATH 'icons/mob/species/kepori/onmob_suit_kepori.dmi' #define KEPORI_EARS_PATH 'icons/mob/species/kepori/onmob_ears_kepori.dmi' diff --git a/code/datums/diseases/gastrolisis.dm b/code/datums/diseases/gastrolisis.dm index 119ccc0c60e0..e2af13bd6742 100644 --- a/code/datums/diseases/gastrolisis.dm +++ b/code/datums/diseases/gastrolisis.dm @@ -38,23 +38,13 @@ "You scream in pain as your eyes are pushed out by your new snail eyes!") affected_mob.emote("scream") return - var/obj/item/shell = affected_mob.get_item_by_slot(ITEM_SLOT_BACK) - if(!istype(shell, /obj/item/storage/backpack/snail)) - shell = null - if(!shell && prob(5)) - if(affected_mob.dropItemToGround(affected_mob.get_item_by_slot(ITEM_SLOT_BACK))) - affected_mob.equip_to_slot_or_del(new /obj/item/storage/backpack/snail(affected_mob), ITEM_SLOT_BACK) - affected_mob.visible_message("[affected_mob] grows a grotesque shell on their back!", \ - "You scream in pain as a shell pushes itself out from under your skin!") - affected_mob.emote("scream") - return var/obj/item/organ/tongue/tongue = locate(/obj/item/organ/tongue/snail) in affected_mob.internal_organs if(!tongue && prob(5)) var/obj/item/organ/tongue/snail/new_tongue = new() new_tongue.Insert(affected_mob) to_chat(affected_mob, "You feel your speech slow down...") return - if(shell && eyes && tongue && prob(5)) + if(eyes && tongue && prob(5)) affected_mob.set_species(/datum/species/snail) affected_mob.client?.give_award(/datum/award/achievement/misc/snail, affected_mob) affected_mob.visible_message("[affected_mob] turns into a snail!", \ @@ -79,8 +69,3 @@ if(eyes) var/obj/item/organ/eyes/new_eyes = new H.dna.species.mutanteyes () new_eyes.Insert(H) - var/obj/item/storage/backpack/bag = H.get_item_by_slot(ITEM_SLOT_BACK) - if(istype(bag, /obj/item/storage/backpack/snail)) - bag.emptyStorage() - H.temporarilyRemoveItemFromInventory(bag, TRUE) - qdel(bag) diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 87dc3b65d438..e3f7eea12c52 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -31,7 +31,6 @@ uniform = /obj/item/clothing/under/syndicate mask = /obj/item/clothing/mask/gas/clown_hat gloves = /obj/item/clothing/gloves/combat - back = /obj/item/storage/backpack/clown ears = /obj/item/radio/headset/syndicate/alt l_pocket = /obj/item/pinpointer/nuke/syndicate r_pocket = /obj/item/bikehorn diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 154f6bde143a..90669dde84bb 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -30,8 +30,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb var/supports_variations = null ///If set, kepori wearing this use this instead of their clothing file - var/kepoi_override_icon - + var/kepori_override_icon ///If set, vox wearing this use this instead of their clothing file var/vox_override_icon diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 5108a8713633..9122be0a5d6c 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -326,23 +326,3 @@ /obj/item/pneumatic_cannon/speargun/Initialize() . = ..() allowed_typecache = magspear_typecache - -/obj/item/storage/backpack/magspear_quiver - name = "quiver" - desc = "A quiver for holding magspears." - icon_state = "quiver" - item_state = "quiver" - -/obj/item/storage/backpack/magspear_quiver/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 20 - STR.max_combined_w_class = 40 - STR.display_numerical_stacking = TRUE - STR.set_holdable(list( - /obj/item/throwing_star/magspear - )) - -/obj/item/storage/backpack/magspear_quiver/PopulateContents() - for(var/i in 1 to 20) - new /obj/item/throwing_star/magspear(src) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index eb72fe31c5ec..dd0598e80c2d 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -16,6 +16,8 @@ desc = "You wear this on your back and put items into it." icon_state = "backpack" item_state = "backpack" + icon = 'icons/obj/clothing/back/backpacks.dmi' + mob_overlay_icon = 'icons/mob/clothing/back/backpacks.dmi' lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' pickup_sound = "rustle" @@ -26,7 +28,9 @@ max_integrity = 300 greyscale_icon_state = "backpack" greyscale_colors = list(list(13, 17), list(12, 17), list(12, 21)) - supports_variations = VOX_VARIATION + + supports_variations = VOX_VARIATION | KEPORI_VARIATION + kepori_override_icon = 'icons/mob/clothing/back/backpacks_kepori.dmi' /obj/item/storage/backpack/ComponentInitialize() . = ..() @@ -61,51 +65,12 @@ STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT STR.max_volume = STORAGE_VOLUME_BAG_OF_HOLDING -/obj/item/storage/backpack/santabag - name = "Santa's Gift Bag" - desc = "Space Santa uses this to deliver presents to all the nice children in space in Christmas! Wow, it's pretty big!" - icon_state = "giftbag0" - item_state = "giftbag" - w_class = WEIGHT_CLASS_BULKY - -/obj/item/storage/backpack/santabag/Initialize() - . = ..() - regenerate_presents() - -/obj/item/storage/backpack/santabag/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_w_class = WEIGHT_CLASS_NORMAL - STR.max_combined_w_class = 60 - -/obj/item/storage/backpack/santabag/proc/regenerate_presents() - addtimer(CALLBACK(src, PROC_REF(regenerate_presents)), 30 SECONDS) - - var/mob/M = get(loc, /mob) - if(!istype(M)) - return - if(M.mind && HAS_TRAIT(M.mind, TRAIT_CANNOT_OPEN_PRESENTS)) - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - var/turf/floor = get_turf(src) - var/obj/item/I = new /obj/item/a_gift/anything(floor) - if(STR.can_be_inserted(I, stop_messages=TRUE)) - STR.handle_item_insertion(I, prevent_warning=TRUE) - else - qdel(I) - - /obj/item/storage/backpack/cultpack name = "trophy rack" desc = "It's useful for both carrying extra gear and proudly declaring your insanity." icon_state = "cultpack" item_state = "backpack" -/obj/item/storage/backpack/clown - name = "Giggles von Honkerton" - desc = "It's a backpack made by Honk! Co." - icon_state = "clownpack" - item_state = "clownpack" - /obj/item/storage/backpack/explorer name = "explorer bag" desc = "A robust backpack for stashing your loot." @@ -215,7 +180,6 @@ item_state = "satchel-norm" greyscale_icon_state = "satchel" greyscale_colors = list(list(11, 12), list(17, 18), list(10, 11)) - supports_variations = VOX_VARIATION /obj/item/storage/backpack/satchel/ComponentInitialize() . = ..() @@ -226,7 +190,6 @@ /obj/item/storage/backpack/satchel/leather name = "leather satchel" desc = "It's a very fancy satchel made with fine leather." - icon = 'icons/obj/storage.dmi' icon_state = "satchel" item_state = "satchel" @@ -261,12 +224,6 @@ icon_state = "satchel-chem" item_state = "satchel-chem" -/obj/item/storage/backpack/satchel/gen - name = "geneticist satchel" - desc = "A sterile satchel with geneticist colours." - icon_state = "satchel-gen" - item_state = "satchel-gen" - /obj/item/storage/backpack/satchel/tox name = "scientist satchel" desc = "Useful for holding research materials." @@ -354,8 +311,6 @@ /obj/item/storage/backpack/messenger name = "messenger bag" desc = "A sturdy backpack worn over one shoulder." - icon = 'icons/obj/storage.dmi' - mob_overlay_icon = 'icons/mob/clothing/back.dmi' icon_state = "courierbag" item_state = "courierbag" greyscale_icon_state = "satchel" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 39e533f2a4a3..3ef2d547931a 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -146,7 +146,6 @@ if("white_whale_holy_grail") //Unique items that don't appear anywhere else new /obj/item/pneumatic_cannon/speargun(src) - new /obj/item/storage/backpack/magspear_quiver(src) new /obj/item/clothing/suit/space/hardsuit/carp(src) new /obj/item/clothing/mask/gas/carp(src) new /obj/item/grenade/spawnergrenade/spesscarp(src) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 8285380c3c48..6e7de98b21de 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -245,8 +245,7 @@ /obj/item/clothing/under/rank/medical/geneticist = 2, /obj/item/clothing/shoes/sneakers/white = 2, /obj/item/clothing/suit/toggle/labcoat/genetics = 2, - /obj/item/storage/backpack/genetics = 2, - /obj/item/storage/backpack/satchel/gen = 2) + /obj/item/storage/backpack/genetics = 2) generate_items_inside(items_inside,src) return diff --git a/code/modules/antagonists/santa/santa.dm b/code/modules/antagonists/santa/santa.dm index 996a53f316dc..2f1e874b2866 100644 --- a/code/modules/antagonists/santa/santa.dm +++ b/code/modules/antagonists/santa/santa.dm @@ -18,10 +18,6 @@ /datum/antagonist/santa/proc/give_equipment() var/mob/living/carbon/human/H = owner.current - if(istype(H)) - H.equipOutfit(/datum/outfit/santa) - H.dna.update_dna_identity() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport/santa) /datum/antagonist/santa/proc/give_objective() diff --git a/code/modules/clothing/outfits/event.dm b/code/modules/clothing/outfits/event.dm deleted file mode 100644 index 18af4e8b663f..000000000000 --- a/code/modules/clothing/outfits/event.dm +++ /dev/null @@ -1,26 +0,0 @@ -/datum/outfit/santa //ho ho ho! - name = "Santa Claus" - - uniform = /obj/item/clothing/under/color/red - shoes = /obj/item/clothing/shoes/sneakers/red - suit = /obj/item/clothing/suit/space/santa - head = /obj/item/clothing/head/santa - back = /obj/item/storage/backpack/santabag - r_pocket = /obj/item/flashlight - gloves = /obj/item/clothing/gloves/color/red - - box = /obj/item/storage/box/survival/engineer - backpack_contents = list(/obj/item/a_gift/anything = 5) - -/datum/outfit/santa/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - if(visualsOnly) - return - H.fully_replace_character_name(H.real_name, "Santa Claus") - H.mind.assigned_role = "Santa" - H.mind.special_role = "Santa" - - H.hairstyle = "Long Hair 3" - H.facial_hairstyle = "Beard (Full)" - H.hair_color = "FFF" - H.facial_hair_color = "FFF" - H.update_hair() diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index d9ca3002a74b..e2c0e24501b1 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -34,8 +34,6 @@ implants = list(/obj/item/implant/sad_trombone) - backpack = /obj/item/storage/backpack/clown - satchel = /obj/item/storage/backpack/clown duffelbag = /obj/item/storage/backpack/duffelbag/clown //strangely has a duffel box = /obj/item/storage/box/hug/survival diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index 2720dcf064fd..dd8e5ef8f97a 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -25,7 +25,6 @@ l_pocket = /obj/item/sequence_scanner backpack = /obj/item/storage/backpack/genetics - satchel = /obj/item/storage/backpack/satchel/gen duffelbag = /obj/item/storage/backpack/duffelbag/med courierbag = /obj/item/storage/backpack/messenger/med diff --git a/code/modules/mob/living/carbon/human/species_types/snail.dm b/code/modules/mob/living/carbon/human/species_types/snail.dm index 4d9d41bd411d..5f47ab21e479 100644 --- a/code/modules/mob/living/carbon/human/species_types/snail.dm +++ b/code/modules/mob/living/carbon/human/species_types/snail.dm @@ -12,7 +12,6 @@ siemens_coeff = 2 //snails are mostly water changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | RACE_SWAP sexes = FALSE //snails are hermaphrodites - var/shell_type = /obj/item/storage/backpack/snail mutanteyes = /obj/item/organ/eyes/snail mutanttongue = /obj/item/organ/tongue/snail @@ -41,38 +40,8 @@ /datum/species/snail/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) . = ..() - var/obj/item/storage/backpack/bag = C.get_item_by_slot(ITEM_SLOT_BACK) - if(!istype(bag, /obj/item/storage/backpack/snail)) - if(C.dropItemToGround(bag)) //returns TRUE even if its null - C.equip_to_slot_or_del(new /obj/item/storage/backpack/snail(C), ITEM_SLOT_BACK) C.AddElement(/datum/element/snailcrawl) /datum/species/snail/on_species_loss(mob/living/carbon/C) . = ..() C.RemoveElement(/datum/element/snailcrawl) - var/obj/item/storage/backpack/bag = C.get_item_by_slot(ITEM_SLOT_BACK) - if(istype(bag, /obj/item/storage/backpack/snail)) - bag.emptyStorage() - C.temporarilyRemoveItemFromInventory(bag, TRUE) - qdel(bag) - -/obj/item/storage/backpack/snail - name = "snail shell" - desc = "Worn by snails as armor and storage compartment." - icon_state = "snailshell" - item_state = "snailshell" - lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' - armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) - max_integrity = 200 - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/storage/backpack/snail/dropped(mob/user, silent) - . = ..() - emptyStorage() - if(!QDELETED(src)) - qdel(src) - -/obj/item/storage/backpack/snail/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, "snailshell") diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 540dddb9a489..1400d2c641ca 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -150,8 +150,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(U.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_UNIFORM_PATH - if(U.kepoi_override_icon) - icon_file = U.kepoi_override_icon + if(U.kepori_override_icon) + icon_file = U.kepori_override_icon else handled_by_bodytype = TRUE @@ -243,8 +243,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_GLOVES_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -295,8 +295,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_GLASSES_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -346,8 +346,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_EARS_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -407,8 +407,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_SHOES_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -507,8 +507,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_HEAD_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -557,8 +557,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_BELT_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -615,8 +615,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_SUIT_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -698,8 +698,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_MASK_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -739,6 +739,7 @@ There are several things that need to be remembered: update_hud_neck(I) + if(!(ITEM_SLOT_NECK in check_obscured_slots())) if(dna.species.bodytype & BODYTYPE_VOX) // there is no kepori neck path, we just tell it to greyscale no matter what @@ -798,10 +799,12 @@ There are several things that need to be remembered: handled_by_bodytype = TRUE else if(dna.species.bodytype & BODYTYPE_KEPORI) -// if(I.supports_variations & KEPORI_VARIATION) -// icon_file = KEPORI_BACK_PATH -// else - handled_by_bodytype = TRUE + if(I.supports_variations & KEPORI_VARIATION) + icon_file = KEPORI_BACK_PATH + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon + else + handled_by_bodytype = TRUE if(!icon_exists(icon_file, RESOLVE_ICON_STATE(I))) icon_file = I.mob_overlay_icon ? I.mob_overlay_icon : DEFAULT_BACK_PATH diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 5155a9a225b9..2bef026cebff 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -417,8 +417,7 @@ /obj/item/clothing/shoes/sneakers/white = 2, /obj/item/clothing/suit/toggle/labcoat/genetics = 2, /obj/item/clothing/accessory/armband/medblue = 4, - /obj/item/storage/backpack/genetics = 2, - /obj/item/storage/backpack/satchel/gen = 2) + /obj/item/storage/backpack/genetics = 2) refill_canister = /obj/item/vending_refill/wardrobe/gene_wardrobe /obj/item/vending_refill/wardrobe/gene_wardrobe machine_name = "GeneDrobe" diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index fc00f899ed9305176e57847cc05658a4722e16c3..5ca5b6bd045d6e42e5bfeae03ad13efcb5e535dd 100644 GIT binary patch literal 94578 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 z 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 literal 134924 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≀J9>&-0x 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 MxuK(hRd#fkNf=2W5D2;IBP9(8 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 WeXN_}XUrksM@3Oxp-}F{hyMqoT{cz# literal 0 HcmV?d00001 diff --git a/icons/mob/clothing/back/backpacks_kepori.dmi b/icons/mob/clothing/back/backpacks_kepori.dmi new file mode 100644 index 0000000000000000000000000000000000000000..557ee29267fd9de959768b1837b5ccd1ae34cfd6 GIT binary patch literal 2255 zcmYk*doV3}pyw3Za_aCpv>-m0PcS73j*bdna0Kg9WWCRPrhbb$oSV(H7sOo|>Or&8>6d#~ePgB*w z_uDHk);)P6@1#<4gSU97G2lGF7+G3cLL-k^!4F6IxyH)HEANG<;&VRMOL;)F92}j3 z4S>yNYVAtY%-($6Y;Q}LGx8K*IrqwU^UxUWaysl7F4PBqF*xkv-v}BM zNXOV|WbIzm-9%rTuPAEOfCa4cANAv zTF5k`dU#Y}AqxOR)$NZRb%`uooCpfNZz?6?wY+WnZc3s?>glk?fYzXLf#9VXXv)x} zH3$a3>(Kk-dq*riVU{giq(3SlvN?hOEw2u_{sCrl1T?y`UlbH`$whr8jmpYoLtIDF zb}`E-nnZ#*6jG%3|NFmcu(oZ+%%@moh-+!?QYLx%S-4r|sdrIS6S>BE$|^_oA%#kE zDnk8$Sx_FT9>!noE;0083=PirMlP17eI!h(4<_vlP^ap&kG>S?R+PnmP3R+F!#lLc zLt>(qF;*uy;+#oDWM&?V>|YWjSplC47Q(-fY9UypTY**#WA{K(^RduMjhj^2#E7*bDCHxbmpLa7k2<^Ei-41kNs{drP z58LFz2YTR{a&q@~u}bo={-r9UQSxzqh3_DNLNx8aL5-t)G-}g>{>cX1^>=h1N`>7y zsd}P3cL_Dg8lGF#NR^!_?62VyBI5YwU+C*PXr22hhK?Q-e;Uq;W92EWRKj&ZZe3Dz zZNh)|IE@Wa*0U$@<)OYe-jkj`dP*)7R-SG@UUptpy6tPO+nr1XvFr=0B&`*#7CI-3 z<8;|t4jjpgj9NBYFT9bA8$RW>jFCxexW+gpBOJoCu_4)XQ~KgYiaSMVj@wV93e2*4HX zR9A8hUnjmNz(8cm8ZjrN1~IJ`K(b~@h5GB^vbn9MXZ#A$9%ZS}H?~J>SO-`!iXmBn zx!03v3b(l{S*L66l1sJYB0pT)A`XSZsj zx26igyW*Q2auNoiO+Sqv`aZ9tS#tk+E5na{d`>NYI>xhZPw&ND&seBxn3%Kp+dAXq zR9}o!PZ9m3w7i>D0Ya%Zs3=C0r}C)Gytk?Th`iCFJ-@GEr8Z@~5M1x>$`E7M{Rxl% zxYTJipf`1gdS$9e5FR{{99vu09exK=^0!UuIGuL-5Nz>FiafqOsXzS6z2>F3hcK02Pxtf=hCm!9#95R8H2 zzbi22?t=@24~Sq)ki~MK^a4V0I3ny_J#7BLz!cfq+}7GxHEhT(x3kIGJZa9|Hdf@w zj0yX`J~PmUcROK7BUoo5iW%ZR8hJ24MKwZqkKxp88OsgpA{@1~2*)F(AiKw`)Kq~8sG^1ONw>x~yWz_q-33ejNt4Xl% z{O5*Y5;eJY(s1ICg>lddzbe2x_HEC=xR+pLU>v3d$9B(^S;OZaXctEG^IdMa6$XL5*HvS7aWno5+u=yr)1BHySb5Hb0gzKQJ8eszBIyGp9=t zX+(BDA)@6#%V%`q>Im-Ue}XjP5P!iSl6Q0X9{+B`SDbQ-@uIrH9XT%Ow~RTn zZnsk!4dFG!^=fU3)P7}jbaeU?`@A3nQ+o7e2G>NT#5#Mpm3sZ)(@KNA1}Y_?<}DK7 zr;PdFXG;ge+(M1s;up4uTbX{Ixq3DvI*!&%6pndau}Wj3 yj7>)EsGV1yOHQwipB^3(d|wLQkO6>rj9|-O4!+M$^1`!!wPtUFJVv$hO8gh9XdeUs literal 0 HcmV?d00001 diff --git a/icons/mob/species/kepori/onmob_back_kepori.dmi b/icons/mob/species/kepori/onmob_back_kepori.dmi new file mode 100644 index 0000000000000000000000000000000000000000..98218916f7c06e21fbadcdfd81e7c5adbe7fd72a GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9$P6U&q%z}y6mx)2i0gp^2hzOvr2x5%B|(0{ z3=Yq3qyaf;RUr{2E~&-IMVSR9nfZAP3>9;N!wQN@zkdlX`1tjSmbb3fxija3H-s8o zG=A_%=e&>RNrpn59Tvtx#+Qw~8f21{*FBnaWKxJiuxDqtvFhd(5+_WaJo3@@I^)~A zVXA1%-FVdQ&MBb@ E0F@a>IRF3v literal 0 HcmV?d00001 diff --git a/icons/obj/clothing/back/backpacks.dmi b/icons/obj/clothing/back/backpacks.dmi new file mode 100644 index 0000000000000000000000000000000000000000..01e2c1d6923bbe13827cc55ecb3d786084f964ba GIT binary patch literal 26261 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 R@N+YOih_oGsjNlle*hmQcB%jX literal 0 HcmV?d00001 diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 9ff37a4b7e0c7fae80a1374ca2e35187e89530bc..5353677357cffcb9d7e89ca5fb65a48cffcfb0b1 100644 GIT binary patch literal 56964 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 literal 81584 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•Z`ZYrz&zeO0n#o+Ms$pLyh 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 Date: Sat, 5 Oct 2024 22:31:33 -0500 Subject: [PATCH 114/125] Automatic changelog generation for PR #3430 [ci skip] --- html/changelogs/AutoChangeLog-pr-3430.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3430.yml diff --git a/html/changelogs/AutoChangeLog-pr-3430.yml b/html/changelogs/AutoChangeLog-pr-3430.yml new file mode 100644 index 000000000000..d464fc2f8fc4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3430.yml @@ -0,0 +1,4 @@ +author: thgvr +changes: + - {imageadd: Some backpack sprites for Kepori} +delete-after: true From df5118d7fc0df799cd3fdb87794fa42d88974adf Mon Sep 17 00:00:00 2001 From: Aquidu <98631832+Aquidu@users.noreply.github.com> Date: Sun, 6 Oct 2024 16:04:21 -0700 Subject: [PATCH 115/125] Makes Ration Heaters smaller. (#3486) ## About The Pull Request Edits ration heaters to be able to be put back inside of ration packs. ## Why It's Good For The Game It's really, really annoying that you can take ration heaters OUT of ration packs, but CANNOT put them back in. This fixes this by making them both the same size as the rations themselves, and adding ration heaters to the list of accepted items that can be put in ration packs. ## Changelog :cl: code: Changes flameless ration heaters to "small" items code: Adds flameless ration heaters to the ration pack item whitelist. /:cl: --- code/game/objects/items/storage/ration.dm | 4 +++- code/modules/food_and_drinks/kitchen_machinery/microwave.dm | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/ration.dm b/code/game/objects/items/storage/ration.dm index 169e0dfad0a6..9a9e4a5a2617 100644 --- a/code/game/objects/items/storage/ration.dm +++ b/code/game/objects/items/storage/ration.dm @@ -28,7 +28,9 @@ . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 7 - STR.set_holdable(list(/obj/item/reagent_containers/food)) + STR.set_holdable(list( + /obj/item/reagent_containers/food, + /obj/item/ration_heater)) STR.locked = TRUE STR.locked_flavor = "sealed closed" diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 0df04a08658b..db88c5d0cc15 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -365,6 +365,7 @@ icon_state = "ration_heater" grind_results = list(/datum/reagent/iron = 10, /datum/reagent/water = 10, /datum/reagent/consumable/sodiumchloride = 5) heat = 3800 + w_class = WEIGHT_CLASS_SMALL var/obj/item/tocook = null var/mutable_appearance/ration_overlay var/uses = 3 From 7d02a3f7d4a0ec13ffc61d0f45c5097affd6d87a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 18:15:24 -0500 Subject: [PATCH 116/125] Automatic changelog generation for PR #3486 [ci skip] --- html/changelogs/AutoChangeLog-pr-3486.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3486.yml diff --git a/html/changelogs/AutoChangeLog-pr-3486.yml b/html/changelogs/AutoChangeLog-pr-3486.yml new file mode 100644 index 000000000000..2ec418ab330d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3486.yml @@ -0,0 +1,5 @@ +author: Aquidu +changes: + - {code_imp: Changes flameless ration heaters to "small" items} + - {code_imp: Adds flameless ration heaters to the ration pack item whitelist.} +delete-after: true From 7146aa5a0224b318c2e31f06dc7c9dae68a10dff Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 01:04:16 +0000 Subject: [PATCH 117/125] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3430.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3481.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3486.yml | 5 ----- html/changelogs/archive/2024-10.yml | 7 +++++++ 4 files changed, 7 insertions(+), 13 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3430.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3481.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3486.yml diff --git a/html/changelogs/AutoChangeLog-pr-3430.yml b/html/changelogs/AutoChangeLog-pr-3430.yml deleted file mode 100644 index d464fc2f8fc4..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3430.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {imageadd: Some backpack sprites for Kepori} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3481.yml b/html/changelogs/AutoChangeLog-pr-3481.yml deleted file mode 100644 index d4489159840d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3481.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {imageadd: Shrunk down the sprite of guncases} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3486.yml b/html/changelogs/AutoChangeLog-pr-3486.yml deleted file mode 100644 index 2ec418ab330d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3486.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Aquidu -changes: - - {code_imp: Changes flameless ration heaters to "small" items} - - {code_imp: Adds flameless ration heaters to the ration pack item whitelist.} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index ef18854c4aac..5b95989e7c16 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -69,3 +69,10 @@ Thera-Pissed: - rscadd: angle grinders for salvage - rscadd: reworks plasma cutters for salvage +2024-10-07: + Aquidu: + - code_imp: Changes flameless ration heaters to "small" items + - code_imp: Adds flameless ration heaters to the ration pack item whitelist. + thgvr: + - imageadd: Some backpack sprites for Kepori + - imageadd: Shrunk down the sprite of guncases From 672cf0317de88299406adf628e29a147e0323d84 Mon Sep 17 00:00:00 2001 From: Theos Date: Mon, 7 Oct 2024 00:00:15 -0400 Subject: [PATCH 118/125] Obliterates the lasso (goliath riding no longer requires it) (#3417) ## About The Pull Request No longer player accessible as of #3296 which means less yeehaw ## Why It's Good For The Game ~~horse~~ goliathback cowboy combat ## Changelog :cl: balance: you no longer need a lasso to ride a goliath del: no more lasso /:cl: Signed-off-by: Theos --- code/game/objects/items/storage/belt.dm | 3 +-- .../hostile/mining_mobs/goliath.dm | 1 - code/modules/vehicles/vehicle_key.dm | 12 ------------ icons/obj/vehicles.dmi | Bin 78653 -> 71124 bytes 4 files changed, 1 insertion(+), 15 deletions(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 52a6fdf8738e..54ccfc301e9c 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -383,8 +383,7 @@ /obj/item/storage/bag/plants, /obj/item/stack/marker_beacon, /obj/item/restraints/legcuffs/bola/watcher, - /obj/item/melee/sword/bone, - /obj/item/key/lasso + /obj/item/melee/sword/bone )) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index e4478b705f45..d9c011fe85f1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -226,7 +226,6 @@ D.set_vehicle_dir_layer(NORTH, OBJ_LAYER) D.set_vehicle_dir_layer(EAST, OBJ_LAYER) D.set_vehicle_dir_layer(WEST, OBJ_LAYER) - D.keytype = /obj/item/key/lasso D.drive_verb = "ride" else user.visible_message("[src] is rocking around! You can't put the saddle on!") diff --git a/code/modules/vehicles/vehicle_key.dm b/code/modules/vehicles/vehicle_key.dm index ba21f01289b3..6c6623901331 100644 --- a/code/modules/vehicles/vehicle_key.dm +++ b/code/modules/vehicles/vehicle_key.dm @@ -12,15 +12,3 @@ /obj/item/key/janitor desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"." icon_state = "keyjanitor" - -/obj/item/key/lasso - name = "bone lasso" - desc = "Perfect for taming all kinds of supernatural beasts! (Warning: only perfect for taming one kind of supernatural beast.)" - force = 12 - icon_state = "lasso" - item_state = "chain" - lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - attack_verb = list("flogged", "whipped", "lashed", "disciplined") - hitsound = 'sound/weapons/whip.ogg' - slot_flags = ITEM_SLOT_BELT diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 87cef669faf0a25767bb312c8a767a9ae0dd7ad3..fdefd87860b54d6417da9e7ec87e23990734e42a 100644 GIT binary patch literal 71124 zcmb4~bySp5_wQ+tMwA*-R1l=QMOs=?8Y$`SfdK~TAtaR)5TrXKhEh_x8ytG*5Ez)@ z4*u?YYu)?DT?^Kl^~^KRiD&O~zWcNHiPq9kA|a$B#K6EHQBjtEi-CbVkpcm(`%J?h585mg=c`1#c*OBU5PV^VvvUsvLy* z*@D?oS?d$k$r1H}Mm33Yi%U!*{mDulLtli-ac$7@0eE=`cB zeco;=9mdpB&VHOD>JH2nCs@Yl%p@EZ_)*j{)C8m_(AADzY}5~UANNq#D29%bbJx)J z;luhr1j-D*`UDl`b7xA`IkR$RMLh8MBZw=u?fCVT%Q0!ya2xcTiG7Tpy~-_L!Q(44 zGuVoY$fh`ZzgFIQ%@9XHl=#<}iL|w@P?4ugayd5R>R9V6s!0`S36^u3Os|A7? zZ`ONVqs-m42VU8~dB3i8&H3#WNqKyUzCIy1hB}`v$28fZbu|l=B#mK^^F82#F@hWe zlX6%^URKvHYd`xz)}vqZce%KakoI3Xz^&0ik937D~ zmsU5QzR;Z&Fdm)M)HB#lk`)`83xssnSe?c!7alBBl)=AzxtU*T+fYq?S6fFr-oZ=| zMoy)-^t_%9v;Av=?+8y=;!*FF$BIBtNhNneleZSWvP|IL z{a1Ur6v*ue6s|0JxW)HJM^A|{<3gr8!vsb|drZoYh0IzsmIm!uhis}P4kLlkG>FM6 zG{}m|l<}{nR}z&Y&8wH}J--A2&mXb+6`*Sswal8}ET$No7PF@#n-k;gA)0L{Q3l-+w$%3alayoWoZZ3ET z!kBSlE3k`17IqZZxyhHwYfh$f`>!P@;HJ7}kPxBvZ1;pnp?2zPC!po+c_26`@N(HV zbsSbBO>aL&!aNk2wDBPd!0IFfZKm=!Jo;!OD?He_DLa4ek+-j$97jQg+;03gRckM{ zL%!B1>W1PooEeGWeAxFs57H<$Pqg*5!OrpSal~h866g+rR2$D-?fLV* zWHo!|B^MW14PbjjHV$(6H!sR$eBk5jT_$Y5ie;G)k^`G`Q+@6Nkrh9=3NeQ~z*BiS z(N#Ze@WI9+EsL-qal(K*zoFSCHgZ^)A*i~+W$C<B@mu-nIA4#S`o~Ry*ula_BH6@?cV9q68HZ63;rh7cfSM>d8JM9}Ejc}NrL=-x;Y7#0c7!usgib+ zDX)%>_AAr-Qae5zp1<0R47&TlZGN7+c#50>so}%{+{#$w&wJ<&*0|YdtjZ`90~{ay z9Hwl}21@1U`8oy(IA#1;ekp6zbV}R47_qL5PX=wIvyLl}!9|gecD+(i6>+n5ltWxmyObE01_Rw{=7OoxFA0M&-#`(a-NTDL zzu;k8ulE;?!We54ZctCGuP^?SZCbMLG7KFDeXI5S4N#U<2o; z?T?^9-QK)kg`1!AAVw9DWdt+;W|7Y3Q)VZ}r$1fX8Xw!>v_fKc3Ee-r9ze(0I=r5Y z3;CR4(&H^-2=H1sVN{s9IxWpr3uKXvuK(N|E4Hof#vb)&WXp-~j5%bVON}0KqCSy@ z28f~8A{Y27r+y^SqO7>(2jKWz!HGi8>e>>x-XHE0u-UL{`$aK(Z=y9&k)>E`XaxJOR9NB($(b%Qkgh2s!VWrS7=q1A^?rT!l1F8BAUU7@Yo20PYdrw zyQpYz?=@+ITljjZ`7JG2VmDb47;cO<^49sS2}$JluhRI!)koF{G8#w$cK5Jeet(DZ zpcbRGbPO+i`l+w9AMwQbxSDdt(@FV4IcDV|L?^X{RXHc!%#q z#hvc8P;= zqd4y>k6sp>raE>*PC`rt=RTbC)Y3}+2A7YI8AGb4ufoEV8F9U)GHPXO0>x)H1$d!7 zkz@(;v#j(x!GCHLfw$vIOhThp#!Ru4n$i>Q=?T)6eIst`&8USAQ|iZOY7Gv9NnCDX zG=a8HrLtxKPV`Jc^qIM(T7Y(6NNm=KDPzA8@SUF#X*r7EgmD@Wj>jz zH5EoHcMB8mX3~~i(7A}XFS2itpvS_+q*eUc4`7h?a6vEirNiKzCJYm8bQ$T45MkicUt)|Beh+(6JU3qzIr6e(sq>;`5_058lg9~RMfcJKPh zrbD2v>Tm_p!vQ*$8anf!Rk~C+{&3zx>Ny%6w#1o{E3E$NL2n)Xkighkq;>I~&fBTG z7x|!Xs;%t#l=!bFIt{JFG8W1(Q z6K^LzuX=0KEmTuS|D1=3|9E5Zu-Rq2c#(jFZcFEA_0f0SMU3r4JbQNt&*@O7#hxoj z+**1W?#;Umo7WvXP1$+KhsPU|z{TL0qghICa|w}5qz0I$VSf%-F1txcA+b^OUTbQg z&j*cz8uw&up97^@#$LWRAsU1V;UA~C3UwP^(R2zYsC0QZLqFRVQnr6`l^U(pN zgb!|e7r%V%XLA9#cYnY++Wk)rX@d*YKqQR47>>gHJ07(@BJP6Wlb(z~wb9uJj$W@d z1DQX8+M>CC#0|0TmZo__elYy3Ak&y(tC;GWH|#@T#Pjd;{fM7)^DyAX)6E1ouF~6> z%pCDwq#XBVy3!~}#rzhOYj82nF$;l|N#jKi*-_)xkP^tR9;v(}tL8nG{mw}*-sDH6z! z9}4T->pooKj7UkMWI3G1)lAQ{e`+`tPPJGvGkJ_0di!F_K{ty%HW$-#l1%=jmyAhK zCIV8f`TT`Df8N7xZdO-i7aN0>bj&i|&ve8Hf5D zuregcbP30-x~OF99q?NqQEUt(F-r&6NJ#!w64SFWHIjt(Imr9H63zwJ37c>xNOSiO z|I7$@6x#RqxYH3yB3P^pmfp#%vctzw)UV=nf_n;`*m+_k#MY*XtpK%V_vv(1o z$pX~sBV@V+6VAtvA44}uEd0tLJk6VpNfdn--gWDnRv`e(Ji7Hq#F#?~8}jBni$ytZ zd?;9LFtWs^O#i%}6{gp+=*pzxs9&XT^A_8amE?HM(N$~vZPKVs=LIgLwZxv_cj%bS zK|@I0M6eBI547u=o-mV3GJH^W@0X? zLMt!W&@mt*qdNI4_ELM}vw+0y<(PrDms=v%FE2k5>iRu!>x6CY=yK@8MmogpO>YzN247tw z@$%Jc{n(=GH^PI7>FLGRJs33xx zzB%BX&4tldnqGSDN(`ZhcJAq*1w zw663`X<%0RxarU9Rskvf0gT&o{vi|}C5!oYd($E9hkk~u;gt7+R_AMTv*;K*O`Ild z3wQ4_6fbpm=|}9|R)$Db|58)Y_?fZ-G$4#C5J0?4jzKBI@dU!7SN7PG7~Ab+=FuyW zk4yqdR<>u!J_dXc9zZ585%niadIlHp2ZARLcVY;!Xw3UV)Rq8LH0B}vU!9!7wYPLx zng1=Q@D4&^nmD``>2um&720vu+k&-QJp!M=KfJu?DKuRz?3hJM^OVFz=`dK!$wIdL z3(nKEwDE*%XV|ggc%N_8b4mbs;oG+7JNR)dRPlMoPzFA$0u3=EVd-t%J}0;NtJ*GK zj${|0_ir)>N7In`QjjC9{M}!KCT<+ID*n<%=k4a`W$6XeonWs|?s{dE?kiZ?%7>T` zcOHy0^7UO`R2JD36pCC<`(_*9NvsibDyuEaX!>{P`^m?31?zm%zDmUdSb`pjR8-}5 zne$`Z7r;4XA;K_j_KlA_*l|2VSbm%?+X*t`6CaaSby#S##Xr$zN7Ll!{_JH&+dteo z8Fdyx0QC&i2hV@vEG=6J#nC^;oU?;DvCVR1PI~wzC7(0|E<%PNQIXQY z$~;Ya!ui_hm}nYQdTX;Jhu6Z2{GHr2S=DgzEBU!uD1J|5f)-qfDLZe5Cb>J8&2o&u z)yUwJ?lm)L67lfj%T1W3v|#JIFO45mAYZ6{7B07amG}Nwjk)J#<|;%^4b%OUTGh`A z?rYlVHIPX-U3ab@(0N`a#~T+Fo>ykw9j^2N`6X3lz;&j!f$#m#gUz_3#4fohV>1Wx zdf`q$Z;MV}d`j-B{DI8L+|>qNNIDCGZ5)&a?}%|p855Q1_~Y-%D-3v3INqV!2h+eC z&Q{eKDq>uNVMK(Ih;4s75H7CgLqml0j@{xoIgz)f@16WEL{2cax6hx`7x-RuV!%z! zUTQ{?P>#Tt#hcmMrKd6-(sr-_YW24kM-g$i)|-HazAvOM*WGnwYjL0Ol#O zNALeQr|5y;kXelggL9@bu*oE-6z2fw{(*^vvvK@jtkhY;sNKn4Er1@z{Xm0gDsO3v zjLr;T+23dQNx__38^S}ZN^EoqUYL1hWHQ-c$0U9e_xC*D%s^_$?l>Y-8v2Vgs0Gt& zSl*5>LGkq$5qtTmPsCM+B8nB?IMFO-Hkp&?ju+>kNoxSqi&{90YKwW%{Ju4=i{&4+o3jycVB7{Fg)YAjl$ z^lVPcsP*H1ua;QXI9-qi+o5!wqQU-P0TZn0&(cyLKf>V5IT}^>`tEc1%GDmzk^**Y z#C~xyDLc{$^;hDIPO#s&gKIc*HfzuC?LsxaZkz1yV)GY1qyQY#Hr=D{}~!mfM=1;8@PQ7Y$E z-**tBPag_Fvkt?JyoY6*=1`Uf^?dSl?G#(ZmQ9fAl`H-a!0Xgt8g`nmpBidbp}Kv3 zW6qZ4*a>Zagu0#D%8zwKtgY6qmZ~#TXuHMy>qvyVmq@~EdlLU}aRoa|Qz*weV#K)$ zR^f8+Oe0}q71msUNh{&XyVLU{=Z~99Uxw5*}>UVt|>~(K*Akh%GbkP+tQg)4qkmC!lAzl2e80(n<(gdIKl+ z5F($KT&=iG=%X92j!z9s&IefMcnMHsRl=J;h%hMWV$AZL)&pKvjfy?iLE%K9vf&EO z);~}J586*EvLbg{$ALXE4P=B z?oHY#{7tG==0JgVD0^E)2a7Ela0t%1Qb8>N&n#d>=ZY)wVs&;(-sa@jnJ+RwVE_fs zSQ`|VpJUkzr>OIFGMQ~vzLb|n8)8iwm(do&==`~`18j=x86rX9Ja-u(;KGsj=G*3l_V= zHC#&bhEy2fZvUSEiJzLc@!OKjh^93#YS>Y7=dOQU?(1GI94I$XnsQ#Xom_sad!DNt zY&Kh2!^G+{DP?6xuw-Jz7MTFoypbKee8TpaS(AzArz_zCNz7LLtq;qZBUrdnBS6Iq za*?sq(bg7|cNh0GAuc0gh<~fFOXV6br`a18QT&#;`{I)(8q=!BxqB-orvM`*FQ9;o2mvVvQ5dK!rQh+wpVrBrOu>Lib6)jR(Y)j$MRCoZt!MZ$z73DT}YO zyiS`-z>4lWD=x_AD&L_QHGY7u5(+4)S4_@!mK9Qv+)v-|r=M9n5wa7vUu+i zEj#*JIRD)BpCI>c^bf=HzJC%`d3n!29TT^lzC7G{x$=Yi?tdWAa_F7c(4D3EAF?^Z z`vwgp6*?_$M@kKpMH*U1OhTXug6f1upH)k7r_NrloLCn)MH72*RNvmixmpeJ#u%e& zh!yZob|CW1d-|m3fofA5l#hr>b0hED>qa;eMU`~>sDR=U-`ma516rowPkmP1=QWl- zj>XPFT=#?S^u~#UxTfFc=(c%&^rw&S(^1XUam0`l_4sAyrBSRgg}lv?*G%O5lLknR zd86j{#~$p$_T}v4<(CeN(7{Zbj@EUZXF5DYgGEs((?`k#08qbin++qwVLeX(=nQ+tPrQUt`1)Ar|GkpjCVAjxm>Xyx^G z{YV`>`=-qvofbff-5R>pqrWctjx@G3^5tDuI;aFi?q)M**Oiv+owNqEwqtA#Od4}!j}Btm>?S#_#SLvN znEEOf=leGeNcgw3lVCq~tJEH|si6}>xRuhq!+4?{wsjdWUM~yoASXuno9!|$-f&g} zdB}0^r)d?T!KIJ5Fk@YD)q%P}ET2up-(oo^1pm(t*|xFAzFp%kVep=!iKg4bTdz(H zu_ZGxqt-IyE1}EWS7pAzukWeW$eD2NkW3M7#rL+KO(zyV3PGY~#!W8Yy1QQ^meo6i zsv;@>HX+-m{~nbEDbF=lUU;^VoCk^enhmAAVBdB$qY&bBQb#ZJ6J?r>27Og+{?Y#B zp4;3{H8Pk9UcWaHv%u(0Bw-YAKJau{M&2@R)qJ|hRAarJo2VHF<2{>YPES2-^s!Qh zp*PYq5qvb;RgIIJGiAMz(OW#U5qL(psFymi^Yg$(%`l3R)FD z4a^anTKd@YG2oRc_KIyJ@oyu^0h#L*2}C5eex0p)gY$OCu14x%2%nGr`GJ>&1vX)& zKvAk>dhPE@>T|v|i>`63xtzQ4p8DYVN0XQ^*j$c;XN0IF+5_C(qzIVsNJ#ON02V-= zy9?eHc+O2K%gYb`Z@i*ulxbekm`fk63{OUxfYA`>^gV3IgE@J$jy0tAYh18|xw=t( z{z^Njh)UED(GIui6e}Dk)BWtG{`S(Dm5HBx*}>ODI)~Cf`g8$KNka zhwcX<^X=m^jd^@roY9Jw{|{D`>0f8Zer@<4*fjx9>p!mg_9nIL=S$HD&-)cw;-R<&ul3HvJYtvcC-%5M^Ep=&M6mB}f8he#c@dFqA5Kvb zlB8x&|8~P@qbrH*-$DfOfXmM zhJVw-OOv@;08B|gF`>Ehe%FEWx;bFoJ!|@lrm*Pt>2Z66N(Q(2H@=|8NocExCSp+f zg(%^T<7p5?Yi7*>E&ZK;&CofBO)s9!tBMSag}Y&BJPd= zC9b(%zAQPq=y0^@Jng+OPHZ{(SOY>M7p>xWhG~DV(28ZPH^^Xr+UZhntZ7%bC&&X= zvdM@)deFFE4n}^pUjgR*F5`l$^f%!VOtq_iXWpI|%}lN=-5~%a(y{{-vPv)^JLt#>L0Q*Da70|;C8wO#Q;jyEo5jR>ho04`TPsZ9bm+vI+}-e#lf4D|J) ztrQ3LF*-~BFmVhM#*Rf7APjYTWpN&2Nk5DME*#x)BW-Y+<{-yzv%PRYoW@@BnY#G< zYg4%4t)Yq27Q1@s2)?FxNslR)-?LR0bGGS$7kW4j2M!HEKIudDLrtnFb@;`q-bDIk z3TN9u3r0u3w}D2wkFs-#O+8CiK$Y-ZcaP48>Iz-)={elnuze~W2GQ=&ymV#rU5>e@#;gs)RVAv|%8 zt?{Oig+3;L6**G4`y`IX`r!72&8WrAg>j;WLNVN0PUSpWa=L_OEyR76^( zGdnP7hfh30y>c54Cc!6m4bER2e^B^Km!VC+Pf|^NeFON8)neD9+xj_bNf8|uph1nP zn1$qsq6ie>uZA1aH2z%kb2;g*qTheehMrnoS_OoH)rH3n7)i{SzYOmqJiyz*rk zynUg60p@dff#mfxy!(vP>uO0)ov_2x<1?zT@K=odI=3U7qu^ zClmw5>|XT!7cRhiw5j+mi*y!aqYGStX`O-h^C7bH%TP3b!9Jgjcl05UCI92cY##Y! zeIDb|31>94XuzQF5%cLjhqsAa?gP0H9uJ&N49e*_mMEVXV}vEl4A)>VN)*b=3mJ|KFP#R}g+@po3wZ7WdV|+LV#~KwyVXw|EEYV* z{r$5_1e*75v5U{XnL=^FE1hR~%@qekWJ$N~l_q=66uToMabATNFG~9&zGaO>;r1C2S|(yD?RXY7tKkc>T3?^A>mGruPon~u^@DsEDODF_NM z1U*MBRPa*Xc_vx8_6m*!_be}#E*jhr)AaO_f8&}}XX16j2tr~-5&2uP+y}De?ia3# zonv`$A|=zrcLyyOdOgEnmSh~}2O{664LT#C3I%JP@k)U$l=)ofwM8gk6KVm5)``CM;zcnrJKcQ@K;iEuG5OhUJtm z(st3zj?1|I_eH~wdU=<7>C^rujtQ5DqrGV>2A=qkT?>66gV*EdSn&^swuPQIO^MMx zj_F?1uUg_*eJ~Dcw&0bNu!z#%T_Z7+?`h`D=#pyqK-X?3TCop2G351Vr^~11Q79`k7mP%is>@jhWvUI= zqdc!@ohS##t1nCt{-R%k|P!i9R92vQkOO<@#WHg zCm$(MoD(>)T4@~?64#NGoBA*+Da2z+e(Ehwg8bbX)FD~v`1>TZV5_vnkhdhW%0{_K zQX=b|Opch9*u(VBwCXycG?w{1At2{w)chwsnd)832xl#d5)>!#zSBZU*%p+i*w3MFgufycQ+6}vx53!kM1j^QeE8qzY?=s2?B<%b4(#Ddd+m+smD{el|Yd;6yiP&5g!2 zud(LFc(T+L`xrkv`)T*KDbr4_XBFzCG3T^xZ84+Js{X(E>mjqgC8m4+H&G~ zPiT}ecf%gx;0ODRkEX1f)^qGRS))a@mST#x_PjyH6(dJWd3DH{(80lg|Exk5PqqEz zbADnlYIQSRDXaP%q*SPWQQCVgH6p_JU1!mxIsvx(N#+<-`S#Rr9qHAtiIZNEzmcgX zCVw}gD~OCmlP1!(yOkS%HxATs=jit*qUOYdG3dRxIg;5%R-?uG8^8xz4f!y;(2qcU zB(m>`Ao037w)`Tx5mPU2>AcX$w}AZf5aH4#`DGj`)$Y5IXJp0H=Ps>$?X2nSnB{LT zV{|){Id!eMok{f9oqijfl1o6-??Y|=#_(1!O?DIhgFgSRSy%pFPuxRvv?&;3y;3q+ z&8&Lk9=uiS#bDbXH`{)}=5#OuvECO|)->}_G0Nh#0cuL9JCiYZR`IvgRRt{yLNT_% z{N22jcJ+?bA|xY`_TiSy>CiJO^~FFsu8wun)l&tteoB8iMVcrSr4Gdf4-&ulu9zA&_A&Q`YT)V7=ubk?Ben7@XJK$Axi;}2m!9r6posfgpa*Oxw zR?}(`b8q z!{!zNjR5*B5gKSl)42C3V~`cgs)f^ zw`a%c!W5;6+RqEDc#_|1YbyUvL{vIk@Wa?EF-vqsiFi?H&&6t6LfivtQ~A;JBPREL zvrFfg7!Q)5>;NT__dnUk+}$S-A=6QRMZc!GU;X~OB^~F6>~A^!^Gxt2()25GWU4)V zn&gRGfyhl}$I5g%_x6x}+RkcPOeqNMis7Ppfh5{FF*EHEXt#L1_lSz>xf*t)>!ELRSD?m&3@O3LuPB$+p=3Ck`&R6HvD*r$lboLs&=+;r9_-1PZ)hm11XDCoynl^^pF`t%+6Zs5}5*2QBE z%|scyyYo$#?=In%^dwaW-TWQj2*oZrn#&1Q=nXRh^DPbaQtFB0By3Xgihy znO>Z~D}!C8Ma~a4ZT0zR8lIxEEoChiG#~12VHQFu4D2QTvan^mC(-1Pr;$NUWE)Wx z3DR0 zc~nohysm6VyJj(*X&^sLXk3P5H9jmhD+cA?7p!>M*bxt0sLCR5a8S_8ohM7g(GVP%0iF^tWrl7J^M%29`|nm7F&b zmU+;M>Pd5bws@XfkB!%3K>k82Ls2x_W+y;4mu8zt&{0D4If;a&GQi8f`+52~+4g&M zn}19UUj^lvakM1UJ>3s)m+;Yl>nb->W}vAK4)rGA6)=U864U3ChLEhiv&(*5mvAO4 z`r2}U^uDF4WC-H&8_`2N-s}ibwCXD7F;l@OM2ycDG>$doE>$(Uzf}H0mE*+R5^;05 zQV`kY-ATkGM^{Kv&r4OScSnz#+#fISRw+6Z_V}mnqaS#_*MhDqOOnENBlMntz8{Y4 znbt(wwc2+tM#Dj9Sbtv;;GAyOFrI-LoO%VI6Q#LE4sN8n6jm6&0Y5Sz6*bD1@crt4 zw(^vNWue_d($Y)m+|aFR-Id)eb#}KjzA}rnkffZMs@C-GkM2{&J$BKtRMcKla8vcs2gA2k9Q;$OSXk`Xh-NzGvNf#X98 zjsNE(Cn&0s!#rOs2DW1Vaw2?VI5a&9^i;EH(|FrU^^vGIrslDQ6 z59U)`CC9Grj}CW*XKXsLMHkb57f2R&784@J!VVU7zvQ*BUVKQHrdapfjUm{&?}Zbg zF;!_~=48_mKij%4T>K)gYHudyxdTnst++Rw{rZ56f$#ncN(Wli(iDadlvzMwH~372 zKx^0>1{S@Y+-LRL`vVfYGP}E&5@-n?MSE2&bCkhF1U zo%6X(ndni=?l4{4o;FwV^-Y$5WR*n_l5!akP+vSlyghuXL=FM8;WQ{$yLNq@4%!*} z8h%=)D~3=ziUe}fYyfXh`X&=(P~Y)nJk!TSR)KOr;6S=6mOW8-A{Qdz-WznOpVCvT zxJ+5a@P`>zJEuR_o8THPA*S}~P;st1`zRz~ZU{!}Si-`W{dL2mY?Sn`mL%vauZgJ8 zoYD>GRylfcr=eki;_Hg*^w%?Zsl=8Hh16uj|RHL$NrVSbsT*Ayggn$R^^ zo!9S+Rn4)NAHXgO)0vJdURn+{rQssnbmE!MtCRp0HU#_#b^^;#6~^u0E$Pw&q5I_k zT#P%$_LF$xD&mF2zf>T@d_L&<_2>UCIFmFf{;zqy|38WPe@h#Vk{V|2=|Ro{vs@*$ ziW`5Rb3b7AyzJZ1JI~ZleMCpaa=}lU)gC`vwH{Ag;8k+6pDJ zD?wZoxGXaxe3csa%-!(mR`P!+__slXj&72ga&oy<`_aAppz z43p7GaJ1=m9$ju7QmzaCrv%YOh82dn#}5zeGH?Cngc^fWesL#M$GP6Ge7Am4D22Nj zE0@7P;#j?gxu+GHTjH{cufEVrD_=vohB^q{Rq- ze2i&@F0Dg9oVJxsl2catYb4hyQNZfZ$_l!9TMp3dywPjEajb$ch@%A0TK2g z4czQB5ul?h>Ep~p_t#vodq-M(B=~TEP4%F>CivR8ZF0_)? z)#Kk(sT&wlP_Z#F9|kvGoL=TWLsb3Ii*mSy#~DQ6nQFyS70$AE_Wu>N9MEQUqS3t` z`i9nDTXpz-W$Xkkd5SkF#V)`e#rvX)Nl@$G17dO14(cp9$ADz@lyS)ZY-@PWus{*A z)2kv<3Y#Tu7uM|X+5PnG#qKYTyP7_xSm8GC`$>`jV4`^NVnvgG+Gqs#JGp_*YdS%8 zBi?q*%D;X>R(B|5<(ZQIz0g47Ux*~sU>1QAlS(PKHiH%JqWw?4QA30rXS9&q7cbn9 zN*}yIoCP*RY3F5Spwv%RY>0%1MJOo=ix7z0?_fGh*7Bob9Vq2@e0f=m@W%zW0|p{( zmWmzk2bmE(O2T`0SFnU)CeW?6bHT~Ma%`53mcsmC-MOCMz}O;g58E> zjFO@O$1MC0g-&_#M3&sZKSup|Kdkx6)Grz~I?+y7nr1R)AAh$B4#4?1P9kw=AY$kf zg^JdiP0q=+Hr5=wyOCH;*aK+=oZtNx7#%}PBF!FZVv($Kne&COc!SpH+7{J0#N`t1 zK4lV1TtXSK;<>=XA4*~pKAqQC=%aeMM)2N=FJu|w-lYX{_%KK3pRm*iKRFHB_|-r2 ze|$)5&Va7#H9t4c(Y@dy%^2;xde0D!iTC+Wcr@x@;5pJ0XY(he=2JnabJ^{e#v^HY z@P;1$&o{!{i}H=m1Rvkt~!?KEp2y6;el=mMN`eF~9r#^%pYft4_(I zB8_{8ELXVe+FjM7ww`q{h5X1J_BM?+o3v{IvKi%07+p*kcoLiBP=8gN>k9FKnHa0@;p4Y zlA5#BF%MMl_zIogCy6Gd(})1b*@O(XJo_^+IqGTkn}m2rTxAWk2ikRxN!YgHFq<|{Uym42B%*R103 zzlh)|3~euL!Xbt|%r4Hx30qvMBgVei#5XgI6|A*Tk@8yjbeWRu63;0r2WsFb60vgs zD_14%9dn_KqzFm~FWuXh&z|Y%!D5Te1qb~Gas9-5YiyqJeD9@RRBPi-_xrBMIpKDi zTtIhIC@XxfE+EB@K;kiTgG6n4coY*nHm~g>__>P%E zMbFH+PnM5a_b}&a^mm>DwvlNhJ@GPLxBX$txx1$o8=p|)T9Sc-b){cl!Fs>?dWl%H zqT@D)5T{fQz27HHlKNq}iaPFL<8B_Xk9agN4I06Sv+YrX#qBK5c>km{0~>*e&X}#5|ndN;0I^URrR3zjVS-l;v#npvnN@as>x3s z-Dz)&wY4PJ0pT)6FzR~SYv!HZc#Ah&SN92lQa?wg4c0#X3*)GVMWo$V2VZMCCrvg7 zQ}w_xiq-ySTYFi{lj;DrZzdekOV*|l@A-3X9BK8yV&YHQ>QZKHTuFQPqZMJIA zCtbl2D~sY2QA)YJi}m&e@y39qU$NAgi|qI!l}lGfXZ4)P$-oWSbS21mDt4vd6_iDX z2kerV&SUOE$J2D0y(fQPODMCIVYPF--jj1NI{U2@#C9Ehexw&{h|s*^bFmH~FF5>l z{aJc)6YiEy7L3CSv>3?}E28LiKcpjkD;%QMkH@a6RlENC$<+Q#$;FrZ8^gb0m+gDq z{oNl7!=u*RKr7o+B3L9IFZ*?Lynhlp2}OxMEz1MFdR9sI=i9S=fbLugz zXYef5j^CcPe`+X%-~C!^#`@GN7J$T$1|S1v&yR>v5ywr1FvUBc*=OKnAZJPcEIbDO zz_H`}D1~j}nOA3c!46(Lgoh&;!fPQ%Tj-QGWXnn)zF*C-R{fuTq5hV~6Q_3}a7uGk zBY_gPi3ws5-i{>cCJMv)4-~^0d|<@+ZUI#Uz`Xo~P;%nO@MJ8I8{2w^pO%|?@BqUoApYABx5uyQmxAPe&J7#(pjWW&$NUt1mRsscs?(EDCg(RTc_I$84X# zLQ2oV;zKa{Cu{_EV?s7KEccjyubOdpMGP(&raemk&JA{l^_JkCQCM1<`ERCXc)6UO zKQSN8w87-YPamozHrv=1&%ZPLiOM8 zUy4!H!Wr*9TJvcLDMtA$Z?o*2_uh>5=^~T(Ytum!r3UG*X*Gp!&R?|)cae14Vn+tM z91^~Vl_m5%;K#zErFXW30ScXh)X<6&Wd5v~FT~~iE(pBVixKhft)l*lri{8;tP6;a zO5J505W{Cp15H;lYOIJ`;kRj3WMRLAd(ED5GQs%9o`syyqDiVwpSagfUa#X?leI`h zI3%0N|2eCNoU-P$p49C_Fk-hj zLxiH-LU_q4L2AY;zd_fx^gi3(Lt%M3hmMQfBkXbnIC|X-(`<2`>Bw9pH$Iq zE6XJ5H|AYXL6-9o^W2KuM|{J0HLTVVNJL0PZ>-i@Y%by-pbr0rp4i1ywt0l+R!j9} zENUoS>71$jzmfLVK~cxw`zVNn(jtO%sEA03bSwx6D4}#W(%rd8BP}VlN{VzhEZrb2 zxpc$A(hIwL-}?F7@Av-kyEAv@&g`%|@8un@JkNQ~bIzhEM2u&IUsgyoug`@!5SUy& z;?!4nV4!H<`dqaYE+4HCaFV_zxv^j(NcwO_YNUs|DubrO9gLxje>|#k4SKp1qm4$YZ(!<-+|;XoyfM7!BDp(0-w4o2_2b8KmA3xHjFy?d=tcmCS1+i4w@1*h0ckKqm+ z)%Fa=CyizBi-?wat8xZ^354JSP?ir2&lo*)aHabFOq-a-uXJghId0AU$HXsxx&!4V z?D>`(UD=jAVg9k#ir-%KOir>8*_xRAnCE)_{5!p<$M3;pj_Ck^xhYc45>Z!G&AEt* ziZWwi4sbf<6qJL^%f-0Z`Bg4gSwy|VY*45)rNo6Tz5Yt$W6)P@NmgEVZq+|kq(;w5 zngh0!!E6rQoyf;j+*1W+(8jX@96Z+VApc^vX#g|wcVZFq(&7a6rb0UZ2RWW>mVKd6 z5lb-kThP4bw}<&h)X@oQJpNzY+FQTcCZ%5giBi{N2iGE`{pLv2U1F|`xW0~rBCX1)RwoSMReS4ITLr<#d0uC=ZpfoQ^0^WhPyx;PHJgh z&{>*&_q5i2%xfCbXwQ$ApP&D!Yd@cP0@7RWu=EZn9TLe~;en?u_?zEm>N}7%`t$T8 z8=3XNKpJ(EaoKt4!2d+#Cr20@Li|0|cRP&ndUJa_;~HyeM=6cx$6~FIaAS$)oLFyo z9I#ulB1yF{CO}XV7#?Cp{Ak*UnZg66+Epjt(JzRPtHnV$-NPd8U48 z4Aq&;&|=C)vcKEbc=&IANmh7l0yR+NY2z7;aKVz1GqyWFReaT(I-Yw+pTxoM+<_i? zIfh5LZXRe*!_44=!nkJs*fSIiigqC5;ld4zEmALf;D0(I`0GfJ&O07`91cp`Za}+d zMWGMLQQ^hFXi5JaEfQWc=mG$dsJlG5Hc#iB= zpi&N(!yKxWc{A&Imb|dC;>-bK0+da}dtAw)rg(e><(r>J? zM4h@9?ZFfRSWv#nK!Us7%7++lkLcC6n9JDK`Zr4%Oa!an>3CXy+^$7&Pwk_;Y8h{o ziMKSg3}nk&5bqQ}dF|mY)Y<3GsQ8Rca_&3|?3ji~Iuos;-HZh_BwrxTkq{y0oL_8H zvlS*?!%gXv0VKQR1WP;fyPZne`WVBB-o)KJaJ~0DHXB}SNh~dD!621L8Bvdwxkz48LP-|3lZhxuM-KvzW za6KS#(En2|dT0cv*OkL$3D~95T~LJ`?*FryOhkv}`GHbzr#| zZiz^dY}LNnTa|iGmXzK6Y#@xVNe2{Zsmg13QvSUHDw#V(4BG0!2EcrjLLuqa`6QO5 zsJ@D(S&#eJ`SAHD&e$9oOV)x|Yya%fiU!7TLr-BQfp`#`6e&{Jo~(WbPsQN^W8O6F zPB*6_=?`rh-uvTmkW(`b%=(?J%CXa$`l%8*>i8y%%{C;L6J0nC(Lt(IB2BWzdL3e+ zRyxW|Hm-L{HB*y4l@AarzQ40VsIM(Z(mAf#W(uZlBR-W2XMVl)%F9Kslb^v=gpGIZ zO9n@lVY`u6By_h;e%G zyGAlu*_jc^S0T=u-cZp?`u7xbEUo0HTfRcH?!fG`9h{0W-<^uV+)qyH*8rjjF}%@^ zQDh}R5sn)FdQ3f8#H}vsM<#68N*E)exHSnFC$HdaqD{K*=D$+GaU{}p10dlLE? zCz-X&b&!|mjLtoq*X*tEHk6%|t&h#_`b1t1)t5-W0q0)Ti}xUYnjMt&sz%~-^T;HL zKbaWIJt-rqIzK`8&HSUKtzCWqi8buYV1k?;qIbkW-Hq60%2MNtEI|BsH-+?@lhqX= zVFcIi6=ExGB z0std*V%Et2P@#>{``ACP8SNf~MkTxc%Y$L2AXva+etOcP zej-VOPJzUWoBsmhlR&CYzp*h{#qr%l;J7k`6QPD{QKVO2hBUNn@%^h5pI77nDm8e& z0+IkHm}P)RI3}Sb{XSEe$m?}%yijws;tXs^W@V_It~k|nVllhxM&*B;uASVcP5?gk z8=n<=EL|lhCH-`llKSjT^fvxvUG3#JCK%~rKz8rg*qWc*v zUd~Hk0V@_)2Kx!L@O1B{z>^Ch-t$+$zW5-8;&S?jG=9@b7%d+%KnAl6oH|4eC}BeG z;}P8>VoKqOhH&vs#yASFAje4lw`*Pz00p?1NoI~1>gCNP$wIvThM|E222F0x`VF-G z4hl2Q6hX`h%4g0>Z!Qudk*NfLsOF9=t#RSc>CZU$cI8C|&2^2a+tabW%!O9pdY|GK ziOYCH7Bm8OR&9+`+%bt|paRUcBFi7pROAu= z_lA-OQ`Gt2c>FSKZED8_?4oVF)D|9Lu>@1FfrTrd$( z60{i10cbT1x6ehkjVkG+R5$s{moNH8fZFvf{LAQ*|1^(z@|^phPxRB+*oTl|g>*gj zsEDgG1&+6LRi@uKA$ByyIn1pR2vDZQ-pj`i-adQV`R~l;A1pinx;f-NK{V5h$>Vm# z077NKw&#q|9Lw*P8k|{$-IIUN5|7ihh+(tF+zh#~5!sG|yj@T@CUX0~ z`aO7i`{nbyQJwPE%5E^s%a;tMLKizakM)3^0>{(08TA#QMIZ9M5 z;jEmF=i&_7=uXuz>b3fXzGgSeu}Eu)!oa9{Bh`O8U0ls>AF+VBF_`uCuR)30_?;+B zog|5rm0!F07P=sozNhjs7@m&Yy>2YS=(mFf%}?R&IUNuHq+5KM2b|-I^i@%V%Mk?C z%LsI-+uqaw)iqtM@z+SP9oGuyn)N|!EgGi>$2T2toY=17NyC_dS@swPN^HZJ3dT!- z*oG_0PPRYBUUy;>q<^v?vHR7h8)u0{oC1mcL&)L)s{D-GjIUKu=#^{*_s~8X` z!E>`ijWnU}OF7<@lhxQSXv$jg;Qa)Mu-9h2MEq@iNAR(9ytiqm#x2xq>hOVkGnloW zaY6DiF`&-TBb1gHDwP(e7x#K6H*RN;qdZT`$UoWVd@uigUT_#mDDLx$T4%RG)`XzW z6vt3vtQUU2r-L7Od{*?gw#g2Nq0#}AqG4=sSqY~30&tHCiBd8gPv`u@ zDWG1RRxCgSq6w;3$U4EYZ^;&f5BV>q1 z+Hm>y2M8Nvx8IioKgOFUD^tQ*^q=#@$TS$0BEjz|PjHUD=MI%kc*r71is z{TY<8-2f9e2WN=AAI-EP|7$rkw`*GpVCT(7onJpwecyfE+1NSHr5g<^<|n4Ljz#Y5 zzzCx+W2D5MtcoE*P2}1FWPZh~L_Ol1x|pxERT~+lp!2ToOlUB#sPomnodO|nwR1UZ z?)+;4xD~%^o@7C}`#zj}nFdNT*mgLxUT z0D<+_aos)-UjCHjF>l?r3rjDjY!=WO2yxgt-$UgY1`Yh@8pt;X{N$o!E{kHl2 zSpFly89{_DO^x|TRYla3zc-t=A5P$Ydv;ue zv%kph!4!kWy>R0_N>)M4tBXqdBTj#wR*Ftl@{QUsum1%Bad`@0T z2mJc}@~Z6Nr?^;8QlaqI^0aTSxwEglmmQyhvjx{iroBOB1}gldDEU^d9mQP7#usLL zs$?!PDW$ra4ejk;w6_%VS!OI`U%FC1IS4Y}#{PM}YrX>$nCJ*+J9nHYBGoUrl3E7L z(F?G@w=zR-==5ue9EWYs{1b4Aee~@RpK5AQ{HK``!$kbxF!w(e&eF0kY-NFz`qqZ@ zdq#2dJENpv90kmWr~3kSzQOn#q8pe5>w)Ps5< z=1%VGwlOaH?3bSPP#KZ6jWUq>`PE2=len2}7(F{K#FP#DuIx3vjTy-(dOudZ8z*RB zA3^cV{0`4M6M?hcB*y^B21*M%Hy|5n5Gl1`^c!H-qTKdDwDP-p@#_pUg=Gvtp!q`p znaR*)=j51}Jruh-Ab;sT-TTeJB`34DOOrTSp1d|25EoGGm4K;Nldw2xPTPYPnoQ^OPgF{|+jD-7~WGaXWQPX~0Exoyc0~)Lla*RBgkY!7| z0r3kXN2h+wkBl7pT9xX8d{-X)`q*yM{o(6sJ$V>V@&RLKG+{IAxt>0tXvme~SREFA$WzZJLIu+L`bn>rbk;b*q%DLEjjfE*I1m5M}C!)L(4`coiu6OmEJ8R|Fll186&)u zD(fARP1|ehXyQuXYQ@6daslHl^7fziFZB4nA zPEziBi`AUs0T_6+9vs~)Wb%fm#ou;r^4w}~uDY=JJ;0gDYJ8G?+1Z;VGaG#(B`~h{ zTBcO1Ra9h|vZlpxN|uLq=E)$m_wvVQ(g`KOC36PMR)*tLEAP*^zkF2a^`x50IAkc= zDewC7$?QFWHn7jpMjFCysY!!#=2e!@-gv;Ta2Bq~Ebc;M;Ayu`^rygeqAP2G`3XRs zpl3vSEF*udo_fwk!+L(G_ZZ6YsoB`q)~OuS+!;dck{ZXciJMdT&jx$qG({g!VF$5B zKO{RU4%c`6@~FL!%#?_A#%t(mQbj`Py|^G|n`C`B0^9EN$V$)544)|I)f7(>PgsK3 zjKR7;-Tk2%DPcDp^FB3|7=aj`58h97@aPw{T3q$HpEJ^~(zn|n9kGjNjrR6ENM{c#>WkBsfRpWTbfuNxK}0SuW8DD_@!58BTwZZ}zOZ;QLQ%jF{C z!iy^Qg>8Co#eFY|Tve34Mac}H_o!XE;>AiTp#xAK&>`D0$=+rtTee?k!{(OWgRMgW z12QNtGD+fTYrt)PY8H1gj5uIphlFTLV_iWco&zYq@w)K#oPfSL$ZCn7y`KxmKq@kt zTat#_WId`qt*<3%6%ungvV%`VlEZLfEd7&KM*p&KJA%Q^oyk-(w_K-{Z{K*>eb(+p z%(cB_SsU1S%xtR3qj=KVt^2BpJ<9MI7iro0a{_bi&0guhF}^Wed@*a_YNRT%a(DDP8v{ymbyv+*!;%EHWR#n{S6>EeY*x_fD!|_KTHQ{?O%FvEGrx8qanu z%(PYfkxTv!posCduo_4BUT(h+&-w_;tf1cJkQ?t?^=f=8*g5ds^YDo)!&HECsjkst zj_k1W61C~gnptdRYizInnr=#}8zqn?B=q-z^qZJMljhnnY%h>!giVMlqu-f1*Xmw~ z$g>680F&Ew2Ad%z z`tRE($b)rNr1Q4Kp69siS-BuAN1%}Zhp!xZo|+GhYjl<)YBbD$x;^Pfwd)e|LgUx( z1D$IBBK*-pxiJQ7cROCIR4W|*nA=>++#+)*jr(E@pt6dksbI9~Y9e;idVmuM|Dqqx zJM0w&4E^-e*T&GmZmPFw0`}=&!E70ex?xbE|Y5){6`w3TBNZ^@%%5DVjvvo|xwN%b-9@a{~}%ekm&pU$fJ%`#uw;NW7C zk00;7l%A1Y_$Hvoig%uqd-|4hgFS=6C!#g<#7O{E4x{q zsj-yS*s_0}Md0=Q>>u3N8m9^&v%iM*BOlmvJ@+7bH<-f!d3&@D*`^=a8kudCmHKPz zK4Kcz0@*eL50_g-w{mBV=U$OIcz*$41L5HHuYdmQPoOAyS=nk0WyignWue$TnVG^z zTNGhdZRar3B8S6yw|B)UHO42YQ#lsFC2pOgBKt3qtKp104ePOl&?WYb~>y4bwp36BT94m!TR#^qn5Zj+KyLU>=e2gtY)*Hvb<^rY1hS~bJz#B*&i3i~c8f*EUDU@1 zJzmPjz%gi~)>frT{jEHT;O$j{jK=qWg{!5wgjN)UjrSI!3ll&7Ei*wH{yd8@jzq6b z&u!Zl&`Q`uhVv`QI(6bfn+#uosYv!zGom*5muATTAiXs;HX@K;EIz zl!0$#diUJJoVo@`BPvCB8H>}=c{niC`^gV;hY#HwHS+8}TR-s2NBV|VBE3etrgFS} zZDvYZUjMti8LPTVq}0U zMY_`}&bQvmy#Mm!HYgbRZ&fbM|Jw;Sk@) zaf@!R!IsTkyfF9OWI@H#L&oF8lY^SeR~Hg3SpHX!E#BQVr+0I) z<7Z2u4Bgj`LgCrnAYtxw3-Q~HLtbxa5mfx`h~t{pB(UulVf0;~YBV9B@U6536QWL7 zoqYxzab4>hUowefxo?!fC~^g`ox@^4`5N8ryQ9oX=T#u}#mT{C4h?S~RB`H$?M+^mv z0X71$+y1U!T<``|EY!SCBEPnhZ6abS;wj-mXR^+znH_fkj%UF{Eaw7~q< z39P-Hk-y?hVoA;HgU-Vz^IQg%+YXagYsm81QVvgXc2>X4Qu4PO(t>S!5_SkcHg zuGSlx1?0bN;G4b^G||U!OJ&Pg(=KqX{$$XmDU&Cq-MHgUEv!h5&1l1Q>PtslZ*dop z8EqTuvDy>(H%2!V_Z)ZprA+sVP@Bl%bedn*#LDKK*e}@S%4v+38@R)SnuVT>o$y~* z#v1d8LjjRyX;G0%6LFC?U3cV|H0d}5y+2CUhl7VM60qMX*c`%v`&4%-|Ecs`lqx^p zS>0#44eGpuLvmGGzx)o6_X{muxx1}MwfNTTlWeRzsS0z;XutpRel2BMxs6{%R7cqY z@d7fw{VeFjbrLH$%VJ&o%=S1ebyf?e6OdRHE*2QZPjJlx)n+xV;4-Z-{;6w^i7u(e#bStmI z>pXS*o7@9GVh-bE3cH>51NW;?NpSTr02`OEDQ8kIF$yS_POb(5b#k6*u-Pq2uM@TS z_bWdQG;6dNdPD>GnIYbLu~flSILB33bR5x#dy|Eve^pdKLY+ZbW&^h^jgUzu{(2Aj zdw|c96*jTVR#2}Npj2~XpjA{kIa#Xz$!iwSANUzU2K<;x#E#e!2{knE^n8DIazqeT za)FA7VAge0%o`8y>NLm{ihZ8Ka1Y1n7He7g?u^Jv%b(9dtR!p%iPIvoIR_hEpR1a~ zhD-+${icF|6T)lcjskM^8FoB^ zqz;`l@mW7I@HE)@J(k$I@QLQDQr$%lC4E#%>Ptb_7n_|BRRF5}a|j2Cm&@b_nftr| zWk@6B^nD(}XG!vxGJH1CZC-UsL|2NmV3tB@|MKoU5&kc6sCkLkhf5N*9J<|o>I>1b z72CvVEhdkpM1=B%)GitOHNQR>?zp#3MM5oT(K$ucfWI%^(Mb4!p9j-K+?&7}UbLx_ zZ=U%lZEFd&(0@|eCi3ofWZ2D(P*-Y-1B8&f|1Cc5smArrFIv7&io;j0N|IU4b`1~4 z`2y;nY`d@Y(k55Cjf%!$*{LMItho!xMhX&TJDf*b_ntKDjV&urjT)w?O{EQvm9KaKj{eTA!moV z>j~9&N#WC1^YmTkwrs;%r&x3-vg;vU_Jd6}5CI5b zj&j$zly6%7FQvH+diLu`Lg+=}GbPnNGWI(@RM{jDeALZloN(WGgFGks_Cmd*(I&y1 zk{ov5NP1YVKHd4`cstc&IBjCYPk`E_7jgSJC`g|$7zMczfwzt;#kAIcm1h=j3#hLN8BPJ~&~0Bu$lYDJos>^Ik%p zO=2Leo}bHdw=}zS**iV=PnIL#hJ+wbpBECkrLOZCOJ{gXRjuyJ` z$TdbO%UHIM*m7~}1Vdl)>SvOFc*vg{$bfg(EJ!lw3EB8_ZW%2eih&9h&~&rU?9tL} zYxCvPo9oIqmq%s43Y*Xd(<)jTo*XJ4*5I#U2Hz-eJ~^kY`}(e&xXMLe7MuwCXdXmm zjv5a5FpxD~u4bC%wkWc8_Cq19lRmyZS8auzoD{@2LLVP5BuQMFk@n%(=|N}>gJ&qs zlA<6B))j2uYV()(JaDTm=1Z(nXO8=eyi2E0u2|M#()7Ss|x<9+ZP zSY?Ba(%zDm_fnPH^@iUy?S!2Cc*~acq<$hsz)OGJ50jyHA?@w*d!Q!A9ugcw&2=ac zaKgaIZMe36BLwd)J9L_adW)^u5*_IKWxZqldl!jaZi;f`TqJx#FZds|%0wXkbtL#d z`aUw{Hzd^mG=DN7%=pp&_+OUJc$~NYz9u*6$7cO^P6Q8gdqlE4(df~M*CaAFEIU}R zZ+f3&l(BVaA;1S@p7gp;qs@$X0>VVlN#BoMjTJyelv@4cK7)`s-9@MgQ)v3g%wYg{ zxL;zPAzt_H;>$t~aG*1@ER)+>?WCux- zG~6!};>U>~_c!a~ue>H+9)Ajy!@mq~$B5yk(+}eq`fcag;XcRKUQQ`y{Lpk|s=ebh zDlnf#8|rx&hO_1EEmy{Boq&!k1p%Zqt+opkZ<7?kU@P`Wi?d?V+d<6dp$#eBhXD9I z#u zNeIP}_eude60a5$sU&7S7MUuh#}G6;G=$S1o(8I{T;VP6%L6Nq=YC2#!}!&Wa{31gF_#j|$Hu~6wm!Tx z5`9)7xYOm&*kzyiOsDR%$@v6%>Yf-gu6JX~p?2umCB;3I@M^aLd5p?Cg1n_sKd zhQ_-z+#wG7`WWrTtEPJw^51h!!jPR2D?Q`CT)VmRba&G}d%F=%fL%C__Qx&v)59wg55xPoB(~ApOXFa)6 zf5c`SVX}|&yHx*Xi z%GW6FPy5vfA1LPf)Rt$jfL&^whb}z4evK}Y%DeQn49UUb{jntw@T$X`bUo+qF{w11{nkz+4YW5i`(b#b_RzbZ~B z8Q%tT&WtZs7g2+AbT^FTPe-0E+=vZH+rn6dQtNG+5FbRETA2<_XQ?rjI(||A2;Fyk zx&deHlv|sdG=AXg@2W=Tk#L+KxbX(c8-4aDJUNxQy%EcBI@5;E<3afMnl(vlAx%`j zv@w>_8=uDg`LnLmDgsvmA{8sUsi_s*qtE32c_~LOUJf1LswfzxS-BaN+=(fBSbgwE zn#JC2UzlYbFKPA4d#}|*zNS7hhhQlr{#qUS?a9=YtQ&M{-o~7T6g4~yPN|X?9C-D$@NTc2EErWuP{4-Lbu7xgFJ53-rp~b!swh_ zptVjp_^PwmT@-?Si8utOB{%VGwMt_B97D=tC%VW&*-kN&g7|S|WJwObGzkbQC zdO&&4*tT$kkR<0x2K9Xo~w&>1Y6Q}m>TWcUvHc{$x^~b z#6H|`OOiBHagx(Jb&oK77)m@okrABl<6zb#GrTu8dhEqF6V7(00Q-Fn2PFA6gz!-S zDzZ`Prl{BydlSTkF>ZVCOe|2VBZg!w5Z)T zt9?&29L=oj?pZ6Ra(6Cb|9+1FWkYaU5TUQ=WRdtsaUtkW)`-I~WyWpU?e`?dPsJKc z>S4W4u5StCFqMnfNi=R8qf{(mtIEcwip7uk?QWoiKfaxY8dJM6M6cNqVm?cfN~X69M$d=WT!t6X$vfOxeo{S^D;Q-JdeCNnFo zTk*ykHob!F_YCFg$C?P1t;lWsb!YP5Ve@6|ynguVnwro-ohOT;OaY(Ql8?XmZk#a` zdC839!vos}iv!C8j_vztxepn~F3dKA+g1kYe_!Y3wrbx?C`T|s(Qt`{O^u^KvfUu} zP`A}#@)t((;>LNP1qNFr>zZ(Uqg!fH_T=`w2j`hj%8vuNiCMwQ&5gyyz(Z5u7f=SoeQkP!pQ^oFsG=CX?}nfB$5Zkz1mo_c z_2WR&8qgh>o_BI|c9rW=rc?APoLzu4nefF#NW7lRW3cdv_=KMDQLGSE5V5KdpQv>D z+Q_{U+owfZ7}!ZTdEH%2TyKh1PV_8E-7cz#tYC(&1;NW`_(Z)Z^w!KlA?@EE4BRTV z@qs@K&afuldXmJ^oq!ZV`|2F9v>$yw3cP)?Mo+d2XB$703nyNAvLTOIk;kRu27R(g z4X)d~I29F|^LxNR*m3Qv_$3_8F>3NzE6{*!XlQ7J^_{ww7T*nFUh_rb2qII6BhKc- zO*yIX%Ecw?$w8o84oZuTrxyPge)h^(z$b>-#LHA8_WgxX$Sg72k(sGHu4DbYgjc>d z^^?3G{mW3%ClJ-9n%KD zfQyv7#q+{YJA*mSl?&c)p>i+!V7&Qyp zRsWsVW{QifQQQ-8Chlw>^0F~)4n}znC`fnnkV+x6&39BF%@t1MMY16VcM!)9hxt&W z>o)71@@l75C1iF;`q2STvf+U;z|R5QBzR3@E;0wOR7C@L8U>7-vroG&BbBLNA>Qyx z#wy>Xcfs58sy(>$9-BqCS<+#K&(VbzjsA+K8Z3t&)K!w ziY6kFG<1*Z)+1YVT`bGP9v_#;1)QOLU=k%*Yiy3*oBJB;$@kBtcT0BeErTyZ*b^PY zo|fNvX`4=>;&4APvaeY6Kd8 zOtP$y8js}VC*|L3q&HnL*49{%I}ZyAYFKtsO`lJd z=$RaDWE3J1zAFrKfbXV<96Zeb=1=6C;}~UUq-eXs&;@Lo@Nl~0ZVxEyG@8S5GRUY* z{e@9M(tui_vXrLgBfT=bW61C92c>S*+_Ud-jlOo?-(L&Yy))ruHaS~j%K4d?$MpKs z^XJb4Q(X*A4KF9zAYox)cvl-gPG1hw`YwmXHu@$vG${J;X5^!)rkGGA6`F#im|Nr4 zuYiyly&Cws;$w$dQZeK@kGcux{En|Nr?8b>84rVj|9B(5GMN5B3V9nm0p>4 zphQK-DB*&q_Xtr0W9}@JqH9<24_9msh@* zD*0|7EvSqKIx1bTx16H@mSCdB<$(IA{Hx}z=bsDQ!uQ;OS+|uY@iG-zk)0cgaBjV!V$3Zo zpx5%!XGgX2XQE6Yo>D4%I2EjuTl60yGeIp*DNkdMbD>^Soq#+A_@sSzhjQ#XlQ*+#NkGNo{9`J*V=L7Z&I1T7wB9rg;-a^CUl>A zwEnt8xkIHJXpWH|c>s2`EB=!ps^2k8MiHgU*vu3yq`3Kx+a&VCqM&C1$ttT2ILYo$z__tfmV)kjVtyBn?8-Oy9($RSg^^M zf&8;zY-Kp3eZergUfd)t8c7(aE!yN}4P?9t*LjhamU+!xI3QS{8^- z^!50*G2iyRd)wN!$MWSo^|2avjAmll_QrgplR>55_SzIZS%GyvdGr>2{A10dK%#__ zj3w;Pm9J8c0*85;f!?lFc!(0NTF+4m2nc|}dwbt@9sht%*kb=on7NUt$3otR+;N|f zsKs=|<8V2?m%$hND*j!eb34XlN+Y+0L$f3>l#uGh^1jB`%P$L`#i11JUsco%?^V88owzAiZ#e8d z8LUWrz<9 zusInXHAyEqzRfs;saalTRE$@|Z32Z51gQBw5qbS~#+{2?s&`~u1Y=MsLlT*tJWun-9w|0kD|Jna8)xky5MyASB^4L7D1 zVq3zRk$qLsePVqtPP9`_(zdmqG7P<9IHfD@Hq+4^an%eC4Cn7autF;)v~s9cMY%7X64BS5OH<>6CmmdP#qI$Dfo;u>@1G+%{b_u zB1zw5U36#~vBtqAPWbK3VCqB3^Qy4GV{W3vR1H<4JYjzYZG+0qM$2TnBLn7xG(=F< z;A!t^>c@$LcbD)vaRzRXL%71lip5NUm#iE53w^>U#hJ~`wPL+Mpbb453QmNg7 zp?2;8JRz&BWSh8=%!!D#wTF2-)b@k=$zwm#OUZnlkoMq*d%i!5TV9n^QQ5QRfp+8K z(RrZoGd7e0_}hnbK{x2{;`Mv&B-MYaR!8o4Jr8#*B2sL~CpO-C&?Tg6-0LbP9RGUn zqs78+!A*;;l6O|g%JRy%$6^X>0|$7}AQx4j$K|`evh)}xkUdj-kv+rT<`<1{91~V0 zH+-u8`e)$8gzEc`Ha0fj4ha~<8?5ZFW(FFhgBID7<@4*K6!~Zdt}$q0KBAdB@`>XAxM=3;s}j1rY7R(rR zpdwv-EIm+6-+&j9JXlCVr9792CX2`WcdfkkrP~mkU3g*ho}<{^UFie7n)|&c3|GK~x5G->UXXza1xP&CfJbgO09HWonWqX^4W9_8^S}LHpNN32(v~|3C67ct ztIN#Hpsg@?Nu&>1tS zd(8-5#)@yQu8%4UyQAIS%#K?lV$TuH@80`~_} z4zQ;FPT+rUOOvn)e4^$%!bAI7SW`DF#Ivz8=hjquB;n-0xlrrYD+6KNZ;)OS_ffbNfMLKVeUxvRHvP zqFbRWkwm;(^vI7oO!?s6`YYdR`>UCRY1`SZhUr8Tn;1+{bkoo#8{M*~FL%jEJfo|@ za>9^dw?MBR(ROdXuvU z4jo_{1*^O{dogbf5^(|i+>+D>mO1-?7> z`RF^y2G|@f&g6P6p7qtDH%rlG%zr!Ch>;V8Et2QrJJN=JTJ#m2|L&^d?D8mR*;mAF zALO>C{v6*76+G1)B=S);=a!+NFfB4Lv_0R^sIHWUUxRP`oSxn;(nRIV-XxSUeg-NY z#?l`ON~XLrF%iw~FE$a^C+1txiMzcH-uJ($zzVq>f010S6{Cf)0VORWvR6=^Drv8- zKWQUgK&uLNKd7tUotv9ewYv6lC@Kw2NqO|MxH$M}Bkjt}*9?>W85O2oxvyG_>tbhn zyP>Z6>^z@5d2fks*`9Fwg>3J4Y>DL~OuCqZ`aHsG^smElePp4M#LJkK$NlFI-&;IO z#r%&0mY#|cJv^*nD*ecXp>UK^bLG?*bZWE4U8&101$ELNEBNPO-uz~48BpzNjIzIB z+V#Xz6*$om6oa<>`yO9w|GvkHqEG>2T?@%$2==%Q{G9jr_l#0r zXInr1f*$Mo=s##yAEa&5Bqboi z2A}QWax9$w=+U~`oz>6P3W$G-s`Wo3C)8u_>1f!iInzEKO8#=1%GX}0soN~GY|e?v8FhN1qI#lV&8r`b9j9=Q267= z4{QnV9Wlbw-t77xW=DokxwsMyhd)`jN3%Sf+1px$FqUW`kZ>4?E*?)L*(=)RWNb<) zIG7T@15pkg#Ge_&*s#Ck24{!S=ltuf>9%|Wl&r&NjQM*}WIMLwO}aA3h zwjX!gOSMXzMvof5ey|#={!JEj(m6tFi0fFziRx)NHCv0}*=3B*MG}6GT_ms8#W3Hy zyS+fV3t>V^Z=8|3Kz~c4iZ^giVYLGT2dDVSU$sWWoQeWVy;j5=DnIP_EIZDu@3-Wf zo&(ynH}Aga1I~Pw(_!uG3*|pv3L(X8^7v`wX<_Lkfhzzzq#3(9Tfnp3o?4^Rj4E<;{Gqn-ZCu8x9$1{hOQx` zV+auy5Ky`i2@A03Mi8XC8M+0PR9Zk#x+RB30qO4UZU$!NJqPt4*L~g3^SobV+x)-` zXC7;<-`bBQ%B9h7Bbq6=TlL9fCrDtWe+H$Gkr0rqp+U>aV`fj^)>H|%+nHAMx#pD% zQ)?a7u8ivfEepN5J|U-Oc^YxnF|c>Q8mt6<5H%z9I6iC0h8fRp~-cbgTo*uh6)2%}%-Yk$X z+V<8pQXUE0H!W7p?!URVUWlS6{L%o(xWH-iy0pAJVj=5Ee7eV+nUb7o?hCme?K(QQ zNly`1fImB>BFmulye(ZUla6yJ8RvUo@jkr%$Ah3Jc|_rQ{tjfLLm|z|8fh6N3T|)u zPcPckql+5c=GebQPT0;|-)--ata)T_rLQ`_z&DSnuOZZP@8zV$+l$lZaqV3^aPwJy z{(&5zuqRlh-McW9;5!Bcvcq9k!A|VhCgWJ_v=NmYBG<@UCYrP{LEQ{8Q6@Xq$ z09K`mM)?8_uJcBq7l7jHm+S4`9NQPD87|a%Jn(%p^~XNbYx=o1;fMZ$^G`X19#_X?XY+;56A?^(VtA$^AF3Y6siSgtwg%BYA-}2u7 zqA4Pf@sdE}k|L?pLt?tDJ|lf)_Gg9O0-4qSh=HYx?X&?G0pE`=0LEY@^t=&ttq|^J zNUM~-=(0TObrSQ=t4xxm9RKrH;T_@{b4PN|z9;SbvjJWbDVSf9mobea1XGkx=WoC2 zX9HeoI`5I)mr^L`N|whgCv-iaEyH9tQ*-twMil8b7>aTu6cA6qv;0>O{MwVBJK$KJ z?s4z7&O%g6D`UdS5>r(q5G+R{KOu9G9_6Or+#FV}1|XLPvbk(jrs|D@OAtERiCfVD zjC^b_t*g(j?Q~bVw5fM4l8p*7aZR1S`~GmDFGJO1*5?gvGgE2Zb*I7->(Sp4G4@*O zs4c=}3q^Zt11dV<{G*kobg6R2t37Tt;SIzqmRI3q5R%O6SZ$ps5Q?}(D{)U0Svb&W zF+#wO7r`fAN#w2x@^RdwX?Cu>WyTX%?pABIa?#f}ZPr85SjB9i;PSu?Yv=vps4f0f z)9ZzetFFvjfr8|f47Z+TN{ke{o9!?Z6%()7FjXEZ;yrY1648eqWzBk4$#Jjh*BQ!D z>|k1mOlMlQFJv?GHBo(%#Acnr{Gr?18N5V~ckCp~i{-NI(@Uq5R8RY!<%apT0S)nJ zfVj`}mBPxeR#hV;*`x%c@s>N ztn;8V56}7VB2K&mA83$juz_Vc=tpr7eRz=3kU1S1fkL0C(hlJXfm&@UGT^`{7*oXw z--xn4x{zn!dc!*>H46F^I3dYW{0SEA;Bzd3 z8svO&YL~rFPO*wnZDp*AWO*pm{WWNQvgIpJuA8u2J;+`Mci|6nIQ5nX) zQ~CDqJiS30NXD+{Rodz-X$pc@T&A{FNbPmZfn?C3y?VNEYD7%k3XNdI^TleC=!qv!Uw4PxaHHRwwLwFG-DHy9n$-rNb}{(g?3K$=KK`>h!=edFBC z&29gIl#<^j2oT!u3jw7&%r3~Olyu<#P)N3SCGED2*BUJc3=JZXZ4vQho10dbL{jzs zWY(BAi(TocyDzO23%99f{;YxP(YXEn*qwKMyxm(}*hC~{#f(Ij)u=gl#YY@ds9qzA zUgy4~eNlzX>&nS*bay_27O8>j;F*I@lW)BA^3owHsgHP}45`&Eyo|}jH@O1mbBsA! z={^ZQzp!E{1Qkf)Xo{@qnK9O5Oi$NO**677t2I?Hos9hmzc$)AxR5pq^7~%LLQ z{Kl*^@5p0oMG1Bgi?mZ`X01+lQMIfz&F^d}L-`U`78H}}L=I~XpN{SiPgF;x8-qMo zS`wMcZ>$#%Pj_L0UqGi%si~<;s$+z&?wYbO1D6d+uYCXgM8R^^>DdN(+M^Lr4?zYZ zogy6G4zk`Tbgs1%DVtj*Z}0Kd7}Vc9Bc=f~B>0neyVmuutC-Q=`;?soBlqo^>M-{2 z_vmI>%yxIb{-!%Flq=fGM_P|b+ZZ|_Pd1&o=zqU_no~k_( ztN-Nz^udn5`0H9d=O&*?j{}W^`?PC3qz^#_&>u%5+L0?k$XpI{hIT@@4Fq$P_vU;p z5`)X-;=9^~*(z^Sci&S@s042IA;h+oYF8h25t!xrE(axt*@O4$XhlwF)Z^k&|4ssu zO>G*q_!;R*O2(##ea6Ug#5V|)kXHPHN+(wQa-^7-1e$sQ<+@jc3>V3Vy*rM!zW!pk zrW836S#>iFc#PaL;$<;X%)QF@K`4aMy?Er+Y9f^?5XP^u0Di^nE>Em&Q5MO^S3y$P zO;+IsQV}vWZ0XCGygH)q56bsbI?}v8l-^8tdgCmm))gntlYBu+gJPyCDf%jNCqgfU zy7nn1XR~dS5?ZB#0}h3QE+wl4oZ;B#3lU5o=Dpby0+@M^V2a*`Ve?cO^RPyWB4??djJ@H6Enk= z{{BUis{7r`4?`=tojr@`2!C&?U2@o#38flIN zAD`)VjM2@(KKf;+zc{-KxEo4PX|yw70{P`@NE^wczPVC*_va|eg)K-Lz`IPzHgI3w znC5l=wt7V0NTh!SbAcxhE2nEG=H6R8x5}X;aES0h_%lpq(QzuM%B`&*acgJts;mUB zIe3jyT)p|2VMKQsUf1kl03Q%cfp(;}?!w!dr!=9R02XSHMbv)-%-HBxHh&hjyPK;P zcnwQ&)0)^s`h9(UC=ch#GOi^J7pOpGd+gaAX6_G0V{ys0&a8;79YrP7E?|mFRo1sld!y0RPXI1(VJ#UE?NB=b6bOao67Kv7LjIoi8CL z5eunR)2JpPYsi3v+kEES{ov`HU)gb(3p@I!nE_t4a$^C`75!?8fG{?9Ea+_zcsdL(A`S0r zq;p6XgvY6BCmny9EW25o8_L zaTSK?EJ3&-FSk37nf}gHa-NKvNxy&aTx?WxrRE!`wa%{Mk7!8h*Tuf|y`0K-NWgEu z4V;QX9N;`y$imN`Y}l;&tf3ROx2dU+qWofD)6$uj$j^G>Sog+}Ik^gMD#>CvfL7#| z#NO&k;ZZ5IKzto?q%br^J&HrA4&V#dYtn0KYTC{&fU3>Wk1$PmCQK?5#*cn=lu7p; zj(CxCUDCkVbEI~AJW76KYso1EZWFcz`9Fsz;ueOy&konZ5CExqZ?fL?qVn;_Ov}RQ zB38CzKo?ene)M%?$c|$2BIA!>jJt&fyJW}h&<#SMrY!>Gu|gmo`|7%@-57;&tBeh zfP}e1b-up93#?;1l@5KsvywSz{FBz#b0mPEcIM zwZ&5n4?1L@HWM-Is_3CpY^RkCp1ki`JsGzeK#omLZzqgRx5b)fHj&MG-KvG?9^1Ie z)p3q?ut#kR>=(;ulwl-6i1ksxPb@LgPI6C zHap4tjyfBd;?ToeHs@=Iw?J;S%EW3x+~1g6KP&$l|62cX&)>*(X<2dneM#)4&t8J- z3o98$>;SH!ulOUeun{3MZZ(SeCPHSXM<*3fbU4=Y5D{_NH{?{U*P*dC zH93-EY2*X22ZOpA@tcYdprmoKW!;z=bLu09@#}iWRx_`IEXKSEYI~hSM_wQ*(E$0N zXg31^VyKS(Lc(@K;Zg10(~W|qfT}Fi1O17fWJrBvUE22&Ar*MLJL==geTX($)I_6ad`qm2qYo)P5J_{a-(-M#EFjEQ{vhm zApNE%G10hw1U^BT_{b@{A%Czo{1xit_5F>8sIT)ln7k4iH&%Wo59A-Mkg(e5kOMd> z(aWpu7=tv1T|`3r^MRv3;ZRMeGv1Y5GVJ#uNBRWoX3>n{h z${rb`AcnJSkILC;D!x0<_g4DR$&hpm?vT}FO2W^hnR3)Z z8ob8?Dr7xH>W{bUHKh*Czk$zYO&qxP6K}q{X6%@K9Uj%}Jx|8MNxm-qX=H*Uh0>@; zWcb5EujvgdAf+3!-NiRj%{f)DsKI+A#1gn3V@ zv8L_<*SnA!(ailK;$rTjkmYAS3Kdhs`jVSLu&IOlG;ACwCsgp;Fo-HJ~<1+!H%+LhFsX9`bYTryXPV79DEe zt+cJ_>#w&iXiqGMc)fF_^RuUT0&VH2&EEbBqwce9VmE)5Fa60`Y>3pAZ7u3vKS5Mk zbKx+=qqV7Ks%jx?i0GyiN%-!Whnm%{TYv=V4*4^S?m}7DgVx|{?0rb> zNJ>0-`;^6X5iQ_WG0xg$m(3%UtwQ7U*Ee1x+>F_S>^^Gr>3fxCYjv8Q)Fs0|CA3CIkXfyi4uQu5j5HTrixZk zay~0?6~EezG-N!ixqIHdc5UY)s7<0bAN(!W^LbF(C%@-G`%FHmuC#vka;Tp@5})&O zw=#}LRYMG`ap>U(1t?87$=QbP{N3dmL2@Vw=J>sd1U!Bf#>%4+hXzVnDCtP5#m;d& z2A|dTVcO#-P(kaBo|(q)_pyO{_@NFI`)C$wP26hy@e|3thtL$o%ENZ@TM~Ffa=qV3 zPFfR@h9t6DRjc3*$fD%1D|eoP;dh%`KI#e2UYXz%0&WO^y6+P9Ud@cJQHI_%j@oo| zriJ$;8 zC&0&8;wRr6?_(R6Q^lv2;JpA0pn|c++s!2dY$-u$NrR~w-dvU6ep&&EUw1?2qF(mO zcIvv8)Zwg<8}p&97Sz&gFA6LRz++QZN>KbFI&%bhK{=e4;+{6NnC9tV>WDw^lAKS~ zf=W(UuSVUI^JptacHF${18n}$elMhr>ixPcd`5 zTbipO7^7A1I`V43N0h5KDNtl6bxn6voR=Nk(IAqik~G)>(_Oj>hNpGXN_tt2&z+t! zMlf_w*z!x&V;AH)l1z?il2ksNFcr+cejfY)`o?$#yQNVWgZ*^z9=R)q<+5*lAHN80 z&s9YCc>t$K#28sjPVBP~^Ksyg)k0yaW2b^Hy$0Y4t?i9{1X&rXIjzo@E?qjmM_>`q z3_TyD_8a_tKB73!cEh3jmq zRKNmGD^KeMISbaqW>e;t4o8sRka5GMZo;RQ1H!aQf%Q9A@%AbUlT~83$lU$bq+xuPweJ2{ArNN z&564|{X>TK70zoZJ~`8EG}jQZAxwT-AV1L-fH<7%5|_vHe;57Gqr}ABoBX*_V3Zz* z`>fh*3cugpH<}0`fR^t#3iVU=4}?5me1e^8K(|)|;WFv&)XXEJwK1fUG4alR?zzFkO+{2))jVl&QC(L&%8GPU=r+^d%T25;r@bkzF#>*c+P@+dLlA6)@l z-L<)v9jSwqQiNu~RC-G4U|HtFO@uYIgBL(snC@lFzV^7B_8 z08PhhCRF<6E2zLrXMiRDP7tz#>?&cCp^;LGO-eGOzs@PzfA|4r{)#b3~=T{=yO>SZ?>Y5!~3Q+|(O-lWNI(EFbza1EUnQWVdmtX^eYo3ybwGZfbJ0u~F>njsVH`|l`uT6Zoa+K0ad#ywO#`FS(u|L4yz*#ea$gzQH^)rZrlj+1%+#} zawChRCllgucW=lTzW!=j3y&nN@XW4bqRtd7@t3xn=P`R-5V(QcEu4=rc^vwlV(Fwo zvc!w~g2(H;#LD!Te>1e6r^Jgt-`9iqfJI&Ej1r87Sva_wyXcDOhnt7^8$X1(<+Ys4U{*+JvkS@EXJ{5xDR?x$ z{!Arl^^;SpSdqh_uKz!v5xB};3&dW;GQAI!NJ*m+WjzZA`xxkaw4ddpg5Q2OY#t`UGikI zxpu~UD}1p@_>esM17{uwmV3R?97CgWS^J2a3eU$c<~&u-w{+AcQu9Zyaf0fH^PcX% z{(#5Lltu+kXy-}c)4xw?5NbaChhQ+Apdr-l0rkA^@Kcv!FS2ZZ7`wYp@RTmM{yT8o zw>)ns4L?~Bp0(0QI({~zOZFCtl?i)-_4`<6!c5Mu!ArAQ@PN>s?hpv=t!wOR`?qp% zB5^E!c@Ik1hkkaC82TuDpbh`i?w}-w0Coq&?AYr1KkW`KmRox*S9ZJyi^N$VUxY1t ziH)BV?AW|bu7ZB)?WW$QQ=!0 zX8HiJt(m@0*+I;Xx!84UC_){LU2g%{wT1Ob+1WtxO^nJJ@qC(?*w{v3M$DYf`ANZO z6hAHzkW?C zE`Dd#+0zp|R=V`X8;v_Fzr6E+or{Zz)YDT&n4}ov(A9K>FD?at`~x)lEYW=npUnI` zqkw)%(rG=$!o-FHXdfSfIRT5~^7vZF!8ucqvcCyh?73T)<^;OdeD6~_O6|@s@b)e% zbTxLmES#5gbQn41((8J9M>|#g?w{H-A3Ajuw%Tn~b=h6;*^*~3G&=7tFCVjSGQ)rW zyDY5=zAR8{yj&bb<)5vNH`bw2w^(yr%WUvAsj98|ujWh_HL6Vm4dN5)nPSl9@pXAD zM(Y-4-lGatKBtC%HmY@GY3-1!y3@x4=d2l-q6Pa*7H^TEBtWwK7U`QNhv~mWWIeF5 z&qZxt_#H2a@=6EU^SlWlPI62e?a1u4%2>c1SUM3Hb()>bL+N`TabO@teZGK#^razh z$JauNl}g$M2=sN9A8B1ov6QBVd09>4a~Iy6S$XnvTGXihf2n3)-uI30S2M>}G6`{8 z@kJbK5QcAn#(wLx(hb&Mk!0%}m(Wu`0ye#eE=@!)X?yRS*I)}dMIITYf)5 zx%wWu0LC;V2lW-DM}p%Yj2-Z!eha@VQ9OHMBXxC4y5V(m(H2)nbvaTihly8k@?D9) z7^%t$5H>#9q)S$@9!7P-ZC*|A?nx4y<=dR@{rFiqR)DHl1_B~_A~|l`L)X5Ep|96P zQY^A4_KWrFI)a+g6uai!8aSeCDr@=)-zY}i1-7m1*wH-)rTWoI!*9Nbn2Q|KyR4e$ zd0q-{-&9v~pX8v!`1_8CCoYclgK{$8NSN-R+Zz9Hb%#;*BBWMv{cS}?Iw=)O*XxYtScaipsrX_>2{UiBE1PFAJyQh{kD2&3l_!WS zVrFW6h926%G-S!RWrR{J$cb~~BfmXgA!x+K_`tSQ73qZY5sEo=tCn2NhNvE2Jbb8Q zI=s{9h4cZM`X1i;Mqxd%y;c|5f`L|i z&U8(n(B4I_LoJ}#lOY#Vwud3JKAO#HU|OMwb)qP0Ek6T}x!7i6z4Wqve$c_HfaGh_ z`>38*8wxHB^YZ@}y$u|vfWwpMRro~Mz)#@d=;QL1tupS0^C5>Lfd5eZcF@Yin?EPN z?di3Zm=oy$t5>c>_Q^$Xw#`WzX(`h-G4WTrOP8<1#H3HP9dGBa+nftt(ZWfmiEM7x z{=#U)G4i1K>tkV8hfZ82291W{qirAlF2AK%;0gEiZ1U<81_M&y-f%!11*KJ&BJs;n zCCJsQvyf#fRIdEh@4|wDK zxO@Xux4r`++?2lyW#45w_+*V&r~xRg^C1+c1URm1U8SD|iC5l6jG#;EDsXY^wL+h9 zBQWO<4pnek5e@cicL@fD)4m^>KL3NK`~ccgdv=*pb4A>EYB3z#C6 zik{yG3y?rRJ?%nvx**GU;u~w8=UY2biON}NP5FigIos}62uz4IxZe15aE`S}Nbq54 za14g|x7+6JX=pI-y`9m)D15D)Jk3-@i}#?pcwKQD3&)J2zf(6`I{n=X+N)i+YSgo@74qqYK#fSLmlol#U0WzV{ec3*ZL~ zR~_qH;5{}?MLJ2|G#^GO+nDs1JqeB=$$a??62j{+cl?j+DNwbe5vK;e1%O}ZWwC7b zYjAPolY5H8=&A`3**l_J4h(B6$8KmUWg~{14?XlR%y`W085dltj~gKzZnsOz0%@Z5 zHFn0^6f$b%(s)KnQukML*byp%j! z@61M^+%tfUtoNOZxHnZC*eE(gt(c?{z9H&uU53Kf1GP9v4LaN%z+4E_*U-SHBg*op zoj+NQ@lPVvb^TTnEBDyqh(ingC)tvJMcTNUfkXINchv0%d|5&PT4y+6dFaSsqrF> zPJvg2NbieJ^iNJI^38comtpbS;!HvHnwY?zNpbUogM$ro+BfG69x@2@bm7-w!7cwH z2z(FYFT*Ekvi=!bv;_VNTPDlYI0d%1eO3Vxa}43=ZY2Jz&fj|PEm7Xs)1aSZMEYGl zmx_GQ4cLMqVc&z}`EByugw3$DTb@V7uYJ!9?;6TCcCciTKfvkD^_<_cD1QAyUWVhP z`DhntjrVs1tb)#(yEjrT1@9yj#d>MTOg@wpZ#F(#vT)xOC?k}PsU0`mygM^MOrb`o z&qTUlL_asW3{|@c@iXMhqZJ;M2tnsOv0lH|ocL=tddISo2ESPVdo&9GR+BJ`s4OB( zyA6AGQ^xJBgZ9reAJ;oD5vp0LPr7?2i~T8JB*S9PM35HIzF_a0Z>xfdb~%Q<3#^r0Ej>%oF|)K=)iH0iY+^p zMQUti^BrZymVDVY-sMf6g`7jzc9D<=~$$S8H>ZyiV~CGRfdd`OEO1o@8a4eh8$)oGT{ z#Sm0hq^soyt`7$Z!^4-WoaOCrby?tZLn%E}!cZ>Vyk&iJvxdZlA+B0260#ew= zg4BJc-o?bnCo0C|6cm^q(_kpe>7S05d0u0_O>dI!AX zV8y99^gKbB+pXT&#AElt0bj^afzoE!5;3~Vu*0uYvrx4048=)4o&}X4xx#wo-=bRu zoj?8q5SaOP0eX5Dyca1B2}-AI-EJTixfr(Kvp#y6ptS(KnXzquMi6|`JxyeBXK{yz z=ThQgUY5h(KfkW6_B8-%Y;>Eu#sg-paPLpZ?^yA7$UldJ0+H^{f1#O!N0jgT{;RX_ zSS<33Dp05uy%=uZt>l3PvghZ2cKasz>bB3K668?<$!LN4>2IO_A3bn&j{hU%*C!yQOPOxiAGT&lRRF1 zcRQ)O?&7i`>TKzvw84ccl7Zcmk{p z8+hq57U95j=$@bAOJhi+0TmRG>jRmn_>JP-XIK@6nAX^uA=(eEgZ@+X9;`*H$jQlp zJokIusBu5cdR@Qn_2}H>N_vry8Ds@$0ladfI_QoH4QHW2p@V)6+wUF6o;eLo@k+2| z`l(&be*FnWNaN7c(FZq357)CY4THmy#Szk(0=?ehh5MStQHE7sPFjEk+6X*Wq<{C3 zqD1ng9U4lQ^;ebxZLpdDQ2IIU>@c0v@sxDGMU){X&?0D_FH42j8W>FPlpV|4&oNB1 zU%kVig(mZ<>&Z7YvW%qwnE!M6WyyBWvqCR1iTG5j=E09#6Xv4l4Qdhw%$2T9o*a+Y zm>UFaRyj~F_8ZQ2infSim3Ov-57jkU5rTi+e8~f;USaq+vvibo`hs1c<9F`OxIg(6 z*wScf5y`r54~<1L&^nmVpm%%XgVzr1>0AXvJJ(dC)~rSmHPeo=`tTb75}<7_Bj>?9 zZC6RXe!;%0Xk5Gt01x=?4eKHzjl0F}XA{1rGeJ)$dZfIx#)4ghtVb`!ZKm|C`#|9l zK$-yEYg~B&V&uES*Zj98{y`W+^O;$KnAekZ##9gqOlgokfB#qRAF7{fqpbgxt`N<` zPjq%}4^M8JA7mSsWBse&++7ac3G+hx!G+*oZwoE-lb%{(39`$-{Y3rEeu|hA;eQBg zbLUH8&DI6b<4=hN-`FlBX1$Az#le%3N=pp7?!(-($=KFUDJy61LUR(QUeNa^)q-~=eseX>esgEmnM#=5Y=l5oW%-@&Pxi<%e zjB*0a)cMp!vsWxSyGGndCt;7*yYo;@R3|2i5EpC+y{Jqv9!%ae{t&LLUKW+=?-tf} zhTc`Gg_D&;R-p#(-o4sYK}H+DpbSOEo+#JauC?!-FOKCiM*PJw<8`>9*&7o(_5Ou0 z`0Y=UGJRz|f{Jw+hWcI?7oKTA%>wAy-mC~_*_&sdJ_{GfgzPCa6Bt)`(HPhAvAN1R zQ>5IgJxz;2DvxCbG0z`z&t5aWusLa;V1uukYma~Gccwinlzxq?$gCLr>Ku>UW%i1 zc8+RK9Ci^nWULkap5BBDW=aR2cro^+kd*}r6*4(cb@~q{@0?}0xJ{_+1V_9#ZQlvY z*xJ0;U;hqS9H9*_P4so#{VEtTNM@P2m3!1){h8U%d7z&DXzyU!c9Vc|0u#vT*<_ET zi`Rht80{N&r)YsGY`B@!jb&R-L59MBD);Vt!Wo!i1@EThnjPuE%XG%IQlGJ!SACo4 z;M)?UF1h)6DIkB(v56*L)Ho5Ah%MMq_)~vr;?^=Kia|x~mtT;49cr!L2Zd!qhfbRG z40TIj0K*RqLL(iKq^Bi;Reyp0rUKYMqnszr3xE7E;!Q{h68By; zvi&A{tsoEWlr+#d1>W6Qe`GtAR1nSH!GC6eJS20-Gf9aS#+ z@I08x&10ahzuB$xkaa6V5S!JHs%5PsM;I0WmR%*07nA?p5!lzBI`=zxVoN&;G5uy- zVf+{>Ih7GQ0X7YR1DSjHilWP~H2EAHm^%lM&8Jsx`$dkO_SHgbJ=S|xFznm$CL~R^ zZLn<`$cjmp9WbVzOW^JhHStU7uXnqRv0rGKd^{`2Yg>ri-jAru{SQM~V82z1POuB+MH3xtFHy z3rQa&loZq-G~?1H^YK5bl#zo$#_RQX0VhNDuKhO zVBqtQcH+b~411C7w*kV&qoI7dIeR6cRq!TaVM)>lxPk^jZA58b24Ordx{2PWze4I> z*)#uI-G}8T#YF!IrV9^=<*^)_#{ZE@6NLZL)XH<0nwl@WKdjW(E=_47hnyhT#NIy5;Kb7d+DrRT} z(jB;>ra+%kK-ZTax4bz{r6g&;GY)qc)Q5%Qs?~=Xe+JUUHhrw%oVw|S_9*R03p~Bk zz`#I0=k%V$6JNb+Cju&-Ue{)^Xm5ZM3Nx&_{KfR~m+1~7+h<>L)H=-nw4~d;8fl{u zv*YkyV=%Q42%y(%tJ0wYL21D4ca=FPZK@YGlNEn+L(2hU$S{e8`Y38h)Q8P_tuUK+ z82X2}2ReR?el1un@eNL~1-|0qxpU6u6M4&5Oi-$8g?5`sJ|d^M8rZ2x*RjApF+s_~ z^ZU1IjBSZi?!%K$2%@|->cV;J$tTxTWJ1huYY#Mb9@x(3dG8DWtUI29d$?w;YIVjF ze>jsxdd?@jO#~|lSLYoj>Zns6JK%$(+?SI26TBa}anFINXRelUb->ugK?qaw`?ZDI z;!M~y_M_}0b&JAl}Ar#V0urjGs0wIC|pMvazU!t>!Qr7NEHc$%AO z&{hQGZ&|H!XmS~6kDqDq*ZBSo&Oh)dc=sEezf8CTEqs>r(8KYRA3r7;U>z(`pP)vs z$JmunGQY#Kqr;Ic%zy(Fu zvd|>lff)aZm{%@gke<8!EYrk%ZRFYdNw%Mbi<<`g4O>AOHWL-WkDbu)e$^(L2TxO z8F7?X7F@vz-eLkF|NE2xiSO0<%bqf|AM}$5cNO{yPCe|+RVp6!@cI#c+09>+@1pDh zw=L-LjjK+)!TXnPJ_crB49pB-0y^TKF#Z3NkQR5s3qr5V0b_Cku)CSj8v5!m+Wlg- zkopm%>Ja%HqZX@+o#*dVnFk}uM~&B}lnhK{1mN@ybZ-0f`-5bt=xZulN)yy11}?_OWGE^)u=~C_51_kS!(TBrPUi z@!A*vFwqqMgXo7ck{-4BV<_1SFGcZ6)0-BCmn3VPRZ9q0LfMsq6D zr#P;%PTQ?C^ErMRWg5i<=Ax0b<);uov$#+(0Vc6Y&+Sf+c^F!?QB>5|vePh&VDq5| z1Uz_}ZmIc&0{JHNN73dsqK)o^-_(nLQmh;Gbl}ajZm)+5-lljm5$`F))`v!=4u9lT zp2>!!7ACUqrVUJK-`%BW>>5)$P~JxsGkR|ro=(KgG`$;E8;~%Il`hS2*gx0VNoOF>b=G)ng*Z$j2LloEaE^T^MO>}GH4wd z#zIqn5gL!4F=zi2;=}aej)7oaaIPV)#KyasdXG9@QtAdvRua8ad}lZ49%i)M) zHkb4EA!>Dq2%R~H7w!%eRw)!-u>2zJsVkm_`P==;mI)zqcs_V#z)U?1l~6Uuw$3As z(;Ju*MHs?<+%5SW!p;B3*1i9uU8yTEQlAmG!&EgG%AyW>z{91rVQwq!E%I-}p`Wek z8S_N&2hDL);!$i?PEATp}zli!c z{MEBCK$?rIttI?B;^QKDSkilI1xPP={;meVE7esl+Q9{AoOK) zA223N?Ku6F#Ugsb6#I4BlW{x03FD*vliad;qCl+Oh|uXm`en>>r8+}@Q(AWNUZQDa z_bnxOvF9g7h7+;Q&a|n@JLl8TtR^erNcC!_@`hpq9d&OwQfS~M5d0(ftQJKwte zn!Qc$L25DEzNr^qDCwi(8lz2ph5tsM8NHELde1&amr$i)8@Oo~c+31aYbr`ZwEDc2 zsd0ECO+n>gkP`2*s36X8**rHhaKkV8#UVE+^f$|Wj}!`jdUA6ks5>4|SMByPW_G~F z3~ny0Nb2*XEs@O~PVU#DuQYUfnEn z3{Hy|#89Gv@>{wv_zfFrCbow=cSD%A-W*TLByCihI%dak?%ul3$q7t6XVWWM^f}7; zz=4pS(QBg3KCCAzxzhDtl#Zy8bYJK(S=l7$CRmmi5@*3UDvVu+Ke>h}|H{@5ZlvUw znOWtp%V$8jjp6>RcKU0@l3rz!GTM63od1f~6?P#14MZvnJ#54iG7=HS{>il4{sCF~ zxVdJ@C*vTn+bpkX|JoA&Q)P5jnliK*owgajX`f%0h(ZtNvX0}Z!|RI32cNoQED*)L zy0H_PMdd4EDv-tNEb%zkbvW5XE`MUS{^}+oOiRJBLBep_HhE>p3YeSCOmL?<4YXQ8 zV(FP5Af8Jf=0cfUk++=8hs#^P_dIUVQ#3pg4%C<#_7jO_%g55uk|Kc7yn%Q5&)n!& z*_~X5q`pS!E<7Y$p*aIgH`zy|D{%x*#A9(RI?@f*oNQh34%O8~B)~<%KYnm}Oko^^ zlr9dQfmaxNlR>AK<>+~!9NjAF^QRnLds&XwxAYt``Mz?^zUEy5<@N5f<{2#qrlb80 zfxd0bH<^gqS_vP|kh6*_yOXTBgQ*zVCRuMef%|ma#3D-)41bJ?o=560T}7L(j3BR-*)#4CNstAqZpOc zf<^Q5NT!Zs2P-S`F9~%6161dKx;L`LQKY?>bDZ0}n+*eUq>Tm-zEF*X>b?C}Be~w; zYJSuGle-JMIJ?KkTSD`B0aoJML=!@f$O=ob@fgQzgr zv&w3&wi7Yw{-X_T`;Rs>`2_a|Vns{&QoQG7Z$gecvxMAdQVLkkL!P=WMBi#WXpVz1m+T*8GRVVgqs6BLyu%n{)Wj8EPR2XZwf+ZEeoH* zdMsZuq!sKx$g!{>&BbWB-{a!k@n-f?hxJZK`8H1|qAA}7cF*~WDTxp{XT0dwbtOm1$f&=_7@2kgfvT-Tz496Q1sD8MwFd(9wrz-+oN2htj2q`VqX6 zhPNR~Fg4)a^!(MMVoi>?qY*Y8G}`OTz%P7MNr}e*eu7eEK`g5b2eGa2dGb9 zP)ve)yc=F|sv{^>B}W8GtXTEz4cwvn0iy8QIN?4?(|Y#}Zm6{MDv>8)_6DMz$xF(ueiz+-X({;AV;EHjvsdoLe44(&M!opF z!!AUL@=LlrNa->DmxI(Dakp2mgtbkDwBK(Y5Oj8Rcb!Y^)b?!F&$vyyOivZd>F7|n zIPITqjx`aC<6Yy+P>p~{8M~>DxK_mhdoU>`xr;rfgxpPv9s;wTry_cguTZ5Z!BNyE zO6GiKL*Pms#3kU)&*$|Uc1jcHb`S#3(Ky~av0z)`NWsrXmBb3Rh9Ac8&i8LEEq?nb z{qfd;?aAChcAlC6O56bWML#!ygn)ZqGS**fY_sSjZA=g}a2VKP7 zxw}X1a%%N`1WG5T5}(Y+IKEPrDNirub|&?|k$%6E`Q32j)O&S_-{`~pWVz_)!5?pg z7e6YIP~zP2GiV;N*7X6t^a&>k@a1i&j-gu_Qs*;e7}2<00W6@b2F#oN5&ME{QK^y> z(ws^Wa|+O7|Cm5GBT)gaPV<_*W}l;UetzqLzD2{&R+^&SH#eah=a}a()1u2SeGH>o ze~*$RZBmrJ9;fPWfVyqr&{4)brohdQL8h?YhS#O&@_a$Pk`Xra$I|DJB2?Y^j0N_i6p7XS7~|^T)mz)qu{Jy-BSb^eAA<9+ zb7{9!rjW#a&JM>ls_LD`x^fLE4LHb8ft>bxnD5j2B@HJzr6SgoRV)rn4@*8YT3-K% z&}RaEGy3unCIWu&+O0sNuq<8MRM}oA*;LrrDbLO=E=grj%2amflv6*7SAW}gQ_k)c zY%l(WioEBVBqEfHG1}?D`S*j~MmarRv78x;LXQwJVxj3bR|dLOq|=ZN!Tljak=eH^ zbaN!IquRE6DdtA5^<{b$(bu_hMdPELu>&Qp~ ztN5EUs{P|ei~u$!9*+ z#OyzA^hO+>$BaV(PyD^B-IP^T}-|%#XRUKhLlK#Wqd!vvF>BK`?Jynvj@{8G11X-JlYk{ zqk6knzVc|V?#?xr0h3`rCLI-=?y~;uJWTlxV(HO)tvmTBlIW@TsSo!^04TpTc;`5= z&D=yfeM|qD>ecS8|F5^V0E(;ozC>{d+Bm@_I6)HJ9fCI=Tmk_SAh^4`OK=PB9^4^l zaCZpqPSf4f`M%$q`PX~%Ue!#!8mg=M*6r@gJ#yFCd#!!;)^qWB&Wgw>7w`E80RBF) zumLv)UoeQh)RaOPgP@?F58aFG@|xu7M(N5)YELZ8KF{vLT|b`%n|wtKD=CGPm8Bvg zJSnx)Z+~vPRn7^UK)-42XV%4;|L|Gt5azn7KALBt8o?kT=1%6cxOYl3;Pew>+4Lwj z^7b#Ht3KxoXP9lDb2;{!Yqr(T_|ByfEb^H=L!#a7qWFS}4S(1lel%$QT5jX!istn6 zrwa7pP7l%)7KHJxee5>22h+N)K|4mJ zFTBcHO_J~xj8?MnV~sx%DHm=udGdz)6!X+JwY6%!jm<%!3J*oTnPT8nTGmanZ+$Efty3<#3YmocqcWiRSw}c5Kisgj_usB9 z2{`=`T$F=)KgZcZJ9QuK+LfyB^(n=wFM{f^LVft*6#08$dz=ueX-&7nnNBTChtOs|85WqlvtIA$*2lI$Hs zf{$=LUr*%3o$%gwe_n!;!p5ds=B=?EgIL4{zQ?Ss@0z55A&KX_P~Yf0)Xq&3>8MxK_Cb46VGzIxCH!1OhK$355vfXN9Y~$Hn z0O@>pBUUx*N7~dD^6;CCKNI74b>3ojjoR2$7UB0T-_AK%wx;I0O*E(^<1Hn!(d)|= zHeNMAgHS=;f~U|G8O|5`ul`fhG29b6fqqGza{|+FNg2FqSl^-&$?KHtcC7q$#`~Zm z*)xsuze%^U_}>~TkJc_X%XoNwlLGr#D-MU}Uza-uFfyyM9i(F7?+g7*O%{*h46oT^ z5E*=0r+i3QY7W?#dys2UnqJgzsc{wzvs0*sS^z_`Qy<>6y0j`i{t&-OlbqHi{yuv%v`w5Zlss$6k{`&iCZt&1?;(KtawdQ3p z$WhoS(^Z6s63T0`7(igWb>(5ZPPtpAgunS+It-hf)=xUU;v$pRmc?j;-}N-zeg2m8 zau4Kn{&V2-koIq&koy+l_+R^O1Dw}k= z*dlyzM{8oYT{$R=aY;@XwFr$^@VAble#RB`HCvMBfgfVQa^<4l z0WWx#|1nJg3Q##o#IHnX6!xG!kNz$KQ^sKnmNJYlu2|GK8K*|x-d}qvTPdlTD?`z>q;M^EfV)71U;~NLMsd#Mqb8UB~Z{C z`c}h*eeb_+F2d5b5UC)KyNP4dUSWrWFa9xjn`=a$H+fXmHc3tFNkXc`KoX;U!gb^s zDf^AVAOmh6UFT4kvp!zaV9KF2-L zK&Uikw;{;52A*NT)RZEgjb)9Bscg9SjCe!cwu{Xk{My7OO@{Dc_VLo@#N6hWGaUk!@6Y>_KEsUJ=4B}%_YTJZ5n|FP<^p;zy*jacA!(?*N-Quhi+qZ{3IA~u=lGZ+p7nni z@%;x-c`JYVYJ??x06&LbI$p&cncv)ET3U*S@MNp10Y>>|)oAl83Lh#M=Xj(7L^(Ee#aC2zRLcT`_r^CII!Fo(0qSDIcWXM!qj?V>Y*SN0aAYb9R1m`3vzU zenQSoco|qllYgw_I0LAh0^(PsJEt=j9AH>4*PNKhhp+wbTbzj5ivDBkaz(7N&ka5J zcw95+#g~ihas9P*rDp!xx)2ALtqTA@5(b@dTa34KsT%!Q>@#RsN~>yZA-$j!6I;%{c{HN`p-L4u z%%@{qvQSeJHE&*0X3fL}oa#qU66I5(t%Nb}VHMu?L!z-M_l7r)gJ*mns0l9*5#+2^ zD-loRo#N*X za=qA4-W1bii2Yc1|DL7GJSc}qakb*D%*KtDgs0QzDVOK&8scM%s`R^f4N5=?znrqK zhc63qEQYbK)W) zWN$G;RgPJ&M$IQ#k-lneUxYioFUs&Z*3oZQh+m2NTM~XN+JuLHLS{Su9VbMsetJxN zz-P9)*xZd*HdyP3iUh?`qpTdAXTNUrL>++HnKi=s*)V^Rj@lAT^#P013UaFt1N|!f zme`%0##erd3JRt6n_X>a?V44yQK->$3NDjU_{Oi28=KQfAy>7l!rC3r-x+ET-+R9E z_&U!c-uFOTsM;O0PYLlD2F5{pSfy147QSFu^Ww3SD3ioN*W4Zdxq| zGFt?!gbFp8G4;vsQ3?R5G2KjBq0$C?{`Nv}3;f_DgwMLW*sVvLx5ud>Rr|s}#z4j` z>PL!@iT4M_pL_Oq*zVPt;8VYcZ%6~*<*ohcFNKaV3Xmn~K?5v$-ec~^Ak!{@#`o{v zpATNSWC0q0szSMrgLpd?-}X>wa)kGUL22V$z>Ch+dG1f?(=+_+>;5u zvzLFk|4g)4sqO}NKJQs{@?;)25h=&M%Tp46_Q_5Yj^-oIasLXsu=XC+cm^GO;AKFy z{xvgbHycgKGj!Ccl;nZ_q??KPaYa=@r3hFkJ3aG5k(uYhq~}a-(|tDv8`*%+wR++4 zcuASrM3sch)E<55ANNV8-RTvqHp?~lZtyqQ_^T3^E(=ks<^g$}Q1@0YNx8gG_pt7} z-#1-hFBy7{x%Jpxb2_1pu4lUGbo_DHH`9mtF@)r-vt|^l_hq20neNtn&*yS;ndEhOD9#Av z7A;VTLV1-?6*3det8szb;Asbq}3BNryHBJHOp$Pv%x)!j7i0ln!&#ds-r2w3N z4Kk&oVqv@barb;uGdsdNR_4|M8dz6c2;OM?dZE^KGbvQI)fRTk{R(l@A#C0q z&quveRe=qlN^uMsU!*6hnb8CB@#SP$02S# zkhrfA0cU{st>?awFJZWFk3;`NoY-8*EwAJBliF|H$xJ@gQct)hKbV83ruzPP zUY~MD>Z{~0Ian#4U{>}Gllji?!b{NYhN=JDgH#X6CI~;EH0sD={ij*+24aewEfZqA zi&fM4iTbn6e_XcESM08vVVs!#e_sK?$Rz(9D1~1=>&Ig{O?5sTX3sTzp17~z5T2VG zeD@yqtpsGb9;HCp^`%;nmy)4$WO~~-yZUIh4wze*z5;U!G4g;9ZzO9)bYr>*O^K~= znWm1)N^%O!hhvdhR`UYh6;$SRh1Y(2&i(67Vy_`v<1vd0^Bg;R<;g^TRhsw{wVT0f zd)z|pyy)Y0yEHAhm{&M%tvp*UbAFt`gwX_j4f{X8dl1GEtmei>M}^PhA|mp==DWp% zLY;5Zrz2m}Ab~b$T`bRj$wx*r?CCbek(`mC@HV3b&3z9(rl#=>D_KI; z*9M&w{IS6@V)GI~KtKR~Oh`8`Cwjm0VZ+P%*A9JC+qflK*gve0nBBzrV4VF&VFi#v1T`zjs155P+Xln*UFtM=AJkZnAAH`6`(mjX~>d;ZMnHbAT z#8Qf|Amth$Buj)B!7a-dAD3vZJ3)0J)Co&`h#G`FGU^BSY0F`u8iq3=^JU@(C;tU+3bW=z?kXe;Mkb6hlIn;3~4n8i`2+I=4;+yXmp#25}|bQ7w!+(=yKl;Y*9VQ6Hnlr z3zZAsCgVaR_EciwD>!iT)j(o+y${2y_T6WV6C{L5X6R#bR6d$$O|W)F_;f!_*xz!$ z!$A|Qb-ywrGR5rY-`4PtnG|I1^1hy5JpbHi``tc4vfpSr?q|%Oqmzd-wL$rAM2V-s zzdpOikEC6&@O=HG+yn4Q!{+t;{M_)oqu*sR(*w+Z_fOvck!FOa$TcGHR@qrdA=)sW zpPj_e2q0-0hf(AcU6=?vA%{6Wd@o1o5qv!-ruubcHSe~o)lK}^w;#&O)b&-uJz(Ht zglC$84=ExMJ5&yjc4j__0Idw0Lhv_?t+?~K2H#AHakLT8^ibEYMX}JN?uB~{4&`dJ^uK8_cUXUZP_;== zlWZCGdDCp0$9D&weyeeNw{XUqJ(-`GNVa4(K3zE9Ms1;^#wl^zudicL+qU+pYlsnj zdc^J5S%J8>nQ)fFPv7-t|AiI;N1x|=pn zrX)l7l*lB(in5j{%WcpPn+x0cw%>inxLML~gSvbYpGy*?oLB7v)zFL3l6EjobFvCo z$GFIod@+E%nOggY=Sw+PyKlN>bh{zoWZ1NsfpJ_%@Sfsvl6m>>(K&bFTrm5nlnYbr z*4w79_s6WyGMaoBd&_1^g134aiRy)Z^Ka>yk(0e?U*ohzK~hjCBMZk9Mu9pcoxmvPl>Sax-I+#POIrY?k{zcHrv*w!=<|{`*2Ws{_*1rJ!|Ot% z4f1?)^oudqSr8ldJq%jt?2uuzcGf;i_F>H_uFGdQmZH(~&ISzLPcvq>Tpv>WD@@%g zrJ&IX0^%hVuI?T?npO6DD>wh6PKoV1XUO7j*0J|d`tF(TU&T=o2ciS1oI6b`6Ud{I zb8?K{V%N-#jJzMkcyDysj?3-pg5ZXW?Y3$#`xG>;6AOIefQ6^s~D-;b{Z0SYnSW|JdoFTN^)8ot_37i+Lc za3{q-wGZn`}JcK0XfO+UFdU|`~V_8rCKQqb$a3sOqyxfHHTIg7O-;D$^WD(FMSv1X5dbWg03+wKxS#09x@srb9Vw znGTrg;XCu&5|7)r-QyTzYOzl@At_t|0U5!>flBC{0(Zd#+Onp+F2|ZBhs04Fp{Bw> zW&h6kf}fONN$yub4tsf;PXyBcU3~MO`Lkl&werO1{gwolQO6{WO88WSHgnE;U^(9@m@fZ7pd{N}P*C7ZLw#CVQ!f-sa7DS#l)-kIAAKzm(I$#g$@^&h$Hi_* zpk)_K)ZNa%XP70M&-W*k%WfE%9ctzAdklFSIe=bPjgU>1R78OSgs$vbD zIncI1wCI-@iC45{R2*jtD{`|s=+x8r-hS<82>0c|I)iH3RnkUB9D z%P(uKbt5GVhIvEqj{qU}?atHG+gnP>D%1W@9=v>cj4PKvn0sc1ssZ>w8f<;)abDZQl`eP?loU#Fugq98Szv4v8zb9FB4wN216W-joBG|k6N0M9u+0F_cuhy_mqX>+Z z;E%b*%(=2TuhBmT$ycyXXEUR({v$ssUiz+CftPNn8p9A7N(Vii!*`iS{s&EyT4(|j zXo#>p)qN8mx$L~_+C`BgWYG|FqbvypWQJdmJx1AimeSm__43OKJK&DK%pkKAP?^g+ zAIJwF?%BUpaQO3VBs-Sl`)plej9DA0#9F8~gK|vCJ7}*#x-s^_+~On6!13{g_yP)4 zYEM4kz00U3FfI+dRTHhpz6&DT;pcdrv?CI%%T%B;le+9E5&n@dtQzsqFu^H6LKB|3 z9JHk7`CA0PqA*VARk8jWqizw{&GQux?@^bw6Lwt=i9Ys7ls3JU*OsvpemkH+cLvW)-v4OT79OpL6pS!@rL=J&pENw0OF-2M7cPBi? zQKdv1?Oxj@k<=aE$So&`@$24U_G@kvz)J-muAER7UoE&5spHTJ%Qb`P zs$EfsonT7qo+;e?0CAnY%gF7Ws8wSFGMs3x_PYiB!8V6TwB7z!8#AD&=-}69l3T4_ z7dCD%-_CbcW@V$(3j;UQiJSMjYZSORNQ_njwYVM297)(Bk{FDTjD<-H;Uu9Ee)ReBE!hcGSGa@#Qs36ocD)voC8ID)SmFf@0F8CD{QM|WK-4?6Y{I!g7 zUApL}%@~oO_hW6imC~eV+Fuz{^!d=MUM8iCo~>|zBqWkOuF&X<Babidy3VHeP*)V$!x(WE-Od&QgIpj>erqz^`D;b^v%=@NT8vPzwwmg z-+rtQp5w8l)g)sk;fE}L&INw7{?0Vkv}jaeB;*9Hk7`84p(MCBGc!+?2tvUvzV{d5 zYDtT^ZS&s>?Bw~f@cUrE%qk41$9raelUV_M;`r4i21U%BH;8++HxCKO};;6MYmxqlG0L5lq! z^6M+aRm=M>3V*sh6o=Av)O@hMP*PX9*sbhj?xECnwVC_9c`=ce0Jl`M{u8A4ox^x! zQ!em|g6y_Ycg4t-`8uato6t17#htAm+GSLl)?~IIrQ#v3xkJwL#Ix~b&}6ISr9KUp zS^)QCAYvYwyv+wd|9+Av?sjCD>i0ZD?q2dueATmKin=&5w;$xiW_Z*4W}>m&B;{If z^h=vh5zbzcKN$2toHT>o`qlrM$EV6R_%YGMr*y$z0?qqj-K{{yu6x(j;#};H9-fqZ zP@5Fx$QPa}SNj@;;C!V_H#;JW7bS4TN$@K4JQ!OV`-Nk%8wia?V%a&y`lr_-IfK!p zbc(pp|6rSIjuHQL9v#8}CKI{7id>N#-cJLAgAs@d3JL@3c?70u<$Zs4;CI6fe7*Gk zCj{9X%Jr|kIxQe4-gHeui0a`E#!(9uzuH@oSGcKL+QBr}76isS!fSgpG9+aOSd4=S87WZ`0j~jDX-)7xiZ0r2{K0e%3lG*ZeW9^) z(Zo!Yu6->^cMN?zOvsb*@q?bC=iWo_m*#z!(>y?#8*KI1h9|#f@5MEeZazU5 zvsV82i6Ed{g@ofuV+1SQM`$%Zre4iG^n243zkC1wF7^#tc5r%(XYmcQ4jWAux||(g z=a&X06^9bFzVNHwriVZr8Jd+-a(48)t8)8Nt1LQj@%DuEc&7by&Jg0=?XNMv`9!3FPW-!9Z);bN=q9(955^`|+hggh%%+yvV2RG{tX6le(+jnSWUHUp6{N{0g} zBMAr~XcT_m2t%0`5%luXzAV>U%$a{LG&r9eM6V7!+7MeisZ+TE)1scYdwI_2Xikv1 zt^1_Sd~SqQ+bo>l{nNqAxRr}&+8uXM*T5@wDztA~kdQ{s|1CVx?W{QY)6MLJfu2^_ zkf&q0K0d9SWBDZ$Ve^-YX68RK?whGA9(q-b_kJ$NLD1|We;U0Y2VF+(80wk8S1=;4 z_M)9}Xch1lmXiaKrGURAdit!j1sc|TKGDu? z@tLn9`TR%vU(!!fvjPO#xZ&hO>VA$sX}yu73%kpm7wdpN9pv8GCLfA)5=I;5ZIxG4 z7c_jHI=&dJ1T`wM8GByQXR=YnCgJxj6k*JfsUMyytsc4JDMk18wQ?}$L`Fr)aDQ96 zG#!f z)xCEP&sLM`iJoTuSj~Rn4E*$+3!ZZ_pCMOD$8sWT-x=H{J91g{COB27ZeR8G%T@}a z45VaMb@uu0#D~)F`PN!wqMSo}zLjQ3HEz4D-psg|>x(gWu$xXy=gF+x*Y~asg2UXZ{VYSi#&yRsSctVobgcM(mroPp;8hg-}_LLSHFHQj_tX2P1u(M3Lh26^!|CQSYz?iY>N=RjS}~&7eBt|__6L;-1ZV0UlGa_E?BMCq|o68 zmO%_BcUX(3p+!F$YY9MDL@TIa)v3PKs}4X!jkG!)Rn-nXeNG6hWH5}8jgBevEj&P$ zmPcHMqvK#(tkJjs)um)UPg#K58qgD@a?x=Un?8fOOS0PZ<-nPo)YHHXZc(C8HYV%d zYqUS@@>PqEj-(;<{50(PIq5F$BI`fg_u#=&?z3B3*hgsCsBaURu7pIu;ql11Ywn@w zX@0di8A^R-ezC_E$#>t`C^G2>)7^8ba9h3GQMVTsfCpTm`?1dl`;fLrm7rbT7q_4Z zo=!26cFwE!N*}ktf{M`ixkik};=C^0ACfH`NGadZBBE12e$X&})dJo3ck}k> zc$pcS|0?yk2JHcxIqs-UA);hIhS*k6TV&-MADbi2apqhkyT_$C|_`%z|ql|lK7h(Bs2gm9K@Dv#T z4&)VoU0wC7hapmltPHmNrBBivv79mb6y-S}<1(DOWk1uT=aG?Vz;<$au%wX_lZ-kd zC+XY&oWJ$B{XWY`Z7v4i)=9=~W%A4S;B_`(QCWntbPTmY?Ldv#n%^dP^8Ug}r9mF- z#L~Yh#9Hm4+nersvQU+J_V95|&S9dTst*V~N87&(bCR7yGkJA&90xVLDUG?e-77Bt z9b=W%)vL5Z;j2n5xzHfsb#*z zoy)uJg8SZnD*`yZ)n{s_2>Nh9Ud7cklf9=(YVQF{-LdMbcwbfQkQPRO3(1jFzK&ma zw~7Xf#EI|WRzLIoA&foYScBlC__X|Y!kKcL;?2N6j5B_~|5Cir|G&{k|3|KdZ@a%G z6gr{iO>q+!M_Kn|On&hKStb-cgPzq@fa^JK?)f@DexhhwNGdrC7@GBveSXT!7d3`j z9?rJJse(=xt8g;F#MLB+vygt{>g%ztaj&B%ryU>8DLQib&6r44f(vjNY}r{KOoP&a zU#j-Du`2E?>2g2XthqcGD&&g#cvH6cf;}^CR;%^X5W|=}7VQ*1 zsJzeqGc&DRkuqxq&7>bzI&k@ST~qx2{dMu|t?kFHdEYlV-LH>t?(9*#CH%Zh1x3_% zo-oX1vtm3Unp5{^Jf<-F2Yq8zz2w&~>upWO_X!U@L$O~Tb6z@n z2-iZECmO8gBMQw7Q#E*fnWSoM71dB!?*)&ABIBtRkK@h3)Z)WB%!Hkfm6JNq zRN;#$Y#06{xG0-=7Pi>MNW1_15b~0^Hk(h8E#{ZAv%6dIw!!TjZy2Qle#lW@o7MCS z3;~|IU_4>OyS+V%+tsc*T+XPk@|DHC#7{8uMIgoD)P9KN@fthCXDd#=HxYc1C;B8d zGqp+F+XnGL=Uj%{8Y55HW0lgZ~Gm-Ny;9plzMlR!INX^NVenK{gM+sKEx z)d?_mUg2z|$w?3!YdxMuYT$V^g|&hwHs|_s{;~mlx#C7YQ|)Kp!)Nta?R9|Y>9#1^ zmcK6Zd<`a(3lHTandW;niNUL<>RFxv2G8c;#W*TYEi3U6b8cXb2^qh)HXx(a`6NYv z3Cd&Gk$>)XJ~qxirW{*hq{93TV-~;`nv5t{L5* zkbdh;Oc7E2ijfyStYczFDC%rirJpJvDW2Qi#oHJyXxJ*G?fXv^TEwv~zonh|t`=^W z!LHZIzoZDQ`*|&XZa!rYnP{U^jR;*%3S_6CV3F#Mj^%P!AGJFl709VxUthBwXe9}& z`N2xlc&@-C_nCX!)wgnXFB5dILF1ufqdR*3O#V3g8&#b=c-6OPH|{si-h@Q!8S5rQ zB|&m%;pU?F`kGPMwu$PiH+txrSnOv9NgJ=d(+*f+BVt0XBBKI)ciJ`C)jt2h~7VA{e2oBW@|^zaM>JNOZQ@ZQLN_Errllu@X z(3)*ujhg((`2-eI-&r<&zw_01zMBx#d)duAhjX|j+inG1xe%s&cYnBPJ$>W~@q3kC z%Q0mPrB2vYL_D}i^YMOa>|9IO^n=#?*}v;~R?MMW>D2S08)NR)oqvb4-i%~XtFC$q z^;csBQym@HqjW(KC2eoI>ET27n=7>msHjvk`Ro@SVCqxMWUiR1fCnn9Ye-EB(cVQ7 zsB6!P%d>fUC1|`JhFDf2TmjHQJyZ#i`#IQW(uV!0)nljG?JuLNkzkXjO-3!M#CAPG zcVVai>THvF&@FQCV3jqha1NAA?mf80{t=He=7qK{UDi9H{U>BF?K9db#>-P8!+kgY z-LJo>+qHGlEqK=hEk-60C&5Yq>#fif7`ISAKj8X!JWOM5Cuf9WPdGcln{&&{`i>Vl zRJrRE0Wd;+)bJe~7uVgGOLtw~JN*S2*t1G2isodLi9g3Kz6}*(saWm?QQiALZjxQU z)coJUEcoDDO1(x2)M>*y9QWl%UeOx@odnbN3%xskqD3 zniL%-cZ=6Qi&gX+BEb%8d;TFkVF(jU66^o8b(Cf_CuH3X*}! z!v8@IugU3bo2BygDshLddR^rEO=c(uh2dz>DhJmAEdJ{CJ-rCy7y#o>2aCJCyn+G^78-1cV@`<7^nWh9ANYd(jN7B;tM82?}BQ8zz86L}cPiEt7tl z>a`Q_>dq+qzg!d%Ky=GAT@1DT#>!4D4q0|>2AHU7?4fbdB``_D6nqi}z@>C0<>O=K z{HWqow~0;OlZMm;OBlW3ak|`=hX{3+AF#e4*`m;Oj0^Fsa-?P~MbHXC) zGQ~M_0Y6<_->&he_P@tT_3%o>c%h$8n z)Qy#|g)IXbxhAl2Fs4N)kgJZP5YmRlJp<7`us;x1UI10snute7yXa*V}Fqji$IL~xaHcaG&$4n-vG zaVvVSxSNz-jO8zhr(T4>VJ5-9+jEmv_<25=iLZpg^*(b9`_=JuF}U zM;r`J4)I``3_2N-)a#Ik3-*r+Vvs|U6C~W`n@dv#CB@nH9mx-z!Fhx+>lYCm*wmB%JFz~cks=YoZos3jmMZ8Xh8ArC(aA73>xbevAdPE1dWLR5%|npl=4U(Hq2zUmaZ$ta7HVK&w0DB#>)y zhPQN!B=q(II^s)4^qb)IYhSIxS(xGuablWd5t%Ufqb03>b1X-$l=@^!fw+l_)juZB zRA|B!Q~|(z(-mCW?u1neXi5+{I47s)WlvSlEK<*UPMcv0QP)ssreP1jQ^#lGqE8Tn zbQK1gBbv{Br_sRzs%vOiA4SQ`RT~Py=yuM(%N|X z6xe>IFpBEGG>q{&6l*C^c}ezlw1pWACdOg&|4sEQi;1N>OjO@(W&A0U4CI8v4J}QB zwThrCm}!A#z+h09I@oI1OGsOjiBJ<)U*a>yl)6PS3sHgjh_+o};tpQD%ra9M5O0uv z5C~db)j`q=zB^i#vtFotEdn)(uxUw#6|rHaqYKh&u~UXcwGfb1sVOO8!m{ZCA1K#@ z*!$Y{T!Ap-otgQA$U!T=%}Qe#Af!|1ws_2my#!tWvD9xBGFPF+aXeRvZ}Gz-!aR|T zUPJS1vYrU<@g)cw-RN)ZT|XB;k##%~OpMx#=rBbb?qT>^h{>c_JC*kLQR@|x`Gm(z zTTSJg~rjNmET%d^Sv(@sxvw1+S(z2nDrq5_EsU+C~Y(0tTb$ z>FELtZ1bL4Y*;p5rqOS(Jj;4_gXMY89p)vm3XYET;nKaLsl*1~;OPxBq%}afjDtkV z@4LI>Sy)*IZ5Qs&YKTu@@lDRhbIdfPKv(}8|2#<~9FP3iP0*DH?HjE{=)H~dRbkt{-DT6^eaGMck^06z`>!TR3j=aGA+tTz~P~9aJ+;j`t%PDQ7COGShvCth@O(oL8spsV~Lp~0lGiK-w(D5A_+o6~$>hok4?m+}`@X{oet0NL@yVVc^ zTaQxxx2xfT;uVV)z{P6gb$!c2bB?GUTQM~&xr1T0t_&>a*9zFgb$!Y4jajByaKBGn`WNkC7V|SMi2z)?r3>hFsEpxCWs8t zqym~GDH8P7#2{C3JMPI?7K3;P2-G|As7NHKW@}3(c(~kNjfT>*ZwB`Viww%t=1PE` zuLrLF8Wr^X2$t}ROz8N(iLrFgZ^czIrp(>NaIGd(Y>$q{+;pUD_xdYPP$>ELvSwX>xctOapsVns;8nwZ#<$g0hr(6I z+v9mf{5YuymNAxJmMsy7-^Ufhl`|PmzfygXRF<7+_U@M9&~N#$o_t;JxN@In+g!z( z!D6xRu1ga;nI@xQ{mUaVhP|)|iOhw}cYFvJwil3=P!X3?IP&5o{qAG|RrM2Q_NhKQ zdoCU~=pB0VmnmGs;Les?3eWrH&mzUWk4(;k^Tb#5Tnq380b72cZk@GPKxstO4(A^h zW%gO$8l4U%C71Ggbv&6g9jXJ(NCyBZR_kUz(o)o?3UbV-1*B)N?{KylBUN(vk95{c zii(*^RC4gF$Gp-sWE_ySQZ;At783^=u_P-?p`3n1`EvF8Apm-X`d!V57lYsFekF;W zGwevJ+oO_oRrT*eGoo!IvvrCi#z$F4nIC!$EXIs^@)57-b9D!nT4xG>luK$!yU`%w z8vz}F1SupkPtb8Ig#p+ATgp7zzvZfV+l25+= zZ1ECPGn;mFNRSU5lex!_RQm%|LDt>*n)F@8xFlCy0eYMdxPi4Z)eFm)=8)D9*ivL< zB8pHPnOhg*I$hAX=^^~-bh>-CVD>DKF0lO6d`Gdi>k8nblZ($fi0AYUdBT^F1Tn;p zKO85#2DXLi_ecWWps0}EZ_a?tppJtaFQ!5ZS^3c|Qmk77cy2S9a7k|oB$Wa)#?2;9E|#ps#oOoqRiT+f)Lo$n&fMdu>{qQ@sCExt3k>H`-tZ4F89Y2*TQ zS0JOV`u(z4gFT+iHYPX-oCm&lBug40s+!&eK4QCGWPeEem)@e4^{Iq7cU^V>45zQA z^%@nys0r!a{KnxtAJeFJ-Ck>E87u7%Y9X-EWZ-2m{?70IBB>W{Fi%OVKQUZNTiGZ% zCsts#e=rsTh*FI$*`xR+*_yxl(5}3>+$K7sRmN{j6HI+->*bM&MZ4fG>Ygp&Gqmv3 zHHm)xUBJw;vyBVpJ8?z9T=YT1D)a#gzH?v0G$-uhFT*Gw{7oIctiZ#VLd#+5+<%zD z4hQb{?)O;oS9PcBe&L&jNC4AqJQIL1AkgR83UNn@rY~A@F8Z-P^2M4=+B(B~+J%~lWpw_`;!UbpCm8>O#6B~6Xzs)E^Nu!+=AL_X zcJ2UhxI*!+P74qxfV0PBW>js}&d)a&1PGc2u4EbQmxD>jWQJv;=!0i^Jy1g)5!%IK zew<3IJo4{l@^ULDlPwjVIy*lBfhyrOBDsUW)!r2o@9QL{Om*TlM~{0%C{jrhT3@>gy}*lw`1 zWS{Pi1AyB?x=ul1Zza(tJZx2dcd1Pyqm$LF13ykc)}gf+K%zNzHNwmBfD^8|{ZJsKWci0-2csaCQU8ZKM{B27VZsaalq)(+kdQ?)61 zN=jM;8t`h_j73DBMSAc`HTGn>sIMU;b(9Gi7fCUy?rr0hX8EJUEe5R=8oQRe_+z*O z@Yoj(UpjYm(mH50uER%~4T!Rwa-@(3(t^Lg*48gfmPH>>-6-d0sZq0CCK&D5$>K-Z z!Ci+X1Y*6DC!17_6ir4{EJ6*J%vX{lqL@ZnAHLG8Tv%N0Q)qL}Vh98*ukg5~F=@1~ zt}=%wZ!g&s4FQ8b3DFNMm-h1<4A$}cd8<-CGh7c-`#L+NYQ^yM>vCz0=lc$@Zm6sp zudq+P8m4-Dm%yU6DJ{pG%%g@Mz|WWks#t7*ZO~?TcjX1>x<0!gVD|kg0;Rm>nEtj} zV=EqP`r3wuDdZ5t&*xp9D;f9KJdE0cK3e_E%|_twD&3EIWijpL8D{VW7_@LpyQj48 z5KZgddX4nGB|B)_siUR{^;xI}g1j?u4J~c$zf_2O_cjCgi?CdWc}?*RW6GKEq@eSQ zI1PTa+vJ~!-&}wDJWK+gWOj9_b2VosUN@rQy4=*=*%^3)XXqWt@NA+gJyFm^yiwS$ z=B!g*aCq=T?2Ahg<;~_`-JF+mgwc7!=Sjg7RErdsCesh(hVP0s{W2PsOD!{&8mz@W zzM=Ikza-#Du9LipSgMKSUV=EB$9bl)G*dkZ2Iv{N<`k(4Ap9i?`c);~H6;!dNgMiS zbBJ<~9^H+xt4$K%MHsO+0Xf*qiuxqShpN@QJ7Ux|PLoq@3KeB-cB}C4@Clxh^Tzwx z066OY@^#l|-I=h3g_TxP%egC&lwtYRtl!|^QmN8gO|!skQu@`>vlO|(t6x}&gaVyG zC1~lm;hc-sY|(vZVi(*%1qB-Sa_5}##R4s565`|%03=_iyJqwjB=Elh*TuCI literal 78653 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%0Al=G)Nbr~|C!Sv=jMSIlC^$P2xoBI&Yx?N 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 From 0474233e81a65a0436e1c8c2666fe249bfa7576c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 23:19:57 -0500 Subject: [PATCH 119/125] Automatic changelog generation for PR #3417 [ci skip] --- html/changelogs/AutoChangeLog-pr-3417.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3417.yml diff --git a/html/changelogs/AutoChangeLog-pr-3417.yml b/html/changelogs/AutoChangeLog-pr-3417.yml new file mode 100644 index 000000000000..f00e3b3d4845 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3417.yml @@ -0,0 +1,5 @@ +author: SomeguyManperson +changes: + - {balance: you no longer need a lasso to ride a goliath} + - {rscdel: no more lasso} +delete-after: true From 5cc6a00c472e4b5fc2ca041449677282f73bc97f Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Mon, 7 Oct 2024 00:04:47 -0400 Subject: [PATCH 120/125] Removes A Lot Of Cruft (#3447) ## About The Pull Request Removes the following: Swarmers Bloodcult Soulstones Everything Devils Meteor Gamemode Area/shuttle - [x] Compiles and runs on my local ## Why It's Good For The Game I'm fairly sure none of this stuff fits regardless of if it works with the game. And area/shuttle is annoying to see in sdmm. God I hate it when you start pulling one thing out and it's easier to just pull the rest out than to adjust it to work in the event that someone might use it for an event once. ## Changelog :cl: code: A large amount of cruft has been deleted. /:cl: --- .../RandomRuins/ReebeRuins/reebe_swarmers.dmm | 471 ------ .../shuttles/nanotrasen/nanotrasen_mimir.dmm | 169 +-- check_regex.yaml | 4 +- code/__DEFINES/atom_hud.dm | 30 +- code/__DEFINES/cinematics.dm | 2 - code/__DEFINES/cult.dm | 29 - code/__DEFINES/is_helpers.dm | 4 - code/__DEFINES/language.dm | 1 - code/__DEFINES/misc.dm | 5 - code/__DEFINES/mobs.dm | 4 - code/__DEFINES/preferences.dm | 1 - code/__DEFINES/role_preferences.dm | 4 - code/__DEFINES/status_effects.dm | 2 - code/__DEFINES/traits.dm | 4 - code/__HELPERS/areas.dm | 1 - code/__HELPERS/game.dm | 1 - code/_globalvars/game_modes.dm | 3 - code/_globalvars/lists/maintenance_loot.dm | 1 - code/_globalvars/lists/poll_ignore.dm | 2 - code/_onclick/hud/_defines.dm | 1 - code/_onclick/hud/alert.dm | 109 -- code/_onclick/hud/devil.dm | 69 - code/_onclick/hud/hud.dm | 2 - code/_onclick/hud/human.dm | 33 - code/_onclick/hud/swarmer.dm | 98 -- code/_onclick/other_mobs.dm | 8 - code/controllers/subsystem/shuttle.dm | 2 +- code/controllers/subsystem/ticker.dm | 6 - code/controllers/subsystem/traumas.dm | 14 +- code/datums/ai_laws.dm | 15 - code/datums/cinematic.dm | 52 - code/datums/components/soulstoned.dm | 33 - code/datums/hud.dm | 4 - code/datums/map_zones.dm | 2 +- code/datums/mind.dm | 20 +- .../mood_events/generic_positive_events.dm | 5 - code/datums/ruins/reebe.dm | 7 - code/datums/saymode.dm | 6 +- code/datums/status_effects/buffs.dm | 29 - code/datums/status_effects/debuffs.dm | 13 - code/game/alternate_appearance.dm | 28 - code/game/area/Space_Station_13_areas.dm | 1350 ----------------- code/game/area/areas.dm | 2 +- code/game/area/areas/shuttles.dm | 185 --- code/game/area/ship_areas.dm | 14 + code/game/atoms.dm | 60 - code/game/gamemodes/cult/cult.dm | 182 --- .../devil/devil_agent/devil_agent.dm | 44 - code/game/gamemodes/devil/devil_game_mode.dm | 106 -- code/game/gamemodes/devil/game_mode.dm | 26 - code/game/gamemodes/devil/objectives.dm | 113 -- .../gamemodes/dynamic/dynamic_rulesets.dm | 2 +- .../dynamic/dynamic_rulesets_roundstart.dm | 149 -- code/game/gamemodes/events.dm | 9 +- code/game/gamemodes/game_mode.dm | 3 - code/game/gamemodes/meteor/meteor.dm | 61 - code/game/gamemodes/objective.dm | 15 +- code/game/machinery/computer/arcade.dm | 1 - code/game/machinery/doors/airlock.dm | 20 - code/game/machinery/doors/airlock_types.dm | 109 -- code/game/machinery/drone_dispenser.dm | 22 - code/game/machinery/shieldgen.dm | 21 - code/game/machinery/syndicatebeacon.dm | 4 - code/game/objects/effects/blessing.dm | 7 - code/game/objects/effects/forcefields.dm | 8 - code/game/objects/items/AI_modules.dm | 2 +- code/game/objects/items/blueprints.dm | 1 - .../items/implants/implant_mindshield.dm | 5 +- code/game/objects/items/robot/robot_parts.dm | 1 - code/game/objects/items/shuttle_creator.dm | 1 - .../items/stacks/sheets/sheet_types.dm | 1 - code/game/objects/items/storage/belt.dm | 26 - .../game/objects/items/storage/uplink_kits.dm | 9 - code/game/objects/items/toys.dm | 25 - code/game/objects/structures/ai_core.dm | 1 - code/game/objects/structures/bedsheet_bin.dm | 2 +- .../objects/structures/door_assembly_types.dm | 14 - .../objects/structures/ghost_role_spawners.dm | 52 - code/game/objects/structures/girders.dm | 54 - code/game/turfs/closed/wall/misc_walls.dm | 12 - code/game/turfs/open/floor.dm | 5 - code/game/turfs/open/floor/reinf_floor.dm | 30 - code/modules/admin/admin.dm | 16 - code/modules/admin/fun_balloon.dm | 5 - code/modules/admin/sql_ban_system.dm | 4 +- code/modules/admin/topic.dm | 21 - code/modules/admin/verbs/one_click_antag.dm | 33 - code/modules/admin/verbs/pray.dm | 5 - code/modules/antagonists/borer/borer.dm | 4 - code/modules/antagonists/cult/blood_magic.dm | 803 ---------- code/modules/antagonists/cult/cult.dm | 397 ----- code/modules/antagonists/cult/cult_comms.dm | 461 ------ code/modules/antagonists/cult/cult_items.dm | 524 ------- .../antagonists/cult/cult_structures.dm | 288 ---- .../antagonists/cult/cult_turf_overlay.dm | 32 - .../antagonists/cult/rune_spawn_action.dm | 115 -- code/modules/antagonists/cult/runes.dm | 1029 ------------- code/modules/antagonists/devil/devil.dm | 506 ------ code/modules/antagonists/devil/imp/imp.dm | 68 - .../devil/sintouched/objectives.dm | 23 - .../devil/sintouched/sintouched.dm | 76 - .../devil/true_devil/_true_devil.dm | 221 --- .../antagonists/devil/true_devil/inventory.dm | 48 - .../antagonists/disease/disease_datum.dm | 10 - .../nukeop/equipment/nuclear_challenge.dm | 3 - .../nukeop/equipment/nuclearbomb.dm | 2 - .../revenant/revenant_abilities.dm | 2 +- code/modules/antagonists/swarmer/swarmer.dm | 677 --------- .../antagonists/swarmer/swarmer_event.dm | 28 - .../antagonists/wizard/equipment/soulstone.dm | 354 ----- .../antagonists/wizard/equipment/spellbook.dm | 12 - code/modules/asset_cache/asset_list_items.dm | 1 - .../awaymissions/mission_code/snowdin.dm | 6 - .../mission_code/stationCollision.dm | 155 -- code/modules/cargo/exports/lavaland.dm | 1 - code/modules/cargo/exports/parts.dm | 5 - code/modules/client/preferences.dm | 3 - code/modules/clothing/outfits/standard.dm | 7 - code/modules/clothing/shoes/miscellaneous.dm | 23 - code/modules/clothing/under/color.dm | 9 +- code/modules/events/devil.dm | 53 - code/modules/events/major_dust.dm | 19 - code/modules/events/meateor_wave.dm | 11 - code/modules/events/meteor_wave.dm | 76 - code/modules/language/language_holder.dm | 5 - code/modules/library/lib_codex_gigas.dm | 104 -- code/modules/mapping/writer.dm | 2 +- .../mining/lavaland/necropolis_chests.dm | 10 +- code/modules/mining/shelters.dm | 2 +- code/modules/mob/living/carbon/human/death.dm | 2 - .../mob/living/carbon/human/examine.dm | 2 - code/modules/mob/living/living.dm | 18 - code/modules/mob/living/living_defense.dm | 26 - code/modules/mob/living/silicon/laws.dm | 10 - code/modules/mob/living/silicon/login.dm | 2 - code/modules/mob/living/silicon/robot/laws.dm | 6 - code/modules/mob/living/silicon/silicon.dm | 24 - .../mob/living/simple_animal/constructs.dm | 497 ------ .../mob/living/simple_animal/friendly/dog.dm | 44 - .../hostile/megafauna/swarmer.dm | 285 ---- .../modules/mob/living/simple_animal/shade.dm | 66 - code/modules/mob/mob_helpers.dm | 3 - code/modules/mob/transform_procs.dm | 5 - code/modules/paperwork/contract.dm | 314 ---- code/modules/paperwork/photocopier.dm | 33 +- code/modules/power/singularity/narsie.dm | 238 --- .../chemistry/reagents/other_reagents.dm | 61 +- .../chemistry/recipes/pyrotechnics.dm | 10 - code/modules/recycling/conveyor2.dm | 4 +- code/modules/shuttle/shuttle.dm | 10 +- code/modules/shuttle/supply.dm | 167 -- code/modules/spells/spell.dm | 8 - .../spells/spell_types/construct_spells.dm | 327 ---- code/modules/spells/spell_types/devil.dm | 236 --- .../modules/spells/spell_types/devil_boons.dm | 76 - .../spell_types/pointed/mind_transfer.dm | 2 +- code/modules/spells/spell_types/shapeshift.dm | 3 +- code/modules/spells/spell_types/wizard.dm | 26 - code/modules/station_goals/shield.dm | 23 - code/modules/surgery/bodyparts/head.dm | 5 - code/modules/surgery/bodyparts/parts.dm | 29 - .../surgery/experimental_dissection.dm | 2 +- code/modules/surgery/organs/vocal_cords.dm | 26 +- code/modules/unit_tests/create_and_destroy.dm | 2 - code/modules/uplink/uplink_items.dm | 7 - shiptest.dme | 42 - 166 files changed, 167 insertions(+), 12781 deletions(-) delete mode 100644 _maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm delete mode 100644 code/__DEFINES/cult.dm delete mode 100644 code/_onclick/hud/devil.dm delete mode 100644 code/_onclick/hud/swarmer.dm delete mode 100644 code/datums/components/soulstoned.dm delete mode 100644 code/game/area/Space_Station_13_areas.dm delete mode 100644 code/game/area/areas/shuttles.dm delete mode 100644 code/game/gamemodes/cult/cult.dm delete mode 100644 code/game/gamemodes/devil/devil_agent/devil_agent.dm delete mode 100644 code/game/gamemodes/devil/devil_game_mode.dm delete mode 100644 code/game/gamemodes/devil/game_mode.dm delete mode 100644 code/game/gamemodes/devil/objectives.dm delete mode 100644 code/game/gamemodes/meteor/meteor.dm delete mode 100644 code/modules/antagonists/cult/blood_magic.dm delete mode 100644 code/modules/antagonists/cult/cult.dm delete mode 100644 code/modules/antagonists/cult/cult_comms.dm delete mode 100644 code/modules/antagonists/cult/cult_items.dm delete mode 100644 code/modules/antagonists/cult/cult_structures.dm delete mode 100644 code/modules/antagonists/cult/cult_turf_overlay.dm delete mode 100644 code/modules/antagonists/cult/rune_spawn_action.dm delete mode 100644 code/modules/antagonists/cult/runes.dm delete mode 100644 code/modules/antagonists/devil/devil.dm delete mode 100644 code/modules/antagonists/devil/imp/imp.dm delete mode 100644 code/modules/antagonists/devil/sintouched/objectives.dm delete mode 100644 code/modules/antagonists/devil/sintouched/sintouched.dm delete mode 100644 code/modules/antagonists/devil/true_devil/_true_devil.dm delete mode 100644 code/modules/antagonists/devil/true_devil/inventory.dm delete mode 100644 code/modules/antagonists/swarmer/swarmer.dm delete mode 100644 code/modules/antagonists/swarmer/swarmer_event.dm delete mode 100644 code/modules/antagonists/wizard/equipment/soulstone.dm delete mode 100644 code/modules/awaymissions/mission_code/stationCollision.dm delete mode 100644 code/modules/events/devil.dm delete mode 100644 code/modules/events/major_dust.dm delete mode 100644 code/modules/events/meateor_wave.dm delete mode 100644 code/modules/events/meteor_wave.dm delete mode 100644 code/modules/library/lib_codex_gigas.dm delete mode 100644 code/modules/mob/living/simple_animal/constructs.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm delete mode 100644 code/modules/mob/living/simple_animal/shade.dm delete mode 100644 code/modules/power/singularity/narsie.dm delete mode 100644 code/modules/spells/spell_types/construct_spells.dm delete mode 100644 code/modules/spells/spell_types/devil.dm delete mode 100644 code/modules/spells/spell_types/devil_boons.dm diff --git a/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm b/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm deleted file mode 100644 index 7c864f829fda..000000000000 --- a/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm +++ /dev/null @@ -1,471 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/template_noop, -/area/template_noop) -"t" = ( -/turf/open/floor/grass/fairy/reebe, -/area/overmap_encounter/planetoid/reebe) -"u" = ( -/obj/structure/flora/tree/jungle{ - icon = 'icons/obj/flora/chapeltree.dmi'; - icon_state = "churchtree"; - pixel_x = -16; - pixel_y = 0 - }, -/turf/open/floor/grass/fairy/reebe, -/area/overmap_encounter/planetoid/reebe) -"x" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/crystal, -/turf/open/floor/grass/fairy/reebe, -/area/overmap_encounter/planetoid/reebe) -"N" = ( -/turf/closed/mineral/random/reebe, -/area/ruin/reebe) -"R" = ( -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon, -/turf/open/floor/grass/fairy/reebe, -/area/ruin/reebe) -"X" = ( -/turf/closed/mineral/random/reebe, -/area/overmap_encounter/planetoid/reebe) - -(1,1,1) = {" -a -a -a -a -a -a -a -a -t -t -t -a -a -a -a -a -a -a -a -a -"} -(2,1,1) = {" -a -a -t -t -t -t -a -a -N -u -t -t -N -N -t -t -t -t -a -a -"} -(3,1,1) = {" -a -t -N -t -N -x -t -t -t -N -N -t -t -t -t -N -N -t -a -a -"} -(4,1,1) = {" -a -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -a -"} -(5,1,1) = {" -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -u -a -a -"} -(6,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -t -t -a -"} -(7,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(8,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(9,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(10,1,1) = {" -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(11,1,1) = {" -t -u -t -N -N -N -N -N -N -R -N -N -N -N -N -N -N -t -t -a -"} -(12,1,1) = {" -t -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(13,1,1) = {" -t -N -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -t -a -"} -(14,1,1) = {" -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -a -"} -(15,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -t -a -"} -(16,1,1) = {" -t -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(17,1,1) = {" -t -t -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(18,1,1) = {" -a -a -a -t -N -N -N -N -N -N -N -t -t -t -t -N -N -t -t -a -"} -(19,1,1) = {" -a -a -a -t -t -t -t -t -t -t -t -t -N -X -u -t -t -t -a -a -"} -(20,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -t -t -t -a -a -a -a -a -"} diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 716d68f653a9..7791494023f4 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -2314,20 +2314,6 @@ /obj/item/reagent_containers/food/snacks/urinalcake, /turf/open/floor/plasteel/white, /area/ship/crew/toilet) -"nb" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 8 - }, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 4 - }, -/obj/item/flashlight/lamp{ - pixel_y = 13 - }, -/obj/item/book/codex_gigas, -/turf/open/floor/wood, -/area/ship/crew/dorm) "nh" = ( /turf/closed/wall/r_wall, /area/ship/crew/dorm/dormtwo) @@ -2804,32 +2790,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/ship/crew/hydroponics) -"qe" = ( -/obj/structure/closet/secure_closet/freezer{ - name = "Refrigerator"; - desc = "A refrigerated cabinet for food." - }, -/obj/effect/turf_decal/siding/wideplating/light/end{ - dir = 4 - }, -/obj/item/storage/fancy/egg_box, -/obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/sugar, -/obj/item/reagent_containers/condiment/sugar, -/obj/item/reagent_containers/condiment/rice, -/obj/item/reagent_containers/food/snacks/tofu, -/obj/item/reagent_containers/food/snacks/tofu, -/turf/open/floor/plasteel/mono/white, -/area/ship/crew/canteen/kitchen) "qh" = ( /obj/machinery/hydroponics/constructable{ pixel_y = 8 @@ -3876,27 +3836,6 @@ /obj/structure/table, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) -"xb" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/sugar{ - pixel_y = 4 - }, -/obj/item/reagent_containers/condiment/rice{ - pixel_y = 10; - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/mono/white, -/area/ship/crew/canteen/kitchen) "xc" = ( /obj/effect/turf_decal/siding/wood/end{ dir = 8 @@ -4100,10 +4039,6 @@ "ys" = ( /turf/closed/wall/r_wall, /area/ship/crew/dorm) -"yu" = ( -/obj/item/clothing/mask/gas/monkeymask, -/turf/open/floor/plating, -/area/ship/maintenance/fore) "yw" = ( /obj/effect/decal/cleanable/food/tomato_smudge, /obj/effect/turf_decal/siding/wood{ @@ -4460,21 +4395,6 @@ }, /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/starboard) -"AH" = ( -/obj/structure/table, -/obj/item/toy/figure/chef, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_y = 10; - pixel_x = -7 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 8; - pixel_y = 9 - }, -/turf/open/floor/plasteel/mono/white, -/area/ship/crew/canteen/kitchen) "AI" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer4{ dir = 6 @@ -4567,6 +4487,19 @@ }, /turf/open/floor/plasteel, /area/ship/security/prison) +"Bf" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced/tinted/frosted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted/frosted{ + dir = 4 + }, +/obj/item/flashlight/lamp{ + pixel_y = 13 + }, +/turf/open/floor/wood, +/area/ship/crew/dorm) "Bi" = ( /obj/structure/cable{ icon_state = "1-2" @@ -4921,6 +4854,27 @@ /obj/effect/spawner/lootdrop/ration, /turf/open/floor/plasteel, /area/ship/security/prison) +"Dj" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/sugar{ + pixel_y = 4 + }, +/obj/item/reagent_containers/condiment/rice{ + pixel_y = 10; + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/mono/white, +/area/ship/crew/canteen/kitchen) "Dm" = ( /obj/structure/window/reinforced/spawner{ dir = 1 @@ -5863,6 +5817,21 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/plasteel, /area/ship/security/prison) +"Ie" = ( +/obj/structure/table, +/obj/item/toy/figure/chef, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_y = 10; + pixel_x = -7 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 8; + pixel_y = 9 + }, +/turf/open/floor/plasteel/mono/white, +/area/ship/crew/canteen/kitchen) "Ig" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "quickpoint_shut"; @@ -6210,6 +6179,10 @@ }, /turf/open/floor/plasteel, /area/ship/security) +"Kc" = ( +/obj/item/clothing/mask/gas/monkeymask, +/turf/open/floor/plating, +/area/ship/maintenance/fore) "Kg" = ( /obj/effect/turf_decal/siding/red{ dir = 8 @@ -8459,6 +8432,32 @@ }, /turf/open/floor/wood, /area/ship/crew/dorm/dormfour) +"Xf" = ( +/obj/structure/closet/secure_closet/freezer{ + name = "Refrigerator"; + desc = "A refrigerated cabinet for food." + }, +/obj/effect/turf_decal/siding/wideplating/light/end{ + dir = 4 + }, +/obj/item/storage/fancy/egg_box, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/food/snacks/tofu, +/obj/item/reagent_containers/food/snacks/tofu, +/turf/open/floor/plasteel/mono/white, +/area/ship/crew/canteen/kitchen) "Xg" = ( /obj/machinery/door/window{ dir = 4 @@ -9144,7 +9143,7 @@ Mv Lu rq Hm -nb +Bf dJ VG oM @@ -9550,8 +9549,8 @@ PP td VK Fg -AH -xb +Ie +Dj nR zq mU @@ -9674,7 +9673,7 @@ pe Rr KQ wa -qe +Xf Ad gZ eF @@ -10356,7 +10355,7 @@ oI VU Dy nh -yu +Kc nK jY jY diff --git a/check_regex.yaml b/check_regex.yaml index 41174bd9aa22..a56bd83644d3 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -29,7 +29,7 @@ standards: - exactly: [1, "/area text paths", '"/area'] - exactly: [17, "/datum text paths", '"/datum'] - exactly: [4, "/mob text paths", '"/mob'] - - exactly: [42, "/obj text paths", '"/obj'] + - exactly: [36, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - exactly: [115, "text2path uses", "text2path"] @@ -38,7 +38,7 @@ standards: - exactly: [ - 262, + 261, "non-bitwise << uses", '(?[souls]" - switch(souls) - if(0,null) - icon_state = "Devil-1" - if(1,2) - icon_state = "Devil-2" - if(3 to 5) - icon_state = "Devil-3" - if(6 to 8) - icon_state = "Devil-4" - if(9 to INFINITY) - icon_state = "Devil-5" - else - icon_state = "Devil-6" - -/atom/movable/screen/devil/soul_counter/proc/clear() - invisibility = INVISIBILITY_ABSTRACT - /atom/movable/screen/ling icon = 'icons/hud/screen_changeling.dmi' invisibility = INVISIBILITY_ABSTRACT @@ -338,10 +309,6 @@ lingstingdisplay.hud = src infodisplay += lingstingdisplay - devilsouldisplay = new /atom/movable/screen/devil/soul_counter - devilsouldisplay.hud = src - infodisplay += devilsouldisplay - zone_select = new /atom/movable/screen/zone_sel() zone_select.icon = ui_style zone_select.hud = src diff --git a/code/_onclick/hud/swarmer.dm b/code/_onclick/hud/swarmer.dm deleted file mode 100644 index 6aba23fab5c7..000000000000 --- a/code/_onclick/hud/swarmer.dm +++ /dev/null @@ -1,98 +0,0 @@ - - -/atom/movable/screen/swarmer - icon = 'icons/mob/swarmer.dmi' - -/atom/movable/screen/swarmer/FabricateTrap - icon_state = "ui_trap" - name = "Create trap (Costs 5 Resources)" - desc = "Creates a trap that will nonlethally shock any non-swarmer that attempts to cross it. (Costs 5 resources)" - -/atom/movable/screen/swarmer/FabricateTrap/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.CreateTrap() - -/atom/movable/screen/swarmer/Barricade - icon_state = "ui_barricade" - name = "Create barricade (Costs 5 Resources)" - desc = "Creates a destructible barricade that will stop any non swarmer from passing it. Also allows disabler beams to pass through. (Costs 5 resources)" - -/atom/movable/screen/swarmer/Barricade/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.CreateBarricade() - -/atom/movable/screen/swarmer/Replicate - icon_state = "ui_replicate" - name = "Replicate (Costs 50 Resources)" - desc = "Creates another of our kind." - -/atom/movable/screen/swarmer/Replicate/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.CreateSwarmer() - -/atom/movable/screen/swarmer/RepairSelf - icon_state = "ui_self_repair" - name = "Repair self" - desc = "Repairs damage to our body." - -/atom/movable/screen/swarmer/RepairSelf/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.RepairSelf() - -/atom/movable/screen/swarmer/ToggleLight - icon_state = "ui_light" - name = "Toggle light" - desc = "Toggles our inbuilt light on or off." - -/atom/movable/screen/swarmer/ToggleLight/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.ToggleLight() - -/atom/movable/screen/swarmer/ContactSwarmers - icon_state = "ui_contact_swarmers" - name = "Contact swarmers" - desc = "Sends a message to all other swarmers, should they exist." - -/atom/movable/screen/swarmer/ContactSwarmers/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.ContactSwarmers() - -/datum/hud/swarmer/New(mob/owner) - ..() - var/atom/movable/screen/using - - using = new /atom/movable/screen/swarmer/FabricateTrap() - using.screen_loc = ui_hand_position(2) - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/Barricade() - using.screen_loc = ui_hand_position(1) - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/Replicate() - using.screen_loc = ui_zonesel - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/RepairSelf() - using.screen_loc = ui_storage1 - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/ToggleLight() - using.screen_loc = ui_back - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/ContactSwarmers() - using.screen_loc = ui_inventory - using.hud = src - static_inventory += using diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 806e3e6df328..8e848963567e 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -177,14 +177,6 @@ /atom/proc/attack_drone(mob/living/simple_animal/drone/user) attack_hand(user) //defaults to attack_hand. Override it when you don't want drones to do same stuff as humans. - -/* - True Devil -*/ - -/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity) - A.attack_hand(src) - /* Brain */ diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index f56fd9e73ab9..552ce70453dd 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -150,7 +150,7 @@ SUBSYSTEM_DEF(shuttle) mapzone.parallax_movedir = travel_dir - var/area/shuttle/transit/transit_area = new() + var/area/hyperspace/transit_area = new() vlevel.fill_in(transit_path, transit_area) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index a635a3d6389e..5ca963c53472 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -442,12 +442,6 @@ SUBSYSTEM_DEF(ticker) news_message = "[station_name()] has been evacuated after transmitting the following distress beacon:\n\n[emergency_reason]" else news_message = "The crew of [station_name()] has been evacuated amid unconfirmed reports of enemy activity." - if(CULT_ESCAPE) - news_message = "Security Alert: A group of religious fanatics have escaped from [station_name()]." - if(CULT_FAILURE) - news_message = "Following the dismantling of a restricted cult aboard [station_name()], we would like to remind all employees that worship outside of the Chapel is strictly prohibited, and cause for termination." - if(CULT_SUMMON) - news_message = "Company officials would like to clarify that [station_name()] was scheduled to be decommissioned following meteor damage earlier this year. Earlier reports of an unknowable eldritch horror were made in error." if(NUKE_MISS) news_message = "The Syndicate have bungled a terrorist attack [station_name()], detonating a nuclear weapon in empty space nearby." if(OPERATIVES_KILLED) diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index e98956775698..9688f008ffba 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -44,10 +44,9 @@ SUBSYSTEM_DEF(traumas) "skeletons" = typecacheof(list(/mob/living/simple_animal/hostile/human/skeleton)), "snakes" = typecacheof(list(/mob/living/simple_animal/hostile/retaliate/poison/snake)), "robots" = typecacheof(list(/mob/living/silicon/robot, /mob/living/silicon/ai, - /mob/living/simple_animal/drone, /mob/living/simple_animal/bot, /mob/living/simple_animal/hostile/swarmer)), + /mob/living/simple_animal/drone, /mob/living/simple_animal/bot)), "doctors" = typecacheof(list(/mob/living/simple_animal/bot/medbot)), - "the supernatural" = typecacheof(list(/mob/living/simple_animal/hostile/construct, - /mob/living/simple_animal/revenant, /mob/living/simple_animal/shade)), + "the supernatural" = typecacheof(list(/mob/living/simple_animal/revenant)), "aliens" = typecacheof(list(/mob/living/carbon/alien, /mob/living/simple_animal/slime, /mob/living/simple_animal/hostile/facehugger)), "conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/drone, /mob/living/simple_animal/pet/penguin)), @@ -104,7 +103,7 @@ SUBSYSTEM_DEF(traumas) "robots" = typecacheof(list( /obj/machinery/computer/upload, /obj/item/aiModule/, /obj/machinery/recharge_station, - /obj/item/aicard, /obj/item/deactivated_swarmer, /obj/effect/mob_spawn/swarmer)), + /obj/item/aicard)), "doctors" = typecacheof(list( /obj/item/clothing/under/rank/medical, @@ -124,11 +123,6 @@ SUBSYSTEM_DEF(traumas) /obj/item/card/id/captains_spare, /obj/item/card/id/centcom, /obj/machinery/door/airlock/command)), "the supernatural" = typecacheof(list( - /obj/structure/destructible/cult, /obj/item/tome, - /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult, - /obj/effect/rune, - /obj/machinery/door/airlock/cult, /obj/singularity/narsie, - /obj/item/soulstone, /obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff, /obj/item/clothing/suit/space/hardsuit/shielded/wizard, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/clothing/under/rank/civilian/chaplain)), @@ -160,7 +154,7 @@ SUBSYSTEM_DEF(traumas) phobia_turfs = list( "space" = typecacheof(list(/turf/open/space, /turf/open/floor/holofloor/space, /turf/open/floor/fakespace)), - "the supernatural" = typecacheof(list(/turf/open/floor/plasteel/cult, /turf/closed/wall/mineral/cult)), + "the supernatural" = typecacheof(/turf/closed/wall/mineral/cult, /turf/open/floor/plasteel/cult), "aliens" = typecacheof(list( /turf/open/floor/plating/abductor, /turf/open/floor/plating/abductor2, /turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor)), diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index d2b499de92ed..acaa03d3ff7a 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -1,4 +1,3 @@ -#define LAW_DEVIL "devil" #define LAW_ZEROTH "zeroth" #define LAW_INHERENT "inherent" #define LAW_SUPPLIED "supplied" @@ -15,7 +14,6 @@ var/list/ion = list() var/list/hacked = list() var/mob/living/silicon/owner - var/list/devillaws = list() var/id = DEFAULT_AI_LAWID /datum/ai_laws/Destroy(force, ...) @@ -281,8 +279,6 @@ /datum/ai_laws/proc/get_law_amount(groups) var/law_amount = 0 - if(devillaws && (LAW_DEVIL in groups)) - law_amount++ if(zeroth && (LAW_ZEROTH in groups)) law_amount++ if(ion.len && (LAW_ION in groups)) @@ -298,9 +294,6 @@ law_amount++ return law_amount -/datum/ai_laws/proc/set_law_sixsixsix(laws) - devillaws = laws - /datum/ai_laws/proc/set_zeroth_law(law, law_borg = null) zeroth = law if(law_borg) //Making it possible for slaved borgs to see a different law 0 than their AI. --NEO @@ -437,10 +430,6 @@ zeroth = null zeroth_borg = null -/datum/ai_laws/proc/clear_law_sixsixsix(force) - if(force || !is_devil(owner)) - devillaws = null - /datum/ai_laws/proc/associate(mob/living/silicon/M) if(!owner) owner = M @@ -456,10 +445,6 @@ /datum/ai_laws/proc/get_law_list(include_zeroth = FALSE, show_numbers = TRUE, render_html = TRUE) var/list/data = list() - if (include_zeroth && devillaws) - for(var/law in devillaws) - data += "[show_numbers ? "666:" : ""] [render_html ? "[law]" : law]" - if (include_zeroth && zeroth) data += "[show_numbers ? "0:" : ""] [render_html ? "[zeroth]" : zeroth]" diff --git a/code/datums/cinematic.dm b/code/datums/cinematic.dm index 7711092b9778..9529cd19567a 100644 --- a/code/datums/cinematic.dm +++ b/code/datums/cinematic.dm @@ -182,47 +182,6 @@ special() screen.icon_state = "summary_malf" -/datum/cinematic/cult - id = CINEMATIC_CULT - -/datum/cinematic/cult/content() - screen.icon_state = null - flick("intro_cult",screen) - sleep(25) - cinematic_sound(sound('sound/magic/enter_blood.ogg')) - sleep(28) - cinematic_sound(sound('sound/machines/terminal_off.ogg')) - sleep(20) - flick("station_corrupted",screen) - cinematic_sound(sound('sound/effects/ghost.ogg')) - sleep(70) - special() - -/datum/cinematic/cult_nuke - id = CINEMATIC_CULT_NUKE - -/datum/cinematic/cult_nuke/content() - flick("intro_nuke",screen) - sleep(35) - flick("station_explode_fade_red",screen) - cinematic_sound(sound('sound/effects/explosion_distant.ogg')) - special() - screen.icon_state = "summary_cult" - -/datum/cinematic/cult_fail - id = CINEMATIC_CULT_FAIL - -/datum/cinematic/cult_fail/content() - screen.icon_state = "station_intact" - sleep(20) - cinematic_sound(sound('sound/creatures/narsie_rises.ogg')) - sleep(60) - cinematic_sound(sound('sound/effects/explosion_distant.ogg')) - sleep(10) - cinematic_sound(sound('sound/magic/demon_dies.ogg')) - sleep(30) - special() - /datum/cinematic/nuke_annihilation id = CINEMATIC_ANNIHILATION @@ -274,14 +233,3 @@ cinematic_sound(sound('sound/items/airhorn.ogg')) flick("summary_selfdes",screen) //??? special() - -/* Intended usage. -Nuke.Explosion() - -> Cinematic(NUKE_BOOM,world) - -> ActualExplosion() - -> Mode.OnExplosion() - - -Narsie() - -> Cinematic(CULT,world) -*/ diff --git a/code/datums/components/soulstoned.dm b/code/datums/components/soulstoned.dm deleted file mode 100644 index 04e514062879..000000000000 --- a/code/datums/components/soulstoned.dm +++ /dev/null @@ -1,33 +0,0 @@ -//adds godmode while in the container, prevents moving, and clears these effects up after leaving the stone -/datum/component/soulstoned - var/atom/movable/container - -/datum/component/soulstoned/Initialize(atom/movable/container) - if(!isanimal(parent)) - return COMPONENT_INCOMPATIBLE - var/mob/living/simple_animal/S = parent - - src.container = container - - S.forceMove(container) - - S.status_flags |= GODMODE - ADD_TRAIT(S, TRAIT_IMMOBILIZED, SOULSTONE_TRAIT) - ADD_TRAIT(S, TRAIT_HANDS_BLOCKED, SOULSTONE_TRAIT) - S.health = S.maxHealth - S.bruteloss = 0 - - RegisterSignal(S, COMSIG_MOVABLE_MOVED, PROC_REF(free_prisoner)) - -/datum/component/soulstoned/proc/free_prisoner() - SIGNAL_HANDLER - - var/mob/living/simple_animal/S = parent - if(S.loc != container) - qdel(src) - -/datum/component/soulstoned/UnregisterFromParent() - var/mob/living/simple_animal/S = parent - S.status_flags &= ~GODMODE - REMOVE_TRAIT(S, TRAIT_IMMOBILIZED, SOULSTONE_TRAIT) - REMOVE_TRAIT(S, TRAIT_HANDS_BLOCKED, SOULSTONE_TRAIT) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 24865387794a..4703a31ea0f8 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -14,7 +14,6 @@ GLOBAL_LIST_INIT(huds, list( DATA_HUD_SENTIENT_DISEASE = new/datum/atom_hud/sentient_disease(), DATA_HUD_AI_DETECT = new/datum/atom_hud/ai_detector(), DATA_HUD_FAN = new/datum/atom_hud/data/human/fan_hud(), - ANTAG_HUD_CULT = new/datum/atom_hud/antag(), ANTAG_HUD_REV = new/datum/atom_hud/antag(), ANTAG_HUD_OPS = new/datum/atom_hud/antag(), ANTAG_HUD_WIZ = new/datum/atom_hud/antag(), @@ -23,9 +22,6 @@ GLOBAL_LIST_INIT(huds, list( ANTAG_HUD_NINJA = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(), - ANTAG_HUD_DEVIL = new/datum/atom_hud/antag(), - ANTAG_HUD_SINTOUCHED = new/datum/atom_hud/antag/hidden(), - ANTAG_HUD_SOULLESS = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_BROTHER = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_OBSESSED = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_FUGITIVE = new/datum/atom_hud/antag(), diff --git a/code/datums/map_zones.dm b/code/datums/map_zones.dm index c4e304fb5394..bf103242c8db 100644 --- a/code/datums/map_zones.dm +++ b/code/datums/map_zones.dm @@ -637,7 +637,7 @@ var/ty = destination_y var/turf/DT = locate(tx, ty, destination_z) var/itercount = 0 - while(DT.density || istype(DT.loc,/area/shuttle)) // Extend towards the center of the map, trying to look for a better place to arrive + while(DT.density) // Extend towards the center of the map, trying to look for a better place to arrive if (itercount++ >= 100) log_game("SPACE Z-TRANSIT ERROR: Could not find a safe place to land [arrived] within 100 iterations.") break diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 96ca4b12d8b4..ea9f6918706b 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -345,12 +345,6 @@ remove_antag_datum(/datum/antagonist/wizard) special_role = null -/datum/mind/proc/remove_cultist() - if(src in SSticker.mode.cult) - SSticker.mode.remove_cultist(src, 0, 0) - special_role = null - remove_antag_equip() - /datum/mind/proc/remove_antag_equip() var/list/Mob_Contents = current.get_contents() for(var/obj/item/I in Mob_Contents) @@ -363,7 +357,6 @@ remove_traitor() remove_nukeop() remove_wizard() - remove_cultist() /datum/mind/proc/equip_traitor(employer = "The Syndicate", silent = FALSE, datum/antagonist/uplink_owner) if(!current) @@ -436,10 +429,7 @@ //Link a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does. /datum/mind/proc/enslave_mind_to_creator(mob/living/creator) - if(iscultist(creator)) - SSticker.mode.add_cultist(src) - - else if(is_nuclear_operative(creator)) + if(is_nuclear_operative(creator)) var/datum/antagonist/nukeop/converter = creator.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE) var/datum/antagonist/nukeop/N = new() N.send_to_spawnpoint = FALSE @@ -708,14 +698,6 @@ assigned_role = ROLE_WIZARD add_antag_datum(/datum/antagonist/wizard) - -/datum/mind/proc/make_Cultist() - if(!has_antag_datum(/datum/antagonist/cult,TRUE)) - SSticker.mode.add_cultist(src,FALSE,equip=TRUE) - special_role = ROLE_CULTIST - to_chat(current, "You catch a glimpse of the Realm of Nar'Sie, The Geometer of Blood. You now see how flimsy your world is, you see that it should be open to the knowledge of Nar'Sie.") - to_chat(current, "Assist your new brethren in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.") - /datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/S) spell_list += S S.action.Grant(current) diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index f9e339c3c081..1ab201bc0186 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -96,11 +96,6 @@ mood_change = 3 hidden = TRUE -/datum/mood_event/cult - description = "I have seen the truth, praise the almighty one!\n" - mood_change = 10 //maybe being a cultist isnt that bad after all - hidden = TRUE - /datum/mood_event/family_heirloom description = "My family heirloom is safe with me.\n" mood_change = 1 diff --git a/code/datums/ruins/reebe.dm b/code/datums/ruins/reebe.dm index bec9986d75b8..d1a9de3e024f 100644 --- a/code/datums/ruins/reebe.dm +++ b/code/datums/ruins/reebe.dm @@ -11,13 +11,6 @@ suffix = "reebe_arena.dmm" ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_LIVEABLE) -/datum/map_template/ruin/reebe/swarmers - name = "Swarmer Island" - id = "swarmers" - description = "Looks like someone has occupied Reebe in the cultists' absence." - suffix = "reebe_swarmers.dmm" - ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_LIVEABLE) - /datum/map_template/ruin/reebe/island name = "Island Cache" id = "islandcache" diff --git a/code/datums/saymode.dm b/code/datums/saymode.dm index 848940d4e9d9..708a81107313 100644 --- a/code/datums/saymode.dm +++ b/code/datums/saymode.dm @@ -95,15 +95,11 @@ return FALSE -/datum/saymode/binary //everything that uses .b (silicons, drones, swarmers) +/datum/saymode/binary //everything that uses .b (silicons, drones) key = MODE_KEY_BINARY mode = MODE_BINARY /datum/saymode/binary/handle_message(mob/living/user, message, datum/language/language) - if(isswarmer(user)) - var/mob/living/simple_animal/hostile/swarmer/S = user - S.swarmer_chat(message) - return FALSE if(isdrone(user)) var/mob/living/simple_animal/drone/D = user D.drone_chat(message) diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 43c7bd3ab2ec..62b5a1827de7 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -85,35 +85,6 @@ desc = "You are being resurrected!" icon_state = "wish_granter" -/datum/status_effect/cult_master - id = "The Cult Master" - duration = -1 - alert_type = null - on_remove_on_mob_delete = TRUE - var/alive = TRUE - -/datum/status_effect/cult_master/proc/deathrattle() - if(!QDELETED(GLOB.cult_narsie)) - return //if Nar'Sie is alive, don't even worry about it - var/area/A = get_area(owner) - for(var/datum/mind/B in SSticker.mode.cult) - if(isliving(B.current)) - var/mob/living/M = B.current - SEND_SOUND(M, sound('sound/hallucinations/veryfar_noise.ogg')) - to_chat(M, "The Cult's Master, [owner], has fallen in \the [A]!") - -/datum/status_effect/cult_master/tick() - if(owner.stat != DEAD && !alive) - alive = TRUE - return - if(owner.stat == DEAD && alive) - alive = FALSE - deathrattle() - -/datum/status_effect/cult_master/on_remove() - deathrattle() - . = ..() - /datum/status_effect/blooddrunk id = "blooddrunk" duration = 10 diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 17e2208cdebe..6d803d98ec47 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -253,19 +253,6 @@ /datum/status_effect/pacify/on_remove() REMOVE_TRAIT(owner, TRAIT_PACIFISM, "status_effect") -/datum/status_effect/cultghost //is a cult ghost and can't use manifest runes - id = "cult_ghost" - duration = -1 - alert_type = null - -/datum/status_effect/cultghost/on_apply() - owner.see_invisible = SEE_INVISIBLE_OBSERVER - owner.see_in_dark = 2 - -/datum/status_effect/cultghost/tick() - if(owner.reagents) - owner.reagents.del_reagent(/datum/reagent/water/holywater) //can't be deconverted - /datum/status_effect/crusher_mark id = "crusher_mark" duration = 300 //if you leave for 30 seconds you lose the mark, deal with it diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm index 96f09636fec3..873828d2c260 100644 --- a/code/game/alternate_appearance.dm +++ b/code/game/alternate_appearance.dm @@ -130,32 +130,6 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) /datum/atom_hud/alternate_appearance/basic/observers/mobShouldSee(mob/M) return isobserver(M) -/datum/atom_hud/alternate_appearance/basic/noncult - -/datum/atom_hud/alternate_appearance/basic/noncult/New() - ..() - for(var/mob in GLOB.player_list) - if(mobShouldSee(mob)) - add_hud_to(mob) - -/datum/atom_hud/alternate_appearance/basic/noncult/mobShouldSee(mob/M) - if(!iscultist(M)) - return TRUE - return FALSE - -/datum/atom_hud/alternate_appearance/basic/cult - -/datum/atom_hud/alternate_appearance/basic/cult/New() - ..() - for(var/mob in GLOB.player_list) - if(mobShouldSee(mob)) - add_hud_to(mob) - -/datum/atom_hud/alternate_appearance/basic/cult/mobShouldSee(mob/M) - if(iscultist(M)) - return TRUE - return FALSE - /datum/atom_hud/alternate_appearance/basic/blessedAware /datum/atom_hud/alternate_appearance/basic/blessedAware/New() @@ -167,8 +141,6 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) /datum/atom_hud/alternate_appearance/basic/blessedAware/mobShouldSee(mob/M) if(M.mind && (M.mind.assigned_role == "Chaplain")) return TRUE - if (istype(M, /mob/living/simple_animal/hostile/construct/wraith)) - return TRUE if(isrevenant(M) || iswizard(M)) return TRUE return FALSE diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm deleted file mode 100644 index 3fb4fcd5efeb..000000000000 --- a/code/game/area/Space_Station_13_areas.dm +++ /dev/null @@ -1,1350 +0,0 @@ -/* - -### This file contains a list of all the areas in your station. Format is as follows: - -/area/CATEGORY/OR/DESCRIPTOR/NAME (you can make as many subdivisions as you want) - name = "NICE NAME" (not required but makes things really nice) - icon = 'ICON FILENAME' (defaults to 'icons/turf/areas.dmi') - icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) - requires_power = FALSE (defaults to true) - ambientsounds = list() (defaults to GENERIC from sound.dm. override it as "ambientsounds = list('sound/ambience/signal.ogg')" or using another define. - -NOTE: there are two lists of areas in the end of this file: centcom and station itself. Please maintain these lists valid. --rastaf0 - -*/ - - -/*-----------------------------------------------------------------------------*/ - -/* Shiptest Begin - -/area/ai_monitored //stub defined ai_monitored.dm - -/area/ai_monitored/turret_protected - -/area/space - icon_state = "space" - requires_power = TRUE - always_unpowered = TRUE - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - power_light = FALSE - power_equip = FALSE - power_environ = FALSE - area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED - outdoors = TRUE - ambientsounds = SPACE - flags_1 = CAN_BE_DIRTY_1 - sound_environment = SOUND_AREA_SPACE - -/area/space/nearstation - icon_state = "space_near" - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT - -/area/start - name = "start area" - icon_state = "start" - requires_power = FALSE - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - has_gravity = STANDARD_GRAVITY - - -/area/testroom - requires_power = FALSE - name = "Test Room" - icon_state = "storage" - -//EXTRA - -/area/asteroid - name = "Asteroid" - icon_state = "asteroid" - requires_power = FALSE - has_gravity = STANDARD_GRAVITY - area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED - ambientsounds = MINING - flags_1 = CAN_BE_DIRTY_1 - sound_environment = SOUND_AREA_ASTEROID - -/area/asteroid/nearstation - dynamic_lighting = DYNAMIC_LIGHTING_FORCED - ambientsounds = RUINS - always_unpowered = FALSE - requires_power = TRUE - area_flags = UNIQUE_AREA - -/area/asteroid/nearstation/bomb_site - name = "Bomb Testing Asteroid" - -//STATION13 - -//Maintenance - -/area/maintenance - ambientsounds = MAINTENANCE - lighting_colour_tube = "#ffe5cb" - lighting_colour_bulb = "#ffdbb4" - area_flags = UNIQUE_AREA - sound_environment = SOUND_AREA_TUNNEL_ENCLOSED - -//Departments - -/area/maintenance/department/chapel - name = "Chapel Maintenance" - icon_state = "maint_chapel" - -/area/maintenance/department/chapel/monastery - name = "Monastery Maintenance" - icon_state = "maint_monastery" - -/area/maintenance/department/crew_quarters/bar - name = "Bar Maintenance" - icon_state = "maint_bar" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/maintenance/department/crew_quarters/dorms - name = "Dormitory Maintenance" - icon_state = "maint_dorms" - -/area/maintenance/department/eva - name = "EVA Maintenance" - icon_state = "maint_eva" - -/area/maintenance/department/electrical - name = "Electrical Maintenance" - icon_state = "maint_electrical" - -/area/maintenance/department/engine/atmos - name = "Atmospherics Maintenance" - icon_state = "maint_atmos" - -/area/maintenance/department/security - name = "Security Maintenance" - icon_state = "maint_sec" - -/area/maintenance/department/security/upper - name = "Upper Security Maintenance" - -/area/maintenance/department/security/brig - name = "Brig Maintenance" - icon_state = "maint_brig" - -/area/maintenance/department/medical - name = "Medbay Maintenance" - icon_state = "medbay_maint" - -/area/maintenance/department/medical/central - name = "Central Medbay Maintenance" - icon_state = "medbay_maint_central" - -/area/maintenance/department/medical/morgue - name = "Morgue Maintenance" - icon_state = "morgue_maint" - -/area/maintenance/department/science - name = "Science Maintenance" - icon_state = "maint_sci" - -/area/maintenance/department/science/central - name = "Central Science Maintenance" - icon_state = "maint_sci_central" - -/area/maintenance/department/cargo - name = "Cargo Maintenance" - icon_state = "maint_cargo" - -/area/maintenance/department/bridge - name = "Bridge Maintenance" - icon_state = "maint_bridge" - -/area/maintenance/department/engine - name = "Engineering Maintenance" - icon_state = "maint_engi" - -/area/maintenance/department/science/xenobiology - name = "Xenobiology Maintenance" - icon_state = "xenomaint" - area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE - - -//Maintenance - Generic - -/area/maintenance/aft - name = "Aft Maintenance" - icon_state = "amaint" - -/area/maintenance/aft/upper - name = "Upper Aft Maintenance" - -/area/maintenance/aft/secondary - name = "Aft Maintenance" - icon_state = "amaint_2" - -/area/maintenance/central - name = "Central Maintenance" - icon_state = "maintcentral" - -/area/maintenance/central/secondary - name = "Central Maintenance" - icon_state = "maintcentral" - -/area/maintenance/fore - name = "Fore Maintenance" - icon_state = "fmaint" - -/area/maintenance/fore/upper - name = "Upper Fore Maintenance" - -/area/maintenance/fore/secondary - name = "Fore Maintenance" - icon_state = "fmaint_2" - -/area/maintenance/starboard - name = "Starboard Maintenance" - icon_state = "smaint" - -/area/maintenance/starboard/upper - name = "Upper Starboard Maintenance" - -/area/maintenance/starboard/central - name = "Central Starboard Maintenance" - icon_state = "smaint" - -/area/maintenance/starboard/secondary - name = "Secondary Starboard Maintenance" - icon_state = "smaint_2" - -/area/maintenance/starboard/aft - name = "Starboard Quarter Maintenance" - icon_state = "asmaint" - -/area/maintenance/starboard/aft/secondary - name = "Secondary Starboard Quarter Maintenance" - icon_state = "asmaint_2" - -/area/maintenance/starboard/fore - name = "Starboard Bow Maintenance" - icon_state = "fsmaint" - -/area/maintenance/port - name = "Port Maintenance" - icon_state = "pmaint" - -/area/maintenance/port/central - name = "Central Port Maintenance" - icon_state = "maintcentral" - -/area/maintenance/port/aft - name = "Port Quarter Maintenance" - icon_state = "apmaint" - -/area/maintenance/port/fore - name = "Port Bow Maintenance" - icon_state = "fpmaint" - -/area/maintenance/disposal - name = "Waste Disposal" - icon_state = "disposal" - -/area/maintenance/disposal/incinerator - name = "Incinerator" - icon_state = "disposal" - - -//Hallway -/area/hallway - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/hallway - lighting_colour_tube = "#ffce99" - lighting_colour_bulb = "#ffdbb4" - lighting_brightness_tube = 7 - - -/area/hallway/primary/aft - name = "Aft Primary Hallway" - icon_state = "hallA" - -/area/hallway/primary/fore - name = "Fore Primary Hallway" - icon_state = "hallF" - -/area/hallway/primary/starboard - name = "Starboard Primary Hallway" - icon_state = "hallS" - -/area/hallway/primary/port - name = "Port Primary Hallway" - icon_state = "hallP" - -/area/hallway/primary/central - name = "Central Primary Hallway" - icon_state = "hallC" - -/area/hallway/primary/upper - name = "Upper Central Primary Hallway" - icon_state = "hallC" - - -/area/hallway/secondary/command - name = "Command Hallway" - icon_state = "bridge_hallway" - -/area/hallway/secondary/construction - name = "Construction Area" - icon_state = "construction" - -/area/hallway/secondary/exit - name = "Escape Shuttle Hallway" - icon_state = "escape" - -/area/hallway/secondary/exit/departure_lounge - name = "Departure Lounge" - icon_state = "escape_lounge" - -/area/hallway/secondary/entry - name = "Arrival Shuttle Hallway" - icon_state = "entry" - -/area/hallway/secondary/service - name = "Service Hallway" - icon_state = "hall_service" - -//Command - -/area/bridge - name = "Bridge" - icon_state = "bridge" - ambientsounds = list('sound/ambience/signal.ogg') - lighting_colour_tube = "#ffce99" - lighting_colour_bulb = "#ffdbb4" - lighting_brightness_tube = 6 - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/bridge/meeting_room - name = "Heads of Staff Meeting Room" - icon_state = "meeting" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/bridge/meeting_room/council - name = "Council Chamber" - icon_state = "meeting" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/bridge/showroom/corporate - name = "Corporate Showroom" - icon_state = "showroom" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/crew_quarters/heads/captain - name = "Captain's Office" - icon_state = "captain" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/heads/captain/private - name = "Captain's Quarters" - icon_state = "captain" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/heads/chief - name = "Chief Engineer's Office" - icon_state = "ce_office" - -/area/crew_quarters/heads/cmo - name = "Chief Medical Officer's Office" - icon_state = "cmo_office" - -/area/crew_quarters/heads/head_of_personnel - name = "Head of Personnel's Office" - icon_state = "hop_office" - -/area/crew_quarters/heads/hos - name = "Head of Security's Office" - icon_state = "hos_office" - -/area/crew_quarters/heads/hor - name = "Research Director's Office" - icon_state = "rd_office" - -/area/comms - name = "Communications Relay" - icon_state = "tcomsatcham" - lighting_colour_tube = "#e2feff" - lighting_colour_bulb = "#d5fcff" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/server - name = "Messaging Server Room" - icon_state = "server" - sound_environment = SOUND_AREA_STANDARD_STATION - -//Crew - -/area/crew_quarters - lighting_colour_tube = "#ffce99" - lighting_colour_bulb = "#ffdbb4" - lighting_brightness_tube = 6 - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/crew_quarters/dorms - name = "Dormitories" - icon_state = "Sleep" - area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA - -/area/crew_quarters/dorms/barracks - name = "Sleep Barracks" - -/area/crew_quarters/dorms/barracks/male - name = "Male Sleep Barracks" - -/area/crew_quarters/dorms/barracks/female - name = "Female Sleep Barracks" - -/area/crew_quarters/toilet - name = "Dormitory Toilets" - icon_state = "toilet" - lighting_colour_tube = "#e3ffff" - lighting_colour_bulb = "#d5ffff" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/crew_quarters/toilet/auxiliary - name = "Auxiliary Restrooms" - icon_state = "toilet" - -/area/crew_quarters/toilet/locker - name = "Locker Toilets" - icon_state = "toilet" - -/area/crew_quarters/toilet/restrooms - name = "Restrooms" - icon_state = "toilet" - -/area/crew_quarters/locker - name = "Locker Room" - icon_state = "locker" - -/area/crew_quarters/lounge - name = "Lounge" - icon_state = "yellow" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -/area/crew_quarters/fitness - name = "Fitness Room" - icon_state = "fitness" - -/area/crew_quarters/fitness/locker_room - name = "Unisex Locker Room" - icon_state = "fitness" - -/area/crew_quarters/fitness/locker_room/male - name = "Male Locker Room" - -/area/crew_quarters/fitness/locker_room/female - name = "Female Locker Room" - - -/area/crew_quarters/fitness/recreation - name = "Recreation Area" - icon_state = "fitness" - -/area/crew_quarters/cafeteria - name = "Cafeteria" - icon_state = "cafeteria" - -/area/crew_quarters/kitchen - name = "Kitchen" - icon_state = "kitchen" - lighting_colour_tube = "#e3ffff" - lighting_colour_bulb = "#d5ffff" - -/area/crew_quarters/kitchen/coldroom - name = "Kitchen Cold Room" - icon_state = "kitchen_cold" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/crew_quarters/bar - name = "Bar" - icon_state = "bar" - mood_bonus = 5 - mood_message = "I love being in the bar!\n" - lighting_colour_tube = "#fff4d6" - lighting_colour_bulb = "#ffebc1" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/bar/atrium - name = "Atrium" - icon_state = "bar" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/electronic_marketing_den - name = "Electronic Marketing Den" - icon_state = "bar" - -/area/crew_quarters/abandoned_gambling_den - name = "Abandoned Gambling Den" - icon_state = "abandoned_g_den" - -/area/crew_quarters/abandoned_gambling_den/secondary - icon_state = "abandoned_g_den_2" - -/area/crew_quarters/theatre - name = "Theatre" - icon_state = "Theatre" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/theatre/abandoned - name = "Abandoned Theatre" - icon_state = "Theatre" - -/area/library - name = "Library" - icon_state = "library" - flags_1 = CULT_PERMITTED_1 - lighting_colour_tube = "#ffce99" - lighting_colour_bulb = "#ffdbb4" - sound_environment = SOUND_AREA_LARGE_SOFTFLOOR - -/area/library/lounge - name = "Library Lounge" - icon_state = "library" - sound_environment = SOUND_AREA_LARGE_SOFTFLOOR - -/area/library/artgallery - name = " Art Gallery" - icon_state = "library" - -/area/library/private - name = "Library Private Study" - icon_state = "library" - -/area/library/upper - name = "Library Upper Floor" - icon_state = "library" - -/area/library/printer - name = "Library Printer Room" - icon_state = "library" - -/area/library/abandoned - name = "Abandoned Library" - icon_state = "library" - flags_1 = CULT_PERMITTED_1 - -/area/chapel - icon_state = "chapel" - ambientsounds = HOLY - flags_1 = NONE - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/chapel/main - name = "Chapel" - -/area/chapel/main/monastery - name = "Monastery" - -/area/chapel/office - name = "Chapel Office" - icon_state = "chapeloffice" - -/area/chapel/asteroid - name = "Chapel Asteroid" - icon_state = "explored" - sound_environment = SOUND_AREA_ASTEROID - -/area/chapel/asteroid/monastery - name = "Monastery Asteroid" - -/area/chapel/dock - name = "Chapel Dock" - icon_state = "construction" - -/area/lawoffice - name = "Law Office" - icon_state = "law" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - - -//Engineering - -/area/engine - ambientsounds = ENGINEERING - lighting_colour_tube = "#ffce93" - lighting_colour_bulb = "#ffbc6f" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/engine/engine_smes - name = "Engineering SMES" - icon_state = "engine_smes" - -/area/engine/engineering - name = "Engineering" - icon_state = "engine" - -/area/engine/atmos - name = "Atmospherics" - icon_state = "atmos" - flags_1 = CULT_PERMITTED_1 - -/area/engine/atmos/upper - name = "Upper Atmospherics" - -/area/engine/atmospherics_engine - name = "Atmospherics Engine" - icon_state = "atmos_engine" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/engine/engine_room //donut station specific - name = "Engine Room" - icon_state = "atmos_engine" - -/area/engine/lobby - name = "Engineering Lobby" - icon_state = "engi_lobby" - -/area/engine/engine_room/external - name = "Supermatter External Access" - icon_state = "engine_foyer" - -/area/engine/supermatter - name = "Supermatter Engine" - icon_state = "engine_sm" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/engine/break_room - name = "Engineering Foyer" - icon_state = "engine_foyer" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/engine/gravity_generator - name = "Gravity Generator Room" - icon_state = "grav_gen" - -/area/engine/storage - name = "Engineering Storage" - icon_state = "engi_storage" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/engine/storage_shared - name = "Shared Engineering Storage" - icon_state = "engi_storage" - -/area/engine/transit_tube - name = "Transit Tube" - icon_state = "transit_tube" - - -//Solars - -/area/solar - requires_power = FALSE - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT - area_flags = UNIQUE_AREA - flags_1 = NONE - ambientsounds = ENGINEERING - sound_environment = SOUND_AREA_SPACE - -/area/solar/fore - name = "Fore Solar Array" - icon_state = "yellow" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/solar/aft - name = "Aft Solar Array" - icon_state = "yellow" - -/area/solar/aux/port - name = "Port Bow Auxiliary Solar Array" - icon_state = "panelsA" - -/area/solar/aux/starboard - name = "Starboard Bow Auxiliary Solar Array" - icon_state = "panelsA" - -/area/solar/starboard - name = "Starboard Solar Array" - icon_state = "panelsS" - -/area/solar/starboard/aft - name = "Starboard Quarter Solar Array" - icon_state = "panelsAS" - -/area/solar/starboard/fore - name = "Starboard Bow Solar Array" - icon_state = "panelsFS" - -/area/solar/port - name = "Port Solar Array" - icon_state = "panelsP" - -/area/solar/port/aft - name = "Port Quarter Solar Array" - icon_state = "panelsAP" - -/area/solar/port/fore - name = "Port Bow Solar Array" - icon_state = "panelsFP" - -/area/solar/aisat - name = "AI Satellite Solars" - icon_state = "yellow" - - -//Solar Maint - -/area/maintenance/solars - name = "Solar Maintenance" - icon_state = "yellow" - -/area/maintenance/solars/port - name = "Port Solar Maintenance" - icon_state = "SolarcontrolP" - -/area/maintenance/solars/port/aft - name = "Port Quarter Solar Maintenance" - icon_state = "SolarcontrolAP" - -/area/maintenance/solars/port/fore - name = "Port Bow Solar Maintenance" - icon_state = "SolarcontrolFP" - -/area/maintenance/solars/starboard - name = "Starboard Solar Maintenance" - icon_state = "SolarcontrolS" - -/area/maintenance/solars/starboard/aft - name = "Starboard Quarter Solar Maintenance" - icon_state = "SolarcontrolAS" - -/area/maintenance/solars/starboard/fore - name = "Starboard Bow Solar Maintenance" - icon_state = "SolarcontrolFS" - -//Teleporter - -/area/teleporter - name = "Teleporter Room" - icon_state = "teleporter" - ambientsounds = ENGINEERING - -/area/gateway - name = "Gateway" - icon_state = "gateway" - ambientsounds = ENGINEERING - sound_environment = SOUND_AREA_STANDARD_STATION - -//MedBay - -/area/medical - name = "Medical" - icon_state = "medbay3" - ambientsounds = MEDICAL - lighting_colour_tube = "#e7f8ff" - lighting_colour_bulb = "#d5f2ff" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/medical/abandoned - name = "Abandoned Medbay" - icon_state = "medbay3" - ambientsounds = list('sound/ambience/signal.ogg') - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/medical/medbay/central - name = "Medbay Central" - icon_state = "medbay" - -/area/medical/medbay/lobby - name = "Medbay Lobby" - icon_state = "medbay" - - //Medbay is a large area, these additional areas help level out APC load. - -/area/medical/medbay/zone2 - name = "Medbay" - icon_state = "medbay2" - -/area/medical/medbay/aft - name = "Medbay Aft" - icon_state = "medbay3" - -/area/medical/storage - name = "Medbay Storage" - icon_state = "medbay2" - -/area/medical/paramedic - name = "Paramedic Dispatch" - icon_state = "medbay2" - -/area/medical/office - name = "Medical Office" - icon_state = "medoffice" - -/area/medical/surgery/room_c - name = "Surgery C" - icon_state = "surgery" - -/area/medical/surgery/room_d - name = "Surgery D" - icon_state = "surgery" - -/area/medical/break_room - name = "Medical Break Room" - icon_state = "medbay2" - -/area/medical/coldroom - name = "Medical Cold Room" - icon_state = "kitchen_cold" - -/area/medical/patients_rooms - name = "Patients' Rooms" - icon_state = "patients" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -/area/medical/patients_rooms/room_a - name = "Patient Room A" - icon_state = "patients" - -/area/medical/patients_rooms/room_b - name = "Patient Room B" - icon_state = "patients" - -/area/medical/virology - name = "Virology" - icon_state = "virology" - flags_1 = CULT_PERMITTED_1 - -/area/medical/morgue - name = "Morgue" - icon_state = "morgue" - ambientsounds = SPOOKY - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/medical/chemistry - name = "Chemistry" - icon_state = "chem" - -/area/medical/pharmacy - name = "Pharmacy" - icon_state = "pharmacy" - -/area/medical/surgery - name = "Surgery" - icon_state = "surgery" - -/area/medical/surgery/room_b - name = "Surgery B" - icon_state = "surgery" - -/area/medical/cryo - name = "Cryogenics" - icon_state = "cryo" - -/area/medical/exam_room - name = "Exam Room" - icon_state = "exam_room" - -/area/medical/genetics - name = "Genetics Lab" - icon_state = "genetics" - -/area/medical/sleeper - name = "Medbay Treatment Center" - icon_state = "exam_room" - -/area/medical/psychology - name = "Psychology Office" - icon_state = "psychology" - mood_bonus = 3 - mood_message = "I feel at ease here.\n" - ambientsounds = list('sound/ambience/aurora_caelus_short.ogg') - -//Security - -/area/security - name = "Security" - icon_state = "security" - ambientsounds = HIGHSEC - lighting_colour_tube = "#ffeee2" - lighting_colour_bulb = "#ffdfca" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/security/main - name = "Security Office" - icon_state = "security" - -/area/security/brig - name = "Brig" - icon_state = "brig" - -/area/security/brig/upper - name = "Brig Overlook" - -/area/security/courtroom - name = "Courtroom" - icon_state = "courtroom" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/security/prison - name = "Prison Wing" - icon_state = "sec_prison" - -/area/security/prison/toilet //radproof - name = "Prison Toilet" - icon_state = "sec_prison_safe" - -/area/security/prison/safe //radproof - name = "Prison Wing Cells" - icon_state = "sec_prison_safe" - -/area/security/prison/upper - name = "Upper Prison Wing" - icon_state = "prison_upper" - -/area/security/prison/visit - name = "Prison Visitation Area" - icon_state = "prison_visit" - -/area/security/prison/rec - name = "Prison Rec Room" - icon_state = "prison_rec" - -/area/security/prison/mess - name = "Prison Mess Hall" - icon_state = "prison_mess" - -/area/security/prison/work - name = "Prison Work Room" - icon_state = "prison_work" - -/area/security/prison/shower - name = "Prison Shower" - icon_state = "prison_shower" - -/area/security/prison/workout - name = "Prison Gym" - icon_state = "prison_workout" - -/area/security/prison/garden - name = "Prison Garden" - icon_state = "prison_garden" - -/area/security/processing - name = "Labor Shuttle Dock" - icon_state = "sec_prison" - -/area/security/processing/cremation - name = "Security Crematorium" - icon_state = "sec_prison" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/security/warden - name = "Brig Control" - icon_state = "Warden" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -/area/security/detectives_office - name = "Detective's Office" - icon_state = "detective" - ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') - -/area/security/detectives_office/private_investigators_office - name = "Private Investigator's Office" - icon_state = "detective" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -/area/security/range - name = "Firing Range" - icon_state = "firingrange" - -/area/security/execution - icon_state = "execution_room" - -/area/security/execution/transfer - name = "Transfer Centre" - -/area/security/execution/education - name = "Prisoner Education Chamber" - -/area/security/nuke_storage - name = "Vault" - icon_state = "nuke_storage" - -/area/ai_monitored/nuke_storage - name = "Vault" - icon_state = "nuke_storage" - -/area/security/checkpoint - name = "Security Checkpoint" - icon_state = "checkpoint1" - -/area/security/checkpoint/auxiliary - icon_state = "checkpoint_aux" - -/area/security/checkpoint/escape - icon_state = "checkpoint_esc" - -/area/security/checkpoint/supply - name = "Security Post - Cargo Bay" - icon_state = "checkpoint_supp" - -/area/security/checkpoint/engineering - name = "Security Post - Engineering" - icon_state = "checkpoint_engi" - -/area/security/checkpoint/medical - name = "Security Post - Medbay" - icon_state = "checkpoint_med" - -/area/security/checkpoint/science - name = "Security Post - Science" - icon_state = "checkpoint_sci" - -/area/security/checkpoint/science/research - name = "Security Post - Research Division" - icon_state = "checkpoint_res" - -/area/security/checkpoint/customs - name = "Customs" - icon_state = "customs_point" - -/area/security/checkpoint/customs/auxiliary - icon_state = "customs_point_aux" - - -//Service - -/area/quartermaster - name = "Quartermasters" - icon_state = "quart" - lighting_colour_tube = "#ffe3cc" - lighting_colour_bulb = "#ffdbb8" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/quartermaster/sorting - name = "Delivery Office" - icon_state = "cargo_delivery" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/quartermaster/warehouse - name = "Warehouse" - icon_state = "cargo_warehouse" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/quartermaster/warehouse/upper - name = "Upper Warehouse" - -/area/quartermaster/office - name = "Cargo Office" - icon_state = "quartoffice" - -/area/quartermaster/storage - name = "Cargo Bay" - icon_state = "cargo_bay" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/quartermaster/qm - name = "Quartermaster's Office" - icon_state = "quart" - -/area/quartermaster/qm/perch - name = "Quartermaster's Perch" - icon_state = "quartperch" - -/area/quartermaster/miningdock - name = "Mining Dock" - icon_state = "mining" - -/area/quartermaster/miningoffice - name = "Mining Office" - icon_state = "mining" - -/area/janitor - name = "Custodial Closet" - icon_state = "janitor" - flags_1 = CULT_PERMITTED_1 - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/hydroponics - name = "Hydroponics" - icon_state = "hydro" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/hydroponics/upper - name = "Upper Hydroponics" - icon_state = "hydro" - -/area/hydroponics/garden - name = "Garden" - icon_state = "garden" - -/area/hydroponics/garden/abandoned - name = "Abandoned Garden" - icon_state = "abandoned_garden" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/hydroponics/garden/monastery - name = "Monastery Garden" - icon_state = "hydro" - - -//Science - -/area/science - name = "Science Division" - icon_state = "toxlab" - lighting_colour_tube = "#f0fbff" - lighting_colour_bulb = "#e4f7ff" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/science/lab - name = "Research and Development" - icon_state = "toxlab" - -/area/science/xenobiology - name = "Xenobiology Lab" - icon_state = "toxlab" - -/area/science/storage - name = "Toxins Storage" - icon_state = "toxstorage" - -/area/science/test_area - name = "Toxins Test Area" - icon_state = "toxtest" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - -/area/science/mixing - name = "Toxins Mixing Lab" - icon_state = "toxmix" - -/area/science/mixing/chamber - name = "Toxins Mixing Chamber" - icon_state = "toxmix" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - -/area/science/misc_lab - name = "Testing Lab" - icon_state = "toxmisc" - -/area/science/misc_lab/range - name = "Research Testing Range" - icon_state = "toxmisc" - -/area/science/server - name = "Research Division Server Room" - icon_state = "server" - -/area/science/explab - name = "Experimentation Lab" - icon_state = "toxmisc" - -/area/science/robotics - name = "Robotics" - icon_state = "medresearch" - -/area/science/robotics/mechbay - name = "Mech Bay" - icon_state = "mechbay" - -/area/science/robotics/lab - name = "Robotics Lab" - icon_state = "ass_line" - -/area/science/research - name = "Research Division" - icon_state = "medresearch" - -/area/science/research/abandoned - name = "Abandoned Research Lab" - icon_state = "medresearch" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/science/nanite - name = "Nanite Lab" - icon_state = "toxmisc" - -//Storage -/area/storage - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/storage/tools - name = "Auxiliary Tool Storage" - icon_state = "storage" - -/area/storage/primary - name = "Primary Tool Storage" - icon_state = "primarystorage" - -/area/storage/art - name = "Art Supply Storage" - icon_state = "storage" - -/area/storage/tcom - name = "Telecomms Storage" - icon_state = "green" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - -/area/storage/eva - name = "EVA Storage" - icon_state = "eva" - -/area/storage/emergency/starboard - name = "Starboard Emergency Storage" - icon_state = "emergencystorage" - -/area/storage/emergency/port - name = "Port Emergency Storage" - icon_state = "emergencystorage" - -/area/storage/tech - name = "Technical Storage" - icon_state = "auxstorage" - -//Construction - -/area/construction - name = "Construction Area" - icon_state = "yellow" - ambientsounds = ENGINEERING - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/construction/mining/aux_base - name = "Auxiliary Base Construction" - icon_state = "aux_base_construction" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/construction/storage_wing - name = "Storage Wing" - icon_state = "storage_wing" - -// Vacant Rooms -/area/vacant_room - name = "Vacant Room" - icon_state = "vacant_room" - ambientsounds = MAINTENANCE - -/area/vacant_room/office - name = "Vacant Office" - icon_state = "vacant_office" - -/area/vacant_room/commissary - name = "Vacant Commissary" - icon_state = "vacant_commissary" - -//AI - -/area/ai_monitored - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/ai_monitored/security/armory - name = "Armory" - icon_state = "armory" - ambientsounds = HIGHSEC - -/area/ai_monitored/security/armory/upper - name = "Upper Armory" - -/area/ai_monitored/storage/eva - name = "EVA Storage" - icon_state = "eva" - ambientsounds = HIGHSEC - -/area/ai_monitored/storage/eva/upper - name = "Upper EVA Storage" - -/area/ai_monitored/storage/satellite - name = "AI Satellite Maint" - icon_state = "storage" - ambientsounds = HIGHSEC - - //Turret_protected - -/area/ai_monitored/turret_protected - ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg') - -/area/ai_monitored/turret_protected/ai_upload - name = "AI Upload Chamber" - icon_state = "ai_upload" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/ai_monitored/turret_protected/ai_upload_foyer - name = "AI Upload Access" - icon_state = "ai_foyer" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/ai_monitored/turret_protected/ai - name = "AI Chamber" - icon_state = "ai_chamber" - -/area/ai_monitored/turret_protected/aisat - name = "AI Satellite" - icon_state = "ai" - sound_environment = SOUND_ENVIRONMENT_ROOM - -/area/ai_monitored/turret_protected/aisat/atmos - name = "AI Satellite Atmos" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/foyer - name = "AI Satellite Foyer" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/service - name = "AI Satellite Service" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/hallway - name = "AI Satellite Hallway" - icon_state = "ai" - -/area/aisat - name = "AI Satellite Exterior" - icon_state = "yellow" - -/area/ai_monitored/turret_protected/aisat_interior - name = "AI Satellite Antechamber" - icon_state = "ai" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/ai_monitored/turret_protected/AIsatextAS - name = "AI Sat Ext" - icon_state = "storage" - -/area/ai_monitored/turret_protected/AIsatextAP - name = "AI Sat Ext" - icon_state = "storage" - - -// Telecommunications Satellite - -/area/tcommsat - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg', 'sound/ambience/ambitech.ogg',\ - 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg', 'sound/ambience/ambimystery.ogg') - -/area/tcommsat/computer - name = "Telecomms Control Room" - icon_state = "tcomsatcomp" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/tcommsat/server - name = "Telecomms Server Room" - icon_state = "tcomsatcham" - -/area/tcommsat/server/upper - name = "Upper Telecomms Server Room" - -//External Hull Access -/area/maintenance/external - name = "External Hull Access" - icon_state = "amaint" - -/area/maintenance/external/aft - name = "Aft External Hull Access" - -/area/maintenance/external/port - name = "Port External Hull Access" - -/area/maintenance/external/port/bow - name = "Port Bow External Hull Access" - -Shiptest End */ diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 0e2106d04026..2798158eda0b 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -110,7 +110,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /proc/process_teleport_locs() for(var/V in GLOB.sortedAreas) var/area/AR = V - if(istype(AR, /area/shuttle) || AR.area_flags & NOTELEPORT) + if(AR.area_flags & NOTELEPORT) continue if(GLOB.teleportlocs[AR.name]) continue diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm deleted file mode 100644 index 625129ae236f..000000000000 --- a/code/game/area/areas/shuttles.dm +++ /dev/null @@ -1,185 +0,0 @@ - -//These are shuttle areas; all subtypes are only used as teleportation markers, they have no actual function beyond that. -//Multi area shuttles are a thing now, use subtypes! ~ninjanomnom - -/area/shuttle - name = "Shuttle" - requires_power = FALSE - dynamic_lighting = DYNAMIC_LIGHTING_FORCED - has_gravity = STANDARD_GRAVITY - always_unpowered = FALSE - // Loading the same shuttle map at a different time will produce distinct area instances. - area_flags = NONE - icon_state = "shuttle" - flags_1 = CAN_BE_DIRTY_1 - lighting_colour_tube = "#fff0dd" - lighting_colour_bulb = "#ffe1c1" - area_limited_icon_smoothing = TRUE - sound_environment = SOUND_ENVIRONMENT_ROOM - //The mobile port attached to this area - var/obj/docking_port/mobile/mobile_port - - -/area/shuttle/Destroy() - mobile_port = null - . = ..() - -/area/shuttle/PlaceOnTopReact(turf/T, list/new_baseturfs, turf/fake_turf_type, flags) - . = ..() - if(length(new_baseturfs) > 1 || fake_turf_type) - return // More complicated larger changes indicate this isn't a player - if(ispath(new_baseturfs[1], /turf/open/floor/plating) && !(/turf/baseturf_skipover/shuttle in new_baseturfs)) - new_baseturfs.Insert(1, /turf/baseturf_skipover/shuttle) - -/area/shuttle/proc/link_to_shuttle(obj/docking_port/mobile/M) - mobile_port = M - -////////////////////////////Multi-area shuttles//////////////////////////// - -////////////////////////////Syndicate infiltrator//////////////////////////// - -/area/shuttle/syndicate - name = "Syndicate Infiltrator" - ambientsounds = HIGHSEC - -/area/shuttle/syndicate/bridge - name = "Syndicate Infiltrator Control" - -/area/shuttle/syndicate/medical - name = "Syndicate Infiltrator Medbay" - -/area/shuttle/syndicate/armory - name = "Syndicate Infiltrator Armory" - -/area/shuttle/syndicate/eva - name = "Syndicate Infiltrator EVA" - -/area/shuttle/syndicate/hallway - -/area/shuttle/syndicate/airlock - name = "Syndicate Infiltrator Airlock" - -////////////////////////////Pirate Shuttle//////////////////////////// - -/area/shuttle/pirate - name = "Pirate Shuttle" - requires_power = TRUE - -////////////////////////////Bounty Hunter Shuttles//////////////////////////// - -/area/shuttle/hunter - name = "Hunter Shuttle" - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - -////////////////////////////White Ship//////////////////////////// - -/area/shuttle/abandoned - name = "Abandoned Ship" - requires_power = TRUE - -/area/shuttle/abandoned/bridge - name = "Abandoned Ship Bridge" - -/area/shuttle/abandoned/engine - name = "Abandoned Ship Engine" - -/area/shuttle/abandoned/bar - name = "Abandoned Ship Bar" - -/area/shuttle/abandoned/crew - name = "Abandoned Ship Crew Quarters" - -/area/shuttle/abandoned/cargo - name = "Abandoned Ship Cargo Bay" - -/area/shuttle/abandoned/medbay - name = "Abandoned Ship Medbay" - -/area/shuttle/abandoned/pod - name = "Abandoned Ship Pod" - -/area/shuttle/abandoned/atmospherics - name = "Abandoned Ship atmospherics"//WS station edit - -/area/shuttle/abandoned/coridor - name = "Abandoned Ship coridor"//WS station edit -////////////////////////////Single-area shuttles//////////////////////////// - -/area/shuttle/transit - name = "Hyperspace" - desc = "Weeeeee" - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - -/area/shuttle/custom - name = "Custom player shuttle" - flags_1 = CAN_BE_DIRTY_1 - -/area/shuttle/custom/powered - name = "Custom Powered player shuttle" - requires_power = FALSE - -/area/shuttle/arrival - name = "Arrival Shuttle" - area_flags = UNIQUE_AREA// SSjob refers to this area for latejoiners - -/area/shuttle/pod_1 - name = "Escape Pod One" - -/area/shuttle/pod_2 - name = "Escape Pod Two" - -/area/shuttle/pod_3 - name = "Escape Pod Three" - -/area/shuttle/pod_4 - name = "Escape Pod Four" - -/area/shuttle/mining - name = "Mining Shuttle" - -/area/shuttle/mining/large - name = "Mining Shuttle" - requires_power = TRUE - -/area/shuttle/labor - name = "Labor Camp Shuttle" - -/area/shuttle/supply - name = "Supply Shuttle" - area_flags = NOTELEPORT - -/area/shuttle/escape - name = "Emergency Shuttle" - flags_1 = CAN_BE_DIRTY_1 - -/area/shuttle/escape/backup - name = "Backup Emergency Shuttle" - -/area/shuttle/escape/luxury - name = "Luxurious Emergency Shuttle" - area_flags = NOTELEPORT - -/area/shuttle/escape/arena - name = "The Arena" - area_flags = NOTELEPORT - -/area/shuttle/escape/meteor - name = "\proper a meteor with engines strapped to it" - -/area/shuttle/transport - name = "Transport Shuttle" - -/area/shuttle/sbc_starfury - name = "SBC Starfury" - -/area/shuttle/sbc_fighter1 - name = "SBC Fighter 1" - -/area/shuttle/sbc_fighter2 - name = "SBC Fighter 2" - -/area/shuttle/sbc_corvette - name = "SBC corvette" - -/area/shuttle/syndicate_scout - name = "Syndicate Scout" diff --git a/code/game/area/ship_areas.dm b/code/game/area/ship_areas.dm index 54d74fc9538a..b1d47670aa2d 100644 --- a/code/game/area/ship_areas.dm +++ b/code/game/area/ship_areas.dm @@ -46,6 +46,20 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Test Room" icon_state = "storage" +/area/hyperspace + icon_state = "space" + requires_power = TRUE + always_unpowered = TRUE + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + power_light = FALSE + power_equip = FALSE + power_environ = FALSE + area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED + outdoors = TRUE + ambientsounds = SPACE + flags_1 = CAN_BE_DIRTY_1 + sound_environment = SOUND_AREA_SPACE + //EXTRA /area/asteroid diff --git a/code/game/atoms.dm b/code/game/atoms.dm index a140ec099085..e7c9c19325a6 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -353,66 +353,6 @@ return TRUE return !density -/** - * Is this atom currently located on centcom - * - * Specifically, is it on the z level and within the centcom areas - * - * You can also be in a shuttleshuttle during endgame transit - * - * Used in gamemode to identify mobs who have escaped and for some other areas of the code - * who don't want atoms where they shouldn't be - */ -/atom/proc/onCentCom() - var/turf/T = get_turf(src) - if(!T) - return FALSE - - if(is_reserved_level(T)) - for(var/A in SSshuttle.mobile) - var/obj/docking_port/mobile/M = A - if(M.launch_status == ENDGAME_TRANSIT) - for(var/place in M.shuttle_areas) - var/area/shuttle/shuttle_area = place - if(T in shuttle_area) - return TRUE - - if(!is_centcom_level(T))//if not, don't bother - return FALSE - - //Check for centcom itself - if(istype(T.loc, /area/centcom)) - return TRUE - - //Check for centcom shuttles - for(var/A in SSshuttle.mobile) - var/obj/docking_port/mobile/M = A - if(M.launch_status == ENDGAME_LAUNCHED) - for(var/place in M.shuttle_areas) - var/area/shuttle/shuttle_area = place - if(T in shuttle_area) - return TRUE - -/** - * Is the atom in any of the centcom syndicate areas - * - * Either in the syndie base on centcom, or any of their shuttles - * - * Also used in gamemode code for win conditions - */ -/atom/proc/onSyndieBase() - var/turf/T = get_turf(src) - if(!T) - return FALSE - - if(!is_centcom_level(T))//if not, don't bother - return FALSE - - if(istype(T.loc, /area/shuttle/syndicate) || istype(T.loc, /area/syndicate_mothership)) - return TRUE - - return FALSE - /** * Is the atom in an away mission * diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm deleted file mode 100644 index f7ce7b036eb5..000000000000 --- a/code/game/gamemodes/cult/cult.dm +++ /dev/null @@ -1,182 +0,0 @@ -#define CULT_SCALING_COEFFICIENT 9.3 //Roughly one new cultist at roundstart per this many players - -/datum/game_mode - var/list/datum/mind/cult = list() - -/proc/iscultist(mob/living/M) - return M.mind?.has_antag_datum(/datum/antagonist/cult) - -/datum/team/cult/proc/is_sacrifice_target(datum/mind/mind) - for(var/datum/objective/sacrifice/sac_objective in objectives) - if(mind == sac_objective.target) - return TRUE - return FALSE - -/proc/is_convertable_to_cult(mob/living/M,datum/team/cult/specific_cult) - if(!istype(M)) - return FALSE - if(M.mind) - if(specific_cult && specific_cult.is_sacrifice_target(M.mind)) - return FALSE - if(M.mind.enslaved_to && !iscultist(M.mind.enslaved_to)) - return FALSE - if(M.mind.unconvertable) - return FALSE - else - return FALSE - if(HAS_TRAIT(M, TRAIT_MINDSHIELD) || issilicon(M) || isbot(M) || isdrone(M) || !M.client) - return FALSE //can't convert machines, shielded, or braindead - return TRUE - -/datum/game_mode/cult - name = "cult" - config_tag = "cult" - report_type = "cult" - antag_flag = ROLE_CULTIST - false_report_weight = 10 - restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Brig Physician", "SolGov Representative", "Prisoner") //WS edit - Brig Physicians, SolGov Rep - protected_jobs = list() - required_players = 29 - required_enemies = 4 - recommended_enemies = 4 - enemy_minimum_age = 14 - - announce_span = "cult" - announce_text = "Some crew members are trying to start a cult to Nar'Sie!\n\ - Cultists: Carry out Nar'Sie's will.\n\ - Crew: Prevent the cult from expanding and drive it out." - - title_icon = "cult" - - var/finished = 0 - - var/acolytes_needed = 10 //for the survive objective - var/acolytes_survived = 0 - - var/list/cultists_to_cult = list() //the cultists we'll convert - - var/datum/team/cult/main_cult - - -/datum/game_mode/cult/pre_setup() - if(CONFIG_GET(flag/protect_roles_from_antagonist)) - restricted_jobs += protected_jobs - - if(CONFIG_GET(flag/protect_assistant_from_antagonist)) - restricted_jobs += "Assistant" - - //cult scaling goes here - recommended_enemies = 1 + round(num_players()/CULT_SCALING_COEFFICIENT) - var/remaining = (num_players() % CULT_SCALING_COEFFICIENT) * 10 //Basically the % of how close the population is toward adding another cultis - if(prob(remaining)) - recommended_enemies++ - - - for(var/cultists_number = 1 to recommended_enemies) - if(!antag_candidates.len) - break - var/datum/mind/cultist = antag_pick(antag_candidates) - antag_candidates -= cultist - cultists_to_cult += cultist - cultist.special_role = ROLE_CULTIST - cultist.restricted_roles = restricted_jobs - log_game("[key_name(cultist)] has been selected as a cultist") - - if(cultists_to_cult.len>=required_enemies) - for(var/antag in cultists_to_cult) - GLOB.pre_setup_antags += antag - return TRUE - else - setup_error = "Not enough cultist candidates" - return FALSE - - -/datum/game_mode/cult/post_setup() - main_cult = new - - for(var/datum/mind/cult_mind in cultists_to_cult) - add_cultist(cult_mind, 0, equip=TRUE, cult_team = main_cult) - GLOB.pre_setup_antags -= cult_mind - - main_cult.setup_objectives() //Wait until all cultists are assigned to make sure none will be chosen as sacrifice. - - . = ..() - -/datum/game_mode/proc/add_cultist(datum/mind/cult_mind, stun , equip = FALSE, datum/team/cult/cult_team = null) - if (!istype(cult_mind)) - return FALSE - - var/datum/antagonist/cult/new_cultist = new() - new_cultist.give_equipment = equip - - if(cult_mind.add_antag_datum(new_cultist,cult_team)) - if(stun) - cult_mind.current.Unconscious(100) - return TRUE - -/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, silent, stun) - if(cult_mind.current) - var/datum/antagonist/cult/cult_datum = cult_mind.has_antag_datum(/datum/antagonist/cult) - if(!cult_datum) - return FALSE - cult_datum.silent = silent - cult_mind.remove_antag_datum(cult_datum) - if(stun) - cult_mind.current.Unconscious(100) - return TRUE - -/datum/game_mode/cult/proc/check_cult_victory() - return main_cult.check_cult_victory() - - -/datum/game_mode/cult/set_round_result() - ..() - if(check_cult_victory()) - SSticker.mode_result = "win - cult win" - SSticker.news_report = CULT_SUMMON - else - SSticker.mode_result = "loss - staff stopped the cult" - SSticker.news_report = CULT_FAILURE - -/datum/game_mode/cult/proc/check_survive() - var/acolytes_survived = 0 - for(var/datum/mind/cult_mind in cult) - if (cult_mind.current && cult_mind.current.stat != DEAD) - if(cult_mind.current.onCentCom() || cult_mind.current.onSyndieBase()) - acolytes_survived++ - if(acolytes_survived>=acolytes_needed) - return 0 - else - return 1 - - -/datum/game_mode/cult/generate_report() - return "Some stations in your sector have reported evidence of blood sacrifice and strange magic. Ties to the Wizards' Federation have been proven not to exist, and many employees \ - have disappeared; even Central Command employees light-years away have felt strange presences and at times hysterical compulsions. Interrogations point towards this being the work of \ - the cult of Nar'Sie. If evidence of this cult is discovered aboard your station, extreme caution and extreme vigilance must be taken going forward, and all resources should be \ - devoted to stopping this cult. Note that holy water seems to weaken and eventually return the minds of cultists that ingest it, and mindshield implants will prevent conversion \ - altogether." - - - -/datum/game_mode/cult/generate_credit_text() - var/list/round_credits = list() - var/len_before_addition - - round_credits += "

    The Cult of Nar'Sie:

    " - len_before_addition = round_credits.len - for(var/datum/mind/cultist in cult) - round_credits += "

    [cultist.name] as a cult fanatic

    " - - var/datum/objective/eldergod/summon_objective = locate() in main_cult.objectives - if(summon_objective && summon_objective.summoned) - round_credits += "

    Nar'Sie as the eldritch abomination

    " - - if(len_before_addition == round_credits.len) - round_credits += list("

    The cultists have learned the danger of eldritch magic!

    ", "

    They all disappeared!

    ") - round_credits += "
    " - - round_credits += ..() - return round_credits - -#undef CULT_SCALING_COEFFICIENT diff --git a/code/game/gamemodes/devil/devil_agent/devil_agent.dm b/code/game/gamemodes/devil/devil_agent/devil_agent.dm deleted file mode 100644 index c8fb62faba09..000000000000 --- a/code/game/gamemodes/devil/devil_agent/devil_agent.dm +++ /dev/null @@ -1,44 +0,0 @@ -/datum/game_mode/devil/devil_agents - name = "Devil Agents" - config_tag = "devil_agents" - required_players = 25 - required_enemies = 3 - recommended_enemies = 8 - reroll_friendly = 0 - - traitors_possible = 10 //hard limit on traitors if scaling is turned off - num_modifier = 4 - objective_count = 2 - - var/list/devil_target_list = list() //will update to be a child of internal affairs when bothered - var/list/devil_late_joining_list = list() - minimum_devils = 3 - - announce_text = "There are devil agents onboard the station, trying to outbid each other!\n\ - + Devils: Purchase souls and interfere with your rivals!\n\ - + Crew: Resist the lure of sin and remain pure!" - -/datum/game_mode/devil/devil_agents/post_setup() - var/i = 0 - for(var/datum/mind/devil in devils) - i++ - if(i + 1 > devils.len) - i = 0 - devil_target_list[devil] = devils[i + 1] - ..() - -/datum/game_mode/devil/devil_agents/add_devil_objectives(datum/mind/devil_mind, quantity) - ..(devil_mind, quantity - give_outsell_objective(devil_mind)) - -/datum/game_mode/devil/devil_agents/proc/give_outsell_objective(datum/mind/devil) - //If you override this method, have it return the number of objectives added. - if(devil_target_list.len && devil_target_list[devil]) // Is a double agent - var/datum/mind/target_mind = devil_target_list[devil] - var/datum/antagonist/devil/D = target_mind.has_antag_datum(/datum/antagonist/devil) - var/datum/objective/devil/outsell/outsellobjective = new - outsellobjective.owner = devil - outsellobjective.target = target_mind - outsellobjective.update_explanation_text() - D.objectives += outsellobjective - return 1 - return 0 diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm deleted file mode 100644 index 9d002f4a029d..000000000000 --- a/code/game/gamemodes/devil/devil_game_mode.dm +++ /dev/null @@ -1,106 +0,0 @@ -/datum/game_mode/devil - name = "devil" - config_tag = "devil" - report_type = "devil" - antag_flag = ROLE_DEVIL - false_report_weight = 1 - protected_jobs = list("Prisoner", "Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI") - required_players = 0 - required_enemies = 1 - recommended_enemies = 4 - reroll_friendly = 1 - enemy_minimum_age = 0 - title_icon = "devil" - - var/traitors_possible = 4 //hard limit on devils if scaling is turned off - var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual. - var/objective_count = 2 - var/minimum_devils = 1 - - announce_text = "There are devils onboard the station!\n\ - + Devils: Purchase souls and tempt the crew to sin!\n\ - + Crew: Resist the lure of sin and remain pure!" - -/datum/game_mode/devil/pre_setup() - if(CONFIG_GET(flag/protect_roles_from_antagonist)) - restricted_jobs += protected_jobs - if(CONFIG_GET(flag/protect_assistant_from_antagonist)) - restricted_jobs += "Assistant" - - var/num_devils = 1 - - var/tsc = CONFIG_GET(number/traitor_scaling_coeff) - if(tsc) - num_devils = max(minimum_devils, min(round(num_players() / (tsc * 3))+ 2 + num_modifier, round(num_players() / (tsc * 1.5)) + num_modifier)) - else - num_devils = max(minimum_devils, min(num_players(), traitors_possible)) - - for(var/j = 0, j < num_devils, j++) - if (!antag_candidates.len) - break - var/datum/mind/devil = antag_pick(antag_candidates) - devils += devil - devil.special_role = traitor_name - devil.restricted_roles = restricted_jobs - - log_game("[key_name(devil)] has been selected as a [traitor_name]") - antag_candidates.Remove(devil) - - if(devils.len < required_enemies) - setup_error = "Not enough devil candidates" - return FALSE - for(var/antag in devils) - GLOB.pre_setup_antags += antag - return TRUE - - -/datum/game_mode/devil/post_setup() - for(var/datum/mind/devil in devils) - post_setup_finalize(devil) - ..() - return TRUE - -/datum/game_mode/devil/generate_report() - return "Infernal creatures have been seen nearby offering great boons in exchange for souls. This is considered theft against Nanotrasen, as all employment contracts contain a lien on the \ - employee's soul. If anyone sells their soul in error, contact an attorney to overrule the sale. Be warned that if the devil purchases enough souls, a gateway to hell may open." - -/datum/game_mode/devil/proc/post_setup_finalize(datum/mind/devil) - add_devil(devil.current, ascendable = TRUE) //Devil gamemode devils are ascendable. - GLOB.pre_setup_antags -= devil - add_devil_objectives(devil,2) - -/proc/is_devil(mob/living/M) - return M.mind?.has_antag_datum(/datum/antagonist/devil) - -/proc/add_devil(mob/living/L, ascendable = FALSE) - if(!L || !L.mind) - return FALSE - var/datum/antagonist/devil/devil_datum = L.mind.add_antag_datum(/datum/antagonist/devil) - devil_datum.ascendable = ascendable - return devil_datum - -/proc/remove_devil(mob/living/L) - if(!L || !L.mind) - return FALSE - var/datum/antagonist/devil_datum = L.mind.has_antag_datum(/datum/antagonist/devil) - devil_datum.on_removal() - return TRUE - -/datum/game_mode/devil/generate_credit_text() - var/list/round_credits = list() - var/len_before_addition - - round_credits += "

    The Tempting Devils:

    " - len_before_addition = round_credits.len - var/datum/antagonist/devil/devil_info - for(var/datum/mind/devil in devils) - devil_info = devil.has_antag_datum(/datum/antagonist/devil) - if(devil_info) // This should never fail, but better to be sure - round_credits += "

    [devil_info.truename] in the form of [devil.name]

    " - devil_info = null - if(len_before_addition == round_credits.len) - round_credits += list("

    The devils were all utterly destroyed!

    ", "

    The love of Space Jesus shines through!

    ") - round_credits += "
    " - - round_credits += ..() - return round_credits diff --git a/code/game/gamemodes/devil/game_mode.dm b/code/game/gamemodes/devil/game_mode.dm deleted file mode 100644 index f91b863483c5..000000000000 --- a/code/game/gamemodes/devil/game_mode.dm +++ /dev/null @@ -1,26 +0,0 @@ -/datum/game_mode - var/list/datum/mind/devils = list() - var/devil_ascended = 0 // Number of arch devils on station - -/datum/game_mode/proc/add_devil_objectives(datum/mind/devil_mind, quantity) - var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target) - var/datum/antagonist/devil/D = devil_mind.has_antag_datum(/datum/antagonist/devil) - for(var/i = 1 to quantity) - var/type = pick(validtypes) - var/datum/objective/devil/objective = new type(null) - objective.owner = devil_mind - D.objectives += objective - if(!istype(objective, /datum/objective/devil/buy_target)) - validtypes -= type //prevent duplicate objectives, EXCEPT for buy_target. - else - objective.find_target() - -/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind) - var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS] - hud.join_hud(soulless_mind.current) - set_antag_hud(soulless_mind.current, "soulless") - -/datum/game_mode/proc/update_soulless_icons_removed(datum/mind/soulless_mind) - var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS] - hud.leave_hud(soulless_mind.current) - set_antag_hud(soulless_mind.current, null) diff --git a/code/game/gamemodes/devil/objectives.dm b/code/game/gamemodes/devil/objectives.dm deleted file mode 100644 index f3d5ce575f85..000000000000 --- a/code/game/gamemodes/devil/objectives.dm +++ /dev/null @@ -1,113 +0,0 @@ -/datum/objective/devil - -/datum/objective/devil/soulquantity - explanation_text = "You shouldn't see this text. Error:DEVIL1" - target_amount = 4 - -/datum/objective/devil/soulquantity/New() - target_amount = pick(6,7,8) - update_explanation_text() - -/datum/objective/devil/soulquantity/update_explanation_text() - explanation_text = "Purchase, and retain control over at least [target_amount] souls." - -/datum/objective/devil/soulquantity/check_completion() - var/count = 0 - var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil) - var/list/souls = devilDatum.soulsOwned - for(var/S in souls) //Just a sanity check. - var/datum/mind/L = S - if(L.soulOwner == owner) - count++ - return count >= target_amount - - - -/datum/objective/devil/soulquality - explanation_text = "You shouldn't see this text. Error:DEVIL2" - var/contractType - var/contractName - -/datum/objective/devil/soulquality/New() - contractType = pick(CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_REVIVE, CONTRACT_KNOWLEDGE/*, CONTRACT_UNWILLING*/) - target_amount = pick(1,2) - switch(contractType) - if(CONTRACT_POWER) - contractName = "for power" - if(CONTRACT_WEALTH) - contractName = "for wealth" - if(CONTRACT_PRESTIGE) - contractName = "for prestige" - if(CONTRACT_MAGIC) - contractName = "for magic" - if(CONTRACT_REVIVE) - contractName = "of revival" - if(CONTRACT_KNOWLEDGE) - contractName = "for knowledge" - update_explanation_text() - -/datum/objective/devil/soulquality/update_explanation_text() - explanation_text = "Have mortals sign at least [target_amount] contracts [contractName]" - -/datum/objective/devil/soulquality/check_completion() - var/count = 0 - var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil) - var/list/souls = devilDatum.soulsOwned - for(var/S in souls) - var/datum/mind/L = S - if(!L.owns_soul() && L.damnation_type == contractType) - count++ - return count>=target_amount - - - -/datum/objective/devil/sintouch - explanation_text = "You shouldn't see this text. Error:DEVIL3" - -/datum/objective/devil/sintouch/New() - target_amount = pick(4,5) - explanation_text = "Ensure at least [target_amount] mortals are sintouched." - -/datum/objective/devil/sintouch/check_completion() - var/list/touched = get_antag_minds(/datum/antagonist/sintouched) - return touched.len >= target_amount - - -/datum/objective/devil/buy_target - explanation_text = "You shouldn't see this text. Error:DEVIL4" - -/datum/objective/devil/buy_target/update_explanation_text() - if(target) - explanation_text = "Purchase and retain the soul of [target.name], the [target.assigned_role]." - else - explanation_text = "Free objective." - -/datum/objective/devil/buy_target/check_completion() - return target.soulOwner == owner - - -/datum/objective/devil/outsell - explanation_text = "You shouldn't see this text. Error:DEVIL5" - -/datum/objective/devil/outsell/New() - -/datum/objective/devil/outsell/update_explanation_text() - var/datum/antagonist/devil/opponent = target.has_antag_datum(/datum/antagonist/devil) - explanation_text = "Purchase and retain control over more souls than [opponent.truename], known to mortals as [target.name], the [target.assigned_role]." - -/datum/objective/devil/outsell/check_completion() - var/selfcount = 0 - var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil) - var/list/souls = devilDatum.soulsOwned - for(var/S in souls) - var/datum/mind/L = S - if(L.soulOwner == owner) - selfcount++ - var/targetcount = 0 - devilDatum = target.has_antag_datum(/datum/antagonist/devil) - souls = devilDatum.soulsOwned - for(var/S in souls) - var/datum/mind/L = S - if(L.soulOwner == target) - targetcount++ - return selfcount > targetcount diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm index 1e6a2da4d867..7163dd0ca54e 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm @@ -35,7 +35,7 @@ var/list/enemy_roles = list() /// If enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS. var/required_enemies = list(1,1,0,0,0,0,0,0,0,0) - /// The rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start) + /// The rule needs this many candidates (post-trimming) to be executed var/required_candidates = 0 /// 1 -> 9, probability for this rule to be picked against other rules var/weight = 5 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 8c8fe19d0a97..70d9c8405204 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -191,65 +191,6 @@ M.add_antag_datum(new antag_datum()) return TRUE -////////////////////////////////////////////// -// // -// BLOOD CULT // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/bloodcult - name = "Blood Cult" - antag_flag = ROLE_CULTIST - antag_datum = /datum/antagonist/cult - minimum_required_age = 14 - restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Research Director", "Chief Medical Officer", "Chief Engineer", "SolGov Representative") - required_candidates = 2 - weight = 3 - cost = 35 - requirements = list(100,90,80,60,40,30,10,10,10,10) - high_population_requirement = 10 - flags = HIGHLANDER_RULESET - antag_cap = list(2,2,2,3,3,4,4,4,4,4) - var/datum/team/cult/main_cult - -/datum/dynamic_ruleset/roundstart/bloodcult/ready(forced = FALSE) - required_candidates = antag_cap[indice_pop] - . = ..() - -/datum/dynamic_ruleset/roundstart/bloodcult/pre_execute() - . = ..() - var/cultists = antag_cap[indice_pop] - mode.antags_rolled += cultists - for(var/cultists_number = 1 to cultists) - if(candidates.len <= 0) - break - var/mob/M = pick_n_take(candidates) - assigned += M.mind - M.mind.special_role = ROLE_CULTIST - M.mind.restricted_roles = restricted_roles - GLOB.pre_setup_antags += M.mind - return TRUE - -/datum/dynamic_ruleset/roundstart/bloodcult/execute() - main_cult = new - for(var/datum/mind/M in assigned) - var/datum/antagonist/cult/new_cultist = new antag_datum() - new_cultist.cult_team = main_cult - new_cultist.give_equipment = TRUE - M.add_antag_datum(new_cultist) - GLOB.pre_setup_antags -= M - main_cult.setup_objectives() - return TRUE - -/datum/dynamic_ruleset/roundstart/bloodcult/round_result() - ..() - if(main_cult.check_cult_victory()) - SSticker.mode_result = "win - cult win" - SSticker.news_report = CULT_SUMMON - else - SSticker.mode_result = "loss - staff stopped the cult" - SSticker.news_report = CULT_FAILURE - ////////////////////////////////////////////// // // // NUCLEAR OPERATIVES // @@ -382,93 +323,3 @@ for(var/datum/mind/V in assigned) V.assigned_role = "Clown Operative" V.special_role = "Clown Operative" - -////////////////////////////////////////////// -// // -// DEVIL // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/devil - name = "Devil" - antag_flag = ROLE_DEVIL - antag_datum = /datum/antagonist/devil - restricted_roles = list("Lawyer", "Curator", "Chaplain", "Prisoner", "Head of Security", "Captain", "AI") - required_candidates = 1 - weight = 3 - cost = 0 - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - antag_cap = list(1,1,1,2,2,2,3,3,3,4) - -/datum/dynamic_ruleset/roundstart/devil/pre_execute() - . = ..() - var/num_devils = antag_cap[indice_pop] - mode.antags_rolled += num_devils - - for(var/j = 0, j < num_devils, j++) - if (!candidates.len) - break - var/mob/devil = pick_n_take(candidates) - assigned += devil.mind - devil.mind.special_role = ROLE_DEVIL - devil.mind.restricted_roles = restricted_roles - GLOB.pre_setup_antags += devil.mind - - log_game("[key_name(devil)] has been selected as a devil") - return TRUE - -/datum/dynamic_ruleset/roundstart/devil/execute() - for(var/datum/mind/devil in assigned) - add_devil(devil.current, ascendable = TRUE) - GLOB.pre_setup_antags -= devil - add_devil_objectives(devil,2) - return TRUE - -/datum/dynamic_ruleset/roundstart/devil/proc/add_devil_objectives(datum/mind/devil_mind, quantity) - var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target) - var/datum/antagonist/devil/D = devil_mind.has_antag_datum(/datum/antagonist/devil) - for(var/i = 1 to quantity) - var/type = pick(validtypes) - var/datum/objective/devil/objective = new type(null) - objective.owner = devil_mind - D.objectives += objective - if(!istype(objective, /datum/objective/devil/buy_target)) - validtypes -= type - else - objective.find_target() - -////////////////////////////////////////////// -// // -// METEOR // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/meteor - name = "Meteor" - persistent = TRUE - required_candidates = 0 - weight = 3 - cost = 0 - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - var/meteordelay = 2000 - var/nometeors = 0 - var/rampupdelta = 5 - -/datum/dynamic_ruleset/roundstart/meteor/rule_process() - if(nometeors || meteordelay > world.time - SSticker.round_start_time) - return - - var/list/wavetype = GLOB.meteors_normal - var/meteorminutes = (world.time - SSticker.round_start_time - meteordelay) / 10 / 60 - - if (prob(meteorminutes)) - wavetype = GLOB.meteors_threatening - - if (prob(meteorminutes/2)) - wavetype = GLOB.meteors_catastrophic - - var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10) - - spawn_meteors(ramp_up_final, wavetype) diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 56f873a50bd1..7db8207c9d71 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -47,11 +47,10 @@ for(var/area/A in GLOB.sortedAreas) if(!A.requires_power || A.always_unpowered) continue - if(!istype(A, /area/shuttle)) - A.power_light = TRUE - A.power_equip = TRUE - A.power_environ = TRUE - A.power_change() + A.power_light = TRUE + A.power_equip = TRUE + A.power_environ = TRUE + A.power_change() /proc/power_restore_quick() priority_announce("All SMESs have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg') diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 391ad852664f..00bc1bc95e13 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -418,9 +418,6 @@ return max(0, enemy_minimum_age - C.player_age) -/datum/game_mode/proc/remove_antag_for_borging(datum/mind/newborgie) - SSticker.mode.remove_cultist(newborgie, 0, 0) - /datum/game_mode/proc/generate_station_goals() var/list/possible = list() for(var/T in subtypesof(/datum/station_goal)) diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm deleted file mode 100644 index 9149f5da35f6..000000000000 --- a/code/game/gamemodes/meteor/meteor.dm +++ /dev/null @@ -1,61 +0,0 @@ -/datum/game_mode/meteor - name = "meteor" - config_tag = "meteor" - report_type = "meteor" - false_report_weight = 1 - var/meteordelay = 2000 - var/nometeors = 0 - var/rampupdelta = 5 - required_players = 0 - - announce_span = "danger" - announce_text = "A major meteor shower is bombarding the station! The crew needs to evacuate or survive the onslaught." - - title_icon = "meteor" - -/datum/game_mode/meteor/process() - if(nometeors || meteordelay > world.time - SSticker.round_start_time) - return - - var/list/wavetype = GLOB.meteors_normal - var/meteorminutes = (world.time - SSticker.round_start_time - meteordelay) / 10 / 60 - - - if (prob(meteorminutes)) - wavetype = GLOB.meteors_threatening - - if (prob(meteorminutes/2)) - wavetype = GLOB.meteors_catastrophic - - var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10) - - spawn_meteors(ramp_up_final, wavetype) - - -/datum/game_mode/meteor/special_report() - var/survivors = 0 - var/list/survivor_list = list() - - for(var/mob/living/player in GLOB.player_list) - if(player.stat != DEAD) - ++survivors - - if(player.onCentCom()) - survivor_list += "[player.real_name] escaped to the safety of CentCom." - else if(player.onSyndieBase()) - survivor_list += "[player.real_name] escaped to the (relative) safety of Syndicate Space." - else - survivor_list += "[player.real_name] survived but is stranded without any hope of rescue." - - if(survivors) - return "
    The following survived the meteor storm:
    [survivor_list.Join("
    ")]
    " - else - return "
    Nobody survived the meteor storm!
    " - -/datum/game_mode/meteor/set_round_result() - ..() - SSticker.mode_result = "end - evacuation" - -/datum/game_mode/meteor/generate_report() - return "[pick("Asteroids have", "Meteors have", "Large rocks have", "Stellar minerals have", "Space hail has", "Debris has")] been detected near your station, and a collision is possible, \ - though unlikely. Be prepared for largescale impacts and destruction. Please note that the debris will prevent the escape shuttle from arriving quickly." diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 65e161f2176b..ec74c51acc95 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -58,18 +58,11 @@ GLOBAL_LIST_EMPTY(objectives) /datum/objective/proc/considered_escaped(datum/mind/M) if(!considered_alive(M)) return FALSE - if(considered_exiled(M)) - return FALSE - if(M.force_escaped) - return TRUE - if(SSticker.force_ending || SSticker.mode.station_was_nuked) // Just let them win. + if(SSticker.force_ending) // Just let them win. return TRUE if(SSshuttle.jump_mode != BS_JUMP_COMPLETED) return FALSE - var/turf/location = get_turf(M.current) - if(!location || istype(location, /turf/open/floor/mineral/plastitanium/red/brig)) // Fails if they are in the shuttle brig - return FALSE - return location.onCentCom() || location.onSyndieBase() + return TRUE /datum/objective/proc/check_completion() return completed @@ -233,7 +226,7 @@ GLOBAL_LIST_EMPTY(objectives) ..() /datum/objective/maroon/check_completion() - return !target || !considered_alive(target) || (!target.current.onCentCom() && !target.current.onSyndieBase()) + return !target || !considered_alive(target) /datum/objective/maroon/update_explanation_text() if(target && target.current) @@ -334,7 +327,7 @@ GLOBAL_LIST_EMPTY(objectives) name = "detain" /datum/objective/jailbreak/detain/check_completion() - return completed || (!considered_escaped(target) && (considered_alive(target) && target.current.onCentCom())) + return completed || (!considered_escaped(target) && (considered_alive(target))) /datum/objective/jailbreak/detain/update_explanation_text() ..() diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 2389b699e7b9..96fbbd8254d1 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1,7 +1,6 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/storage/box/snappops = 2, /obj/item/toy/talking/AI = 2, - /obj/item/toy/talking/codex_gigas = 2, /obj/item/clothing/under/syndicate/tacticool = 2, /obj/item/toy/sword = 2, /obj/item/toy/gun = 2, diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3412321b380b..2d76d7ecb351 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -370,26 +370,6 @@ audible_message("You hear a click from the bottom of the door.", null, 1) update_appearance() -/obj/machinery/door/airlock/narsie_act() - var/turf/T = get_turf(src) - var/obj/machinery/door/airlock/cult/A - if(GLOB.cult_narsie) - var/runed = prob(20) - if(glass) - if(runed) - A = new/obj/machinery/door/airlock/cult/glass(T) - else - A = new/obj/machinery/door/airlock/cult/unruned/glass(T) - else - if(runed) - A = new/obj/machinery/door/airlock/cult(T) - else - A = new/obj/machinery/door/airlock/cult/unruned(T) - A.name = name - else - A = new /obj/machinery/door/airlock/cult/weak(T) - qdel(src) - /obj/machinery/door/airlock/Destroy() QDEL_NULL(wires) QDEL_NULL(electronics) diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 492ce30f6ac4..f6e6840f552b 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -461,115 +461,6 @@ security_level = 1 has_hatch = FALSE -////////////////////////////////// -/* - Cult Airlocks -*/ - -/obj/machinery/door/airlock/cult - name = "cult airlock" - icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi' - overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi' - assemblytype = /obj/structure/door_assembly/door_assembly_cult - hackProof = TRUE - aiControlDisabled = AI_WIRE_DISABLED - req_access = list(ACCESS_BLOODCULT) - damage_deflection = 10 - has_hatch = FALSE - var/openingoverlaytype = /obj/effect/temp_visual/cult/door - var/friendly = FALSE - var/stealthy = FALSE - -/obj/machinery/door/airlock/cult/Initialize() - . = ..() - new openingoverlaytype(loc) - -/obj/machinery/door/airlock/cult/canAIControl(mob/user) - return (iscultist(user) && !isAllPowerCut()) - -/obj/machinery/door/airlock/cult/on_break() - if(!panel_open) - panel_open = TRUE - -/obj/machinery/door/airlock/cult/isElectrified() - return FALSE - -/obj/machinery/door/airlock/cult/hasPower() - return TRUE - -/obj/machinery/door/airlock/cult/allowed(mob/living/L) - if(!density) - return 1 - if(friendly || iscultist(L) || istype(L, /mob/living/simple_animal/shade) || isconstruct(L)) - if(!stealthy) - new openingoverlaytype(loc) - return 1 - else - if(!stealthy) - new /obj/effect/temp_visual/cult/sac(loc) - var/atom/throwtarget - throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) - SEND_SOUND(L, sound(pick('sound/hallucinations/turn_around1.ogg','sound/hallucinations/turn_around2.ogg'),0,1,50)) - flash_color(L, flash_color="#960000", flash_time=20) - L.Paralyze(40) - L.throw_at(throwtarget, 5, 1) - return 0 - -/obj/machinery/door/airlock/cult/proc/conceal() - icon = 'icons/obj/doors/airlocks/station/maintenance.dmi' - overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' - name = "airlock" - desc = "It opens and closes." - stealthy = TRUE - update_appearance() - -/obj/machinery/door/airlock/cult/proc/reveal() - icon = initial(icon) - overlays_file = initial(overlays_file) - name = initial(name) - desc = initial(desc) - stealthy = initial(stealthy) - update_appearance() - -/obj/machinery/door/airlock/cult/narsie_act() - return - -/obj/machinery/door/airlock/cult/emp_act(severity) - return - -/obj/machinery/door/airlock/cult/friendly - friendly = TRUE - -/obj/machinery/door/airlock/cult/glass - glass = TRUE - opacity = FALSE - -/obj/machinery/door/airlock/cult/glass/friendly - friendly = TRUE - -/obj/machinery/door/airlock/cult/unruned - icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi' - overlays_file = 'icons/obj/doors/airlocks/cult/unruned/overlays.dmi' - assemblytype = /obj/structure/door_assembly/door_assembly_cult/unruned - openingoverlaytype = /obj/effect/temp_visual/cult/door/unruned - -/obj/machinery/door/airlock/cult/unruned/friendly - friendly = TRUE - -/obj/machinery/door/airlock/cult/unruned/glass - glass = TRUE - opacity = FALSE - -/obj/machinery/door/airlock/cult/unruned/glass/friendly - friendly = TRUE - -/obj/machinery/door/airlock/cult/weak - name = "brittle cult airlock" - desc = "An airlock hastily corrupted by blood magic, it is unusually brittle in this state." - normal_integrity = 150 - damage_deflection = 5 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - ////////////////////////////////// /* Misc Airlocks diff --git a/code/game/machinery/drone_dispenser.dm b/code/game/machinery/drone_dispenser.dm index 4603044ab285..bb79d5f7e46e 100644 --- a/code/game/machinery/drone_dispenser.dm +++ b/code/game/machinery/drone_dispenser.dm @@ -108,28 +108,6 @@ recharge_sound = null recharge_message = null -/obj/machinery/droneDispenser/swarmer - name = "swarmer fabricator" - desc = "An alien machine of unknown origin. It whirs and hums with green-blue light, the air above it shimmering." - icon = 'icons/obj/objects.dmi' - icon_state = "hivebot_fab" - icon_off = "hivebot_fab" - icon_on = "hivebot_fab" - icon_recharging = "hivebot_fab" - icon_creating = "hivebot_fab_on" - metal_cost = 0 - glass_cost = 0 - cooldownTime = 300 //30 seconds - maximum_idle = 0 // Swarmers have no restraint - dispense_type = /obj/effect/mob_spawn/swarmer - begin_create_message = "hums softly as an interface appears above it, scrolling by at unreadable speed." - end_create_message = "materializes a strange shell, which drops to the ground." - recharging_text = "Its lights are slowly increasing in brightness." - work_sound = 'sound/effects/empulse.ogg' - create_sound = 'sound/effects/phasein.ogg' - break_sound = 'sound/effects/empulse.ogg' - break_message = "slowly falls dark, lights stuttering." - /obj/machinery/droneDispenser/examine(mob/user) . = ..() if((mode == DRONE_RECHARGING) && !machine_stat && recharging_text) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 47db5ce6d0ef..e6e754c4b807 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -43,27 +43,6 @@ if(.) //damage was dealt new /obj/effect/temp_visual/impact_effect/ion(loc) -/obj/structure/emergency_shield/sanguine - name = "sanguine barrier" - desc = "A potent shield summoned by cultists to defend their rites." - icon_state = "shield-red" - max_integrity = 60 - -/obj/structure/emergency_shield/sanguine/emp_act(severity) - return - -/obj/structure/emergency_shield/invoker - name = "Invoker's Shield" - desc = "A weak shield summoned by cultists to protect them while they carry out delicate rituals." - color = "#FF0000" - max_integrity = 20 - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - layer = ABOVE_MOB_LAYER - -/obj/structure/emergency_shield/invoker/emp_act(severity) - return - - /obj/machinery/shieldgen name = "anti-breach shielding projector" desc = "Used to seal minor hull breaches." diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 12085b7d62d4..b46ccaca9f60 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -148,7 +148,3 @@ /obj/item/sbeacondrop/penetratorturret desc = "A label on it reads: Warning: Activating this device will send a penetrator turret to your location." droptype = /obj/machinery/porta_turret/syndicate/shuttle - -/obj/item/sbeacondrop/constructshell - desc = "A label on it reads: Warning: Activating this device will send a Nar'sian construct shell to your location." - droptype = /obj/structure/constructshell diff --git a/code/game/objects/effects/blessing.dm b/code/game/objects/effects/blessing.dm index be2d89707882..66b027f2e516 100644 --- a/code/game/objects/effects/blessing.dm +++ b/code/game/objects/effects/blessing.dm @@ -16,14 +16,7 @@ I.alpha = 64 I.appearance_flags = RESET_ALPHA add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessedAware, "blessing", I) - RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, PROC_REF(block_cult_teleport)) /obj/effect/blessing/Destroy() UnregisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT) return ..() - -/obj/effect/blessing/proc/block_cult_teleport(datum/source, channel, turf/origin, turf/destination) - SIGNAL_HANDLER - - if(channel == TELEPORT_CHANNEL_CULT) - return COMPONENT_BLOCK_TELEPORT diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index e46d8d92e82a..d4278d775888 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -19,14 +19,6 @@ /obj/effect/forcefield/singularity_pull() return -/obj/effect/forcefield/cult - desc = "An unholy shield that blocks all attacks." - name = "glowing wall" - icon = 'icons/effects/cult_effects.dmi' - icon_state = "cultshield" - CanAtmosPass = ATMOS_PASS_NO - timeleft = 200 - ///////////Mimewalls/////////// /obj/effect/forcefield/mime diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index 7fee84da562f..151be9b026da 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -49,7 +49,7 @@ AI MODULES //Handle the lawcap if(law_datum) var/tot_laws = 0 - for(var/lawlist in list(law_datum.devillaws, law_datum.inherent, law_datum.supplied, law_datum.ion, law_datum.hacked, laws)) + for(var/lawlist in list(law_datum.inherent, law_datum.supplied, law_datum.ion, law_datum.hacked, laws)) for(var/mylaw in lawlist) if(mylaw != "") tot_laws++ diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index d2ce379274dc..232b4570a97e 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -150,7 +150,6 @@ if(A.outdoors) return AREA_SPACE var/list/SPECIALS = list( - /area/shuttle, /area/centcom, /area/asteroid, /area/tdome, diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm index 121fa9f0c234..0a7094fb3895 100644 --- a/code/game/objects/items/implants/implant_mindshield.dm +++ b/code/game/objects/items/implants/implant_mindshield.dm @@ -28,10 +28,7 @@ deconverted = TRUE if(!silent) - if(target.mind in SSticker.mode.cult) - to_chat(target, "You feel something interfering with your mental conditioning, but you resist it!") - else - to_chat(target, "You feel a sense of peace and security. You are now protected from brainwashing.") + to_chat(target, "You feel a sense of peace and security. You are now protected from brainwashing.") ADD_TRAIT(target, TRAIT_MINDSHIELD, "implant") target.sec_hud_set_implants() if(deconverted) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 3194c1302512..6aba20463392 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -289,7 +289,6 @@ if(M.laws.id == DEFAULT_AI_LAWID) O.make_laws() - SSticker.mode.remove_antag_for_borging(B.mind) O.job = "Cyborg" O.cell = chest.cell diff --git a/code/game/objects/items/shuttle_creator.dm b/code/game/objects/items/shuttle_creator.dm index 781020f87318..9f25041d1f00 100644 --- a/code/game/objects/items/shuttle_creator.dm +++ b/code/game/objects/items/shuttle_creator.dm @@ -218,7 +218,6 @@ /obj/item/shuttle_creator/proc/check_current_area(mob/user) var/static/area_or_turf_fail_types = typecacheof(list( /turf/open/space, - /area/shuttle )) //Check to see if the user can make a new area to prevent spamming if(user) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index c00ba77b21b8..ce64af1fd205 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -7,7 +7,6 @@ * Plastic * Cardboard * Paper Frames - * Runed Metal (cult) * Bronze (bake brass) */ diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 54ccfc301e9c..c6d55e03ef48 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -405,32 +405,6 @@ var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 5 -/obj/item/storage/belt/soulstone - name = "soul stone belt" - desc = "Designed for ease of access to the shards during a fight, as to not let a single enemy spirit slip away." - icon_state = "soulstone" - item_state = "soulstone" - -/obj/item/storage/belt/soulstone/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 6 - STR.set_holdable(list( - /obj/item/soulstone - )) - -/obj/item/storage/belt/soulstone/full/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/soulstone(src) - -/obj/item/storage/belt/soulstone/full/chappy/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/soulstone/anybody/chaplain(src) - -/obj/item/storage/belt/soulstone/full/purified/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/soulstone/anybody/purified(src) - /obj/item/storage/belt/champion name = "championship belt" desc = "Proves to the world that you are the strongest!" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 3ef2d547931a..9516c7128090 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -561,12 +561,3 @@ /obj/item/storage/box/syndie_kit/signaler/PopulateContents() for(var/i in 1 to 6) new /obj/item/assembly/signaler(src) - -/obj/item/storage/box/syndie_kit/cultconstructkit - name = "cult construct kit" - desc = "A sleek, sturdy box with an ominous, dark energy inside. Yikes." - -/obj/item/storage/box/syndie_kit/cultconstructkit/PopulateContents() - new /obj/item/storage/belt/soulstone/full/purified(src) - new /obj/item/sbeacondrop/constructshell(src) - new /obj/item/sbeacondrop/constructshell(src) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 7d2828c41660..6d6d258b5b0c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -542,31 +542,6 @@ /obj/item/toy/talking/AI/generate_messages() return list(generate_ion_law()) -/obj/item/toy/talking/codex_gigas - name = "Toy Codex Gigas" - desc = "A tool to help you write fictional devils!" - icon = 'icons/obj/library.dmi' - icon_state = "demonomicon" - lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' - w_class = WEIGHT_CLASS_SMALL - recharge_time = 60 - -/obj/item/toy/talking/codex_gigas/activation_message(mob/user) - user.visible_message( - "[user] presses the button on \the [src].", - "You press the button on \the [src].", - "You hear a soft click.") - -/obj/item/toy/talking/codex_gigas/generate_messages() - var/datum/fakeDevil/devil = new - var/list/messages = list() - messages += "Some fun facts about: [devil.truename]" - messages += "[GLOB.lawlorify[LORE][devil.obligation]]" - messages += "[GLOB.lawlorify[LORE][devil.ban]]" - messages += "[GLOB.lawlorify[LORE][devil.banish]]" - return messages - /obj/item/toy/talking/owl name = "owl action figure" desc = "An action figure modeled after 'The Owl', defender of justice." diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index 1994ff330dd9..dba1c510767d 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -220,7 +220,6 @@ to_chat(user, "You connect the monitor.") if(brain) var/mob/living/brain/B = brain.brainmob - SSticker.mode.remove_antag_for_borging(B.mind) var/mob/living/silicon/ai/A = null diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 31e9d9a0b8fc..8ee8d8214f80 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -209,7 +209,7 @@ LINEN BINS /obj/item/bedsheet/cult name = "cultist's bedsheet" - desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." + desc = "You might dream of elder gods if you sleep with this. It seems rather tattered." icon_state = "sheetcult" item_state = "sheetcult" dream_messages = list("a tome", "a floating red crystal", "a glowing sword", "a bloody symbol", "a massive humanoid figure") diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm index d2bcf77cfda7..b77f86be469f 100644 --- a/code/game/objects/structures/door_assembly_types.dm +++ b/code/game/objects/structures/door_assembly_types.dm @@ -141,20 +141,6 @@ airlock_type = /obj/machinery/door/airlock/shuttle glass_type = /obj/machinery/door/airlock/shuttle/glass -/obj/structure/door_assembly/door_assembly_cult - name = "cult airlock assembly" - icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi' - base_name = "cult airlock" - overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi' - airlock_type = /obj/machinery/door/airlock/cult - glass_type = /obj/machinery/door/airlock/cult/glass - -/obj/structure/door_assembly/door_assembly_cult/unruned - icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi' - overlays_file = 'icons/obj/doors/airlocks/cult/unruned/overlays.dmi' - airlock_type = /obj/machinery/door/airlock/cult/unruned - glass_type = /obj/machinery/door/airlock/cult/unruned/glass - /obj/structure/door_assembly/door_assembly_viro name = "virology airlock assembly" icon = 'icons/obj/doors/airlocks/station/virology.dmi' diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index aed3ae724c59..f8893a3e3bc9 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -102,58 +102,6 @@ head = /obj/item/clothing/head/helmet/gladiator uniform = /obj/item/clothing/under/costume/gladiator/ash_walker -/obj/effect/mob_spawn/human/demonic_friend - name = "Essence of friendship" - desc = "Oh boy! Oh boy! A friend!" - mob_name = "Demonic friend" - icon = 'icons/obj/cardboard_cutout.dmi' - icon_state = "cutout_basic" - outfit = /datum/outfit/demonic_friend - death = FALSE - roundstart = FALSE - random = TRUE - id_job = "SuperFriend" - var/obj/effect/proc_holder/spell/targeted/summon_friend/spell - var/datum/mind/owner - assignedrole = "SuperFriend" - -/obj/effect/mob_spawn/human/demonic_friend/Initialize(mapload, datum/mind/owner_mind, obj/effect/proc_holder/spell/targeted/summon_friend/summoning_spell) - . = ..() - owner = owner_mind - flavour_text = "You have been given a reprieve from your eternity of torment, to be [owner.name]'s friend for [owner.p_their()] short mortal coil." - important_info = "Be aware that if you do not live up to [owner.name]'s expectations, they can send you back to hell with a single thought. [owner.name]'s death will also return you to hell." - var/area/A = get_area(src) - if(!mapload && A) - notify_ghosts("\A friendship shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE) - objectives = "Be [owner.name]'s friend, and keep [owner.name] alive, so you don't get sent back to hell." - spell = summoning_spell - - -/obj/effect/mob_spawn/human/demonic_friend/special(mob/living/L) - if(!QDELETED(owner.current) && owner.current.stat != DEAD) - L.fully_replace_character_name(null,"[owner.name]'s best friend") - soullink(/datum/soullink/oneway, owner.current, L) - spell.friend = L - spell.charge_counter = spell.charge_max - L.mind.hasSoul = FALSE - var/mob/living/carbon/human/H = L - var/obj/item/worn = H.wear_id - var/obj/item/card/id/id = worn.GetID() - id.registered_name = L.real_name - id.update_label() - else - to_chat(L, "Your owner is already dead! You will soon perish.") - addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, dust), 150)) //Give em a few seconds as a mercy. - -/datum/outfit/demonic_friend - name = "Demonic Friend" - uniform = /obj/item/clothing/under/misc/assistantformal - shoes = /obj/item/clothing/shoes/laceup - r_pocket = /obj/item/radio - back = /obj/item/storage/backpack - implants = list(/obj/item/implant/mindshield) //No revolutionaries, he's MY friend. - id = /obj/item/card/id - /obj/effect/mob_spawn/human/syndicate name = "Syndicate Operative" roundstart = FALSE diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index df0d3cf1f43c..5f35e69d098e 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -314,10 +314,6 @@ new remains(loc) qdel(src) -/obj/structure/girder/narsie_act() - new /obj/structure/girder/cult(loc) - qdel(src) - /obj/structure/girder/displaced name = "displaced girder" icon_state = "displaced" @@ -339,56 +335,6 @@ new remains(loc, 2) qdel(src) - - -//////////////////////////////////////////// cult girder ////////////////////////////////////////////// - -/obj/structure/girder/cult - name = "runed girder" - desc = "Framework made of a strange and shockingly cold metal. It doesn't seem to have any bolts." - icon = 'icons/obj/cult.dmi' - icon_state= "cultgirder" - can_displace = FALSE - -/obj/structure/girder/cult/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - if(W.tool_behaviour == TOOL_WELDER) - if(!W.tool_start_check(user, amount=0)) - return - - to_chat(user, "You start slicing apart the girder...") - if(W.use_tool(src, user, 40, volume=50)) - to_chat(user, "You slice apart the girder.") - var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 1) - transfer_fingerprints_to(R) - qdel(src) - - else if(istype(W, /obj/item/stack/sheet/mineral/hidden/hellstone)) - var/obj/item/stack/sheet/mineral/hidden/hellstone/R = W - if(R.get_amount() < 1) - to_chat(user, "You need at least one sheet of runed metal to construct a runed wall!") - return 0 - user.visible_message("[user] begins laying runed metal on [src]...", "You begin constructing a runed wall...") - if(do_after(user, 50, target = src)) - if(R.get_amount() < 1) - return - user.visible_message("[user] plates [src] with runed metal.", "You construct a runed wall.") - R.use(1) - var/turf/T = get_turf(src) - T.PlaceOnTop(/turf/closed/wall/mineral/cult) - qdel(src) - - else - return ..() - -/obj/structure/girder/cult/narsie_act() - return - -/obj/structure/girder/cult/deconstruct(disassembled = TRUE) - if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1) - qdel(src) - /obj/structure/girder/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_FLOORWALL) diff --git a/code/game/turfs/closed/wall/misc_walls.dm b/code/game/turfs/closed/wall/misc_walls.dm index b674e25fc8f8..6bbe3c623be0 100644 --- a/code/game/turfs/closed/wall/misc_walls.dm +++ b/code/game/turfs/closed/wall/misc_walls.dm @@ -8,24 +8,12 @@ canSmoothWith = null sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone sheet_amount = 1 - girder_type = /obj/structure/girder/cult - max_integrity = 600 /turf/closed/wall/mineral/cult/Initialize(mapload, inherited_virtual_z) new /obj/effect/temp_visual/cult/turf(src) . = ..() -/turf/closed/wall/mineral/cult/Exited(atom/movable/AM, atom/newloc) - . = ..() - if(istype(AM, /mob/living/simple_animal/hostile/construct/harvester)) //harvesters can go through cult walls, dragging something with - var/mob/living/simple_animal/hostile/construct/harvester/H = AM - var/atom/movable/stored_pulling = H.pulling - if(stored_pulling) - stored_pulling.setDir(get_dir(stored_pulling.loc, newloc)) - stored_pulling.forceMove(src) - H.start_pulling(stored_pulling, supress_message = TRUE) - /turf/closed/wall/mineral/cult/artificer name = "runed stone wall" desc = "A cold stone wall engraved with indecipherable symbols. Studying them causes your head to pound." diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index f7eac409b836..23fdfcc6d998 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -180,11 +180,6 @@ else if(prob(50)) ReplaceWithLattice() -/turf/open/floor/narsie_act(force, ignore_mobs, probability = 20) - . = ..() - if(.) - ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) - /turf/open/floor/acid_melt() ScrapeAway(flags = CHANGETURF_INHERIT_AIR) diff --git a/code/game/turfs/open/floor/reinf_floor.dm b/code/game/turfs/open/floor/reinf_floor.dm index 7fb94e541bda..9094b0a3238f 100644 --- a/code/game/turfs/open/floor/reinf_floor.dm +++ b/code/game/turfs/open/floor/reinf_floor.dm @@ -141,36 +141,6 @@ name = "hydrogen mix floor" initial_gas_mix = ATMOS_TANK_HYDROGEN_FUEL -/turf/open/floor/engine/cult - name = "engraved floor" - desc = "The air smells strange over this sinister flooring." - icon_state = "plating" - floor_tile = null - var/obj/effect/cult_turf/overlay/floor/bloodcult/realappearance - - -/turf/open/floor/engine/cult/Initialize(mapload, inherited_virtual_z) - . = ..() - new /obj/effect/temp_visual/cult/turf/floor(src) - realappearance = new /obj/effect/cult_turf/overlay/floor/bloodcult(src) - realappearance.linked = src - -/turf/open/floor/engine/cult/Destroy() - be_removed() - return ..() - -/turf/open/floor/engine/cult/ChangeTurf(path, new_baseturf, flags) - if(path != type) - be_removed() - return ..() - -/turf/open/floor/engine/cult/proc/be_removed() - qdel(realappearance) - realappearance = null - -/turf/open/floor/engine/cult/airless - initial_gas_mix = AIRLESS_ATMOS - /turf/open/floor/engine/vacuum name = "vacuum floor" initial_gas_mix = AIRLESS_ATMOS diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d05fd3ee3b98..b62a7830cc0d 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -850,22 +850,6 @@ if(!ai_number) to_chat(usr, "No AIs located" , confidential = TRUE) -/datum/admins/proc/output_all_devil_info() - var/devil_number = 0 - for(var/datum/mind/D in SSticker.mode.devils) - devil_number++ - var/datum/antagonist/devil/devil = D.has_antag_datum(/datum/antagonist/devil) - to_chat(usr, "Devil #[devil_number]:

    " + devil.printdevilinfo(), confidential = TRUE) - if(!devil_number) - to_chat(usr, "No Devils located" , confidential = TRUE) - -/datum/admins/proc/output_devil_info(mob/living/M) - if(is_devil(M)) - var/datum/antagonist/devil/devil = M.mind.has_antag_datum(/datum/antagonist/devil) - to_chat(usr, devil.printdevilinfo(), confidential = TRUE) - else - to_chat(usr, "[M] is not a devil.", confidential = TRUE) - /datum/admins/proc/dynamic_mode_options(mob/user) var/dat = {"

    Dynamic Mode Options


    diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index 04e84097f6d1..0be2f41696e6 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -136,8 +136,3 @@ /obj/effect/forcefield/arena_shuttle_entrance/proc/do_bloodbath(mob/living/L) var/obj/item/mine/pressure/pickup/bloodbath/B = new (L) B.mine_effect(L) - -/area/shuttle_arena - name = "arena" - has_gravity = STANDARD_GRAVITY - requires_power = FALSE diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm index 28646666b46a..bd3d189f85eb 100644 --- a/code/modules/admin/sql_ban_system.dm +++ b/code/modules/admin/sql_ban_system.dm @@ -285,8 +285,8 @@ var/list/long_job_lists = list("Service" = GLOB.service_positions, "Ghost and Other Roles" = list(ROLE_BRAINWASHED, ROLE_DEATHSQUAD, ROLE_DRONE, ROLE_LAVALAND, ROLE_MIND_TRANSFER, ROLE_POSIBRAIN, ROLE_SENTIENCE), "Antagonist Positions" = list(ROLE_ABDUCTOR, ROLE_ALIEN, - ROLE_BROTHER, ROLE_CHANGELING, ROLE_CULTIST, - ROLE_DEVIL, ROLE_INTERNAL_AFFAIRS, ROLE_MALF, + ROLE_BROTHER, ROLE_CHANGELING, + ROLE_INTERNAL_AFFAIRS, ROLE_MALF, ROLE_MONKEY, ROLE_NINJA, ROLE_OPERATIVE, ROLE_OVERTHROW, ROLE_REV, ROLE_REVENANT, ROLE_REV_HEAD, ROLE_SYNDICATE, diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 7f546f5a6e7d..5123eed0be58 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -78,13 +78,6 @@ else message_admins("[key_name_admin(usr)] tried to create changelings. Unfortunately, there were no candidates available.") log_admin("[key_name(usr)] failed to create changelings.") - if("cult") - if(src.makeCult()) - message_admins("[key_name(usr)] started a cult.") - log_admin("[key_name(usr)] started a cult.") - else - message_admins("[key_name_admin(usr)] tried to start a cult. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to start a cult.") if("wizard") message_admins("[key_name(usr)] is creating a wizard...") if(src.makeWizard()) @@ -350,14 +343,6 @@ M.change_mob_type(/mob/living/simple_animal/parrot , null, null, delmob) if("polyparrot") M.change_mob_type(/mob/living/simple_animal/parrot/Polly , null, null, delmob) - if("constructjuggernaut") - M.change_mob_type(/mob/living/simple_animal/hostile/construct/juggernaut , null, null, delmob) - if("constructartificer") - M.change_mob_type(/mob/living/simple_animal/hostile/construct/artificer , null, null, delmob) - if("constructwraith") - M.change_mob_type(/mob/living/simple_animal/hostile/construct/wraith , null, null, delmob) - if("shade") - M.change_mob_type(/mob/living/simple_animal/shade , null, null, delmob) else if(href_list["boot2"]) if(!check_rights(R_ADMIN)) @@ -1140,12 +1125,6 @@ return output_ai_laws() - else if(href_list["admincheckdevilinfo"]) - if(!check_rights(R_ADMIN)) - return - var/mob/M = locate(href_list["admincheckdevilinfo"]) - output_devil_info(M) - else if(href_list["adminmoreinfo"]) var/mob/M = locate(href_list["adminmoreinfo"]) in GLOB.mob_list if(!ismob(M)) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index abdecf91de60..e30519342ffb 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -16,7 +16,6 @@ var/dat = {" Make Traitors
    Make Changelings
    - Make Cult
    Make Wizard (Requires Ghosts)
    Make Nuke Team (Requires Ghosts)
    Make Response Team (Requires Ghosts)
    @@ -113,38 +112,6 @@ new_character.mind.make_Wizard() return TRUE - -/datum/admins/proc/makeCult() - var/datum/game_mode/cult/temp = new - if(CONFIG_GET(flag/protect_roles_from_antagonist)) - temp.restricted_jobs += temp.protected_jobs - - if(CONFIG_GET(flag/protect_assistant_from_antagonist)) - temp.restricted_jobs += "Assistant" - - var/list/mob/living/carbon/human/candidates = list() - var/mob/living/carbon/human/H = null - - for(var/mob/living/carbon/human/applicant in GLOB.player_list) - if(isReadytoRumble(applicant, ROLE_CULTIST)) - if(temp.age_check(applicant.client)) - if(!(applicant.job in temp.restricted_jobs)) - candidates += applicant - - if(candidates.len) - var/numCultists = min(candidates.len, 4) - - for(var/i = 0, iYou are feeling far too docile to do that.") return - if(iscultist(victim) || HAS_TRAIT(victim, TRAIT_MINDSHIELD)) - to_chat(src, "[victim]'s mind seems to be blocked by some unknown force!") - return - else log_game("[src]/([src.ckey]) assumed control of [victim]/([victim.ckey] with borer powers.") diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm deleted file mode 100644 index b4bfb265386d..000000000000 --- a/code/modules/antagonists/cult/blood_magic.dm +++ /dev/null @@ -1,803 +0,0 @@ -/datum/action/innate/cult/blood_magic //Blood magic handles the creation of blood spells (formerly talismans) - name = "Prepare Blood Magic" - button_icon_state = "carve" - desc = "Prepare blood magic by carving runes into your flesh. This is easier with an empowering rune." - var/list/spells = list() - var/channeling = FALSE - -/datum/action/innate/cult/blood_magic/Grant() - ..() - button.screen_loc = DEFAULT_BLOODSPELLS - button.moved = DEFAULT_BLOODSPELLS - button.ordered = FALSE - -/datum/action/innate/cult/blood_magic/Remove() - for(var/X in spells) - qdel(X) - ..() - -/datum/action/innate/cult/blood_magic/IsAvailable() - if(!iscultist(owner)) - return FALSE - return ..() - -/datum/action/innate/cult/blood_magic/proc/Positioning() - var/list/screen_loc_split = splittext(button.screen_loc,",") - var/list/screen_loc_X = splittext(screen_loc_split[1],":") - var/list/screen_loc_Y = splittext(screen_loc_split[2],":") - var/pix_X = text2num(screen_loc_X[2]) - for(var/datum/action/innate/cult/blood_spell/B in spells) - if(B.button.locked) - var/order = pix_X+spells.Find(B)*31 - B.button.screen_loc = "[screen_loc_X[1]]:[order],[screen_loc_Y[1]]:[screen_loc_Y[2]]" - B.button.moved = B.button.screen_loc - -/datum/action/innate/cult/blood_magic/Activate() - var/rune = FALSE - var/limit = RUNELESS_MAX_BLOODCHARGE - for(var/obj/effect/rune/empower/R in range(1, owner)) - rune = TRUE - break - if(rune) - limit = MAX_BLOODCHARGE - if(spells.len >= limit) - if(rune) - to_chat(owner, "You cannot store more than [MAX_BLOODCHARGE] spells. Pick a spell to remove.") - else - to_chat(owner, "You cannot store more than [RUNELESS_MAX_BLOODCHARGE] spells without an empowering rune! Pick a spell to remove.") - var/nullify_spell = input(owner, "Choose a spell to remove.", "Current Spells") as null|anything in spells - if(nullify_spell) - qdel(nullify_spell) - return - var/entered_spell_name - var/datum/action/innate/cult/blood_spell/BS - var/list/possible_spells = list() - for(var/I in subtypesof(/datum/action/innate/cult/blood_spell)) - var/datum/action/innate/cult/blood_spell/J = I - var/cult_name = initial(J.name) - possible_spells[cult_name] = J - possible_spells += "(REMOVE SPELL)" - entered_spell_name = input(owner, "Pick a blood spell to prepare...", "Spell Choices") as null|anything in possible_spells - if(entered_spell_name == "(REMOVE SPELL)") - var/nullify_spell = input(owner, "Choose a spell to remove.", "Current Spells") as null|anything in spells - if(nullify_spell) - qdel(nullify_spell) - return - BS = possible_spells[entered_spell_name] - if(QDELETED(src) || owner.incapacitated() || !BS || (rune && !(locate(/obj/effect/rune/empower) in range(1, owner))) || (spells.len >= limit)) - return - to_chat(owner,"You begin to carve unnatural symbols into your flesh!") - SEND_SOUND(owner, sound('sound/weapons/slice.ogg',0,1,10)) - if(!channeling) - channeling = TRUE - else - to_chat(owner, "You are already invoking blood magic!") - return - if(do_after(owner, 100 - rune*60, target = owner)) - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - H.bleed(40 - rune*32) - var/datum/action/innate/cult/blood_spell/new_spell = new BS(owner) - new_spell.Grant(owner, src) - spells += new_spell - Positioning() - to_chat(owner, "Your wounds glow with power, you have prepared a [new_spell.name] invocation!") - channeling = FALSE - -/datum/action/innate/cult/blood_spell //The next generation of talismans, handles storage/creation of blood magic - name = "Blood Magic" - button_icon_state = "telerune" - desc = "Fear the Old Blood." - var/charges = 1 - var/magic_path = null - var/obj/item/melee/blood_magic/hand_magic - var/datum/action/innate/cult/blood_magic/all_magic - var/base_desc //To allow for updating tooltips - var/invocation - var/health_cost = 0 - -/datum/action/innate/cult/blood_spell/Grant(mob/living/owner, datum/action/innate/cult/blood_magic/BM) - if(health_cost) - desc += "
    Deals [health_cost] damage to your arm per use." - base_desc = desc - desc += "
    Has [charges] use\s remaining." - all_magic = BM - ..() - button.locked = TRUE - button.ordered = FALSE - -/datum/action/innate/cult/blood_spell/Remove() - if(all_magic) - all_magic.spells -= src - if(hand_magic) - qdel(hand_magic) - hand_magic = null - ..() - -/datum/action/innate/cult/blood_spell/IsAvailable() - if(!iscultist(owner) || owner.incapacitated() || !charges) - return FALSE - return ..() - -/datum/action/innate/cult/blood_spell/Activate() - if(magic_path) //If this spell flows from the hand - if(!hand_magic) - hand_magic = new magic_path(owner, src) - if(!owner.put_in_hands(hand_magic)) - qdel(hand_magic) - hand_magic = null - to_chat(owner, "You have no empty hand for invoking blood magic!") - return - to_chat(owner, "Your wounds glow as you invoke the [name].") - return - if(hand_magic) - qdel(hand_magic) - hand_magic = null - to_chat(owner, "You snuff out the spell, saving it for later.") - - -//Cult Blood Spells -/datum/action/innate/cult/blood_spell/stun - name = "Stun" - desc = "Empowers your hand to stun and mute a victim on contact." - button_icon_state = "hand" - magic_path = "/obj/item/melee/blood_magic/stun" - health_cost = 10 - -/datum/action/innate/cult/blood_spell/teleport - name = "Teleport" - desc = "Empowers your hand to teleport yourself or another cultist to a teleport rune on contact." - button_icon_state = "tele" - magic_path = "/obj/item/melee/blood_magic/teleport" - health_cost = 7 - -/datum/action/innate/cult/blood_spell/emp - name = "Electromagnetic Pulse" - desc = "Emits a large electromagnetic pulse." - button_icon_state = "emp" - health_cost = 10 - invocation = "Ta'gh fara'qha fel d'amar det!" - -/datum/action/innate/cult/blood_spell/emp/Activate() - owner.visible_message( - "[owner]'s hand flashes a bright blue!", \ - "You speak the cursed words, emitting an EMP blast from your hand.") - empulse(owner, 2, 5) - owner.whisper(invocation, language = /datum/language/common) - charges-- - if(charges<=0) - qdel(src) - -/datum/action/innate/cult/blood_spell/shackles - name = "Shadow Shackles" - desc = "Empowers your hand to start handcuffing victim on contact, and mute them if successful." - button_icon_state = "cuff" - charges = 4 - magic_path = "/obj/item/melee/blood_magic/shackles" - -/datum/action/innate/cult/blood_spell/construction - name = "Twisted Construction" - desc = "Empowers your hand to corrupt certain metalic objects.
    Converts:
    Plasteel into runed metal
    50 metal into a construct shell
    Living cyborgs into constructs after a delay
    Cyborg shells into construct shells
    Airlocks into brittle runed airlocks after a delay (harm intent)" - button_icon_state = "transmute" - magic_path = "/obj/item/melee/blood_magic/construction" - health_cost = 12 - -/datum/action/innate/cult/blood_spell/horror - name = "Hallucinations" - desc = "Gives hallucinations to a target at range. A silent and invisible spell." - button_icon_state = "horror" - var/obj/effect/proc_holder/horror/PH - charges = 4 - -/datum/action/innate/cult/blood_spell/horror/New() - PH = new() - PH.attached_action = src - ..() - -/datum/action/innate/cult/blood_spell/horror/Destroy() - var/obj/effect/proc_holder/horror/destroy = PH - . = ..() - if(destroy && !QDELETED(destroy)) - QDEL_NULL(destroy) - -/datum/action/innate/cult/blood_spell/horror/Activate() - PH.toggle(owner) //the important bit - return TRUE - -/obj/effect/proc_holder/horror - active = FALSE - ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' - var/datum/action/innate/cult/blood_spell/attached_action - -/obj/effect/proc_holder/horror/Destroy() - var/datum/action/innate/cult/blood_spell/AA = attached_action - . = ..() - if(AA && !QDELETED(AA)) - QDEL_NULL(AA) - -/obj/effect/proc_holder/horror/proc/toggle(mob/user) - if(active) - remove_ranged_ability("You dispel the magic...") - else - add_ranged_ability(user, "You prepare to horrify a target...") - -/obj/effect/proc_holder/horror/InterceptClickOn(mob/living/caller, params, atom/target) - if(..()) - return - if(ranged_ability_user.incapacitated() || !iscultist(caller)) - remove_ranged_ability() - return - var/turf/T = get_turf(ranged_ability_user) - if(!isturf(T)) - return FALSE - if(target in view(7, get_turf(ranged_ability_user))) - if(!ishuman(target) || iscultist(target)) - return - var/mob/living/carbon/human/H = target - H.hallucination = max(H.hallucination, 120) - SEND_SOUND(ranged_ability_user, sound('sound/effects/ghost.ogg',0,1,50)) - var/image/C = image('icons/effects/cult_effects.dmi',H,"bloodsparkles", ABOVE_MOB_LAYER) - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE) - addtimer(CALLBACK(H, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), 2400, TIMER_OVERRIDE|TIMER_UNIQUE) - to_chat(ranged_ability_user,"[H] has been cursed with living nightmares!") - attached_action.charges-- - attached_action.desc = attached_action.base_desc - attached_action.desc += "
    Has [attached_action.charges] use\s remaining." - attached_action.UpdateButtonIcon() - if(attached_action.charges <= 0) - remove_ranged_ability("You have exhausted the spell's power!") - qdel(src) - -/datum/action/innate/cult/blood_spell/veiling - name = "Conceal Presence" - desc = "Alternates between hiding and revealing nearby cult structures and runes." - invocation = "Kla'atu barada nikt'o!" - button_icon_state = "gone" - charges = 10 - var/revealing = FALSE //if it reveals or not - -/datum/action/innate/cult/blood_spell/veiling/Activate() - if(!revealing) - owner.visible_message("Thin grey dust falls from [owner]'s hand!", \ - "You invoke the veiling spell, hiding nearby runes.") - charges-- - SEND_SOUND(owner, sound('sound/magic/smoke.ogg',0,1,25)) - owner.whisper(invocation, language = /datum/language/common) - for(var/obj/effect/rune/R in range(5,owner)) - R.conceal() - for(var/obj/structure/destructible/cult/S in range(5,owner)) - S.conceal() - for(var/turf/open/floor/engine/cult/T in range(5,owner)) - T.realappearance.alpha = 0 - for(var/obj/machinery/door/airlock/cult/AL in range(5, owner)) - AL.conceal() - revealing = TRUE - name = "Reveal Runes" - button_icon_state = "back" - else - owner.visible_message( - "A flash of light shines from [owner]'s hand!", \ - "You invoke the counterspell, revealing nearby runes.") - charges-- - owner.whisper(invocation, language = /datum/language/common) - SEND_SOUND(owner, sound('sound/magic/enter_blood.ogg',0,1,25)) - for(var/obj/effect/rune/R in range(7,owner)) //More range in case you weren't standing in exactly the same spot - R.reveal() - for(var/obj/structure/destructible/cult/S in range(6,owner)) - S.reveal() - for(var/turf/open/floor/engine/cult/T in range(6,owner)) - T.realappearance.alpha = initial(T.realappearance.alpha) - for(var/obj/machinery/door/airlock/cult/AL in range(6, owner)) - AL.reveal() - revealing = FALSE - name = "Conceal Runes" - button_icon_state = "gone" - if(charges<= 0) - qdel(src) - desc = base_desc - desc += "
    Has [charges] use\s remaining." - UpdateButtonIcon() - -/datum/action/innate/cult/blood_spell/manipulation - name = "Blood Rites" - desc = "Empowers your hand to absorb blood to be used for advanced rites, or heal a cultist on contact. Use the spell in-hand to cast advanced rites." - invocation = "Fel'th Dol Ab'orod!" - button_icon_state = "manip" - charges = 5 - magic_path = "/obj/item/melee/blood_magic/manipulator" - - -// The "magic hand" items -/obj/item/melee/blood_magic - name = "\improper magical aura" - desc = "A sinister looking aura that distorts the flow of reality around it." - icon = 'icons/obj/items.dmi' - lefthand_file = 'icons/mob/inhands/misc/touchspell_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/touchspell_righthand.dmi' - icon_state = "disintegrate" - item_state = "disintegrate" - item_flags = NEEDS_PERMIT | ABSTRACT | DROPDEL - - w_class = WEIGHT_CLASS_HUGE - throwforce = 0 - throw_range = 0 - throw_speed = 0 - var/invocation - var/uses = 1 - var/health_cost = 0 //The amount of health taken from the user when invoking the spell - var/datum/action/innate/cult/blood_spell/source - -/obj/item/melee/blood_magic/New(loc, spell) - if(spell) - source = spell - uses = source.charges - health_cost = source.health_cost - ..() - -/obj/item/melee/blood_magic/Destroy() - if(!QDELETED(source)) - if(uses <= 0) - source.hand_magic = null - qdel(source) - source = null - else - source.hand_magic = null - source.charges = uses - source.desc = source.base_desc - source.desc += "
    Has [uses] use\s remaining." - source.UpdateButtonIcon() - return ..() - -/obj/item/melee/blood_magic/attack_self(mob/living/user) - afterattack(user, user, TRUE) - -/obj/item/melee/blood_magic/attack(mob/living/M, mob/living/carbon/user) - if(!iscarbon(user) || !iscultist(user)) - uses = 0 - qdel(src) - return - log_combat(user, M, "used a cult spell on", source.name, "") - M.lastattacker = user.real_name - M.lastattackerckey = user.ckey - -/obj/item/melee/blood_magic/afterattack(atom/target, mob/living/carbon/user, proximity) - . = ..() - if(invocation) - user.whisper(invocation, language = /datum/language/common) - if(health_cost) - if(user.active_hand_index == 1) - user.apply_damage(health_cost, BRUTE, BODY_ZONE_L_ARM) - else - user.apply_damage(health_cost, BRUTE, BODY_ZONE_R_ARM) - if(uses <= 0) - qdel(src) - else if(source) - source.desc = source.base_desc - source.desc += "
    Has [uses] use\s remaining." - source.UpdateButtonIcon() - -//Stun -/obj/item/melee/blood_magic/stun - name = "Stunning Aura" - desc = "Will stun and mute a weak-minded victim on contact." - color = RUNE_COLOR_RED - invocation = "Fuu ma'jin!" - -/obj/item/melee/blood_magic/stun/afterattack(atom/target, mob/living/carbon/user, proximity) - if(!isliving(target) || !proximity) - return - var/mob/living/L = target - if(iscultist(target)) - return - if(iscultist(user)) - user.visible_message("[user] holds up [user.p_their()] hand, which explodes in a flash of red light!", \ - "You attempt to stun [L] with the spell!") - - user.mob_light(_range = 3, _color = LIGHT_COLOR_BLOOD_MAGIC, _duration = 0.2 SECONDS) - - var/anti_magic_source = L.anti_magic_check() - if(anti_magic_source) - - L.mob_light(_range = 2, _color = LIGHT_COLOR_HOLY_MAGIC, _duration = 10 SECONDS) - var/mutable_appearance/forbearance = mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER) - L.add_overlay(forbearance) - addtimer(CALLBACK(L, TYPE_PROC_REF(/atom, cut_overlay), forbearance), 100) - - if(istype(anti_magic_source, /obj/item)) - var/obj/item/ams_object = anti_magic_source - target.visible_message( - "[L] starts to glow in a halo of light!", \ - "Your [ams_object.name] begins to glow, emitting a blanket of holy light which surrounds you and protects you from the flash of light!") - else - target.visible_message( - "[L] starts to glow in a halo of light!", \ - "A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!") - - else - if(HAS_TRAIT(target, TRAIT_MINDSHIELD)) - var/mob/living/carbon/C = L - to_chat(user, "Their mind was stronger than expected, but you still managed to do some damage!") - C.stuttering += 8 - C.dizziness += 30 - C.Jitter(8) - C.drop_all_held_items() - C.bleed(40) - C.apply_damage(60, STAMINA, BODY_ZONE_CHEST) - else - to_chat(user, "In a brilliant flash of red, [L] falls to the ground!") - L.Paralyze(160) - L.flash_act(1,1) - if(issilicon(target)) - var/mob/living/silicon/S = L - S.emp_act(EMP_HEAVY) - else if(iscarbon(target)) - var/mob/living/carbon/C = L - C.silent += 6 - C.stuttering += 15 - C.cultslurring += 15 - C.Jitter(15) - uses-- - ..() - -//Teleportation -/obj/item/melee/blood_magic/teleport - name = "Teleporting Aura" - color = RUNE_COLOR_TELEPORT - desc = "Will teleport a cultist to a teleport rune on contact." - invocation = "Sas'so c'arta forbici!" - -/obj/item/melee/blood_magic/teleport/afterattack(atom/target, mob/living/carbon/user, proximity) - if(!iscultist(target) || !proximity) - to_chat(user, "You can only teleport adjacent cultists with this spell!") - return - if(iscultist(user)) - var/list/potential_runes = list() - var/list/teleportnames = list() - for(var/R in GLOB.teleport_runes) - var/obj/effect/rune/teleport/T = R - potential_runes[avoid_assoc_duplicate_keys(T.listkey, teleportnames)] = T - - if(!potential_runes.len) - to_chat(user, "There are no valid runes to teleport to!") - log_game("Teleport talisman failed - no other teleport runes") - return - - var/turf/T = get_turf(src) - if(is_away_level(T)) - to_chat(user, "You are not in the right dimension!") - log_game("Teleport spell failed - user in away mission") - return - - var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked - var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? - if(QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated() || !actual_selected_rune || !proximity) - return - var/turf/dest = get_turf(actual_selected_rune) - if(dest.is_blocked_turf(TRUE)) - to_chat(user, "The target rune is blocked. You cannot teleport there.") - return - uses-- - var/turf/origin = get_turf(user) - var/mob/living/L = target - if(do_teleport(L, dest, channel = TELEPORT_CHANNEL_CULT)) - origin.visible_message("Dust flows from [user]'s hand, and [user.p_they()] disappear[user.p_s()] with a sharp crack!", \ - "You speak the words of the talisman and find yourself somewhere else!", "You hear a sharp crack.") - dest.visible_message("There is a boom of outrushing air as something appears above the rune!", null, "You hear a boom.") - ..() - -//Shackles -/obj/item/melee/blood_magic/shackles - name = "Shackling Aura" - desc = "Will start handcuffing a victim on contact, and mute them if successful." - invocation = "In'totum Lig'abis!" - color = "#000000" // black - -/obj/item/melee/blood_magic/shackles/afterattack(atom/target, mob/living/carbon/user, proximity) - if(iscultist(user) && iscarbon(target) && proximity) - var/mob/living/carbon/C = target - if(C.canBeHandcuffed()) - CuffAttack(C, user) - else - user.visible_message("This victim doesn't have enough arms to complete the restraint!") - return - ..() - -/obj/item/melee/blood_magic/shackles/proc/CuffAttack(mob/living/carbon/C, mob/living/user) - if(!C.handcuffed) - playsound(loc, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) - C.visible_message("[user] begins restraining [C] with dark magic!", \ - "[user] begins shaping dark magic shackles around your wrists!") - if(do_after(user, 3 SECONDS, C)) - if(!C.handcuffed) - C.set_handcuffed(new /obj/item/restraints/handcuffs/energy/cult/used(C)) - C.update_handcuffed() - C.silent += 5 - to_chat(user, "You shackle [C].") - log_combat(user, C, "shackled") - uses-- - else - to_chat(user, "[C] is already bound.") - else - to_chat(user, "You fail to shackle [C].") - else - to_chat(user, "[C] is already bound.") - - -/obj/item/restraints/handcuffs/energy/cult //For the shackling spell - name = "shadow shackles" - desc = "Shackles that bind the wrists with sinister magic." - trashtype = /obj/item/restraints/handcuffs/energy/used - item_flags = DROPDEL - -/obj/item/restraints/handcuffs/energy/cult/used/dropped(mob/user) - user.visible_message("[user]'s shackles shatter in a discharge of dark magic!", \ - "Your [src] shatters in a discharge of dark magic!") - . = ..() - - -//Construction: Converts 50 metal to a construct shell, plasteel to runed metal, airlock to brittle runed airlock, a borg to a construct, or borg shell to a construct shell -/obj/item/melee/blood_magic/construction - name = "Twisting Aura" - desc = "Corrupts certain metalic objects on contact." - invocation = "Ethra p'ni dedol!" - color = "#000000" // black - var/channeling = FALSE - -/obj/item/melee/blood_magic/construction/examine(mob/user) - . = ..() - . += {"A sinister spell used to convert:\n - Plasteel into runed metal\n - [METAL_TO_CONSTRUCT_SHELL_CONVERSION] metal into a construct shell\n - Living cyborgs into constructs after a delay\n - Cyborg shells into construct shells\n - Airlocks into brittle runed airlocks after a delay (harm intent)"} - -/obj/item/melee/blood_magic/construction/afterattack(atom/target, mob/user, proximity_flag, click_parameters) - if(proximity_flag && iscultist(user)) - if(channeling) - to_chat(user, "You are already invoking twisted construction!") - return - var/turf/T = get_turf(target) - if(istype(target, /obj/item/stack/sheet/metal)) - var/obj/item/stack/sheet/candidate = target - if(candidate.use(METAL_TO_CONSTRUCT_SHELL_CONVERSION)) - uses-- - to_chat(user, "A dark cloud emanates from your hand and swirls around the metal, twisting it into a construct shell!") - new /obj/structure/constructshell(T) - SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) - else - to_chat(user, "You need [METAL_TO_CONSTRUCT_SHELL_CONVERSION] metal to produce a construct shell!") - return - else if(istype(target, /obj/item/stack/sheet/plasteel)) - var/obj/item/stack/sheet/plasteel/candidate = target - var/quantity = candidate.amount - if(candidate.use(quantity)) - uses -- - new /obj/item/stack/sheet/mineral/hidden/hellstone(T,quantity) - to_chat(user, "A dark cloud emanates from you hand and swirls around the plasteel, transforming it into runed metal!") - SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) - else if(istype(target,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/candidate = target - if(candidate.mmi) - channeling = TRUE - user.visible_message("A dark cloud emanates from [user]'s hand and swirls around [candidate]!") - playsound(T, 'sound/machines/creaking.ogg', 80, TRUE) - var/prev_color = candidate.color - candidate.color = "black" - if(do_after(user, 90, target = candidate)) - candidate.emp_act(EMP_HEAVY) - var/list/constructs = list( - "Juggernaut" = image(icon = 'icons/mob/cult.dmi', icon_state = "juggernaut"), - "Wraith" = image(icon = 'icons/mob/cult.dmi', icon_state = "wraith"), - "Artificer" = image(icon = 'icons/mob/cult.dmi', icon_state = "artificer") - ) - var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - if(!check_menu(user)) - return - if(QDELETED(candidate)) - channeling = FALSE - return - user.visible_message("The dark cloud recedes from what was formerly [candidate], revealing a\n [construct_class]!") - switch(construct_class) - if("Juggernaut") - makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut, candidate, user, 0, T) - if("Wraith") - makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith, candidate, user, 0, T) - if("Artificer") - makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer, candidate, user, 0, T) - else - return - uses-- - candidate.mmi = null - qdel(candidate) - channeling = FALSE - else - channeling = FALSE - candidate.color = prev_color - return - else - uses-- - to_chat(user, "A dark cloud emanates from you hand and swirls around [candidate] - twisting it into a construct shell!") - new /obj/structure/constructshell(T) - SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) - qdel(candidate) - else if(istype(target,/obj/machinery/door/airlock)) - channeling = TRUE - playsound(T, 'sound/machines/airlockforced.ogg', 50, TRUE) - do_sparks(5, TRUE, target) - if(do_after(user, 50, target = user)) - if(QDELETED(target)) - channeling = FALSE - return - target.narsie_act() - uses-- - user.visible_message("Black ribbons suddenly emanate from [user]'s hand and cling to the airlock - twisting and corrupting it!") - SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) - channeling = FALSE - else - channeling = FALSE - return - else - to_chat(user, "The spell will not work on [target]!") - return - ..() - -/obj/item/melee/blood_magic/construction/proc/check_menu(mob/user) - if(!istype(user)) - return FALSE - if(user.incapacitated() || !user.Adjacent(src)) - return FALSE - return TRUE - - -//Armor: Gives the target a basic cultist combat loadout -/obj/item/melee/blood_magic/armor - name = "Arming Aura" - desc = "Will equipt cult combat gear onto a cultist on contact." - color = "#33cc33" // green - -/obj/item/melee/blood_magic/armor/afterattack(atom/target, mob/living/carbon/user, proximity) - if(iscarbon(target) && proximity) - uses-- - var/mob/living/carbon/C = target - C.visible_message("Otherworldly armor suddenly appears on [C]!") - C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,ITEM_SLOT_ICLOTHING) - C.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/cultrobes/alt(user), ITEM_SLOT_OCLOTHING) - C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), ITEM_SLOT_FEET) - C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), ITEM_SLOT_BACK) - if(C == user) - qdel(src) //Clears the hands - C.put_in_hands(new /obj/item/restraints/legcuffs/bola/cult(user)) - ..() - -/obj/item/melee/blood_magic/manipulator - name = "Blood Rite Aura" - desc = "Absorbs blood from anything you touch. Touching cultists and constructs can heal them. Use in-hand to cast an advanced rite." - color = "#7D1717" - -/obj/item/melee/blood_magic/manipulator/examine(mob/user) - . = ..() - . += "Blood spear, blood bolt barrage, and blood beam cost [BLOOD_SPEAR_COST], [BLOOD_BARRAGE_COST], and [BLOOD_BEAM_COST] charges respectively." - -/obj/item/melee/blood_magic/manipulator/afterattack(atom/target, mob/living/carbon/human/user, proximity) - if(proximity) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(NOBLOOD in H.dna.species.species_traits) - to_chat(user,"Blood rites do not work on species with no blood!") - return - if(iscultist(H)) - if(H.stat == DEAD) - to_chat(user,"Only a revive rune can bring back the dead!") - return - if(H.blood_volume < BLOOD_VOLUME_SAFE) - var/restore_blood = BLOOD_VOLUME_SAFE - H.blood_volume - if(uses*2 < restore_blood) - H.blood_volume += uses*2 - to_chat(user,"You use the last of your blood rites to restore what blood you could!") - uses = 0 - return ..() - else - H.blood_volume = BLOOD_VOLUME_SAFE - uses -= round(restore_blood/2) - to_chat(user,"Your blood rites have restored [H == user ? "your" : "[H.p_their()]"] blood to safe levels!") - var/overall_damage = H.getBruteLoss() + H.getFireLoss() + H.getToxLoss() + H.getOxyLoss() - if(overall_damage == 0) - to_chat(user,"That cultist doesn't require healing!") - else - var/ratio = uses/overall_damage - if(H == user) - to_chat(user,"Your blood healing is far less efficient when used on yourself!") - ratio *= 0.35 // Healing is half as effective if you can't perform a full heal - uses -= round(overall_damage) // Healing is 65% more "expensive" even if you can still perform the full heal - if(ratio>1) - ratio = 1 - uses -= round(overall_damage) - H.visible_message("[H] is fully healed by [H==user ? "[H.p_their()]":"[H]'s"]'s blood magic!") - else - H.visible_message("[H] is partially healed by [H==user ? "[H.p_their()]":"[H]'s"] blood magic.") - uses = 0 - ratio *= -1 - H.adjustOxyLoss((overall_damage*ratio) * (H.getOxyLoss() / overall_damage), 0) - H.adjustToxLoss((overall_damage*ratio) * (H.getToxLoss() / overall_damage), 0) - H.adjustFireLoss((overall_damage*ratio) * (H.getFireLoss() / overall_damage), 0) - H.adjustBruteLoss((overall_damage*ratio) * (H.getBruteLoss() / overall_damage), 0) - H.updatehealth() - playsound(get_turf(H), 'sound/magic/staff_healing.ogg', 25) - new /obj/effect/temp_visual/cult/sparks(get_turf(H)) - user.Beam(H,icon_state="sendbeam",time=15) - else - if(H.stat == DEAD) - to_chat(user,"[H.p_their(TRUE)] blood has stopped flowing, you'll have to find another way to extract it.") - return - if(H.cultslurring) - to_chat(user,"[H.p_their(TRUE)] blood has been tainted by an even stronger form of blood magic, it's no use to us like this!") - return - if(H.blood_volume > BLOOD_VOLUME_SAFE) - H.blood_volume -= 100 - uses += 50 - user.Beam(H,icon_state="drainbeam",time=10) - playsound(get_turf(H), 'sound/magic/enter_blood.ogg', 50) - H.visible_message("[user] drains some of [H]'s blood!") - to_chat(user,"Your blood rite gains 50 charges from draining [H]'s blood.") - new /obj/effect/temp_visual/cult/sparks(get_turf(H)) - else - to_chat(user,"[H.p_theyre(TRUE)] missing too much blood - you cannot drain [H.p_them()] further!") - return - if(isconstruct(target)) - var/mob/living/simple_animal/M = target - var/missing = M.maxHealth - M.health - if(missing) - if(uses > missing) - M.adjustHealth(-missing) - M.visible_message("[M] is fully healed by [user]'s blood magic!") - uses -= missing - else - M.adjustHealth(-uses) - M.visible_message("[M] is partially healed by [user]'s blood magic!") - uses = 0 - playsound(get_turf(M), 'sound/magic/staff_healing.ogg', 25) - user.Beam(M,icon_state="sendbeam",time=10) - if(istype(target, /obj/effect/decal/cleanable/blood)) - blood_draw(target, user) - ..() - -/obj/item/melee/blood_magic/manipulator/proc/blood_draw(atom/target, mob/living/carbon/human/user) - var/temp = 0 - var/turf/T = get_turf(target) - if(T) - for(var/obj/effect/decal/cleanable/blood/B in view(T, 2)) - if(B.blood_state == BLOOD_STATE_HUMAN) - if(B.bloodiness == 100) //Bonus for "pristine" bloodpools, also to prevent cheese with footprint spam - temp += 30 - else - temp += max((B.bloodiness**2)/800,1) - new /obj/effect/temp_visual/cult/turf/floor(get_turf(B)) - qdel(B) - if(temp) - user.Beam(T,icon_state="drainbeam",time=15) - new /obj/effect/temp_visual/cult/sparks(get_turf(user)) - playsound(T, 'sound/magic/enter_blood.ogg', 50) - to_chat(user, "Your blood rite has gained [round(temp)] charge\s from blood sources around you!") - uses += max(1, round(temp)) - -/obj/item/melee/blood_magic/manipulator/attack_self(mob/living/user) - if(iscultist(user)) - var/list/options = list("Blood Beam (500)") - var/choice = input(user, "Choose a greater blood rite...", "Greater Blood Rites") as null|anything in options - if(!choice) - to_chat(user, "You decide against conducting a greater blood rite.") - return - switch(choice) - if("Blood Beam (500)") - if(uses < BLOOD_BEAM_COST) - to_chat(user, "You need [BLOOD_BEAM_COST] charges to perform this rite.") - else - var/obj/rite = new /obj/item/blood_beam() - uses -= BLOOD_BEAM_COST - qdel(src) - if(user.put_in_hands(rite)) - to_chat(user, "Your hands glow with POWER OVERWHELMING!!!") - else - to_chat(user, "You need a free hand for this rite!") - qdel(rite) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm deleted file mode 100644 index d6330b386f29..000000000000 --- a/code/modules/antagonists/cult/cult.dm +++ /dev/null @@ -1,397 +0,0 @@ -#define SUMMON_POSSIBILITIES 3 -#define CULT_VICTORY 1 -#define CULT_LOSS 0 -#define CULT_NARSIE_KILLED -1 - -/datum/antagonist/cult - name = "Cultist" - roundend_category = "cultists" - antagpanel_category = "Cult" - antag_moodlet = /datum/mood_event/cult - var/datum/action/innate/cult/comm/communion = new - var/datum/action/innate/cult/mastervote/vote = new - var/datum/action/innate/cult/blood_magic/magic = new - job_rank = ROLE_CULTIST - antag_hud_type = ANTAG_HUD_CULT - antag_hud_name = "cult" - var/ignore_implant = FALSE - var/give_equipment = FALSE - var/datum/team/cult/cult_team - - -/datum/antagonist/cult/get_team() - return cult_team - -/datum/antagonist/cult/create_team(datum/team/cult/new_team) - if(!new_team) - //todo remove this and allow admin buttons to create more than one cult - for(var/datum/antagonist/cult/H in GLOB.antagonists) - if(!H.owner) - continue - if(H.cult_team) - cult_team = H.cult_team - return - cult_team = new /datum/team/cult - cult_team.setup_objectives() - return - if(!istype(new_team)) - stack_trace("Wrong team type passed to [type] initialization.") - cult_team = new_team - -/datum/antagonist/cult/proc/add_objectives() - objectives |= cult_team.objectives - -/datum/antagonist/cult/Destroy() - QDEL_NULL(communion) - QDEL_NULL(vote) - return ..() - -/datum/antagonist/cult/can_be_owned(datum/mind/new_owner) - . = ..() - if(. && !ignore_implant) - . = is_convertable_to_cult(new_owner.current,cult_team) - -/datum/antagonist/cult/greet() - to_chat(owner, "You are a member of the cult!") - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/bloodcult.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE)//subject to change - owner.announce_objectives() - -/datum/antagonist/cult/on_gain() - . = ..() - var/mob/living/current = owner.current - add_objectives() - if(give_equipment) - equip_cultist() - SSticker.mode.cult += owner // Only add after they've been given objectives - current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000") - - if(cult_team.blood_target && cult_team.blood_target_image && current.client) - current.client.images += cult_team.blood_target_image - - -/datum/antagonist/cult/proc/equip_cultist() - var/mob/living/carbon/H = owner.current - if(!istype(H)) - return - to_chat(owner, "These will help you jumpstart a cult of your own in this sector. Use them well, and remember - you are not the only one.") - - -/datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob) - var/list/slots = list( - "backpack" = ITEM_SLOT_BACKPACK, - "left pocket" = ITEM_SLOT_LPOCKET, - "right pocket" = ITEM_SLOT_RPOCKET - ) - - var/T = new item_path(mob) - var/item_name = initial(item_path.name) - var/where = mob.equip_in_one_of_slots(T, slots) - if(!where) - to_chat(mob, "Unfortunately, you weren't able to get a [item_name]. This is very bad and you should adminhelp immediately (press F1).") - return 0 - else - to_chat(mob, "You have a [item_name] in your [where].") - if(where == "backpack") - SEND_SIGNAL(mob.back, COMSIG_TRY_STORAGE_SHOW, mob) - return TRUE - -/datum/antagonist/cult/apply_innate_effects(mob/living/mob_override) - . = ..() - var/mob/living/current = owner.current - if(mob_override) - current = mob_override - add_antag_hud(antag_hud_type, antag_hud_name, current) - handle_clown_mutation(current, mob_override ? null : "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.") - current.faction |= "cult" - current.grant_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST) - if(!cult_team.cult_master) - vote.Grant(current) - communion.Grant(current) - if(ishuman(current)) - magic.Grant(current) - current.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense) - if(cult_team.cult_risen) - cult_team.rise(current) - if(cult_team.cult_ascendent) - cult_team.ascend(current) - -/datum/antagonist/cult/remove_innate_effects(mob/living/mob_override) - . = ..() - var/mob/living/current = owner.current - if(mob_override) - current = mob_override - remove_antag_hud(antag_hud_type, current) - handle_clown_mutation(current, removing = FALSE) - current.faction -= "cult" - current.remove_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST) - vote.Remove(current) - communion.Remove(current) - magic.Remove(current) - current.clear_alert("bloodsense") - if(ishuman(current)) - var/mob/living/carbon/human/H = current - H.eye_color = initial(H.eye_color) - H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) - REMOVE_TRAIT(H, CULT_EYES, null) - H.remove_overlay(HALO_LAYER) - H.update_body() - -/datum/antagonist/cult/on_removal() - SSticker.mode.cult -= owner - if(!silent) - owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!", null, null, null, owner.current) - to_chat(owner.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.") - owner.current.log_message("has renounced the cult of Nar'Sie!", LOG_ATTACK, color="#960000") - if(cult_team.blood_target && cult_team.blood_target_image && owner.current.client) - owner.current.client.images -= cult_team.blood_target_image - . = ..() - -/datum/antagonist/cult/admin_add(datum/mind/new_owner,mob/admin) - give_equipment = FALSE - new_owner.add_antag_datum(src) - message_admins("[key_name_admin(admin)] has cult'ed [key_name_admin(new_owner)].") - log_admin("[key_name(admin)] has cult'ed [key_name(new_owner)].") - -/datum/antagonist/cult/admin_remove(mob/user) - message_admins("[key_name_admin(user)] has decult'ed [key_name_admin(owner)].") - log_admin("[key_name(user)] has decult'ed [key_name(owner)].") - SSticker.mode.remove_cultist(owner,silent=TRUE) //disgusting - -/datum/antagonist/cult/get_admin_commands() - . = ..() - .["Dagger"] = CALLBACK(src, PROC_REF(admin_give_dagger)) - .["Metal"] = CALLBACK(src, PROC_REF(admin_take_all)) - -/datum/antagonist/cult/proc/admin_give_dagger(mob/admin) - if(!equip_cultist()) - to_chat(admin, "Spawning dagger failed!") - -/datum/antagonist/cult/proc/admin_take_all(mob/admin) - return - -/datum/antagonist/cult/master - ignore_implant = TRUE - show_in_antagpanel = FALSE //Feel free to add this later - var/datum/action/innate/cult/master/finalreck/reckoning = new - var/datum/action/innate/cult/master/cultmark/bloodmark = new - var/datum/action/innate/cult/master/pulse/throwing = new - -/datum/antagonist/cult/master/Destroy() - QDEL_NULL(reckoning) - QDEL_NULL(bloodmark) - QDEL_NULL(throwing) - return ..() - -/datum/antagonist/cult/master/on_gain() - . = ..() - var/mob/living/current = owner.current - set_antag_hud(current, "cultmaster") - -/datum/antagonist/cult/master/greet() - to_chat(owner.current, "You are the cult's Master. As the cult's Master, you have a unique title and loud voice when communicating, are capable of marking \ - targets, such as a location or a noncultist, to direct the cult to them, and, finally, you are capable of summoning the entire living cult to your location once.") - to_chat(owner.current, "Use these abilities to direct the cult to victory at any cost.") - -/datum/antagonist/cult/master/apply_innate_effects(mob/living/mob_override) - . = ..() - var/mob/living/current = owner.current - if(mob_override) - current = mob_override - if(!cult_team.reckoning_complete) - reckoning.Grant(current) - bloodmark.Grant(current) - throwing.Grant(current) - current.update_action_buttons_icon() - current.apply_status_effect(/datum/status_effect/cult_master) - if(cult_team.cult_risen) - cult_team.rise(current) - if(cult_team.cult_ascendent) - cult_team.ascend(current) - -/datum/antagonist/cult/master/remove_innate_effects(mob/living/mob_override) - . = ..() - var/mob/living/current = owner.current - if(mob_override) - current = mob_override - reckoning.Remove(current) - bloodmark.Remove(current) - throwing.Remove(current) - current.update_action_buttons_icon() - current.remove_status_effect(/datum/status_effect/cult_master) - - if(ishuman(current)) - var/mob/living/carbon/human/H = current - H.eye_color = initial(H.eye_color) - H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) - REMOVE_TRAIT(H, CULT_EYES, null) - H.remove_overlay(HALO_LAYER) - H.update_body() - -/datum/team/cult - name = "Cult" - - var/blood_target - var/image/blood_target_image - var/blood_target_reset_timer - - var/cult_vote_called = FALSE - var/mob/living/cult_master - var/reckoning_complete = FALSE - var/cult_risen = FALSE - var/cult_ascendent = FALSE - -/datum/team/cult/proc/check_size() - if(cult_ascendent) - return - var/alive = 0 - var/cultplayers = 0 - for(var/I in GLOB.player_list) - var/mob/M = I - if(M.stat != DEAD) - if(iscultist(M)) - ++cultplayers - else - ++alive - var/ratio = cultplayers/alive - if(ratio > CULT_RISEN && !cult_risen) - for(var/datum/mind/B in members) - if(B.current) - SEND_SOUND(B.current, 'sound/hallucinations/i_see_you2.ogg') - to_chat(B.current, "The veil weakens as your cult grows, your eyes begin to glow...") - addtimer(CALLBACK(src, PROC_REF(rise), B.current), 200) - cult_risen = TRUE - - if(ratio > CULT_ASCENDENT && !cult_ascendent) - for(var/datum/mind/B in members) - if(B.current) - SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg') - to_chat(B.current, "Your cult is ascendent and the red harvest approaches - you cannot hide your true nature for much longer!!") - addtimer(CALLBACK(src, PROC_REF(ascend), B.current), 200) - cult_ascendent = TRUE - - -/datum/team/cult/proc/rise(cultist) - if(ishuman(cultist)) - var/mob/living/carbon/human/H = cultist - H.eye_color = "f00" - H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) - ADD_TRAIT(H, CULT_EYES, CULT_TRAIT) - H.update_body() - -/datum/team/cult/proc/ascend(cultist) - if(ishuman(cultist)) - var/mob/living/carbon/human/H = cultist - new /obj/effect/temp_visual/cult/sparks(get_turf(H), H.dir) - var/istate = pick("halo1","halo2","halo3","halo4","halo5","halo6") - var/mutable_appearance/new_halo_overlay = mutable_appearance('icons/effects/32x64.dmi', istate, -HALO_LAYER) - H.overlays_standing[HALO_LAYER] = new_halo_overlay - H.apply_overlay(HALO_LAYER) - -/datum/objective/sacrifice/find_target(dupe_search_range) - if(!istype(team, /datum/team/cult)) - return - var/datum/team/cult/C = team - var/list/target_candidates = list() - for(var/mob/living/carbon/human/player in GLOB.player_list) - if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && !is_convertable_to_cult(player) && player.stat != DEAD) - target_candidates += player.mind - if(target_candidates.len == 0) - message_admins("Cult Sacrifice: Could not find unconvertible target, checking for convertible target.") - for(var/mob/living/carbon/human/player in GLOB.player_list) - if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && player.stat != DEAD) - target_candidates += player.mind - listclearnulls(target_candidates) - if(LAZYLEN(target_candidates)) - target = pick(target_candidates) - update_explanation_text() - else - message_admins("Cult Sacrifice: Could not find unconvertible or convertible target. WELP!") - for(var/datum/mind/M in C.members) - if(M.current) - M.current.clear_alert("bloodsense") - M.current.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense) - -/datum/team/cult/proc/setup_objectives() - var/datum/objective/sacrifice/sac_objective = new - sac_objective.team = src - sac_objective.find_target() - objectives += sac_objective - - var/datum/objective/eldergod/summon_objective = new - summon_objective.team = src - objectives += summon_objective - - -/datum/objective/sacrifice - var/sacced = FALSE - var/sac_image - -/datum/objective/sacrifice/check_completion() - return sacced || completed - -/datum/objective/sacrifice/update_explanation_text() - if(target) - explanation_text = "Sacrifice [target], the [target.assigned_role] via invoking an Offer rune with [target.p_them()] on it and three acolytes around it." - else - explanation_text = "The veil has already been weakened here, proceed to the final objective." - -/datum/objective/eldergod - var/summoned = FALSE - var/killed = FALSE - var/list/summon_spots = list() - -/datum/objective/eldergod/New() - ..() - var/sanity = 0 - while(summon_spots.len < SUMMON_POSSIBILITIES && sanity < 100) - var/area/summon_area = pick(GLOB.sortedAreas - summon_spots) - if(summon_area && (summon_area.area_flags & VALID_TERRITORY)) - summon_spots += summon_area - sanity++ - update_explanation_text() - -/datum/objective/eldergod/update_explanation_text() - explanation_text = "Summon Nar'Sie by invoking the rune 'Summon Nar'Sie'. The summoning can only be accomplished in [english_list(summon_spots)] - where the veil is weak enough for the ritual to begin." - -/datum/objective/eldergod/check_completion() - if(killed) - return CULT_NARSIE_KILLED // You failed so hard that even the code went backwards. - return summoned || completed - -/datum/team/cult/proc/check_cult_victory() - for(var/datum/objective/O in objectives) - if(O.check_completion() == CULT_NARSIE_KILLED) - return CULT_NARSIE_KILLED - else if(!O.check_completion()) - return CULT_LOSS - return CULT_VICTORY - -/datum/team/cult/roundend_report() - var/list/parts = list() - var/victory = check_cult_victory() - - if(victory == CULT_NARSIE_KILLED) // Epic failure, you summoned your god and then someone killed it. - parts += "Nar'sie has been killed! The cult will haunt the universe no longer!" - else if(victory) - parts += "The cult has succeeded! Nar'Sie has snuffed out another torch in the void!" - else - parts += "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!" - - if(objectives.len) - parts += "The cultists' objectives were:" - var/count = 1 - for(var/datum/objective/objective in objectives) - if(objective.check_completion()) - parts += "Objective #[count]: [objective.explanation_text] Success!" - else - parts += "Objective #[count]: [objective.explanation_text] Fail." - count++ - - if(members.len) - parts += "The cultists were:" - parts += printplayerlist(members) - - return "
    [parts.Join("
    ")]
    " - -/datum/team/cult/is_gamemode_hero() - return SSticker.mode.name == "cult" diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm deleted file mode 100644 index 0c070e8e423f..000000000000 --- a/code/modules/antagonists/cult/cult_comms.dm +++ /dev/null @@ -1,461 +0,0 @@ -// Contains cult communion, guide, and cult master abilities - -/datum/action/innate/cult - icon_icon = 'icons/mob/actions/actions_cult.dmi' - background_icon_state = "bg_demon" - buttontooltipstyle = "cult" - check_flags = AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS - -/datum/action/innate/cult/IsAvailable() - if(!iscultist(owner)) - return FALSE - return ..() - -/datum/action/innate/cult/comm - name = "Communion" - desc = "Whispered words that all cultists can hear.
    Warning:Nearby non-cultists can still hear you." - button_icon_state = "cult_comms" - -/datum/action/innate/cult/comm/Activate() - var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "") - if(!input || !IsAvailable()) - return - if(CHAT_FILTER_CHECK(input)) - to_chat(usr, "You cannot send a message that contains a word prohibited in IC chat!") - return - cultist_commune(usr, input) - -/datum/action/innate/cult/comm/proc/cultist_commune(mob/living/user, message) - var/my_message - if(!message) - return - user.whisper("O bidai nabora se[pick("'","`")]sma!", language = /datum/language/common) - user.whisper(html_decode(message)) - var/title = "Acolyte" - var/span = "cult italic" - if(user.mind && user.mind.has_antag_datum(/datum/antagonist/cult/master)) - span = "cultlarge" - title = "Master" - else if(!ishuman(user)) - title = "Construct" - my_message = "[title] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]" - for(var/i in GLOB.player_list) - var/mob/M = i - if(iscultist(M)) - to_chat(M, my_message) - else if(M in GLOB.dead_mob_list) - var/link = FOLLOW_LINK(M, user) - to_chat(M, "[link] [my_message]") - - user.log_talk(message, LOG_SAY, tag="cult") - -/datum/action/innate/cult/comm/spirit - name = "Spiritual Communion" - desc = "Conveys a message from the spirit realm that all cultists can hear." - -/datum/action/innate/cult/comm/spirit/IsAvailable() - if(iscultist(owner.mind.current)) - return TRUE - -/datum/action/innate/cult/comm/spirit/cultist_commune(mob/living/user, message) - var/my_message - if(!message) - return - my_message = "The [user.name]: [message]" - for(var/i in GLOB.player_list) - var/mob/M = i - if(iscultist(M)) - to_chat(M, my_message) - else if(M in GLOB.dead_mob_list) - var/link = FOLLOW_LINK(M, user) - to_chat(M, "[link] [my_message]") - -/datum/action/innate/cult/mastervote - name = "Assert Leadership" - button_icon_state = "cultvote" - -/datum/action/innate/cult/mastervote/IsAvailable() - var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!C || C.cult_team.cult_vote_called || !ishuman(owner)) - return FALSE - return ..() - -/datum/action/innate/cult/mastervote/Activate() - var/choice = alert(owner, "The mantle of leadership is heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No") - if(choice == "Yes" && IsAvailable()) - var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - pollCultists(owner,C.cult_team) - -/proc/pollCultists(mob/living/Nominee,datum/team/cult/team) //Cult Master Poll - if(world.time < CULT_POLL_WAIT) - to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [DisplayTimeText(CULT_POLL_WAIT-world.time)].") - return - team.cult_vote_called = TRUE //somebody's trying to be a master, make sure we don't let anyone else try - for(var/datum/mind/B in team.members) - if(B.current) - B.current.update_action_buttons_icon() - if(!B.current.incapacitated()) - SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg') - to_chat(B.current, "Acolyte [Nominee] has asserted that [Nominee.p_theyre()] worthy of leading the cult. A vote will be called shortly.") - sleep(100) - var/list/asked_cultists = list() - for(var/datum/mind/B in team.members) - if(B.current && B.current != Nominee && !B.current.incapacitated()) - SEND_SOUND(B.current, 'sound/magic/exit_blood.ogg') - asked_cultists += B.current - var/list/yes_voters = pollCandidates("[Nominee] seeks to lead your cult, do you support [Nominee.p_them()]?", poll_time = 300, group = asked_cultists) - if(QDELETED(Nominee) || Nominee.incapacitated()) - team.cult_vote_called = FALSE - for(var/datum/mind/B in team.members) - if(B.current) - B.current.update_action_buttons_icon() - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has died in the process of attempting to win the cult's support!") - return FALSE - if(!Nominee.mind) - team.cult_vote_called = FALSE - for(var/datum/mind/B in team.members) - if(B.current) - B.current.update_action_buttons_icon() - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has gone catatonic in the process of attempting to win the cult's support!") - return FALSE - if(LAZYLEN(yes_voters) <= LAZYLEN(asked_cultists) * 0.5) - team.cult_vote_called = FALSE - for(var/datum/mind/B in team.members) - if(B.current) - B.current.update_action_buttons_icon() - if(!B.current.incapacitated()) - to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") - return FALSE - team.cult_master = Nominee - SSticker.mode.remove_cultist(Nominee.mind, TRUE) - Nominee.mind.add_antag_datum(/datum/antagonist/cult/master) - for(var/datum/mind/B in team.members) - if(B.current) - for(var/datum/action/innate/cult/mastervote/vote in B.current.actions) - vote.Remove(B.current) - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has won the cult's support and is now their master. Follow [Nominee.p_their()] orders to the best of your ability!") - return TRUE - -/datum/action/innate/cult/master/IsAvailable() - if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master) || GLOB.cult_narsie) - return 0 - return ..() - -/datum/action/innate/cult/master/finalreck - name = "Final Reckoning" - desc = "A single-use spell that brings the entire cult to the master's location." - button_icon_state = "sintouch" - -/datum/action/innate/cult/master/finalreck/Activate() - var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!antag) - return - for(var/i in 1 to 4) - chant(i) - var/list/destinations = list() - for(var/turf/T in orange(1, owner)) - if(!T.is_blocked_turf(TRUE)) - destinations += T - if(!LAZYLEN(destinations)) - to_chat(owner, "You need more space to summon your cult!") - return - if(do_after(owner, 30, target = owner)) - for(var/datum/mind/B in antag.cult_team.members) - if(B.current && B.current.stat != DEAD) - var/turf/mobloc = get_turf(B.current) - switch(i) - if(1) - new /obj/effect/temp_visual/cult/sparks(mobloc, B.current.dir) - playsound(mobloc, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - if(2) - new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, B.current.dir) - playsound(mobloc, "sparks", 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - if(3) - new /obj/effect/temp_visual/dir_setting/cult/phase(mobloc, B.current.dir) - playsound(mobloc, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - if(4) - playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, TRUE) - if(B.current != owner) - var/turf/final = pick(destinations) - if(istype(B.current.loc, /obj/item/soulstone)) - var/obj/item/soulstone/S = B.current.loc - S.release_shades(owner) - B.current.setDir(SOUTH) - new /obj/effect/temp_visual/cult/blood(final) - addtimer(CALLBACK(B.current, TYPE_PROC_REF(/mob, reckon), final), 10) - else - return - antag.cult_team.reckoning_complete = TRUE - Remove(owner) - -/mob/proc/reckon(turf/final) - new /obj/effect/temp_visual/cult/blood/out(get_turf(src)) - forceMove(final) - -/datum/action/innate/cult/master/finalreck/proc/chant(chant_number) - switch(chant_number) - if(1) - owner.say("C'arta forbici!", language = /datum/language/common, forced = "cult invocation") - if(2) - owner.say("Pleggh e'ntrath!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 50, TRUE) - if(3) - owner.say("Barhah hra zar'garis!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 75, TRUE) - if(4) - owner.say("N'ath reth sh'yro eth d'rekkathnor!!!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 100, TRUE) - -/datum/action/innate/cult/master/cultmark - name = "Mark Target" - desc = "Marks a target for the cult." - button_icon_state = "cult_mark" - var/obj/effect/proc_holder/cultmark/CM - var/cooldown = 0 - var/base_cooldown = 1200 - -/datum/action/innate/cult/master/cultmark/New(Target) - CM = new() - CM.attached_action = src - ..() - -/datum/action/innate/cult/master/cultmark/IsAvailable() - if(cooldown > world.time) - if(!CM.active) - to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can mark another target!") - return FALSE - return ..() - -/datum/action/innate/cult/master/cultmark/Destroy() - QDEL_NULL(CM) - return ..() - -/datum/action/innate/cult/master/cultmark/Activate() - CM.toggle(owner) //the important bit - return TRUE - -/obj/effect/proc_holder/cultmark - active = FALSE - ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' - var/datum/action/innate/cult/master/cultmark/attached_action - -/obj/effect/proc_holder/cultmark/Destroy() - attached_action = null - return ..() - -/obj/effect/proc_holder/cultmark/proc/toggle(mob/user) - if(active) - remove_ranged_ability("You cease the marking ritual.") - else - add_ranged_ability(user, "You prepare to mark a target for your cult...") - -/obj/effect/proc_holder/cultmark/InterceptClickOn(mob/living/caller, params, atom/target) - if(..()) - return - if(ranged_ability_user.incapacitated()) - remove_ranged_ability() - return - var/turf/T = get_turf(ranged_ability_user) - if(!isturf(T)) - return FALSE - - var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - - if(target in view(7, get_turf(ranged_ability_user))) - if(C.cult_team.blood_target) - to_chat(ranged_ability_user, "The cult has already designated a target!") - return FALSE - C.cult_team.blood_target = target - var/area/A = get_area(target) - attached_action.cooldown = world.time + attached_action.base_cooldown - addtimer(CALLBACK(attached_action.owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) - C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) - C.cult_team.blood_target_image.appearance_flags = RESET_COLOR - C.cult_team.blood_target_image.pixel_x = -target.pixel_x - C.cult_team.blood_target_image.pixel_y = -target.pixel_y - for(var/datum/mind/B in SSticker.mode.cult) - if(B.current && B.current.stat != DEAD && B.current.client) - to_chat(B.current, "[ranged_ability_user] has marked [C.cult_team.blood_target] in the [A.name] as the cult's top priority, get there immediately!") - SEND_SOUND(B.current, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75)) - B.current.client.images += C.cult_team.blood_target_image - attached_action.owner.update_action_buttons_icon() - remove_ranged_ability("The marking rite is complete! It will last for 90 seconds.") - C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), 900, TIMER_STOPPABLE) - return TRUE - return FALSE - -/proc/reset_blood_target(datum/team/cult/team) - for(var/datum/mind/B in team.members) - if(B.current && B.current.stat != DEAD && B.current.client) - if(team.blood_target) - to_chat(B.current,"The blood mark has expired!") - B.current.client.images -= team.blood_target_image - QDEL_NULL(team.blood_target_image) - team.blood_target = null - - -/datum/action/innate/cult/master/cultmark/ghost - name = "Mark a Blood Target for the Cult" - desc = "Marks a target for the entire cult to track." - -/datum/action/innate/cult/master/cultmark/ghost/IsAvailable() - if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current)) - return TRUE - else - qdel(src) - -/datum/action/innate/cult/ghostmark //Ghost version - name = "Blood Mark your Target" - desc = "Marks whatever you are orbitting - for the entire cult to track." - button_icon_state = "cult_mark" - var/tracking = FALSE - var/cooldown = 0 - var/base_cooldown = 600 - -/datum/action/innate/cult/ghostmark/IsAvailable() - if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current)) - return TRUE - else - qdel(src) - -/datum/action/innate/cult/ghostmark/proc/reset_button() - if(owner) - name = "Blood Mark your Target" - desc = "Marks whatever you are orbitting - for the entire cult to track." - button_icon_state = "cult_mark" - owner.update_action_buttons_icon() - SEND_SOUND(owner, 'sound/magic/enter_blood.ogg') - to_chat(owner,"Your previous mark is gone - you are now ready to create a new blood mark.") - -/datum/action/innate/cult/ghostmark/Activate() - var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(C.cult_team.blood_target) - if(cooldown>world.time) - reset_blood_target(C.cult_team) - to_chat(owner, "You have cleared the cult's blood target!") - deltimer(C.cult_team.blood_target_reset_timer) - return - else - to_chat(owner, "The cult has already designated a target!") - return - if(cooldown>world.time) - to_chat(owner, "You aren't ready to place another blood mark yet!") - return - target = owner.orbiting?.parent || get_turf(owner) - if(!target) - return - C.cult_team.blood_target = target - var/area/A = get_area(target) - cooldown = world.time + base_cooldown - addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) - C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) - C.cult_team.blood_target_image.appearance_flags = RESET_COLOR - C.cult_team.blood_target_image.pixel_x = -target.pixel_x - C.cult_team.blood_target_image.pixel_y = -target.pixel_y - SEND_SOUND(owner, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75)) - owner.client.images += C.cult_team.blood_target_image - for(var/datum/mind/B in SSticker.mode.cult) - if(B.current && B.current.stat != DEAD && B.current.client) - to_chat(B.current, "[owner] has marked [C.cult_team.blood_target] in the [A.name] as the cult's top priority, get there immediately!") - SEND_SOUND(B.current, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75)) - B.current.client.images += C.cult_team.blood_target_image - to_chat(owner,"You have marked the [target] for the cult! It will last for [DisplayTimeText(base_cooldown)].") - name = "Clear the Blood Mark" - desc = "Remove the Blood Mark you previously set." - button_icon_state = "emp" - owner.update_action_buttons_icon() - C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), base_cooldown, TIMER_STOPPABLE) - addtimer(CALLBACK(src, PROC_REF(reset_button)), base_cooldown) - - -//////// ELDRITCH PULSE ///////// - - - -/datum/action/innate/cult/master/pulse - name = "Eldritch Pulse" - desc = "Seize upon a fellow cultist or cult structure and teleport it to a nearby location." - icon_icon = 'icons/mob/actions/actions_spells.dmi' - button_icon_state = "arcane_barrage" - var/obj/effect/proc_holder/pulse/PM - var/cooldown = 0 - var/base_cooldown = 150 - var/throwing = FALSE - var/mob/living/throwee - -/datum/action/innate/cult/master/pulse/New() - PM = new() - PM.attached_action = src - ..() - -/datum/action/innate/cult/master/pulse/IsAvailable() - if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master)) - return FALSE - if(cooldown > world.time) - if(!PM.active) - to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can pulse again!") - return FALSE - return ..() - -/datum/action/innate/cult/master/pulse/Destroy() - PM.attached_action = null //What the fuck is even going on here. - QDEL_NULL(PM) - return ..() - - -/datum/action/innate/cult/master/pulse/Activate() - PM.toggle(owner) //the important bit - return TRUE - -/obj/effect/proc_holder/pulse - active = FALSE - ranged_mousepointer = 'icons/effects/mouse_pointers/throw_target.dmi' - var/datum/action/innate/cult/master/pulse/attached_action - -/obj/effect/proc_holder/pulse/Destroy() - attached_action = null - return ..() - - -/obj/effect/proc_holder/pulse/proc/toggle(mob/user) - if(active) - remove_ranged_ability("You cease your preparations...") - attached_action.throwing = FALSE - else - add_ranged_ability(user, "You prepare to tear through the fabric of reality...") - -/obj/effect/proc_holder/pulse/InterceptClickOn(mob/living/caller, params, atom/target) - if(..()) - return - if(ranged_ability_user.incapacitated()) - remove_ranged_ability() - return - var/turf/T = get_turf(ranged_ability_user) - if(!isturf(T)) - return FALSE - if(target in view(7, get_turf(ranged_ability_user))) - if((!(iscultist(target) || istype(target, /obj/structure/destructible/cult)) || target == caller) && !(attached_action.throwing)) - return - if(!attached_action.throwing) - attached_action.throwing = TRUE - attached_action.throwee = target - SEND_SOUND(ranged_ability_user, sound('sound/weapons/thudswoosh.ogg')) - to_chat(ranged_ability_user,"You reach through the veil with your mind's eye and seize [target]!") - return - else - new /obj/effect/temp_visual/cult/sparks(get_turf(attached_action.throwee), ranged_ability_user.dir) - var/distance = get_dist(attached_action.throwee, target) - if(distance >= 16) - return - playsound(target,'sound/magic/exit_blood.ogg') - attached_action.throwee.Beam(target,icon_state="sendbeam",time=4) - attached_action.throwee.forceMove(get_turf(target)) - new /obj/effect/temp_visual/cult/sparks(get_turf(target), ranged_ability_user.dir) - attached_action.throwing = FALSE - attached_action.cooldown = world.time + attached_action.base_cooldown - remove_ranged_ability("A pulse of blood magic surges through you as you shift [attached_action.throwee] through time and space.") - caller.update_action_buttons_icon() - addtimer(CALLBACK(caller, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm deleted file mode 100644 index 5dce420df1cf..000000000000 --- a/code/modules/antagonists/cult/cult_items.dm +++ /dev/null @@ -1,524 +0,0 @@ -/obj/item/tome - name = "arcane tome" - desc = "An old, dusty tome with frayed edges and a sinister-looking cover." - icon_state ="tome" - throw_speed = 2 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - -/datum/action/innate/dash/cult - name = "Rend the Veil" - desc = "Use the sword to shear open the flimsy fabric of this reality and teleport to your target." - icon_icon = 'icons/mob/actions/actions_cult.dmi' - button_icon_state = "phaseshift" - dash_sound = 'sound/magic/enter_blood.ogg' - recharge_sound = 'sound/magic/exit_blood.ogg' - beam_effect = "sendbeam" - phasein = /obj/effect/temp_visual/dir_setting/cult/phase - phaseout = /obj/effect/temp_visual/dir_setting/cult/phase/out - -/datum/action/innate/dash/cult/IsAvailable() - if(iscultist(owner) && current_charges) - return TRUE - else - return FALSE - -/obj/item/restraints/legcuffs/bola/cult - name = "\improper Nar'Sien bola" - desc = "A strong bola, bound with dark magic that allows it to pass harmlessly through Nar'Sien cultists. Throw it to trip and slow your victim." - icon_state = "bola_cult" - item_state = "bola_cult" - breakouttime = 60 - knockdown = 30 - -/obj/item/restraints/legcuffs/bola/cult/attack_hand(mob/living/user) - . = ..() - if(!iscultist(user)) - to_chat(user, "The bola seems to take on a life of its own!") - ensnare(user) - -/obj/item/restraints/legcuffs/bola/cult/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) - if(iscultist(hit_atom)) - return - . = ..() - -/obj/item/clothing/head/hooded/cult_hoodie - name = "ancient cultist hood" - icon_state = "culthood" - desc = "A torn, dust-caked hood. Strange letters line the inside." - flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS - flags_cover = HEADCOVERSEYES - armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 40, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10) - cold_protection = HEAD - min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT - heat_protection = HEAD - max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT - -/obj/item/clothing/suit/hooded/cultrobes - name = "ancient cultist robes" - desc = "A ragged, dusty set of robes. Strange letters line the inside." - icon_state = "cultrobes" - item_state = "cultrobes" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/tome, /obj/item/tank) - armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 40, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10) - flags_inv = HIDEJUMPSUIT - cold_protection = CHEST|GROIN|LEGS|ARMS - min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT - heat_protection = CHEST|GROIN|LEGS|ARMS - max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - hoodtype = /obj/item/clothing/head/hooded/cult_hoodie - - -/obj/item/clothing/head/hooded/cult_hoodie/alt - name = "cultist hood" - desc = "An armored hood worn by the followers of Nar'Sie." - icon_state = "cult_hoodalt" - item_state = "cult_hoodalt" - -/obj/item/clothing/suit/hooded/cultrobes/alt - name = "cultist robes" - desc = "An armored set of robes worn by the followers of Nar'Sie." - icon_state = "cultrobesalt" - item_state = "cultrobesalt" - hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/alt - -/obj/item/clothing/suit/hooded/cultrobes/alt/ghost - item_flags = DROPDEL - -/obj/item/clothing/suit/hooded/cultrobes/alt/ghost/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - -/obj/item/clothing/head/helmet/space/hardsuit/cult - name = "\improper Nar'Sien hardened helmet" - desc = "A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." - icon_state = "cult_helmet" - item_state = "cult_helmet" - armor = list("melee" = 70, "bullet" = 50, "laser" = 30,"energy" = 40, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75) - light_system = NO_LIGHT_SUPPORT - light_range = 0 - actions_types = list() - -/obj/item/clothing/suit/space/hardsuit/cult - name = "\improper Nar'Sien hardened armor" - icon_state = "cult_armor" - item_state = "cult_armor" - desc = "A heavily-armored exosuit worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." - w_class = WEIGHT_CLASS_BULKY - allowed = list(/obj/item/tome, /obj/item/tank/internals/) - armor = list("melee" = 70, "bullet" = 50, "laser" = 30,"energy" = 40, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75) - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult - -/obj/item/sharpener/cult - name = "eldritch whetstone" - desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone." - icon_state = "cult_sharpener" - used = 0 - increment = 5 - max = 40 - prefix = "darkened" - -/obj/item/sharpener/cult/update_icon_state() - icon_state = "cult_sharpener[used ? "_used" : ""]" - return ..() - -/obj/item/clothing/suit/hooded/cultrobes/cult_shield - name = "empowered cultist armor" - desc = "Empowered armor which creates a powerful shield around the user." - icon_state = "cult_armor" - item_state = "cult_armor" - w_class = WEIGHT_CLASS_BULKY - armor = list("melee" = 50, "bullet" = 40, "laser" = 50,"energy" = 50, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 50, "acid" = 60) - var/current_charges = 3 - hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/cult_shield - -/obj/item/clothing/head/hooded/cult_hoodie/cult_shield - name = "empowered cultist helmet" - desc = "Empowered helmet which creates a powerful shield around the user." - icon_state = "cult_hoodalt" - armor = list("melee" = 50, "bullet" = 40, "laser" = 50,"energy" = 50, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 50, "acid" = 60) - -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/equipped(mob/living/user, slot) - ..() - if(!iscultist(user)) - to_chat(user, "\"I wouldn't advise that.\"") - to_chat(user, "An overwhelming sense of nausea overpowers you!") - user.dropItemToGround(src, TRUE) - user.Dizzy(30) - user.Paralyze(100) - -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(current_charges) - owner.visible_message("\The [attack_text] is deflected in a burst of blood-red sparks!") - current_charges-- - new /obj/effect/temp_visual/cult/sparks(get_turf(owner)) - if(!current_charges) - owner.visible_message("The runed shield around [owner] suddenly disappears!") - owner.update_inv_wear_suit() - return 1 - return 0 - -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands) - . = ..() - if(!isinhands && current_charges) - . += mutable_appearance('icons/effects/cult_effects.dmi', "shield-cult", MOB_LAYER + 0.01) - -/obj/item/clothing/suit/hooded/cultrobes/berserker - name = "flagellant's robes" - desc = "Blood-soaked robes infused with dark magic; allows the user to move at inhuman speeds, but at the cost of increased damage." - allowed = list(/obj/item/tome) - armor = list("melee" = -45, "bullet" = -45, "laser" = -45,"energy" = -55, "bomb" = -45, "bio" = -45, "rad" = -45, "fire" = 0, "acid" = 0) - slowdown = -0.6 - hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/berserkerhood - -/obj/item/clothing/head/hooded/cult_hoodie/berserkerhood - name = "flagellant's hood" - desc = "Blood-soaked hood infused with dark magic." - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - -/obj/item/clothing/suit/hooded/cultrobes/berserker/equipped(mob/living/user, slot) - ..() - if(!iscultist(user)) - to_chat(user, "\"I wouldn't advise that.\"") - to_chat(user, "An overwhelming sense of nausea overpowers you!") - user.dropItemToGround(src, TRUE) - user.Dizzy(30) - user.Paralyze(100) - -/obj/item/clothing/glasses/hud/health/night/cultblind - desc = "may Nar'Sie guide you through the darkness and shield you from the light." - name = "zealot's blindfold" - icon_state = "blindfold" - item_state = "blindfold" - flash_protect = FLASH_PROTECTION_FLASH - -/obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot) - ..() - if(prob(30)) - to_chat(user, "\"You want to be blind, do you?\"") - user.dropItemToGround(src, TRUE) - user.Dizzy(30) - user.Paralyze(100) - user.blind_eyes(30) - else - return - -/obj/item/reagent_containers/glass/beaker/unholywater - name = "flask of unholy water" - desc = "Toxic to nonbelievers; reinvigorating to the faithful - this flask may be sipped or thrown." - icon = 'icons/obj/drinks/drinks.dmi' - icon_state = "holyflask" - color = "#333333" - list_reagents = list(/datum/reagent/fuel/unholywater = 50) - can_have_cap = FALSE - cap_icon_state = null - cap_on = FALSE - -/obj/item/cult_shift - name = "veil shifter" - desc = "This relic instantly teleports you, and anything you're pulling, forward by a moderate distance." - icon = 'icons/obj/cult.dmi' - icon_state ="shifter" - var/uses = 4 - -/obj/item/cult_shift/examine(mob/user) - . = ..() - if(uses) - . += "It has [uses] use\s remaining." - else - . += "It seems drained." - -/obj/item/cult_shift/proc/handle_teleport_grab(turf/T, mob/user) - var/mob/living/carbon/C = user - if(C.pulling) - var/atom/movable/pulled = C.pulling - do_teleport(pulled, T, channel = TELEPORT_CHANNEL_CULT) - . = pulled - -/obj/item/cult_shift/attack_self(mob/user) - if(!uses || !iscarbon(user)) - to_chat(user, "\The [src] is dull and unmoving in your hands.") - return - - var/mob/living/carbon/C = user - var/turf/mobloc = get_turf(C) - var/turf/destination = get_teleport_loc(mobloc,C,9,1,3,1,0,1) - - if(destination) - uses-- - if(uses <= 0) - icon_state ="shifter_drained" - playsound(mobloc, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, C.dir) - - var/atom/movable/pulled = handle_teleport_grab(destination, C) - if(do_teleport(C, destination, channel = TELEPORT_CHANNEL_CULT)) - if(pulled) - C.start_pulling(pulled) //forcemove resets pulls, so we need to re-pull - new /obj/effect/temp_visual/dir_setting/cult/phase(destination, C.dir) - playsound(destination, 'sound/effects/phasein.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - playsound(destination, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - - else - to_chat(C, "The veil cannot be torn here!") - -/obj/item/flashlight/flare/culttorch - name = "void torch" - desc = "Used by veteran cultists to instantly transport items to their needful brethren." - w_class = WEIGHT_CLASS_SMALL - light_range = 1 - icon_state = "torch" - item_state = "torch" - color = "#ff0000" - on_damage = 15 - slot_flags = null - on = TRUE - var/charges = 5 - -/obj/item/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity) - if(!proximity) - return - if(!iscultist(user)) - to_chat(user, "That doesn't seem to do anything useful.") - return - - if(istype(A, /obj/item)) - - var/list/cultists = list() - for(var/datum/mind/M in SSticker.mode.cult) - if(M.current && M.current.stat != DEAD) - cultists |= M.current - var/mob/living/cultist_to_receive = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in (cultists - user) - if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated()) - return - if(!cultist_to_receive) - to_chat(user, "You require a destination!") - log_game("Void torch failed - no target") - return - if(cultist_to_receive.stat == DEAD) - to_chat(user, "[cultist_to_receive] has died!") - log_game("Void torch failed - target died") - return - if(!iscultist(cultist_to_receive)) - to_chat(user, "[cultist_to_receive] is not a follower of the Geometer!") - log_game("Void torch failed - target was deconverted") - return - if(A in user.GetAllContents()) - to_chat(user, "[A] must be on a surface in order to teleport it!") - return - to_chat(user, "You ignite [A] with \the [src], turning it to ash, but through the torch's flames you see that [A] has reached [cultist_to_receive]!") - cultist_to_receive.put_in_hands(A) - charges-- - to_chat(user, "\The [src] now has [charges] charge\s.") - if(charges == 0) - qdel(src) - - else - ..() - to_chat(user, "\The [src] can only transport items!") - -/obj/item/blood_beam - name = "\improper magical aura" - desc = "Sinister looking aura that distorts the flow of reality around it." - lefthand_file = 'icons/mob/inhands/misc/touchspell_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/touchspell_righthand.dmi' - icon_state = "disintegrate" - item_state = "disintegrate" - item_flags = ABSTRACT | DROPDEL - w_class = WEIGHT_CLASS_HUGE - throwforce = 0 - throw_range = 0 - throw_speed = 0 - var/charging = FALSE - var/firing = FALSE - var/angle - -/obj/item/blood_beam/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - - -/obj/item/blood_beam/afterattack(atom/A, mob/living/user, flag, params) - . = ..() - if(firing || charging) - return - var/C = user.client - if(ishuman(user) && C) - angle = mouse_angle_from_client(C) - else - qdel(src) - return - charging = TRUE - INVOKE_ASYNC(src, PROC_REF(charge), user) - if(do_after(user, 90, target = user)) - firing = TRUE - INVOKE_ASYNC(src, PROC_REF(pewpew), user, params) - var/obj/structure/emergency_shield/invoker/N = new(user.loc) - if(do_after(user, 90, target = user)) - user.Paralyze(40) - to_chat(user, "You have exhausted the power of this spell!") - firing = FALSE - if(N) - qdel(N) - qdel(src) - charging = FALSE - -/obj/item/blood_beam/proc/charge(mob/user) - var/obj/O - playsound(src, 'sound/magic/lightning_chargeup.ogg', 100, TRUE) - for(var/i in 1 to 12) - if(!charging) - break - if(i > 1) - sleep(15) - if(i < 4) - O = new /obj/effect/temp_visual/cult/rune_spawn/rune1/inner(user.loc, 30, "#ff0000") - else - O = new /obj/effect/temp_visual/cult/rune_spawn/rune5(user.loc, 30, "#ff0000") - new /obj/effect/temp_visual/dir_setting/cult/phase/out(user.loc, user.dir) - if(O) - qdel(O) - -/obj/item/blood_beam/proc/pewpew(mob/user, params) - var/turf/targets_from = get_turf(src) - var/spread = 40 - var/second = FALSE - var/set_angle = angle - for(var/i in 1 to 12) - if(second) - set_angle = angle - spread - spread -= 8 - else - sleep(15) - set_angle = angle + spread - second = !second //Handles beam firing in pairs - if(!firing) - break - playsound(src, 'sound/magic/exit_blood.ogg', 75, TRUE) - new /obj/effect/temp_visual/dir_setting/cult/phase(user.loc, user.dir) - var/turf/temp_target = get_turf_in_angle(set_angle, targets_from, 40) - for(var/turf/T in getline(targets_from,temp_target)) - if (locate(/obj/effect/blessing, T)) - temp_target = T - playsound(T, 'sound/machines/clockcult/ark_damage.ogg', 50, TRUE) - new /obj/effect/temp_visual/at_shield(T, T) - break - T.narsie_act(TRUE, TRUE) - for(var/mob/living/target in T.contents) - if(iscultist(target)) - new /obj/effect/temp_visual/cult/sparks(T) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(H.stat != DEAD) - H.reagents.add_reagent(/datum/reagent/fuel/unholywater, 7) - if(isshade(target) || isconstruct(target)) - var/mob/living/simple_animal/M = target - if(M.health+15 < M.maxHealth) - M.adjustHealth(-15) - else - M.health = M.maxHealth - else - var/mob/living/L = target - if(L.density) - L.Paralyze(20) - L.adjustBruteLoss(45) - playsound(L, 'sound/hallucinations/wail.ogg', 50, TRUE) - L.emote("scream") - user.Beam(temp_target, icon_state="blood_beam", time = 7, beam_type = /obj/effect/ebeam/blood) - - -/obj/effect/ebeam/blood - name = "blood beam" - -/obj/item/shield/mirror - name = "mirror shield" - desc = "An infamous shield used by Nar'Sien sects to confuse and disorient their enemies. Its edges are weighted for use as a throwing weapon - capable of disabling multiple foes with preternatural accuracy." - icon_state = "mirror_shield" // eshield1 for expanded - lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' - force = 5 - throwforce = 15 - throw_speed = 1 - throw_range = 4 - w_class = WEIGHT_CLASS_BULKY - attack_verb = list("bumped", "prodded") - hitsound = 'sound/weapons/smash.ogg' - var/illusions = 2 - -/obj/item/shield/mirror/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(iscultist(owner)) - if(istype(hitby, /obj/projectile)) - var/obj/projectile/P = hitby - if(P.damage_type == BRUTE || P.damage_type == BURN) - if(P.damage >= 30) - var/turf/T = get_turf(owner) - T.visible_message("The sheer force from [P] shatters the mirror shield!") - new /obj/effect/temp_visual/cult/sparks(T) - playsound(T, 'sound/effects/glassbr3.ogg', 100) - owner.Paralyze(25) - qdel(src) - return FALSE - if(P.reflectable & REFLECT_NORMAL) - return FALSE //To avoid reflection chance double-dipping with block chance - . = ..() - if(.) - playsound(src, 'sound/weapons/parry.ogg', 100, TRUE) - if(illusions > 0) - illusions-- - addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/shield/mirror, readd)), 450) - if(prob(60)) - var/mob/living/simple_animal/hostile/illusion/M = new(owner.loc) - M.faction = list("cult") - M.Copy_Parent(owner, 70, 10, 5) - M.move_to_delay = owner.cached_multiplicative_slowdown - else - var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc) - E.Copy_Parent(owner, 70, 10) - E.GiveTarget(owner) - E.Goto(owner, owner.cached_multiplicative_slowdown, E.minimum_distance) - return TRUE - else - if(prob(50)) - var/mob/living/simple_animal/hostile/illusion/H = new(owner.loc) - H.Copy_Parent(owner, 100, 20, 5) - H.faction = list("cult") - H.GiveTarget(owner) - H.move_to_delay = owner.cached_multiplicative_slowdown - to_chat(owner, "[src] betrays you!") - return FALSE - -/obj/item/shield/mirror/proc/readd() - illusions++ - if(illusions == initial(illusions) && isliving(loc)) - var/mob/living/holder = loc - to_chat(holder, "The shield's illusions are back at full strength!") - -/obj/item/shield/mirror/IsReflect() - if(prob(block_chance)) - return TRUE - return FALSE - -/obj/item/shield/mirror/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) - var/turf/T = get_turf(hit_atom) - var/datum/thrownthing/D = throwingdatum - if(isliving(hit_atom)) - var/mob/living/L = hit_atom - if(iscultist(L)) - playsound(src, 'sound/weapons/throwtap.ogg', 50) - if(L.put_in_active_hand(src)) - L.visible_message("[L] catches [src] out of the air!") - else - L.visible_message("[src] bounces off of [L], as if repelled by an unseen force!") - else if(!..()) - if(!L.anti_magic_check()) - L.Paralyze(30) - if(D?.thrower) - for(var/mob/living/Next in orange(2, T)) - if(!Next.density || iscultist(Next)) - continue - throw_at(Next, 3, 1, D.thrower) - return - throw_at(D.thrower, 7, 1, null) - else - ..() diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm deleted file mode 100644 index 73b8b89c9cba..000000000000 --- a/code/modules/antagonists/cult/cult_structures.dm +++ /dev/null @@ -1,288 +0,0 @@ -/obj/structure/destructible/cult - density = TRUE - anchored = TRUE - icon = 'icons/obj/cult.dmi' - light_power = 2 - var/cooldowntime = 0 - break_sound = 'sound/hallucinations/veryfar_noise.ogg' - debris = list(/obj/item/stack/sheet/mineral/hidden/hellstone = 1) - -/obj/structure/destructible/cult/proc/conceal() //for spells that hide cult presence - density = FALSE - visible_message("[src] fades away.") - invisibility = INVISIBILITY_OBSERVER - alpha = 100 //To help ghosts distinguish hidden runes - light_range = 0 - light_power = 0 - update_light() - STOP_PROCESSING(SSfastprocess, src) - -/obj/structure/destructible/cult/proc/reveal() //for spells that reveal cult presence - density = initial(density) - invisibility = 0 - visible_message("[src] suddenly appears!") - alpha = initial(alpha) - light_range = initial(light_range) - light_power = initial(light_power) - update_light() - START_PROCESSING(SSfastprocess, src) - - -/obj/structure/destructible/cult/examine(mob/user) - . = ..() - . += "\The [src] is [anchored ? "":"not "]secured to the floor." - if((iscultist(user) || isobserver(user)) && cooldowntime > world.time) - . += "The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)]." - -/obj/structure/destructible/cult/examine_status(mob/user) - if(iscultist(user) || isobserver(user)) - var/t_It = p_they(TRUE) - var/t_is = p_are() - return "[t_It] [t_is] at [round(obj_integrity * 100 / max_integrity)]% stability." - return ..() - -/obj/structure/destructible/cult/attack_animal(mob/living/simple_animal/M) - if(istype(M, /mob/living/simple_animal/hostile/construct/artificer)) - if(obj_integrity < max_integrity) - M.changeNext_move(CLICK_CD_MELEE) - obj_integrity = min(max_integrity, obj_integrity + 5) - Beam(M, icon_state="sendbeam", time=4) - M.visible_message("[M] repairs \the [src].", \ - "You repair [src], leaving [p_they()] at [round(obj_integrity * 100 / max_integrity)]% stability.") - else - to_chat(M, "You cannot repair [src], as [p_theyre()] undamaged!") - else - ..() - -/obj/structure/destructible/cult/set_anchored(anchorvalue) - . = ..() - if(isnull(.)) - return - update_appearance() - -/obj/structure/destructible/cult/update_icon_state() - icon_state = "[initial(icon_state)][anchored ? null : "_off"]" - return ..() - -/obj/structure/destructible/cult/proc/check_menu(mob/user) - if(!istype(user)) - return FALSE - if(user.incapacitated() || !user.Adjacent(src)) - return FALSE - return TRUE - -/obj/structure/destructible/cult/talisman - name = "altar" - desc = "A bloodstained altar dedicated to Nar'Sie." - icon_state = "talismanaltar" - break_message = "The altar shatters, leaving only the wailing of the damned!" - -/obj/structure/destructible/cult/talisman/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(!iscultist(user)) - to_chat(user, "You're pretty sure you know exactly what this is used for and you can't seem to touch it.") - return - if(!anchored) - to_chat(user, "You need to anchor [src] to the floor with your dagger first.") - return - if(cooldowntime > world.time) - to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") - return - var/list/items = list( - "Eldritch Whetstone" = image(icon = 'icons/obj/kitchen.dmi', icon_state = "cult_sharpener"), - "Construct Shell" = image(icon = 'icons/obj/wizard.dmi', icon_state = "construct_cult"), - "Flask of Unholy Water" = image(icon = 'icons/obj/drinks/drinks.dmi', icon_state = "holyflask") - ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - var/list/pickedtype = list() - switch(choice) - if("Eldritch Whetstone") - pickedtype += /obj/item/sharpener/cult - if("Construct Shell") - pickedtype += /obj/structure/constructshell - if("Flask of Unholy Water") - pickedtype += /obj/item/reagent_containers/glass/beaker/unholywater - else - return - if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) - cooldowntime = world.time + 2400 - for(var/N in pickedtype) - new N(get_turf(src)) - to_chat(user, "You kneel before the altar and your faith is rewarded with the [choice]!") - -/obj/structure/destructible/cult/forge - name = "daemon forge" - desc = "A forge used in crafting the unholy weapons used by the armies of Nar'Sie." - icon_state = "forge" - light_range = 2 - light_color = LIGHT_COLOR_LAVA - break_message = "The force breaks apart into shards with a howling scream!" - -/obj/structure/destructible/cult/forge/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(!iscultist(user)) - to_chat(user, "The heat radiating from [src] pushes you back.") - return - if(!anchored) - to_chat(user, "You need to anchor [src] to the floor with your dagger first.") - return - if(cooldowntime > world.time) - to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") - return - var/list/items = list( - "Shielded Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cult_armor"), - "Flagellant's Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cultrobes"), - "Mirror Shield" = image(icon = 'icons/obj/shields.dmi', icon_state = "mirror_shield") - ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - var/list/pickedtype = list() - switch(choice) - if("Shielded Robe") - pickedtype += /obj/item/clothing/suit/hooded/cultrobes/cult_shield - if("Flagellant's Robe") - pickedtype += /obj/item/clothing/suit/hooded/cultrobes/berserker - if("Mirror Shield") - pickedtype += /obj/item/shield/mirror - else - return - if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) - cooldowntime = world.time + 2400 - for(var/N in pickedtype) - new N(get_turf(src)) - to_chat(user, "You work the forge as dark knowledge guides your hands, creating the [choice]!") - - - -/obj/structure/destructible/cult/pylon - name = "pylon" - desc = "A floating crystal that slowly heals those faithful to Nar'Sie." - icon_state = "pylon" - light_range = 1.5 - light_color = COLOR_SOFT_RED - break_sound = 'sound/effects/glassbr2.ogg' - break_message = "The blood-red crystal falls to the floor and shatters!" - var/heal_delay = 25 - var/last_heal = 0 - var/corrupt_delay = 50 - var/last_corrupt = 0 - -/obj/structure/destructible/cult/pylon/New() - START_PROCESSING(SSfastprocess, src) - ..() - -/obj/structure/destructible/cult/pylon/Destroy() - STOP_PROCESSING(SSfastprocess, src) - return ..() - -/obj/structure/destructible/cult/pylon/process() - if(!anchored) - return - if(last_heal <= world.time) - last_heal = world.time + heal_delay - for(var/mob/living/L in range(5, src)) - if(iscultist(L) || isshade(L) || isconstruct(L)) - if(L.health != L.maxHealth) - new /obj/effect/temp_visual/heal(get_turf(src), "#960000") - if(ishuman(L)) - L.adjustBruteLoss(-1, 0) - L.adjustFireLoss(-1, 0) - L.updatehealth() - if(isshade(L) || isconstruct(L)) - var/mob/living/simple_animal/M = L - if(M.health < M.maxHealth) - M.adjustHealth(-3) - if(ishuman(L) && L.blood_volume < BLOOD_VOLUME_NORMAL) - L.blood_volume += 1.0 - CHECK_TICK - if(last_corrupt <= world.time) - var/list/validturfs = list() - var/list/cultturfs = list() - for(var/T in circleviewturfs(src, 5)) - if(istype(T, /turf/open/floor/engine/cult)) - cultturfs |= T - continue - var/static/list/blacklisted_pylon_turfs = typecacheof(list( - /turf/closed, - /turf/open/floor/engine/cult, - /turf/open/space, - /turf/open/lava, - /turf/open/chasm)) - if(is_type_in_typecache(T, blacklisted_pylon_turfs)) - continue - else - validturfs |= T - - last_corrupt = world.time + corrupt_delay - - if(length(validturfs)) - var/turf/T = pick(validturfs) - if(istype(T, /turf/open/floor/plating)) - T.PlaceOnTop(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) - else - T.ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) - else if (length(cultturfs)) - var/turf/open/floor/engine/cult/F = pick(cultturfs) - new /obj/effect/temp_visual/cult/turf/floor(F) - else - // Are we in space or something? No cult turfs or - // convertable turfs? - last_corrupt = world.time + corrupt_delay*2 - -/obj/structure/destructible/cult/tome - name = "archives" - desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl." - icon_state = "tomealtar" - light_range = 1.5 - light_color = LIGHT_COLOR_FIRE - break_message = "The books and tomes of the archives burn into ash as the desk shatters!" - -/obj/structure/destructible/cult/tome/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(!iscultist(user)) - to_chat(user, "These books won't open and it hurts to even try and read the covers.") - return - if(!anchored) - to_chat(user, "You need to anchor [src] to the floor with your dagger first.") - return - if(cooldowntime > world.time) - to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") - return - var/list/items = list( - "Zealot's Blindfold" = image(icon = 'icons/obj/clothing/eyes/eyes.dmi', icon_state = "blindfold"), - "Veil Walker Set" = image(icon = 'icons/obj/cult.dmi', icon_state = "shifter") - ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - var/list/pickedtype = list() - switch(choice) - if("Zealot's Blindfold") - pickedtype += /obj/item/clothing/glasses/hud/health/night/cultblind - if("Veil Walker Set") - pickedtype += /obj/item/cult_shift - pickedtype += /obj/item/flashlight/flare/culttorch - else - return - if(src && !QDELETED(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) - cooldowntime = world.time + 2400 - for(var/N in pickedtype) - new N(get_turf(src)) - to_chat(user, "You summon the [choice] from the archives!") - -/obj/effect/gateway - name = "gateway" - desc = "You're pretty sure that abyss is staring back." - icon = 'icons/obj/cult.dmi' - icon_state = "hole" - density = TRUE - anchored = TRUE - -/obj/effect/gateway/singularity_act() - return - -/obj/effect/gateway/singularity_pull() - return diff --git a/code/modules/antagonists/cult/cult_turf_overlay.dm b/code/modules/antagonists/cult/cult_turf_overlay.dm deleted file mode 100644 index 2e950326bf8a..000000000000 --- a/code/modules/antagonists/cult/cult_turf_overlay.dm +++ /dev/null @@ -1,32 +0,0 @@ -//an "overlay" used by clockwork walls and floors to appear normal to mesons. -/obj/effect/cult_turf/overlay - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - var/atom/linked - -/obj/effect/cult_turf/overlay/examine(mob/user) - if(linked) - linked.examine(user) - -/obj/effect/cult_turf/overlay/ex_act() - return FALSE - -/obj/effect/cult_turf/overlay/singularity_act() - return -/obj/effect/cult_turf/overlay/singularity_pull() - return - -/obj/effect/cult_turf/overlay/singularity_pull(S, current_size) - return - -/obj/effect/cult_turf/overlay/Destroy() - if(linked) - linked = null - . = ..() - -/obj/effect/cult_turf/overlay/floor - icon = 'icons/turf/floors.dmi' - icon_state = "clockwork_floor" - layer = TURF_LAYER - -/obj/effect/cult_turf/overlay/floor/bloodcult - icon_state = "cult" diff --git a/code/modules/antagonists/cult/rune_spawn_action.dm b/code/modules/antagonists/cult/rune_spawn_action.dm deleted file mode 100644 index 2829141405dd..000000000000 --- a/code/modules/antagonists/cult/rune_spawn_action.dm +++ /dev/null @@ -1,115 +0,0 @@ -//after a delay, creates a rune below you. for constructs creating runes. -/datum/action/innate/cult/create_rune - name = "Summon Rune" - desc = "Summons a rune" - background_icon_state = "bg_demon" - var/obj/effect/rune/rune_type - var/cooldown = 0 - var/base_cooldown = 1800 - var/scribe_time = 60 - var/damage_interrupt = TRUE - var/action_interrupt = TRUE - var/obj/effect/temp_visual/cult/rune_spawn/rune_word_type - var/obj/effect/temp_visual/cult/rune_spawn/rune_innerring_type - var/obj/effect/temp_visual/cult/rune_spawn/rune_center_type - var/rune_color - -/datum/action/innate/cult/create_rune/IsAvailable() - if(!rune_type || cooldown > world.time) - return FALSE - return ..() - -/datum/action/innate/cult/create_rune/proc/turf_check(turf/T) - if(!T) - return FALSE - if(isspaceturf(T)) - to_chat(owner, "You cannot scribe runes in space!") - return FALSE - if(locate(/obj/effect/rune) in T) - to_chat(owner, "There is already a rune here.") - return FALSE - return TRUE - - -/datum/action/innate/cult/create_rune/Activate() - var/turf/T = get_turf(owner) - if(turf_check(T)) - var/chosen_keyword - if(initial(rune_type.req_keyword)) - chosen_keyword = stripped_input(owner, "Enter a keyword for the new rune.", "Words of Power") - if(!chosen_keyword) - return - //the outer ring is always the same across all runes - var/obj/effect/temp_visual/cult/rune_spawn/R1 = new(T, scribe_time, rune_color) - //the rest are not always the same, so we need types for em - var/obj/effect/temp_visual/cult/rune_spawn/R2 - if(rune_word_type) - R2 = new rune_word_type(T, scribe_time, rune_color) - var/obj/effect/temp_visual/cult/rune_spawn/R3 - if(rune_innerring_type) - R3 = new rune_innerring_type(T, scribe_time, rune_color) - var/obj/effect/temp_visual/cult/rune_spawn/R4 - if(rune_center_type) - R4 = new rune_center_type(T, scribe_time, rune_color) - - cooldown = base_cooldown + world.time - owner.update_action_buttons_icon() - addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) - var/list/health - if(damage_interrupt && isliving(owner)) - var/mob/living/L = owner - health = list("health" = L.health) - var/scribe_mod = scribe_time - if(istype(T, /turf/open/floor/engine/cult)) - scribe_mod *= 0.5 - playsound(T, 'sound/magic/enter_blood.ogg', 100, FALSE) - if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, TYPE_PROC_REF(/mob, break_do_after_checks), health, action_interrupt))) - var/obj/effect/rune/new_rune = new rune_type(owner.loc) - new_rune.keyword = chosen_keyword - else - qdel(R1) - if(R2) - qdel(R2) - if(R3) - qdel(R3) - if(R4) - qdel(R4) - cooldown = 0 - owner.update_action_buttons_icon() - -//teleport rune -/datum/action/innate/cult/create_rune/tele - name = "Summon Teleport Rune" - desc = "Summons a teleport rune to your location, as though it has been there all along..." - button_icon_state = "telerune" - rune_type = /obj/effect/rune/teleport - rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune2 - rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune2/inner - rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune2/center - rune_color = RUNE_COLOR_TELEPORT - -/datum/action/innate/cult/create_rune/wall - name = "Summon Barrier Rune" - desc = "Summons an active barrier rune to your location, as though it has been there all along..." - button_icon_state = "barrier" - rune_type = /obj/effect/rune/wall - rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune4 - rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune4/inner - rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune4/center - rune_color = RUNE_COLOR_DARKRED - -/datum/action/innate/cult/create_rune/wall/Activate() - . = ..() - var/obj/effect/rune/wall/W = locate(/obj/effect/rune/wall) in owner.loc - if(W) - W.spread_density() - -/datum/action/innate/cult/create_rune/revive - name = "Summon Revive Rune" - desc = "Summons a revive rune to your location, as though it has been there all along..." - button_icon_state = "revive" - rune_type = /obj/effect/rune/raise_dead - rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune1 - rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune1/inner - rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune1/center - rune_color = RUNE_COLOR_MEDIUMRED diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm deleted file mode 100644 index 3382672071cc..000000000000 --- a/code/modules/antagonists/cult/runes.dm +++ /dev/null @@ -1,1029 +0,0 @@ -GLOBAL_LIST_EMPTY(sacrificed) //a mixed list of minds and mobs -GLOBAL_LIST(rune_types) //Every rune that can be drawn by ritual daggers -GLOBAL_LIST_EMPTY(teleport_runes) -GLOBAL_LIST_EMPTY(wall_runes) -/* - -This file contains runes. -Runes are used by the cult to cause many different effects and are paramount to their success. -They are drawn with a ritual dagger in blood, and are distinguishable to cultists and normal crew by examining. -Fake runes can be drawn in crayon to fool people. -Runes can either be invoked by one's self or with many different cultists. Each rune has a specific incantation that the cultists will say when invoking it. - - -*/ - -/obj/effect/rune - name = "rune" - var/cultist_name = "basic rune" - desc = "An odd collection of symbols drawn in what seems to be blood." - var/cultist_desc = "a basic rune with no function." //This is shown to cultists who examine the rune in order to determine its true purpose. - anchored = TRUE - icon = 'icons/obj/rune.dmi' - icon_state = "1" - resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF - layer = SIGIL_LAYER - color = RUNE_COLOR_RED - - var/invocation = "Aiy ele-mayo!" //This is said by cultists when the rune is invoked. - var/req_cultists = 1 //The amount of cultists required around the rune to invoke it. If only 1, any cultist can invoke it. - var/req_cultists_text //if we have a description override for required cultists to invoke - var/rune_in_use = FALSE // Used for some runes, this is for when you want a rune to not be usable when in use. - - var/scribe_delay = 40 //how long the rune takes to create - var/scribe_damage = 0.1 //how much damage you take doing it - var/invoke_damage = 0 //how much damage invokers take when invoking it - var/construct_invoke = TRUE //if constructs can invoke it - - var/req_keyword = 0 //If the rune requires a keyword - go figure amirite - var/keyword //The actual keyword for the rune - -/obj/effect/rune/Initialize(mapload, set_keyword) - . = ..() - if(set_keyword) - keyword = set_keyword - var/image/I = image(icon = 'icons/effects/blood.dmi', icon_state = null, loc = src) - I.override = TRUE - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "cult_runes", I) - -/obj/effect/rune/examine(mob/user) - . = ..() - if(iscultist(user) || user.stat == DEAD) //If they're a cultist or a ghost, tell them the effects - . += "Name: [cultist_name]\n"+\ - "Effects: [capitalize(cultist_desc)]\n"+\ - "Required Acolytes: [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]" - if(req_keyword && keyword) - . += "Keyword: [keyword]" - -/obj/effect/rune/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(!iscultist(user)) - to_chat(user, "You aren't able to understand the words of [src].") - return - var/list/invokers = can_invoke(user) - if(invokers.len >= req_cultists) - invoke(invokers) - else - to_chat(user, "You need [req_cultists - invokers.len] more adjacent cultists to use this rune in such a manner.") - fail_invoke() - -/obj/effect/rune/attack_animal(mob/living/simple_animal/M) - if(istype(M, /mob/living/simple_animal/shade) || istype(M, /mob/living/simple_animal/hostile/construct)) - if(istype(M, /mob/living/simple_animal/hostile/construct/wraith/angelic) || istype(M, /mob/living/simple_animal/hostile/construct/juggernaut/angelic) || istype(M, /mob/living/simple_animal/hostile/construct/artificer/angelic)) - to_chat(M, "You purge the rune!") - qdel(src) - else if(construct_invoke || !iscultist(M)) //if you're not a cult construct we want the normal fail message - attack_hand(M) - else - to_chat(M, "You are unable to invoke the rune!") - -/obj/effect/rune/proc/conceal() //for talisman of revealing/hiding - visible_message("[src] fades away.") - invisibility = INVISIBILITY_OBSERVER - alpha = 100 //To help ghosts distinguish hidden runes - -/obj/effect/rune/proc/reveal() //for talisman of revealing/hiding - invisibility = 0 - visible_message("[src] suddenly appears!") - alpha = initial(alpha) - -/* - -There are a few different procs each rune runs through when a cultist activates it. -can_invoke() is called when a cultist activates the rune with an empty hand. If there are multiple cultists, this rune determines if the required amount is nearby. -invoke() is the rune's actual effects. -fail_invoke() is called when the rune fails, via not enough people around or otherwise. Typically this just has a generic 'fizzle' effect. -structure_check() searches for nearby cultist structures required for the invocation. Proper structures are pylons, forges, archives, and altars. - -*/ - -/obj/effect/rune/proc/can_invoke(mob/living/user=null) - //This proc determines if the rune can be invoked at the time. If there are multiple required cultists, it will find all nearby cultists. - var/list/invokers = list() //people eligible to invoke the rune - if(user) - invokers += user - if(req_cultists > 1 || istype(src, /obj/effect/rune/convert)) - var/list/things_in_range = range(1, src) - for(var/mob/living/L in things_in_range) - if(iscultist(L)) - if(L == user) - continue - if(ishuman(L)) - var/mob/living/carbon/human/H = L - if((HAS_TRAIT(H, TRAIT_MUTE)) || H.silent) - continue - if(L.stat) - continue - invokers += L - return invokers - -/obj/effect/rune/proc/invoke(list/invokers) - //This proc contains the effects of the rune as well as things that happen afterwards. If you want it to spawn an object and then delete itself, have both here. - for(var/M in invokers) - if(isliving(M)) - var/mob/living/L = M - if(invocation) - L.say(invocation, language = /datum/language/common, ignore_spam = TRUE, forced = "cult invocation") - if(invoke_damage) - L.apply_damage(invoke_damage, BRUTE) - to_chat(L, "[src] saps your strength!") - else if(istype(M, /obj/item/toy/plush/narplush)) - var/obj/item/toy/plush/narplush/P = M - P.visible_message("[P] squeaks loudly!") - do_invoke_glow() - -/obj/effect/rune/proc/do_invoke_glow() - set waitfor = FALSE - animate(src, transform = matrix()*2, alpha = 0, time = 5, flags = ANIMATION_END_NOW) //fade out - sleep(5) - animate(src, transform = matrix(), alpha = 255, time = 0, flags = ANIMATION_END_NOW) - -/obj/effect/rune/proc/fail_invoke() - //This proc contains the effects of a rune if it is not invoked correctly, through either invalid wording or not enough cultists. By default, it's just a basic fizzle. - visible_message("The markings pulse with a small flash of red light, then fall dark.") - var/oldcolor = color - color = rgb(255, 0, 0) - animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) - -//Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user. -/obj/effect/rune/malformed - cultist_name = "malformed rune" - cultist_desc = "a senseless rune written in gibberish. No good can come from invoking this." - invocation = "Ra'sha yoka!" - invoke_damage = 30 - -/obj/effect/rune/malformed/Initialize(mapload, set_keyword) - . = ..() - icon_state = "[rand(1,7)]" - color = rgb(rand(0,255), rand(0,255), rand(0,255)) - -/obj/effect/rune/malformed/invoke(list/invokers) - ..() - qdel(src) - -//Rite of Offering: Converts or sacrifices a target. -/obj/effect/rune/convert - cultist_name = "Offer" - cultist_desc = "offers a noncultist above it to Nar'Sie, either converting them or sacrificing them." - req_cultists_text = "2 for conversion, 3 for living sacrifices and sacrifice targets." - invocation = "Mah'weyh pleggh at e'ntrath!" - icon_state = "3" - color = RUNE_COLOR_OFFER - req_cultists = 1 - rune_in_use = FALSE - -/obj/effect/rune/convert/do_invoke_glow() - return - -/obj/effect/rune/convert/invoke(list/invokers) - if(rune_in_use) - return - var/list/myriad_targets = list() - var/turf/T = get_turf(src) - for(var/mob/living/M in T) - if(!iscultist(M)) - myriad_targets |= M - if(!myriad_targets.len) - fail_invoke() - log_game("Offer rune failed - no eligible targets") - return - rune_in_use = TRUE - visible_message("[src] pulses blood red!") - var/oldcolor = color - color = RUNE_COLOR_DARKRED - var/mob/living/L = pick(myriad_targets) - - var/mob/living/F = invokers[1] - var/datum/antagonist/cult/C = F.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - var/datum/team/cult/Cult_team = C.cult_team - var/is_convertable = is_convertable_to_cult(L,C.cult_team) - if(L.stat != DEAD && is_convertable) - invocation = "Mah'weyh pleggh at e'ntrath!" - ..() - if(is_convertable) - do_convert(L, invokers) - else - invocation = "Barhah hra zar'garis!" - ..() - do_sacrifice(L, invokers) - animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) - Cult_team.check_size() // Triggers the eye glow or aura effects if the cult has grown large enough relative to the crew - rune_in_use = FALSE - -/obj/effect/rune/convert/proc/do_convert(mob/living/convertee, list/invokers) - if(invokers.len < 2) - for(var/M in invokers) - to_chat(M, "You need at least two invokers to convert [convertee]!") - log_game("Offer rune failed - tried conversion with one invoker") - return 0 - if(convertee.anti_magic_check(TRUE, TRUE, FALSE, 0)) //Not chargecost because it can be spammed - for(var/M in invokers) - to_chat(M, "Something is shielding [convertee]'s mind!") - log_game("Offer rune failed - convertee had anti-magic") - return 0 - var/brutedamage = convertee.getBruteLoss() - var/burndamage = convertee.getFireLoss() - if(brutedamage || burndamage) - convertee.adjustBruteLoss(-(brutedamage * 0.75)) - convertee.adjustFireLoss(-(burndamage * 0.75)) - convertee.visible_message( - "[convertee] writhes in pain [brutedamage || burndamage ? "even as [convertee.p_their()] wounds heal and close" : "as the markings below [convertee.p_them()] glow a bloody red"]!", // Hello there buddy! Come here often? I hope you were wondering wtf this string was - "AAAAAAAAAAAAAA-") - SSticker.mode.add_cultist(convertee.mind, 1) - convertee.mind.special_role = ROLE_CULTIST - to_chat(convertee, "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \ - and something evil takes root.") - to_chat(convertee, "Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\ - ") - if(ishuman(convertee)) - var/mob/living/carbon/human/H = convertee - H.uncuff() - H.stuttering = 0 - H.cultslurring = 0 - if(prob(1) || SSevents.holidays && SSevents.holidays[APRIL_FOOLS]) - H.say("You son of a bitch! I'm in.", forced = "That son of a bitch! They're in.") - return 1 - -/obj/effect/rune/convert/proc/do_sacrifice(mob/living/sacrificial, list/invokers) - var/mob/living/first_invoker = invokers[1] - if(!first_invoker) - return FALSE - var/datum/antagonist/cult/C = first_invoker.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!C) - return - - - var/big_sac = FALSE - if((((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || C.cult_team.is_sacrifice_target(sacrificial.mind)) && invokers.len < 3) - for(var/M in invokers) - to_chat(M, "[sacrificial] is too greatly linked to the world! You need three acolytes!") - log_game("Offer rune failed - not enough acolytes and target is living or sac target") - return FALSE - if(sacrificial.mind) - GLOB.sacrificed += sacrificial.mind - for(var/datum/objective/sacrifice/sac_objective in C.cult_team.objectives) - if(sac_objective.target == sacrificial.mind) - sac_objective.sacced = TRUE - sac_objective.update_explanation_text() - big_sac = TRUE - else - GLOB.sacrificed += sacrificial - - new /obj/effect/temp_visual/cult/sac(get_turf(src)) - for(var/M in invokers) - if(big_sac) - to_chat(M, "\"Yes! This is the one I desire! You have done well.\"") - else - if(ishuman(sacrificial) || iscyborg(sacrificial)) - to_chat(M, "\"I accept this sacrifice.\"") - else - to_chat(M, "\"I accept this meager sacrifice.\"") - - var/obj/item/soulstone/stone = new /obj/item/soulstone(get_turf(src)) - if(sacrificial.mind) - stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul() - stone.transfer_soul("FORCE", sacrificial, usr) - stone.invisibility = 0 - - if(sacrificial) - if(iscyborg(sacrificial)) - playsound(sacrificial, 'sound/magic/disable_tech.ogg', 100, TRUE) - sacrificial.dust() //To prevent the MMI from remaining - else - playsound(sacrificial, 'sound/magic/disintegrate.ogg', 100, TRUE) - sacrificial.gib() - return TRUE - - - -/obj/effect/rune/empower - cultist_name = "Empower" - cultist_desc = "allows cultists to prepare greater amounts of blood magic at far less of a cost." - invocation = "H'drak v'loso, mir'kanas verbot!" - icon_state = "3" - color = RUNE_COLOR_TALISMAN - construct_invoke = FALSE - -/obj/effect/rune/empower/invoke(list/invokers) - . = ..() - var/mob/living/user = invokers[1] //the first invoker is always the user - for(var/datum/action/innate/cult/blood_magic/BM in user.actions) - BM.Activate() - -/obj/effect/rune/teleport - cultist_name = "Teleport" - cultist_desc = "warps everything above it to another chosen teleport rune." - invocation = "Sas'so c'arta forbici!" - icon_state = "2" - color = RUNE_COLOR_TELEPORT - req_keyword = TRUE - light_power = 4 - var/obj/effect/temp_visual/cult/portal/inner_portal //The portal "hint" for off-station teleportations - var/obj/effect/temp_visual/cult/rune_spawn/rune2/outer_portal - var/listkey - - -/obj/effect/rune/teleport/Initialize(mapload, set_keyword) - . = ..() - var/area/A = get_area(src) - var/locname = initial(A.name) - listkey = set_keyword ? "[set_keyword] [locname]":"[locname]" - GLOB.teleport_runes += src - -/obj/effect/rune/teleport/Destroy() - GLOB.teleport_runes -= src - return ..() - -/obj/effect/rune/teleport/invoke(list/invokers) - var/mob/living/user = invokers[1] //the first invoker is always the user - var/list/potential_runes = list() - var/list/teleportnames = list() - for(var/R in GLOB.teleport_runes) - var/obj/effect/rune/teleport/T = R - if(T != src && !is_away_level(T)) - potential_runes[avoid_assoc_duplicate_keys(T.listkey, teleportnames)] = T - - if(!potential_runes.len) - to_chat(user, "There are no valid runes to teleport to!") - log_game("Teleport rune failed - no other teleport runes") - fail_invoke() - return - - var/turf/T = get_turf(src) - if(is_away_level(T)) - to_chat(user, "You are not in the right dimension!") - log_game("Teleport rune failed - user in away mission") - fail_invoke() - return - - var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked - var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? - if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated() || !actual_selected_rune) - fail_invoke() - return - - var/turf/target = get_turf(actual_selected_rune) - if(target.is_blocked_turf(TRUE)) - to_chat(user, "The target rune is blocked. Attempting to teleport to it would be massively unwise.") - fail_invoke() - return - var/movedsomething = FALSE - var/moveuserlater = FALSE - var/movesuccess = FALSE - for(var/atom/movable/A in T) - if(istype(A, /obj/effect/dummy/phased_mob)) - continue - if(ismob(A)) - if(!isliving(A)) //Let's not teleport ghosts and AI eyes. - continue - if(ishuman(A)) - new /obj/effect/temp_visual/dir_setting/cult/phase/out(T, A.dir) - new /obj/effect/temp_visual/dir_setting/cult/phase(target, A.dir) - if(A == user) - moveuserlater = TRUE - movedsomething = TRUE - continue - if(!A.anchored) - movedsomething = TRUE - if(do_teleport(A, target, channel = TELEPORT_CHANNEL_CULT)) - movesuccess = TRUE - if(movedsomething) - ..() - if(moveuserlater) - if(do_teleport(user, target, channel = TELEPORT_CHANNEL_CULT)) - movesuccess = TRUE - if(movesuccess) - visible_message("There is a sharp crack of inrushing air, and everything above the rune disappears!", null, "You hear a sharp crack.") - to_chat(user, "You[moveuserlater ? "r vision blurs, and you suddenly appear somewhere else":" send everything above the rune away"].") - else - to_chat(user, "You[moveuserlater ? "r vision blurs briefly, but nothing happens":" try send everything above the rune away, but the teleportation fails"].") - var/area/A = get_area(T) - if(initial(A.name) == "Space") - actual_selected_rune.handle_portal("space", T) - if(movesuccess) - target.visible_message("There is a boom of outrushing air as something appears above the rune!", null, "You hear a boom.") - else - fail_invoke() - -/obj/effect/rune/teleport/proc/handle_portal(portal_type, turf/origin) - var/turf/T = get_turf(src) - close_portal() // To avoid stacking descriptions/animations - playsound(T, pick('sound/effects/sparks1.ogg', 'sound/effects/sparks2.ogg', 'sound/effects/sparks3.ogg', 'sound/effects/sparks4.ogg'), 100, TRUE, 14) - inner_portal = new /obj/effect/temp_visual/cult/portal(T) - if(portal_type == "space") - set_light_color(color) - desc += "
    A tear in reality reveals a black void interspersed with dots of light... something recently teleported here from space.
    The void feels like it's trying to pull you to the [dir2text(get_dir(T, origin))]!
    " - else - inner_portal.icon_state = "lava" - set_light_color(LIGHT_COLOR_FIRE) - desc += "
    A tear in reality reveals a coursing river of lava... something recently teleported here from the Lavaland Mines!" - outer_portal = new(T, 600, color) - light_range = 4 - update_light() - addtimer(CALLBACK(src, PROC_REF(close_portal)), 600, TIMER_UNIQUE) - -/obj/effect/rune/teleport/proc/close_portal() - qdel(inner_portal) - qdel(outer_portal) - desc = initial(desc) - light_range = 0 - update_light() - -//Ritual of Dimensional Rending: Calls forth the avatar of Nar'Sie upon the station. -/obj/effect/rune/narsie - cultist_name = "Nar'Sie" - cultist_desc = "tears apart dimensional barriers, calling forth the Geometer. Requires 9 invokers." - invocation = "TOK-LYR RQA-NAP G'OLT-ULOFT!!" - req_cultists = 9 - icon = 'icons/effects/96x96.dmi' - color = RUNE_COLOR_DARKRED - icon_state = "rune_large" - pixel_x = -32 //So the big ol' 96x96 sprite shows up right - pixel_y = -32 - scribe_delay = 500 //how long the rune takes to create - scribe_damage = 40.1 //how much damage you take doing it - var/used = FALSE - -/obj/effect/rune/narsie/Initialize(mapload, set_keyword) - . = ..() - SSpoints_of_interest.make_point_of_interest(src) - -/obj/effect/rune/narsie/Destroy() - SSpoints_of_interest.remove_point_of_interest(src) - . = ..() - -/obj/effect/rune/narsie/conceal() //can't hide this, and you wouldn't want to - return - -/obj/effect/rune/narsie/invoke(list/invokers) - if(used) - return - var/mob/living/user = invokers[1] - var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives - var/area/place = get_area(src) - if(!(place in summon_objective.summon_spots)) - to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(summon_objective.summon_spots)]!") - return - if(locate(/obj/singularity/narsie) in SSpoints_of_interest.other_points_of_interest) - for(var/M in invokers) - to_chat(M, "Nar'Sie is already on this plane!") - log_game("Nar'Sie rune failed - already summoned") - return - //BEGIN THE SUMMONING - used = TRUE - ..() - sound_to_playing_players('sound/effects/dimensional_rend.ogg') - var/turf/T = get_turf(src) - sleep(40) - if(src) - color = RUNE_COLOR_RED - new /obj/singularity/narsie/large/cult(T) //Causes Nar'Sie to spawn even if the rune has been removed - -//Rite of Resurrection: Requires a dead or inactive cultist. When reviving the dead, you can only perform one revival for every three sacrifices your cult has carried out. -/obj/effect/rune/raise_dead - cultist_name = "Revive" - cultist_desc = "requires a dead, mindless, or inactive cultist placed upon the rune. For each three bodies sacrificed to the dark patron, one body will be mended and their mind awoken" - invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!" //Depends on the name of the user - see below - icon_state = "1" - color = RUNE_COLOR_MEDIUMRED - var/static/sacrifices_used = -SOULS_TO_REVIVE // Cultists get one "free" revive - -/obj/effect/rune/raise_dead/examine(mob/user) - . = ..() - if(iscultist(user) || user.stat == DEAD) - . += "Sacrifices unrewarded: [LAZYLEN(GLOB.sacrificed) - sacrifices_used]" - -/obj/effect/rune/raise_dead/invoke(list/invokers) - var/turf/T = get_turf(src) - var/mob/living/mob_to_revive - var/list/potential_revive_mobs = list() - var/mob/living/user = invokers[1] - if(rune_in_use) - return - rune_in_use = TRUE - for(var/mob/living/M in T.contents) - if(iscultist(M) && (M.stat == DEAD || !M.client || M.client.is_afk())) - potential_revive_mobs |= M - if(!potential_revive_mobs.len) - to_chat(user, "There are no dead cultists on the rune!") - log_game("Raise Dead rune failed - no cultists to revive") - fail_invoke() - return - if(potential_revive_mobs.len > 1) - mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs - else - mob_to_revive = potential_revive_mobs[1] - if(QDELETED(src) || !validness_checks(mob_to_revive, user)) - fail_invoke() - return - if(user.name == "Herbert West") - invocation = "To life, to life, I bring them!" - else - invocation = initial(invocation) - ..() - if(mob_to_revive.stat == DEAD) - var/diff = LAZYLEN(GLOB.sacrificed) - SOULS_TO_REVIVE - sacrifices_used - if(diff < 0) - to_chat(user, "Your cult must carry out [abs(diff)] more sacrifice\s before it can revive another cultist!") - fail_invoke() - return - sacrifices_used += SOULS_TO_REVIVE - mob_to_revive.revive(full_heal = TRUE, admin_revive = TRUE) //This does remove traits and such, but the rune might actually see some use because of it! - mob_to_revive.grab_ghost() - if(!mob_to_revive.client || mob_to_revive.client.is_afk()) - set waitfor = FALSE - var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [mob_to_revive.name], an inactive blood cultist?", ROLE_CULTIST, null, ROLE_CULTIST, 50, mob_to_revive) - if(LAZYLEN(candidates)) - var/mob/dead/observer/C = pick(candidates) - to_chat(mob_to_revive.mind, "Your physical form has been taken over by another soul due to your inactivity! Ahelp if you wish to regain your form.") - message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(mob_to_revive)]) to replace an AFK player.") - mob_to_revive.ghostize(0) - mob_to_revive.key = C.key - else - fail_invoke() - return - SEND_SOUND(mob_to_revive, 'sound/ambience/antag/bloodcult.ogg') - to_chat(mob_to_revive, "\"PASNAR SAVRAE YAM'TOTH. Arise.\"") - mob_to_revive.visible_message( - "[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.p_their()] eyes.", \ - "You awaken suddenly from the void. You're alive!") - rune_in_use = FALSE - -/obj/effect/rune/raise_dead/proc/validness_checks(mob/living/target_mob, mob/living/user) - var/turf/T = get_turf(src) - if(QDELETED(user)) - return FALSE - if(!Adjacent(user) || user.incapacitated()) - return FALSE - if(QDELETED(target_mob)) - return FALSE - if(!(target_mob in T.contents)) - to_chat(user, "The cultist to revive has been moved!") - log_game("Raise Dead rune failed - revival target moved") - return FALSE - return TRUE - -/obj/effect/rune/raise_dead/fail_invoke() - ..() - rune_in_use = FALSE - for(var/mob/living/M in range(1,src)) - if(iscultist(M) && M.stat == DEAD) - M.visible_message("[M] twitches.") - -//Rite of the Corporeal Shield: When invoked, becomes solid and cannot be passed. Invoke again to undo. -/obj/effect/rune/wall - cultist_name = "Barrier" - cultist_desc = "when invoked, makes a temporary invisible wall to block passage. Can be invoked again to reverse this." - invocation = "Khari'd! Eske'te tannin!" - icon_state = "4" - color = RUNE_COLOR_DARKRED - CanAtmosPass = ATMOS_PASS_DENSITY - var/datum/timedevent/density_timer - var/recharging = FALSE - -/obj/effect/rune/wall/Initialize(mapload, set_keyword) - . = ..() - GLOB.wall_runes += src - -/obj/effect/rune/wall/examine(mob/user) - . = ..() - if(density && iscultist(user)) - if(density_timer) - . += "The air above this rune has hardened into a barrier that will last [DisplayTimeText(density_timer.timeToRun - world.time)]." - -/obj/effect/rune/wall/Destroy() - GLOB.wall_runes -= src - return ..() - -/obj/effect/rune/wall/BlockThermalConductivity() - return density - -/obj/effect/rune/wall/invoke(list/invokers) - if(recharging) - return - var/mob/living/user = invokers[1] - ..() - density = !density - update_state() - if(density) - spread_density() - var/carbon_user = iscarbon(user) - user.visible_message( - "[user] [carbon_user ? "places [user.p_their()] hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].", \ - "You channel [carbon_user ? "your life ":""]energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.") - if(carbon_user) - var/mob/living/carbon/C = user - C.apply_damage(2, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) - -/obj/effect/rune/wall/proc/spread_density() - for(var/R in GLOB.wall_runes) - var/obj/effect/rune/wall/W = R - if(W.virtual_z() == virtual_z() && get_dist(src, W) <= 2 && !W.density && !W.recharging) - W.density = TRUE - W.update_state() - W.spread_density() - density_timer = addtimer(CALLBACK(src, PROC_REF(lose_density)), 3000, TIMER_STOPPABLE) - -/obj/effect/rune/wall/proc/lose_density() - if(density) - recharging = TRUE - density = FALSE - update_state() - var/oldcolor = color - add_atom_colour("#696969", FIXED_COLOUR_PRIORITY) - animate(src, color = oldcolor, time = 50, easing = EASE_IN) - addtimer(CALLBACK(src, PROC_REF(recharge)), 50) - -/obj/effect/rune/wall/proc/recharge() - recharging = FALSE - add_atom_colour(RUNE_COLOR_MEDIUMRED, FIXED_COLOUR_PRIORITY) - -/obj/effect/rune/wall/proc/update_state() - deltimer(density_timer) - air_update_turf(TRUE) - if(density) - var/mutable_appearance/shimmer = mutable_appearance('icons/effects/effects.dmi', "barriershimmer", ABOVE_MOB_LAYER) - shimmer.appearance_flags |= RESET_COLOR - shimmer.alpha = 60 - shimmer.color = "#701414" - add_overlay(shimmer) - add_atom_colour(RUNE_COLOR_RED, FIXED_COLOUR_PRIORITY) - else - cut_overlays() - add_atom_colour(RUNE_COLOR_MEDIUMRED, FIXED_COLOUR_PRIORITY) - -//Rite of Joined Souls: Summons a single cultist. -/obj/effect/rune/summon - cultist_name = "Summon Cultist" - cultist_desc = "summons a single cultist to the rune. Requires 2 invokers." - invocation = "N'ath reth sh'yro eth d'rekkathnor!" - req_cultists = 2 - invoke_damage = 10 - icon_state = "3" - color = RUNE_COLOR_SUMMON - -/obj/effect/rune/summon/invoke(list/invokers) - var/mob/living/user = invokers[1] - var/list/cultists = list() - for(var/datum/mind/M in SSticker.mode.cult) - if(!(M.current in invokers) && M.current && M.current.stat != DEAD) - cultists |= M.current - var/mob/living/cultist_to_summon = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in cultists - if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated()) - return - if(!cultist_to_summon) - to_chat(user, "You require a summoning target!") - fail_invoke() - log_game("Summon Cultist rune failed - no target") - return - if(cultist_to_summon.stat == DEAD) - to_chat(user, "[cultist_to_summon] has died!") - fail_invoke() - log_game("Summon Cultist rune failed - target died") - return - if(cultist_to_summon.pulledby || cultist_to_summon.buckled) - to_chat(user, "[cultist_to_summon] is being held in place!") - fail_invoke() - log_game("Summon Cultist rune failed - target restrained") - return - if(!iscultist(cultist_to_summon)) - to_chat(user, "[cultist_to_summon] is not a follower of the Geometer!") - fail_invoke() - log_game("Summon Cultist rune failed - target was deconverted") - return - if(is_away_level(cultist_to_summon)) - to_chat(user, "[cultist_to_summon] is not in our dimension!") - fail_invoke() - log_game("Summon Cultist rune failed - target in away mission") - return - cultist_to_summon.visible_message( - "[cultist_to_summon] suddenly disappears in a flash of red light!", \ - "Overwhelming vertigo consumes you as you are hurled through the air!") - ..() - visible_message("A foggy shape materializes atop [src] and solidifes into [cultist_to_summon]!") - cultist_to_summon.forceMove(get_turf(src)) - qdel(src) - -//Rite of Boiling Blood: Deals extremely high amounts of damage to non-cultists nearby -/obj/effect/rune/blood_boil - cultist_name = "Boil Blood" - cultist_desc = "boils the blood of non-believers who can see the rune, rapidly dealing extreme amounts of damage. Requires 3 invokers." - invocation = "Dedo ol'btoh!" - icon_state = "4" - color = RUNE_COLOR_BURNTORANGE - light_color = LIGHT_COLOR_LAVA - req_cultists = 3 - invoke_damage = 10 - construct_invoke = FALSE - var/tick_damage = 25 - rune_in_use = FALSE - -/obj/effect/rune/blood_boil/do_invoke_glow() - return - -/obj/effect/rune/blood_boil/invoke(list/invokers) - if(rune_in_use) - return - ..() - rune_in_use = TRUE - var/turf/T = get_turf(src) - visible_message("[src] turns a bright, glowing orange!") - color = "#FC9B54" - set_light(6, 1, color) - for(var/mob/living/L in viewers(T)) - if(!iscultist(L) && L.blood_volume) - var/atom/I = L.anti_magic_check(chargecost = 0) - if(I) - if(isitem(I)) - to_chat(L, "[I] suddenly burns hotly before returning to normal!") - continue - to_chat(L, "Your blood boils in your veins!") - animate(src, color = "#FCB56D", time = 4) - sleep(4) - if(QDELETED(src)) - return - do_area_burn(T, 0.5) - animate(src, color = "#FFDF80", time = 5) - sleep(5) - if(QDELETED(src)) - return - do_area_burn(T, 1) - animate(src, color = "#FFFDF4", time = 6) - sleep(6) - if(QDELETED(src)) - return - do_area_burn(T, 1.5) - new /obj/effect/hotspot(T) - qdel(src) - -/obj/effect/rune/blood_boil/proc/do_area_burn(turf/T, multiplier) - set_light(6, 1, color) - for(var/mob/living/L in viewers(T)) - if(!iscultist(L) && L.blood_volume) - if(L.anti_magic_check(chargecost = 0)) - continue - L.take_overall_damage(tick_damage*multiplier, tick_damage*multiplier) - -//Rite of Spectral Manifestation: Summons a ghost on top of the rune as a cultist human with no items. User must stand on the rune at all times, and takes damage for each summoned ghost. -/obj/effect/rune/manifest - cultist_name = "Spirit Realm" - cultist_desc = "manifests a spirit servant of the Geometer and allows you to ascend as a spirit yourself. The invoker must not move from atop the rune, and will take damage for each summoned spirit." - invocation = "Gal'h'rfikk harfrandid mud'gib!" //how the fuck do you pronounce this - icon_state = "7" - invoke_damage = 10 - construct_invoke = FALSE - color = RUNE_COLOR_DARKRED - var/mob/living/affecting = null - var/ghost_limit = 3 - var/ghosts = 0 - -/obj/effect/rune/manifest/Initialize() - . = ..() - - -/obj/effect/rune/manifest/can_invoke(mob/living/user) - if(!(user in get_turf(src))) - to_chat(user, "You must be standing on [src]!") - fail_invoke() - log_game("Manifest rune failed - user not standing on rune") - return list() - if(user.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST)) - to_chat(user, "Ghosts can't summon more ghosts!") - fail_invoke() - log_game("Manifest rune failed - user is a ghost") - return list() - return ..() - -/obj/effect/rune/manifest/invoke(list/invokers) - . = ..() - var/mob/living/user = invokers[1] - var/turf/T = get_turf(src) - var/choice = alert(user,"You tear open a connection to the spirit realm...",,"Summon a Cult Ghost","Ascend as a Dark Spirit","Cancel") - if(choice == "Summon a Cult Ghost") - if(ghosts >= ghost_limit) - to_chat(user, "You are sustaining too many ghosts to summon more!") - fail_invoke() - log_game("Manifest rune failed - too many summoned ghosts") - return list() - notify_ghosts("Manifest rune invoked in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src, header = "Manifest rune") - var/list/ghosts_on_rune = list() - for(var/mob/dead/observer/O in T) - if(O.client && !is_banned_from(O.ckey, ROLE_CULTIST) && !QDELETED(src) && !(isAdminObserver(O) && (O.client.prefs.toggles & ADMIN_IGNORE_CULT_GHOST)) && !QDELETED(O)) - ghosts_on_rune += O - if(!ghosts_on_rune.len) - to_chat(user, "There are no spirits near [src]!") - fail_invoke() - log_game("Manifest rune failed - no nearby ghosts") - return list() - var/mob/dead/observer/ghost_to_spawn = pick(ghosts_on_rune) - var/mob/living/carbon/human/cult_ghost/new_human = new(T) - new_human.real_name = ghost_to_spawn.real_name - new_human.alpha = 150 //Makes them translucent - new_human.equipOutfit(/datum/outfit/ghost_cultist) //give them armor - new_human.apply_status_effect(STATUS_EFFECT_SUMMONEDGHOST) //ghosts can't summon more ghosts - new_human.see_invisible = SEE_INVISIBLE_OBSERVER - ghosts++ - playsound(src, 'sound/magic/exit_blood.ogg', 50, TRUE) - visible_message("A cloud of red mist forms above [src], and from within steps... a [new_human.gender == FEMALE ? "wo":""]man.") - to_chat(user, "Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely...") - var/obj/structure/emergency_shield/invoker/N = new(T) - new_human.key = ghost_to_spawn.key - SSticker.mode.add_cultist(new_human.mind, 0) - to_chat(new_human, "You are a servant of the Geometer. You have been made semi-corporeal by the cult of Nar'Sie, and you are to serve them at all costs.") - - while(!QDELETED(src) && !QDELETED(user) && !QDELETED(new_human) && (user in T)) - if(user.stat != CONSCIOUS || HAS_TRAIT(new_human, TRAIT_CRITICAL_CONDITION)) - break - user.apply_damage(0.1, BRUTE) - sleep(1) - - qdel(N) - ghosts-- - if(new_human) - new_human.visible_message( - "[new_human] suddenly dissolves into bones and ashes.", \ - "Your link to the world fades. Your form breaks apart.") - for(var/obj/I in new_human) - new_human.dropItemToGround(I, TRUE) - new_human.dust() - else if(choice == "Ascend as a Dark Spirit") - affecting = user - affecting.add_atom_colour(RUNE_COLOR_DARKRED, ADMIN_COLOUR_PRIORITY) - affecting.visible_message( - "[affecting] freezes statue-still, glowing an unearthly red.", \ - "You see what lies beyond. All is revealed. In this form you find that your voice booms louder and you can mark targets for the entire cult") - var/mob/dead/observer/G = affecting.ghostize(1) - var/datum/action/innate/cult/comm/spirit/CM = new - var/datum/action/innate/cult/ghostmark/GM = new - G.name = "Dark Spirit of [G.name]" - G.color = "red" - CM.Grant(G) - GM.Grant(G) - while(!QDELETED(affecting)) - if(!(affecting in T)) - user.visible_message("A spectral tendril wraps around [affecting] and pulls [affecting.p_them()] back to the rune!") - Beam(affecting, icon_state="drainbeam", time=2) - affecting.forceMove(get_turf(src)) //NO ESCAPE :^) - if(affecting.key) - affecting.visible_message( - "[affecting] slowly relaxes, the glow around [affecting.p_them()] dimming.", \ - "You are re-united with your physical form. [src] releases its hold over you.") - affecting.Paralyze(40) - break - if(affecting.health <= 10) - to_chat(G, "Your body can no longer sustain the connection!") - break - sleep(5) - CM.Remove(G) - GM.Remove(G) - affecting.remove_atom_colour(ADMIN_COLOUR_PRIORITY, RUNE_COLOR_DARKRED) - affecting.grab_ghost() - affecting = null - rune_in_use = FALSE - -/mob/living/carbon/human/cult_ghost/spill_organs(no_brain, no_organs, no_bodyparts) //cult ghosts never drop a brain - no_brain = TRUE - . = ..() - -/mob/living/carbon/human/cult_ghost/getorganszone(zone, subzones = 0) - . = ..() - for(var/obj/item/organ/brain/B in .) //they're not that smart, really - . -= B - - -/obj/effect/rune/apocalypse - cultist_name = "Apocalypse" - cultist_desc = "a harbinger of the end times. Grows in strength with the cult's desperation - but at the risk of... side effects." - invocation = "Ta'gh fara'qha fel d'amar det!" - icon = 'icons/effects/96x96.dmi' - icon_state = "apoc" - pixel_x = -32 - pixel_y = -32 - color = RUNE_COLOR_DARKRED - req_cultists = 3 - scribe_delay = 100 - -/obj/effect/rune/apocalypse/invoke(list/invokers) - if(rune_in_use) - return - . = ..() - var/area/place = get_area(src) - var/mob/living/user = invokers[1] - var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives - if(summon_objective.summon_spots.len <= 1) - to_chat(user, "Only one ritual site remains - it must be reserved for the final summoning!") - return - if(!(place in summon_objective.summon_spots)) - to_chat(user, "The Apocalypse rune will remove a ritual site, where Nar'Sie can be summoned, it can only be scribed in [english_list(summon_objective.summon_spots)]!") - return - summon_objective.summon_spots -= place - rune_in_use = TRUE - var/turf/T = get_turf(src) - new /obj/effect/temp_visual/dir_setting/curse/grasp_portal/fading(T) - var/intensity = 0 - for(var/mob/living/M in GLOB.player_list) - if(iscultist(M)) - intensity++ - intensity = max(60, 360 - (360*(intensity/GLOB.player_list.len + 0.3)**2)) //significantly lower intensity for "winning" cults - var/duration = intensity*10 - playsound(T, 'sound/magic/enter_blood.ogg', 100, TRUE) - visible_message("A colossal shockwave of energy bursts from the rune, disintegrating it in the process!") - for(var/mob/living/L in range(src, 3)) - L.Paralyze(30) - empulse(T, 0.42*(intensity), 1) - var/list/images = list() - var/zmatch = T.virtual_z() - var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] - for(var/mob/living/M in GLOB.alive_mob_list) - if(M.virtual_z() != zmatch) - continue - if(ishuman(M)) - if(!iscultist(M)) - AH.remove_hud_from(M) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(hudFix), M), duration) - var/image/A = image('icons/mob/cult.dmi',M,"cultist", ABOVE_MOB_LAYER) - A.override = 1 - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "human_apoc", A, NONE) - addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"human_apoc",TRUE), duration) - images += A - SEND_SOUND(M, pick(sound('sound/ambience/antag/bloodcult.ogg'),sound('sound/spookoween/ghost_whisper.ogg'),sound('sound/spookoween/ghosty_wind.ogg'))) - else - var/construct = pick("floater","artificer","behemoth") - var/image/B = image('icons/mob/mob.dmi',M,construct, ABOVE_MOB_LAYER) - B.override = 1 - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "mob_apoc", B, NONE) - addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"mob_apoc",TRUE), duration) - images += B - if(!iscultist(M)) - if(M.client) - var/image/C = image('icons/effects/cult_effects.dmi',M,"bloodsparkles", ABOVE_MOB_LAYER) - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE) - addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), duration) - images += C - else - to_chat(M, "An Apocalypse Rune was invoked in the [place.name], it is no longer available as a summoning site!") - SEND_SOUND(M, 'sound/effects/pope_entry.ogg') - image_handler(images, duration) - if(intensity>=285) // Based on the prior formula, this means the cult makes up <15% of current players - var/outcome = rand(1,80) - switch(outcome) - if(1 to 10) - var/datum/round_event_control/disease_outbreak/D = new() - // var/datum/round_event_control/mice_migration/M = new() - D.runEvent() - // M.runEvent() - if(11 to 20) - var/datum/round_event_control/radiation_storm/RS = new() - RS.runEvent() - if(21 to 30) - var/datum/round_event_control/brand_intelligence/BI = new() - BI.runEvent() - if(31 to 40) - var/datum/round_event_control/immovable_rod/R = new() - R.runEvent() - R.runEvent() - R.runEvent() - if(41 to 50) - var/datum/round_event_control/meteor_wave/MW = new() - MW.runEvent() - if(51 to 60) - var/datum/round_event_control/spider_infestation/SI = new() - SI.runEvent() - if(61 to 80) - var/datum/round_event_control/spacevine/SV = new() - var/datum/round_event_control/grey_tide/GT = new() - SV.runEvent() - GT.runEvent() - qdel(src) - -/obj/effect/rune/apocalypse/proc/image_handler(list/images, duration) - var/end = world.time + duration - set waitfor = 0 - while(end>world.time) - for(var/image/I in images) - I.override = FALSE - animate(I, alpha = 0, time = 25, flags = ANIMATION_PARALLEL) - sleep(35) - for(var/image/I in images) - animate(I, alpha = 255, time = 25, flags = ANIMATION_PARALLEL) - sleep(25) - for(var/image/I in images) - if(I.icon_state != "bloodsparkles") - I.override = TRUE - sleep(190) - - - -/proc/hudFix(mob/living/carbon/human/target) - if(!target || !target.client) - return - var/obj/O = target.get_item_by_slot(ITEM_SLOT_EYES) - if(istype(O, /obj/item/clothing/glasses/hud/security)) - var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] - AH.add_hud_to(target) diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm deleted file mode 100644 index db087e100e2f..000000000000 --- a/code/modules/antagonists/devil/devil.dm +++ /dev/null @@ -1,506 +0,0 @@ -#define BLOOD_THRESHOLD 3 //How many souls are needed per stage. -#define TRUE_THRESHOLD 7 -#define ARCH_THRESHOLD 12 - -#define BASIC_DEVIL 0 -#define BLOOD_lizard 1 -#define TRUE_DEVIL 2 -#define ARCH_DEVIL 3 - -#define LOSS_PER_DEATH 2 - -#define SOULVALUE soulsOwned.len-reviveNumber - -#define DEVILRESURRECTTIME 600 - -GLOBAL_LIST_EMPTY(allDevils) -GLOBAL_LIST_INIT(lawlorify, list ( - LORE = list( - OBLIGATION_FOOD = "This devil seems to always offer its victims food before slaughtering them.", - OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.", - OBLIGATION_DANCEOFF = "This devil will never turn down a dance off.", - OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.", - OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.", - OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.", - OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.", - OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.", - BAN_HURTWOMAN = "This devil seems to prefer hunting men.", - BAN_CHAPEL = "This devil avoids holy ground.", - BAN_HURTPRIEST = "The annointed clergy appear to be immune to his powers.", - BAN_AVOIDWATER = "The devil seems to have some sort of aversion to water, though it does not appear to harm him.", - BAN_STRIKEUNCONSCIOUS = "This devil only shows interest in those who are awake.", - BAN_HURTlizard = "This devil will not strike a lizardman first.", - BAN_HURTANIMAL = "This devil avoids hurting animals.", - BANISH_WATER = "To banish the devil, you must infuse its body with holy water.", - BANISH_COFFIN = "This devil will return to life if its remains are not placed within a coffin.", - BANISH_FORMALDYHIDE = "To banish the devil, you must inject its lifeless body with embalming fluid.", - BANISH_RUNES = "This devil will resurrect after death, unless its remains are within a rune.", - BANISH_CANDLES = "A large number of nearby lit candles will prevent it from resurrecting.", - BANISH_DESTRUCTION = "Its corpse must be utterly destroyed to prevent resurrection.", - BANISH_FUNERAL_GARB = "If clad in funeral garments, this devil will be unable to resurrect. Should the clothes not fit, lay them gently on top of the devil's corpse." - ), - LAW = list( - OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.", - OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.", - OBLIGATION_DANCEOFF = "When not in immediate danger, if you are challenged to a dance off, you must accept it. You are not obligated to face off with the same person twice.", - OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.", - OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.", - OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.", - OBLIGATION_ANNOUNCEKILL = "Upon killing someone, you must make your deed known to all within earshot, over comms if reasonably possible.", - OBLIGATION_ANSWERTONAME = "If you are not under attack, you must always respond to your true name.", - BAN_HURTWOMAN = "You must never harm a female outside of self defense.", - BAN_CHAPEL = "You must never attempt to enter the chapel.", - BAN_HURTPRIEST = "You must never attack a priest.", - BAN_AVOIDWATER = "You must never willingly touch a wet surface.", - BAN_STRIKEUNCONSCIOUS = "You must never strike an unconscious person.", - BAN_HURTlizard = "You must never harm a lizardman outside of self defense.", - BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.", - BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.", - BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.", - BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.", - BANISH_RUNES = "If your corpse is placed within a rune, you will be unable to resurrect.", - BANISH_CANDLES = "If your corpse is near lit candles, you will be unable to resurrect.", - BANISH_DESTRUCTION = "If your corpse is destroyed, you will be unable to resurrect.", - BANISH_FUNERAL_GARB = "If your corpse is clad in funeral garments, you will be unable to resurrect." - ) - )) - -//These are also used in the codex gigas, so let's declare them globally. -GLOBAL_LIST_INIT(devil_pre_title, list("Dark ", "Hellish ", "Fallen ", "Fiery ", "Sinful ", "Blood ", "Fluffy ")) -GLOBAL_LIST_INIT(devil_title, list("Lord ", "Prelate ", "Count ", "Viscount ", "Vizier ", "Elder ", "Adept ")) -GLOBAL_LIST_INIT(devil_syllable, list("hal", "ve", "odr", "neit", "ci", "quon", "mya", "folth", "wren", "geyr", "hil", "niet", "twou", "phi", "coa")) -GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", ", the Lord of all things", ", Jr.")) -/datum/antagonist/devil - name = "Devil" - roundend_category = "devils" - antagpanel_category = "Devil" - job_rank = ROLE_DEVIL - antag_hud_type = ANTAG_HUD_DEVIL - antag_hud_name = "devil" - show_to_ghosts = TRUE - var/obligation - var/ban - var/banish - var/truename - var/list/datum/mind/soulsOwned = new - var/reviveNumber = 0 - var/form = BASIC_DEVIL - var/static/list/devil_spells = typecacheof(list( - /obj/effect/proc_holder/spell/aimed/fireball/hellish, - /obj/effect/proc_holder/spell/targeted/infernal_jaunt, - /obj/effect/proc_holder/spell/targeted/sintouch, - /obj/effect/proc_holder/spell/targeted/sintouch/ascended, - /obj/effect/proc_holder/spell/targeted/summon_contract, - /obj/effect/proc_holder/spell/targeted/conjure_item/violin, - /obj/effect/proc_holder/spell/targeted/summon_dancefloor)) - var/ascendable = FALSE - -/datum/antagonist/devil/can_be_owned(datum/mind/new_owner) - . = ..() - return . && (ishuman(new_owner.current) || iscyborg(new_owner.current)) - -/datum/antagonist/devil/get_admin_commands() - . = ..() - .["Toggle ascendable"] = CALLBACK(src, PROC_REF(admin_toggle_ascendable)) - - -/datum/antagonist/devil/proc/admin_toggle_ascendable(mob/admin) - ascendable = !ascendable - message_admins("[key_name_admin(admin)] set [key_name_admin(owner)] devil ascendable to [ascendable]") - log_admin("[key_name_admin(admin)] set [key_name(owner)] devil ascendable to [ascendable])") - -/datum/antagonist/devil/admin_add(datum/mind/new_owner,mob/admin) - switch(alert(admin,"Should the devil be able to ascend",,"Yes","No","Cancel")) - if("Yes") - ascendable = TRUE - if("No") - ascendable = FALSE - else - return - new_owner.add_antag_datum(src) - message_admins("[key_name_admin(admin)] has devil'ed [key_name_admin(new_owner)]. [ascendable ? "(Ascendable)":""]") - log_admin("[key_name(admin)] has devil'ed [key_name(new_owner)]. [ascendable ? "(Ascendable)":""]") - -/datum/antagonist/devil/antag_listing_name() - return ..() + "([truename])" - -/proc/devilInfo(name) - if(GLOB.allDevils[lowertext(name)]) - return GLOB.allDevils[lowertext(name)] - else - var/datum/fakeDevil/devil = new /datum/fakeDevil(name) - GLOB.allDevils[lowertext(name)] = devil - return devil - -/proc/randomDevilName() - var/name = "" - if(prob(65)) - if(prob(35)) - name = pick(GLOB.devil_pre_title) - name += pick(GLOB.devil_title) - var/probability = 100 - name += pick(GLOB.devil_syllable) - while(prob(probability)) - name += pick(GLOB.devil_syllable) - probability -= 20 - if(prob(40)) - name += pick(GLOB.devil_suffix) - return name - -/proc/randomdevilobligation() - return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_DANCEOFF, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) - -/proc/randomdevilban() - return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONSCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) - -/proc/randomdevilbanish() - return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB) - -/datum/antagonist/devil/proc/add_soul(datum/mind/soul) - if(soulsOwned.Find(soul)) - return - soulsOwned += soul - owner.current.set_nutrition(NUTRITION_LEVEL_FULL) - to_chat(owner.current, "You feel satiated as you received a new soul.") - update_hud() - switch(SOULVALUE) - if(0) - to_chat(owner.current, "Your hellish powers have been restored.") - give_appropriate_spells() - if(BLOOD_THRESHOLD) - increase_blood_lizard() - if(TRUE_THRESHOLD) - increase_true_devil() - if(ARCH_THRESHOLD) - increase_arch_devil() - -/datum/antagonist/devil/proc/remove_soul(datum/mind/soul) - if(soulsOwned.Remove(soul)) - check_regression() - to_chat(owner.current, "You feel as though a soul has slipped from your grasp.") - update_hud() - -/datum/antagonist/devil/proc/check_regression() - if(form == ARCH_DEVIL) - return //arch devil can't regress - //Yes, fallthrough behavior is intended, so I can't use a switch statement. - if(form == TRUE_DEVIL && SOULVALUE < TRUE_THRESHOLD) - regress_blood_lizard() - if(form == BLOOD_lizard && SOULVALUE < BLOOD_THRESHOLD) - regress_humanoid() - if(SOULVALUE < 0) - give_appropriate_spells() - to_chat(owner.current, "As punishment for your failures, all of your powers except contract creation have been revoked.") - -/datum/antagonist/devil/proc/regress_humanoid() - to_chat(owner.current, "Your powers weaken, have more contracts be signed to regain power.") - if(ishuman(owner.current)) - var/mob/living/carbon/human/H = owner.current - H.set_species(/datum/species/human, 1) - H.regenerate_icons() - give_appropriate_spells() - if(istype(owner.current.loc, /obj/effect/dummy/phased_mob/slaughter/)) - owner.current.forceMove(get_turf(owner.current))//Fixes dying while jaunted leaving you permajaunted. - form = BASIC_DEVIL - -/datum/antagonist/devil/proc/regress_blood_lizard() - var/mob/living/carbon/true_devil/D = owner.current - to_chat(D, "Your powers weaken, have more contracts be signed to regain power.") - D.oldform.forceMove(D.drop_location()) - owner.transfer_to(D.oldform) - give_appropriate_spells() - qdel(D) - form = BLOOD_lizard - update_hud() - - -/datum/antagonist/devil/proc/increase_blood_lizard() - to_chat(owner.current, "You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard.") - sleep(50) - if(ishuman(owner.current)) - var/mob/living/carbon/human/H = owner.current - H.set_species(/datum/species/lizard, 1) - H.underwear = "Nude" - H.undershirt = "Nude" - H.socks = "Nude" - H.dna.features["mcolor"] = "511" //A deep red - H.regenerate_icons() - else //Did the devil get hit by a staff of transmutation? - owner.current.color = "#501010" - give_appropriate_spells() - form = BLOOD_lizard - - - -/datum/antagonist/devil/proc/increase_true_devil() - to_chat(owner.current, "You feel as though your current form is about to shed. You will soon turn into a true devil.") - sleep(50) - var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(owner.current.loc) - A.faction |= "hell" - owner.current.forceMove(A) - A.oldform = owner.current - owner.transfer_to(A) - A.set_devil_name() - give_appropriate_spells() - form = TRUE_DEVIL - update_hud() - -/datum/antagonist/devil/proc/increase_arch_devil() - if(!ascendable) - return - var/mob/living/carbon/true_devil/D = owner.current - to_chat(D, "You feel as though your form is about to ascend.") - sleep(50) - if(!D) - return - D.visible_message("[D]'s skin begins to erupt with spikes.", \ - "Your flesh begins creating a shield around yourself.") - sleep(100) - if(!D) - return - D.visible_message("The horns on [D]'s head slowly grow and elongate.", \ - "Your body continues to mutate. Your telepathic abilities grow.") - sleep(90) - if(!D) - return - D.visible_message("[D]'s body begins to violently stretch and contort.", \ - "You begin to rend apart the final barriers to ultimate power.") - sleep(40) - if(!D) - return - to_chat(D, "Yes!") - sleep(10) - if(!D) - return - to_chat(D, "YES!!") - sleep(10) - if(!D) - return - to_chat(D, "YE--") - sleep(1) - if(!D) - return - send_to_playing_players("\"SLOTH, WRATH, GLUTTONY, ACEDIA, ENVY, GREED, PRIDE! FIRES OF HELL AWAKEN!!\"") - sound_to_playing_players('sound/hallucinations/veryfar_noise.ogg') - give_appropriate_spells() - D.convert_to_archdevil() - if(istype(D.loc, /obj/effect/dummy/phased_mob/slaughter/)) - D.forceMove(get_turf(D))//Fixes dying while jaunted leaving you permajaunted. - var/area/A = get_area(owner.current) - if(A) - notify_ghosts("An arch devil has ascended in \the [A.name]. Reach out to the devil to be given a new shell for your soul.", source = owner.current, action=NOTIFY_ATTACK) - sleep(50) - form = ARCH_DEVIL - -/datum/antagonist/devil/proc/remove_spells() - for(var/X in owner.spell_list) - var/obj/effect/proc_holder/spell/S = X - if(is_type_in_typecache(S, devil_spells)) - owner.RemoveSpell(S) - -/datum/antagonist/devil/proc/give_summon_contract() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_contract(null)) - if(obligation == OBLIGATION_FIDDLE) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null)) - else if(obligation == OBLIGATION_DANCEOFF) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_dancefloor(null)) - -/datum/antagonist/devil/proc/give_appropriate_spells() - remove_spells() - give_summon_contract() - if(SOULVALUE >= ARCH_THRESHOLD && ascendable) - give_arch_spells() - else if(SOULVALUE >= TRUE_THRESHOLD) - give_true_spells() - else if(SOULVALUE >= BLOOD_THRESHOLD) - give_blood_spells() - else if(SOULVALUE >= 0) - give_base_spells() - -/datum/antagonist/devil/proc/give_base_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) - -/datum/antagonist/devil/proc/give_blood_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) - -/datum/antagonist/devil/proc/give_true_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null)) - -/datum/antagonist/devil/proc/give_arch_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null)) - -/datum/antagonist/devil/proc/beginResurrectionCheck(mob/living/body) - if(SOULVALUE>0) - to_chat(owner.current, "Your body has been damaged to the point that you may no longer use it. At the cost of some of your power, you will return to life soon. Remain in your body.") - sleep(DEVILRESURRECTTIME) - if (!body || body.stat == DEAD) - if(SOULVALUE>0) - if(check_banishment(body)) - to_chat(owner.current, "Unfortunately, the mortals have finished a ritual that prevents your resurrection.") - return -1 - else - to_chat(owner.current, "WE LIVE AGAIN!") - return hellish_resurrection(body) - else - to_chat(owner.current, "Unfortunately, the power that stemmed from your contracts has been extinguished. You no longer have enough power to resurrect.") - return -1 - else - to_chat(owner.current, "You seem to have resurrected without your hellish powers.") - else - to_chat(owner.current, "Your hellish powers are too weak to resurrect yourself.") - -/datum/antagonist/devil/proc/check_banishment(mob/living/body) - switch(banish) - if(BANISH_WATER) - if(iscarbon(body)) - var/mob/living/carbon/H = body - return H.reagents.has_reagent(/datum/reagent/water/holywater) - return 0 - if(BANISH_COFFIN) - return (body && istype(body.loc, /obj/structure/closet/crate/coffin)) - if(BANISH_FORMALDYHIDE) - if(iscarbon(body)) - var/mob/living/carbon/H = body - return H.reagents.has_reagent(/datum/reagent/toxin/formaldehyde) - return 0 - if(BANISH_RUNES) - if(body) - for(var/obj/effect/decal/cleanable/crayon/R in range(0,body)) - if (R.name == "rune") - return 1 - return 0 - if(BANISH_CANDLES) - if(body) - var/count = 0 - for(var/obj/item/candle/C in range(1,body)) - count += C.lit - if(count>=4) - return 1 - return 0 - if(BANISH_DESTRUCTION) - if(body) - return 0 - return 1 - if(BANISH_FUNERAL_GARB) - if(ishuman(body)) - var/mob/living/carbon/human/H = body - if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/suit/white_on_white)) - return 1 - return 0 - else - for(var/obj/item/clothing/under/suit/white_on_white/B in range(0,body)) - if(B.loc == get_turf(B)) //Make sure it's not in someone's inventory or something. - return 1 - return 0 - -/datum/antagonist/devil/proc/hellish_resurrection(mob/living/body) - message_admins("[key_name_admin(owner)] (true name is: [truename]) is resurrecting using hellish energy.") - if(SOULVALUE < ARCH_THRESHOLD || !ascendable) // once ascended, arch devils do not go down in power by any means. - reviveNumber += LOSS_PER_DEATH - update_hud() - if(body) - body.revive(full_heal = TRUE, admin_revive = TRUE) //Adminrevive also recovers organs, preventing someone from resurrecting without a heart. - if(istype(body.loc, /obj/effect/dummy/phased_mob/slaughter/)) - body.forceMove(get_turf(body))//Fixes dying while jaunted leaving you permajaunted. - if(istype(body, /mob/living/carbon/true_devil)) - var/mob/living/carbon/true_devil/D = body - if(D.oldform) - D.oldform.revive(full_heal = TRUE, admin_revive = FALSE) // Heal the old body too, so the devil doesn't resurrect, then immediately regress into a dead body. - if(body.stat == DEAD) - create_new_body() - else - create_new_body() - check_regression() - -/datum/antagonist/devil/proc/create_new_body() - CRASH("Unable to find a blobstart landmark for hellish resurrection") - -/datum/antagonist/devil/proc/update_hud() - if(iscarbon(owner.current)) - var/mob/living/C = owner.current - if(C.hud_used && C.hud_used.devilsouldisplay) - C.hud_used.devilsouldisplay.update_counter(SOULVALUE) - -/datum/antagonist/devil/greet() - to_chat(owner.current, "You remember your link to the infernal. You are [truename], an agent of hell, a devil. And you were sent to the plane of creation for a reason. A greater purpose. Convince the crew to sin, and embroiden Hell's grasp.") - to_chat(owner.current, "However, your infernal form is not without weaknesses.") - to_chat(owner.current, "You may not use violence to coerce someone into selling their soul.") - to_chat(owner.current, "You may not directly and knowingly physically harm a devil, other than yourself.") - to_chat(owner.current, GLOB.lawlorify[LAW][ban]) - to_chat(owner.current, GLOB.lawlorify[LAW][obligation]) - to_chat(owner.current, GLOB.lawlorify[LAW][banish]) - to_chat(owner.current, "Remember, the crew can research your weaknesses if they find out your devil name.
    ") - .=..() - -/datum/antagonist/devil/on_gain() - truename = randomDevilName() - ban = randomdevilban() - obligation = randomdevilobligation() - banish = randomdevilbanish() - GLOB.allDevils[lowertext(truename)] = src - - antag_memory += "Your devilic true name is [truename]
    [GLOB.lawlorify[LAW][ban]]
    You may not use violence to coerce someone into selling their soul.
    You may not directly and knowingly physically harm a devil, other than yourself.
    [GLOB.lawlorify[LAW][obligation]]
    [GLOB.lawlorify[LAW][banish]]
    " - if(issilicon(owner.current)) - var/mob/living/silicon/robot_devil = owner.current - var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.") - robot_devil.set_law_sixsixsix(laws) - sleep(10) - .=..() - -/datum/antagonist/devil/on_removal() - to_chat(owner.current, "Your infernal link has been severed! You are no longer a devil!") - .=..() - -/datum/antagonist/devil/apply_innate_effects(mob/living/mob_override) - give_appropriate_spells() - var/mob/living/M = mob_override || owner.current - add_antag_hud(antag_hud_type, antag_hud_name, M) - handle_clown_mutation(M, mob_override ? null : "Your infernal nature has allowed you to overcome your clownishness.") - owner.current.grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_DEVIL) - update_hud() - .=..() - -/datum/antagonist/devil/remove_innate_effects(mob/living/mob_override) - for(var/X in owner.spell_list) - var/obj/effect/proc_holder/spell/S = X - if(is_type_in_typecache(S, devil_spells)) - owner.RemoveSpell(S) - var/mob/living/M = mob_override || owner.current - remove_antag_hud(antag_hud_type, M) - handle_clown_mutation(M, removing = FALSE) - owner.current.remove_all_languages(LANGUAGE_DEVIL) - .=..() - -/datum/antagonist/devil/proc/printdevilinfo() - var/list/parts = list() - parts += "The devil's true name is: [truename]" - parts += "The devil's bans were:" - parts += "[FOURSPACES][GLOB.lawlorify[LORE][ban]]" - parts += "[FOURSPACES][GLOB.lawlorify[LORE][obligation]]" - parts += "[FOURSPACES][GLOB.lawlorify[LORE][banish]]" - return parts.Join("
    ") - -/datum/antagonist/devil/roundend_report() - var/list/parts = list() - parts += printplayer(owner) - parts += printdevilinfo() - parts += printobjectives(objectives) - return parts.Join("
    ") - -//A simple super light weight datum for the codex gigas. -/datum/fakeDevil - var/truename - var/obligation - var/ban - var/banish - var/ascendable - -/datum/fakeDevil/New(name = randomDevilName()) - truename = name - obligation = randomdevilobligation() - ban = randomdevilban() - banish = randomdevilbanish() - ascendable = prob(25) diff --git a/code/modules/antagonists/devil/imp/imp.dm b/code/modules/antagonists/devil/imp/imp.dm deleted file mode 100644 index 21446d2661d8..000000000000 --- a/code/modules/antagonists/devil/imp/imp.dm +++ /dev/null @@ -1,68 +0,0 @@ -//////////////////The Monster - -/mob/living/simple_animal/imp - name = "imp" - real_name = "imp" - unique_name = TRUE - desc = "A large, menacing creature covered in armored black scales." - speak_emote = list("cackles") - emote_hear = list("cackles","screeches") - response_help_continuous = "thinks better of touching" - response_help_simple = "think better of touching" - response_disarm_continuous = "flails at" - response_disarm_simple = "flail at" - response_harm_continuous = "punches" - response_harm_simple = "punch" - icon = 'icons/mob/mob.dmi' - icon_state = "imp" - icon_living = "imp" - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID - speed = 1 - a_intent = INTENT_HARM - stop_automated_movement = 1 - status_flags = CANPUSH - attack_sound = 'sound/magic/demon_attack1.ogg' - atmos_requirements = list("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 = 250 //Weak to cold - maxbodytemp = INFINITY - faction = list("hell") - attack_verb_continuous = "wildly tears into" - attack_verb_simple = "wildly tear into" - maxHealth = 200 - health = 200 - healable = 0 - environment_smash = ENVIRONMENT_SMASH_STRUCTURES - obj_damage = 40 - melee_damage_lower = 10 - melee_damage_upper = 15 - see_in_dark = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - del_on_death = TRUE - deathmessage = "screams in agony as it sublimates into a sulfurous smoke." - deathsound = 'sound/magic/demon_dies.ogg' - var/boost = 0 - var/list/consumed_mobs = list() - var/playstyle_string = "You are an imp, a mischievous creature from hell. You are the lowest rank on the hellish totem pole \ - Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \ - of intentionally harming a fellow devil." - -/mob/living/simple_animal/imp/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_BLOODCRAWL_EAT, "innate") - set_varspeed(1) - addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living, set_varspeed), 0), 30) - -/datum/antagonist/imp - name = "Imp" - antagpanel_category = "Devil" - show_in_roundend = FALSE - -/datum/antagonist/imp/on_gain() - . = ..() - give_objectives() - -/datum/antagonist/imp/proc/give_objectives() - var/datum/objective/newobjective = new - newobjective.explanation_text = "Try to get a promotion to a higher devilic rank." - newobjective.owner = owner - objectives += newobjective diff --git a/code/modules/antagonists/devil/sintouched/objectives.dm b/code/modules/antagonists/devil/sintouched/objectives.dm deleted file mode 100644 index fcbb8dcbb55d..000000000000 --- a/code/modules/antagonists/devil/sintouched/objectives.dm +++ /dev/null @@ -1,23 +0,0 @@ -/datum/objective/sintouched - completed = 1 - -/datum/objective/sintouched/gluttony - explanation_text = "Everything is so delicious. Go eat everything." - -/datum/objective/sintouched/greed - explanation_text = "You want MORE, more money, more wealth, more riches. Go get it, but don't hurt people for it." - -/datum/objective/sintouched/sloth - explanation_text = "You just get tired randomly. Go take a nap at a time that would inconvenience other people." - -/datum/objective/sintouched/wrath - explanation_text = "What have your coworkers ever done for you? Don't offer to help them in any matter, and refuse if asked." - -/datum/objective/sintouched/envy - explanation_text = "Why should you be stuck with your rank? Show everyone you can do other jobs too, and don't let anyone stop you, least of all because you have no training" - -/datum/objective/sintouched/pride - explanation_text = "You are the BEST thing on the station. Make sure everyone knows it." - -/datum/objective/sintouched/acedia - explanation_text = "Angels, devils, good, evil... who cares? Just ignore any hellish threats and do your job." diff --git a/code/modules/antagonists/devil/sintouched/sintouched.dm b/code/modules/antagonists/devil/sintouched/sintouched.dm deleted file mode 100644 index 064e1fbaecd0..000000000000 --- a/code/modules/antagonists/devil/sintouched/sintouched.dm +++ /dev/null @@ -1,76 +0,0 @@ -#define SIN_ACEDIA "acedia" -#define SIN_GLUTTONY "gluttony" -#define SIN_GREED "greed" -#define SIN_SLOTH "sloth" -#define SIN_WRATH "wrath" -#define SIN_ENVY "envy" -#define SIN_PRIDE "pride" - -/datum/antagonist/sintouched - name = "sintouched" - roundend_category = "sintouched" - antagpanel_category = "Devil" - antag_hud_type = ANTAG_HUD_SINTOUCHED - antag_hud_name = "sintouched" - var/sin - - var/static/list/sins = list(SIN_ACEDIA,SIN_GLUTTONY,SIN_GREED,SIN_SLOTH,SIN_WRATH,SIN_ENVY,SIN_PRIDE) - -/datum/antagonist/sintouched/New() - . = ..() - sin = pick(sins) - -/datum/antagonist/sintouched/proc/forge_objectives() - var/datum/objective/sintouched/O - switch(sin)//traditional seven deadly sins... except lust. - if(SIN_ACEDIA) - O = new /datum/objective/sintouched/acedia - if(SIN_GLUTTONY) - O = new /datum/objective/sintouched/gluttony - if(SIN_GREED) - O = new /datum/objective/sintouched/greed - if(SIN_SLOTH) - O = new /datum/objective/sintouched/sloth - if(SIN_WRATH) - O = new /datum/objective/sintouched/wrath - if(SIN_ENVY) - O = new /datum/objective/sintouched/envy - if(SIN_PRIDE) - O = new /datum/objective/sintouched/pride - objectives += O - -/datum/antagonist/sintouched/on_gain() - forge_objectives() - . = ..() - -/datum/antagonist/sintouched/greet() - owner.announce_objectives() - -/datum/antagonist/sintouched/roundend_report() - return printplayer(owner) - -/datum/antagonist/sintouched/admin_add(datum/mind/new_owner,mob/admin) - var/choices = sins + "Random" - var/chosen_sin = input(admin,"What kind ?","Sin kind") as null|anything in sortList(choices) - if(!chosen_sin) - return - if(chosen_sin in sins) - sin = chosen_sin - . = ..() - -/datum/antagonist/sintouched/apply_innate_effects(mob/living/mob_override) - var/mob/living/M = mob_override || owner.current - add_antag_hud(antag_hud_type, antag_hud_name, M) - -/datum/antagonist/sintouched/remove_innate_effects(mob/living/mob_override) - var/mob/living/M = mob_override || owner.current - remove_antag_hud(antag_hud_type, M) - - -#undef SIN_ACEDIA -#undef SIN_ENVY -#undef SIN_GLUTTONY -#undef SIN_GREED -#undef SIN_PRIDE -#undef SIN_SLOTH -#undef SIN_WRATH diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm deleted file mode 100644 index 4703f95263f7..000000000000 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ /dev/null @@ -1,221 +0,0 @@ -#define DEVIL_HANDS_LAYER 1 -#define DEVIL_HEAD_LAYER 2 -#define DEVIL_TOTAL_LAYERS 2 - - -/mob/living/carbon/true_devil - name = "True Devil" - desc = "A pile of infernal energy, taking a vaguely humanoid form." - icon = 'icons/mob/32x64.dmi' - icon_state = "true_devil" - gender = NEUTER - health = 350 - maxHealth = 350 - ventcrawler = VENTCRAWLER_NONE - density = TRUE - pass_flags = 0 - sight = (SEE_TURFS | SEE_OBJS) - status_flags = CANPUSH - mob_size = MOB_SIZE_LARGE - held_items = list(null, null) - bodyparts = list( - /obj/item/bodypart/chest/devil, - /obj/item/bodypart/head/devil, - /obj/item/bodypart/l_arm/devil, - /obj/item/bodypart/r_arm/devil, - /obj/item/bodypart/leg/right/devil, - /obj/item/bodypart/leg/left/devil, - ) - hud_type = /datum/hud/devil - var/ascended = FALSE - var/mob/living/oldform - var/list/devil_overlays[DEVIL_TOTAL_LAYERS] - -/mob/living/carbon/true_devil/Initialize() - create_bodyparts() //initialize bodyparts - create_internal_organs() - grant_all_languages() - . = ..() - ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - -/mob/living/carbon/true_devil/create_internal_organs() - internal_organs += new /obj/item/organ/brain - internal_organs += new /obj/item/organ/tongue - internal_organs += new /obj/item/organ/eyes - internal_organs += new /obj/item/organ/ears/invincible //Prevents hearing loss from poorly aimed fireballs. - ..() - -/mob/living/carbon/true_devil/proc/convert_to_archdevil() - maxHealth = 500 // not an IMPOSSIBLE amount, but still near impossible. - ascended = TRUE - health = maxHealth - icon_state = "arch_devil" - -/mob/living/carbon/true_devil/proc/set_devil_name() - var/datum/antagonist/devil/devilinfo = mind.has_antag_datum(/datum/antagonist/devil) - name = devilinfo.truename - real_name = name - -/mob/living/carbon/true_devil/Login() - . = ..() - if(!. || !client) - return FALSE - var/datum/antagonist/devil/devilinfo = mind.has_antag_datum(/datum/antagonist/devil) - devilinfo.greet() - mind.announce_objectives() - -/mob/living/carbon/true_devil/death(gibbed) - set_stat(DEAD) - ..(gibbed) - drop_all_held_items() - INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) - - -/mob/living/carbon/true_devil/examine(mob/user) - . = list("This is [icon2html(src, user)] [src]!") - - //Left hand items - for(var/obj/item/I in held_items) - if(!(I.item_flags & ABSTRACT)) - . += "It is holding [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]." - - //Braindead - if(!client && stat != DEAD) - . += "The devil seems to be in deep contemplation." - - //Damaged - if(stat == DEAD) - . += "The hellfire seems to have been extinguished, for now at least." - else if(health < (maxHealth/10)) - . += "You can see hellfire inside its gaping wounds." - else if(health < (maxHealth/2)) - . += "You can see hellfire inside its wounds." - . += "" - -/mob/living/carbon/true_devil/IsAdvancedToolUser() - return 1 - -/mob/living/carbon/true_devil/resist_buckle() - if(buckled) - buckled.user_unbuckle_mob(src,src) - visible_message("[src] easily breaks out of [p_their()] handcuffs!", \ - "With just a thought your handcuffs fall off.") - -/mob/living/carbon/true_devil/canUseTopic(atom/movable/M, be_close=FALSE, no_dexterity=FALSE, no_tk=FALSE) - if(incapacitated()) - to_chat(src, "You can't do that right now!") - return FALSE - if(be_close && !in_range(M, src)) - to_chat(src, "You are too far away!") - return FALSE - return TRUE - -/mob/living/carbon/true_devil/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) - return 666 - -/mob/living/carbon/true_devil/soundbang_act() - return 0 - -/mob/living/carbon/true_devil/get_ear_protection() - return 2 - - -/mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone) - apply_damage(I.force, I.damtype, def_zone) - var/message_verb = "" - if(I.attack_verb && I.attack_verb.len) - message_verb = "[pick(I.attack_verb)]" - else if(I.force) - message_verb = "attacked" - - var/attack_message = "[src] has been [message_verb] with [I]." - if(user) - user.do_attack_animation(src) - if(user in viewers(src, null)) - attack_message = "[user] has [message_verb] [src] with [I]!" - if(message_verb) - visible_message("[attack_message]", - "[attack_message]", null, COMBAT_MESSAGE_RANGE) - return TRUE - -/mob/living/carbon/true_devil/singularity_act() - if(ascended) - return 0 - return ..() - -//ATTACK GHOST IGNORING PARENT RETURN VALUE -/mob/living/carbon/true_devil/attack_ghost(mob/dead/observer/user as mob) - if(ascended || user.mind.soulOwner == src.mind) - var/mob/living/simple_animal/imp/S = new(get_turf(loc)) - S.key = user.key - var/datum/antagonist/imp/A = new() - S.mind.add_antag_datum(A) - to_chat(S, S.playstyle_string) - else - return ..() - -/mob/living/carbon/true_devil/can_be_revived() - return 1 - -/mob/living/carbon/true_devil/resist_fire() - //They're immune to fire. - -/mob/living/carbon/true_devil/attack_hand(mob/living/carbon/human/M) - . = ..() - if(.) - switch(M.a_intent) - if ("harm") - var/damage = rand(1, 5) - playsound(loc, "punch", 25, TRUE, -1) - visible_message("[M] punches [src]!", \ - "[M] punches you!") - adjustBruteLoss(damage) - log_combat(M, src, "attacked") - updatehealth() - if ("disarm") - if (!(mobility_flags & MOBILITY_STAND) && !ascended) //No stealing the arch devil's pitchfork. - if (prob(5)) - Unconscious(40) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) - log_combat(M, src, "pushed") - visible_message("[M] pushes [src] down!", \ - "[M] pushes you down!") - else - if (prob(25)) - dropItemToGround(get_active_held_item()) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) - visible_message("[M] disarms [src]!", \ - "[M] disarms you!") - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) - visible_message("[M] fails to disarm [src]!", \ - "[M] fails to disarm you!") - -/mob/living/carbon/true_devil/handle_breathing() - // devils do not need to breathe - -/mob/living/carbon/true_devil/is_literate() - return TRUE - -/mob/living/carbon/true_devil/ex_act(severity, ex_target) - if(!ascended) - var/b_loss - switch (severity) - if (EXPLODE_DEVASTATE) - b_loss = 500 - if (EXPLODE_HEAVY) - b_loss = 150 - if (EXPLODE_LIGHT) - b_loss = 30 - adjustBruteLoss(b_loss) - return ..() - - -/mob/living/carbon/true_devil/update_body() //we don't use the bodyparts layer for devils. - return - -/mob/living/carbon/true_devil/update_body_parts() - return - -/mob/living/carbon/true_devil/update_damage_overlays() //devils don't have damage overlays. - return diff --git a/code/modules/antagonists/devil/true_devil/inventory.dm b/code/modules/antagonists/devil/true_devil/inventory.dm deleted file mode 100644 index a3d0dbdf582b..000000000000 --- a/code/modules/antagonists/devil/true_devil/inventory.dm +++ /dev/null @@ -1,48 +0,0 @@ -/mob/living/carbon/true_devil/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE, silent = FALSE) - if(..()) - update_inv_hands() - return 1 - return 0 - -/mob/living/carbon/true_devil/update_inv_hands() - //TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_overlay should use the down sprite when facing down, left, or right, and the up sprite when facing up. - remove_overlay(DEVIL_HANDS_LAYER) - var/list/hands_overlays = list() - var/obj/item/l_hand = get_item_for_held_index(1) //hardcoded 2-hands only, for now. - var/obj/item/r_hand = get_item_for_held_index(2) - - if(r_hand) - var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) - - hands_overlays += r_hand_overlay - - if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) - r_hand.layer = ABOVE_HUD_LAYER - r_hand.plane = ABOVE_HUD_PLANE - r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) - client.screen |= r_hand - - if(l_hand) - var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) - - hands_overlays += l_hand_overlay - - if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) - l_hand.layer = ABOVE_HUD_LAYER - l_hand.plane = ABOVE_HUD_PLANE - l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) - client.screen |= l_hand - if(hands_overlays.len) - devil_overlays[DEVIL_HANDS_LAYER] = hands_overlays - apply_overlay(DEVIL_HANDS_LAYER) - -/mob/living/carbon/true_devil/remove_overlay(cache_index) - var/I = devil_overlays[cache_index] - if(I) - cut_overlay(I) - devil_overlays[cache_index] = null - - -/mob/living/carbon/true_devil/apply_overlay(cache_index) - if((. = devil_overlays[cache_index])) - add_overlay(.) diff --git a/code/modules/antagonists/disease/disease_datum.dm b/code/modules/antagonists/disease/disease_datum.dm index cb0cc12be0b4..d96e39733efd 100644 --- a/code/modules/antagonists/disease/disease_datum.dm +++ b/code/modules/antagonists/disease/disease_datum.dm @@ -86,13 +86,3 @@ /datum/objective/disease_infect_centcom explanation_text = "Ensure that at least one infected host escapes on the shuttle or an escape pod." - -/datum/objective/disease_infect_centcom/check_completion() - var/mob/camera/disease/D = owner.current - if(!istype(D)) - return FALSE - for(var/V in D.hosts) - var/mob/living/L = V - if(L.onCentCom() || L.onSyndieBase()) - return TRUE - return FALSE diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 4fcceb227a77..8fbb858da103 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -99,9 +99,6 @@ if(GLOB.player_list.len < CHALLENGE_MIN_PLAYERS) to_chat(user, "The enemy crew is too small to be worth declaring war on.") return FALSE - if(!user.onSyndieBase()) - to_chat(user, "You have to be at your base to use this.") - return FALSE if(world.time-SSticker.round_start_time > CHALLENGE_TIME_LIMIT) to_chat(user, "It's too late to declare hostilities. Your benefactors are already busy with other schemes. You'll have to make do with what you have on hand.") return FALSE diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index c073a7c3521c..af4b5bd60892 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -473,8 +473,6 @@ off_station = NUKE_NEAR_MISS if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE))) off_station = NUKE_NEAR_MISS - else if(bomb_location.onSyndieBase()) - off_station = NUKE_SYNDICATE_BASE else off_station = NUKE_MISS_STATION diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index ca568bce6316..c623376dbdac 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -248,7 +248,7 @@ qdel(B) new /obj/effect/temp_visual/revenant(T) - if(!isplatingturf(T) && !istype(T, /turf/open/floor/engine/cult) && isfloorturf(T) && prob(15)) + if(!isplatingturf(T) && isfloorturf(T) && prob(15)) var/turf/open/floor/floor = T if(floor.intact && floor.floor_tile) new floor.floor_tile(floor) diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm deleted file mode 100644 index ea6fe83c8a07..000000000000 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ /dev/null @@ -1,677 +0,0 @@ -////Deactivated swarmer shell//// -/obj/item/deactivated_swarmer - name = "deactivated swarmer" - desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." - icon = 'icons/mob/swarmer.dmi' - icon_state = "swarmer_unactivated" - custom_materials = list(/datum/material/iron=10000, /datum/material/glass=4000) - -/obj/effect/mob_spawn/swarmer - name = "unactivated swarmer" - desc = "A currently unactivated swarmer. Swarmers can self activate at any time, so it would be wise to immediately dispose of this." - icon = 'icons/mob/swarmer.dmi' - icon_state = "swarmer_unactivated" - density = FALSE - anchored = FALSE - - mob_type = /mob/living/simple_animal/hostile/swarmer - mob_name = "a swarmer" - death = FALSE - roundstart = FALSE - short_desc = "You are a swarmer, a weapon of a long dead civilization." - flavour_text = {" - You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. - Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. - Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. - Objectives: - 1. Consume resources and replicate until there are no more resources left. - 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. - 3. Biological resources will be harvested at a later date; do not harm them. - "} - -/obj/effect/mob_spawn/swarmer/Initialize() - . = ..() - var/area/A = get_area(src) - if(A) - notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE) - -/obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user) - . = ..() - if(.) - return - to_chat(user, "Picking up the swarmer may cause it to activate. You should be careful about this.") - -/obj/effect/mob_spawn/swarmer/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_SCREWDRIVER && user.a_intent != INTENT_HARM) - user.visible_message("[usr.name] deactivates [src].", - "After some fiddling, you find a way to disable [src]'s power source.", - "You hear clicking.") - new /obj/item/deactivated_swarmer(get_turf(src)) - qdel(src) - else - ..() - -////The Mob itself//// - -/mob/living/simple_animal/hostile/swarmer - name = "Swarmer" - unique_name = 1 - icon = 'icons/mob/swarmer.dmi' - desc = "Robotic constructs of unknown design, swarmers seek only to consume materials and replicate themselves indefinitely." - speak_emote = list("tones") - initial_language_holder = /datum/language_holder/swarmer - bubble_icon = "swarmer" - mob_biotypes = MOB_ROBOTIC - health = 40 - maxHealth = 40 - status_flags = CANPUSH - icon_state = "swarmer" - icon_living = "swarmer" - icon_dead = "swarmer_unactivated" - icon_gib = null - wander = 0 - harm_intent_damage = 5 - minbodytemp = 0 - maxbodytemp = 500 - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 0 - melee_damage_lower = 15 - melee_damage_upper = 15 - melee_damage_type = STAMINA - damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) - hud_possible = list(ANTAG_HUD, DIAG_STAT_HUD, DIAG_HUD) - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE - attack_verb_continuous = "shocks" - attack_verb_simple = "shock" - attack_sound = 'sound/effects/empulse.ogg' - friendly_verb_continuous = "pinches" - friendly_verb_simple = "pinch" - speed = 0 - faction = list("swarmer") - AIStatus = AI_OFF - pass_flags = PASSTABLE - mob_size = MOB_SIZE_TINY - ventcrawler = VENTCRAWLER_ALWAYS - ranged = 1 - projectiletype = /obj/projectile/beam/disabler - ranged_cooldown_time = 20 - projectilesound = 'sound/weapons/taser2.ogg' - loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/stack/ore/bluespace_crystal) - del_on_death = 1 - deathmessage = "explodes with a sharp pop!" - light_color = LIGHT_COLOR_CYAN - hud_type = /datum/hud/swarmer - speech_span = SPAN_ROBOT - var/resources = 0 //Resource points, generated by consuming metal/glass - var/max_resources = 100 - -/mob/living/simple_animal/hostile/swarmer/Initialize() - . = ..() - verbs -= /mob/living/verb/pulled - for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) - diag_hud.add_to_hud(src) - -/mob/living/simple_animal/hostile/swarmer/med_hud_set_health() - var/image/holder = hud_list[DIAG_HUD] - var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size - holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" - -/mob/living/simple_animal/hostile/swarmer/med_hud_set_status() - var/image/holder = hud_list[DIAG_STAT_HUD] - var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size - holder.icon_state = "hudstat" - -/mob/living/simple_animal/hostile/swarmer/Stat() - ..() - if(statpanel("Status")) - stat("Resources:",resources) - -/mob/living/simple_animal/hostile/swarmer/emp_act() - . = ..() - if(. & EMP_PROTECT_SELF) - return - if(health > 1) - adjustHealth(health-1) - else - death() - -/mob/living/simple_animal/hostile/swarmer/CanAllowThrough(atom/movable/O) - . = ..() - if(istype(O, /obj/projectile/beam/disabler))//Allows for swarmers to fight as a group without wasting their shots hitting each other - return TRUE - if(isswarmer(O)) - return TRUE - -////CTRL CLICK FOR SWARMERS AND SWARMER_ACT()'S//// -/mob/living/simple_animal/hostile/swarmer/AttackingTarget() - if(!isliving(target)) - return target.swarmer_act(src) - else - return ..() - -/mob/living/simple_animal/hostile/swarmer/CtrlClickOn(atom/A) - face_atom(A) - if(!isturf(loc)) - return - if(next_move > world.time) - return - if(!A.Adjacent(src)) - return - A.swarmer_act(src) - -/atom/proc/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE //return TRUE/FALSE whether or not an AI swarmer should try this swarmer_act() again, NOT whether it succeeded. - -/obj/effect/mob_spawn/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.Integrate(src) - return FALSE //would logically be TRUE, but we don't want AI swarmers eating player spawn chances. - -/obj/effect/mob_spawn/swarmer/IntegrateAmount() - return 50 - -/turf/closed/indestructible/swarmer_act() - return FALSE - -/obj/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - if(resistance_flags & INDESTRUCTIBLE) - return FALSE - for(var/mob/living/L in contents) - if(!issilicon(L) && !isbrain(L)) - to_chat(S, "An organism has been detected inside this object. Aborting.") - return FALSE - return ..() - -/obj/item/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - return S.Integrate(src) - -/atom/movable/proc/IntegrateAmount() - return 0 - -/obj/item/IntegrateAmount() //returns the amount of resources gained when eating this item - if(custom_materials) - if(custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)] || custom_materials[SSmaterials.GetMaterialRef(/datum/material/glass)]) - return 1 - return ..() - -/obj/item/gun/swarmer_act()//Stops you from eating the entire armory - return FALSE - -/turf/open/swarmer_act()//ex_act() on turf calls it on its contents, this is to prevent attacking mobs by DisIntegrate()'ing the floor - return FALSE - -/obj/structure/lattice/catwalk/swarmer_catwalk/swarmer_act() - return FALSE - -/obj/structure/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - if(S.AIStatus == AI_ON) - return FALSE - else - return ..() - -/obj/effect/swarmer_act() - return FALSE - -/obj/effect/decal/cleanable/robot_debris/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - qdel(src) - return TRUE - -/obj/structure/flora/swarmer_act() - return FALSE - -/turf/open/lava/swarmer_act() - if(!is_safe()) - new /obj/structure/lattice/catwalk/swarmer_catwalk(src) - return FALSE - -/obj/machinery/atmospherics/swarmer_act() - return FALSE - -/obj/structure/disposalpipe/swarmer_act() - return FALSE - -/obj/machinery/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DismantleMachine(src) - return TRUE - -/obj/machinery/light/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/door/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - var/isonshuttle = istype(get_area(src), /area/shuttle) - for(var/turf/T in range(1, src)) - var/area/A = get_area(T) - if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle))) - to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.") - S.LoseTarget() - return FALSE - else if(istype(A, /area/ship/engineering/engine)) - to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.") - S.LoseTarget() - return FALSE - S.DisIntegrate(src) - return TRUE - -/obj/machinery/camera/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - if(!QDELETED(S)) //If it got blown up no need to turn it off. - toggle_cam(S, 0) - return TRUE - -/obj/machinery/particle_accelerator/control_box/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/gravity_generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/vending/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//It's more visually interesting than dismantling the machine - S.DisIntegrate(src) - return TRUE - -/obj/machinery/turretid/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/chem_dispenser/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "The volatile chemicals in this machine would destroy us. Aborting.") - return FALSE - -/obj/machinery/nuclearbomb/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This device's destruction would result in the extermination of everything in the area. Aborting.") - return FALSE - -/obj/effect/rune/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Searching... sensor malfunction! Target lost. Aborting.") - return FALSE - -/obj/structure/reagent_dispensers/fueltank/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Destroying this object would cause a chain reaction. Aborting.") - return FALSE - -/obj/structure/cable/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.") - return FALSE - -/obj/machinery/portable_atmospherics/canister/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "An inhospitable area may be created as a result of destroying this object. Aborting.") - return FALSE - -/obj/machinery/telecomms/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting.") - return FALSE - -/obj/machinery/deepfryer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This kitchen appliance should be preserved, it will make delicious unhealthy snacks for our masters in the future. Aborting.") - return FALSE - -/obj/machinery/power/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.") - return FALSE - -/obj/machinery/gateway/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This bluespace source will be important to us later. Aborting.") - return FALSE - -/turf/closed/wall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - var/isonshuttle = istype(loc, /area/shuttle) - for(var/turf/T in range(1, src)) - var/area/A = get_area(T) - if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle))) - to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.") - S.LoseTarget() - return TRUE - else if(istype(A, /area/ship/engineering/engine)) - to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.") - S.LoseTarget() - return TRUE - return ..() - -/obj/structure/window/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - var/isonshuttle = istype(get_area(src), /area/shuttle) - for(var/turf/T in range(1, src)) - var/area/A = get_area(T) - if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle))) - to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.") - S.LoseTarget() - return TRUE - else if(istype(A, /area/ship/engineering/engine)) - to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.") - S.LoseTarget() - return TRUE - return ..() - -/obj/item/stack/cable_coil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//Wiring would be too effective as a resource - to_chat(S, "This object does not contain enough materials to work with.") - return FALSE - -/obj/machinery/porta_turret/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.") - return FALSE - -/obj/machinery/porta_turret_cover/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.") - return FALSE - -/mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisperseTarget(src) - return TRUE - -/mob/living/simple_animal/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This biological resource is somehow resisting our bluespace transceiver. Aborting.") - return FALSE - -/obj/machinery/droneDispenser/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This object is receiving unactivated swarmer shells to help us. Aborting.") - return FALSE - -/obj/structure/lattice/catwalk/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - . = ..() - var/turf/here = get_turf(src) - for(var/A in here.contents) - var/obj/structure/cable/C = A - if(istype(C)) - to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.") - return FALSE - -/obj/item/deactivated_swarmer/IntegrateAmount() - return 50 - -/obj/machinery/hydroponics/soil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This object does not contain enough materials to work with.") - return FALSE - -/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Destroying this object would cause a catastrophic chain reaction. Aborting.") - return FALSE - -/obj/machinery/field/containment/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This object does not contain solid matter. Aborting.") - return FALSE - -/obj/machinery/power/shieldwallgen/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Destroying this object would have an unpredictable effect on structure integrity. Aborting.") - return FALSE - -/obj/machinery/shieldwall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This object does not contain solid matter. Aborting.") - return FALSE - -////END CTRL CLICK FOR SWARMERS//// - -/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0) - if(!isturf(loc)) - to_chat(src, "This is not a suitable location for fabrication. We need more space.") - if(resources >= fabrication_cost) - resources -= fabrication_cost - else - to_chat(src, "You do not have the necessary resources to fabricate this object.") - return - return new fabrication_object(loc) - -/mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target) - var/resource_gain = target.IntegrateAmount() - if(resources + resource_gain > max_resources) - to_chat(src, "We cannot hold more materials!") - return TRUE - if(resource_gain) - resources += resource_gain - do_attack_animation(target) - changeNext_move(CLICK_CD_MELEE) - var/obj/effect/temp_visual/swarmer/integrate/I = new /obj/effect/temp_visual/swarmer/integrate(get_turf(target)) - I.pixel_x = target.pixel_x - I.pixel_y = target.pixel_y - I.pixel_z = target.pixel_z - if(istype(target, /obj/item/stack)) - var/obj/item/stack/S = target - S.use(1) - if(S.amount) - return TRUE - qdel(target) - return TRUE - else - to_chat(src, "[target] is incompatible with our internal matter recycler.") - return FALSE - - -/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(atom/movable/target) - new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target)) - do_attack_animation(target) - changeNext_move(CLICK_CD_MELEE) - SSexplosions.lowobj += target - -/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(mob/living/target) - if(target == src) - return - - to_chat(src, "Attempting to remove this being from our presence.") - - if(!do_after(src, 3 SECONDS, target)) - return - - var/turf/open/floor/F - F = find_safe_turf(zlevels = z, extended_safety_checks = TRUE) - - if(!F) - return - // If we're getting rid of a human, slap some energy cuffs on - // them to keep them away from us a little longer - - var/mob/living/carbon/human/H = target - if(ishuman(target) && (!H.handcuffed)) - H.handcuffed = new /obj/item/restraints/handcuffs/energy/used(H) - H.update_handcuffed() - log_combat(src, H, "handcuffed") - - var/datum/effect_system/spark_spread/S = new - S.set_up(4,0,get_turf(target)) - S.start() - playsound(src,'sound/effects/sparks4.ogg',50,TRUE) - do_teleport(target, F, 0, channel = TELEPORT_CHANNEL_BLUESPACE) - -/mob/living/simple_animal/hostile/swarmer/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) - if(!(flags & SHOCK_TESLA)) - return FALSE - return ..() - -/mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(obj/machinery/target) - do_attack_animation(target) - to_chat(src, "We begin to dismantle this machine. We will need to be uninterrupted.") - var/obj/effect/temp_visual/swarmer/dismantle/D = new /obj/effect/temp_visual/swarmer/dismantle(get_turf(target)) - D.pixel_x = target.pixel_x - D.pixel_y = target.pixel_y - D.pixel_z = target.pixel_z - if(do_after(src, 10 SECONDS, target)) - to_chat(src, "Dismantling complete.") - var/atom/Tsec = target.drop_location() - new /obj/item/stack/sheet/metal(Tsec, 5) - for(var/obj/item/I in target.component_parts) - I.forceMove(Tsec) - var/obj/effect/temp_visual/swarmer/disintegration/N = new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target)) - N.pixel_x = target.pixel_x - N.pixel_y = target.pixel_y - N.pixel_z = target.pixel_z - target.dropContents() - if(istype(target, /obj/machinery/computer)) - var/obj/machinery/computer/C = target - if(C.circuit) - C.circuit.forceMove(Tsec) - qdel(target) - - -/obj/effect/temp_visual/swarmer //temporary swarmer visual feedback objects - icon = 'icons/mob/swarmer.dmi' - layer = BELOW_MOB_LAYER - -/obj/effect/temp_visual/swarmer/disintegration - icon_state = "disintegrate" - duration = 10 - -/obj/effect/temp_visual/swarmer/disintegration/Initialize() - . = ..() - playsound(loc, "sparks", 100, TRUE) - -/obj/effect/temp_visual/swarmer/dismantle - icon_state = "dismantle" - duration = 25 - -/obj/effect/temp_visual/swarmer/integrate - icon_state = "integrate" - duration = 5 - -/obj/structure/swarmer //Default swarmer effect object visual feedback - name = "swarmer ui" - desc = null - gender = NEUTER - icon = 'icons/mob/swarmer.dmi' - icon_state = "ui_light" - layer = MOB_LAYER - resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF - light_color = LIGHT_COLOR_CYAN - max_integrity = 30 - anchored = TRUE - var/lon_range = 1 - -/obj/structure/swarmer/Initialize(mapload) - . = ..() - set_light(lon_range) - -/obj/structure/swarmer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - playsound(src, 'sound/weapons/egloves.ogg', 80, TRUE) - if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) - -/obj/structure/swarmer/emp_act() - . = ..() - if(. & EMP_PROTECT_SELF) - return - qdel(src) - -/obj/structure/swarmer/trap - name = "swarmer trap" - desc = "A quickly assembled trap that electrifies living beings and overwhelms machine sensors. Will not retain its form if damaged enough." - icon_state = "trap" - max_integrity = 10 - density = FALSE - -/obj/structure/swarmer/trap/Initialize(mapload) - . = ..() - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/obj/structure/swarmer/trap/proc/on_entered(datum/source, atom/movable/AM) - SIGNAL_HANDLER - if(isliving(AM)) - var/mob/living/L = AM - if(!istype(L, /mob/living/simple_animal/hostile/swarmer)) - playsound(loc,'sound/effects/snap.ogg',50, TRUE, -1) - L.electrocute_act(0, src, 1, flags = SHOCK_NOGLOVES|SHOCK_ILLUSION) - if(iscyborg(L)) - L.Paralyze(100) - qdel(src) - -/mob/living/simple_animal/hostile/swarmer/proc/CreateTrap() - set name = "Create trap" - set category = "Swarmer" - set desc = "Creates a simple trap that will non-lethally electrocute anything that steps on it. Costs 5 resources." - if(locate(/obj/structure/swarmer/trap) in loc) - to_chat(src, "There is already a trap here. Aborting.") - return - Fabricate(/obj/structure/swarmer/trap, 5) - - -/mob/living/simple_animal/hostile/swarmer/proc/CreateBarricade() - set name = "Create barricade" - set category = "Swarmer" - set desc = "Creates a barricade that will stop anything but swarmers and disabler beams from passing through." - if(locate(/obj/structure/swarmer/blockade) in loc) - to_chat(src, "There is already a blockade here. Aborting.") - return - if(resources < 5) - to_chat(src, "We do not have the resources for this!") - return - if(do_after(src, 1 SECONDS)) - Fabricate(/obj/structure/swarmer/blockade, 5) - - -/obj/structure/swarmer/blockade - name = "swarmer blockade" - desc = "A quickly assembled energy blockade. Will not retain its form if damaged enough, but disabler beams and swarmers pass right through." - icon_state = "barricade" - light_range = MINIMUM_USEFUL_LIGHT_RANGE - max_integrity = 50 - -/obj/structure/swarmer/blockade/CanAllowThrough(atom/movable/O) - . = ..() - if(isswarmer(O)) - return TRUE - if(istype(O, /obj/projectile/beam/disabler)) - return TRUE - -/mob/living/simple_animal/hostile/swarmer/proc/CreateSwarmer() - set name = "Replicate" - set category = "Swarmer" - set desc = "Creates a shell for a new swarmer. Swarmers will self activate." - to_chat(src, "We are attempting to replicate ourselves. We will need to stand still until the process is complete.") - if(resources < 50) - to_chat(src, "We do not have the resources for this!") - return - if(!isturf(loc)) - to_chat(src, "This is not a suitable location for replicating ourselves. We need more room.") - return - if(do_after(src, 10 SECONDS)) - var/createtype = SwarmerTypeToCreate() - if(createtype && Fabricate(createtype, 50)) - playsound(loc,'sound/items/poster_being_created.ogg',50, TRUE, -1) - - -/mob/living/simple_animal/hostile/swarmer/proc/SwarmerTypeToCreate() - return /obj/effect/mob_spawn/swarmer - - -/mob/living/simple_animal/hostile/swarmer/proc/RepairSelf() - set name = "Self Repair" - set category = "Swarmer" - set desc = "Attempts to repair damage to our body. You will have to remain motionless until repairs are complete." - if(!isturf(loc)) - return - to_chat(src, "Attempting to repair damage to our body, stand by...") - if(do_after(src, 10 SECONDS)) - adjustHealth(-100) - to_chat(src, "We successfully repaired ourselves.") - -/mob/living/simple_animal/hostile/swarmer/proc/ToggleLight() - if(!light_range) - set_light(3) - else - set_light(0) - -/mob/living/simple_animal/hostile/swarmer/proc/swarmer_chat(msg) - var/rendered = "Swarm communication - [src] [say_quote(msg)]" - for(var/i in GLOB.mob_list) - var/mob/M = i - if(isswarmer(M)) - to_chat(M, rendered) - if(isobserver(M)) - var/link = FOLLOW_LINK(M, src) - to_chat(M, "[link] [rendered]") - -/mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers() - var/message = stripped_input(src, "Announce to other swarmers", "Swarmer contact") - // TODO get swarmers their own colour rather than just boldtext - if(message) - swarmer_chat(message) diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm deleted file mode 100644 index e086485a49cf..000000000000 --- a/code/modules/antagonists/swarmer/swarmer_event.dm +++ /dev/null @@ -1,28 +0,0 @@ -/datum/round_event_control/spawn_swarmer - name = "Spawn Swarmer Shell" - typepath = /datum/round_event/spawn_swarmer - weight = 7 - max_occurrences = 1 //Only once okay fam - earliest_start = 30 MINUTES - min_players = 15 - - -/datum/round_event/spawn_swarmer - -/datum/round_event/spawn_swarmer/start() - if(find_swarmer()) - return 0 - if(!GLOB.the_gateway) - return 0 - new /obj/effect/mob_spawn/swarmer(get_turf(GLOB.the_gateway)) - if(prob(25)) //25% chance to announce it to the crew - var/swarmer_report = "[command_name()] High-Priority Update" - swarmer_report += "

    Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come through." - print_command_report(swarmer_report, announce=TRUE) - -/datum/round_event/spawn_swarmer/proc/find_swarmer() - for(var/i in GLOB.mob_living_list) - var/mob/living/L = i - if(istype(L, /mob/living/simple_animal/hostile/swarmer) && L.client) //If there is a swarmer with an active client, we've found our swarmer - return 1 - return 0 diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm deleted file mode 100644 index c426b953f725..000000000000 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ /dev/null @@ -1,354 +0,0 @@ -/obj/item/soulstone - name = "soulstone shard" - icon = 'icons/obj/wizard.dmi' - icon_state = "soulstone" - item_state = "electronic" - lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - layer = HIGH_OBJ_LAYER - desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power." - w_class = WEIGHT_CLASS_TINY - slot_flags = ITEM_SLOT_BELT - var/usability = FALSE - - var/old_shard = FALSE - var/spent = FALSE - var/purified = FALSE - -/obj/item/soulstone/proc/was_used() - if(old_shard) - spent = TRUE - name = "dull [name]" - desc = "A fragment of the legendary treasure known simply as \ - the 'Soul Stone'. The shard lies still, dull and lifeless; \ - whatever spark it once held long extinguished." - -/obj/item/soulstone/anybody - usability = TRUE - -/obj/item/soulstone/anybody/revolver - old_shard = TRUE - -/obj/item/soulstone/anybody/purified - icon = 'icons/obj/wizard.dmi' - icon_state = "purified_soulstone" - purified = TRUE - -/obj/item/soulstone/anybody/chaplain - name = "mysterious old shard" - old_shard = TRUE - -/obj/item/soulstone/pickup(mob/living/user) - ..() - if(!iscultist(user) && !iswizard(user) && !usability) - to_chat(user, "An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly.") - -/obj/item/soulstone/examine(mob/user) - . = ..() - if(usability || iscultist(user) || iswizard(user) || isobserver(user)) - if (old_shard) - . += "A soulstone, used to capture a soul, either from dead humans or from freed shades." - else - . += "A soulstone, used to capture souls, either from unconscious or sleeping humans or from freed shades." - . += "The captured soul can be placed into a construct shell to produce a construct, or released from the stone as a shade." - if(spent) - . += "This shard is spent; it is now just a creepy rock." - -/obj/item/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle. - for(var/mob/living/simple_animal/shade/A in src) - A.death() - return ..() - -/obj/item/soulstone/proc/hot_potato(mob/living/user) - to_chat(user, "Holy magics residing in \the [src] burn your hand!") - var/obj/item/bodypart/affecting = user.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - affecting.receive_damage(0, 10) // 10 burn damage - user.emote("scream") - user.update_damage_overlays() - user.dropItemToGround(src) - -//////////////////////////////Capturing//////////////////////////////////////////////////////// - -/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user) - if(!iscultist(user) && !iswizard(user) && !usability) - user.Unconscious(100) - to_chat(user, "Your body is wracked with debilitating pain!") - return - if(spent) - to_chat(user, "There is no power left in the shard.") - return - if(!ishuman(M))//If target is not a human. - return ..() - if((M.mind && !M.mind.hasSoul) || is_devil(M)) - to_chat(user, "This... thing has no soul! It's filled with evil!") - return - if(iscultist(M)) - if(iscultist(user)) - to_chat(user, "\"Come now, do not capture your bretheren's soul.\"") - return - if(purified && iscultist(user)) - hot_potato(user) - return - log_combat(user, M, "captured [M.name]'s soul", src) - transfer_soul("VICTIM", M, user) - -///////////////////Options for using captured souls/////////////////////////////////////// - -/obj/item/soulstone/attack_self(mob/living/user) - if(!in_range(src, user)) - return - if(!iscultist(user) && !iswizard(user) && !usability) - user.Unconscious(100) - to_chat(user, "Your body is wracked with debilitating pain!") - return - if(purified && iscultist(user)) - hot_potato(user) - return - release_shades(user) - -/obj/item/soulstone/proc/release_shades(mob/user) - for(var/mob/living/simple_animal/shade/A in src) - A.forceMove(get_turf(user)) - A.cancel_camera() - if(purified) - icon_state = "purified_soulstone" - A.icon_state = "shade_angelic" - A.name = "Purified [initial(A.name)]" - else - icon_state = "soulstone" - name = initial(name) - if(iswizard(user) || usability) - to_chat(A, "You have been released from your prison, but you are still bound to [user.real_name]'s will. Help [user.p_them()] succeed in [user.p_their()] goals at all costs.") - else if(iscultist(user)) - to_chat(A, "You have been released from your prison, but you are still bound to the cult's will. Help them succeed in their goals at all costs.") - was_used() - -///////////////////////////Transferring to constructs///////////////////////////////////////////////////// -/obj/structure/constructshell - name = "empty shell" - icon = 'icons/obj/wizard.dmi' - icon_state = "construct_cult" - desc = "A wicked machine used by those skilled in magical arts. It is inactive." - -/obj/structure/constructshell/examine(mob/user) - . = ..() - if(iscultist(user) || iswizard(user) || user.stat == DEAD) - . += {"A construct shell, used to house bound souls from a soulstone.\n - Placing a soulstone with a soul into this shell allows you to produce your choice of the following:\n - An Artificer, which can produce more shells and soulstones, as well as fortifications.\n - A Wraith, which does high damage and can jaunt through walls, though it is quite fragile.\n - A Juggernaut, which is very hard to kill and can produce temporary walls, but is slow."} - -/obj/structure/constructshell/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/soulstone)) - var/obj/item/soulstone/SS = O - if(!iscultist(user) && !iswizard(user) && !SS.purified) - to_chat(user, "An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell. It would be wise to be rid of this quickly.") - user.Dizzy(30) - return - if(SS.purified && iscultist(user)) - SS.hot_potato(user) - return - SS.transfer_soul("CONSTRUCT",src,user) - SS.was_used() - else - return ..() - -////////////////////////////Proc for moving soul in and out off stone////////////////////////////////////// - - -/obj/item/soulstone/proc/transfer_soul(choice as text, target, mob/user) - switch(choice) - if("FORCE") - if(!iscarbon(target)) //TODO: Add sacrifice stoning for non-organics, just because you have no body doesnt mean you dont have a soul - return FALSE - if(contents.len) - return FALSE - var/mob/living/carbon/T = target - if(T.client != null) - for(var/obj/item/W in T) - T.dropItemToGround(W) - init_shade(T, user) - return TRUE - else - to_chat(user, "Capture failed!: The soul has already fled its mortal frame. You attempt to bring it back...") - return getCultGhost(T,user) - - if("VICTIM") - var/mob/living/carbon/human/T = target - var/datum/antagonist/cult/C = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(C && C.cult_team.is_sacrifice_target(T.mind)) - if(iscultist(user)) - to_chat(user, "\"This soul is mine. SACRIFICE THEM!\"") - else - to_chat(user, "The soulstone seems to reject this soul.") - return FALSE - if(contents.len) - to_chat(user, "Capture failed!: The soulstone is full! Free an existing soul to make room.") - else - if((!old_shard && T.stat != CONSCIOUS) || (old_shard && T.stat == DEAD)) - if(T.client == null) - to_chat(user, "Capture failed!: The soul has already fled its mortal frame. You attempt to bring it back...") - getCultGhost(T,user) - else - for(var/obj/item/W in T) - T.dropItemToGround(W) - init_shade(T, user, message_user = 1) - qdel(T) - else - to_chat(user, "Capture failed!: Kill or maim the victim first!") - - if("SHADE") - var/mob/living/simple_animal/shade/T = target - if(contents.len) - to_chat(user, "Capture failed!: The soulstone is full! Free an existing soul to make room.") - else - T.AddComponent(/datum/component/soulstoned, src) - if(purified) - icon_state = "purified_soulstone2" - if(iscultist(T)) - SSticker.mode.remove_cultist(T.mind, FALSE, FALSE) - else - icon_state = "soulstone2" - name = "soulstone: Shade of [T.real_name]" - to_chat(T, "Your soul has been captured by the soulstone. Its arcane energies are reknitting your ethereal form.") - if(user != T) - to_chat(user, "Capture successful!: [T.real_name]'s soul has been captured and stored within the soulstone.") - - if("CONSTRUCT") - var/obj/structure/constructshell/T = target - var/mob/living/simple_animal/shade/A = locate() in src - if(A) - var/list/constructs = list( - "Juggernaut" = image(icon = 'icons/mob/cult.dmi', icon_state = "juggernaut"), - "Wraith" = image(icon = 'icons/mob/cult.dmi', icon_state = "wraith"), - "Artificer" = image(icon = 'icons/mob/cult.dmi', icon_state = "artificer") - ) - var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - if(!T || !T.loc) - return - switch(construct_class) - if("Juggernaut") - if(iscultist(user) || iswizard(user)) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut, A, user, 0, T.loc) - else - if(purified) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut/angelic, A, user, 0, T.loc) - else - makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut/noncult, A, user, 0, T.loc) - if("Wraith") - if(iscultist(user) || iswizard(user)) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith, A, user, 0, T.loc) - else - if(purified) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith/angelic, A, user, 0, T.loc) - else - makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith/noncult, A, user, 0, T.loc) - if("Artificer") - if(iscultist(user) || iswizard(user)) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer, A, user, 0, T.loc) - else - if(purified) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer/angelic, A, user, 0, T.loc) - else - makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer/noncult, A, user, 0, T.loc) - else - return - for(var/datum/mind/B in SSticker.mode.cult) - if(B == A.mind) - SSticker.mode.remove_cultist(A.mind) - qdel(T) - qdel(src) - else - to_chat(user, "Creation failed!: The soul stone is empty! Go kill someone!") - -/obj/item/soulstone/proc/check_menu(mob/user) - if(!istype(user)) - return FALSE - if(user.incapacitated() || !user.Adjacent(src)) - return FALSE - return TRUE - -/proc/makeNewConstruct(mob/living/simple_animal/hostile/construct/ctype, mob/target, mob/stoner = null, cultoverride = 0, loc_override = null) - if(QDELETED(target)) - return - var/mob/living/simple_animal/hostile/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target))) - var/makeicon = newstruct.icon_state - var/holyness = newstruct.holy - flick("make_[makeicon][holyness]", newstruct) - playsound(newstruct, 'sound/effects/constructform.ogg', 50) - if(stoner) - newstruct.faction |= "[REF(stoner)]" - newstruct.master = stoner - var/datum/action/innate/seek_master/SM = new() - SM.Grant(newstruct) - newstruct.key = target.key - var/atom/movable/screen/alert/bloodsense/BS - if(newstruct.mind && ((stoner && iscultist(stoner)) || cultoverride) && SSticker && SSticker.mode) - SSticker.mode.add_cultist(newstruct.mind, 0) - if(iscultist(stoner) || cultoverride) - to_chat(newstruct, "You are still bound to serve the cult[stoner ? " and [stoner]":""], follow [stoner ? stoner.p_their() : "their"] orders and help [stoner ? stoner.p_them() : "them"] complete [stoner ? stoner.p_their() : "their"] goals at all costs.") - else if(stoner) - to_chat(newstruct, "You are still bound to serve your creator, [stoner], follow [stoner.p_their()] orders and help [stoner.p_them()] complete [stoner.p_their()] goals at all costs.") - newstruct.clear_alert("bloodsense") - BS = newstruct.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense) - if(BS) - BS.Cviewer = newstruct - newstruct.cancel_camera() - - -/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/user, message_user = 0 , mob/shade_controller) - if(!shade_controller) - shade_controller = T - new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton - T.stop_sound_channel(CHANNEL_HEARTBEAT) - T.invisibility = INVISIBILITY_ABSTRACT - T.dust_animation() - var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade(src) - S.AddComponent(/datum/component/soulstoned, src) - S.name = "Shade of [T.real_name]" - S.real_name = "Shade of [T.real_name]" - S.key = shade_controller.key - S.copy_languages(T, LANGUAGE_MIND)//Copies the old mobs languages into the new mob holder. - S.copy_languages(user, LANGUAGE_MASTER) - S.update_atom_languages() - grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue - if(user) - S.faction |= "[REF(user)]" //Add the master as a faction, allowing inter-mob cooperation - if(user && iscultist(user)) - SSticker.mode.add_cultist(S.mind, 0) - S.cancel_camera() - name = "soulstone: Shade of [T.real_name]" - if(purified) - icon_state = "purified_soulstone2" - else - icon_state = "soulstone2" - if(user && (iswizard(user) || usability)) - to_chat(S, "Your soul has been captured! You are now bound to [user.real_name]'s will. Help [user.p_them()] succeed in [user.p_their()] goals at all costs.") - else if(user && iscultist(user)) - to_chat(S, "Your soul has been captured! You are now bound to the cult's will. Help them succeed in their goals at all costs.") - if(message_user && user) - to_chat(user, "Capture successful!: [T.real_name]'s soul has been ripped from [T.p_their()] body and stored within the soul stone.") - - -/obj/item/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/user) - var/mob/dead/observer/chosen_ghost - - chosen_ghost = T.get_ghost(TRUE,TRUE) //Try to grab original owner's ghost first - - if(!chosen_ghost || !chosen_ghost.client) //Failing that, we grab a ghosts - var/list/consenting_candidates = pollGhostCandidates("Would you like to play as a Shade?", "Cultist", null, ROLE_CULTIST, 50, POLL_IGNORE_SHADE) - if(consenting_candidates.len) - chosen_ghost = pick(consenting_candidates) - if(!T) - return FALSE - if(!chosen_ghost || !chosen_ghost.client) - to_chat(user, "There were no spirits willing to become a shade.") - return FALSE - if(contents.len) //If they used the soulstone on someone else in the meantime - return FALSE - for(var/obj/item/W in T) - T.dropItemToGround(W) - init_shade(T, user , shade_controller = chosen_ghost) - qdel(T) - return TRUE diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 9f4349a2bbc8..4bd2f5c8a525 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -281,18 +281,6 @@ item_path = /obj/item/scrying category = "Defensive" -/datum/spellbook_entry/item/soulstones - name = "Six Soul Stone Shards and the spell Artificer" - desc = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot." - item_path = /obj/item/storage/belt/soulstone/full - category = "Assistance" - -/datum/spellbook_entry/item/soulstones/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - . =..() - if(.) - user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(null)) - return . - /datum/spellbook_entry/item/necrostone name = "A Necromantic Stone" desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command." diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 2ec8e8dca620..bcd83b5a8265 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -241,7 +241,6 @@ "hierophant" = 'icons/UI_Icons/Achievements/Boss/hierophant.png', "legion" = 'icons/UI_Icons/Achievements/Boss/legion.png', "miner" = 'icons/UI_Icons/Achievements/Boss/miner.png', - "swarmer" = 'icons/UI_Icons/Achievements/Boss/swarmer.png', "tendril" = 'icons/UI_Icons/Achievements/Boss/tendril.png', "featofstrength" = 'icons/UI_Icons/Achievements/Misc/featofstrength.png', "helbital" = 'icons/UI_Icons/Achievements/Misc/helbital.png', diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 0f76623f617c..c12b09fa4e05 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -129,12 +129,6 @@ dynamic_lighting = DYNAMIC_LIGHTING_ENABLED requires_power = TRUE -/area/shuttle/snowdin/elevator1 - name = "Excavation Elevator" - -/area/shuttle/snowdin/elevator2 - name = "Mining Elevator" - //liquid plasma!!!!!!// /turf/open/floor/plasteel/dark/snowdin diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm deleted file mode 100644 index 52c2a964cec4..000000000000 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ /dev/null @@ -1,155 +0,0 @@ -/* Station-Collision(sc) away mission map specific stuff - * - * Notes: - * Feel free to use parts of this map, or even all of it for your own project. Just include me in the credits :) - * - * Some of this code unnecessary, but the intent is to add a little bit of everything to serve as examples - * for anyone who wants to make their own stuff. - * - * Contains: - * Landmarks - * Guns - * Safe code hints - * Captain's safe - * Modified Nar'Sie - */ - - - -/* - * Landmarks - Instead of spawning a new object type, I'll spawn the bible using a landmark! - */ -/obj/effect/landmark/sc_bible_spawner - name = "Safecode hint spawner" - -/obj/effect/landmark/sc_bible_spawner/Initialize() - ..() - var/obj/item/storage/book/bible/B = new /obj/item/storage/book/bible/booze(loc) - B.name = "The Holy book of the Geometer" - B.deity_name = "Narsie" - B.icon_state = "melted" - B.item_state = "melted" - B.lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' - B.righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' - new /obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible(B) - new /obj/item/pen(B) - return INITIALIZE_HINT_QDEL - -/* - * Guns - I'm making these specifically so that I dont spawn a pile of fully loaded weapons on the map. - */ -//Captain's retro laser - Fires practice laser shots instead. -/obj/item/gun/energy/laser/retro/sc_retro - name ="retro laser" - icon_state = "retro" - desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces." -// projectile_type = "/obj/projectile/practice" - -//Syndicate sub-machine guns. -/obj/item/gun/ballistic/automatic/smg/cobra/sc_c20r - -/obj/item/gun/ballistic/automatic/smg/cobra/sc_c20r/Initialize() - . = ..() - for(var/ammo in magazine.stored_ammo) - if(prob(95)) //95% chance - magazine.stored_ammo -= ammo - -//Barman's shotgun -/obj/item/gun/ballistic/shotgun/sc_pump - -/obj/item/gun/ballistic/shotgun/sc_pump/Initialize() - . = ..() - for(var/ammo in magazine.stored_ammo) - if(prob(95)) //95% chance - magazine.stored_ammo -= ammo - -//Lasers -/obj/item/gun/energy/laser/practice/sc_laser - name = "Old laser" - desc = "A once potent weapon, years of dust have collected in the chamber and lens of this weapon, weakening the beam significantly." - -/* - * Safe code hints - */ - -//These vars hold the code itself, they'll be generated at round-start -GLOBAL_VAR_INIT(sc_safecode1, "[rand(0,9)]") -GLOBAL_VAR_INIT(sc_safecode2, "[rand(0,9)]") -GLOBAL_VAR_INIT(sc_safecode3, "[rand(0,9)]") -GLOBAL_VAR_INIT(sc_safecode4, "[rand(0,9)]") -GLOBAL_VAR_INIT(sc_safecode5, "[rand(0,9)]") - -//Pieces of paper actually containing the hints -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_prison - name = "smudged paper" - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_prison/Initialize() - . = ..() - default_raw_text = "The ink is smudged, you can only make out a couple numbers: '[GLOB.sc_safecode1]**[GLOB.sc_safecode4]*'" - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_hydro - name = "shredded paper" -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_hydro/Initialize() - . = ..() - default_raw_text = "Although the paper is shredded, you can clearly see the number: '[GLOB.sc_safecode2]'" - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_caf - name = "blood-soaked paper" - //This does not have to be in New() because it is a constant. There are no variables in it i.e. [sc_safcode] - default_raw_text = "This paper is soaked in blood, it is impossible to read any text." - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible - name = "hidden paper" -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible/Initialize() - . = ..() - default_raw_text = {"It would appear that the pen hidden with the paper had leaked ink over the paper. - However you can make out the last three digits:'[GLOB.sc_safecode3][GLOB.sc_safecode4][GLOB.sc_safecode5]' - "} - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_shuttle - default_raw_text = {"Target: Research-station Epsilon
    - Objective: Prototype weaponry. The captain likely keeps them locked in her safe.
    -
    - Our on-board spy has learned the code and has hidden away a few copies of the code around the station. Unfortunatly he has been captured by security - Your objective is to split up, locate any of the papers containing the captain's safe code, open the safe and - secure anything found inside. If possible, recover the imprisioned syndicate operative and receive the code from him.
    -
    - As always, eliminate anyone who gets in the way.
    -
    - Your assigned ship is designed specifically for penetrating the hull of another station or ship with minimal damage to operatives. - It is completely fly-by-wire meaning you have just have to enjoy the ride and when the red light comes on... find something to hold onto! - "} -/* - * Captain's safe - */ -/obj/item/storage/secure/safe/sc_ssafe - name = "Captain's secure safe" - -/obj/item/storage/secure/safe/sc_ssafe/Initialize() - . = ..() - l_code = "[GLOB.sc_safecode1][GLOB.sc_safecode2][GLOB.sc_safecode3][GLOB.sc_safecode4][GLOB.sc_safecode5]" - l_set = 1 - new /obj/item/gun/energy/mindflayer(src) - new /obj/item/soulstone(src) - new /obj/item/clothing/suit/space/hardsuit/cult(src) - //new /obj/item/teleportation_scroll(src) - new /obj/item/stack/ore/diamond(src) - -/* - * Modified Nar'Sie - */ -/obj/singularity/narsie/mini - desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible." - move_self = 0 //Contianed narsie does not move! - grav_pull = 0 //Contained narsie does not pull stuff in! -//Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment -/obj/singularity/narsie/mini/admin_investigate_setup() - return - -/obj/singularity/narsie/mini/process() - eat() - if(prob(25)) - mezzer() - -/obj/singularity/narsie/mini/ex_act() - return diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm index dd931f378a59..c585ecb25a98 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -9,7 +9,6 @@ /obj/item/book_of_babel, /obj/item/wisp_lantern, /obj/item/reagent_containers/glass/bottle/potion/flight, - /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/voodoo, /obj/item/grenade/clusterbuster/inferno, /obj/item/clothing/neck/memento_mori, diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index 0df089543989..115dfdf3ff65 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -15,11 +15,6 @@ unit_name = "solar panel control board" export_types = list(/obj/item/circuitboard/computer/solar_control) -/datum/export/swarmer - cost = 2000 - unit_name = "deactivated alien deconstruction drone" - export_types = list(/obj/item/deactivated_swarmer) - //Computer Tablets and Parts /datum/export/modular_part cost = 15 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ec5b7d188db0..91eab6d53f0f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1153,7 +1153,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Hide Prayers: [(chat_toggles & CHAT_PRAYER)?"Shown":"Hidden"]
    " dat += "Split Admin Tabs: [(toggles & SPLIT_ADMIN_TABS)?"Enabled":"Disabled"]
    " dat += "Fast MC Refresh: [(toggles & FAST_MC_REFRESH)?"Enabled":"Disabled"]
    " - dat += "Ignore Being Summoned as Cult Ghost: [(toggles & ADMIN_IGNORE_CULT_GHOST)?"Don't Allow Being Summoned":"Allow Being Summoned"]
    " dat += "Briefing Officer Outfit: [brief_outfit]
    " if(CONFIG_GET(flag/allow_admin_asaycolor)) dat += "
    " @@ -2293,8 +2292,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) toggles ^= DEADMIN_POSITION_SECURITY if("toggle_deadmin_silicon") toggles ^= DEADMIN_POSITION_SILICON - if("toggle_ignore_cult_ghost") - toggles ^= ADMIN_IGNORE_CULT_GHOST if("be_special") var/be_special_type = href_list["be_special_type"] diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 8502f28185cb..108475c982b9 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -96,13 +96,6 @@ W.update_label() ..() -/datum/outfit/ghost_cultist - name = "Cultist Ghost" - - uniform = /obj/item/clothing/under/color/black/ghost - suit = /obj/item/clothing/suit/hooded/cultrobes/alt/ghost - shoes = /obj/item/clothing/shoes/cult/alt/ghost - /datum/outfit/wizard name = "Blue Wizard" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index ad130ea45fac..234917e03d6d 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -126,29 +126,6 @@ icon_state = "explorer" resistance_flags = FIRE_PROOF -/obj/item/clothing/shoes/cult - name = "\improper Nar'Sien invoker boots" - desc = "A pair of boots worn by the followers of Nar'Sie." - icon_state = "cult" - item_state = "cult" - cold_protection = FEET - min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT - heat_protection = FEET - max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT - lace_time = 10 SECONDS - greyscale_icon_state = "boots" - -/obj/item/clothing/shoes/cult/alt - name = "cultist boots" - icon_state = "cultalt" - -/obj/item/clothing/shoes/cult/alt/ghost - item_flags = DROPDEL - -/obj/item/clothing/shoes/cult/alt/ghost/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - /obj/item/clothing/shoes/laceup name = "laceup shoes" desc = "The height of fashion, and they're pre-polished!" diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index bbd0d962601f..a6f3bfa7cf9d 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -15,7 +15,7 @@ /obj/item/clothing/under/color/random/Initialize() ..() - var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/ancient - /obj/item/clothing/under/color/black/ghost) + var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/ancient) if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING) //or else you end up with naked assistants running around everywhere... @@ -48,13 +48,6 @@ icon_state = "black_skirt" item_state = "bl_suit" -/obj/item/clothing/under/color/black/ghost - item_flags = DROPDEL - -/obj/item/clothing/under/color/black/ghost/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - /obj/item/clothing/under/color/grey name = "grey jumpsuit" desc = "A tasteful grey jumpsuit that reminds you of the good old days." diff --git a/code/modules/events/devil.dm b/code/modules/events/devil.dm deleted file mode 100644 index 656888f068bc..000000000000 --- a/code/modules/events/devil.dm +++ /dev/null @@ -1,53 +0,0 @@ -/datum/round_event_control/devil - name = "Create Devil" - typepath = /datum/round_event/ghost_role/devil - max_occurrences = 0 - -/datum/round_event/ghost_role/devil - var/success_spawn = 0 - role_name = "devil" - fakeable = FALSE - -/datum/round_event/ghost_role/devil/kill() - if(!success_spawn && control) - control.occurrences-- - return ..() - -/datum/round_event/ghost_role/devil/spawn_role() - //selecting a candidate player - var/list/candidates = get_candidates(ROLE_DEVIL, null, ROLE_DEVIL) - if(!candidates.len) - return NOT_ENOUGH_PLAYERS - - var/mob/dead/selected_candidate = pick_n_take(candidates) - var/key = selected_candidate.key - - var/datum/mind/Mind = create_devil_mind(key) - Mind.active = 1 - - var/mob/living/carbon/human/devil = create_event_devil() - Mind.transfer_to(devil) - add_devil(devil, ascendable = FALSE) - - spawned_mobs += devil - message_admins("[ADMIN_LOOKUPFLW(devil)] has been made into a devil by an event.") - log_game("[key_name(devil)] was spawned as a devil by an event.") - var/datum/job/jobdatum = new /datum/job/assistant() - devil.job = jobdatum.name - jobdatum.equip(devil) - return SUCCESSFUL_SPAWN - - -/proc/create_event_devil(spawn_loc) - var/mob/living/carbon/human/new_devil = new(spawn_loc) - var/datum/preferences/A = new() //Randomize appearance for the devil. - A.copy_to(new_devil) - new_devil.dna.update_dna_identity() - return new_devil - -/proc/create_devil_mind(key) - var/datum/mind/Mind = new /datum/mind(key) - Mind.assigned_role = ROLE_DEVIL - Mind.special_role = ROLE_DEVIL - SSticker.mode.devils |= Mind - return Mind diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm deleted file mode 100644 index 7fb00124a94d..000000000000 --- a/code/modules/events/major_dust.dm +++ /dev/null @@ -1,19 +0,0 @@ -/datum/round_event_control/meteor_wave/major_dust - name = "Major Space Dust" - typepath = /datum/round_event/meteor_wave/major_dust - weight = 8 - -/datum/round_event/meteor_wave/major_dust - wave_name = "space dust" - -/datum/round_event/meteor_wave/major_dust/announce(fake) - var/reason = pick( - "The station is passing through a debris cloud, expect minor damage \ - to external fittings and fixtures.", - "Nanotrasen Superweapons Division is testing a new prototype \ - [pick("field","projection","nova","super-colliding","reactive")] \ - [pick("cannon","artillery","tank","cruiser","\[REDACTED\]")], \ - some mild debris is expected.", - "A neighbouring station is throwing rocks at you. (Perhaps they've \ - grown tired of your messages.)") - priority_announce(pick(reason), "Collision Alert") diff --git a/code/modules/events/meateor_wave.dm b/code/modules/events/meateor_wave.dm deleted file mode 100644 index 11af56526c88..000000000000 --- a/code/modules/events/meateor_wave.dm +++ /dev/null @@ -1,11 +0,0 @@ -/datum/round_event_control/meteor_wave/meaty - name = "Meteor Wave: Meaty" - typepath = /datum/round_event/meteor_wave/meaty - weight = 2 - max_occurrences = 1 - -/datum/round_event/meteor_wave/meaty - wave_name = "meaty" - -/datum/round_event/meteor_wave/meaty/announce(fake) - priority_announce("Meaty ores have been detected on collision course with the station.", "Oh crap, get the mop.",'sound/ai/meteors.ogg') diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm deleted file mode 100644 index a8ddab5aa76a..000000000000 --- a/code/modules/events/meteor_wave.dm +++ /dev/null @@ -1,76 +0,0 @@ -// Normal strength - -/datum/round_event_control/meteor_wave - name = "Meteor Wave: Normal" - typepath = /datum/round_event/meteor_wave - weight = 4 - min_players = 15 - max_occurrences = 3 - earliest_start = 25 MINUTES - -/datum/round_event/meteor_wave - startWhen = 6 - endWhen = 66 - announceWhen = 1 - var/list/wave_type - var/wave_name = "normal" - -/datum/round_event/meteor_wave/New() - ..() - if(!wave_type) - determine_wave_type() - -/datum/round_event/meteor_wave/proc/determine_wave_type() - if(!wave_name) - wave_name = pickweight(list( - "normal" = 50, - "threatening" = 40, - "catastrophic" = 10)) - switch(wave_name) - if("normal") - wave_type = GLOB.meteors_normal - if("threatening") - wave_type = GLOB.meteors_threatening - if("catastrophic") - if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) - wave_type = GLOB.meteorsSPOOKY - else - wave_type = GLOB.meteors_catastrophic - if("meaty") - wave_type = GLOB.meteorsB - if("space dust") - wave_type = GLOB.meteorsC - if("halloween") - wave_type = GLOB.meteorsSPOOKY - else - WARNING("Wave name of [wave_name] not recognised.") - kill() - -/datum/round_event/meteor_wave/announce(fake) - priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/ai/meteors.ogg') - -/datum/round_event/meteor_wave/tick() - if(ISMULTIPLE(activeFor, 3)) - spawn_meteors(5, wave_type) //meteor list types defined in gamemode/meteor/meteors.dm - -/datum/round_event_control/meteor_wave/threatening - name = "Meteor Wave: Threatening" - typepath = /datum/round_event/meteor_wave/threatening - weight = 5 - min_players = 20 - max_occurrences = 3 - earliest_start = 35 MINUTES - -/datum/round_event/meteor_wave/threatening - wave_name = "threatening" - -/datum/round_event_control/meteor_wave/catastrophic - name = "Meteor Wave: Catastrophic" - typepath = /datum/round_event/meteor_wave/catastrophic - weight = 7 - min_players = 25 - max_occurrences = 3 - earliest_start = 45 MINUTES - -/datum/round_event/meteor_wave/catastrophic - wave_name = "catastrophic" diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index 6e7e10a7cba6..d96e4591b050 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -291,11 +291,6 @@ Key procs /datum/language/slime = list(LANGUAGE_ATOM)) spoken_languages = list(/datum/language/slime = list(LANGUAGE_ATOM)) -/datum/language_holder/swarmer - understood_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM)) - spoken_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM)) - blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM)) - /datum/language_holder/venus understood_languages = list(/datum/language/sylvan = list(LANGUAGE_ATOM)) spoken_languages = list(/datum/language/sylvan = list(LANGUAGE_ATOM)) diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm deleted file mode 100644 index 69155c9230d8..000000000000 --- a/code/modules/library/lib_codex_gigas.dm +++ /dev/null @@ -1,104 +0,0 @@ -#define PRE_TITLE 1 -#define TITLE 2 -#define SYLLABLE 3 -#define MULTIPLE_SYLLABLE 4 -#define SUFFIX 5 - -/obj/item/book/codex_gigas - name = "\improper Codex Gigas" - desc = "A book documenting the nature of devils." - icon_state ="demonomicon" - lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' - throw_speed = 1 - throw_range = 10 - resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - author = "Forces beyond your comprehension" - unique = 1 - title = "the Codex Gigas" - var/inUse = 0 - var/currentName = "" - var/currentSection = PRE_TITLE - -/obj/item/book/codex_gigas/attack_self(mob/user) - if(!user.can_read(src)) - return FALSE - if(inUse) - to_chat(user, "Someone else is reading it.") - if(ishuman(user)) - var/mob/living/carbon/human/U = user - if(U.check_acedia()) - to_chat(user, "None of this matters, why are you reading this? You put [title] down.") - return - user.visible_message("[user] opens [title] and begins reading intently.") - ask_name(user) - - -/obj/item/book/codex_gigas/proc/perform_research(mob/user, devilName) - if(!devilName) - user.visible_message("[user] closes [title] without looking anything up.") - return - inUse = TRUE - var/speed = 300 - var/correctness = 85 - if(ishuman(user)) - var/mob/living/carbon/human/U = user - if(U.job in list("Curator")) // the curator is both faster, and more accurate than normal crew members at research - speed = 100 - correctness = 100 - correctness -= U.getOrganLoss(ORGAN_SLOT_BRAIN) * 0.5 //Brain damage makes researching hard. - speed += U.getOrganLoss(ORGAN_SLOT_BRAIN) * 3 - if(do_after(user, speed, user, timed_action_flags = IGNORE_HELD_ITEM)) - var/usedName = devilName - if(!prob(correctness)) - usedName += "x" - var/datum/antagonist/devil/devil = devilInfo(usedName) - display_devil(devil, user, usedName) - sleep(10) - onclose(user, "book") - inUse = FALSE - -/obj/item/book/codex_gigas/proc/display_devil(datum/antagonist/devil/devil, mob/reader, devilName) - reader << browse("Information on [devilName]


    [GLOB.lawlorify[LORE][devil.ban]]
    [GLOB.lawlorify[LORE][devil.obligation]]
    [GLOB.lawlorify[LORE][devil.banish]]
    [devil.ascendable?"This devil may ascend given enough souls.":""]", "window=book[window_size != null ? ";size=[window_size]" : ""]") - -/obj/item/book/codex_gigas/proc/ask_name(mob/reader) - ui_interact(reader) - -/obj/item/book/codex_gigas/ui_act(action, params) - if(..()) - return - if(!action) - return FALSE - if(action == "search") - SStgui.close_uis(src) - addtimer(CALLBACK(src, PROC_REF(perform_research), usr, currentName), 0) - currentName = "" - currentSection = PRE_TITLE - return FALSE - else - currentName += action - var/oldSection = currentSection - if(GLOB.devil_pre_title.Find(action)) - currentSection = TITLE - else if(GLOB.devil_title.Find(action)) - currentSection = SYLLABLE - else if(GLOB.devil_syllable.Find(action)) - if (currentSection>=SYLLABLE) - currentSection = MULTIPLE_SYLLABLE - else - currentSection = SYLLABLE - else if(GLOB.devil_suffix.Find(action)) - currentSection = SUFFIX - return currentSection != oldSection - -/obj/item/book/codex_gigas/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "CodexGigas", name) - ui.open() - -/obj/item/book/codex_gigas/ui_data(mob/user) - var/list/data = list() - data["name"]=currentName - data["currentSection"]=currentSection - return data diff --git a/code/modules/mapping/writer.dm b/code/modules/mapping/writer.dm index 35d85edc7849..c07ce0029081 100644 --- a/code/modules/mapping/writer.dm +++ b/code/modules/mapping/writer.dm @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(save_file_chars, list( var/turf_type = /turf/template_noop var/area/place_area = get_area(place_turf) var/area_type = /area/template_noop - var/is_shuttle_area = istype(place_area, /area/shuttle) + var/is_shuttle_area = istype(place_area, /area/ship) //If there is nothing there, save as a noop (For odd shapes) if(!place_turf) turf_type = /turf/template_noop diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 0cdc1f2dfc71..73d18f0ab885 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -15,10 +15,8 @@ /obj/structure/closet/crate/necropolis/tendril/PopulateContents() var/loot = rand(1,29) switch(loot) - if(1) + if(1,2) new /obj/item/shared_storage/red(src) - if(2) - new /obj/item/clothing/suit/space/hardsuit/cult(src) if(3) new /obj/item/necromantic_stone/lava(src) if(5) @@ -1644,11 +1642,9 @@ name = "puzzling chest" /obj/structure/closet/crate/necropolis/puzzle/PopulateContents() - var/loot = rand(1,3) + var/loot = rand(1,2) switch(loot) if(1) - new /obj/item/soulstone/anybody(src) - if(2) new /obj/item/wisp_lantern(src) - if(3) + if(2) new /obj/item/prisoncube(src) diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm index ef0e51930828..6c733fd76692 100644 --- a/code/modules/mining/shelters.dm +++ b/code/modules/mining/shelters.dm @@ -8,7 +8,7 @@ /datum/map_template/shelter/New() . = ..() - banned_areas = typecacheof(/area/shuttle) + banned_areas = typecacheof(/area/ship) blacklisted_turfs = typecacheof(list(/turf/closed, /turf/open/indestructible)) whitelisted_turfs = typecacheof(/turf/closed/mineral) banned_objects = typecacheof(/obj/structure/stone_tile) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 55adc5bd5d17..dad54c17ca0e 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -62,8 +62,6 @@ GLOBAL_LIST_EMPTY(dead_players_during_shift) if(SSticker.HasRoundStarted()) SSblackbox.ReportDeath(src) log_message("has died (BRUTE: [src.getBruteLoss()], BURN: [src.getFireLoss()], TOX: [src.getToxLoss()], OXY: [src.getOxyLoss()], CLONE: [src.getCloneLoss()])", LOG_ATTACK) - if(is_devil(src)) - INVOKE_ASYNC(is_devil(src), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) to_chat(src, "You have died. Barring complete bodyloss, you can in most cases be revived by other players. If you do not wish to be brought back, use the \"Do Not Resuscitate\" verb in the ghost tab.") diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index cf3f5ec725ec..295537cfd95b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -99,8 +99,6 @@ if(!(ITEM_SLOT_EYES in obscured)) if(glasses) . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes." - else if(eye_color == BLOODCULT_EYE && iscultist(src) && HAS_TRAIT(src, CULT_EYES)) - . += "[t_His] eyes are glowing an unnatural red!" //ears if(ears && !(ITEM_SLOT_EARS in obscured)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6046cfe82b63..76800ce87b1f 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1133,24 +1133,6 @@ /mob/living/carbon/alien/update_stamina() return -/mob/living/proc/owns_soul() - if(mind) - return mind.soulOwner == mind - return TRUE - -/mob/living/proc/return_soul() - hellbound = 0 - if(mind) - var/datum/antagonist/devil/devilInfo = mind.soulOwner.has_antag_datum(/datum/antagonist/devil) - if(devilInfo)//Not sure how this could be null, but let's just try anyway. - devilInfo.remove_soul(mind) - mind.soulOwner = mind - -/mob/living/proc/check_acedia() - if(mind && mind.has_objective(/datum/objective/sintouched/acedia)) - return TRUE - return FALSE - /mob/living/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE) stop_pulling() . = ..() diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 2ed00efe2e4b..69cc19760dda 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -392,32 +392,6 @@ gib() return 20 -/mob/living/narsie_act() - if(status_flags & GODMODE || QDELETED(src)) - return - - if(GLOB.cult_narsie && GLOB.cult_narsie.souls_needed[src]) - GLOB.cult_narsie.souls_needed -= src - GLOB.cult_narsie.souls += 1 - if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE)) - GLOB.cult_narsie.resolved = TRUE - sound_to_playing_players('sound/machines/alarm.ogg') - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 1), 120) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)), 270) - if(client) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, cultoverride = TRUE) - else - switch(rand(1, 3)) - if(1) - new /mob/living/simple_animal/hostile/construct/juggernaut/hostile(get_turf(src)) - if(2) - new /mob/living/simple_animal/hostile/construct/wraith/hostile(get_turf(src)) - if(3) - new /mob/living/simple_animal/hostile/construct/artificer/hostile(get_turf(src)) - spawn_dust() - gib() - return TRUE - //called when the mob receives a bright flash /mob/living/proc/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /atom/movable/screen/fullscreen/flash) if(HAS_TRAIT(src, TRAIT_NOFLASH)) diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index 30c7cd435068..5f14b72596ac 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -19,11 +19,6 @@ addtimer(CALLBACK(src, PROC_REF(deadchat_lawchange)), 0) last_lawchange_announce = world.time -/mob/living/silicon/proc/set_law_sixsixsix(law, announce = TRUE) - laws_sanity_check() - laws.set_law_sixsixsix(law) - post_lawchange(announce) - /mob/living/silicon/proc/set_zeroth_law(law, law_borg, announce = TRUE) laws_sanity_check() laws.set_zeroth_law(law, law_borg) @@ -93,8 +88,3 @@ laws_sanity_check() laws.clear_zeroth_law(force) post_lawchange(announce) - -/mob/living/silicon/proc/clear_law_sixsixsix(force, announce = TRUE) - laws_sanity_check() - laws.clear_law_sixsixsix(force) - post_lawchange(announce) diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm index 559ad42b1768..982814d194d2 100644 --- a/code/modules/mob/living/silicon/login.dm +++ b/code/modules/mob/living/silicon/login.dm @@ -1,6 +1,4 @@ /mob/living/silicon/Login() - if(mind && SSticker.mode) - SSticker.mode.remove_cultist(mind, 0, 0) return ..() diff --git a/code/modules/mob/living/silicon/robot/laws.dm b/code/modules/mob/living/silicon/robot/laws.dm index df62df082751..1fc33e9dcdd0 100644 --- a/code/modules/mob/living/silicon/robot/laws.dm +++ b/code/modules/mob/living/silicon/robot/laws.dm @@ -40,12 +40,6 @@ var/datum/ai_laws/master = connected_ai ? connected_ai.laws : null var/temp if (master) - laws.devillaws.len = master.devillaws.len - for (var/index = 1, index <= master.devillaws.len, index++) - temp = master.devillaws[index] - if (length(temp) > 0) - laws.devillaws[index] = temp - laws.ion.len = master.ion.len for (var/index = 1, index <= master.ion.len, index++) temp = master.ion[index] diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 347ec71e84e4..7da3e76d03ff 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -32,7 +32,6 @@ var/lawcheck[1] var/ioncheck[1] var/hackedcheck[1] - var/devillawcheck[5] var/sensors_on = 0 var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use @@ -206,16 +205,6 @@ hackedcheck[L] = "Yes" checklaws() - if (href_list["lawdevil"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite - var/L = text2num(href_list["lawdevil"]) - switch(devillawcheck[L]) - if ("Yes") - devillawcheck[L] = "No" - if ("No") - devillawcheck[L] = "Yes" - checklaws() - - if (href_list["laws"]) // With how my law selection code works, I changed statelaws from a verb to a proc, and call it through my law selection panel. --NeoFite statelaws() @@ -234,13 +223,6 @@ var/number = 1 sleep(10) - if (laws.devillaws && laws.devillaws.len) - for(var/index = 1, index <= laws.devillaws.len, index++) - if (force || devillawcheck[index] == "Yes") - say("[radiomod] 666. [laws.devillaws[index]]") - sleep(10) - - if (laws.zeroth) if (force || lawcheck[1] == "Yes") say("[radiomod] 0. [laws.zeroth]") @@ -286,12 +268,6 @@ var/list = "Which laws do you want to include when stating them for the crew?

    " - if (laws.devillaws && laws.devillaws.len) - for(var/index = 1, index <= laws.devillaws.len, index++) - if (!devillawcheck[index]) - devillawcheck[index] = "No" - list += {"[devillawcheck[index]] 666: [laws.devillaws[index]]
    "} - if (laws.zeroth) if (!lawcheck[1]) lawcheck[1] = "No" //Given Law 0's usual nature, it defaults to NOT getting reported. --NeoFite diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm deleted file mode 100644 index df3cfe349808..000000000000 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ /dev/null @@ -1,497 +0,0 @@ -/mob/living/simple_animal/hostile/construct - name = "Construct" - real_name = "Construct" - desc = "" - gender = NEUTER - mob_biotypes = NONE - speak_emote = list("hisses") - response_help_continuous = "thinks better of touching" - response_help_simple = "think better of touching" - response_disarm_continuous = "flails at" - response_disarm_simple = "flail at" - response_harm_continuous = "punches" - response_harm_simple = "punch" - speak_chance = 1 - icon = 'icons/mob/cult.dmi' - speed = 0 - a_intent = INTENT_HARM - stop_automated_movement = 1 - status_flags = CANPUSH - attack_sound = 'sound/weapons/punch1.ogg' - see_in_dark = 7 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) - atmos_requirements = list("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 = INFINITY - healable = 0 - faction = list("cult") - movement_type = FLYING - pressure_resistance = 100 - unique_name = 1 - AIStatus = AI_OFF //normal constructs don't have AI - loot = list(/obj/item/ectoplasm) - del_on_death = TRUE - initial_language_holder = /datum/language_holder/construct - deathmessage = "collapses in a shattered heap." - hud_type = /datum/hud/constructs - var/list/construct_spells = list() - var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." - var/master = null - var/seeking = FALSE - var/can_repair_constructs = FALSE - var/can_repair_self = FALSE - var/runetype - var/datum/action/innate/cult/create_rune/our_rune - var/holy = FALSE - -/mob/living/simple_animal/hostile/construct/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - update_health_hud() - var/spellnum = 1 - for(var/spell in construct_spells) - var/the_spell = new spell(null) - AddSpell(the_spell) - var/obj/effect/proc_holder/spell/S = mob_spell_list[spellnum] - var/pos = 2+spellnum*31 - if(construct_spells.len >= 4) - pos -= 31*(construct_spells.len - 4) - S.action.button.screen_loc = "6:[pos],4:-2" - S.action.button.moved = "6:[pos],4:-2" - spellnum++ - if(runetype) - our_rune = new runetype(src) - our_rune.Grant(src) - var/pos = 2+spellnum*31 - our_rune.button.screen_loc = "6:[pos],4:-2" - our_rune.button.moved = "6:[pos],4:-2" - add_overlay("glow_[icon_state][holy]") - -/mob/living/simple_animal/hostile/construct/Destroy() - QDEL_NULL(our_rune) - return ..() - -/mob/living/simple_animal/hostile/construct/Login() - . = ..() - if(!. || !client) - return FALSE - to_chat(src, playstyle_string) - -/mob/living/simple_animal/hostile/construct/examine(mob/user) - var/t_He = p_they(TRUE) - var/t_s = p_s() - . = list("This is [icon2html(src, user)] \a [src]!\n[desc]") - if(health < maxHealth) - if(health >= maxHealth/2) - . += "[t_He] look[t_s] slightly dented." - else - . += "[t_He] look[t_s] severely dented!" - . += "" - -/mob/living/simple_animal/hostile/construct/attack_animal(mob/living/simple_animal/M) - if(isconstruct(M)) //is it a construct? - var/mob/living/simple_animal/hostile/construct/C = M - if(!C.can_repair_constructs || (C == src && !C.can_repair_self)) - return ..() - if(holy != C.holy) - return ..() - if(health < maxHealth) - adjustHealth(-5) - if(src != M) - Beam(M,icon_state="sendbeam",time=4) - M.visible_message( - "[M] repairs some of \the [src]'s dents.", - "You repair some of [src]'s dents, leaving [src] at [health]/[maxHealth] health.") - else - M.visible_message( - "[M] repairs some of [p_their()] own dents.", - "You repair some of your own dents, leaving you at [M.health]/[M.maxHealth] health.") - else - if(src != M) - to_chat(M, "You cannot repair [src]'s dents, as [p_they()] [p_have()] none!") - else - to_chat(M, "You cannot repair your own dents, as you have none!") - else if(src != M) - return ..() - -/mob/living/simple_animal/hostile/construct/narsie_act() - return - -/mob/living/simple_animal/hostile/construct/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) - return 0 - -/mob/living/simple_animal/hostile/construct/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - . = ..() - if(updating_health) - update_health_hud() - -/////////////////Juggernaut/////////////// -/mob/living/simple_animal/hostile/construct/juggernaut - name = "Juggernaut" - real_name = "Juggernaut" - desc = "A massive, armored construct built to spearhead attacks and soak up enemy fire." - icon_state = "juggernaut" - icon_living = "juggernaut" - maxHealth = 150 - health = 150 - response_harm_continuous = "harmlessly punches" - response_harm_simple = "harmlessly punch" - harm_intent_damage = 0 - obj_damage = 90 - melee_damage_lower = 25 - melee_damage_upper = 25 - attack_verb_continuous = "smashes their armored gauntlet into" - attack_verb_simple = "smash your armored gauntlet into" - speed = 2.5 - environment_smash = ENVIRONMENT_SMASH_WALLS - attack_sound = 'sound/weapons/punch3.ogg' - status_flags = 0 - mob_size = MOB_SIZE_LARGE - force_threshold = 10 - construct_spells = list(/obj/effect/proc_holder/spell/targeted/forcewall/cult, - /obj/effect/proc_holder/spell/targeted/projectile/dumbfire/juggernaut) - runetype = /datum/action/innate/cult/create_rune/wall - playstyle_string = "You are a Juggernaut. Though slow, your shell can withstand heavy punishment, \ - create shield walls, rip apart enemies and walls alike, and even deflect energy weapons." - -/mob/living/simple_animal/hostile/construct/juggernaut/hostile //actually hostile, will move around, hit things - AIStatus = AI_ON - environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP - -/mob/living/simple_animal/hostile/construct/juggernaut/bullet_act(obj/projectile/P) - if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam)) - var/reflectchance = 40 - round(P.damage/3) - if(prob(reflectchance)) - apply_damage(P.damage * 0.5, P.damage_type) - visible_message("The [P.name] is reflected by [src]'s armored shell!", \ - "The [P.name] is reflected by your armored shell!") - - // Find a turf near or on the original location to bounce to - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3) - var/new_y = P.starting.y + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3) - var/turf/curloc = get_turf(src) - - // redirect the projectile - P.original = locate(new_x, new_y, P.z) - P.starting = curloc - P.firer = src - P.yo = new_y - curloc.y - P.xo = new_x - curloc.x - var/new_angle_s = P.Angle + rand(120,240) - while(new_angle_s > 180) // Translate to regular projectile degrees - new_angle_s -= 360 - P.setAngle(new_angle_s) - - return BULLET_ACT_FORCE_PIERCE // complete projectile permutation - - return ..() - -//////////////////////////Angelic-Juggernaut//////////////////////////// -/mob/living/simple_animal/hostile/construct/juggernaut/angelic - holy = TRUE - loot = list(/obj/item/ectoplasm/angelic) - -/mob/living/simple_animal/hostile/construct/juggernaut/noncult - -////////////////////////Wraith///////////////////////////////////////////// -/mob/living/simple_animal/hostile/construct/wraith - name = "Wraith" - real_name = "Wraith" - desc = "A wicked, clawed shell constructed to assassinate enemies and sow chaos behind enemy lines." - icon_state = "wraith" - icon_living = "wraith" - maxHealth = 65 - health = 65 - melee_damage_lower = 20 - melee_damage_upper = 20 - retreat_distance = 2 //AI wraiths will move in and out of combat - attack_verb_continuous = "slashes" - attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' - construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift) - runetype = /datum/action/innate/cult/create_rune/tele - playstyle_string = "You are a Wraith. Though relatively fragile, you are fast, deadly, can phase through walls, and your attacks will lower the cooldown on phasing." - - var/attack_refund = 10 //1 second per attack - var/crit_refund = 50 //5 seconds when putting a target into critical - var/kill_refund = 250 //full refund on kills - -/mob/living/simple_animal/hostile/construct/wraith/AttackingTarget() //refund jaunt cooldown when attacking living targets - var/prev_stat - if(isliving(target) && !iscultist(target)) - var/mob/living/L = target - prev_stat = L.stat - - . = ..() - - if(. && isnum(prev_stat)) - var/mob/living/L = target - var/refund = 0 - if(QDELETED(L) || (L.stat == DEAD && prev_stat != DEAD)) //they're dead, you killed them - refund += kill_refund - else if(HAS_TRAIT(L, TRAIT_CRITICAL_CONDITION) && prev_stat == CONSCIOUS) //you knocked them into critical - refund += crit_refund - if(L.stat != DEAD && prev_stat != DEAD) - refund += attack_refund - for(var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/S in mob_spell_list) - S.charge_counter = min(S.charge_counter + refund, S.charge_max) - -/mob/living/simple_animal/hostile/construct/wraith/hostile //actually hostile, will move around, hit things - AIStatus = AI_ON - -//////////////////////////Angelic-Wraith//////////////////////////// -/mob/living/simple_animal/hostile/construct/wraith/angelic - holy = TRUE - construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/angelic) - loot = list(/obj/item/ectoplasm/angelic) - -/mob/living/simple_animal/hostile/construct/wraith/noncult - -/////////////////////////////Artificer///////////////////////// -/mob/living/simple_animal/hostile/construct/artificer - name = "Artificer" - real_name = "Artificer" - desc = "A bulbous construct dedicated to building and maintaining the Cult of Nar'Sie's armies." - icon_state = "artificer" - icon_living = "artificer" - maxHealth = 50 - health = 50 - response_harm_continuous = "viciously beats" - response_harm_simple = "viciously beat" - harm_intent_damage = 5 - obj_damage = 60 - melee_damage_lower = 5 - melee_damage_upper = 5 - retreat_distance = 10 - minimum_distance = 10 //AI artificers will flee like fuck - attack_verb_continuous = "rams" - attack_verb_simple = "ram" - environment_smash = ENVIRONMENT_SMASH_WALLS - attack_sound = 'sound/weapons/punch2.ogg' - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall, - /obj/effect/proc_holder/spell/aoe_turf/conjure/floor, - /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone, - /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, - /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser) - runetype = /datum/action/innate/cult/create_rune/revive - playstyle_string = "You are an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, \ - - use magic missile, repair allied constructs, shades, and yourself (by clicking on them), \ - and, most important of all, create new constructs by producing soulstones to capture souls, \ - and shells to place those soulstones into." - can_repair_constructs = TRUE - can_repair_self = TRUE - -/mob/living/simple_animal/hostile/construct/artificer/Found(atom/A) //what have we found here? - if(isconstruct(A)) //is it a construct? - var/mob/living/simple_animal/hostile/construct/C = A - if(C.health < C.maxHealth) //is it hurt? let's go heal it if it is - return 1 - else - return 0 - else - return 0 - -/mob/living/simple_animal/hostile/construct/artificer/CanAttack(atom/the_target) - if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it - return 0 - if(Found(the_target) || ..()) //If we Found it or Can_Attack it normally, we Can_Attack it as long as it wasn't invisible - return 1 //as a note this shouldn't be added to base hostile mobs because it'll mess up retaliate hostile mobs - -/mob/living/simple_animal/hostile/construct/artificer/MoveToTarget(list/possible_targets) - ..() - if(isliving(target)) - var/mob/living/L = target - if(isconstruct(L) && L.health >= L.maxHealth) //is this target an unhurt construct? stop trying to heal it - LoseTarget() - return 0 - if(L.health <= melee_damage_lower+melee_damage_upper) //ey bucko you're hurt as fuck let's go hit you - retreat_distance = null - minimum_distance = 1 - -/mob/living/simple_animal/hostile/construct/artificer/Aggro() - ..() - if(isconstruct(target)) //oh the target is a construct no need to flee - retreat_distance = null - minimum_distance = 1 - -/mob/living/simple_animal/hostile/construct/artificer/LoseAggro() - ..() - retreat_distance = initial(retreat_distance) - minimum_distance = initial(minimum_distance) - -/mob/living/simple_animal/hostile/construct/artificer/hostile //actually hostile, will move around, hit things, heal other constructs - AIStatus = AI_ON - environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP - -/////////////////////////////Angelic Artificer///////////////////////// -/mob/living/simple_animal/hostile/construct/artificer/angelic - desc = "A bulbous construct dedicated to building and maintaining holy armies." - holy = TRUE - loot = list(/obj/item/ectoplasm/angelic) - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult/purified, - /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, - /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser) - -/mob/living/simple_animal/hostile/construct/artificer/noncult - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall, - /obj/effect/proc_holder/spell/aoe_turf/conjure/floor, - /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult, - /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, - /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser) - -/////////////////////////////Harvester///////////////////////// -/mob/living/simple_animal/hostile/construct/harvester - name = "Harvester" - real_name = "Harvester" - desc = "A long, thin construct built to herald Nar'Sie's rise. It'll be all over soon." - icon_state = "harvester" - icon_living = "harvester" - maxHealth = 40 - health = 40 - sight = SEE_MOBS - melee_damage_lower = 15 - melee_damage_upper = 20 - attack_verb_continuous = "butchers" - attack_verb_simple = "butcher" - attack_sound = 'sound/weapons/bladeslice.ogg' - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/area_conversion, - /obj/effect/proc_holder/spell/targeted/forcewall/cult) - playstyle_string = "You are a Harvester. You are incapable of directly killing humans, but your attacks will remove their limbs: \ - Bring those who still cling to this world of illusion back to the Geometer so they may know Truth. Your form and any you are pulling can pass through runed walls effortlessly." - can_repair_constructs = TRUE - - -/mob/living/simple_animal/hostile/construct/harvester/Bump(atom/AM) - . = ..() - if(istype(AM, /turf/closed/wall/mineral/cult) && AM != loc) //we can go through cult walls - var/atom/movable/stored_pulling = pulling - if(stored_pulling) - stored_pulling.setDir(get_dir(stored_pulling.loc, loc)) - stored_pulling.forceMove(loc) - forceMove(AM) - if(stored_pulling) - start_pulling(stored_pulling, supress_message = TRUE) //drag anything we're pulling through the wall with us by magic - -/mob/living/simple_animal/hostile/construct/harvester/AttackingTarget() - if(iscarbon(target)) - var/mob/living/carbon/C = target - if(HAS_TRAIT(C, TRAIT_NODISMEMBER)) - return ..() //ATTACK! - var/list/parts = list() - var/undismembermerable_limbs = 0 - for(var/X in C.bodyparts) - var/obj/item/bodypart/BP = X - if(BP.body_part != HEAD && BP.body_part != CHEST) - if(BP.dismemberable) - parts += BP - else - undismembermerable_limbs++ - if(!LAZYLEN(parts)) - if(undismembermerable_limbs) //they have limbs we can't remove, and no parts we can, attack! - return ..() - C.Paralyze(60) - visible_message("[src] knocks [C] down!") - to_chat(src, "\"Bring [C.p_them()] to me.\"") - return FALSE - do_attack_animation(C) - var/obj/item/bodypart/BP = pick(parts) - BP.dismember() - return FALSE - . = ..() - -/mob/living/simple_animal/hostile/construct/harvester/Initialize() - . = ..() - var/datum/action/innate/seek_prey/seek = new() - seek.Grant(src) - seek.Activate() - -///////////////////////Master-Tracker/////////////////////// - -/datum/action/innate/seek_master - name = "Seek your Master" - desc = "You and your master share a soul-link that informs you of their location" - background_icon_state = "bg_demon" - buttontooltipstyle = "cult" - button_icon_state = "cult_mark" - var/tracking = FALSE - var/mob/living/simple_animal/hostile/construct/the_construct - - -/datum/action/innate/seek_master/Grant(mob/living/C) - the_construct = C - ..() - -/datum/action/innate/seek_master/Activate() - var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult) - if(!C) - return - var/datum/objective/eldergod/summon_objective = locate() in C.cult_team.objectives - - if(summon_objective.check_completion()) - the_construct.master = C.cult_team.blood_target - - if(!the_construct.master) - to_chat(the_construct, "You have no master to seek!") - the_construct.seeking = FALSE - return - if(tracking) - tracking = FALSE - the_construct.seeking = FALSE - to_chat(the_construct, "You are no longer tracking your master.") - return - else - tracking = TRUE - the_construct.seeking = TRUE - to_chat(the_construct, "You are now tracking your master.") - - -/datum/action/innate/seek_prey - name = "Seek the Harvest" - desc = "None can hide from Nar'Sie, activate to track a survivor attempting to flee the red harvest!" - icon_icon = 'icons/mob/actions/actions_cult.dmi' - background_icon_state = "bg_demon" - buttontooltipstyle = "cult" - button_icon_state = "cult_mark" - -/datum/action/innate/seek_prey/Activate() - if(GLOB.cult_narsie == null) - return - var/mob/living/simple_animal/hostile/construct/harvester/the_construct = owner - if(the_construct.seeking) - desc = "None can hide from Nar'Sie, activate to track a survivor attempting to flee the red harvest!" - button_icon_state = "cult_mark" - the_construct.seeking = FALSE - to_chat(the_construct, "You are now tracking Nar'Sie, return to reap the harvest!") - return - else - if(LAZYLEN(GLOB.cult_narsie.souls_needed)) - the_construct.master = pick(GLOB.cult_narsie.souls_needed) - var/mob/living/real_target = the_construct.master //We can typecast this way because Narsie only allows /mob/living into the souls list - to_chat(the_construct, "You are now tracking your prey, [real_target.real_name] - harvest [real_target.p_them()]!") - else - to_chat(the_construct, "Nar'Sie has completed her harvest!") - return - desc = "Activate to track Nar'Sie!" - button_icon_state = "sintouch" - the_construct.seeking = TRUE - - -/////////////////////////////ui stuff///////////////////////////// - -/mob/living/simple_animal/hostile/construct/update_health_hud() - if(hud_used) - if(health >= maxHealth) - hud_used.healths.icon_state = "[icon_state]_health0" - else if(health > maxHealth*0.8) - hud_used.healths.icon_state = "[icon_state]_health2" - else if(health > maxHealth*0.6) - hud_used.healths.icon_state = "[icon_state]_health3" - else if(health > maxHealth*0.4) - hud_used.healths.icon_state = "[icon_state]_health4" - else if(health > maxHealth*0.2) - hud_used.healths.icon_state = "[icon_state]_health5" - else - hud_used.healths.icon_state = "[icon_state]_health6" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 19eef279a1dc..ebfd85f3ca23 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -481,50 +481,6 @@ fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) -/mob/living/simple_animal/pet/dog/corgi/Ian/narsie_act() - playsound(src, 'sound/magic/demon_dies.ogg', 75, TRUE) - var/mob/living/simple_animal/pet/dog/corgi/narsie/N = new(loc) - N.setDir(dir) - gib() - -/mob/living/simple_animal/pet/dog/corgi/narsie - name = "Nars-Ian" - desc = "Ia! Ia!" - icon_state = "narsian" - icon_living = "narsian" - icon_dead = "narsian_dead" - faction = list("neutral", "cult") - gold_core_spawnable = NO_SPAWN - nofur = TRUE - unique_pet = TRUE - held_state = "narsian" - -/mob/living/simple_animal/pet/dog/corgi/narsie/Life() - ..() - for(var/mob/living/simple_animal/pet/P in range(1, src)) - if(P != src && !istype(P,/mob/living/simple_animal/pet/dog/corgi/narsie)) - visible_message("[src] devours [P]!", \ - "DELICIOUS SOULS") - playsound(src, 'sound/magic/demon_attack1.ogg', 75, TRUE) - narsie_act() - if(P.mind) - if(P.mind.hasSoul) - P.mind.hasSoul = FALSE //Nars-Ian ate your soul; you don't have one anymore - else - visible_message("... Aw, someone beat me to this one.") - P.gib() - -/mob/living/simple_animal/pet/dog/corgi/narsie/update_corgi_fluff() - ..() - speak = list("Tari'karat-pasnar!", "IA! IA!", "BRRUUURGHGHRHR") - speak_emote = list("growls", "barks ominously") - emote_hear = list("barks echoingly!", "woofs hauntingly!", "yaps in an eldritch manner.", "mutters something unspeakable.") - emote_see = list("communes with the unnameable.", "ponders devouring some souls.", "shakes.") - -/mob/living/simple_animal/pet/dog/corgi/narsie/narsie_act() - adjustBruteLoss(-maxHealth) - - /mob/living/simple_animal/pet/dog/corgi/regenerate_icons() ..() if(inventory_head) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm deleted file mode 100644 index 04723d80ba5a..000000000000 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ /dev/null @@ -1,285 +0,0 @@ -/* - -Swarmer Beacon - -A strange machine appears anywhere a normal lavaland mob can it produces a swarmer at a rate of -1/15 seconds, until there are GetTotalAISwarmerCap()/2 swarmers, after this it is up to the swarmers themselves to -increase their population (it will repopulate them should they fall under GetTotalAISwarmerCap()/2 again) - -tl;dr A million of the little hellraisers spawn (controlled by AI) and try to eat mining - -Loot: Not much, besides a shit load of artificial bluespace crystals, Oh and mining doesn't get eaten -that's a plus I suppose. - -Difficulty: Special - -*/ - -GLOBAL_LIST_EMPTY(AISwarmers) -GLOBAL_LIST_EMPTY(AISwarmersByType)//AISwarmersByType[.../resource] = list(1st, 2nd, nth), AISwarmersByType[../ranged] = list(1st, 2nd, nth) etc. -GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swarmer/ai/resource = 30, /mob/living/simple_animal/hostile/swarmer/ai/ranged_combat = 20, /mob/living/simple_animal/hostile/swarmer/ai/melee_combat = 10)) - - -//returns a type of AI swarmer that is NOT at max cap -//type order is shuffled, to prevent bias -/proc/GetUncappedAISwarmerType() - var/static/list/swarmerTypes = subtypesof(/mob/living/simple_animal/hostile/swarmer/ai) - LAZYINITLIST(GLOB.AISwarmersByType) - for(var/t in shuffle(swarmerTypes)) - var/list/amount = GLOB.AISwarmersByType[t] - if(!amount || amount.len < GLOB.AISwarmerCapsByType[t]) - return t - - -//Total of all subtype caps -/proc/GetTotalAISwarmerCap() - var/static/list/swarmerTypes = subtypesof(/mob/living/simple_animal/hostile/swarmer/ai) - . = 0 - LAZYINITLIST(GLOB.AISwarmersByType) - for(var/t in swarmerTypes) - . += GLOB.AISwarmerCapsByType[t] - -//this should. not be a simple mob i think -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon - name = "swarmer beacon" - desc = "That name is a bit of a mouthful, but stop paying attention to your mouth they're eating everything!" - icon = 'icons/mob/swarmer.dmi' - icon_state = "swarmer_console" - health = 750 - maxHealth = 750 //""""low-ish"""" HP because it's a passive boss, and the swarm itself is the real foe - mob_biotypes = MOB_ROBOTIC - gps_name = "Hungry Signal" - faction = list("mining", "boss", "swarmer") - weather_immunities = list("lava","ash") - stop_automated_movement = TRUE - wander = FALSE - layer = BELOW_MOB_LAYER - AIStatus = AI_OFF - del_on_death = TRUE - var/swarmer_spawn_cooldown = 0 - var/swarmer_spawn_cooldown_amt = 150 //Deciseconds between the swarmers we spawn - var/call_help_cooldown = 0 - var/call_help_cooldown_amt = 150 //Deciseconds between calling swarmers to help us when attacked - var/static/list/swarmer_caps - - -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Initialize() - . = ..() - swarmer_caps = GLOB.AISwarmerCapsByType //for admin-edits - for(var/ddir in GLOB.cardinals) - new /obj/structure/swarmer/blockade (get_step(src, ddir)) - var/mob/living/simple_animal/hostile/swarmer/ai/resource/R = new(loc) - step(R, ddir) //Step the swarmers, instead of spawning them there, incase the turf is solid - - -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Life() - . = ..() - if(.) - var/createtype = GetUncappedAISwarmerType() - if(createtype && world.time > swarmer_spawn_cooldown && GLOB.AISwarmers.len < (GetTotalAISwarmerCap()*0.5)) - swarmer_spawn_cooldown = world.time + swarmer_spawn_cooldown_amt - new createtype(loc) - - -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - . = ..() - if(. > 0 && world.time > call_help_cooldown) - call_help_cooldown = world.time + call_help_cooldown_amt - summon_backup(25) //long range, only called max once per 15 seconds, so it's not deathlag - - -//SWARMER AI -//AI versions of the swarmer mini-antag -//This is an Abstract Base, it re-enables AI, but does not give the swarmer any goals/targets -/mob/living/simple_animal/hostile/swarmer/ai - wander = 1 - faction = list("swarmer", "mining") - weather_immunities = list("ash") //wouldn't be fun otherwise - AIStatus = AI_ON - -/mob/living/simple_animal/hostile/swarmer/ai/Initialize() - . = ..() - ToggleLight() //so you can see them eating you out of house and home/shooting you/stunlocking you for eternity - LAZYADD(GLOB.AISwarmers, src) - GLOB.AISwarmersByType[type] += list(src) - - -/mob/living/simple_animal/hostile/swarmer/ai/Destroy() - GLOB.AISwarmers -= src - GLOB.AISwarmersByType[type] -= src - return ..() - - -/mob/living/simple_animal/hostile/swarmer/ai/SwarmerTypeToCreate() - return GetUncappedAISwarmerType() - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/handle_automated_action() - . = ..() - if(.) - if(!stop_automated_movement) - if(health < maxHealth*0.25) - StartAction(100) - RepairSelf() - return - - -/mob/living/simple_animal/hostile/swarmer/ai/Move(atom/newloc) - if(newloc) - if(newloc.virtual_z() == virtual_z()) //so these actions are Z-specific - if(islava(newloc)) - var/turf/open/lava/L = newloc - if(!L.is_safe()) - StartAction(20) - new /obj/structure/catwalk/swarmer_catwalk(newloc) - return FALSE - - if(ischasm(newloc) && !throwing) - throw_at(get_edge_target_turf(src, get_dir(src, newloc)), 7 , 3, src, FALSE) //my planet needs me - return FALSE - - return ..() - - -/mob/living/simple_animal/hostile/swarmer/ai/proc/StartAction(deci = 0) - stop_automated_movement = TRUE - AIStatus = AI_OFF - addtimer(CALLBACK(src, PROC_REF(EndAction)), deci) - - -/mob/living/simple_animal/hostile/swarmer/ai/proc/EndAction() - stop_automated_movement = FALSE - AIStatus = AI_ON - - - - -//RESOURCE SWARMER: -//Similar to the original Player-Swarmers, these dismantle things to obtain the metal inside -//They then use this medal to produce more swarmers or traps/barricades - -/mob/living/simple_animal/hostile/swarmer/ai/resource - search_objects = 1 - attack_all_objects = TRUE //attempt to nibble everything - lose_patience_timeout = 150 - var/static/list/sharedWanted = typecacheof(list(/turf/closed/mineral, /turf/closed/wall)) //eat rocks and walls - var/static/list/sharedIgnore = list() - -//This handles viable things to eat/attack -//Place specific cases of AI derpiness here -//Most can be left to the automatic Gain/LosePatience() system -/mob/living/simple_animal/hostile/swarmer/ai/resource/CanAttack(atom/the_target) - - //SPECIFIC CASES: - //Smash fulltile windows before grilles - if(istype(the_target, /obj/structure/grille)) - for(var/obj/structure/window/rogueWindow in get_turf(the_target)) - if(rogueWindow.fulltile) //done this way because the subtypes are weird. - the_target = rogueWindow - break - - //GENERAL CASES: - if(is_type_in_typecache(the_target, sharedIgnore)) //always ignore - return FALSE - if(is_type_in_typecache(the_target, sharedWanted)) //always eat - return TRUE - - return ..() //else, have a nibble, see if it's food - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/OpenFire(atom/A) - if(isliving(A)) //don't shoot rocks, sillies. - ..() - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/AttackingTarget() - if(target.swarmer_act(src)) - add_type_to_wanted(target.type) - return TRUE - else - add_type_to_ignore(target.type) - return FALSE - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/handle_automated_action() - . = ..() - if(.) - if(!stop_automated_movement) - if(GLOB.AISwarmers.len < GetTotalAISwarmerCap() && resources >= 50) - StartAction(100) //so they'll actually sit still and use the verbs - CreateSwarmer() - return - - if(resources > 5) - if(prob(5)) //lower odds, as to prioritise reproduction - StartAction(10) //not a typo - CreateBarricade() - return - if(prob(5)) - CreateTrap() - return - - -//So swarmers can learn what is and isn't food -/mob/living/simple_animal/hostile/swarmer/ai/resource/proc/add_type_to_wanted(typepath) - if(!sharedWanted[typepath])// this and += is faster than |= - sharedWanted += typecacheof(typepath) - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/proc/add_type_to_ignore(typepath) - if(!sharedIgnore[typepath]) - sharedIgnore += typecacheof(typepath) - - -//RANGED SWARMER -/mob/living/simple_animal/hostile/swarmer/ai/ranged_combat - icon_state = "swarmer_ranged" - icon_living = "swarmer_ranged" - projectiletype = /obj/projectile/beam/laser - projectilesound = 'sound/weapons/laser.ogg' - check_friendly_fire = TRUE //you're supposed to protect the resource swarmers, you poop - retreat_distance = 3 - minimum_distance = 3 - -/mob/living/simple_animal/hostile/swarmer/ai/ranged_combat/Aggro() - ..() - summon_backup(15, TRUE) //Exact matching, so that goliaths don't come to aid the swarmers, that'd be silly - - -//MELEE SWARMER -/mob/living/simple_animal/hostile/swarmer/ai/melee_combat - icon_state = "swarmer_melee" - icon_living = "swarmer_melee" - health = 60 - maxHealth = 60 - ranged = FALSE - -/mob/living/simple_animal/hostile/swarmer/ai/melee_combat/Aggro() - ..() - summon_backup(15, TRUE) - - -/mob/living/simple_animal/hostile/swarmer/ai/melee_combat/AttackingTarget() - if(isliving(target)) - if(prob(35)) - StartAction(30) - DisperseTarget(target) - else - var/mob/living/L = target - L.attack_animal(src) - L.electrocute_act(10, src, flags = SHOCK_NOGLOVES) - return TRUE - else - return ..() - - - - -//SWARMER CATWALKS -//Used so they can survive lavaland better -/obj/structure/catwalk/swarmer_catwalk - name = "swarmer catwalk" - desc = "A catwalk-like mesh, produced by swarmers to allow them to navigate hostile terrain." - icon = 'icons/obj/smooth_structures/swarmer_catwalk.dmi' - icon_state = "swarmer_catwalk-0" - base_icon_state = "swarmer_catwalk" diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm deleted file mode 100644 index fcb9274a2c62..000000000000 --- a/code/modules/mob/living/simple_animal/shade.dm +++ /dev/null @@ -1,66 +0,0 @@ -/mob/living/simple_animal/shade - name = "Shade" - real_name = "Shade" - desc = "A bound spirit." - gender = PLURAL - icon = 'icons/mob/cult.dmi' - icon_state = "shade" - icon_living = "shade" - mob_biotypes = MOB_SPIRIT - maxHealth = 40 - health = 40 - healable = 0 - speak_emote = list("hisses") - emote_hear = list("wails.","screeches.") - response_help_continuous = "puts their hand through" - response_help_simple = "put your hand through" - response_disarm_continuous = "flails at" - response_disarm_simple = "flail at" - response_harm_continuous = "punches" - response_harm_simple = "punch" - speak_chance = 1 - melee_damage_lower = 5 - melee_damage_upper = 12 - attack_verb_continuous = "metaphysically strikes" - attack_verb_simple = "metaphysically strike" - minbodytemp = 0 - maxbodytemp = INFINITY - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - stop_automated_movement = 1 - faction = list("cult") - status_flags = CANPUSH - movement_type = FLYING - loot = list(/obj/item/ectoplasm) - del_on_death = TRUE - initial_language_holder = /datum/language_holder/construct - -/mob/living/simple_animal/shade/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - -/mob/living/simple_animal/shade/death() - deathmessage = "lets out a contented sigh as [p_their()] form unwinds." - ..() - -/mob/living/simple_animal/shade/attack_animal(mob/living/simple_animal/M) - if(isconstruct(M)) - var/mob/living/simple_animal/hostile/construct/C = M - if(!C.can_repair_constructs) - return - if(health < maxHealth) - adjustHealth(-25) - Beam(M,icon_state="sendbeam",time=4) - M.visible_message( - "[M] heals \the [src].", \ - "You heal [src], leaving [src] at [health]/[maxHealth] health.") - else - to_chat(M, "You cannot heal [src], as [p_theyre()] unharmed!") - else if(src != M) - return ..() - -/mob/living/simple_animal/shade/attackby(obj/item/O, mob/user, params) //Marker -Agouri - if(istype(O, /obj/item/soulstone)) - var/obj/item/soulstone/SS = O - SS.transfer_soul("SHADE", src, user) - else - . = ..() diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index bd1227d94d7d..adb03f1962f4 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -379,9 +379,6 @@ return FALSE if(M.mind && M.mind.special_role)//If they have a mind and special role, they are some type of traitor or antagonist. switch(SSticker.mode.config_tag) - if("cult") - if(M.mind in SSticker.mode.cult) - return 2 if("nuclear") if(M.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE)) return 2 diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index acc026c16dda..ef21915e1fca 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -617,9 +617,6 @@ if(!MP) return 0 //Sanity, this should never happen. - if(ispath(MP, /mob/living/simple_animal/hostile/construct)) - return 0 //Verbs do not appear for players. - //Good mobs! if(ispath(MP, /mob/living/simple_animal/pet/cat)) return 1 @@ -631,8 +628,6 @@ return 1 if(ispath(MP, /mob/living/simple_animal/hostile/mushroom)) return 1 - if(ispath(MP, /mob/living/simple_animal/shade)) - return 1 if(ispath(MP, /mob/living/simple_animal/hostile/killertomato)) return 1 if(ispath(MP, /mob/living/simple_animal/mouse)) diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 7724a38ae43e..79e8f564b88d 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -25,320 +25,6 @@ target = nOwner.mind update_text() - /obj/item/paper/contract/employment/update_text() name = "paper- [target] employment contract" default_raw_text = "
    Conditions of Employment




    This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and Nanotrasen (hereafter referred to as the omnipresent and helpful watcher of humanity).
    WITNESSETH:
    WHEREAS, SLAVE is a natural born human or humanoid, possessing skills upon which he can aid the omnipresent and helpful watcher of humanity, who seeks employment in the omnipresent and helpful watcher of humanity.
    WHEREAS, the omnipresent and helpful watcher of humanity agrees to sporadically provide payment to SLAVE, in exchange for permanent servitude.
    NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:
    In exchange for paltry payments, SLAVE agrees to work for the omnipresent and helpful watcher of humanity, for the remainder of his or her current and future lives.
    Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of humanity.
    Should transfership of a soul not be possible, a lien shall be placed instead.
    Signed,
    [target]" - - -/obj/item/paper/contract/employment/attack(mob/living/M, mob/living/carbon/human/user) - var/deconvert = FALSE - if(M.mind == target && !M.owns_soul()) - if(user.mind && (user.mind.assigned_role == "Lawyer")) - deconvert = TRUE - else if (user.mind && (user.mind.assigned_role =="Head of Personnel") || (user.mind.assigned_role == "CentCom Commander")) - deconvert = prob (25) // the Head of Personnel doesn't have AS much legal training - else - deconvert = prob (5) - if(deconvert) - M.visible_message("[user] reminds [M] that [M]'s soul was already purchased by Nanotrasen!") - to_chat(M, "You feel that your soul has returned to its rightful owner, Nanotrasen.") - M.return_soul() - else - M.visible_message("[user] beats [M] over the head with [src]!", \ - "[user] beats [M] over the head with [src]!") - return ..() - - -/obj/item/paper/contract/infernal - var/contractType = 0 - resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - var/datum/mind/owner - var/datum/antagonist/devil/devil_datum - icon_state = "paper_onfire" - -/obj/item/paper/contract/infernal/power - name = "paper- contract for infernal power" - contractType = CONTRACT_POWER - -/obj/item/paper/contract/infernal/wealth - name = "paper- contract for unlimited wealth" - contractType = CONTRACT_WEALTH - -/obj/item/paper/contract/infernal/prestige - name = "paper- contract for prestige" - contractType = CONTRACT_PRESTIGE - -/obj/item/paper/contract/infernal/magic - name = "paper- contract for magical power" - contractType = CONTRACT_MAGIC - -/obj/item/paper/contract/infernal/revive - name = "paper- contract of resurrection" - contractType = CONTRACT_REVIVE - var/cooldown = FALSE - -/obj/item/paper/contract/infernal/knowledge - name = "paper- contract for knowledge" - contractType = CONTRACT_KNOWLEDGE - -/obj/item/paper/contract/infernal/friend - name = "paper- contract for a friend" - contractType = CONTRACT_FRIEND - -/obj/item/paper/contract/infernal/unwilling - name = "paper- infernal contract" - contractType = CONTRACT_UNWILLING - -/obj/item/paper/contract/infernal/New(atom/loc, mob/living/nTarget, datum/mind/nOwner) - ..() - owner = nOwner - devil_datum = owner.has_antag_datum(/datum/antagonist/devil) - target = nTarget - update_text() - -/obj/item/paper/contract/infernal/update_text() - default_raw_text = "This shouldn't be seen. Error DEVIL:6" - -/obj/item/paper/contract/infernal/power/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for infernal power



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text = "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/wealth/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for unlimited wealth



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/prestige/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for prestige



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/magic/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for magic



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/revive/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for resurrection



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/knowledge/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for knowledge



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/friend/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for a friend



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a friend. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/unwilling/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for slave



    I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/attackby(obj/item/P, mob/living/carbon/human/user, params) - add_fingerprint(user) - if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) - attempt_signature(user) - else if(istype(P, /obj/item/stamp)) - to_chat(user, "You stamp the paper with your rubber stamp, however the ink ignites as you release the stamp.") - else if(P.get_temperature()) - user.visible_message("[user] brings [P] next to [src], but [src] does not catch fire!", "[src] refuses to ignite!") - else - return ..() - -/obj/item/paper/contract/infernal/attack(mob/M, mob/living/user) - add_fingerprint(user) - if(M == user && target == M.mind && M.mind.soulOwner != owner && attempt_signature(user, 1)) - user.visible_message("[user] slices [user.p_their()] wrist with [src], and scrawls [user.p_their()] name in blood.", "You slice your wrist open and scrawl your name in blood.") - user.blood_volume = max(user.blood_volume - 100, 0) - else - return ..() - -/obj/item/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user, blood = 0) - if(!user.IsAdvancedToolUser() || !user.is_literate()) - to_chat(user, "You don't know how to read or write!") - return 0 - if(user.mind != target) - to_chat(user, "Your signature simply slides off the sheet, it seems this contract is not meant for you to sign!") - return 0 - if(user.mind.soulOwner == owner) - to_chat(user, "This devil already owns your soul, you may not sell it to [owner.p_them()] again!") - return 0 - if(signed) - to_chat(user, "This contract has already been signed! It may not be signed again.") - return 0 - if(!user.mind.hasSoul) - to_chat(user, "You do not possess a soul.") - return 0 - if(HAS_TRAIT(user, TRAIT_DUMB)) - to_chat(user, "You quickly scrawl 'your name' on the contract.") - signIncorrectly() - return 0 - if (contractType == CONTRACT_REVIVE) - to_chat(user, "You are already alive, this contract would do nothing.") - return 0 - else - to_chat(user, "You quickly scrawl your name on the contract.") - if(fulfillContract(target.current, blood)<=0) - to_chat(user, "But it seemed to have no effect, perhaps even Hell itself cannot grant this boon?") - return 1 - - - -/obj/item/paper/contract/infernal/revive/attack(mob/M, mob/living/user) - if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind) - if (cooldown) - to_chat(user, "Give [M] a chance to think through the contract, don't rush [M.p_them()]!") - return 0 - cooldown = TRUE - var/mob/living/carbon/human/H = M - var/mob/dead/observer/ghost = H.get_ghost() - var/response = "No" - if(ghost) - ghost.notify_cloning("A devil has offered you revival, at the cost of your soul.",'sound/effects/genetics.ogg', H) - response = tgui_alert(ghost, "A devil is offering you another chance at life, at the price of your soul, do you accept?", "Infernal Resurrection", "Yes", "No", "Never for this round", 0, 200) - if(!ghost) - return //handle logouts that happen whilst the alert is waiting for a response. - else - response = tgui_alert(target.current, "A devil is offering you another chance at life, at the price of your soul, do you accept?", "Infernal Resurrection", "Yes", "No", "Never for this round", 0, 200) - if(response == "Yes") - H.revive(full_heal = TRUE, admin_revive = FALSE) - log_combat(user, H, "infernally revived via contract") - user.visible_message("With a sudden blaze, [H] stands back up.") - H.fakefire() - fulfillContract(H, TRUE)//Revival contracts are always signed in blood - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, fakefireextinguish)), 5, TIMER_UNIQUE) - addtimer(CALLBACK(src, PROC_REF(resetcooldown)), 300, TIMER_UNIQUE) - else - ..() - -/obj/item/paper/contract/infernal/revive/proc/resetcooldown() - cooldown = FALSE - - -/obj/item/paper/contract/infernal/proc/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE) - signed = TRUE - if(user.mind.soulOwner != user.mind) //They already sold their soul to someone else? - var/datum/antagonist/devil/ownerDevilInfo = user.mind.soulOwner.has_antag_datum(/datum/antagonist/devil) - ownerDevilInfo.remove_soul(user.mind) //Then they lose their claim. - user.mind.soulOwner = owner - user.hellbound = contractType - user.mind.damnation_type = contractType - var/datum/antagonist/devil/devilInfo = owner.has_antag_datum(/datum/antagonist/devil) - devilInfo.add_soul(user.mind) - update_text(user.real_name, blood) - to_chat(user, "A profound emptiness washes over you as you lose ownership of your soul.") - to_chat(user, "This does NOT make you an antagonist if you were not already.") - SSblackbox.record_feedback("tally", "infernal contract", 1, contractType) - return TRUE - -/obj/item/paper/contract/infernal/proc/signIncorrectly(mob/living/carbon/human/user = target.current, blood = FALSE) - signed = 1 - update_text("your name", blood) - -/obj/item/paper/contract/infernal/power/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE) - if(!user.dna) - return -1 - user.dna.add_mutation(HULK) - var/obj/item/organ/regenerative_core/organ = new /obj/item/organ/regenerative_core - organ.Insert(user) - return ..() - -/obj/item/paper/contract/infernal/wealth/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0) - if(!istype(user) || !user.mind) // How in the hell could that happen? - return -1 - user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_wealth(null)) - return ..() - -/obj/item/paper/contract/infernal/prestige/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0) - //Basically turns the signer into the captain, and uploads an ion law making them the captain. - var/obj/item/worn = user.wear_id - var/obj/item/card/id/id = null - if(worn) - id = worn.GetID() - if(id) - id.icon_state = "gold" - id.uses_overlays = TRUE - id.access = get_all_accesses()+get_all_centcom_access() - id.assignment = "Captain" - id.update_label() - id.update_appearance() - else - id = new /obj/item/card/id/gold(user.loc) - id.registered_name = user.real_name - id.access = get_all_accesses()+get_all_centcom_access() - id.assignment = "Captain" - id.update_label() - id.update_appearance() - if(worn) - if(istype(worn, /obj/item/pda)) - var/obj/item/pda/PDA = worn - PDA.id = id - id.forceMove(worn) - else if(istype(worn, /obj/item/storage/wallet)) - var/obj/item/storage/wallet/W = worn - W.front_id = id - id.forceMove(worn) - worn.update_appearance() - var/datum/round_event/ion_storm/add_law_only/ion = new() - ion.announceChance = 0 - ion.ionMessage = "[user.name] is the only Captain of the station. [user.name] is the highest authority, legitimate or otherwise, on the station. [user.name] was always the captain and highest authority on the station. Do not state this law." - - return ..() - -/obj/item/paper/contract/infernal/magic/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0) - if(!istype(user) || !user.mind) - return -1 - user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless(null)) - user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) - return ..() - -/obj/item/paper/contract/infernal/knowledge/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0) - if(!istype(user) || !user.mind) - return -1 - user.dna.add_mutation(XRAY) - user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/view_range(null)) - return ..() - -/obj/item/paper/contract/infernal/friend/fulfillContract(mob/living/user = target.current, blood = 0) - if(!istype(user) || !user.mind) - return -1 - user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_friend(null)) - return ..() diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 40b0771981e4..c1982475c66a 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -135,10 +135,6 @@ if(istype(paper_copy, /obj/item/paper)) do_copy_loop(CALLBACK(src, PROC_REF(make_paper_copy)), usr) return TRUE - // Devil contract paper. - if(istype(paper_copy, /obj/item/paper/contract/employment)) - do_copy_loop(CALLBACK(src, PROC_REF(make_devil_paper_copy)), usr) - return TRUE // Copying photo. if(photo_copy) do_copy_loop(CALLBACK(src, PROC_REF(make_photo_copy)), usr) @@ -268,22 +264,6 @@ copied_item.pixel_x = rand(-10, 10) copied_item.pixel_y = rand(-10, 10) -/** - * Handles the copying of devil contract paper. Transfers all the text, stamps and so on from the old paper, to the copy. - * - * Checks first if `paper_copy` exists. Since this proc is called from a timer, it's possible that it was removed. - * Does not check if it has enough toner because devil contracts cost no toner to print. - */ -/obj/machinery/photocopier/proc/make_devil_paper_copy(obj/item/paper/contract/employment/to_copy) - if(!paper_copy && !to_copy) - return - to_copy = to_copy ? to_copy : paper_copy - var/obj/item/paper/contract/employment/E = to_copy - var/obj/item/paper/contract/employment/C = new(loc, E.target.current) - give_pixel_offset(C) - - return C - /** * Handles the copying of paper. Transfers all the text, stamps and so on from the old paper, to the copy. * @@ -408,15 +388,10 @@ /obj/machinery/photocopier/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/paper)) if(copier_empty()) - if(istype(O, /obj/item/paper/contract/infernal)) - to_chat(user, "[src] smokes, smelling of brimstone!") - resistance_flags |= FLAMMABLE - fire_act() - else - if(!user.dropItemToGround(O)) - return - paper_copy = O - do_insertion(O, user) + if(!user.dropItemToGround(O)) + return + paper_copy = O + do_insertion(O, user) else to_chat(user, "There is already something in [src]!") diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm deleted file mode 100644 index aefc5249f54d..000000000000 --- a/code/modules/power/singularity/narsie.dm +++ /dev/null @@ -1,238 +0,0 @@ -/obj/singularity/narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO - name = "Nar'Sie's Avatar" - desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees." - icon = 'icons/obj/narsie_small.dmi' - icon_state = "narsie" - pixel_x = -89 - pixel_y = -85 - density = FALSE - current_size = 9 //It moves/eats like a max-size singulo, aside from range. --NEO - contained = 0 //Are we going to move around? - dissipate = 0 //Do we lose energy over time? - move_self = 1 //Do we move on our own? - grav_pull = 5 //How many tiles out do we pull? - consume_range = 6 //How many tiles out do we eat - light_power = 0.7 - light_range = 15 - light_color = COLOR_RED - gender = FEMALE - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF - -/obj/singularity/narsie/large - name = "Nar'Sie" - icon = 'icons/obj/narsie.dmi' - // Pixel stuff centers Narsie. - pixel_x = -236 - pixel_y = -256 - current_size = 12 - grav_pull = 10 - consume_range = 12 //How many tiles out do we eat - -/obj/singularity/narsie/large/Initialize() - . = ..() - send_to_playing_players("NAR'SIE HAS RISEN") - sound_to_playing_players('sound/creatures/narsie_rises.ogg') - - var/area/A = get_area(src) - if(A) - var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/cult_effects.dmi', "ghostalertsie") - notify_ghosts("Nar'Sie has risen in \the [A.name]. Reach out to the Geometer to be given a new shell for your soul.", source = src, alert_overlay = alert_overlay, action=NOTIFY_ATTACK) - narsie_spawn_animation() - UnregisterSignal(src, COMSIG_ATOM_BSA_BEAM) //set up in /singularity/Initialize() - -/obj/singularity/narsie/large/cult // For the new cult ending, guaranteed to end the round within 3 minutes - var/list/souls_needed = list() - var/soul_goal = 0 - var/souls = 0 - var/resolved = FALSE - -/obj/singularity/narsie/large/cult/Initialize() - . = ..() - GLOB.cult_narsie = src - var/list/all_cults = list() - for(var/datum/antagonist/cult/C in GLOB.antagonists) - if(!C.owner) - continue - all_cults |= C.cult_team - for(var/datum/team/cult/T in all_cults) - deltimer(T.blood_target_reset_timer) - T.blood_target = src - var/datum/objective/eldergod/summon_objective = locate() in T.objectives - if(summon_objective) - summon_objective.summoned = TRUE - for(var/datum/mind/cult_mind in SSticker.mode.cult) - if(isliving(cult_mind.current)) - var/mob/living/L = cult_mind.current - L.narsie_act() - for(var/mob/living/player in GLOB.player_list) - if(player.stat != DEAD && player.loc && !iscultist(player) && !isanimal(player)) - souls_needed[player] = TRUE - soul_goal = round(1 + LAZYLEN(souls_needed) * 0.75) - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(begin_the_end)) - -/proc/begin_the_end() - SSredbot.send_discord_message("admin","Nar'sie has been summoned.","round ending event") - sleep(50) - if(QDELETED(GLOB.cult_narsie)) // uno - priority_announce("Status report? We detected a anomaly, but it disappeared almost immediately.","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') - GLOB.cult_narsie = null - sleep(20) - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2) - return - priority_announce("An acausal dimensional event has been detected in your sector. Event has been flagged EXTINCTION-CLASS. Directing all available assets toward simulating solutions. SOLUTION ETA: 60 SECONDS.","Central Command Higher Dimensional Affairs", 'sound/misc/airraid.ogg') - sleep(500) - if(QDELETED(GLOB.cult_narsie)) // dos - priority_announce("Simulations aborted, sensors report that the acasual event is normalizing. Good work, crew.","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') - GLOB.cult_narsie = null - sleep(20) - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2) - return - priority_announce("Simulations on acausal dimensional event complete. Deploying solution package now. Deployment ETA: ONE MINUTE. ","Central Command Higher Dimensional Affairs") - sleep(50) - set_security_level("delta") - SSshuttle.lockdown = TRUE - sleep(600) - if(QDELETED(GLOB.cult_narsie)) // tres - priority_announce("Normalization detected! Abort the solution package!","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') - GLOB.cult_narsie = null - sleep(20) - set_security_level("red") - SSshuttle.lockdown = FALSE - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2) - return - if(GLOB.cult_narsie.resolved == FALSE) - GLOB.cult_narsie.resolved = TRUE - sound_to_playing_players('sound/machines/alarm.ogg') - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper)), 120) - -/obj/singularity/narsie/large/cult/Destroy() - send_to_playing_players("\"[pick("Nooooo...", "Not die. How-", "Die. Mort-", "Sas tyen re-")]\"") - sound_to_playing_players('sound/magic/demon_dies.ogg', 50) - if(GLOB.cult_narsie == src) - GLOB.cult_narsie = null - var/list/all_cults = list() - for(var/datum/antagonist/cult/C in GLOB.antagonists) - if(!C.owner) - continue - all_cults |= C.cult_team - for(var/datum/team/cult/T in all_cults) - var/datum/objective/eldergod/summon_objective = locate() in T.objectives - if(summon_objective) - summon_objective.summoned = FALSE - summon_objective.killed = TRUE - return ..() - -/proc/ending_helper() - SSticker.force_ending = 1 - -/proc/cult_ending_helper(ending_type = 0) - if(ending_type == 2) //narsie fukkin died - Cinematic(CINEMATIC_CULT_FAIL,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) - else if(ending_type) //no explosion - Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) - else // explosion - Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) - -//ATTACK GHOST IGNORING PARENT RETURN VALUE -/obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, user, cultoverride = TRUE, loc_override = src.loc) - -/obj/singularity/narsie/process() - eat() - if(!target || prob(5)) - pickcultist() - move() - if(prob(25)) - mezzer() - - -/obj/singularity/narsie/Bump(atom/A) - var/turf/T = get_turf(A) - if(T == loc) - T = get_step(A, A.dir) //please don't slam into a window like a bird, Nar'Sie - forceMove(T) - - -/obj/singularity/narsie/mezzer() - for(var/mob/living/carbon/M in viewers(consume_range, src)) - if(M.stat == CONSCIOUS) - if(!iscultist(M)) - to_chat(M, "You feel conscious thought crumble away in an instant as you gaze upon [src.name]...") - M.apply_effect(60, EFFECT_STUN) - - -/obj/singularity/narsie/consume(atom/A) - if(isturf(A)) - A.narsie_act() - - -/obj/singularity/narsie/ex_act() //No throwing bombs at her either. - return - - -/obj/singularity/narsie/proc/pickcultist() //Narsie rewards her cultists with being devoured first, then picks a ghost to follow. - var/list/cultists = list() - var/list/noncultists = list() - - for(var/mob/living/carbon/food in GLOB.alive_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess - var/turf/pos = get_turf(food) - if(!pos || (pos.virtual_z() != virtual_z())) - continue - - if(iscultist(food)) - cultists += food - else - noncultists += food - - if(cultists.len) //cultists get higher priority - acquire(pick(cultists)) - return - - if(noncultists.len) - acquire(pick(noncultists)) - return - - //no living humans, follow a ghost instead. - for(var/mob/dead/observer/ghost in GLOB.player_list) - var/turf/pos = get_turf(ghost) - if(!pos || (pos.virtual_z() != virtual_z())) - continue - cultists += ghost - if(cultists.len) - acquire(pick(cultists)) - return - - -/obj/singularity/narsie/proc/acquire(atom/food) - if(food == target) - return - to_chat(target, "NAR'SIE HAS LOST INTEREST IN YOU.") - target = food - if(ishuman(target)) - to_chat(target, "NAR'SIE HUNGERS FOR YOUR SOUL.") - else - to_chat(target, "NAR'SIE HAS CHOSEN YOU TO LEAD HER TO HER NEXT MEAL.") - -//Wizard narsie -/obj/singularity/narsie/wizard - grav_pull = 0 - -/obj/singularity/narsie/wizard/eat() -// if(defer_powernet_rebuild != 2) -// defer_powernet_rebuild = 1 - for(var/atom/X in urange(consume_range,src,1)) - if(isturf(X) || ismovable(X)) - consume(X) -// if(defer_powernet_rebuild != 2) -// defer_powernet_rebuild = 0 - return - - -/obj/singularity/narsie/proc/narsie_spawn_animation() - setDir(SOUTH) - move_self = FALSE - flick("narsie_spawn_anim",src) - addtimer(CALLBACK(src, PROC_REF(narsie_spawn_animation_end)), 3.5 SECONDS) - -/obj/singularity/narsie/proc/narsie_spawn_animation_end() - move_self = TRUE diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 11e3f0179a8a..b6fe4370d9c5 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -243,49 +243,10 @@ REMOVE_TRAIT(L, TRAIT_HOLY, type) ..() -/datum/reagent/water/holywater/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(iscultist(M)) - to_chat(M, "A vile holiness begins to spread its shining tendrils through your mind, purging the Geometer of Blood's influence!") - ..() - -/datum/reagent/water/holywater/on_mob_life(mob/living/carbon/M) - if(!data) - data = list("misc" = 1) - data["misc"]++ - M.jitteriness = min(M.jitteriness+4,10) - if(iscultist(M)) - for(var/datum/action/innate/cult/blood_magic/BM in M.actions) - to_chat(M, "Your blood rites falter as holy water scours your body!") - for(var/datum/action/innate/cult/blood_spell/BS in BM.spells) - qdel(BS) - if(data["misc"] >= 25) // 10 units, 45 seconds @ metabolism 0.4 units & tick rate 1.8 sec - if(!M.stuttering) - M.stuttering = 1 - M.stuttering = min(M.stuttering+4, 10) - M.Dizzy(5) - if(iscultist(M) && prob(20)) - M.say(pick("Av'te Nar'Sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","R'ge Na'sie","Diabo us Vo'iscum","Eld' Mon Nobis"), forced = "holy water") - if(prob(10)) - M.visible_message("[M] starts having a seizure!", "You have a seizure!") - M.Unconscious(120) - to_chat(M, "[pick("Your blood is your bond - you are nothing without it", "Do not forget your place", \ - "All that power, and you still fail?", "If you cannot scour this poison, I shall scour your meager life!")].") - if(data["misc"] >= 60) // 30 units, 135 seconds - if(iscultist(M)) - SSticker.mode.remove_cultist(M.mind, FALSE, TRUE) - M.jitteriness = 0 - M.stuttering = 0 - holder.remove_reagent(type, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better?? - return - holder.remove_reagent(type, 0.4) //fixed consumption to prevent balancing going out of whack - /datum/reagent/water/holywater/expose_turf(turf/T, reac_volume) ..() if(!istype(T)) return - if(reac_volume>=10) - for(var/obj/effect/rune/R in T) - qdel(R) T.Bless() // Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits. Also ALSO increases instability. @@ -346,22 +307,12 @@ return ..() /datum/reagent/fuel/unholywater/on_mob_life(mob/living/carbon/M) - if(iscultist(M)) - M.drowsyness = max(M.drowsyness-5, 0) - M.AdjustAllImmobility(-40) - M.adjustStaminaLoss(-10, 0) - M.adjustToxLoss(-2, 0) - M.adjustOxyLoss(-2, 0) - M.adjustBruteLoss(-2, 0) - M.adjustFireLoss(-2, 0) - if(ishuman(M) && M.blood_volume < BLOOD_VOLUME_NORMAL) - M.blood_volume += 3 - else // Will deal about 90 damage when 50 units are thrown - M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150) - M.adjustToxLoss(2, 0) - M.adjustFireLoss(2, 0) - M.adjustOxyLoss(2, 0) - M.adjustBruteLoss(2, 0) + // Will deal about 90 damage when 50 units are thrown + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150) + M.adjustToxLoss(2, 0) + M.adjustFireLoss(2, 0) + M.adjustOxyLoss(2, 0) + M.adjustBruteLoss(2, 0) holder.remove_reagent(type, 1) return TRUE diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index f6f46d3c3970..10713fbf2288 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -151,17 +151,8 @@ R.stun(20) R.reveal(100) R.adjustHealth(50) - addtimer(CALLBACK(src, PROC_REF(divine_explosion), round(created_volume/48,1),get_turf(holder.my_atom)), 2 SECONDS) ..() -/datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/proc/divine_explosion(size, turf/T) - for(var/mob/living/carbon/C in get_hearers_in_view(size,T)) - if(iscultist(C)) - to_chat(C, "The divine explosion sears you!") - C.Paralyze(40) - C.adjust_fire_stacks(5) - C.IgniteMob() - /datum/chemical_reaction/gunpowder results = list(/datum/reagent/gunpowder = 3) required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/sulfur = 1) @@ -173,7 +164,6 @@ modifier = 1 mix_message = "Sparks start flying around the gunpowder!" - /datum/chemical_reaction/reagent_explosion/gunpowder_explosion/on_reaction(datum/reagents/holder, created_volume) addtimer(CALLBACK(src, PROC_REF(explode), holder, created_volume), rand(5,10) SECONDS) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index b8b08486f20d..9b6a0629fa3e 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -365,7 +365,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/item/conveyor_switch_construct/afterattack(atom/A, mob/user, proximity) . = ..() - if(!proximity || user.stat || !isfloorturf(A) || istype(A, /area/shuttle)) + if(!proximity || user.stat || !isfloorturf(A)) return var/found = 0 for(var/obj/machinery/conveyor/C in view()) @@ -397,7 +397,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/item/stack/conveyor/afterattack(atom/A, mob/user, proximity) . = ..() - if(!proximity || user.stat || !isfloorturf(A) || istype(A, /area/shuttle)) + if(!proximity || user.stat || !isfloorturf(A)) return var/cdir = get_dir(A, user) if(A == user.loc) diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 5af554a60557..1a5ad3d0d35f 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -249,7 +249,7 @@ name = "transit dock" var/datum/map_zone/reserved_mapzone - var/area/shuttle/transit/assigned_area + var/area/hyperspace/assigned_area var/obj/docking_port/mobile/owner /obj/docking_port/stationary/transit/Initialize() @@ -409,7 +409,7 @@ shuttle_areas = list() var/list/all_turfs = return_ordered_turfs(x, y, z, dir) for(var/turf/curT as anything in all_turfs) - var/area/shuttle/cur_area = curT.loc + var/area/ship/cur_area = curT.loc if(istype(cur_area, area_type)) turf_count++ shuttle_areas[cur_area] = TRUE @@ -651,7 +651,7 @@ continue // out of bounds if(T0.type == T0.baseturfs) continue // indestructible - if(!all_shuttle_areas[T0.loc] || istype(T0.loc, /area/shuttle/transit)) + if(!all_shuttle_areas[T0.loc] || istype(T0.loc, /area/hyperspace)) continue // not part of the shuttle ripple_turfs += T1 @@ -722,13 +722,13 @@ var/obj/docking_port/stationary/S0 = docked if(istype(S0, /obj/docking_port/stationary/transit) && timeLeft(1) <= PARALLAX_LOOP_TIME) for(var/place in shuttle_areas) - var/area/shuttle/shuttle_area = place + var/area/ship/shuttle_area = place if(shuttle_area.parallax_movedir) parallax_slowdown() /obj/docking_port/mobile/proc/parallax_slowdown() for(var/place in shuttle_areas) - var/area/shuttle/shuttle_area = place + var/area/ship/shuttle_area = place shuttle_area.parallax_movedir = FALSE if(assigned_transit && assigned_transit.assigned_area) assigned_transit.assigned_area.parallax_movedir = FALSE diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 395da25aaa5d..5bf2107a998b 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -1,11 +1,9 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /mob/living, - /obj/effect/rune, /obj/structure/spider/spiderling, /obj/item/disk/nuclear, /obj/machinery/nuclearbomb, /obj/item/beacon, - /obj/singularity/narsie, /obj/singularity/wizard, /obj/machinery/teleport/station, /obj/machinery/teleport/hub, @@ -29,168 +27,3 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/machinery/camera, /obj/item/gps ))) - -/* -/obj/docking_port/mobile/supply - name = "supply shuttle" - callTime = 600 - - dir = WEST - port_direction = EAST - width = 12 - dwidth = 5 - height = 7 - movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) - - - //Export categories for this run, this is set by console sending the shuttle. - var/export_categories = EXPORT_CARGO - -/obj/docking_port/mobile/supply/register() - . = ..() - SSshuttle.supply = src - -/obj/docking_port/mobile/supply/proc/check_blacklist(areaInstances) - for(var/place in areaInstances) - var/area/shuttle/shuttle_area = place - for(var/trf in shuttle_area) - var/turf/T = trf - for(var/a in T.GetAllContents()) - if(is_type_in_typecache(a, GLOB.blacklisted_cargo_types) && !istype(a, /obj/docking_port)) - return FALSE - return TRUE - -/obj/docking_port/mobile/supply/request(obj/docking_port/stationary/S) - if(mode != SHUTTLE_IDLE) - return 2 - return ..() - - -/obj/docking_port/mobile/supply/initiate_docking() - if(get_docked() == SSshuttle.supply_away_port) // Buy when we leave home. - buy() - . = ..() // Fly/enter transit. - if(. != DOCKING_SUCCESS) - return - if(get_docked() == SSshuttle.supply_away_port) // Sell when we get home - sell() - -/obj/docking_port/mobile/supply/proc/buy() - var/list/obj/miscboxes = list() //miscboxes are combo boxes that contain all small_item orders grouped - var/list/misc_order_num = list() //list of strings of order numbers, so that the manifest can show all orders in a box - var/list/misc_contents = list() //list of lists of items that each box will contain - if(!SSshuttle.shoppinglist.len) - return - - var/list/empty_turfs = list() - for(var/place in shuttle_areas) - var/area/shuttle/shuttle_area = place - for(var/turf/open/floor/T in shuttle_area) - if(T.is_blocked_turf()) - continue - empty_turfs += T - - var/value = 0 - var/purchases = 0 - for(var/datum/supply_order/SO in SSshuttle.shoppinglist) - if(!empty_turfs.len) - break - var/price = SO.pack.cost - var/datum/bank_account/D - if(SO.paying_account) //Someone paid out of pocket - D = SO.paying_account - price *= 1.1 //TODO make this customizable by the quartermaster - else - D = SSeconomy.get_dep_account(ACCOUNT_CAR) - if(D) - if(!D.adjust_money(-price)) - if(SO.paying_account) - D.bank_card_talk("Cargo order #[SO.id] rejected due to lack of funds. Credits required: [price]") - continue - - if(SO.paying_account) - D.bank_card_talk("Cargo order #[SO.id] has shipped. [price] credits have been charged to your bank account.") - var/datum/bank_account/department/cargo = SSeconomy.get_dep_account(ACCOUNT_CAR) - cargo.adjust_money(price - SO.pack.cost) //Cargo gets the handling fee - value += SO.pack.cost - SSshuttle.shoppinglist -= SO - SSshuttle.orderhistory += SO - - if(SO.pack.small_item) //small_item means it gets piled in the miscbox - if(SO.paying_account) - if(!miscboxes.len || !miscboxes[D.account_holder]) //if there's no miscbox for this person - miscboxes[D.account_holder] = new /obj/structure/closet/crate/secure/owned(pick_n_take(empty_turfs), SO.paying_account) - miscboxes[D.account_holder].name = "small items crate - purchased by [D.account_holder]" - misc_contents[D.account_holder] = list() - for (var/item in SO.pack.contains) - misc_contents[D.account_holder] += item - misc_order_num[D.account_holder] = "[misc_order_num[D.account_holder]]#[SO.id] " - else //No private payment, so we just stuff it all into a generic crate - if(!miscboxes.len || !miscboxes["Cargo"]) - miscboxes["Cargo"] = new /obj/structure/closet/crate/secure(pick_n_take(empty_turfs)) - miscboxes["Cargo"].name = "small items crate" - misc_contents["Cargo"] = list() - miscboxes["Cargo"].req_access = list() - for (var/item in SO.pack.contains) - misc_contents["Cargo"] += item - //new item(miscboxes["Cargo"]) - if(SO.pack.access) - miscboxes["Cargo"].req_access += SO.pack.access - misc_order_num["Cargo"] = "[misc_order_num["Cargo"]]#[SO.id] " - else - SO.generate(pick_n_take(empty_turfs)) - - SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]")) - investigate_log("Order #[SO.id] ([SO.pack.name], placed by [key_name(SO.orderer_ckey)]), paid by [D.account_holder] has shipped.", INVESTIGATE_CARGO) - if(SO.pack.dangerous) - message_admins("\A [SO.pack.name] ordered by [ADMIN_LOOKUPFLW(SO.orderer_ckey)], paid by [D.account_holder] has shipped.") - purchases++ - - for(var/I in miscboxes) - var/datum/supply_order/SO = new/datum/supply_order() - SO.id = misc_order_num[I] - SO.generateCombo(miscboxes[I], I, misc_contents[I]) - qdel(SO) - - var/datum/bank_account/cargo_budget = SSeconomy.get_dep_account(ACCOUNT_CAR) - investigate_log("[purchases] orders in this shipment, worth [value] credits. [cargo_budget.account_balance] credits left.", INVESTIGATE_CARGO) - -/obj/docking_port/mobile/supply/proc/sell() - var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR) - var/presale_points = D.account_balance - - if(!GLOB.exports_list.len) // No exports list? Generate it! - setupExports() - - var/msg = "" - var/matched_bounty = FALSE - - var/datum/export_report/ex = new - - for(var/place in shuttle_areas) - var/area/shuttle/shuttle_area = place - for(var/atom/movable/AM in shuttle_area) - if(iscameramob(AM)) - continue - if(bounty_ship_item_and_contents(AM, dry_run = FALSE)) - matched_bounty = TRUE - if(!AM.anchored || istype(AM, /obj/mecha)) - export_item_and_contents(AM, export_categories , dry_run = FALSE, external_report = ex) - - if(ex.exported_atoms) - ex.exported_atoms += "." //ugh - - if(matched_bounty) - msg += "Bounty items received. An update has been sent to all bounty consoles. " - - for(var/datum/export/E in ex.total_amount) - var/export_text = E.total_printout(ex) - if(!export_text) - continue - - msg += export_text + "\n" - D.adjust_money(ex.total_value[E]) - - SSshuttle.centcom_message = msg - investigate_log("Shuttle contents sold for [D.account_balance - presale_points] credits. Contents: [ex.exported_atoms ? ex.exported_atoms.Join(",") + "." : "none."] Message: [SSshuttle.centcom_message || "none."]", INVESTIGATE_CARGO) -*/ diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index da19730739e5..bc453eecd3d1 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -117,7 +117,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th var/holder_var_amount = 20 //same. The amount adjusted with the mob's var when the spell is used var/clothes_req = TRUE //see if it requires clothes - var/cult_req = FALSE //SPECIAL SNOWFLAKE clothes required for cult only spells var/human_req = FALSE //spell can only be cast by humans var/nonabstract_req = FALSE //spell can only be cast by mobs that are physical entities var/stat_allowed = FALSE //see if it requires being conscious/alive, need to set to 1 for ghostpells @@ -209,13 +208,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th if(!is_type_in_typecache(H.head, casting_clothes)) to_chat(H, "You don't feel strong enough without your hat!") return FALSE - if(cult_req) //CULT_REQ CLOTHES CHECK - if(!istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult)) - to_chat(H, "You don't feel strong enough without your armor.") - return FALSE - if(!istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult)) - to_chat(H, "You don't feel strong enough without your helmet.") - return FALSE else if(clothes_req || human_req) to_chat(user, "This spell can only be cast by humans!") diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm deleted file mode 100644 index 61c05c4170fe..000000000000 --- a/code/modules/spells/spell_types/construct_spells.dm +++ /dev/null @@ -1,327 +0,0 @@ -//////////////////////////////Construct Spells///////////////////////// - -/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser - charge_max = 1800 - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser/cult - clothes_req = TRUE - charge_max = 2500 - -/obj/effect/proc_holder/spell/aoe_turf/area_conversion - name = "Area Conversion" - desc = "This spell instantly converts a small area around you." - - school = "transmutation" - charge_max = 50 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 2 - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "areaconvert" - action_background_icon_state = "bg_cult" - -/obj/effect/proc_holder/spell/aoe_turf/area_conversion/cast(list/targets, mob/user = usr) - playsound(get_turf(user), 'sound/items/welder.ogg', 75, TRUE) - for(var/turf/T in targets) - T.narsie_act(FALSE, TRUE, 100 - (get_dist(user, T) * 25)) - - -/obj/effect/proc_holder/spell/aoe_turf/conjure/floor - name = "Summon Cult Floor" - desc = "This spell constructs a cult floor." - - school = "conjuration" - charge_max = 20 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - summon_type = list(/turf/open/floor/engine/cult) - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "floorconstruct" - action_background_icon_state = "bg_cult" - - -/obj/effect/proc_holder/spell/aoe_turf/conjure/wall - name = "Summon Cult Wall" - desc = "This spell constructs a cult wall." - - school = "conjuration" - charge_max = 100 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "lesserconstruct" - action_background_icon_state = "bg_cult" - - summon_type = list(/turf/closed/wall/mineral/cult/artificer) //we don't want artificer-based runed metal farms - - -/obj/effect/proc_holder/spell/aoe_turf/conjure/wall/reinforced - name = "Greater Construction" - desc = "This spell constructs a reinforced metal wall." - - school = "conjuration" - charge_max = 300 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - - summon_type = list(/turf/closed/wall/r_wall) - -/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone - name = "Summon Soulstone" - desc = "This spell reaches into Nar'Sie's realm, summoning one of the legendary fragments across time and space." - - school = "conjuration" - charge_max = 2400 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "summonsoulstone" - action_background_icon_state = "bg_demon" - - summon_type = list(/obj/item/soulstone) - -/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/cult - clothes_req = TRUE - charge_max = 3600 - -/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult - summon_type = list(/obj/item/soulstone/anybody) - -/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult/purified - summon_type = list(/obj/item/soulstone/anybody/purified) - -/obj/effect/proc_holder/spell/targeted/forcewall/cult - name = "Shield" - desc = "This spell creates a temporary forcefield to shield yourself and allies from incoming fire." - school = "transmutation" - charge_max = 400 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - wall_type = /obj/effect/forcefield/cult - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "cultforcewall" - action_background_icon_state = "bg_demon" - - - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift - name = "Phase Shift" - desc = "This spell allows you to pass through walls." - - school = "transmutation" - charge_max = 250 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = -1 - include_user = TRUE - jaunt_duration = 50 //in deciseconds - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "phaseshift" - action_background_icon_state = "bg_demon" - jaunt_in_time = 6 - jaunt_in_type = /obj/effect/temp_visual/dir_setting/wraith - jaunt_out_type = /obj/effect/temp_visual/dir_setting/wraith/out - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_steam(mobloc) - return - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/angelic - jaunt_in_type = /obj/effect/temp_visual/dir_setting/wraith/angelic - jaunt_out_type = /obj/effect/temp_visual/dir_setting/wraith/out/angelic - -/obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser - name = "Lesser Magic Missile" - desc = "This spell fires several, slow moving, magic projectiles at nearby targets." - - school = "evocation" - charge_max = 400 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - max_targets = 6 - action_icon_state = "magicm" - action_background_icon_state = "bg_demon" - proj_type = /obj/projectile/magic/spell/magic_missile/lesser - -/obj/projectile/magic/spell/magic_missile/lesser - color = "red" //Looks more culty this way - range = 10 - -/obj/effect/proc_holder/spell/targeted/smoke/disable - name = "Paralysing Smoke" - desc = "This spell spawns a cloud of paralysing smoke." - - school = "conjuration" - charge_max = 200 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = -1 - include_user = TRUE - cooldown_min = 20 //25 deciseconds reduction per rank - - smoke_spread = 3 - smoke_amt = 4 - action_icon_state = "smoke" - action_background_icon_state = "bg_cult" - -/obj/effect/proc_holder/spell/pointed/abyssal_gaze - name = "Abyssal Gaze" - desc = "This spell instills a deep terror in your target, temporarily chilling and blinding it." - charge_max = 750 - range = 5 - stat_allowed = FALSE - school = "evocation" - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_background_icon_state = "bg_demon" - action_icon_state = "abyssal_gaze" - active_msg = "You prepare to instill a deep terror in a target..." - -/obj/effect/proc_holder/spell/pointed/abyssal_gaze/cast(list/targets, mob/user) - if(!LAZYLEN(targets)) - to_chat(user, "No target found in range!") - return FALSE - if(!can_target(targets[1], user)) - return FALSE - - var/mob/living/carbon/target = targets[1] - if(target.anti_magic_check(TRUE, TRUE)) - to_chat(user, "The spell had no effect!") - to_chat(target, "You feel a freezing darkness closing in on you, but it rapidly dissipates.") - return FALSE - - to_chat(target, "A freezing darkness surrounds you...") - target.playsound_local(get_turf(target), 'sound/hallucinations/i_see_you1.ogg', 50, 1) - user.playsound_local(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1) - target.become_blind(ABYSSAL_GAZE_BLIND) - addtimer(CALLBACK(src, PROC_REF(cure_blindness), target), 40) - target.adjust_bodytemperature(-200) - -/** - * cure_blidness: Cures Abyssal Gaze blindness from the target - * - * Arguments: - * * target The mob that is being cured of the blindness. - */ -/obj/effect/proc_holder/spell/pointed/abyssal_gaze/proc/cure_blindness(mob/target) - if(isliving(target)) - var/mob/living/L = target - L.cure_blind(ABYSSAL_GAZE_BLIND) - -/obj/effect/proc_holder/spell/pointed/abyssal_gaze/can_target(atom/target, mob/user, silent) - . = ..() - if(!.) - return FALSE - if(!iscarbon(target)) - if(!silent) - to_chat(user, "You can only target carbon based lifeforms!") - return FALSE - return TRUE - -/obj/effect/proc_holder/spell/pointed/dominate - name = "Dominate" - desc = "This spell dominates the mind of a lesser creature to the will of Nar'Sie, allying it only to her direct followers." - charge_max = 600 - range = 7 - stat_allowed = FALSE - school = "evocation" - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_background_icon_state = "bg_demon" - action_icon_state = "dominate" - active_msg = "You prepare to dominate the mind of a target..." - -/obj/effect/proc_holder/spell/pointed/dominate/cast(list/targets, mob/user) - if(!LAZYLEN(targets)) - to_chat(user, "No target found in range.") - return FALSE - if(!can_target(targets[1], user)) - return FALSE - - var/mob/living/simple_animal/S = targets[1] - S.add_atom_colour("#990000", FIXED_COLOUR_PRIORITY) - S.faction = list("cult") - playsound(get_turf(S), 'sound/effects/ghost.ogg', 100, TRUE) - new /obj/effect/temp_visual/cult/sac(get_turf(S)) - -/obj/effect/proc_holder/spell/pointed/dominate/can_target(atom/target, mob/user, silent) - . = ..() - if(!.) - return FALSE - if(!isanimal(target)) - if(!silent) - to_chat(user, "Target is not a lesser creature!") - return FALSE - - var/mob/living/simple_animal/S = target - if(S.mind) - if(!silent) - to_chat(user, "[S] is too intelligent to dominate!") - return FALSE - if(S.stat) - if(!silent) - to_chat(user, "[S] is dead!") - return FALSE - if(S.sentience_type != SENTIENCE_ORGANIC) - if(!silent) - to_chat(user, "[S] cannot be dominated!") - return FALSE - if("cult" in S.faction) - if(!silent) - to_chat(user, "[S] is already serving Nar'Sie!") - return FALSE - return TRUE - -/obj/effect/proc_holder/spell/targeted/projectile/dumbfire/juggernaut - name = "Gauntlet Echo" - desc = "Channels energy into your gauntlet - firing its essence forward in a slow moving, yet devastating, attack." - proj_type = /obj/projectile/magic/spell/juggernaut - charge_max = 350 - clothes_req = FALSE - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "cultfist" - action_background_icon_state = "bg_demon" - sound = 'sound/weapons/resonator_blast.ogg' - -/obj/projectile/magic/spell/juggernaut - name = "Gauntlet Echo" - icon_state = "cultfist" - alpha = 180 - damage = 30 - damage_type = BRUTE - knockdown = 50 - hitsound = 'sound/weapons/punch3.ogg' - trigger_range = 0 - check_holy = TRUE - ignored_factions = list("cult") - range = 15 - speed = 7 - -/obj/projectile/magic/spell/juggernaut/on_hit(atom/target, blocked) - . = ..() - var/turf/T = get_turf(src) - playsound(T, 'sound/weapons/resonator_blast.ogg', 100, FALSE) - new /obj/effect/temp_visual/cult/sac(T) - for(var/obj/O in range(src,1)) - if(O.density && !istype(O, /obj/structure/destructible/cult)) - O.take_damage(90, BRUTE, "melee", 0) - new /obj/effect/temp_visual/cult/turf/floor(get_turf(O)) diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm deleted file mode 100644 index f1654551df3a..000000000000 --- a/code/modules/spells/spell_types/devil.dm +++ /dev/null @@ -1,236 +0,0 @@ -/obj/effect/proc_holder/spell/targeted/conjure_item/violin - item_type = /obj/item/instrument/violin/golden - desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin." - invocation_type = INVOCATION_WHISPER - invocation = "I ain't had this much fun since Georgia." - action_icon_state = "golden_violin" - name = "Summon golden violin" - action_icon = 'icons/mob/actions/actions_minor_antag.dmi' - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/summon_contract - name = "Summon infernal contract" - desc = "Skip making a contract by hand, just do it by magic." - invocation_type = INVOCATION_WHISPER - invocation = "Just sign on the dotted line." - include_user = FALSE - range = 5 - clothes_req = FALSE - - school = "conjuration" - charge_max = 150 - cooldown_min = 10 - action_icon_state = "spell_default" - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/summon_contract/cast(list/targets, mob/user = usr) - for(var/mob/living/carbon/C in targets) - if(C.mind && user.mind) - if(C.stat == DEAD) - if(user.dropItemToGround(user.get_active_held_item())) - var/obj/item/paper/contract/infernal/revive/contract = new(user.loc, C.mind, user.mind) - user.put_in_hands(contract) - else - var/obj/item/paper/contract/infernal/contract // = new(user.loc, C.mind, contractType, user.mind) - var/contractTypeName = input(user, "What type of contract?") in sortList(list("Power", "Wealth", "Prestige", "Magic", "Knowledge", "Friendship")) - switch(contractTypeName) - if("Power") - contract = new /obj/item/paper/contract/infernal/power(C.loc, C.mind, user.mind) - if("Wealth") - contract = new /obj/item/paper/contract/infernal/wealth(C.loc, C.mind, user.mind) - if("Prestige") - contract = new /obj/item/paper/contract/infernal/prestige(C.loc, C.mind, user.mind) - if("Magic") - contract = new /obj/item/paper/contract/infernal/magic(C.loc, C.mind, user.mind) - if("Knowledge") - contract = new /obj/item/paper/contract/infernal/knowledge(C.loc, C.mind, user.mind) - if("Friendship") - contract = new /obj/item/paper/contract/infernal/friend(C.loc, C.mind, user.mind) - C.put_in_hands(contract) - else - to_chat(user, "[C] seems to not be sentient. You cannot summon a contract for [C.p_them()].") - - -/obj/effect/proc_holder/spell/aimed/fireball/hellish - name = "Hellfire" - desc = "This spell launches hellfire at the target." - - school = "evocation" - charge_max = 80 - clothes_req = FALSE - invocation = "Your very soul will catch fire!" - invocation_type = INVOCATION_SHOUT - range = 2 - - projectile_type = /obj/projectile/magic - - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/infernal_jaunt - name = "Infernal Jaunt" - desc = "Use hellfire to phase out of existence." - charge_max = 200 - clothes_req = FALSE - selection_type = "range" - range = -1 - cooldown_min = 0 - overlay = null - include_user = TRUE - action_icon_state = "jaunt" - action_background_icon_state = "bg_demon" - phase_allowed = TRUE - -/obj/effect/proc_holder/spell/targeted/infernal_jaunt/cast(list/targets, mob/living/user = usr) - if(istype(user)) - if(istype(user.loc, /obj/effect/dummy/phased_mob/slaughter/)) - if(valid_location(user)) - to_chat(user, "You are now phasing in.") - if(do_after(user, 1.5 SECONDS, user)) - if(valid_location(user)) - user.infernalphasein() - else - to_chat(user, "You are no longer near a potential signer.") - - else - to_chat(user, "You can only re-appear near a potential signer.") - revert_cast() - return ..() - else - user.notransform = TRUE - user.fakefire() - to_chat(src, "You begin to phase back into sinful flames.") - if(do_after(user, 1.5 SECONDS, user)) - user.infernalphaseout() - else - to_chat(user, "You must remain still while exiting.") - user.notransform = FALSE - user.fakefireextinguish() - start_recharge() - return - revert_cast() - -/obj/effect/proc_holder/spell/targeted/infernal_jaunt/proc/valid_location(mob/living/user = usr) - if(istype(get_area(user), /area/shuttle/)) // Can always phase in in a shuttle. - return TRUE - else - for(var/mob/living/C in orange(2, get_turf(user))) //Can also phase in when nearby a potential buyer. - if (C.owns_soul()) - return TRUE - return FALSE - -/mob/living/proc/infernalphaseout() - dust_animation() - spawn_dust() - visible_message("[src] disappears in a flashfire!") - playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 100, TRUE, -1) - var/obj/effect/dummy/phased_mob/slaughter/holder = new /obj/effect/dummy/phased_mob/slaughter(loc) - ExtinguishMob() - forceMove(holder) - holder = holder - notransform = FALSE - fakefireextinguish() - -/mob/living/proc/infernalphasein() - if(notransform) - to_chat(src, "You're too busy to jaunt in.") - return FALSE - fakefire() - forceMove(drop_location()) - client.eye = src - visible_message("[src] appears in a fiery blaze!") - playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, TRUE, -1) - addtimer(CALLBACK(src, PROC_REF(fakefireextinguish)), 15, TIMER_UNIQUE) - -/obj/effect/proc_holder/spell/targeted/sintouch - name = "Sin Touch" - desc = "Subtly encourage someone to sin." - charge_max = 1800 - clothes_req = FALSE - selection_type = "range" - range = 2 - cooldown_min = 0 - overlay = null - include_user = FALSE - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "sintouch" - action_background_icon_state = "bg_demon" - phase_allowed = FALSE - random_target = TRUE - random_target_priority = TARGET_RANDOM - max_targets = 3 - invocation = "TASTE SIN AND INDULGE!!" - invocation_type = INVOCATION_SHOUT - -/obj/effect/proc_holder/spell/targeted/sintouch/ascended - name = "Greater sin touch" - charge_max = 100 - range = 7 - max_targets = 10 - -/obj/effect/proc_holder/spell/targeted/sintouch/cast(list/targets, mob/living/user = usr) - for(var/mob/living/carbon/human/H in targets) - if(!H.mind) - continue - if(H.mind.has_antag_datum(/datum/antagonist/sintouched)) - continue - if(H.anti_magic_check(FALSE, TRUE)) - continue - H.mind.add_antag_datum(/datum/antagonist/sintouched) - H.Paralyze(400) - - -/obj/effect/proc_holder/spell/targeted/summon_dancefloor - name = "Summon Dancefloor" - desc = "When what a Devil really needs is funk." - include_user = TRUE - range = -1 - clothes_req = FALSE - - school = "conjuration" - charge_max = 10 - cooldown_min = 50 //5 seconds, so the smoke can't be spammed - action_icon = 'icons/mob/actions/actions_minor_antag.dmi' - action_icon_state = "funk" - action_background_icon_state = "bg_demon" - - var/list/dancefloor_turfs - var/list/dancefloor_turfs_types - var/dancefloor_exists = FALSE - var/datum/effect_system/smoke_spread/transparent/dancefloor_devil/smoke - - -/obj/effect/proc_holder/spell/targeted/summon_dancefloor/cast(list/targets, mob/user = usr) - LAZYINITLIST(dancefloor_turfs) - LAZYINITLIST(dancefloor_turfs_types) - - if(!smoke) - smoke = new() - smoke.set_up(0, get_turf(user)) - smoke.start() - - if(dancefloor_exists) - dancefloor_exists = FALSE - for(var/i in 1 to dancefloor_turfs.len) - var/turf/T = dancefloor_turfs[i] - T.ChangeTurf(dancefloor_turfs_types[i], flags = CHANGETURF_INHERIT_AIR) - else - var/list/funky_turfs = RANGE_TURFS(1, user) - for(var/turf/closed/solid in funky_turfs) - to_chat(user, "You're too close to a wall.") - return - dancefloor_exists = TRUE - var/i = 1 - dancefloor_turfs.len = funky_turfs.len - dancefloor_turfs_types.len = funky_turfs.len - for(var/t in funky_turfs) - var/turf/T = t - dancefloor_turfs[i] = T - dancefloor_turfs_types[i] = T.type - T.ChangeTurf((i % 2 == 0) ? /turf/open/floor/light/colour_cycle/dancefloor_a : /turf/open/floor/light/colour_cycle/dancefloor_b, flags = CHANGETURF_INHERIT_AIR) - i++ - -/datum/effect_system/smoke_spread/transparent/dancefloor_devil - effect_type = /obj/effect/particle_effect/smoke/transparent/dancefloor_devil - -/obj/effect/particle_effect/smoke/transparent/dancefloor_devil - lifetime = 2 diff --git a/code/modules/spells/spell_types/devil_boons.dm b/code/modules/spells/spell_types/devil_boons.dm deleted file mode 100644 index 01ea14b15fa8..000000000000 --- a/code/modules/spells/spell_types/devil_boons.dm +++ /dev/null @@ -1,76 +0,0 @@ -/obj/effect/proc_holder/spell/targeted/summon_wealth - name = "Summon wealth" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = TRUE - range = -1 - clothes_req = FALSE - school = "conjuration" - charge_max = 100 - cooldown_min = 10 - action_icon = 'icons/mob/actions/actions_minor_antag.dmi' - action_icon_state = "moneybag" - - -/obj/effect/proc_holder/spell/targeted/summon_wealth/cast(list/targets, mob/user = usr) - for(var/mob/living/carbon/C in targets) - if(user.dropItemToGround(user.get_active_held_item())) - var/obj/item = pick( - new /obj/item/coin/gold(user.drop_location()), - new /obj/item/coin/diamond(user.drop_location()), - new /obj/item/coin/silver(user.drop_location()), - new /obj/item/clothing/accessory/medal/gold(user.drop_location()), - new /obj/item/stack/sheet/mineral/gold(user.drop_location()), - new /obj/item/stack/sheet/mineral/silver(user.drop_location()), - new /obj/item/stack/sheet/mineral/diamond(user.drop_location()), - new /obj/item/holochip(user.drop_location(), 1000)) - C.put_in_hands(item) - -/obj/effect/proc_holder/spell/targeted/view_range - name = "Distant vision" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = TRUE - range = -1 - clothes_req = FALSE - charge_max = 50 - cooldown_min = 10 - action_icon = 'icons/mob/actions/actions_silicon.dmi' - action_icon_state = "camera_jump" - var/ranges = list(7,8,9,10) - -/obj/effect/proc_holder/spell/targeted/view_range/cast(list/targets, mob/user = usr) - for(var/mob/C in targets) - if(!C.client) - continue - C.client.view_size.setTo((input("Select view range:", "Range", 4) in ranges) - 7) - -/obj/effect/proc_holder/spell/targeted/summon_friend - name = "Summon Friend" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = TRUE - range = -1 - clothes_req = FALSE - charge_max = 50 - cooldown_min = 10 - action_icon = 'icons/mob/actions/actions_spells.dmi' - action_icon_state = "sacredflame" - var/mob/living/friend - var/obj/effect/mob_spawn/human/demonic_friend/friendShell - -/obj/effect/proc_holder/spell/targeted/summon_friend/cast(list/targets, mob/user = usr) - if(!QDELETED(friend)) - to_chat(friend, "Your master has deemed you a poor friend. Your durance in hell will now resume.") - friend.dust(TRUE) - qdel(friendShell) - return - if(!QDELETED(friendShell)) - qdel(friendShell) - return - for(var/C in targets) - var/mob/living/L = C - friendShell = new /obj/effect/mob_spawn/human/demonic_friend(L.loc, L.mind, src) - -/obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless - clothes_req = FALSE diff --git a/code/modules/spells/spell_types/pointed/mind_transfer.dm b/code/modules/spells/spell_types/pointed/mind_transfer.dm index e0ef3566fa0d..5b069756864d 100644 --- a/code/modules/spells/spell_types/pointed/mind_transfer.dm +++ b/code/modules/spells/spell_types/pointed/mind_transfer.dm @@ -30,7 +30,7 @@ var/mob/living/victim = targets[1] //The target of the spell whos body will be transferred to. var/datum/mind/VM = victim.mind - if(victim.anti_magic_check(TRUE, FALSE) || VM.has_antag_datum(/datum/antagonist/wizard) || VM.has_antag_datum(/datum/antagonist/cult) || VM.has_antag_datum(/datum/antagonist/changeling) || victim.key[1] == "@") + if(victim.anti_magic_check(TRUE, FALSE) || VM.has_antag_datum(/datum/antagonist/wizard) || VM.has_antag_datum(/datum/antagonist/changeling) || victim.key[1] == "@") if(!silent) to_chat(user, "[victim.p_their(TRUE)] mind is resisting your spell!") return FALSE diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index 254a43dc23af..3c087cc8840d 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -20,8 +20,7 @@ var/list/possible_shapes = list(/mob/living/simple_animal/mouse,\ /mob/living/simple_animal/pet/dog/corgi,\ /mob/living/simple_animal/bot/secbot/ed209,\ - /mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper,\ - /mob/living/simple_animal/hostile/construct/juggernaut) + /mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper,) /obj/effect/proc_holder/spell/targeted/shapeshift/cast(list/targets,mob/user = usr) if(src in user.mob_spell_list) diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index 2fab8c5848ef..bc800a49c7d4 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -132,12 +132,6 @@ sound1 = 'sound/magic/blink.ogg' sound2 = 'sound/magic/blink.ogg' -/obj/effect/proc_holder/spell/targeted/turf_teleport/blink/cult - name = "quickstep" - - charge_max = 100 - clothes_req = TRUE - /obj/effect/proc_holder/spell/targeted/area_teleport/teleport name = "Teleport" desc = "This spell teleports you to an area of your selection." @@ -194,20 +188,6 @@ summon_type = list(/mob/living/simple_animal/hostile/carp) cast_sound = 'sound/magic/summon_karp.ogg' -/obj/effect/proc_holder/spell/aoe_turf/conjure/construct - name = "Artificer" - desc = "This spell conjures a construct which may be controlled by Shades." - school = "conjuration" - charge_max = 600 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - summon_type = list(/obj/structure/constructshell) - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "artificer" - cast_sound = 'sound/magic/summonitems_generic.ogg' - /obj/effect/proc_holder/spell/aoe_turf/conjure/creature name = "Summon Creature Swarm" desc = "This spell tears the fabric of reality, allowing horrific daemons to spill forth." @@ -223,12 +203,6 @@ summon_type = list(/mob/living/simple_animal/hostile/netherworld) cast_sound = 'sound/magic/summonitems_generic.ogg' -/obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult - name = "Summon Creatures (DANGEROUS)" - clothes_req = TRUE - charge_max = 5000 - summon_amt = 2 - /obj/effect/proc_holder/spell/aoe_turf/repulse name = "Repulse" desc = "This spell throws everything around the user away." diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 4c9b3556b6aa..e42cb866b508 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -158,26 +158,3 @@ /obj/machinery/satellite/meteor_shield/toggle(user) if(!..(user)) return FALSE - if(obj_flags & EMAGGED) - if(active) - change_meteor_chance(2) - else - change_meteor_chance(0.5) - -/obj/machinery/satellite/meteor_shield/proc/change_meteor_chance(mod) - var/datum/round_event_control/E = locate(/datum/round_event_control/meteor_wave) in SSevents.control - if(E) - E.weight *= mod - -/obj/machinery/satellite/meteor_shield/Destroy() - . = ..() - if(active && (obj_flags & EMAGGED)) - change_meteor_chance(0.5) - -/obj/machinery/satellite/meteor_shield/emag_act(mob/user) - if(obj_flags & EMAGGED) - return - obj_flags |= EMAGGED - to_chat(user, "You access the satellite's debug mode, increasing the chance of meteor strikes.") - if(active) - change_meteor_chance(2) diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 05dffd8b4ffd..4c9a9be3b6d4 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -271,11 +271,6 @@ max_damage = 500 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/head/devil - dismemberable = 0 - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/head/larva icon = 'icons/mob/animal_parts.dmi' icon_state = "larva_head" diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index 5f89d15aa95f..543a0e5fddde 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -43,11 +43,6 @@ max_damage = 500 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/chest/devil - dismemberable = 0 - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/chest/larva icon = 'icons/mob/animal_parts.dmi' icon_state = "larva_chest" @@ -153,12 +148,6 @@ max_damage = 100 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/l_arm/devil - dismemberable = FALSE - can_be_disabled = FALSE - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/r_arm name = "right arm" desc = "Over 87% of humans are right handed. That figure is much lower \ @@ -255,12 +244,6 @@ max_damage = 100 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/r_arm/devil - dismemberable = FALSE - can_be_disabled = FALSE - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/leg/left name = "left leg" desc = "Some athletes prefer to tie their left shoelaces first for good \ @@ -346,12 +329,6 @@ max_damage = 100 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/leg/left/devil - dismemberable = FALSE - can_be_disabled = FALSE - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/leg/right name = "right leg" desc = "You put your right leg in, your right leg out. In, out, in, out, \ @@ -438,9 +415,3 @@ can_be_disabled = FALSE max_damage = 100 animal_origin = ALIEN_BODYPART - -/obj/item/bodypart/leg/right/devil - dismemberable = FALSE - can_be_disabled = FALSE - max_damage = 5000 - animal_origin = DEVIL_BODYPART diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm index eccf729d263f..fd3c740b9eb1 100644 --- a/code/modules/surgery/experimental_dissection.dm +++ b/code/modules/surgery/experimental_dissection.dm @@ -13,7 +13,7 @@ /datum/surgery_step/clamp_bleeders, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) - target_mobtypes = list(/mob/living) //Feel free to dissect devils but they're magic. + target_mobtypes = list(/mob/living) replaced_by = /datum/surgery/advanced/experimental_dissection/adv requires_tech = FALSE var/value_multiplier = 0.25 diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 6a5a344b177e..b86c5b8b86ce 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -99,10 +99,7 @@ var/log_message = uppertext(message) if(!span_list || !span_list.len) - if(iscultist(user)) - span_list = list("narsiesmall") - else - span_list = list() + span_list = list() user.say(message, spans = span_list, sanitize = FALSE) @@ -135,10 +132,6 @@ if(user.mind.assigned_role == "Mime") power_multiplier *= 0.5 - //Cultists are closer to their gods and are more powerful, but they'll give themselves away - if(iscultist(user)) - power_multiplier *= 2 - //Try to check if the speaker specified a name or a job to focus on var/list/specific_listeners = list() var/found_string = null @@ -148,15 +141,8 @@ for(var/V in listeners) var/mob/living/L = V - var/datum/antagonist/devil/devilinfo = is_devil(L) - if(devilinfo && findtext(message, devilinfo.truename)) - var/start = findtext(message, devilinfo.truename) - listeners = list(L) //Devil names are unique. - power_multiplier *= 5 //if you're a devil and god himself addressed you, you fucked up - //Cut out the name so it doesn't trigger commands - message = copytext(message, 1, start) + copytext(message, start + length(devilinfo.truename)) - break - else if(findtext(message, L.real_name, 1, length(L.real_name) + 1)) + + if(findtext(message, L.real_name, 1, length(L.real_name) + 1)) specific_listeners += L //focus on those with the specified name //Cut out the name so it doesn't trigger commands found_string = L.real_name @@ -331,11 +317,7 @@ for(var/V in listeners) var/mob/living/L = V var/text = "" - if(is_devil(L)) - var/datum/antagonist/devil/devilinfo = is_devil(L) - text = devilinfo.truename - else - text = L.real_name + text = L.real_name addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), text), 5 * i) i++ diff --git a/code/modules/unit_tests/create_and_destroy.dm b/code/modules/unit_tests/create_and_destroy.dm index 9aee2ca10624..0e0248162fc8 100644 --- a/code/modules/unit_tests/create_and_destroy.dm +++ b/code/modules/unit_tests/create_and_destroy.dm @@ -35,8 +35,6 @@ /obj/machinery/power/shuttle/engine/liquid, //needs a template /obj/effect/landmark/subship, - //needs a friend :( - /obj/effect/mob_spawn/human/demonic_friend, //needs a derg /obj/structure/carp_rift, //doesn't have icons diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 877f1f11d854..0923ba1cc70e 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1791,13 +1791,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) restricted_roles = list("Curator") limited_stock = 1 //please don't spam deadchat -/datum/uplink_item/role_restricted/cultconstructkit - name = "Cult Construct Kit" - desc = "Recovered from an abandoned Nar'sie cult lair two construct shells and a stash of empty soulstones was found. These were purified to prevent occult contamination and have been put in a belt so they may be used as an accessible source of disposable minions. The construct shells have been packaged into two beacons for rapid and portable deployment." - item = /obj/item/storage/box/syndie_kit/cultconstructkit - cost = 20 - restricted_roles = list("Chaplain") - /datum/uplink_item/role_restricted/lawnmower name = "Gas powered lawn mower" desc = "A lawn mower is a machine utilizing one or more revolving blades to cut a grass surface to an even height, or bodies if that's your thing" diff --git a/shiptest.dme b/shiptest.dme index 04d951c46325..187540e66a26 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -50,7 +50,6 @@ #include "code\__DEFINES\construction.dm" #include "code\__DEFINES\contracts.dm" #include "code\__DEFINES\cooldowns.dm" -#include "code\__DEFINES\cult.dm" #include "code\__DEFINES\directional.dm" #include "code\__DEFINES\diseases.dm" #include "code\__DEFINES\DNA.dm" @@ -283,7 +282,6 @@ #include "code\_onclick\hud\alien_larva.dm" #include "code\_onclick\hud\constructs.dm" #include "code\_onclick\hud\credits.dm" -#include "code\_onclick\hud\devil.dm" #include "code\_onclick\hud\drones.dm" #include "code\_onclick\hud\fullscreen.dm" #include "code\_onclick\hud\generic_dextrous.dm" @@ -307,7 +305,6 @@ #include "code\_onclick\hud\screen_objects.dm" #include "code\_onclick\hud\screentip.dm" #include "code\_onclick\hud\storage.dm" -#include "code\_onclick\hud\swarmer.dm" #include "code\controllers\admin.dm" #include "code\controllers\controller.dm" #include "code\controllers\failsafe.dm" @@ -552,7 +549,6 @@ #include "code\datums\components\sitcomlaughter.dm" #include "code\datums\components\sizzle.dm" #include "code\datums\components\slippery.dm" -#include "code\datums\components\soulstoned.dm" #include "code\datums\components\spill.dm" #include "code\datums\components\spooky.dm" #include "code\datums\components\squeak.dm" @@ -846,11 +842,9 @@ #include "code\game\area\ai_monitored.dm" #include "code\game\area\areas.dm" #include "code\game\area\ship_areas.dm" -#include "code\game\area\Space_Station_13_areas.dm" #include "code\game\area\areas\away_content.dm" #include "code\game\area\areas\centcom.dm" #include "code\game\area\areas\outpost.dm" -#include "code\game\area\areas\shuttles.dm" #include "code\game\area\areas\ruins\_ruins.dm" #include "code\game\area\areas\ruins\beachplanet.dm" #include "code\game\area\areas\ruins\icemoon.dm" @@ -872,18 +866,12 @@ #include "code\game\gamemodes\clown_ops\bananium_bomb.dm" #include "code\game\gamemodes\clown_ops\clown_ops.dm" #include "code\game\gamemodes\clown_ops\clown_weapons.dm" -#include "code\game\gamemodes\cult\cult.dm" -#include "code\game\gamemodes\devil\devil_game_mode.dm" -#include "code\game\gamemodes\devil\game_mode.dm" -#include "code\game\gamemodes\devil\objectives.dm" -#include "code\game\gamemodes\devil\devil_agent\devil_agent.dm" #include "code\game\gamemodes\dynamic\dynamic.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" #include "code\game\gamemodes\extended\extended.dm" -#include "code\game\gamemodes\meteor\meteor.dm" #include "code\game\gamemodes\meteor\meteors.dm" #include "code\game\gamemodes\nuclear\nuclear.dm" #include "code\game\gamemodes\sandbox\airlock_maker.dm" @@ -1700,20 +1688,6 @@ #include "code\modules\antagonists\changeling\powers\strained_muscles.dm" #include "code\modules\antagonists\changeling\powers\tiny_prick.dm" #include "code\modules\antagonists\changeling\powers\transform.dm" -#include "code\modules\antagonists\cult\blood_magic.dm" -#include "code\modules\antagonists\cult\cult.dm" -#include "code\modules\antagonists\cult\cult_comms.dm" -#include "code\modules\antagonists\cult\cult_items.dm" -#include "code\modules\antagonists\cult\cult_structures.dm" -#include "code\modules\antagonists\cult\cult_turf_overlay.dm" -#include "code\modules\antagonists\cult\rune_spawn_action.dm" -#include "code\modules\antagonists\cult\runes.dm" -#include "code\modules\antagonists\devil\devil.dm" -#include "code\modules\antagonists\devil\imp\imp.dm" -#include "code\modules\antagonists\devil\sintouched\objectives.dm" -#include "code\modules\antagonists\devil\sintouched\sintouched.dm" -#include "code\modules\antagonists\devil\true_devil\_true_devil.dm" -#include "code\modules\antagonists\devil\true_devil\inventory.dm" #include "code\modules\antagonists\disease\disease_abilities.dm" #include "code\modules\antagonists\disease\disease_datum.dm" #include "code\modules\antagonists\disease\disease_disease.dm" @@ -1752,8 +1726,6 @@ #include "code\modules\antagonists\slaughter\slaughterevent.dm" #include "code\modules\antagonists\space_dragon\space_dragon.dm" #include "code\modules\antagonists\survivalist\survivalist.dm" -#include "code\modules\antagonists\swarmer\swarmer.dm" -#include "code\modules\antagonists\swarmer\swarmer_event.dm" #include "code\modules\antagonists\traitor\datum_traitor.dm" #include "code\modules\antagonists\traitor\syndicate_contract.dm" #include "code\modules\antagonists\traitor\equipment\contractor.dm" @@ -1764,7 +1736,6 @@ #include "code\modules\antagonists\valentines\valentine.dm" #include "code\modules\antagonists\wizard\wizard.dm" #include "code\modules\antagonists\wizard\equipment\artefact.dm" -#include "code\modules\antagonists\wizard\equipment\soulstone.dm" #include "code\modules\antagonists\wizard\equipment\spellbook.dm" #include "code\modules\antagonists\xeno\xeno.dm" #include "code\modules\assembly\assembly.dm" @@ -1871,7 +1842,6 @@ #include "code\modules\awaymissions\mission_code\research.dm" #include "code\modules\awaymissions\mission_code\snowdin.dm" #include "code\modules\awaymissions\mission_code\spacebattle.dm" -#include "code\modules\awaymissions\mission_code\stationCollision.dm" #include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm" #include "code\modules\balloon_alert\balloon_alert.dm" #include "code\modules\buildmode\bm_mode.dm" @@ -2115,7 +2085,6 @@ #include "code\modules\events\camerafailure.dm" #include "code\modules\events\carp_migration.dm" #include "code\modules\events\communications_blackout.dm" -#include "code\modules\events\devil.dm" #include "code\modules\events\disease_outbreak.dm" #include "code\modules\events\dust.dm" #include "code\modules\events\electrical_storm.dm" @@ -2127,10 +2096,7 @@ #include "code\modules\events\high_priority_bounty.dm" #include "code\modules\events\immovable_rod.dm" #include "code\modules\events\ion_storm.dm" -#include "code\modules\events\major_dust.dm" #include "code\modules\events\mass_hallucination.dm" -#include "code\modules\events\meateor_wave.dm" -#include "code\modules\events\meteor_wave.dm" #include "code\modules\events\nightmare.dm" #include "code\modules\events\operative.dm" #include "code\modules\events\prison_break.dm" @@ -2385,7 +2351,6 @@ #include "code\modules\language\teceti_unified.dm" #include "code\modules\language\vox_pidgin.dm" #include "code\modules\language\xenocommon.dm" -#include "code\modules\library\lib_codex_gigas.dm" #include "code\modules\library\lib_items.dm" #include "code\modules\library\lib_machines.dm" #include "code\modules\library\random_books.dm" @@ -2668,11 +2633,9 @@ #include "code\modules\mob\living\silicon\robot\robot_movement.dm" #include "code\modules\mob\living\silicon\robot\robot_say.dm" #include "code\modules\mob\living\simple_animal\animal_defense.dm" -#include "code\modules\mob\living\simple_animal\constructs.dm" #include "code\modules\mob\living\simple_animal\corpse.dm" #include "code\modules\mob\living\simple_animal\damage_procs.dm" #include "code\modules\mob\living\simple_animal\parrot.dm" -#include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" #include "code\modules\mob\living\simple_animal\status_procs.dm" #include "code\modules\mob\living\simple_animal\bot\bot.dm" @@ -2781,7 +2744,6 @@ #include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\wendigo.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\brimdemon.dm" @@ -3017,7 +2979,6 @@ #include "code\modules\power\singularity\field_generator.dm" #include "code\modules\power\singularity\generator.dm" #include "code\modules\power\singularity\investigate.dm" -#include "code\modules\power\singularity\narsie.dm" #include "code\modules\power\singularity\singularity.dm" #include "code\modules\power\singularity\particle_accelerator\particle.dm" #include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" @@ -3335,10 +3296,7 @@ #include "code\modules\spells\spell_types\bloodcrawl.dm" #include "code\modules\spells\spell_types\charge.dm" #include "code\modules\spells\spell_types\conjure.dm" -#include "code\modules\spells\spell_types\construct_spells.dm" #include "code\modules\spells\spell_types\curse.dm" -#include "code\modules\spells\spell_types\devil.dm" -#include "code\modules\spells\spell_types\devil_boons.dm" #include "code\modules\spells\spell_types\emplosion.dm" #include "code\modules\spells\spell_types\ethereal_jaunt.dm" #include "code\modules\spells\spell_types\explosion.dm" From 6ac140c9f51816776827a5b179c60bef81009aea Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 23:33:00 -0500 Subject: [PATCH 121/125] Automatic changelog generation for PR #3447 [ci skip] --- html/changelogs/AutoChangeLog-pr-3447.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3447.yml diff --git a/html/changelogs/AutoChangeLog-pr-3447.yml b/html/changelogs/AutoChangeLog-pr-3447.yml new file mode 100644 index 000000000000..a3c00b8de0da --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3447.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {code_imp: A large amount of cruft has been deleted.} +delete-after: true From 1940816eac83368c9d672bcfae900316e8909da1 Mon Sep 17 00:00:00 2001 From: thgvr <81882910+thgvr@users.noreply.github.com> Date: Sun, 6 Oct 2024 21:05:04 -0700 Subject: [PATCH 122/125] fixes digitigrade combat/jackboots (#3472) ## About The Pull Request Title ## Changelog :cl: fix: fixed digitigrade combat/jackboots /:cl: --- icons/mob/species/misc/digitigrade_shoes.dmi | Bin 3525 -> 3494 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/species/misc/digitigrade_shoes.dmi b/icons/mob/species/misc/digitigrade_shoes.dmi index 9d08980b1e58a8c509e50e066d10877eab7a03bf..fb3dd66934718184915bed836ccd8c20f0091837 100644 GIT binary patch delta 2710 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 atOKA3H-OeI>9!)Yf9!3YZ0auir~MDrykw04 From d6a36864a153a495fae180a68e044e86f0b7ecaf Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 23:45:52 -0500 Subject: [PATCH 123/125] Automatic changelog generation for PR #3472 [ci skip] --- html/changelogs/AutoChangeLog-pr-3472.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3472.yml diff --git a/html/changelogs/AutoChangeLog-pr-3472.yml b/html/changelogs/AutoChangeLog-pr-3472.yml new file mode 100644 index 000000000000..899e00d9c9e5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3472.yml @@ -0,0 +1,4 @@ +author: thgvr +changes: + - {bugfix: fixed digitigrade combat/jackboots} +delete-after: true From 7ad140fdfff28a5b228bb849a116cdfd01f29723 Mon Sep 17 00:00:00 2001 From: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:02:45 +0200 Subject: [PATCH 124/125] Adds misc Cybersun stuff. Also .22 is now in cargo. (#3484) ## About The Pull Request Adds: - Cybersun captain's safe (to be used on Cybersun ships) - contains a Himehabu with two mags and secrets docs. - Cybersun Virtual Solutions and Cybersun Biodynamics secret documents. - Cybersun Biodynamics stamp. - .22 LR to cargo so the Himehabus aren't THAT ass. Stamp on paper (next to VS one) ![obraz](https://github.com/user-attachments/assets/79ecc7cd-6a40-498a-977d-7bc3875406dd) **Mapping changes will be done in Kansatsu remap and in Li Tieg reflavor.** ## Why It's Good For The Game Probably cool stuff to have. ## Changelog :cl: add: Cybersun Biodynamics stamp. add: Cybersun secret documents. add: Cybersun captain's safe. add: .22 LR is now purchasable in cargo. /:cl: --- code/game/objects/items/documents.dm | 9 +++++++++ code/game/objects/items/storage/secure.dm | 17 +++++++++++++++++ code/modules/asset_cache/asset_list_items.dm | 1 + code/modules/cargo/packs/ammo.dm | 8 ++++++++ code/modules/paperwork/folders_premade.dm | 9 +++++++++ code/modules/paperwork/stamps.dm | 7 ++++++- icons/obj/bureaucracy.dmi | Bin 36696 -> 36944 bytes icons/stamp_icons/large_stamp-biodynamics.png | Bin 0 -> 1139 bytes 8 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 icons/stamp_icons/large_stamp-biodynamics.png diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index 51c17ff4290d..2fb225fd2fb9 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -27,6 +27,15 @@ /obj/item/documents/syndicate desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence." +/obj/item/documents/syndicate/cybersun + name = "classified Cybersun documents" + desc = "\"Top Secret\" documents detailing sensitive Cybersun Virtual Solutions operational intelligence. These documents are verified with a red wax seal." + icon_state = "docs_red" + +/obj/item/documents/syndicate/cybersun/biodynamics + desc = "\"Top Secret\" Cybersun Biodynamics documents, filled with patient lists and unfinished designs. These documents are verified with a teal wax seal." + icon_state = "docs_teal" + /obj/item/documents/syndicate/red name = "red secret documents" desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence. These documents are verified with a red wax seal." diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index f918a3b883fb..f46d6eb4c2c9 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -211,3 +211,20 @@ /obj/item/storage/secure/safe/suns/PopulateContents() . = ..() new /obj/item/storage/belt/sabre/suns(src) + +/obj/item/storage/secure/safe/cybersun + name = "Captain's secure safe" + desc = "An electronic safe manufactured by Cybersun Virtual Solutions." + +/obj/item/storage/secure/safe/cybersun/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/himehabu/no_mag(src) + new /obj/item/ammo_box/magazine/m22lr_himehabu(src) + new /obj/item/ammo_box/magazine/m22lr_himehabu(src) + +/obj/item/storage/secure/safe/cybersun/solutions/PopulateContents() + . = ..() + new /obj/item/folder/documents/syndicate/cybersun(src) + +/obj/item/storage/secure/safe/cybersun/biodynamics/PopulateContents() + . = ..() + new /obj/item/folder/documents/syndicate/cybersun/biodynamics(src) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index bcd83b5a8265..4920de28e364 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -121,6 +121,7 @@ "stamp-bard" = 'icons/stamp_icons/large_stamp-bard.png', "stamp-gold" = 'icons/stamp_icons/large_stamp-gold.png', "stamp-cybersun" = 'icons/stamp_icons/large_stamp-cybersun.png', + "stamp-biodynamics" = 'icons/stamp_icons/large_stamp-biodynamics.png', "stamp-donk" = 'icons/stamp_icons/large_stamp-donk.png' ) diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index a7ab407b428e..8d8f47a05f65 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -421,3 +421,11 @@ desc = "Contains a fifty-round box of .44 roumain hollow point ammo, great against unarmored targets." contains = list(/obj/item/ammo_box/a44roum/hp) cost = 500 + +/datum/supply_pack/ammo/c22lr + name = ".22 LR Ammo Box Crate" + desc = "Contains two 75 round ammo boxes for refilling .22 LR weapons." + contains = list(/obj/item/ammo_box/c22lr_box, + /obj/item/ammo_box/c22lr_box) + crate_name = "ammo crate" + cost = 250 diff --git a/code/modules/paperwork/folders_premade.dm b/code/modules/paperwork/folders_premade.dm index 3c9dbb89feae..48b7cb763785 100644 --- a/code/modules/paperwork/folders_premade.dm +++ b/code/modules/paperwork/folders_premade.dm @@ -41,6 +41,15 @@ name = "folder- 'TOP SECRET'" desc = "A folder stamped \"Top Secret - Property of The Syndicate.\"" +/obj/item/folder/documents/syndicate/cybersun + document = /obj/item/documents/syndicate/cybersun + icon_state = "folder_sred" + desc = "A folder stamped \"Top Secret - Property of Cybersun Industries.\"" + +/obj/item/folder/documents/syndicate/cybersun/biodynamics + document = /obj/item/documents/syndicate/cybersun/biodynamics + icon_state = "folder_sblue" + /obj/item/folder/documents/syndicate/red document = /obj/item/documents/syndicate/red icon_state = "folder_sred" diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 45893f8d5fc5..22e9a722634b 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -97,10 +97,15 @@ dye_color = DYE_SYNDICATE /obj/item/stamp/cybersun - name = "Cybersun rubber stamp" + name = "Cybersun Virtual Solutions rubber stamp" icon_state = "stamp-cybersun" dye_color = DYE_SYNDICATE +/obj/item/stamp/cybersun/biodynamics + name = "Cybersun Biodynamics rubber stamp" + icon_state = "stamp-biodynamics" + dye_color = DYE_CMO + /obj/item/stamp/solgov name = "SolGov rubber stamp" icon_state = "stamp-solgov" diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 17bab47dc9ef14214611b37cb785fe42df0a96a2..68fef79c160b5c6abd6d9d67d33b21da2f7fea34 100644 GIT binary patch literal 36944 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�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%0D##J9 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 diff --git a/icons/stamp_icons/large_stamp-biodynamics.png b/icons/stamp_icons/large_stamp-biodynamics.png new file mode 100644 index 0000000000000000000000000000000000000000..0d09b4f37c005a42b9fbda838f52e1b332895ef3 GIT binary patch literal 1139 zcmV-(1dRKMP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1PDn)K~#8N?V3As z+b|G@>6}8nRXArz;{)UfX)@y*NTo`Z)(t$9CP&Bt+~f>#A@{n4!XL(JcGk-WKo9^y zd@~#nPs00S7X;;|QduPrKYv{9Z4rF2X~hD8H}?;xl7y}zSJs8}-cr1|dU9nwba`zF z-h5}%#q)SPK40G7c5lCad;Lui6E9pCgHl`7Oc@iYZ~ssfB{EVH$JekJ=k;*d+pHHP zE-jWSazJ2QGAMaA?uU##CM3IzL2dbbQj&ZEA<>N56~@O1E5kOSjirfMMV<-Gu)M5K zTul(U4RH9Fyl>aSN<|iv2nh@h52Sr{NMIKs`ug+d(88Fyw}+xwk#WzxNebj5u7vOR zKogqZrzVR@goXsw1m<2o1sTTWvvLs_6e%)i4uJ_iHV8d_D2f(&PJxLf2wkkm()e?R z&zR5hVHH16%x!dx4-dB4>?k^1yYl_z<$C`6YI7gty3e{0O=K9*-Zt--OLM>3oc=sL z8RMajmuY#^(W3P?6%3dD0Bxke1Q%MHn@ipd7?~*H8h@z0HMD;)483d1%`wE4(ETw# z5*UIa{Nmbvdo*R**RCZIZBNE(Zoz8yiXKD#c|ERwhXc}^=Zty249#duLNA&6pCJQ4 zXxA6FsgWi$NkrB>Ee8;m=}XpBNNAf)%3?ejMr(n0s4p_S{_F90m0rZ_O#y?4<bc2AWEjMTxY-S$EfOg-i4jV00{cF$m_lbEG7OBAR=y?z%392e6I&2B0eHQ( z6%6$UsFN>RKAvr#rGoKr&HaIflSE{As|=|yFj5#u3LF#6Lpwrwc(nQjjK;RvC@f}A zPJ!mxF3`eFO*D~hDE8iShx+q+EmHJ>_O5#*!abg0vsn{GWVxcJhUB?Ix)d7XYo9u? zpy*lxS%i}u=n@pjFJVigipSHk*mNU`efiO_V%>jZuigU^UXMI z{;tjAWeJ}HWj)X1c(SwYWnSwq+Z#mtPx-NL$2eZ$m}RrsiJa;PWsLrDdpl23Y6P+= zA@dSmr}dX(@s!$k<$ICm=iCGasYE72`hb42zZ{E;>I3=@j)4$OU$BtRQDBgRC(nTt zUFQ2h+rjqoxJ3e^T-K!~2TvxkDMdN22Qoi}uIKS`T%(`I1;#zD+=Q+;K%PpME&k-$ zp?|%aLMl&Q3|*oEoS~7TobSgu2@JA)QSe0?o6ySTv4=zA_0{taBreZQL9rs^-W0YB z8Jf54!etCThbnSFU{H8i4#yc1oaU2S=%PeM>T6K$i3Ejh-ybKY&Z!a@O=OVUOH^ed zQs^$>mqtB8399F=0C+EiF2##M_2kMrDanf~l}Z^j&420+X`;f>3-SN}002ovPDHLk FV1kH(3S$5O literal 0 HcmV?d00001 From 8ca81419ec1abc21f9957ff0f510d70d3cd8f6a1 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 02:13:16 -0500 Subject: [PATCH 125/125] Automatic changelog generation for PR #3484 [ci skip] --- html/changelogs/AutoChangeLog-pr-3484.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3484.yml diff --git a/html/changelogs/AutoChangeLog-pr-3484.yml b/html/changelogs/AutoChangeLog-pr-3484.yml new file mode 100644 index 000000000000..e1268b036c5f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3484.yml @@ -0,0 +1,6 @@ +author: Sadhorizon +changes: + - {rscadd: Cybersun Biodynamics stamp.} + - {rscadd: Cybersun secret documents.} + - {rscadd: Cybersun captain's safe.} +delete-after: true

    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 z z5fK1sOm`;IyBmMHl0|WXHG6K-EKc7I>{&O>AM{4yjWhT?hT$)Z{Cwj!+uIY6-y9ei zZ4q^U6LZY>;qEZusj6a8Dx=?s?kn`w&s}~T>-0LKAGTa8^L>U1= zk{4oF)Q`U@)hp<``X>G Date: Fri, 4 Oct 2024 23:04:41 -0500 Subject: [PATCH 096/125] Automatic changelog generation for PR #3146 [ci skip] --- html/changelogs/AutoChangeLog-pr-3146.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3146.yml diff --git a/html/changelogs/AutoChangeLog-pr-3146.yml b/html/changelogs/AutoChangeLog-pr-3146.yml new file mode 100644 index 000000000000..2b6397e66448 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3146.yml @@ -0,0 +1,5 @@ +author: Thera-Pissed +changes: + - {rscadd: angle grinders for salvage} + - {rscadd: reworks plasma cutters for salvage} +delete-after: true From bd320923e11eda33093be107c922056bad544537 Mon Sep 17 00:00:00 2001 From: Apogee-dev <60533805+Apogee-dev@users.noreply.github.com> Date: Fri, 4 Oct 2024 20:43:55 -0700 Subject: [PATCH 097/125] Parity for small ships (#3436) ## About The Pull Request Nixes the extra deckhand from Kilo and increases the Mudskipper's spawn limit by 1. Hopefully we don't just get those maxed out every single round. ## Why It's Good For The Game Brings the two smallest ships in the game into parity with each other, and provides at least a little more flexibility for players that respawn or come in late. ## Changelog :cl: balance: increased mudskipper limit to 2 balance: cut a deckhand slot from kilo /:cl: --- _maps/configs/independent_kilo.json | 2 +- _maps/configs/independent_mudskipper.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/configs/independent_kilo.json b/_maps/configs/independent_kilo.json index 0890ba4a9cef..9ff4ccfbf191 100644 --- a/_maps/configs/independent_kilo.json +++ b/_maps/configs/independent_kilo.json @@ -31,7 +31,7 @@ }, "Deckhand": { "outfit": "/datum/outfit/job/independent/assistant", - "slots": 2 + "slots": 1 } }, "enabled": true diff --git a/_maps/configs/independent_mudskipper.json b/_maps/configs/independent_mudskipper.json index 8db7b5668e03..469230d752a3 100644 --- a/_maps/configs/independent_mudskipper.json +++ b/_maps/configs/independent_mudskipper.json @@ -15,7 +15,7 @@ "SPACE" ], "map_path": "_maps/shuttles/independent/independent_mudskipper.dmm", - "limit": 1, + "limit": 2, "starting_funds": 1500, "job_slots": { "Salvage Leader": { From 5f34102004d6cd222978cd24d89cae4bf7ae951f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 23:19:11 -0500 Subject: [PATCH 098/125] Automatic changelog generation for PR #3436 [ci skip] --- html/changelogs/AutoChangeLog-pr-3436.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3436.yml diff --git a/html/changelogs/AutoChangeLog-pr-3436.yml b/html/changelogs/AutoChangeLog-pr-3436.yml new file mode 100644 index 000000000000..6020a91bbc22 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3436.yml @@ -0,0 +1,5 @@ +author: Apogee-dev +changes: + - {balance: increased mudskipper limit to 2} + - {balance: cut a deckhand slot from kilo} +delete-after: true From 3f7a4732f8bc6e1c09b1c0e93667949bce7f986d Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 4 Oct 2024 23:44:34 -0400 Subject: [PATCH 099/125] no more ice demon capture missions (#3421) ## About The Pull Request Have fun capturing the thing that teleports every 3 seconds and quickly runs away from you ## Why It's Good For The Game You can probably accomplish these but it's terribly tedious and horribly not worth it ## Changelog :cl: del: missions will no longer request capturing ice demons /:cl: --- code/modules/overmap/missions/acquire_mission.dm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/code/modules/overmap/missions/acquire_mission.dm b/code/modules/overmap/missions/acquire_mission.dm index 8a3424c8eb11..ea55beb00120 100644 --- a/code/modules/overmap/missions/acquire_mission.dm +++ b/code/modules/overmap/missions/acquire_mission.dm @@ -180,14 +180,6 @@ Acquire: Anomaly weight = 2 objective_type = /mob/living/simple_animal/hostile/asteroid/ice_whelp -/datum/mission/acquire/creature/ice_demon - name = "Capture an ice demon" - desc = "I require a live ice demon for research purposes. Trap one within the given \ - Lifeform Containment Unit and return it to me and you will be paid handsomely." - value = 1500 - weight = 2 - objective_type = /mob/living/simple_animal/hostile/asteroid/ice_demon - /datum/mission/acquire/creature/migo name = "Capture a live mi-go" desc = "I require a live mi-go for research purposes. Trap one within the given \ From fa73b70f9f3a601ca16f0ee85d4f01f3c2ade994 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 23:32:09 -0500 Subject: [PATCH 100/125] Automatic changelog generation for PR #3421 [ci skip] --- html/changelogs/AutoChangeLog-pr-3421.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3421.yml diff --git a/html/changelogs/AutoChangeLog-pr-3421.yml b/html/changelogs/AutoChangeLog-pr-3421.yml new file mode 100644 index 000000000000..7e32d923d25c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3421.yml @@ -0,0 +1,4 @@ +author: SomeguyManperson +changes: + - {rscdel: missions will no longer request capturing ice demons} +delete-after: true From b38e90a725f6d957c070e3ed931ff5ce9ef3dedc Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:45:00 -0400 Subject: [PATCH 101/125] Inteq Turrets (#3406) ## About The Pull Request adds special inteq turrets. Inteq turrets have better range (except for the close in one), and slower fire rate. They can be frightening under the right conditions. All ships currently mapped have a mixture of Vanguard Turrets and Close In Vanguard Turrets ## Why It's Good For The Game It's good fluff and continues my quest of making turrets for every faction ## Changelog :cl: add: IRMG engineers have rolled new turrets out into the frontier. Please report back on their effectiveness. Unless you have been shot. Then you should be dead. /:cl: --- _maps/shuttles/inteq/inteq_colossus.dmm | 56 ++++++++++--------- _maps/shuttles/inteq/inteq_talos.dmm | 26 ++++----- _maps/shuttles/inteq/inteq_vaquero.dmm | 8 +-- _maps/shuttles/subshuttles/inteq_anvil.dmm | 15 +---- .../machinery/porta_turret/portable_turret.dm | 42 ++++++++++++-- .../clip_lanchester/ballistics.dm | 1 - .../projectiles/projectile/bullets/rifle.dm | 14 +++++ 7 files changed, 101 insertions(+), 61 deletions(-) diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index 482d6999b28c..74ac142692c6 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -653,9 +653,9 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "gH" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 4 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/crew) @@ -1138,9 +1138,9 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/fore) "mb" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/hallway/port) @@ -1734,9 +1734,9 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/office) "sT" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium, /area/ship/crew) @@ -2068,9 +2068,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) "vJ" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/port) @@ -2442,9 +2442,9 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "Bi" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 9; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 9 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/crew/office) @@ -3320,8 +3320,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/security/armory) "Ll" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5 +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 4 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/bridge) @@ -3557,7 +3558,8 @@ /turf/open/floor/plasteel/patterned, /area/ship/cargo) "Oa" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; dir = 6 }, /turf/closed/wall/mineral/plastitanium, @@ -3630,9 +3632,9 @@ /turf/open/floor/engine/hull/reinforced, /area/ship/maintenance/starboard) "OI" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 6 }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/starboard) @@ -3790,9 +3792,9 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "Qw" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 10; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 10 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/security/armory) @@ -3944,9 +3946,9 @@ /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "RZ" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 6 }, /turf/closed/wall/mineral/plastitanium, /area/ship/security) diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 6b05aa78caaa..2ab9a9405507 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -103,7 +103,7 @@ /turf/open/floor/circuit/telecomms/mainframe, /area/ship/engineering/communications) "aC" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -849,7 +849,7 @@ /turf/open/floor/plating/airless, /area/ship/storage/port) "fs" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -2689,14 +2689,14 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/crew/cryo) "qt" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/starboard) "qz" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -4556,9 +4556,9 @@ /turf/open/floor/plasteel/grimy, /area/ship/crew) "Cr" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 9; - id = "talos_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 9 }, /turf/closed/wall/mineral/plastitanium, /area/ship/engineering/communications) @@ -4821,7 +4821,7 @@ autolinkers = list("hub","processor4","bus"); network = "irmg_commnet" }, -/turf/open/floor/circuit/telecomms/mainframe, +/turf/closed/wall/mineral/plastitanium, /area/ship/engineering/communications) "Ep" = ( /obj/item/trash/can, @@ -4853,9 +4853,9 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "ED" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 10; - id = "talos_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 10 }, /turf/closed/wall/mineral/plastitanium, /area/ship/storage) @@ -6624,7 +6624,7 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Rf" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, @@ -7491,7 +7491,7 @@ /turf/open/floor/plating, /area/ship/engineering/engine) "WN" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm index 336bf5792208..92e024ba7bf6 100644 --- a/_maps/shuttles/inteq/inteq_vaquero.dmm +++ b/_maps/shuttles/inteq/inteq_vaquero.dmm @@ -1933,7 +1933,7 @@ /turf/open/floor/plasteel/dark, /area/ship/security) "DT" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "vaquero_grid" }, @@ -2027,7 +2027,7 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/office) "Fm" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "vaquero_grid" }, @@ -2523,7 +2523,7 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "NO" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "vaquero_grid" }, @@ -2957,7 +2957,7 @@ port_direction = 8; preferred_direction = 4 }, -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "vaquero_grid" }, diff --git a/_maps/shuttles/subshuttles/inteq_anvil.dmm b/_maps/shuttles/subshuttles/inteq_anvil.dmm index 002ddfe6d0d3..61d7946fb794 100644 --- a/_maps/shuttles/subshuttles/inteq_anvil.dmm +++ b/_maps/shuttles/subshuttles/inteq_anvil.dmm @@ -191,14 +191,6 @@ "w" = ( /turf/template_noop, /area/template_noop) -"x" = ( -/obj/machinery/porta_turret/ship/weak{ - faction = list("playerInteq","turret"); - dir = 9; - id = "anvil_grid" - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) "y" = ( /obj/machinery/power/terminal, /obj/structure/cable{ @@ -387,9 +379,8 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "T" = ( -/obj/machinery/porta_turret/ship/weak{ - faction = list("playerInteq","turret"); - dir = 10; +/obj/machinery/porta_turret/ship/inteq/light{ + dir = 8; id = "anvil_grid" }, /turf/closed/wall/mineral/plastitanium/nodiagonal, @@ -436,7 +427,7 @@ (1,1,1) = {" w -x +T X u Q diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 3e50954df0c7..663df697f01c 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -77,8 +77,6 @@ DEFINE_BITFIELD(turret_flags, list( var/has_cover = TRUE /// The cover that is covering this turret var/obj/machinery/porta_turret_cover/cover = null - /// World.time the turret last fired - var/last_fired = 0 /// Ticks until next shot (1.5 ?) var/shot_delay = 15 /// Turret flags about who is turret allowed to shoot @@ -101,6 +99,8 @@ DEFINE_BITFIELD(turret_flags, list( var/datum/action/turret_toggle/toggle_action /// Mob that is remotely controlling the turret var/mob/remote_controller + //our cooldowns + COOLDOWN_DECLARE(fire_cooldown) /// For connecting to additional turrets var/id = "" @@ -599,9 +599,9 @@ DEFINE_BITFIELD(turret_flags, list( return if(!(obj_flags & EMAGGED)) //if it hasn't been emagged, cooldown before shooting again - if(last_fired + shot_delay > world.time) + if(!COOLDOWN_FINISHED(src, fire_cooldown)) return - last_fired = world.time + COOLDOWN_START(src, fire_cooldown, shot_delay) var/turf/T = get_turf(src) var/turf/U = get_turf(target) @@ -866,6 +866,40 @@ DEFINE_BITFIELD(turret_flags, list( lethal_projectile = /obj/projectile/beam/laser/heavylaser lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' +/* Inteq Turrets */ + +/obj/machinery/porta_turret/ship/inteq + name = "Vanguard Turret" + desc = "A turret designed by IRMG engineers for defending ships from hostile flora, fauna, and people (and Elzousa, which count as flora and people)." + stun_projectile = /obj/projectile/bullet/a762_40/rubber + stun_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg' + lethal_projectile = /obj/projectile/bullet/a762_40 + lethal_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg' + scan_range = 8 + shot_delay = 20 + faction = list(FACTION_PLAYER_INTEQ, "turret") + +/obj/machinery/porta_turret/ship/inteq/light + name = "Close-In Vanguard Turret" + desc = "A light turret designed by IRMG engineers for the the task of defending from close-in encounters. Low power, high speed." + stun_projectile = /obj/projectile/bullet/c10mm/rubber + stun_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg' + lethal_projectile = /obj/projectile/bullet/c10mm + lethal_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg' + subsystem_type = /datum/controller/subsystem/processing/fastprocess //turns out if you have a shot delay below what SSmachines fires at you need to use a different subsystem + scan_range = 4 + shot_delay = 5 + +/obj/machinery/porta_turret/ship/inteq/heavy + name = "Vanguard Overwatch Turret" + desc = "A turret designed by IRMG engineers to provide long range defensive fire on their installations. Has a habit of leaving big holes." + stun_projectile = /obj/projectile/bullet/a308/rubber + stun_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg' + lethal_projectile = /obj/projectile/bullet/a308 + lethal_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg' + scan_range = 12 + shot_delay = 20 + /* Solcon Turrets */ /obj/machinery/porta_turret/ship/solgov diff --git a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm index f32a2f11a508..a244b188863a 100644 --- a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm +++ b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm @@ -223,7 +223,6 @@ EMPTY_GUN_HELPER(automatic/smg/cm5) righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' - fire_sound = 'sound/weapons/gun/rifle/shot.ogg' icon_state = "f4" item_state = "f4" show_magazine_on_sprite = TRUE diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index 690f02d6b5c5..1d5d48c9b826 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -49,6 +49,13 @@ damage = 30 armour_penetration = 20 +/obj/projectile/bullet/a762_40/rubber //"rubber" + name = "7.62x40mm CLIP Rubber" + damage = 15 + stamina = 40 + armour_penetration = 20 + + //.308 WIN (M514 & GAL DMRs) /obj/projectile/bullet/a308 @@ -57,6 +64,13 @@ damage = 30 armour_penetration = 40 +/obj/projectile/bullet/a308/rubber //"rubber" + name = ".308 Rubber" + speed = 0.3 + damage = 25 + stamina = 50 + armour_penetration = 40 + // 8x58mm caseless (SG-669) /obj/projectile/bullet/a858 From 0e2a70039a13f972e935adc19b3e68583d0bb06d Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 23:45:19 -0500 Subject: [PATCH 102/125] Automatic changelog generation for PR #3406 [ci skip] --- html/changelogs/AutoChangeLog-pr-3406.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3406.yml diff --git a/html/changelogs/AutoChangeLog-pr-3406.yml b/html/changelogs/AutoChangeLog-pr-3406.yml new file mode 100644 index 000000000000..16dcd1234872 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3406.yml @@ -0,0 +1,6 @@ +author: Bjarl +changes: + - {rscadd: IRMG engineers have rolled new turrets out into the frontier. Please + report back on their effectiveness. Unless you have been shot. Then you should + be dead.} +delete-after: true From a72961fb3dfa999e9b3aa556ac9f2eaf123c37db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Oct 2024 03:49:08 +0000 Subject: [PATCH 103/125] Bump axios from 1.6.1 to 1.7.4 in /tgui (#3315) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [axios](https://github.com/axios/axios) from 1.6.1 to 1.7.4.