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/.github/workflows/rerun_flaky_tests.yml b/.github/workflows/rerun_flaky_tests.yml
new file mode 100644
index 000000000000..e3cbda05749b
--- /dev/null
+++ b/.github/workflows/rerun_flaky_tests.yml
@@ -0,0 +1,37 @@
+name: Rerun/Report Flaky Tests
+on:
+ workflow_run:
+ workflows: [Checks]
+ types:
+ - completed
+
+permissions:
+ actions: write
+ contents: write
+ issues: write
+
+jobs:
+ rerun_flaky_tests:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt == 1 }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Rerun flaky tests
+ uses: actions/github-script@v6
+ with:
+ script: |
+ const { rerunFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js')
+ await rerunFlakyTests({ github, context })
+ report_flaky_tests:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.run_attempt == 2 }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Report flaky tests
+ uses: actions/github-script@v6
+ with:
+ script: |
+ const { reportFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js')
+ await reportFlakyTests({ github, context })
diff --git a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
index be52f6a67f46..cfe522aeb415 100644
--- a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
@@ -606,7 +606,7 @@
/area/ruin/beach/complex)
"kK" = (
/obj/structure/closet/crate/bin,
-/obj/item/reagent_containers/food/snacks/breadslice/moldy,
+/obj/item/food/breadslice/moldy,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/concrete/slab_4,
/area/ruin/beach/complex)
@@ -1458,7 +1458,7 @@
/turf/open/floor/plasteel/mono,
/area/ruin/beach/complex)
"wV" = (
-/obj/item/kitchen/knife/hunting{
+/obj/item/melee/knife/hunting{
name = "machete";
pixel_y = 8;
desc = "Space vines HATE this one simple trick!"
diff --git a/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm b/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
index 998e43b9085a..971fde63cb03 100644
--- a/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
@@ -1232,7 +1232,7 @@
/obj/machinery/atmospherics/components/unary/passive_vent{
dir = 1
},
-/obj/item/fireaxe{
+/obj/item/melee/axe/fire{
name = "rusty fire axe"
},
/turf/open/floor/engine/airless,
diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
index ab5a6bb58d84..ea1a18b11c4b 100644
--- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
@@ -203,8 +203,7 @@
"kj" = (
/obj/structure/closet/cabinet,
/obj/item/pneumatic_cannon/speargun,
-/obj/item/storage/backpack/magspear_quiver,
-/obj/item/kitchen/knife/hunting,
+/obj/item/melee/knife/hunting,
/turf/open/floor/wood,
/area/ruin/beach)
"kr" = (
@@ -529,7 +528,7 @@
dir = 6
},
/obj/structure/table/reinforced,
-/obj/item/kitchen/knife/butcher,
+/obj/item/melee/knife/butcher,
/turf/open/floor/plastic,
/area/ruin/beach)
"wg" = (
@@ -1032,7 +1031,7 @@
"Os" = (
/obj/structure/table/wood/reinforced,
/obj/effect/turf_decal/corner/opaque/pink/diagonal,
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_y = 12;
pixel_x = 9
},
@@ -1051,8 +1050,7 @@
"PB" = (
/obj/structure/closet/cabinet,
/obj/item/pneumatic_cannon/speargun,
-/obj/item/storage/backpack/magspear_quiver,
-/obj/item/kitchen/knife/hunting,
+/obj/item/melee/knife/hunting,
/obj/machinery/light/small/directional/east{
light_color = "#d8b1b1"
},
@@ -1244,7 +1242,6 @@
/turf/open/water/beach/deep,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Vt" = (
-/obj/item/nullrod/carp,
/obj/structure/bed/dogbed,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood/walnut,
diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
index 29ad64707d84..b2c39404d641 100644
--- a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
@@ -193,7 +193,7 @@
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
"eZ" = (
-/obj/item/melee/roastingstick,
+/obj/item/roastingstick,
/turf/open/floor/wood{
light_range = 2
},
@@ -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/BeachRuins/beach_ocean_town.dmm b/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
index a751740c08a2..d1a3ff05cf04 100644
--- a/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
@@ -1628,7 +1628,7 @@
/obj/effect/turf_decal/weather/sand{
dir = 5
},
-/obj/item/melee/roastingstick,
+/obj/item/roastingstick,
/obj/item/reagent_containers/food/snacks/sausage,
/turf/open/floor/plating/dirt{
light_range = 2
@@ -2304,7 +2304,7 @@
/obj/effect/turf_decal/weather/sand{
dir = 8
},
-/obj/item/melee/roastingstick,
+/obj/item/roastingstick,
/turf/open/floor/plating/dirt{
light_range = 2
},
diff --git a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
index 2b2479ffe0fb..67ac69292603 100644
--- a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
@@ -16,7 +16,7 @@
/area/ruin/beach/piratecrash/storage)
"af" = (
/obj/structure/table/wood,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/effect/turf_decal/corner/opaque/black/diagonal,
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -37,7 +37,7 @@
},
/obj/structure/table/wood,
/obj/item/reagent_containers/food/snacks/fishfry,
-/obj/item/kitchen/knife/shiv{
+/obj/item/melee/knife/shiv{
pixel_x = -6;
pixel_y = 5
},
diff --git a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
index 6e70a81ace49..997f6bb56703 100644
--- a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
@@ -240,7 +240,7 @@
},
/obj/structure/table/wood/reinforced,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/reagent_containers/food/snacks/breadslice/moldy{
+/obj/item/food/breadslice/moldy{
pixel_x = 3;
pixel_y = 6
},
@@ -393,7 +393,7 @@
pixel_x = 9;
pixel_y = -1
},
-/obj/item/gun/ballistic/automatic/assault/p16/minutemen{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_y = 7;
pixel_x = -9
},
diff --git a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
index 82c054f8fabf..707be4573d13 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
@@ -887,7 +887,7 @@
/area/ruin/unpowered/crashed_holemaker)
"oC" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/turf/open/floor/wood{
icon_state = "wood-broken7"
},
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
index 06d6a8e9fd27..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
},
@@ -332,7 +332,7 @@
/obj/item/restraints/legcuffs/beartrap,
/obj/item/reagent_containers/glass/bottle/venom,
/obj/item/reagent_containers/glass/bottle/curare,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
/obj/effect/decal/cleanable/dirt,
/obj/item/reagent_containers/food/snacks/meat/slab/human,
/obj/item/reagent_containers/food/snacks/meat/slab/human,
@@ -384,7 +384,7 @@
/obj/effect/decal/cleanable/blood/gibs/torso,
/obj/structure/safe,
/obj/item/ammo_box/a12g/slug,
-/obj/item/kitchen/knife/combat,
+/obj/item/melee/knife/combat,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
index 4954a9a5aaf4..d560e98b2f20 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
@@ -367,23 +367,6 @@
initial_gas_mix = "ICEMOON_ATMOS"
},
/area/ruin/unpowered)
-"sf" = (
-/obj/structure/table/wood,
-/obj/item/nullrod{
- block_chance = 50;
- desc = "This massive chart appears to be the layout of a SolGov outpost. It's covered in marks, scribbles in a language you don't recognize, and several stains. It's unusually sturdy.";
- icon_state = "blueprints";
- item_state = "blueprints";
- lefthand_file = 'icons/mob/inhands/items_lefthand.dmi';
- name = "facility blueprints";
- pixel_y = 10;
- righthand_file = 'icons/mob/inhands/items_righthand.dmi';
- w_class = 5
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
"si" = (
/obj/structure/flora/rock/jungle,
/obj/structure/flora/grass/jungle/b,
@@ -1248,13 +1231,6 @@
},
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/ruin/unpowered)
-"Zs" = (
-/obj/structure/table/wood,
-/obj/item/banhammer,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
(1,1,1) = {"
aW
@@ -2252,7 +2228,7 @@ Hb
aW
WH
jy
-Zs
+ib
WH
WH
WH
@@ -2284,7 +2260,7 @@ Hb
aW
Br
ib
-sf
+ib
WH
WH
fB
diff --git a/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm b/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm
index 12fdf42c7d44..9fc8444c5dd3 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_abandoned_library.dmm
@@ -193,7 +193,7 @@
pixel_x = 6;
pixel_y = -6
},
-/obj/item/gun/ballistic/automatic/pistol/syndicate/no_mag{
+/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag{
name = "bible gun";
pixel_x = -7;
pixel_y = -8;
@@ -3198,8 +3198,8 @@
/obj/structure/closet/wardrobe/chaplain_black{
populate = 0
},
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/structure/spacevine{
name = "vines"
},
diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
index f5214804dbbd..77c280d07e90 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
@@ -5613,9 +5613,9 @@
/obj/structure/closet,
/obj/item/clothing/suit/armor/ngr/captain,
/obj/item/clothing/under/syndicate/ngr/officer,
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
/turf/open/floor/wood{
icon_state = "wood-broken2"
},
@@ -5787,9 +5787,9 @@
/area/overmap_encounter/planetoid/jungle/explored)
"Nh" = (
/obj/structure/filingcabinet,
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
/turf/open/floor/mineral/plastitanium,
/area/ruin/jungle/starport/tower)
"Nj" = (
diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
index dec4c65755f9..d40ca2c82b27 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
},
@@ -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/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_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
index fce0a7d6904d..75b7e390c540 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
@@ -3173,7 +3173,7 @@
/obj/structure/closet/cabinet,
/obj/item/hatchet/wooden,
/obj/item/ammo_box/a357,
-/obj/item/gun/ballistic/revolver/syndicate,
+/obj/item/gun/ballistic/revolver/viper,
/turf/open/floor/wood,
/area/ship/bridge)
"VM" = (
diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
index 9457e639c5ce..47455933ec16 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
@@ -798,7 +798,7 @@
/area/ruin/jungle/paradise/construction)
"eY" = (
/obj/structure/table/reinforced,
-/obj/item/kitchen/knife/butcher,
+/obj/item/melee/knife/butcher,
/obj/item/clothing/gloves/butchering,
/turf/open/floor/pod/dark,
/area/overmap_encounter/planetoid/cave/explored)
@@ -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
@@ -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,
@@ -5381,7 +5381,7 @@
"Ih" = (
/obj/structure/table/wood,
/obj/machinery/light/directional/south,
-/obj/item/reagent_containers/food/snacks/breadslice/moldy{
+/obj/item/food/breadslice/moldy{
pixel_x = -8
},
/obj/item/reagent_containers/food/snacks/grown/berries/poison{
@@ -7509,7 +7509,7 @@
},
/obj/effect/mob_spawn/human/corpse/nanotrasensoldier,
/obj/effect/decal/cleanable/vomit/old,
-/obj/item/reagent_containers/food/snacks/breadslice/moldy{
+/obj/item/food/breadslice/moldy{
pixel_x = -4;
pixel_y = 16
},
diff --git a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
index ce83713f82bb..2eba13537777 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
@@ -308,7 +308,7 @@
/turf/open/floor/plating/rust,
/area/ruin/jungle/syndifort/jerry)
"ik" = (
-/obj/item/kitchen/knife/combat{
+/obj/item/melee/knife/combat{
name = "bushcutter";
force = 18
},
@@ -627,7 +627,7 @@
/area/ruin/jungle/syndifort/jerry)
"ud" = (
/obj/structure/table,
-/obj/item/kitchen/knife/combat{
+/obj/item/melee/knife/combat{
name = "bushcutter";
force = 18
},
@@ -1108,7 +1108,7 @@
"Il" = (
/obj/effect/decal/cleanable/cobweb,
/obj/structure/rack,
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
/turf/open/floor/plating,
/area/ruin/jungle/syndifort)
"Iv" = (
@@ -1220,8 +1220,8 @@
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/south,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
/turf/open/floor/plating,
/area/ruin/jungle/syndifort)
"My" = (
@@ -1593,9 +1593,9 @@
/area/ruin/jungle/syndifort)
"WG" = (
/obj/structure/closet/crate/secure/weapon,
-/obj/item/gun/ballistic/automatic/smg/c20r,
-/obj/item/ammo_box/magazine/smgm45,
-/obj/item/ammo_box/magazine/smgm45,
+/obj/item/gun/ballistic/automatic/smg/cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
/turf/open/floor/plating,
/area/ruin/jungle/syndifort/jerry)
"WT" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm
new file mode 100644
index 000000000000..8cc99b4a591a
--- /dev/null
+++ b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm
@@ -0,0 +1,3947 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ae" = (
+/obj/structure/sign/poster/contraband/c20r,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/canteen)
+"aw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/railing,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"aD" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"aU" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"bm" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/railing,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"bv" = (
+/obj/structure/window/reinforced/spawner/north,
+/obj/machinery/telecomms/receiver,
+/obj/machinery/door/window/eastleft,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered/listening_post/operations)
+"bw" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"bA" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw,
+/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/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"bL" = (
+/obj/structure/flora/tree/dead/tall,
+/turf/open/floor/plating/grass/lava,
+/area/ruin/unpowered)
+"bT" = (
+/obj/structure/chair/plastic{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"cb" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
+ dir = 4
+ },
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"cm" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner,
+/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 = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post)
+"cr" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"cv" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"cB" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"cM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"cX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/blackbox_recorder,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"db" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"dm" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 8
+ },
+/obj/structure/fluff/paper/stack{
+ dir = 5;
+ pixel_y = 25;
+ layer = 2.89
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"dJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 2
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"dM" = (
+/obj/effect/turf_decal/siding/thinplating/dark/end{
+ dir = 4
+ },
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"dT" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"dY" = (
+/obj/item/ammo_casing/spent,
+/obj/effect/decal/cleanable/blood/splatter{
+ icon_state = "bubblegumfoot"
+ },
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"eN" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"eU" = (
+/obj/machinery/button/door{
+ id = "cafeteriashutters";
+ name = "Window Shutters";
+ dir = 1;
+ pixel_y = -20
+ },
+/obj/structure/closet/crate/bin,
+/obj/item/cigbutt{
+ pixel_y = -3
+ },
+/obj/item/cigbutt{
+ pixel_y = -3;
+ pixel_x = -7
+ },
+/obj/item/cigbutt{
+ pixel_y = 17;
+ pixel_x = -10
+ },
+/obj/item/cigbutt{
+ pixel_y = 1;
+ pixel_x = 7
+ },
+/obj/item/cigbutt{
+ pixel_y = 1;
+ pixel_x = -7
+ },
+/obj/item/cigbutt{
+ pixel_y = 15;
+ pixel_x = -7
+ },
+/obj/item/storage/fancy/cigarettes/derringer/gold,
+/obj/item/trash/can,
+/obj/item/trash/sosjerky{
+ pixel_y = 9;
+ pixel_x = -5
+ },
+/obj/item/trash/sosjerky{
+ pixel_y = 2;
+ pixel_x = 6
+ },
+/obj/item/trash/syndi_cakes,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"eW" = (
+/obj/machinery/door/airlock/external/glass{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"eX" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"fa" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"fd" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
+/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 = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"fg" = (
+/obj/structure/sign/poster/contraband/bulldog,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/commons)
+"fl" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/stairs,
+/area/ruin/unpowered/listening_post/engineering)
+"fo" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"fz" = (
+/obj/machinery/suit_storage_unit/open,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/unpowered/listening_post)
+"fG" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/obj/structure/chair/bench/red/directional/east,
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"fQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"fZ" = (
+/obj/effect/turf_decal/trimline/opaque/bar/filled/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"gr" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"gN" = (
+/obj/structure/table/reinforced,
+/obj/item/paper/crumpled/ruins{
+ pixel_y = 7;
+ pixel_x = -8
+ },
+/obj/item/paper/crumpled/ruins,
+/obj/item/toy/prize/ripley{
+ pixel_y = 13;
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"gT" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline"
+ },
+/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/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/structure/fluff/paper/stack{
+ dir = 4;
+ pixel_y = -4;
+ pixel_x = 11
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"gY" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"hh" = (
+/obj/structure/sign/poster/contraband/cybersun,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post)
+"hy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"hA" = (
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/machinery/power/port_gen/pacman/super/not_very,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"hC" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"hE" = (
+/obj/structure/curtain,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"hX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"ih" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 8
+ },
+/obj/machinery/door/window/brigdoor/northleft{
+ dir = 2
+ },
+/obj/structure/window/reinforced/spawner/east,
+/obj/structure/safe{
+ pixel_y = 9;
+ pixel_x = -4
+ },
+/obj/item/spacecash/bundle/loadsamoney,
+/obj/item/documents/syndicate,
+/obj/machinery/light/small/directional/north,
+/obj/item/folder/documents/syndicate/red,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"iR" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"jz" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters,
+/obj/structure/table/chem,
+/obj/item/tank/internals/anesthetic{
+ pixel_y = 3;
+ pixel_x = 6
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_y = 6;
+ pixel_x = -4
+ },
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"jN" = (
+/obj/structure/curtain,
+/obj/effect/turf_decal/techfloor/hole,
+/obj/effect/turf_decal/techfloor/hole/right,
+/obj/structure/window/reinforced/spawner/west,
+/obj/machinery/shower{
+ pixel_y = 19
+ },
+/obj/item/soap/syndie,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered/listening_post/canteen)
+"kb" = (
+/obj/item/kirbyplants/dead{
+ desc = "It doesn't look very healthy...";
+ name = "potted plant";
+ pixel_y = 10
+ },
+/obj/item/cigbutt{
+ pixel_y = -3;
+ pixel_x = -7
+ },
+/obj/item/cigbutt{
+ pixel_y = 17;
+ pixel_x = -10
+ },
+/obj/item/cigbutt{
+ pixel_y = 1;
+ pixel_x = 7
+ },
+/obj/item/cigbutt{
+ pixel_y = 15;
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"kk" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Bathroom"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"kz" = (
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"kA" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Engineering"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"kB" = (
+/obj/structure/flora/tree/dead/tall,
+/turf/open/floor/plating/grass/lava/purple,
+/area/ruin/unpowered)
+"lb" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/canteen)
+"lj" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"ls" = (
+/obj/item/toy/figure/syndie{
+ pixel_y = -1;
+ pixel_x = -33
+ },
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"lu" = (
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/end{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"lK" = (
+/obj/structure/railing/corner,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"lZ" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/operations)
+"mc" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_y = 9
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"mf" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"mh" = (
+/obj/structure/flora/ausbushes/sparsegrass/hell,
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"mj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"mp" = (
+/obj/structure/flora/ausbushes/sparsegrass/hell,
+/turf/open/floor/plating/grass/lava/purple,
+/area/ruin/unpowered)
+"mF" = (
+/obj/structure/flora/tree/dead/tall/grey,
+/turf/open/floor/plating/grass/lava,
+/area/ruin/unpowered)
+"mG" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post)
+"mU" = (
+/obj/machinery/door/airlock/hatch{
+ 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/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/operations)
+"na" = (
+/obj/structure/table/reinforced,
+/obj/machinery/fax{
+ pixel_y = 7
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"nc" = (
+/obj/structure/mirror{
+ pixel_x = 28;
+ icon_state = "mirror_broke";
+ name = "Shattered Mirror"
+ },
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 13
+ },
+/obj/effect/decal/cleanable/vomit/old,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered/listening_post/canteen)
+"np" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"nD" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"nY" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw,
+/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/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"oi" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ dir = 1
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"op" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post)
+"ot" = (
+/obj/structure/closet/cabinet{
+ name = "Alcohol Closet"
+ },
+/obj/item/reagent_containers/food/drinks/bottle/vodka,
+/obj/item/reagent_containers/food/drinks/bottle/absinthe/premium,
+/obj/structure/sign/poster/contraband/syndiemoth{
+ pixel_y = -31
+ },
+/obj/item/reagent_containers/food/drinks/bottle/rum,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"ou" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters{
+ dir = 4
+ },
+/obj/structure/bed/roller,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor2-old"
+ },
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"oC" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/half{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"oG" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"oO" = (
+/obj/structure/toilet{
+ pixel_y = 31;
+ dir = 1
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/canteen)
+"oS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"oT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/canteen)
+"oX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/canteen)
+"pa" = (
+/obj/structure/fluff/paper/stack{
+ dir = 1;
+ pixel_x = -16;
+ pixel_y = -2
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"pt" = (
+/obj/machinery/light/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wideplating/dark/end,
+/obj/structure/table/reinforced,
+/obj/item/storage/box/cups{
+ pixel_y = 8;
+ pixel_x = 7
+ },
+/obj/item/reagent_containers/food/drinks/colocup{
+ pixel_y = 6;
+ pixel_x = -7
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"pw" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline"
+ },
+/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 = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"px" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post)
+"pS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"pW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"pZ" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Medbay"
+ },
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"qo" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"qq" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating/ashplanet,
+/area/ruin/unpowered)
+"qv" = (
+/obj/structure/window/reinforced/spawner,
+/obj/machinery/telecomms/server,
+/obj/machinery/door/window/eastright,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered/listening_post/operations)
+"qC" = (
+/obj/item/kirbyplants/dead{
+ desc = "It doesn't look very healthy...";
+ name = "potted plant";
+ pixel_y = 10
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"qJ" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post)
+"qV" = (
+/turf/template_noop,
+/area/template_noop)
+"qW" = (
+/obj/structure/chair/bench/beige/directional/east,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"qX" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/toy/figure/secofficer{
+ pixel_y = 10;
+ pixel_x = 7
+ },
+/obj/item/toy/figure/head_of_personnel{
+ pixel_y = 13;
+ pixel_x = -9
+ },
+/obj/item/toy/figure/engineer{
+ pixel_y = 5;
+ pixel_x = -7
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"rb" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/secure_data/laptop,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post)
+"rG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/canteen)
+"rQ" = (
+/obj/structure/fluff/paper/stack{
+ dir = 4;
+ pixel_y = -4;
+ pixel_x = 11
+ },
+/obj/item/trash/can{
+ pixel_y = -24;
+ pixel_x = -16
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"sd" = (
+/obj/structure/closet/crate/grave/loot,
+/obj/effect/mob_spawn/human/skeleton,
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"sr" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 11
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/end{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"sM" = (
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered/listening_post/canteen)
+"sP" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"sX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"te" = (
+/obj/item/gun/ballistic/automatic/smg/cobra{
+ spawnwithmagazine = 0
+ },
+/obj/item/ammo_box/magazine/m45_cobra{
+ start_empty = 1
+ },
+/obj/structure/guncloset,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"tf" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"th" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/unpowered/listening_post)
+"tk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"to" = (
+/obj/machinery/atmospherics/components/binary/volume_pump/on/layer4{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"tG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_y = 8;
+ pixel_x = 18
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"tJ" = (
+/obj/structure/sign/departments/engineering,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/engineering)
+"tM" = (
+/obj/structure/flora/ausbushes/sparsegrass/hell,
+/turf/open/floor/plating/grass/lava/orange,
+/area/ruin/unpowered)
+"tS" = (
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"tV" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/reinforced,
+/obj/machinery/newscaster/directional/north,
+/obj/item/trash/plate{
+ pixel_y = -27;
+ pixel_x = 1
+ },
+/obj/item/reagent_containers/food/drinks/beer/light{
+ pixel_y = 10;
+ pixel_x = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"tY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post/operations)
+"uv" = (
+/obj/machinery/atmospherics/components/unary/tank/air,
+/obj/structure/railing/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"vu" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"vC" = (
+/obj/structure/flora/ausbushes/grassybush/hell,
+/turf/open/floor/plating/grass/lava/orange,
+/area/ruin/unpowered)
+"vG" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"vJ" = (
+/obj/machinery/suit_storage_unit/mining/eva,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/unpowered/listening_post)
+"vR" = (
+/obj/effect/decal/cleanable/blood/splatter{
+ icon_state = "floor7"
+ },
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"vU" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/obj/item/kirbyplants/dead{
+ desc = "It doesn't look very healthy...";
+ name = "potted plant";
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"vY" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post/operations)
+"wn" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "commsshutters"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/operations)
+"wr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"wz" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"wL" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/half{
+ dir = 1
+ },
+/obj/structure/table/chem,
+/obj/item/stack/medical/gauze/improvised{
+ pixel_y = 9
+ },
+/obj/item/stack/medical/gauze/improvised{
+ pixel_y = 11;
+ pixel_x = -4
+ },
+/obj/item/scalpel,
+/obj/machinery/light/directional/north,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"wO" = (
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_x = 15
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered/listening_post/canteen)
+"xv" = (
+/obj/structure/flora/ausbushes/grassybush/hell,
+/turf/open/floor/plating/grass/lava/purple,
+/area/ruin/unpowered)
+"xR" = (
+/obj/structure/table/reinforced,
+/obj/item/cutting_board{
+ anchored = 1
+ },
+/obj/item/melee/knife/kitchen,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"ya" = (
+/obj/item/trash/can{
+ pixel_y = 35;
+ pixel_x = -26
+ },
+/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 = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"yp" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/paper/stack{
+ dir = 5;
+ pixel_y = 25;
+ layer = 2.89
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"ys" = (
+/obj/structure/bed,
+/obj/structure/curtain,
+/obj/item/bedsheet/syndie,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"yN" = (
+/turf/open/floor/plating/grass/lava/purple,
+/area/ruin/unpowered)
+"yZ" = (
+/obj/item/trash/can{
+ pixel_y = -12;
+ pixel_x = -7
+ },
+/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/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"zd" = (
+/obj/effect/turf_decal/trimline/opaque/bar/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 11
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"zj" = (
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_y = -5;
+ pixel_x = 33
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"zA" = (
+/obj/structure/table/greyscale,
+/obj/structure/window/reinforced/spawner/east,
+/obj/effect/turf_decal/corner/opaque/syndiered/half{
+ dir = 1
+ },
+/obj/item/storage/firstaid{
+ pixel_y = -17;
+ pixel_x = -9
+ },
+/obj/item/stack/medical/bruise_pack,
+/obj/item/stack/medical/bruise_pack{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/stack/medical/ointment{
+ pixel_y = 6;
+ pixel_x = -6
+ },
+/obj/item/clothing/neck/stethoscope,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"zF" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/unpowered/listening_post)
+"zI" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/canteen)
+"Ao" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"Ap" = (
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"Ax" = (
+/obj/structure/table/reinforced,
+/obj/structure/fluff/paper/stack{
+ dir = 4;
+ pixel_y = -1
+ },
+/obj/item/trash/chips{
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"AB" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 8
+ },
+/obj/structure/fluff/paper/stack{
+ dir = 6;
+ pixel_y = 11;
+ pixel_x = 7
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"Bb" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 11
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"Bg" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters{
+ dir = 8
+ },
+/obj/structure/table/chem,
+/obj/item/clothing/gloves/color/latex,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"BB" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"BF" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"BL" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "commsshutters";
+ dir = 8
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/operations)
+"BM" = (
+/obj/machinery/telecomms/processor,
+/obj/machinery/door/window/eastright,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered/listening_post/operations)
+"BO" = (
+/obj/structure/flora/ausbushes/sparsegrass/hell,
+/turf/open/floor/plating/grass/lava,
+/area/ruin/unpowered)
+"Cx" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/operations)
+"Di" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Dr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/directional/west,
+/obj/structure/rack,
+/obj/item/reagent_containers/food/snacks/canned/beans{
+ pixel_y = 11;
+ pixel_x = 4
+ },
+/obj/item/reagent_containers/food/snacks/canned/beans{
+ pixel_y = 8;
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/food/snacks/canned/peaches{
+ pixel_y = 7;
+ pixel_x = 7
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"DE" = (
+/obj/effect/turf_decal/trimline/opaque/bar/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"DI" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_y = 8;
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_y = 6;
+ pixel_x = -7;
+ list_reagents = null
+ },
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"DS" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/vending/cigarette/syndicate,
+/obj/effect/turf_decal/siding/thinplating/dark/end{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"Ef" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"Eh" = (
+/obj/machinery/airalarm/directional/north,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"El" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Eq" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/book/random{
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"Ey" = (
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/structure/curtain,
+/obj/item/bedsheet/syndie{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"EA" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Dormitories"
+ },
+/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/plating,
+/area/ruin/unpowered/listening_post/commons)
+"EB" = (
+/obj/item/ammo_casing/spent,
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"EH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"EJ" = (
+/obj/effect/turf_decal/trimline/opaque/bar/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
+/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 = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"EM" = (
+/obj/structure/sign/syndicate,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post)
+"Fs" = (
+/obj/structure/chair/bench/beige/directional/east,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"FN" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/flashlight/lamp{
+ pixel_y = 6
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"FQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"FW" = (
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/power/smes/engineering,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"Gy" = (
+/obj/machinery/computer/telecomms/monitor{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"GB" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/engineering)
+"GH" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"Ip" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"IA" = (
+/obj/structure/chair/bench/beige/directional/west,
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_y = -1;
+ pixel_x = -8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"ID" = (
+/obj/structure/dresser,
+/obj/item/radio/old{
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/end{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"Jj" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 1
+ },
+/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/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/structure/fluff/paper/stack{
+ dir = 1;
+ pixel_x = -16;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"Jn" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"Jq" = (
+/obj/machinery/atmospherics/components/binary/pump/on/layer2{
+ dir = 1;
+ name = "distribution output pump"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"Js" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"JD" = (
+/obj/structure/chair/bench/beige/directional/west,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"KB" = (
+/obj/structure/sign/departments/restroom,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/canteen)
+"KJ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"KS" = (
+/obj/effect/turf_decal/trimline/opaque/bar/filled/warning{
+ 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 = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post)
+"KV" = (
+/obj/machinery/telecomms/bus,
+/obj/machinery/door/window/eastleft,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered/listening_post/operations)
+"KW" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/half{
+ dir = 4
+ },
+/obj/structure/table/chem,
+/obj/structure/sink/chem{
+ dir = 8
+ },
+/obj/item/cautery{
+ pixel_x = -9;
+ pixel_y = 14
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Li" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"Ln" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/commons)
+"LB" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "cafeteriashutters"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/canteen)
+"LD" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"LE" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"LI" = (
+/obj/structure/flora/tree/dead/barren,
+/turf/open/floor/plating/grass/lava/orange,
+/area/ruin/unpowered)
+"LV" = (
+/obj/structure/sign/warning/gasmask,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post)
+"Mg" = (
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"Mr" = (
+/obj/structure/fluff/paper/stack{
+ dir = 5;
+ pixel_y = 25;
+ layer = 2.89
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"MF" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ 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/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"MN" = (
+/obj/structure/flora/tree/dead/barren,
+/turf/open/floor/plating/grass/lava,
+/area/ruin/unpowered)
+"MU" = (
+/obj/machinery/computer/security{
+ dir = 8
+ },
+/obj/item/trash/pistachios{
+ pixel_y = 4;
+ pixel_x = -8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"MX" = (
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/mopbucket,
+/obj/item/mop,
+/turf/open/floor/plasteel/tech,
+/area/ruin/unpowered/listening_post/engineering)
+"MZ" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/ration,
+/obj/structure/sign/poster/official/high_class_martini{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"Nb" = (
+/obj/item/toy/plush/moth/firewatch{
+ name = "Syndiemoth plushie"
+ },
+/obj/item/toy/nuke{
+ pixel_x = 12;
+ pixel_y = -5
+ },
+/obj/item/toy/sword{
+ pixel_y = 2;
+ pixel_x = 2
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/canteen)
+"Nt" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"NI" = (
+/obj/structure/filingcabinet/double/grey{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"NK" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post/operations)
+"NP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"NV" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"NZ" = (
+/obj/structure/table/reinforced,
+/obj/item/trash/plate{
+ pixel_y = 29;
+ pixel_x = -2
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_y = 17;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_y = 17;
+ pixel_x = 4
+ },
+/obj/item/reagent_containers/food/drinks/beer/light{
+ pixel_y = 16;
+ pixel_x = -9
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"Oe" = (
+/obj/structure/dresser,
+/obj/effect/turf_decal/siding/thinplating/dark/end{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"Om" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"On" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/half{
+ dir = 1
+ },
+/obj/structure/closet/wall/med/directional/north,
+/obj/item/storage/firstaid/regular,
+/obj/item/storage/box/masks,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Oo" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"Op" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"OI" = (
+/obj/structure/noticeboard,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post/commons)
+"OP" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"OS" = (
+/obj/machinery/airalarm/directional/east,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"OW" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Pe" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/obj/structure/chair/bench/red/directional/east,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Pj" = (
+/obj/structure/flora/rock/hell,
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"PC" = (
+/obj/structure/plaque/listeningpost,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post)
+"PQ" = (
+/obj/machinery/door/airlock/hatch,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/canteen)
+"Qq" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave{
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"QC" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"QD" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/commons)
+"QP" = (
+/turf/open/floor/plating/grass/lava/orange,
+/area/ruin/unpowered)
+"QS" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 8
+ },
+/obj/machinery/vending/snack/random,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"QY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post/operations)
+"Rb" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/basalt/lava,
+/area/ruin/unpowered)
+"Ri" = (
+/obj/structure/closet/cabinet,
+/obj/item/storage/backpack/duffelbag/syndie,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"RV" = (
+/obj/effect/turf_decal/trimline/opaque/bar/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post)
+"SC" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 10
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "commsshutters";
+ name = "Window Shutters";
+ pixel_x = -23;
+ pixel_y = -6
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"Ta" = (
+/turf/closed/mineral/random/volcanic,
+/area/ruin/unpowered)
+"To" = (
+/obj/structure/sign/departments/medbay/alt,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/unpowered/listening_post)
+"Tp" = (
+/obj/structure/flora/ausbushes/grassybush/hell,
+/turf/open/floor/plating/grass/lava,
+/area/ruin/unpowered)
+"Ty" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/engineering)
+"TI" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"TK" = (
+/obj/machinery/door/airlock/hatch{
+ 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 = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post)
+"TM" = (
+/obj/structure/closet/cabinet,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"TS" = (
+/turf/open/floor/plating/grass/lava,
+/area/ruin/unpowered)
+"Ut" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ icon_state = "trimline";
+ dir = 9
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 11
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"UB" = (
+/obj/structure/flora/ausbushes/sparsegrass/hell,
+/obj/structure/flora/ausbushes/sparsegrass/hell,
+/turf/open/floor/plating/grass/lava/orange,
+/area/ruin/unpowered)
+"UV" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"Wa" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/corner,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Wc" = (
+/obj/structure/table/reinforced,
+/obj/item/paper/crumpled/ruins{
+ pixel_y = 1;
+ pixel_x = 6
+ },
+/obj/item/paper/pamphlet{
+ pixel_x = -7;
+ pixel_y = 4
+ },
+/obj/item/trash/cheesie{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"Wo" = (
+/obj/structure/table/wood/reinforced,
+/obj/machinery/light/small/directional/east,
+/obj/item/trash/can/food/beans{
+ pixel_y = 16
+ },
+/obj/item/trash/can/food/beans{
+ pixel_y = 12;
+ pixel_x = -8
+ },
+/obj/item/trash/can/food/beans{
+ pixel_y = 9;
+ pixel_x = 5
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/unpowered/listening_post/commons)
+"Wq" = (
+/obj/structure/chair/office{
+ name = "tactical swivel chair";
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/syndiered/arrow_ccw{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post)
+"WL" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/falsewall/plastitanium,
+/turf/open/floor/plating,
+/area/ruin/unpowered/listening_post/canteen)
+"WU" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Xi" = (
+/obj/structure/flora/ausbushes/fullgrass/hell,
+/turf/open/floor/plating/grass/lava,
+/area/ruin/unpowered)
+"Xk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"Xm" = (
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -8
+ },
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/effect/turf_decal/siding/thinplating/dark/end{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"XE" = (
+/obj/item/trash/chips{
+ pixel_y = 5
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"XY" = (
+/obj/effect/turf_decal/trimline/opaque/bar/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Yh" = (
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 5
+ },
+/obj/structure/closet/crate/bin,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"YK" = (
+/obj/structure/table/reinforced,
+/obj/machinery/reagentgrinder{
+ pixel_y = 12
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"YL" = (
+/obj/item/paper/crumpled/ruins,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+"YP" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/snacks/ration{
+ pixel_x = -8;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/food/snacks/ration{
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/snacks/ration{
+ pixel_y = 7;
+ pixel_x = -9
+ },
+/obj/item/reagent_containers/condiment/bbqsauce{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/unpowered/listening_post/canteen)
+"Zb" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/half,
+/turf/open/floor/hangar/plasteel/white,
+/area/ruin/unpowered/listening_post)
+"Zd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/canteen)
+"ZY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/unpowered/listening_post/operations)
+
+(1,1,1) = {"
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+"}
+(2,1,1) = {"
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+"}
+(3,1,1) = {"
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+TS
+TS
+Xi
+Xi
+Xi
+Xi
+Xi
+TS
+Ap
+Ap
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+TS
+TS
+TS
+qV
+qV
+qV
+"}
+(4,1,1) = {"
+qV
+Ap
+Ap
+Ap
+TS
+TS
+TS
+TS
+Xi
+Xi
+MN
+Xi
+Xi
+Xi
+TS
+Ap
+Pj
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+dY
+Ap
+TS
+Tp
+BO
+BO
+TS
+qV
+qV
+"}
+(5,1,1) = {"
+qV
+Ap
+Ap
+TS
+TS
+Xi
+Xi
+Xi
+Xi
+Xi
+Xi
+Xi
+TS
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+nD
+EB
+Ap
+EB
+Ap
+EB
+Ap
+TS
+mF
+BO
+TS
+qV
+qV
+"}
+(6,1,1) = {"
+qV
+Ap
+Ap
+TS
+Xi
+Xi
+Xi
+Tp
+Xi
+TS
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+lj
+GH
+vR
+Ap
+Ap
+Ap
+Ap
+Ap
+EB
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Tp
+TS
+qV
+qV
+"}
+(7,1,1) = {"
+qV
+qV
+Xi
+Xi
+Xi
+Xi
+TS
+TS
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+op
+op
+sP
+op
+Ta
+Ta
+Ap
+Ap
+Ap
+Ap
+Ta
+Ta
+Ta
+Ta
+Ap
+Ap
+Ap
+Ap
+Ap
+qV
+qV
+"}
+(8,1,1) = {"
+qV
+Ap
+TS
+TS
+TS
+TS
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ta
+Ta
+Ta
+op
+fz
+th
+op
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ap
+Ap
+Ap
+Ap
+qV
+"}
+(9,1,1) = {"
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ta
+Ta
+Ta
+Ta
+Ta
+op
+vJ
+zF
+op
+Ta
+Ta
+Ta
+Ta
+zI
+zI
+zI
+zI
+zI
+Ta
+Ta
+Ta
+Ta
+Ap
+Pj
+Ap
+qV
+"}
+(10,1,1) = {"
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+bT
+Ap
+Ap
+Ta
+Ta
+op
+op
+op
+op
+op
+LV
+eW
+op
+op
+op
+op
+op
+zI
+Om
+lb
+Dr
+zI
+zI
+zI
+Ta
+Ta
+Ap
+Ap
+Ap
+qV
+"}
+(11,1,1) = {"
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+DI
+Ap
+Ap
+Ta
+Ta
+op
+ou
+oC
+eX
+pZ
+DE
+fZ
+zd
+vU
+fG
+Pe
+cb
+zI
+MZ
+oX
+ot
+WL
+Nb
+zI
+Ta
+Ta
+Ap
+Ap
+Ap
+qV
+"}
+(12,1,1) = {"
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+sd
+Ap
+Ap
+Ta
+Ta
+op
+zA
+El
+tf
+To
+np
+fQ
+KJ
+sX
+oS
+oS
+fd
+zI
+zI
+oT
+zI
+rG
+zI
+zI
+Ta
+Ta
+yN
+Ap
+Ap
+qV
+"}
+(13,1,1) = {"
+qV
+Ap
+Pj
+Ap
+Ap
+Ap
+ls
+Ap
+Ap
+Ta
+Ta
+op
+wL
+tk
+eN
+hE
+bw
+TI
+cv
+WU
+Wa
+XY
+EJ
+zI
+kb
+LD
+QC
+YK
+Qq
+zI
+Ta
+yN
+yN
+Ap
+qV
+qV
+"}
+(14,1,1) = {"
+qV
+qV
+Ap
+QP
+Ap
+Ap
+Ap
+Ap
+Ap
+Ta
+Ta
+op
+On
+tS
+Zb
+hE
+Di
+OW
+mG
+mG
+EM
+RV
+KS
+zI
+qW
+Fs
+Ao
+Mg
+xR
+LB
+Ap
+mp
+kB
+yN
+qV
+qV
+"}
+(15,1,1) = {"
+qV
+qV
+QP
+QP
+QP
+QP
+QP
+Ap
+Ap
+Ta
+Ta
+op
+Bg
+KW
+jz
+hE
+Yh
+oG
+rb
+Wq
+qJ
+px
+cm
+zI
+tV
+NZ
+Ao
+wr
+YP
+LB
+Ap
+mp
+yN
+yN
+qV
+qV
+"}
+(16,1,1) = {"
+qV
+qV
+QP
+tM
+tM
+QP
+QP
+Ap
+Ap
+Ta
+Ta
+op
+op
+op
+op
+op
+op
+hh
+op
+PC
+op
+Js
+TK
+zI
+JD
+IA
+zj
+Zd
+aU
+LB
+Ap
+mp
+yN
+Ap
+qV
+qV
+"}
+(17,1,1) = {"
+qV
+qV
+QP
+QP
+tM
+tM
+QP
+QP
+Ap
+Ap
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ln
+iR
+pw
+zI
+Eh
+Zd
+Ao
+Zd
+eU
+zI
+Ta
+mh
+mp
+yN
+qV
+qV
+"}
+(18,1,1) = {"
+qV
+qV
+QP
+QP
+QP
+tM
+tM
+QP
+Ap
+Ta
+Ta
+Ta
+Ta
+Ln
+Ln
+Ln
+Ln
+Ln
+Ln
+Ln
+Ln
+QD
+yp
+PQ
+fa
+Xk
+fo
+OP
+DS
+ae
+Ta
+Ap
+yN
+Ap
+qV
+qV
+"}
+(19,1,1) = {"
+qV
+qV
+QP
+QP
+LI
+QP
+tM
+QP
+Ap
+Ap
+Ta
+Ta
+Ta
+Ln
+ID
+Ey
+FN
+qX
+Ri
+sr
+Ln
+db
+pw
+zI
+Xm
+pt
+tG
+LE
+dM
+zI
+Ta
+Ta
+Ap
+Ap
+qV
+qV
+"}
+(20,1,1) = {"
+qV
+qV
+QP
+QP
+QP
+vC
+QP
+tM
+QP
+Ap
+Ta
+Ta
+Ta
+Ln
+vG
+mj
+NP
+hy
+dJ
+cr
+EA
+Jj
+cB
+zI
+zI
+zI
+kk
+KB
+zI
+zI
+Ta
+Ta
+Ap
+Ap
+qV
+qV
+"}
+(21,1,1) = {"
+qV
+qV
+Ap
+tM
+tM
+QP
+QP
+QP
+QP
+Ap
+Ta
+Ta
+Ta
+Ln
+Oe
+ys
+Wo
+Eq
+TM
+lu
+Ln
+oi
+bA
+fg
+Ta
+zI
+wO
+sM
+oO
+Ta
+Ta
+Ta
+Ap
+Ap
+qV
+qV
+"}
+(22,1,1) = {"
+qV
+qV
+Ap
+QP
+tM
+QP
+LI
+vC
+QP
+Ap
+Ta
+Ta
+Ta
+Ln
+Ln
+Ln
+Ln
+Ln
+Ln
+Ln
+OI
+vu
+gY
+Ln
+Ta
+zI
+jN
+nc
+zI
+Ta
+Ta
+Ta
+Pj
+Ap
+qV
+qV
+"}
+(23,1,1) = {"
+qV
+Ap
+Ap
+QP
+QP
+tM
+QP
+QP
+QP
+Ap
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ln
+Oo
+gT
+Ln
+Ta
+zI
+zI
+zI
+zI
+Ta
+Ta
+Ta
+Ap
+Ap
+qV
+qV
+"}
+(24,1,1) = {"
+qV
+Ap
+Ap
+Ap
+QP
+tM
+QP
+vC
+QP
+Ap
+Ap
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ln
+NV
+nY
+Ln
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ap
+qV
+qV
+qV
+"}
+(25,1,1) = {"
+qV
+qV
+Ap
+Ap
+QP
+QP
+UB
+QP
+QP
+Ap
+Ap
+Ta
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+Cx
+mU
+lZ
+GB
+GB
+GB
+GB
+GB
+Ta
+Ta
+Ta
+Ap
+qV
+qV
+qV
+"}
+(26,1,1) = {"
+qV
+qV
+Pj
+Ap
+Ap
+QP
+QP
+QP
+Ap
+Ap
+Ap
+Ta
+lZ
+ih
+gr
+SC
+bv
+BM
+KV
+qv
+Ut
+hC
+MF
+QS
+GB
+Bb
+Jq
+uv
+GB
+GB
+GB
+Ta
+Ap
+qV
+qV
+qV
+"}
+(27,1,1) = {"
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+QP
+QP
+Ap
+Ap
+Ap
+Ap
+lZ
+na
+EH
+AB
+Li
+Li
+qo
+dm
+Ip
+pa
+yZ
+Ef
+GB
+hX
+dT
+bm
+FW
+hA
+GB
+Ta
+TS
+Ap
+qV
+qV
+"}
+(28,1,1) = {"
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Pj
+Ap
+Ap
+wn
+Wc
+Nt
+aD
+vY
+NK
+QY
+tY
+tY
+FQ
+rQ
+ya
+tJ
+Ty
+pS
+lK
+fl
+mf
+GB
+Ta
+TS
+TS
+qV
+qV
+"}
+(29,1,1) = {"
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+BL
+wn
+MU
+gN
+Op
+Mr
+pW
+UV
+YL
+ZY
+kz
+BB
+kA
+BF
+cM
+aw
+FW
+hA
+GB
+Ta
+Tp
+TS
+qV
+qV
+"}
+(30,1,1) = {"
+qV
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+BL
+wn
+NI
+XE
+cX
+Ax
+Gy
+mc
+te
+OS
+qC
+GB
+Jn
+MX
+to
+GB
+GB
+GB
+Ta
+BO
+TS
+qV
+qV
+"}
+(31,1,1) = {"
+qV
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Pj
+Ap
+Ap
+Ap
+Ap
+Ap
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+lZ
+GB
+GB
+GB
+wz
+GB
+Ta
+Ta
+Ta
+TS
+BO
+qV
+qV
+"}
+(32,1,1) = {"
+qV
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+yN
+yN
+yN
+Ap
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+qq
+Rb
+qq
+Ta
+Ta
+Tp
+TS
+BO
+qV
+qV
+"}
+(33,1,1) = {"
+qV
+qV
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+yN
+mp
+mp
+mp
+yN
+yN
+Ap
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ta
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+bL
+BO
+qV
+qV
+"}
+(34,1,1) = {"
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+yN
+mp
+mp
+mp
+mp
+mp
+yN
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Pj
+Ap
+Ap
+Tp
+qV
+qV
+"}
+(35,1,1) = {"
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+yN
+mp
+mp
+xv
+yN
+Ap
+Ap
+Ap
+Pj
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+Pj
+Ap
+Ap
+Ap
+Ap
+Ap
+Ap
+qV
+qV
+"}
+(36,1,1) = {"
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+Ap
+Ap
+Ap
+Ap
+Ap
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+qV
+"}
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
index 138b1e9d31ed..4d63ae26b5bb 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
@@ -637,7 +637,7 @@
/obj/structure/table,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/east,
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_x = 7;
pixel_y = 10
},
@@ -721,7 +721,7 @@
/obj/structure/cable/green{
icon_state = "1-4"
},
-/obj/item/reagent_containers/food/snacks/breadslice/moldy{
+/obj/item/food/breadslice/moldy{
pixel_x = 5
},
/turf/open/floor/pod,
@@ -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_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
index a4b07632face..a53bebe1ff01 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm
@@ -608,7 +608,7 @@
dir = 9
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/spawner/burrow/lava_planet,
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/winter_biodome/living_quarters)
"fs" = (
@@ -829,7 +829,7 @@
/area/ruin/unpowered/winter_biodome)
"kb" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/breadslice/plain,
+/obj/item/food/breadslice/plain,
/obj/item/reagent_containers/food/snacks/grown/cabbage,
/turf/open/floor/wood,
/area/ruin/unpowered/winter_biodome/cabin)
@@ -896,7 +896,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/spawner/burrow/lava_planet,
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/winter_biodome/living_quarters)
"lq" = (
@@ -952,7 +952,7 @@
"mD" = (
/obj/effect/turf_decal/solgov/wood/center,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/spawner/burrow/lava_planet,
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/wood,
/area/ruin/unpowered/winter_biodome/living_quarters)
"mX" = (
@@ -1006,8 +1006,8 @@
"oR" = (
/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal,
/obj/structure/closet/secure_closet/freezer,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
+/obj/item/food/bread/plain,
+/obj/item/food/bread/plain,
/obj/item/reagent_containers/food/snacks/grown/cabbage,
/obj/item/reagent_containers/food/snacks/grown/cabbage,
/obj/effect/decal/cleanable/dirt/dust,
@@ -1072,7 +1072,7 @@
"qj" = (
/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal,
/obj/structure/table/wood,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/winter_biodome/living_quarters)
"qr" = (
@@ -1081,7 +1081,7 @@
},
/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/spawner/burrow/lava_planet,
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/winter_biodome/engineering)
"qt" = (
@@ -1467,10 +1467,10 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/blood/gibs/up,
-/obj/structure/spawner/burrow/lava_planet,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/wood,
/area/ruin/unpowered/winter_biodome/entrance)
"Ar" = (
@@ -1925,7 +1925,7 @@
/turf/open/floor/wood,
/area/ruin/unpowered/winter_biodome/sauna)
"Lf" = (
-/obj/structure/spawner/burrow/lava_planet,
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/grass/snow,
/area/ruin/unpowered/winter_biodome)
"Lt" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm
index b71bfb250aee..17094a2d2bff 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm
@@ -542,7 +542,7 @@
/area/ruin/unpowered/buried_shrine)
"nq" = (
/obj/structure/stone_tile/surrounding,
-/obj/structure/spawner/burrow/lava_planet,
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/buried_shrine)
"nz" = (
@@ -930,7 +930,10 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/buried_shrine)
"wM" = (
-/obj/structure/stone_tile/slab,
+/obj/structure/stone_tile/surrounding/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/center,
/obj/structure/spawner/burrow/lava_planet,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/buried_shrine)
@@ -1648,6 +1651,7 @@
dir = 1
},
/obj/structure/spawner/burrow/lava_planet,
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/buried_shrine)
"QR" = (
@@ -1803,7 +1807,7 @@
/area/ruin/unpowered/buried_shrine)
"UF" = (
/obj/structure/stone_tile/block,
-/obj/item/claymore/bone{
+/obj/item/melee/sword/bone{
pixel_x = 8;
pixel_y = 21
},
@@ -1819,7 +1823,7 @@
/area/ruin/unpowered/buried_shrine)
"VG" = (
/obj/structure/table/wood,
-/obj/item/kitchen/knife/combat/bone,
+/obj/item/melee/knife/bone,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/buried_shrine)
"Wd" = (
@@ -1864,7 +1868,7 @@
/obj/structure/stone_tile{
dir = 1
},
-/obj/structure/spawner/burrow/lava_planet,
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit,
/area/ruin/unpowered/buried_shrine)
"Xr" = (
@@ -3928,7 +3932,7 @@ LJ
ta
NN
ta
-Xv
+wM
Ad
mM
Ad
@@ -4095,7 +4099,7 @@ ee
WZ
WZ
yz
-wM
+Ad
tL
WZ
Yh
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 9babc1631c8f..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/kitchen/knife/combat/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/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
index 3efc7429d803..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)
@@ -345,7 +341,7 @@
/obj/effect/mob_spawn/human/corpse{
mob_species = /datum/species/lizard/ashwalker
},
-/obj/item/spear/bonespear{
+/obj/item/melee/spear/bone{
pixel_x = 10;
pixel_y = -2
},
@@ -611,7 +607,7 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit,
/area/overmap_encounter/planetoid/lava/explored)
"pX" = (
-/obj/item/claymore/bone{
+/obj/item/melee/sword/bone{
pixel_x = -12;
pixel_y = 11
},
@@ -1101,7 +1097,7 @@
pixel_y = -11;
pixel_x = -7
},
-/obj/item/kitchen/knife/combat/bone{
+/obj/item/melee/knife/bone{
pixel_x = 10;
pixel_y = -10
},
@@ -1474,7 +1470,7 @@
/turf/closed/mineral/random/volcanic,
/area/overmap_encounter/planetoid/cave/explored)
"PP" = (
-/obj/item/kitchen/knife/combat/bone{
+/obj/item/melee/knife/bone{
pixel_x = -2;
pixel_y = 4
},
@@ -1706,7 +1702,7 @@
pixel_x = -2;
pixel_y = 1
},
-/obj/item/spear/bonespear{
+/obj/item/melee/spear/bone{
pixel_x = 8;
pixel_y = 14
},
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
index 0064e874017d..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)
@@ -1098,7 +1098,7 @@
/obj/effect/decal/cleanable/blood{
icon_state = "drip1"
},
-/obj/item/spear,
+/obj/item/melee/spear,
/obj/item/bodypart/l_arm,
/turf/open/floor/plasteel/dark,
/area/ruin/lavaland/factory/dorms)
@@ -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,
@@ -2691,8 +2691,8 @@
/turf/open/floor/carpet/blue,
/area/ruin/lavaland/factory/manager_office)
"zl" = (
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
/obj/structure/closet/crate/secure/gear,
/turf/open/floor/plasteel/mono,
/area/ruin/lavaland/factory/warehouse)
@@ -2982,7 +2982,7 @@
dir = 1
},
/obj/machinery/light/directional/west,
-/obj/item/kitchen/knife/hunting,
+/obj/item/melee/knife/hunting,
/obj/item/clothing/suit/hooded/cloak/goliath,
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/white,
@@ -3828,7 +3828,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/item/kitchen/knife/shiv,
+/obj/item/melee/knife/shiv,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/adminstrative)
"LX" = (
@@ -4302,7 +4302,7 @@
"QM" = (
/obj/structure/table/wood,
/obj/item/cutting_board,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/turf/open/floor/wood,
/area/ruin/lavaland/factory/adminstrative)
"QR" = (
@@ -4360,7 +4360,7 @@
/area/ruin/lavaland/factory/adminstrative)
"RC" = (
/obj/effect/turf_decal/siding/white,
-/obj/item/ammo_box/magazine/m10mm{
+/obj/item/ammo_box/magazine/m10mm_ringneck{
start_empty = 1
},
/obj/item/ammo_casing/c10mm{
@@ -5013,7 +5013,7 @@
/obj/effect/mob_spawn/human/corpse/syndicatesoldier,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/turf_decal/siding/white,
-/obj/item/ammo_box/magazine/m10mm{
+/obj/item/ammo_box/magazine/m10mm_ringneck{
start_empty = 1
},
/turf/open/floor/concrete/pavement/lava,
diff --git a/_maps/RandomRuins/ReebeRuins/reebe_arena.dmm b/_maps/RandomRuins/ReebeRuins/reebe_arena.dmm
index 448690c0e77a..6e7e5131b640 100644
--- a/_maps/RandomRuins/ReebeRuins/reebe_arena.dmm
+++ b/_maps/RandomRuins/ReebeRuins/reebe_arena.dmm
@@ -45,10 +45,6 @@
"pm" = (
/turf/open/floor/bronze,
/area/ruin/reebe)
-"pW" = (
-/obj/item/nullrod/spear,
-/turf/open/floor/bronze,
-/area/ruin/reebe)
"qj" = (
/mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal,
/obj/structure/fans/tiny/invisible,
@@ -56,7 +52,6 @@
/area/ruin/reebe)
"qC" = (
/obj/structure/chair/comfy/shuttle/bronze,
-/obj/item/nullrod/spear,
/turf/open/floor/bronze,
/area/ruin/reebe)
"vz" = (
@@ -91,7 +86,6 @@
/area/ruin/reebe)
"Ag" = (
/obj/structure/table/bronze,
-/obj/item/nullrod/spear,
/turf/open/floor/bronze,
/area/ruin/reebe)
"AT" = (
@@ -220,17 +214,13 @@
/turf/open/floor/bronze,
/area/ruin/reebe)
"Ux" = (
-/obj/item/spear,
+/obj/item/melee/spear,
/obj/item/grenade/c4,
/turf/open/floor/bronze,
/area/ruin/reebe)
"UU" = (
/turf/open/chasm/reebe_void,
/area/ruin/reebe)
-"VT" = (
-/obj/structure/table/bronze,
-/turf/open/floor/bronze,
-/area/ruin/reebe)
"Xr" = (
/obj/machinery/door/airlock/bronze/seethru{
name = "Summoning Chamber"
@@ -2127,7 +2117,7 @@ Cj
Cj
Fz
pm
-VT
+Ag
Ib
Cj
FD
@@ -2186,7 +2176,7 @@ IC
IC
Cj
Cj
-VT
+Ag
Fz
pm
pm
@@ -2251,7 +2241,7 @@ la
la
pm
pm
-pW
+pm
pm
xy
pm
@@ -2505,7 +2495,7 @@ pm
pm
pm
Cj
-VT
+Ag
pm
pm
pm
@@ -2559,7 +2549,7 @@ pm
Cj
pm
pm
-pW
+pm
JC
pm
JC
@@ -2567,7 +2557,7 @@ pm
JC
pm
De
-VT
+Ag
pm
pm
pm
@@ -2815,7 +2805,7 @@ pm
JC
pm
De
-VT
+Ag
pm
pm
pm
@@ -2877,7 +2867,7 @@ pm
pm
pm
Cj
-VT
+Ag
pm
pm
pm
@@ -2996,11 +2986,11 @@ JC
pm
pm
Rc
-VT
+Ag
Cj
Ag
-VT
-VT
+Ag
+Ag
pm
pm
pm
@@ -3053,7 +3043,7 @@ IC
IC
IC
De
-VT
+Ag
pm
pm
pm
@@ -3127,7 +3117,7 @@ pm
pm
pm
pm
-VT
+Ag
Cj
pm
pm
@@ -3178,7 +3168,7 @@ IC
IC
Cj
Cj
-VT
+Ag
hO
pm
hO
@@ -3188,7 +3178,7 @@ pm
pm
pm
pm
-VT
+Ag
Cj
Cj
pm
@@ -3242,14 +3232,14 @@ IC
Cj
Cj
Pn
-VT
+Ag
Pn
-VT
+Ag
Cj
-VT
+Ag
pm
pm
-VT
+Ag
Cj
Cj
pm
diff --git a/_maps/RandomRuins/ReebeRuins/reebe_decayed_sm.dmm b/_maps/RandomRuins/ReebeRuins/reebe_decayed_sm.dmm
index c768b54fe0ab..e1b0f36f687c 100644
--- a/_maps/RandomRuins/ReebeRuins/reebe_decayed_sm.dmm
+++ b/_maps/RandomRuins/ReebeRuins/reebe_decayed_sm.dmm
@@ -7,7 +7,6 @@
/turf/open/floor/bronze,
/area/ruin/reebe)
"d" = (
-/obj/item/nullrod/spear,
/turf/open/floor/bronze,
/area/ruin/reebe)
"e" = (
@@ -57,9 +56,6 @@
"O" = (
/turf/closed/wall/mineral/bronze,
/area/ruin/reebe)
-"Y" = (
-/turf/open/floor/bronze,
-/area/ruin/reebe)
"Z" = (
/obj/effect/decal/remains/human,
/turf/open/floor/bronze,
@@ -78,8 +74,8 @@ a
a
"}
(2,1,1) = {"
-Y
-Y
+d
+d
C
C
x
@@ -102,19 +98,19 @@ a
o
"}
(4,1,1) = {"
-Y
+d
O
e
C
C
O
-Y
+d
O
-Y
+d
E
"}
(5,1,1) = {"
-Y
+d
B
e
C
@@ -122,23 +118,23 @@ M
v
Z
v
-Y
+d
a
"}
(6,1,1) = {"
-Y
+d
O
C
e
e
O
-Y
+d
O
-Y
+d
a
"}
(7,1,1) = {"
-Y
+d
C
y
C
@@ -154,19 +150,19 @@ E
C
C
C
-Y
-Y
-Y
+d
+d
+d
E
a
a
"}
(9,1,1) = {"
-Y
-Y
+d
+d
E
E
-Y
+d
E
a
a
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/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/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
new file mode 100644
index 000000000000..2fd3caa4c42f
--- /dev/null
+++ b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
@@ -0,0 +1,6628 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ah" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/rockplanet/distillery)
+"aj" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-10"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"av" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"aB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/chair/sofa/brown/old/right/directional/south,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/crew)
+"aC" = (
+/obj/structure/catwalk/over,
+/obj/structure/railing{
+ layer = 4.1
+ },
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aE" = (
+/obj/structure/catwalk/over,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/glass,
+/obj/item/reagent_containers/condiment/sugar{
+ pixel_y = 13;
+ pixel_x = -2;
+ layer = 2.8
+ },
+/obj/item/stock_parts/micro_laser{
+ pixel_y = 16;
+ pixel_x = 6;
+ layer = 2.8
+ },
+/obj/machinery/reagentgrinder,
+/obj/item/stock_parts/scanning_module{
+ pixel_x = -6;
+ pixel_y = 6;
+ layer = 2.8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_y = 10;
+ pixel_x = 10
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"aG" = (
+/obj/structure/cable/yellow{
+ icon_state = "5-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-5"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aJ" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/office)
+"ba" = (
+/obj/structure/chair/office,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/internals/neutered,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"bd" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"be" = (
+/obj/machinery/light/floor,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg3"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bm" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"br" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/door/airlock/external,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"bu" = (
+/obj/structure/chair/sofa/brown/corpo/left/directional/west,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"bz" = (
+/obj/effect/turf_decal/ntlogo{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "f";
+ pixel_x = 6;
+ color = "#0094FF"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"bH" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ target_pressure = 500;
+ name = "Air to Distro"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/engineering)
+"bI" = (
+/obj/structure/window/reinforced,
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/east{
+ pixel_y = -6
+ },
+/obj/machinery/light_switch{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/light_switch{
+ pixel_x = 22;
+ pixel_y = 5;
+ dir = 8
+ },
+/obj/effect/decal/cleanable/generic,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "2-5"
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/shuttle)
+"bS" = (
+/obj/machinery/washing_machine,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/distillery/crew)
+"bT" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 8
+ },
+/obj/structure/railing/corner{
+ dir = 8;
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/sofa/brown/old/left/directional/west,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"bY" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/office)
+"cf" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/catwalk/over,
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/machinery/door/window/northleft,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/distillery/crew)
+"co" = (
+/obj/structure/catwalk/over,
+/obj/structure/fermenting_barrel,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"cp" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/office)
+"cw" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/structure/grille/broken,
+/obj/structure/barricade/wooden,
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery/saloon)
+"cA" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/generic,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"cP" = (
+/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/condiment/sugar,
+/obj/item/reagent_containers/condiment/sugar,
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = 3
+ },
+/obj/structure/closet/crate/freezer,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"cQ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"cS" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/structure/table,
+/obj/item/clothing/gloves/color/yellow{
+ pixel_y = -16
+ },
+/obj/item/stock_parts/capacitor{
+ pixel_x = -6;
+ pixel_y = -4
+ },
+/obj/item/weldingtool/largetank{
+ pixel_y = 3
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/machinery/light/dim/directional/east,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/engineering)
+"dn" = (
+/obj/structure/flora/rock/rockplanet{
+ icon_state = "redrock3"
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "foam_plating"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dw" = (
+/obj/structure/flora/ash/cacti,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dI" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dJ" = (
+/obj/effect/turf_decal/ntlogo{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"dK" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/port_gen/pacman/super,
+/obj/effect/turf_decal/siding/white/end{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/engineering)
+"dP" = (
+/obj/machinery/shower{
+ pixel_y = 12
+ },
+/obj/structure/catwalk/over,
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/machinery/door/window/southright,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/distillery/crew)
+"dU" = (
+/obj/structure/flora/ash/cacti,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dZ" = (
+/obj/machinery/vending/cola/random,
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"ed" = (
+/turf/closed/wall/rust,
+/area/ruin/rockplanet/distillery)
+"eh" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/office)
+"em" = (
+/obj/structure/flora/ash/leaf_shroom,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"en" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/item/storage/bottles/moonshine/sealed,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"eF" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/rockplanet/distillery/crew)
+"eG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/crew)
+"fl" = (
+/obj/structure/reagent_dispensers/cooking_oil{
+ name = "moonshine vat";
+ desc = "A huge metal vat with a tap on the front. Filled with moonshine.";
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine
+ },
+/obj/structure/fermenting_barrel/distiller{
+ pixel_y = -14;
+ density = 0
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"fs" = (
+/obj/structure/fermenting_barrel,
+/obj/effect/decal/cleanable/greenglow,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/broken/directional/south,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg3"
+ },
+/area/ruin/rockplanet/distillery)
+"fv" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "frontier_door";
+ name = "Door Lock";
+ pixel_x = 23;
+ pixel_y = -2;
+ normaldoorcontrol = 1;
+ specialfunctions = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 1
+ },
+/area/ruin/rockplanet/distillery)
+"fF" = (
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-5"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fJ" = (
+/obj/structure/catwalk/over,
+/obj/machinery/light/small/broken/directional/west,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"fM" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/vomit/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"fO" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 10
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fW" = (
+/obj/structure/rack,
+/obj/item/storage/bottles/moonshine{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"gg" = (
+/obj/structure/flora/ausbushes/sunnybush{
+ layer = 3
+ },
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gk" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 6
+ },
+/obj/structure/mopbucket,
+/obj/item/holosign_creator/janibarrier,
+/obj/item/mop,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gu" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/office)
+"gw" = (
+/obj/structure/table/wood/poker,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/item/toy/cards/deck{
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"gA" = (
+/obj/structure/table/wood/reinforced,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/ammo_box/magazine/m9mm_rattlesnake{
+ pixel_y = 6;
+ pixel_x = 12;
+ layer = 3.1
+ },
+/obj/item/ammo_box/magazine/m9mm_rattlesnake{
+ pixel_y = 6;
+ pixel_x = 6;
+ start_empty = 1;
+ layer = 3.1
+ },
+/obj/item/ammo_casing/c9mm,
+/obj/item/ammo_casing/c9mm,
+/obj/item/ammo_casing/c9mm,
+/obj/item/ammo_casing/c9mm,
+/obj/item/ammo_casing/c9mm,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/office)
+"gM" = (
+/obj/machinery/door/airlock,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"gU" = (
+/obj/structure/catwalk/over,
+/obj/structure/table/glass,
+/obj/item/cigbutt{
+ pixel_x = 4
+ },
+/obj/item/cigbutt{
+ pixel_x = -3;
+ pixel_y = 4
+ },
+/obj/item/electronics/firealarm{
+ pixel_y = 6;
+ pixel_x = -4
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry{
+ pixel_y = 6;
+ pixel_x = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "panelscorched"
+ },
+/area/ruin/rockplanet/distillery)
+"gX" = (
+/obj/structure/reagent_dispensers/beerkeg{
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine;
+ name = "moonshine keg";
+ desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers."
+ },
+/obj/effect/turf_decal/industrial/loading/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"hi" = (
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg1"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hq" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 12;
+ pixel_x = 8
+ },
+/obj/item/clothing/head/beret/sec/frontier{
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"hy" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hA" = (
+/obj/structure/table/wood/reinforced,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/reagent_containers/food/snacks/chips{
+ pixel_y = 4;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_y = 8;
+ pixel_x = 6
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"hH" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/door/airlock/external/glass,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"hN" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/structure/chair/sofa/brown/old/right/directional/south,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"hP" = (
+/obj/structure/catwalk/over,
+/obj/machinery/computer/atmos_alert/retro{
+ dir = 1
+ },
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"hS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hY" = (
+/turf/closed/mineral/random/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ih" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/machinery/light/dim/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/safe/floor,
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "credit"
+ },
+/obj/item/spacecash/bundle/loadsamoney,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"ir" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/obj/machinery/porta_turret/ship/weak,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/rockplanet/distillery/office)
+"iy" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"iT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg2"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ji" = (
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jm" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/power/smes/shuttle/micro/precharged{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pod_window"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/distillery/shuttle)
+"jE" = (
+/obj/structure/catwalk/over,
+/turf/closed/mineral/random/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"jF" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"jI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/sofa/brown/corpo/right/directional/west,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"jM" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/distillery/office)
+"jO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Input to Air"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/engineering)
+"jS" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/effect/decal/cleanable/ash,
+/obj/item/cigbutt{
+ pixel_y = 3;
+ pixel_x = 6
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"kd" = (
+/obj/structure/curtain/cloth/grey,
+/obj/structure/bed{
+ dir = 8;
+ icon_state = "dirty_mattress"
+ },
+/obj/item/bedsheet/dorms,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"kn" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kq" = (
+/obj/effect/turf_decal/industrial/traffic,
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/machinery/light/dim/directional/south,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"ky" = (
+/obj/structure/flora/ausbushes/sparsegrass/hell{
+ name = "dead grass";
+ desc = "A sparse patch of grass without color.";
+ light_range = 0;
+ light_power = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kC" = (
+/obj/structure/curtain/cloth/grey,
+/obj/structure/bed{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"kO" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/obj/item/trash/plate{
+ pixel_y = 16
+ },
+/obj/item/reagent_containers/food/snacks/donkpocket/warm/pizza{
+ pixel_y = 18
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"kT" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 1
+ },
+/obj/structure/railing{
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kU" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/machinery/light/dim/directional/north,
+/obj/structure/chair/sofa/brown/old/directional/south,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/crew)
+"kZ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery)
+"lc" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lD" = (
+/turf/closed/wall/r_wall,
+/area/overmap_encounter/planetoid/cave/explored)
+"lE" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/distillery/crew)
+"lK" = (
+/obj/structure/dresser,
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/neck/stethoscope{
+ pixel_y = 8
+ },
+/obj/item/toy/plush/carpplushie{
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"lL" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/turretid/lethal{
+ pixel_y = 24
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"lQ" = (
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg3"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lS" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lU" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/rockplanet/distillery/shuttle)
+"me" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "panelscorched"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mk" = (
+/obj/machinery/door/airlock{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"mp" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-6"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mq" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-14";
+ layer = 3.8
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/item/broken_bottle{
+ pixel_x = 8
+ },
+/obj/item/shard{
+ pixel_x = -4
+ },
+/obj/item/pushbroom{
+ pixel_y = -12;
+ pixel_x = 5;
+ layer = 3.9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/machinery/light/small/broken/directional/west,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery)
+"mv" = (
+/obj/structure/table/wood/reinforced,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/folder/red{
+ pixel_x = -2;
+ pixel_y = 3
+ },
+/obj/item/folder/yellow{
+ pixel_y = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/office)
+"mE" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/structure/railing{
+ dir = 1;
+ layer = 2.7
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"mF" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/shuttle)
+"mK" = (
+/turf/open/floor/plasteel/stairs/wood{
+ color = "#5B3E1D"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"mX" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery)
+"mY" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{
+ dir = 4
+ },
+/obj/structure/railing{
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ne" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil/yellow,
+/obj/item/stack/cable_coil/red{
+ pixel_y = 3
+ },
+/obj/item/stock_parts/manipulator{
+ pixel_y = 5;
+ pixel_x = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/engineering)
+"nf" = (
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 6;
+ pixel_x = -22;
+ name = "Window Shutter";
+ id = "engi_window"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/binary/volume_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/engineering)
+"ng" = (
+/obj/effect/turf_decal/industrial/loading,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"nm" = (
+/obj/machinery/door/airlock{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"nr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"nA" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/crew)
+"nR" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nT" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nU" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nX" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/structure/closet/crate/medical,
+/obj/item/storage/firstaid/regular,
+/obj/item/reagent_containers/glass/bottle/bicaridine{
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/syringe,
+/obj/item/reagent_containers/glass/bottle/bicaridine{
+ pixel_x = 6
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"nY" = (
+/obj/structure/fermenting_barrel,
+/obj/effect/decal/cleanable/wrapping,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"oh" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"om" = (
+/obj/structure/catwalk/over,
+/obj/structure/closet/crate/hydroponics,
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_y = 8;
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_y = 8;
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_x = 8
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_x = 8
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"oq" = (
+/obj/structure/flora/ash/garden/waste,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oD" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"oO" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/item/mine/pressure/explosive/live{
+ layer = 2.8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oU" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"oY" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/frame,
+/obj/item/circuitboard/machine/shuttle/engine/electric,
+/obj/item/stack/cable_coil/cut/red,
+/obj/item/stock_parts/capacitor,
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/distillery/shuttle)
+"pa" = (
+/obj/structure/reagent_dispensers/water_cooler{
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"pm" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/cable/yellow{
+ icon_state = "2-9"
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pD" = (
+/obj/structure/fermenting_barrel/distiller{
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/paper/crumpled/muddy/fluff/distillery{
+ name = "note";
+ default_raw_text = "Scored this from an SRM ship passing through the sector. Handy if anything happens to our current still."
+ },
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "panelscorched"
+ },
+/area/ruin/rockplanet/distillery)
+"pL" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/structure/toilet,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/west,
+/mob/living/simple_animal/hostile/human/frontier,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"pM" = (
+/obj/structure/girder/displaced,
+/obj/structure/cable/yellow{
+ icon_state = "4-5"
+ },
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plating/rust,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pQ" = (
+/obj/structure/table/wood/reinforced,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/stamp{
+ pixel_y = 16;
+ pixel_x = 5
+ },
+/obj/item/stamp/denied{
+ pixel_y = 16;
+ pixel_x = -5
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-11";
+ pixel_y = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/office)
+"qe" = (
+/obj/structure/reagent_dispensers/water_cooler{
+ pixel_y = 6;
+ pixel_x = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/rockplanet/distillery)
+"qj" = (
+/obj/structure/flora/ash/stem_shroom,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ql" = (
+/obj/effect/turf_decal/industrial/loading{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/distillery/office)
+"qm" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pod_window"
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/distillery/shuttle)
+"qo" = (
+/obj/structure/curtain/cloth/grey,
+/obj/structure/bed{
+ dir = 8;
+ icon_state = "dirty_mattress"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"qu" = (
+/obj/effect/turf_decal/ntlogo{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/vomit/old,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"qw" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qQ" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qX" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/door/airlock/grunge,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"qY" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/rockplanet/distillery/office)
+"re" = (
+/obj/structure/flora/ausbushes/sunnybush{
+ layer = 3
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rh" = (
+/obj/structure/flora/tree/dead/tall,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rs" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rF" = (
+/obj/structure/catwalk/over,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/chair/sofa/brown/old/corner,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery/saloon)
+"rH" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/distillery)
+"rJ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 12;
+ pixel_y = 6
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 14
+ },
+/obj/machinery/light/small/broken/directional/east,
+/obj/structure/chair/sofa/brown/old/directional/west,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"rT" = (
+/obj/effect/turf_decal/industrial/traffic,
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"rW" = (
+/obj/item/mine/pressure/explosive/live{
+ layer = 2.8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sb" = (
+/obj/machinery/vending/cola/space_up,
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"si" = (
+/obj/structure/table/wood/poker,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/obj/item/spacecash/bundle/c10,
+/obj/item/spacecash/bundle/c1{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"sm" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4;
+ filter_types = list("co2","bz","water_vapor","miasma","freon","pluox","tritium","n20","no2","nob");
+ widenet = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"sx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"sy" = (
+/obj/structure/chair/stool/bar{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"sE" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-20";
+ pixel_y = 8
+ },
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"sQ" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/structure/closet/crate/freezer,
+/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,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"tc" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"te" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/office)
+"to" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/glass,
+/obj/item/lighter/greyscale{
+ pixel_x = 7;
+ pixel_y = -1
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = -5;
+ list_reagents = list(/datum/reagent/oxygen = 50)
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_y = 12;
+ list_reagents = list(/datum/reagent/carbon = 50)
+ },
+/obj/item/reagent_containers/syringe{
+ pixel_y = 6
+ },
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"tw" = (
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tx" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tA" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/obj/item/storage/bottles{
+ icon_state = "bottlecrate_0"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"tB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 12;
+ pixel_x = 10
+ },
+/obj/item/newspaper{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/crew)
+"tP" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"tQ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"uf" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uk" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ut" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/office)
+"uv" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/preopen{
+ dir = 4;
+ id = "pod_fore"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ruin/rockplanet/distillery/shuttle)
+"uw" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/rockplanet/distillery)
+"uy" = (
+/obj/machinery/shower{
+ pixel_y = 12
+ },
+/obj/structure/catwalk/over,
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/machinery/door/window/southleft,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/distillery/crew)
+"uE" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uG" = (
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "panelscorched"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uL" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/distillery/engineering)
+"uP" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/vomit/old,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"uS" = (
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/engineering)
+"uU" = (
+/obj/effect/turf_decal/ntlogo,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"uX" = (
+/turf/closed/wall/rust,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vf" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "dist_cargo"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"vo" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/door/window/brigdoor/southleft{
+ req_one_access_txt = "10"
+ },
+/obj/structure/closet/wall/red/directional/west{
+ secure = 1;
+ locked = 1
+ },
+/obj/item/storage/toolbox/emergency/shuttle/electric,
+/obj/item/ammo_box/a44roum_speedloader,
+/obj/item/gun/ballistic/revolver/shadow,
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/shuttle)
+"vC" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vD" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/glowshroom,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"vF" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/glass,
+/obj/item/seeds/corn{
+ pixel_y = 6;
+ pixel_x = -2
+ },
+/obj/item/seeds/corn{
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = -2;
+ pixel_x = 3
+ },
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = 3;
+ pixel_x = 4
+ },
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "panelscorched"
+ },
+/area/ruin/rockplanet/distillery)
+"vX" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/filingcabinet/double/grey,
+/obj/machinery/light/dim/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/folder/yellow,
+/obj/item/folder/documents,
+/obj/item/folder/red,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"wb" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_y = -32
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wd" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wk" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ws" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wx" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/table/wood/reinforced,
+/obj/item/paper_bin,
+/obj/item/pen/fountain,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"wy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wz" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wB" = (
+/obj/structure/flora/rock/rockplanet{
+ icon_state = "redrock3"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wH" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "engi_window"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 1
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/distillery/engineering)
+"wT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"wU" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wV" = (
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/distillery/engineering)
+"wX" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery)
+"xc" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 8;
+ pixel_x = -4
+ },
+/obj/item/pen{
+ pixel_y = 8;
+ pixel_x = -4
+ },
+/obj/item/hand_labeler{
+ pixel_y = -4
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 12;
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"xf" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/wrench,
+/obj/item/wirecutters,
+/obj/machinery/cell_charger,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/engineering)
+"xs" = (
+/obj/machinery/door/airlock{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"xA" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-6"
+ },
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/ruin/rockplanet/distillery/crew)
+"xM" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"xN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/sign/poster/retro/smile{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/netherworld/migo{
+ name = "Dog";
+ faction = list("Frontiersmen")
+ },
+/obj/structure/bed/dogbed,
+/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"xO" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"xT" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/distillery/engineering)
+"yf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/rack,
+/obj/item/reagent_containers/condiment/sugar{
+ pixel_y = 13;
+ pixel_x = -2;
+ layer = 2.8
+ },
+/obj/item/reagent_containers/condiment/sugar{
+ pixel_y = 7;
+ pixel_x = -2;
+ layer = 2.8
+ },
+/obj/item/wrench{
+ pixel_y = 4
+ },
+/obj/item/screwdriver,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"yr" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yw" = (
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"yL" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/office)
+"yO" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/white/corner,
+/obj/structure/sink{
+ pixel_y = 16
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/insectguts,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"yS" = (
+/turf/closed/wall/r_wall/rust,
+/area/ruin/rockplanet/distillery/crew)
+"yW" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/structure/guncloset,
+/obj/item/gun/ballistic/automatic/pistol/commander/no_mag,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/office)
+"ze" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "foam_plating"
+ },
+/area/ruin/rockplanet/distillery)
+"zk" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/distillery/crew)
+"zn" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/obj/machinery/light/broken/directional/south,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"zw" = (
+/obj/machinery/autolathe,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 5
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/engineering)
+"zx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"zy" = (
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/distillery/crew)
+"zJ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/engineering)
+"zX" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "dist_cargo"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"zZ" = (
+/obj/structure/girder,
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plating/rust,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ag" = (
+/obj/effect/turf_decal/siding/white/end,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Ai" = (
+/obj/structure/grille,
+/obj/structure/cable/yellow,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pod_window"
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/distillery/shuttle)
+"Am" = (
+/obj/machinery/door/airlock/grunge{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/office)
+"At" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-6"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-5"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Aw" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg1"
+ },
+/area/ruin/rockplanet/distillery)
+"AC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg1"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AE" = (
+/obj/machinery/door/airlock/engineering,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/engineering)
+"AI" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-10"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AJ" = (
+/obj/structure/table/wood/reinforced,
+/obj/machinery/chem_dispenser/drinks{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"AV" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer2,
+/obj/structure/railing{
+ layer = 4.1
+ },
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AY" = (
+/obj/item/stack/ore/salvage/scrapgold/five{
+ pixel_x = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/catwalk/over,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/ruin/rockplanet/distillery/engineering)
+"Be" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/sign/poster/retro/nanotrasen_logo_80s{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 4
+ },
+/area/ruin/rockplanet/distillery)
+"Bk" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{
+ dir = 2
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bn" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bq" = (
+/obj/item/chair/stool/bar{
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Bs" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bx" = (
+/obj/structure/flora/ash/cap_shroom,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"BD" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/wrapping,
+/obj/item/storage/bottles/moonshine,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/shuttle)
+"BJ" = (
+/obj/machinery/door/airlock{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"BO" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"BT" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/sign/poster/retro/radio{
+ pixel_y = -32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1;
+ filter_types = list("co2","bz","water_vapor","miasma","freon","pluox","tritium","n20","no2","nob");
+ widenet = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/rockplanet/distillery/crew)
+"Ch" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/table/glass,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 12;
+ pixel_x = 8
+ },
+/obj/item/clipboard{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/paper{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/pen,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Cn" = (
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "foam_plating"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Cp" = (
+/turf/closed/wall/r_wall/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Cr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/mob/living/simple_animal/hostile/human/frontier/internals,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Cz" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CA" = (
+/obj/machinery/door/airlock/grunge,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/office)
+"CL" = (
+/obj/structure/fluff/glowshroom,
+/obj/machinery/button/door{
+ pixel_y = 26;
+ name = "Cargo Door";
+ id = "dist_cargo"
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"CM" = (
+/obj/machinery/door/airlock/grunge,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"CN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "foam_plating"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CQ" = (
+/obj/structure/table/wood/poker,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/item/spacecash/bundle/c1{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"CR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg1"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CS" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"CW" = (
+/obj/machinery/fax/admin/frontiersmen,
+/obj/structure/table/wood/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/office)
+"Dk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Dw" = (
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DE" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/closed/wall/rust,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DW" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 4
+ },
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"DX" = (
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-10"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ef" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-21"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"Ei" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/fluff/glowshroom,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Ej" = (
+/obj/structure/table/wood/reinforced,
+/obj/structure/railing{
+ dir = 1;
+ layer = 2.7
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_y = 8;
+ pixel_x = 4
+ },
+/obj/item/reagent_containers/food/drinks/mug/coco{
+ pixel_x = -6;
+ pixel_y = 8
+ },
+/obj/item/spacecash/bundle/c1{
+ pixel_x = -4
+ },
+/obj/item/spacecash/bundle/c10{
+ pixel_y = -2
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Ex" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "panelscorched"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"EF" = (
+/obj/structure/chair/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/mob/living/simple_animal/hostile/human/frontier/internals,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"EI" = (
+/obj/effect/turf_decal/ntlogo{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "skull";
+ pixel_x = -16;
+ color = "#FF7742"
+ },
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"Fk" = (
+/obj/machinery/light/floor,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fm" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/east,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fn" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fs" = (
+/obj/structure/flora/rock/rockplanet{
+ icon_state = "redrock2"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ft" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/structure/salvageable/machine,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"FA" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/office)
+"FB" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 5
+ },
+/obj/structure/railing/corner{
+ dir = 8;
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FD" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/apc/auto_name/directional/east,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"FI" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 12;
+ pixel_x = 8
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 14;
+ pixel_x = -4
+ },
+/obj/item/newspaper{
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Gb" = (
+/obj/structure/chair/stool/bar{
+ dir = 4;
+ pixel_x = 6
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Gc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"Gd" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"Gg" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"Go" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"GE" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/small/directional/east,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"GH" = (
+/obj/structure/catwalk/over,
+/obj/structure/closet/crate/hydroponics,
+/obj/item/reagent_containers/food/snacks/grown/corn,
+/obj/item/reagent_containers/food/snacks/grown/corn,
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = 2
+ },
+/obj/item/seeds/corn,
+/obj/item/seeds/corn,
+/obj/item/seeds/corn,
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/condiment/enzyme,
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/snacks/grown/corn{
+ pixel_y = 4
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"Hf" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ layer = 3.3
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = -6;
+ pixel_x = -22;
+ name = "Aft Door";
+ id = "pod_aft"
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_x = -32;
+ name = "Window Shutters";
+ id = "pod_window"
+ },
+/obj/machinery/door/window/brigdoor/northleft{
+ req_one_access_txt = "10"
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 6;
+ pixel_x = -22;
+ name = "Fore Door";
+ id = "pod_fore"
+ },
+/obj/effect/decal/cleanable/oil,
+/mob/living/simple_animal/hostile/human/frontier/ranged/internals,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/shuttle)
+"Hg" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters,
+/obj/structure/grille,
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"Hi" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Hu" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/item/mine/pressure/explosive/rusty/live{
+ layer = 2.8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Hv" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HM" = (
+/obj/structure/table,
+/obj/item/reagent_scanner{
+ pixel_y = 18
+ },
+/obj/item/reagent_containers/glass/bucket{
+ pixel_x = 3;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/glass/bucket{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"HO" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"HT" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"Ig" = (
+/obj/structure/cable{
+ icon_state = "1-6"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ir" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"Iz" = (
+/obj/structure/closet/crate,
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/effect/spawner/lootdrop/random_computer_circuit_common,
+/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/lootdrop/random_machine_circuit_common,
+/obj/effect/spawner/lootdrop/random_machine_circuit_common,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"IA" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"IN" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IS" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"IZ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ja" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/closet/crate/secure/weapon{
+ name = "ammo crate"
+ },
+/obj/item/ammo_box/a357{
+ pixel_x = -3
+ },
+/obj/item/ammo_box/magazine/illestren_a850r,
+/obj/item/ammo_box/c9mm/ap,
+/obj/item/ammo_box/magazine/illestren_a850r,
+/obj/item/ammo_box/magazine/co9mm{
+ start_empty = 1
+ },
+/obj/item/ammo_box/magazine/co9mm{
+ start_empty = 1
+ },
+/obj/item/ammo_box/a357{
+ pixel_x = 3
+ },
+/obj/machinery/button/door{
+ name = "Armory Door Lock";
+ pixel_y = -6;
+ pixel_x = -22;
+ normaldoorcontrol = 1;
+ specialfunctions = 4;
+ id = "frontier_armory";
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/office)
+"Jc" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Je" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 8
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"JC" = (
+/obj/item/chair,
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"JD" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ pixel_x = -6;
+ pixel_y = 12
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"JI" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JN" = (
+/obj/structure/flora/driftlog{
+ pixel_y = -15;
+ pixel_x = 9;
+ layer = 2.8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JO" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JP" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "5-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JS" = (
+/obj/structure/table,
+/obj/item/kirbyplants{
+ icon_state = "plant-11";
+ pixel_y = 6
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"JZ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ka" = (
+/obj/structure/reagent_dispensers/beerkeg{
+ anchored = 1;
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine;
+ name = "moonshine keg";
+ desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers.";
+ pixel_x = -8;
+ layer = 2.8
+ },
+/obj/structure/reagent_dispensers/beerkeg{
+ anchored = 1;
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine;
+ name = "moonshine keg";
+ desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers.";
+ pixel_x = 8;
+ pixel_y = -2
+ },
+/obj/structure/reagent_dispensers/beerkeg{
+ anchored = 1;
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine;
+ name = "moonshine keg";
+ desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers.";
+ pixel_x = -4;
+ pixel_y = 14;
+ layer = 3
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Kf" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_y = 12;
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/obj/item/cigbutt{
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Km" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/item/radio/intercom/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-10"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/shuttle)
+"Kt" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Kx" = (
+/obj/structure/salvageable/machine,
+/obj/effect/decal/cleanable/greenglow,
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KA" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/distillery/office)
+"KF" = (
+/obj/structure/flora/ash/cacti,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KV" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 6
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ld" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Lm" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"LB" = (
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"LD" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/fluff/glowshroom,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light/dim/directional/north,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"LM" = (
+/obj/item/shard{
+ pixel_x = 12
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 9
+ },
+/obj/structure/holosign/barrier/wetsign/infinite,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"LW" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Md" = (
+/obj/machinery/door/airlock/grunge{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Mf" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/white/corner,
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Mm" = (
+/obj/structure/flora/ausbushes/sunnybush{
+ layer = 3
+ },
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Mr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/plastic,
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Mx" = (
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"MA" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "mudskipper_engine"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery/saloon)
+"MD" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/broken/directional/east,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"MS" = (
+/obj/structure/closet/crate/bin,
+/obj/machinery/firealarm/directional/south{
+ buildstage = 0
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-5"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/spawner/lootdrop/maintenance/four,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/rockplanet/distillery)
+"Nj" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/secure_closet/freezer/wall/directional/east,
+/obj/item/reagent_containers/food/snacks/chips,
+/obj/item/food/butterdog,
+/obj/item/reagent_containers/food/snacks/chips{
+ pixel_x = 2
+ },
+/obj/item/reagent_containers/food/drinks/bottle/rum{
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/spacecash/bundle/c500,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = 8
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Nk" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"Nr" = (
+/turf/template_noop,
+/area/template_noop)
+"Ns" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/cigbutt,
+/obj/item/cigbutt{
+ pixel_y = 8;
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/distillery/crew)
+"Nx" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/holopad/emergency/bar,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"NC" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"NE" = (
+/obj/structure/flora/ausbushes/sparsegrass/hell{
+ name = "dead grass";
+ desc = "A sparse patch of grass without color.";
+ light_range = 0;
+ light_power = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NM" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/computer/helm{
+ dir = 8;
+ layer = 3.3;
+ name = "Locked Helm Console";
+ desc = "No way you're getting this thing off the ground."
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/obj/structure/cable/yellow{
+ icon_state = "1-6"
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/shuttle)
+"NR" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/ridged/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-10"
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/rockplanet/distillery/crew)
+"Ob" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"Od" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/sofa/brown/old/corner/directional/south,
+/mob/living/simple_animal/hostile/human/frontier/ranged/internals/neutered,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"Oe" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-9"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "panelscorched"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Os" = (
+/obj/machinery/vending/snack/random{
+ tilted = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"Ow" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Oz" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"OB" = (
+/obj/structure/catwalk/over,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery/saloon)
+"OK" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"OO" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/structure/chair/sofa/brown/old/left/directional/north,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"OV" = (
+/obj/structure/closet/secure_closet{
+ icon_state = "armory";
+ name = "armor locker"
+ },
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/head/helmet/swat/nanotrasen,
+/obj/item/clothing/head/helmet/swat/nanotrasen,
+/obj/item/clothing/suit/armor/frontier,
+/obj/item/clothing/head/beret/sec/frontier,
+/obj/item/clothing/gloves/combat,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/office)
+"Pl" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "9-10"
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"PD" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/tank/air,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/engineering)
+"PI" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/distillery/shuttle)
+"PL" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 4
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = -12;
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"PP" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals/neutered,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/shuttle)
+"PV" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"PZ" = (
+/obj/structure/bed,
+/obj/structure/curtain/cloth/grey,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"Qm" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qp" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/human/frontier/ranged/internals,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"Qr" = (
+/obj/structure/catwalk/over,
+/obj/item/storage/bottles/moonshine{
+ pixel_y = 6
+ },
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "panelscorched"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"QB" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"QP" = (
+/turf/closed/wall/r_wall/rust,
+/area/ruin/rockplanet/distillery/engineering)
+"Rd" = (
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "5-10"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rn" = (
+/obj/structure/table/wood/reinforced,
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 12;
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Rp" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/structure/cable/yellow{
+ icon_state = "1-5"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/railing{
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/ridged/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rr" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"Ru" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rw" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/item/trash/popcorn{
+ pixel_y = 12;
+ pixel_x = 7
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"RB" = (
+/obj/effect/turf_decal/ntlogo{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "k";
+ pixel_x = -5;
+ color = "#0094FF"
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "u";
+ pixel_x = -16;
+ color = "#0094FF"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"RD" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "pod_aft"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ruin/rockplanet/distillery/shuttle)
+"RM" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner,
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 9
+ },
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RO" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RR" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/distillery/crew)
+"Sk" = (
+/obj/effect/turf_decal/industrial/loading{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/paper/crumpled/muddy/fluff/distillery{
+ pixel_y = -12
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Sq" = (
+/obj/structure/closet/crate,
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ list_reagents = null;
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ list_reagents = null;
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ list_reagents = null
+ },
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ list_reagents = null
+ },
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ list_reagents = null;
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ list_reagents = null;
+ pixel_x = 6
+ },
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"Sr" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"Ss" = (
+/obj/structure/flora/driftlog{
+ pixel_y = 2;
+ pixel_x = -6
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Sx" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ pixel_y = 6;
+ pixel_x = 4
+ },
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ pixel_y = 2;
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/food/drinks/bottle/hooch{
+ pixel_y = -4;
+ pixel_x = 7
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"SF" = (
+/obj/structure/girder,
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/distillery/office)
+"SG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg2"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/photocopier,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/office)
+"Ta" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Td" = (
+/obj/structure/table,
+/obj/item/reagent_containers/glass/chem_jug{
+ pixel_y = 4;
+ pixel_x = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/reagent_containers/glass/filter{
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Tl" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Tn" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/glowshroom,
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg1"
+ },
+/area/ruin/rockplanet/distillery)
+"To" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/directional/east,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Tp" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Tt" = (
+/obj/structure/catwalk/over,
+/turf/open/floor/plating/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"TB" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/rockplanet/distillery/crew)
+"TG" = (
+/obj/machinery/door/airlock{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"TK" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"TR" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/item/storage/bottles/moonshine,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
+"TW" = (
+/obj/structure/chair/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/west,
+/mob/living/simple_animal/hostile/human/frontier/internals,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Uo" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"Uw" = (
+/obj/structure/chair/wood{
+ dir = 8;
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Ux" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Uy" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/frontier,
+/obj/item/clothing/head/fedora/det_hat{
+ pixel_x = -4
+ },
+/obj/item/clothing/head/beret/sec/frontier{
+ pixel_x = 4
+ },
+/obj/item/cigbutt{
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"UA" = (
+/obj/structure/flora/rock/rockplanet{
+ icon_state = "redrock2"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UI" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/rockplanet/distillery/office)
+"UJ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery)
+"UU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Va" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/airlock/grunge{
+ dir = 4;
+ id_tag = "frontier_armory";
+ locked = 1;
+ security_level = 4
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery/office)
+"Vf" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/fluff/glowshroom,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
+"Vg" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/obj/structure/closet/crate/bin,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ filter_types = list("co2","bz","water_vapor","miasma","freon","pluox","tritium","n20","no2","nob");
+ widenet = 1
+ },
+/obj/machinery/light/small/broken/directional/east,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"Vj" = (
+/obj/effect/turf_decal/ntlogo,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
+"Vx" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/structure/railing{
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/ridged/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vz" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"VG" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"VJ" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 28
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/engineering)
+"VM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/engineering)
+"VO" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/rockplanet/distillery/crew)
+"VP" = (
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner,
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"VW" = (
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Wc" = (
+/turf/closed/wall,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wg" = (
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wj" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/structure/chair/office{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/internals/neutered,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Wm" = (
+/obj/structure/table/wood/poker,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 10
+ },
+/obj/item/spacecash/bundle/c1{
+ pixel_y = 8
+ },
+/obj/item/spacecash/bundle/c100,
+/obj/item/spacecash/bundle/c10{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Wp" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Wu" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/distillery/saloon)
+"WB" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/line,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"WE" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xf" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-6"
+ },
+/turf/open/floor/plating/rockplanet/lit{
+ icon_state = "platingdmg2"
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xg" = (
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xl" = (
+/obj/structure/table/wood/reinforced,
+/obj/machinery/chem_dispenser/drinks/beer{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"Xn" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"Xq" = (
+/obj/structure/chair/office,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/button/door{
+ name = "Armory Door Lock";
+ pixel_y = 24;
+ pixel_x = 6;
+ normaldoorcontrol = 1;
+ specialfunctions = 4;
+ id = "frontier_armory"
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/office)
+"XD" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/airlock/grunge{
+ dir = 4;
+ id_tag = "frontier_door"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"XF" = (
+/obj/item/shard{
+ pixel_y = 8
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XU" = (
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/white/corner,
+/obj/item/kirbyplants{
+ icon_state = "plant-25";
+ pixel_y = 12;
+ pixel_x = -2
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/ash,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"XV" = (
+/obj/effect/turf_decal/ntlogo{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/item/cigbutt{
+ pixel_x = -3;
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-10"
+ },
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery)
+"XY" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/rockplanet/distillery/saloon)
+"Yh" = (
+/obj/machinery/door/airlock/grunge,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/distillery)
+"Yo" = (
+/obj/item/mine/pressure/explosive/live,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yq" = (
+/obj/machinery/door/airlock{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/crew)
+"YE" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Zh" = (
+/obj/structure/catwalk/over,
+/turf/open/floor/plating/rust/rockplanet/lit,
+/area/ruin/rockplanet/distillery)
+"Zm" = (
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 6
+ },
+/obj/item/reagent_containers/food/snacks/deadmouse{
+ pixel_x = 8;
+ pixel_y = 6;
+ layer = 2.9
+ },
+/obj/structure/chair/sofa/brown/old/corner/directional/west,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/saloon)
+"ZX" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/power/smes/shuttle/micro/precharged{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pod_window"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/distillery/shuttle)
+
+(1,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(2,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(3,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(4,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+jE
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(5,1,1) = {"
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(6,1,1) = {"
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+RR
+RR
+RR
+RR
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(7,1,1) = {"
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+RR
+pL
+PL
+RR
+hY
+hY
+hY
+hY
+hY
+lD
+hY
+hY
+lD
+hY
+hY
+Cp
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(8,1,1) = {"
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+RR
+lE
+TG
+RR
+RR
+hY
+hY
+hY
+Bk
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+mY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(9,1,1) = {"
+hY
+hY
+hY
+hY
+hY
+RR
+RR
+RR
+uy
+Vz
+cf
+RR
+hY
+hY
+Cp
+WB
+be
+LB
+LB
+ji
+ji
+LB
+Fk
+kT
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(10,1,1) = {"
+hY
+hY
+hY
+hY
+hY
+RR
+yO
+gM
+Xn
+Gg
+zn
+RR
+hY
+hY
+hY
+WB
+LB
+uG
+lU
+RD
+lU
+uG
+hi
+kT
+nR
+oq
+ky
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(11,1,1) = {"
+hY
+hY
+hY
+hY
+hY
+RR
+DW
+lE
+dP
+cA
+Ob
+RR
+hY
+hY
+hY
+WB
+LB
+PI
+lU
+BD
+lU
+oY
+LB
+kT
+nR
+qw
+qj
+ky
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(12,1,1) = {"
+Nr
+qQ
+hY
+hY
+uL
+uL
+xT
+xT
+xT
+lE
+nm
+RR
+RR
+RR
+RR
+WB
+LB
+ZX
+Hf
+mF
+vo
+jm
+ji
+Qm
+nR
+nR
+nR
+tw
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(13,1,1) = {"
+Nr
+LW
+qQ
+aC
+QP
+PD
+nf
+zw
+xT
+kO
+Rw
+zk
+tP
+sm
+RR
+wU
+ji
+qm
+NM
+PP
+bI
+Ai
+XF
+kT
+nR
+nR
+oq
+qQ
+ky
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(14,1,1) = {"
+nR
+Kt
+ky
+AV
+wH
+xf
+bH
+jO
+AE
+NC
+zy
+hH
+GE
+av
+Uo
+WB
+ji
+lU
+lU
+Km
+lU
+lU
+uG
+kT
+nR
+nR
+qQ
+Kx
+lc
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(15,1,1) = {"
+nR
+nR
+qQ
+wb
+uL
+uS
+zJ
+AY
+xT
+Vg
+jF
+RR
+RR
+RR
+RR
+WB
+LB
+ji
+lU
+uv
+lU
+ji
+LB
+kT
+nR
+rH
+ed
+rH
+rH
+ed
+ed
+rH
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(16,1,1) = {"
+nR
+ky
+oq
+hY
+uL
+VJ
+wV
+VM
+xT
+lE
+Yq
+lE
+Gc
+kC
+yS
+WB
+Fk
+LB
+LB
+dE
+ji
+ji
+Fk
+kT
+nR
+rH
+Td
+HM
+fl
+Sk
+Mr
+rH
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
+(17,1,1) = {"
+Nr
+hY
+hY
+hY
+uL
+dK
+cS
+ne
+xT
+nr
+TB
+xA
+jX
+JS
+yS
+nU
+nT
+JZ
+fO
+hS
+RM
+JZ
+nT
+wd
+nR
+rH
+CS
+Tt
+Qp
+Tn
+yI
+rH
+ed
+ed
+rH
+rH
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+"}
+(18,1,1) = {"
+hY
+hY
+hY
+hY
+uL
+uL
+xT
+xT
+xT
+aB
+tB
+eG
+sx
+kd
+RR
+Tl
+Ru
+nR
+wz
+me
+kT
+nR
+nR
+nR
+gg
+ed
+GH
+ze
+vF
+aE
+to
+rH
+Sx
+xc
+tA
+rH
+hY
+hY
+hY
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+"}
+(19,1,1) = {"
+hY
+hY
+hY
+hY
+hY
+KA
+Lm
+ut
+jM
+kU
+Ns
+nA
+qo
+RR
+RR
+RR
+yS
+NR
+KV
+me
+kT
+nR
+Xg
+Xg
+Xg
+ed
+yf
+vD
+fv
+QB
+Ow
+rH
+XU
+Wj
+fM
+Hg
+hY
+hY
+hY
+hY
+hY
+hY
+nR
+Nr
+Nr
+"}
+(20,1,1) = {"
+Nr
+hY
+hY
+hY
+hY
+KA
+lK
+te
+jM
+Od
+bX
+zx
+bS
+RR
+TR
+ng
+qX
+Fn
+Fn
+ws
+kT
+nR
+rH
+ed
+rH
+rH
+rH
+rH
+rH
+XD
+rH
+rH
+Be
+Zh
+pD
+Hg
+hY
+hY
+hY
+hY
+hY
+hY
+Xg
+nR
+Nr
+"}
+(21,1,1) = {"
+Nr
+Nr
+hY
+hY
+hY
+KA
+jM
+Am
+jM
+jM
+jM
+NU
+PZ
+RR
+bd
+kq
+RR
+IZ
+fO
+ws
+kT
+Xg
+rH
+cP
+fJ
+fW
+rH
+mq
+qu
+uU
+MS
+rH
+wX
+mX
+fs
+ed
+hY
+hY
+hY
+hY
+hY
+Tl
+Xg
+nR
+Nr
+"}
+(22,1,1) = {"
+Nr
+hY
+hY
+hY
+hY
+KA
+ih
+qY
+xO
+CW
+jM
+mk
+lE
+RR
+Iz
+rT
+yS
+NE
+wz
+hS
+kT
+Xg
+Nk
+om
+Aw
+Dk
+Yh
+ah
+dJ
+XV
+kZ
+Yh
+Ld
+uw
+Ft
+Hg
+hY
+hY
+hY
+hY
+Wc
+Dw
+Xg
+nR
+nR
+"}
+(23,1,1) = {"
+Nr
+hY
+hY
+hY
+hY
+KA
+lL
+mv
+eh
+yL
+jM
+VO
+Vf
+zk
+sQ
+rT
+yS
+qj
+wz
+iT
+kT
+dw
+Nk
+Sq
+Cr
+co
+rH
+sb
+gU
+jI
+bu
+rH
+qe
+UJ
+hP
+Hg
+hY
+hY
+hY
+Wc
+uX
+oh
+nR
+nR
+nR
+"}
+(24,1,1) = {"
+Nr
+hY
+hY
+hY
+hY
+KA
+Xq
+gA
+FA
+gv
+CA
+bz
+Vj
+zk
+TR
+kq
+yS
+Kt
+wz
+hS
+kT
+Tl
+ed
+CL
+wT
+VW
+rH
+Nk
+Nk
+Nk
+Nk
+rH
+Ch
+UU
+nY
+rH
+hY
+hY
+Xg
+pM
+Cn
+Fs
+nR
+nR
+nR
+"}
+(25,1,1) = {"
+hY
+hY
+hY
+hY
+hY
+KA
+wx
+pQ
+bY
+aJ
+jM
+RB
+EI
+zk
+en
+nX
+RR
+nR
+WB
+ws
+Qm
+nR
+rH
+zX
+vf
+zX
+rH
+Mm
+Bx
+Kt
+ky
+rH
+rH
+xs
+ed
+rH
+Xg
+mp
+AI
+DE
+jS
+Xg
+qw
+nR
+nR
+"}
+(26,1,1) = {"
+hY
+hY
+hY
+hY
+hY
+KA
+vX
+Oz
+UI
+SV
+jM
+xN
+BT
+RR
+zk
+zk
+yS
+KF
+wz
+ws
+kT
+nR
+Mm
+rs
+hS
+Vx
+nR
+nR
+nR
+uE
+qj
+qQ
+rs
+Bn
+Rp
+nR
+nR
+nR
+dI
+uk
+Xg
+re
+Yo
+nR
+Nr
+"}
+(27,1,1) = {"
+hY
+hY
+hY
+hY
+hY
+KA
+KA
+Va
+KA
+KA
+jM
+LD
+Rr
+zk
+tP
+sm
+RR
+NR
+KV
+aG
+FB
+lS
+uf
+IN
+Wg
+bT
+uf
+uf
+wk
+uf
+uf
+uf
+tx
+Rd
+bT
+uf
+uf
+bm
+JP
+uk
+Xg
+nR
+nR
+Nr
+Nr
+"}
+(28,1,1) = {"
+Nr
+hY
+hY
+hY
+hY
+SF
+Ja
+ql
+OV
+RR
+dZ
+Go
+Gd
+br
+GE
+av
+Uo
+HB
+yw
+RO
+Ex
+Xf
+JO
+fF
+Oe
+WE
+Hv
+Ig
+CR
+HB
+wy
+HB
+Mx
+wy
+HB
+AC
+SG
+DX
+Qm
+nR
+nR
+nR
+nR
+nR
+Nr
+"}
+(29,1,1) = {"
+Nr
+Nr
+hY
+hY
+hY
+KA
+KA
+cp
+yW
+RR
+Os
+eF
+Ef
+RR
+yS
+RR
+yS
+IZ
+nT
+nT
+JZ
+JZ
+Pl
+kn
+Cz
+kn
+kn
+vC
+lQ
+VP
+kn
+kn
+Cz
+kn
+kn
+iy
+kn
+hy
+PV
+nR
+nR
+nR
+nR
+nR
+nR
+"}
+(30,1,1) = {"
+Nr
+Nr
+hY
+hY
+hY
+hY
+KA
+KA
+KA
+RR
+RR
+RR
+yS
+yS
+Xg
+Ru
+nR
+nR
+Dw
+Dw
+nR
+nR
+re
+uE
+nR
+qQ
+ky
+Fm
+CN
+Vx
+ky
+em
+Kt
+nR
+LM
+gk
+Xg
+YE
+At
+uk
+Xg
+dw
+Xg
+Hu
+nR
+"}
+(31,1,1) = {"
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Xg
+Xg
+nR
+qw
+nR
+Cn
+dU
+nR
+nR
+VG
+Kt
+qj
+Wu
+Wu
+BJ
+Wu
+Wu
+Wu
+MA
+MA
+cw
+Wu
+Wu
+aj
+ir
+pm
+yr
+Dw
+Xg
+qw
+nR
+"}
+(32,1,1) = {"
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Tl
+Xg
+nR
+Cn
+nR
+Dw
+JN
+Xg
+Wu
+Wu
+Wu
+Wu
+Wu
+Wu
+Mf
+oU
+Ag
+Wu
+uP
+JC
+pa
+mE
+OB
+Wu
+hY
+hY
+Wc
+DE
+dn
+Xg
+nR
+nR
+"}
+(33,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Xg
+Ta
+Dw
+nR
+nR
+Xg
+wB
+Wu
+HO
+TW
+tQ
+Wp
+Wu
+Je
+hA
+Uy
+Wu
+ba
+Rn
+IA
+Ej
+OK
+Wu
+hY
+hY
+hY
+Wc
+Dw
+oO
+Xg
+nR
+"}
+(34,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Bs
+JI
+JI
+Cn
+Xg
+rh
+Ru
+Wu
+IS
+gw
+Wm
+Tp
+Wu
+Jc
+Sr
+BO
+mK
+TK
+Hi
+tc
+XY
+Wp
+Wu
+hY
+hY
+hY
+hY
+Dw
+Cn
+Xg
+nR
+"}
+(35,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+Xg
+Cn
+Xg
+Dw
+Dw
+gg
+zZ
+Wc
+hY
+Wu
+EF
+si
+CQ
+Tp
+CM
+cQ
+oD
+Ir
+mK
+sy
+Gb
+Bq
+To
+Ux
+Wu
+hY
+hY
+hY
+hY
+Tl
+Xg
+Xg
+nR
+"}
+(36,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+Xg
+Ss
+Xg
+UA
+Cn
+nR
+rW
+Fs
+hY
+hY
+Wu
+sE
+MD
+Uw
+Ux
+Wu
+hN
+FI
+OO
+Wu
+hq
+JD
+Kf
+Wu
+Md
+Wu
+Wu
+hY
+hY
+hY
+Cn
+Fs
+nR
+nR
+"}
+(37,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+nR
+nR
+nR
+qw
+gu
+nR
+nR
+Xg
+Xg
+hY
+hY
+Wu
+Wu
+Wu
+Wu
+Wu
+Wu
+rF
+rJ
+Zm
+Wu
+Qr
+Nx
+Ei
+Wu
+xM
+Ka
+Wu
+hY
+hY
+hY
+hY
+Xg
+nR
+nR
+"}
+(38,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+nR
+nR
+nR
+nR
+nR
+Tl
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Wu
+Wu
+Wu
+Wu
+Wu
+HT
+OB
+Nj
+CM
+FD
+gX
+Wu
+hY
+hY
+hY
+hY
+Xg
+nR
+Nr
+"}
+(39,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+nR
+nR
+nR
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Wu
+Xl
+AJ
+Wu
+Wu
+Wu
+Wu
+Wu
+hY
+hY
+hY
+hY
+Xg
+nR
+Nr
+"}
+(40,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Wu
+Wu
+Wu
+Wu
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Xg
+Xg
+nR
+"}
+(41,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Xg
+Xg
+Xg
+nR
+"}
+(42,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Xg
+Xg
+nR
+nR
+Nr
+"}
+(43,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+hY
+hY
+Nr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+Xg
+Xg
+Xg
+Xg
+nR
+Nr
+Nr
+"}
+(44,1,1) = {"
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+hY
+hY
+hY
+Nr
+Nr
+hY
+hY
+hY
+Nr
+hY
+hY
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
index 8a79949e34b1..a86efe2e9744 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
@@ -250,21 +250,6 @@
},
/turf/open/floor/plating,
/area/ruin/powered)
-"ga" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/gun/ballistic/automatic/smg/c20r/toy/riot{
- pixel_x = 5;
- pixel_y = 7
- },
-/obj/item/ammo_box/foambox/riot{
- pixel_x = -3;
- pixel_y = -3
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/grimy,
-/area/ruin/powered)
"gp" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable{
@@ -1871,6 +1856,21 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
/area/ruin/powered)
+"RC" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/gun/ballistic/automatic/toy{
+ pixel_x = 5;
+ pixel_y = 7
+ },
+/obj/item/ammo_box/foambox/riot{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
"RM" = (
/obj/effect/spawner/structure/window/hollow/reinforced,
/turf/open/floor/plating,
@@ -2968,7 +2968,7 @@ RU
bO
cv
oc
-ga
+RC
Tl
ko
kU
@@ -3367,7 +3367,7 @@ of
IA
ro
ro
-hJ
+bf
Ew
LT
hi
@@ -3446,7 +3446,7 @@ je
kC
nq
qm
-hJ
+bf
tw
tC
vK
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
index 6bb4f2e48c99..3394913e2d2d 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
@@ -2000,9 +2000,9 @@
/obj/structure/closet/crate/secure/gear{
req_one_access_txt = "53"
},
-/obj/item/ammo_box/magazine/tec9,
-/obj/item/ammo_box/magazine/tec9,
-/obj/item/gun/ballistic/automatic/pistol/tec9,
+/obj/item/ammo_box/magazine/m9mm_rattlesnake,
+/obj/item/ammo_box/magazine/m9mm_rattlesnake,
+/obj/item/storage/pistolcase/ringneck,
/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/shippingdocksecure)
"rK" = (
@@ -2417,7 +2417,7 @@
/obj/item/toy/plush/moth/firewatch,
/obj/item/toy/plush/lizardplushie,
/obj/item/toy/plush/knight,
-/obj/item/toy/prize/mauler,
+/obj/item/toy/prize/touro,
/obj/item/toy/talking/AI,
/turf/open/floor/plasteel/mono/white,
/area/ruin/rockplanet/shippingdockwarehouse)
@@ -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 f59cff023b4a..b903fd3cce78 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
@@ -213,7 +213,7 @@
/turf/open/floor/plating,
/area/ruin)
"ii" = (
-/obj/item/ammo_box/aac_300blk_stripper,
+/obj/item/ammo_box/a762_stripper,
/turf/open/floor/wood,
/area/ruin)
"iK" = (
@@ -223,7 +223,7 @@
/area/overmap_encounter/planetoid/sand/explored)
"iL" = (
/obj/structure/statue/snow/snowman,
-/obj/item/kitchen/knife/shiv/carrot,
+/obj/item/melee/knife/shiv/carrot,
/turf/open/floor/plating/asteroid/snow/lit/whitesands,
/area/overmap_encounter/planetoid/sand/explored)
"iQ" = (
@@ -400,7 +400,6 @@
/area/ruin)
"nZ" = (
/obj/structure/table,
-/obj/item/clothing/glasses/meson/gar,
/turf/open/floor/concrete,
/area/ruin)
"ox" = (
@@ -652,7 +651,7 @@
/turf/open/floor/wood,
/area/ruin)
"yZ" = (
-/obj/item/spear,
+/obj/item/melee/spear,
/obj/effect/mob_spawn/human/corpse/damaged/whitesands/survivor,
/turf/open/floor/plating/asteroid/whitesands/dried{
light_range = 2
@@ -1066,7 +1065,7 @@
/turf/open/floor/wood,
/area/ruin)
"Ok" = (
-/turf/open/acid/whitesands,
+/turf/open/water/acid/whitesands,
/area/overmap_encounter/planetoid/sand/explored)
"Ov" = (
/obj/item/clothing/head/cowboy{
@@ -1184,8 +1183,8 @@
/area/ruin)
"Tl" = (
/obj/structure/table,
-/obj/item/ammo_box/aac_300blk_stripper,
-/obj/item/ammo_box/aac_300blk_stripper,
+/obj/item/ammo_box/a762_stripper,
+/obj/item/ammo_box/a762_stripper,
/turf/open/floor/concrete,
/area/ruin)
"TH" = (
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
index d4c307df25d7..219fc7a6b6b6 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
@@ -243,7 +243,7 @@
},
/obj/effect/turf_decal/siding/wood,
/obj/structure/chair/stool/bar,
-/mob/living/simple_animal/hostile/human/hermit/survivor,
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"gC" = (
@@ -445,7 +445,6 @@
"lI" = (
/obj/structure/table/wood/poker,
/obj/effect/spawner/lootdrop/gambling,
-/obj/item/spacecash/bundle/loadsamoney,
/turf/open/floor/carpet,
/area/ruin/whitesands/saloon)
"lV" = (
@@ -890,6 +889,9 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ dir = 4
+ },
/turf/open/floor/wood{
icon_state = "wood-broken5"
},
@@ -1029,7 +1031,8 @@
icon_state = "pulse_carbine";
name = "pulse rifle";
desc = "A supposedly heavy-duty, multifaceted energy rifle. The barrel looks off and the casing seems to be made of plastic";
- item_state = "pulse"
+ item_state = "pulse";
+ icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/48x32.dmi'
},
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
@@ -1114,7 +1117,7 @@
/obj/structure/chair/stool/bar{
dir = 8
},
-/mob/living/simple_animal/hostile/human/hermit/survivor{
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger{
dir = 8
},
/turf/open/floor/wood,
@@ -1497,7 +1500,7 @@
/area/ruin/whitesands/saloon)
"Ua" = (
/obj/structure/chair/stool/bar,
-/mob/living/simple_animal/hostile/human/hermit/survivor{
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger{
dir = 8
},
/turf/open/floor/wood{
@@ -1672,6 +1675,7 @@
pixel_y = 6;
pixel_x = 3
},
+/obj/item/spacecash/bundle/loadsamoney,
/turf/open/floor/carpet,
/area/ruin/whitesands/saloon)
"ZG" = (
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/corporate_mining.dmm b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
index 1c1d689c267a..a2cb21cd1c1c 100644
--- a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
+++ b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
@@ -601,8 +601,8 @@
/area/ruin/space/has_grav/corporatemine/crewquarters)
"nN" = (
/obj/structure/closet/cabinet,
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
-/obj/item/ammo_box/magazine/m10mm,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/clothing/under/syndicate/donk,
/obj/item/clothing/suit/hazardvest/donk/qm,
/obj/item/reagent_containers/food/snacks/donkpocket,
@@ -2035,10 +2035,6 @@
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/space)
-"TO" = (
-/obj/structure/spawner/burrow/asteroid,
-/turf/open/floor/plating/asteroid/airless,
-/area/ruin/space)
"TR" = (
/obj/effect/decal/cleanable/blood/tracks{
dir = 8
@@ -2803,7 +2799,7 @@ Al
Al
Al
VM
-TO
+Iv
Al
Al
Al
diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm
index 85f087ec38a9..0ee697760b25 100644
--- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm
+++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm
@@ -2034,12 +2034,6 @@
},
/turf/open/space,
/area/space/nearstation)
-"Ra" = (
-/obj/structure/frame/computer{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/onehalf)
"Rv" = (
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood/airless{
@@ -3328,7 +3322,7 @@ UM
cp
ZX
Gv
-Ra
+Gv
cU
YE
bU
diff --git a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
index b76ae63a86e7..3d05cfb13d35 100644
--- a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
+++ b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
@@ -1739,7 +1739,7 @@
/area/ruin/space/has_grav/powerpuzzle/secure)
"sc" = (
/obj/effect/mob_spawn/human/corpse/cargo_tech,
-/obj/item/reagent_containers/food/snacks/cakeslice/birthday,
+/obj/item/food/cakeslice/birthday,
/obj/effect/decal/cleanable/confetti,
/obj/machinery/light/small/broken/directional/east,
/obj/structure/toilet,
diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm
index 99ccda138d00..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
},
@@ -8625,13 +8624,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/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
index 0f5d01fb7de8..db3f30c15f76 100644
--- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
@@ -1106,7 +1106,7 @@
"el" = (
/obj/structure/table/glass,
/obj/item/toy/plush/lizardplushie,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/turf/open/floor/light,
/area/ruin/space/has_grav/spacemall/shop2)
"eo" = (
@@ -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
},
@@ -1430,10 +1427,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,
@@ -2138,7 +2135,7 @@
/area/ruin/space/has_grav/spacemall)
"ip" = (
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/structure/table,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/dorms)
@@ -2212,10 +2209,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{
@@ -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,
@@ -3478,10 +3470,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)
@@ -3606,7 +3598,7 @@
/area/ruin/space/has_grav/spacemall/shop)
"nS" = (
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/item/reagent_containers/food/snacks/store/bread/spidermeat,
+/obj/item/food/bread/spidermeat,
/obj/structure/table,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/dorms)
@@ -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,
@@ -5966,15 +5956,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)
@@ -6776,7 +6766,7 @@
dir = 8
},
/obj/item/trash/plate,
-/obj/item/reagent_containers/food/snacks/breadslice/moldy{
+/obj/item/food/breadslice/moldy{
pixel_y = 6
},
/obj/item/reagent_containers/food/snacks/spiderling{
@@ -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" = (
@@ -13759,7 +13745,7 @@
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 1
},
-/obj/item/kitchen/knife/plastic{
+/obj/item/melee/knife/plastic{
pixel_x = 10
},
/obj/structure/disposalpipe/segment{
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
index 31c53d09a82e..e1a64004decb 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
@@ -1398,7 +1398,7 @@
dir = 4
},
/obj/machinery/door/airlock/engineering{
- name = "Mech Lab";
+ name = "Exosuit Lab";
dir = 4
},
/obj/machinery/door/firedoor/border_only{
@@ -2577,7 +2577,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/mechlab)
"DY" = (
/obj/machinery/door/airlock/engineering{
- name = "Mech Lab";
+ name = "Exosuit Lab";
dir = 4
},
/obj/effect/decal/cleanable/glass,
@@ -2723,7 +2723,7 @@
},
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/hostile/human/syndicate/melee{
- name = "Syndicate Mech Pilot"
+ name = "Syndicate Exosuit Pilot"
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/wasteplanet/abandoned_mechbay/crewquarters)
@@ -2771,7 +2771,7 @@
"Hj" = (
/obj/machinery/light/dim/directional/south,
/mob/living/simple_animal/hostile/human/syndicate/melee{
- name = "Syndicate Mech Pilot"
+ name = "Syndicate Exosuit Pilot"
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
@@ -3016,7 +3016,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/directional/south,
/mob/living/simple_animal/hostile/human/syndicate/melee{
- name = "Syndicate Mech Pilot"
+ name = "Syndicate Exosuit Pilot"
},
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay1)
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
index b90bfbe776bd..aa5797d05a95 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
@@ -754,7 +754,7 @@
dir = 8
},
/obj/item/paper,
-/obj/item/ammo_box/magazine/m10mm,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
index f422e4ef1eb8..934b648c0bd6 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
@@ -70,7 +70,7 @@
/area/ruin/wasteplanet)
"df" = (
/obj/structure/table/wood,
-/obj/item/kitchen/knife/combat/bone,
+/obj/item/melee/knife/bone,
/obj/item/flashlight/flare/torch,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
@@ -107,7 +107,7 @@
/area/ruin/wasteplanet)
"ge" = (
/obj/structure/table/wood,
-/obj/item/kitchen/knife/combat/bone{
+/obj/item/melee/knife/bone{
pixel_x = -20
},
/obj/item/reagent_containers/food/snacks/salad/edensalad,
@@ -120,7 +120,7 @@
"gm" = (
/obj/structure/closet/cabinet,
/obj/item/clothing/suit/hooded/cloak/bone,
-/obj/item/claymore/bone,
+/obj/item/melee/sword/bone,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
"gr" = (
@@ -423,7 +423,7 @@
/area/ruin/wasteplanet)
"qo" = (
/obj/structure/closet/cabinet,
-/obj/item/spear/bonespear,
+/obj/item/melee/spear/bone,
/obj/item/clothing/suit/armor/witchhunter,
/obj/item/reagent_containers/food/snacks/grown/berries/death,
/turf/open/floor/wood/waste,
@@ -491,7 +491,7 @@
/area/ruin/wasteplanet)
"sV" = (
/obj/structure/closet/cabinet,
-/obj/item/claymore/bone,
+/obj/item/melee/sword/bone,
/obj/item/clothing/suit/armor/witchhunter,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
@@ -578,7 +578,7 @@
/area/ruin/wasteplanet)
"xk" = (
/obj/structure/table/wood,
-/obj/item/spear/bonespear,
+/obj/item/melee/spear/bone,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
"xu" = (
@@ -813,7 +813,7 @@
/turf/open/indestructible/hierophant/two/waste,
/area/ruin/wasteplanet)
"FP" = (
-/obj/item/kitchen/knife/combat/bone{
+/obj/item/melee/knife/bone{
pixel_x = 15
},
/turf/open/floor/wood/waste,
@@ -960,7 +960,7 @@
"Li" = (
/obj/structure/closet/cabinet,
/obj/item/clothing/suit/armor/bone,
-/obj/item/fireaxe/boneaxe,
+/obj/item/melee/axe/bone,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
"Lj" = (
@@ -1233,7 +1233,7 @@
/area/ruin/wasteplanet)
"RT" = (
/obj/structure/table/wood,
-/obj/item/spear/bonespear,
+/obj/item/melee/spear/bone,
/obj/item/stack/sheet/sinew,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
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/configs/independent_beluga.json b/_maps/configs/independent_beluga.json
index 0449bc3a8cae..50f0591a41e9 100644
--- a/_maps/configs/independent_beluga.json
+++ b/_maps/configs/independent_beluga.json
@@ -1,8 +1,12 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Beluga-class Transport",
+ "faction": "/datum/faction/independent",
"prefix": "SV",
- "namelists": ["CRUISE", "NATURAL"],
+ "namelists": [
+ "CRUISE",
+ "NATURAL"
+ ],
"map_short_name": "Beluga-class",
"map_path": "_maps/shuttles/independent/independent_beluga.dmm",
"description": "The Beluga-Class is a transport vessel for those with especially rich blood. Featuring a modest kitchen, hired Inteq security, and luxurious decoration, the Beluga is a first choice pick for many wealthy spacers trying to get from point A to B. The independent ship features several rooms for its guests and a well furnished meeting room for any corporate occassion.",
diff --git a/_maps/configs/independent_box.json b/_maps/configs/independent_box.json
index 14133f03f5bb..c944f29fc54b 100644
--- a/_maps/configs/independent_box.json
+++ b/_maps/configs/independent_box.json
@@ -12,6 +12,7 @@
"SPACE",
"NATURAL"
],
+ "faction": "/datum/faction/independent",
"prefix": "IMV",
"job_slots": {
"Chief Medical Officer": {
diff --git a/_maps/configs/independent_bubble.json b/_maps/configs/independent_bubble.json
index f63aca854e8b..33a8cf8c1815 100644
--- a/_maps/configs/independent_bubble.json
+++ b/_maps/configs/independent_bubble.json
@@ -12,6 +12,7 @@
"GENERAL",
"SPACE"
],
+ "faction": "/datum/faction/independent",
"prefix": "ISV",
"limit": 1,
"job_slots": {
diff --git a/_maps/configs/independent_dwayne.json b/_maps/configs/independent_dwayne.json
index 64f68af68752..e770c725fc14 100644
--- a/_maps/configs/independent_dwayne.json
+++ b/_maps/configs/independent_dwayne.json
@@ -1,7 +1,8 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Mark.II Dwayne-class Long Range Mining Transport",
- "prefix": "ISV",
+ "faction": "/datum/faction/independent",
+ "prefix": "SV",
"namelists": [
"GENERAL",
"SPACE",
@@ -10,11 +11,12 @@
],
"map_short_name": "Mk.II Dwayne-class ",
"map_path": "_maps/shuttles/independent/independent_dwayne.dmm",
- "description": "The Dwayne is one of the older classes of ships commonly seen on the Frontier, and one of the few such classes that doesn’t also carry a reputation for nightmarish conditions or high accident rates. Originally conceived of as a “mothership” for Nanotrasen mining shuttles that could enable long-duration mining missions at minimal cost, severe budget overruns and issues with the mining shuttle docking system left Nanotrasen with a massive number of mostly-completed hulls upon the project’s cancellation. These hulls were then quickly refurbished and sold on the civilian market, where they proved an immediate success on the Frontier. Contemporary Dwaynes can typically be found carrying a variety of mining equipment and extensive modifications unique to their captains. Recently-available aftermarket modifications have solved the Dwayne’s longstanding shuttle dock issues, allowing modern Dwaynes to finally serve their original design purpose, provided the captain is able to source a shuttle.",
+ "description": "The Dwayne is one of the older classes of ships commonly seen on the Frontier, and one of the few such classes that doesn’t also carry a reputation for nightmarish conditions or high accident rates. Originally conceived of as a “mothership” for Nanotrasen mining shuttles that could enable long-duration mining missions at minimal cost, severe budget overruns and issues with the mining shuttle docking system left Nanotrasen with a massive number of mostly-completed hulls upon the project’s cancellation. These hulls were then quickly refurbished and sold on the civilian market, where they proved an immediate success on the Frontier. Contemporary Dwaynes can typically be found carrying a variety of mining equipment and extensive modifications unique to their captains.",
"tags": [
"Mining",
- "Generalist"
+ "Cargo"
],
+ "starting_funds": 4000,
"limit": 1,
"job_slots": {
"Captain": {
@@ -24,23 +26,20 @@
},
"Foreman": {
"outfit": "/datum/outfit/job/independent/quartermaster/western",
- "slots": 1
- },
- "Ship's Doctor": {
- "outfit": "/datum/outfit/job/independent/doctor",
- "slots": 1
- },
- "Ship's Engineer": {
- "outfit": "/datum/outfit/job/independent/engineer",
+ "officer": true,
"slots": 1
},
"Asteroid Miner": {
"outfit": "/datum/outfit/job/independent/miner/hazard",
"slots": 2
},
+ "Mechanic": {
+ "outfit": "/datum/outfit/job/independent/engineer",
+ "slots": 1
+ },
"Deckhand": {
"outfit": "/datum/outfit/job/independent/assistant",
- "slots": 3
+ "slots": 1
}
},
"enabled": true
diff --git a/_maps/configs/independent_junker.json b/_maps/configs/independent_junker.json
index bd7807a02bb4..92edb754984a 100644
--- a/_maps/configs/independent_junker.json
+++ b/_maps/configs/independent_junker.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Junker-class Salvaged Ship",
+ "faction": "/datum/faction/independent",
"prefix": "SV",
"namelists": [
"GENERAL",
diff --git a/_maps/configs/independent_kilo.json b/_maps/configs/independent_kilo.json
index b1304f2e78bb..9ff4ccfbf191 100644
--- a/_maps/configs/independent_kilo.json
+++ b/_maps/configs/independent_kilo.json
@@ -1,11 +1,12 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Kilo-class Mining Ship",
- "description": "The Kilo-class is a miniscule mining ship that stretches the definition of an independently-capable spacecraft. Beginning life long ago as a series of purpose-built mining shuttles intended for use on Frontier outposts, progressive cycles of over-engineering for a longer mission duration eventually produced the lumpen, claustrophobic Kilo seen today. Once quite numerous, Kilos are still a common “barn find” on abandoned stations and forgotten storage bays, and their extreme age and poor storage conditions typically leaves them in especially poor condition. Kilo crews are often considered to be quite eccentric even by Frontier standards, and some spacers insist even a well-balanced spacer will quickly come unglued in the Kilo’s “unique” environment.",
+ "description": "The Kilo-class is a very old and miniscule pattern of mining ship, produced in vast numbers over the centuries and commonly found in scrapyards or forgotten in storage. Most examples on the Frontier have been restored by Miskilamo Spacefaring using parts from other nonfunctional Kilos, producing a ship that is as inexpensive as it is cramped and unreliable. The low cost and ease of repair or replacement nevertheless make the Kilo very popular among budget-minded captains.",
"tags": [
- "Generalist"
+ "Mining"
],
- "prefix": "ISV",
+ "faction": "/datum/faction/independent",
+ "prefix": "SV",
"namelists": [
"GENERAL",
"SPACE",
@@ -16,22 +17,18 @@
"map_path": "_maps/shuttles/independent/independent_kilo.dmm",
"job_slots": {
"Captain": {
- "outfit": "/datum/outfit/job/independent/captain/western",
+ "outfit": "/datum/outfit/job/independent/captain/cheap",
"officer": true,
"slots": 1
},
- "Ship's Doctor": {
- "outfit": "/datum/outfit/job/independent/doctor",
+ "Asteroid Miner": {
+ "outfit": "/datum/outfit/job/independent/miner/hazard",
"slots": 1
},
- "Ship's Engineer": {
+ "Mechanic": {
"outfit": "/datum/outfit/job/independent/engineer",
"slots": 1
},
- "Asteroid Miner": {
- "outfit": "/datum/outfit/job/independent/miner",
- "slots": 1
- },
"Deckhand": {
"outfit": "/datum/outfit/job/independent/assistant",
"slots": 1
diff --git a/_maps/configs/independent_lagoon.json b/_maps/configs/independent_lagoon.json
index 313b4cd71d95..6a48dccd1e99 100644
--- a/_maps/configs/independent_lagoon.json
+++ b/_maps/configs/independent_lagoon.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Lagoon-class Cruise Ship",
+ "faction": "/datum/faction/independent",
"prefix": "SV",
"description": "An unusual sight in the relatively impoverished Frontier, the Lagoon-class is a large pleasure vessel dedicated to transporting its passengers to any number of exotic locales. Lagoons found on the Frontier tend to contain crews and passengers of a particularly daring – or foolhardy – character, willing to pay out the nose for a tour of some of the most dangerous regions in known space. Accordingly, Lagoons in these regions typically include a small but respectably equipped security contingent to protect (and, when necessary, rein in) the passengers, and come with a surprisingly powerful thermo-electric generator to move the ship’s prodigious bulk across vast expanses of space.",
"tags": [
diff --git a/_maps/configs/independent_mudskipper.json b/_maps/configs/independent_mudskipper.json
index 6119b39865d0..469230d752a3 100644
--- a/_maps/configs/independent_mudskipper.json
+++ b/_maps/configs/independent_mudskipper.json
@@ -2,6 +2,7 @@
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Mudskipper-class Salvage Clipper",
"map_short_name": "Mudskipper-class",
+ "faction": "/datum/faction/independent",
"prefix": "ISV",
"description": "One of the cheapest (and yet, inexplicably popular) offerings from Miskilamo Spacefaring, the Mudskipper-class is a vessel purpose-built for enterprising scrappers and looters looking to salvage bombed-out ruins and harvest boatloads of materials. Featuring a diverse set of multipurpose rooms, a charitable supply of EVA/ruin raiding equipment, and a set of anti-radiation gear for dealing with industrial accidents, the Mudskipper-class just keeps on chuggin’!",
"tags": [
@@ -14,11 +15,11 @@
"SPACE"
],
"map_path": "_maps/shuttles/independent/independent_mudskipper.dmm",
- "limit": 1,
+ "limit": 2,
"starting_funds": 1500,
"job_slots": {
"Salvage Leader": {
- "outfit": "/datum/outfit/job/independent/captain",
+ "outfit": "/datum/outfit/job/independent/captain/cheap",
"officer": true,
"slots": 1
},
diff --git a/_maps/configs/independent_rigger.json b/_maps/configs/independent_rigger.json
index e36b57ca750a..57f147867e29 100644
--- a/_maps/configs/independent_rigger.json
+++ b/_maps/configs/independent_rigger.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Riggs-class Sloop",
+ "faction": "/datum/faction/independent",
"prefix": "SV",
"namelists": [
"GENERAL",
@@ -8,7 +9,7 @@
"NATURAL"
],
"map_short_name": "Riggs-class",
- "description": "The Riggs-class is Kasagi-Fischer Partnership’s mainstay in the independent ship market. Spacious, affordable, and versatile, the Riggs offers basic capabilities for everything a Frontier spacer might need in a convenient, easy-to-modify platform, and by default come equipped with a basic medbay, a small security office, atmospherics recycling and equipment to support an APLU utility mech. Thanks to this versatility, the Riggs has become extremely popular among moderately-wealthy independent captains, and can be found doing everything from mining to shipping to surveying Frontier planets.",
+ "description": "The Riggs-class is Kasagi-Fischer Partnership’s mainstay in the independent ship market. Spacious, affordable, and versatile, the Riggs offers basic capabilities for everything a Frontier spacer might need in a convenient, easy-to-modify platform, and by default come equipped with a basic medbay, a small security office, atmospherics recycling and equipment to support an APLU utility exosuit. Thanks to this versatility, the Riggs has become extremely popular among moderately-wealthy independent captains, and can be found doing everything from mining to shipping to surveying Frontier planets.",
"tags": [
"Mining",
"Medical",
diff --git a/_maps/configs/independent_schmiedeberg.json b/_maps/configs/independent_schmiedeberg.json
index e9cffc680320..5b5f1bf36a4c 100644
--- a/_maps/configs/independent_schmiedeberg.json
+++ b/_maps/configs/independent_schmiedeberg.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Schmiedeberg-class Pharmacology Ship",
+ "faction": "/datum/faction/independent",
"prefix": "IMV",
"map_short_name": "Schmiedeberg-class",
"description": "Interested in pharmacological science, but tired of sitting in front of a chemistry dispenser and pushing buttons all day? Eager to combine the culinary arts with the narcotic ones? Hoping to combine all of these qualities with the most important activity of all: making fat stacks of dosh? Then the Schmiedeberg-class is for you! Host to a robust ghetto chemistry lab, a high-efficiency botanical set-up and a complete kitchen-and-storefront, the Schmiedeberg is perfect for back-alley chemists and botanists everywhere.",
diff --git a/_maps/configs/independent_shetland.json b/_maps/configs/independent_shetland.json
index de5873f80d75..a44478e49c74 100644
--- a/_maps/configs/independent_shetland.json
+++ b/_maps/configs/independent_shetland.json
@@ -1,5 +1,6 @@
{
"map_name": "Shetland-class Multipurpose Frigate",
+ "faction": "/datum/faction/independent",
"prefix": "SV",
"namelists": [
"GENERAL",
diff --git a/_maps/configs/independent_sunskipper.json b/_maps/configs/independent_sunskipper.json
index ee17e126cc34..a87d2582f097 100644
--- a/_maps/configs/independent_sunskipper.json
+++ b/_maps/configs/independent_sunskipper.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Sunskipper-class Culinary Vessel",
+ "faction": "/datum/faction/independent",
"prefix": "SV",
"namelists": ["CRUISE", "NATURAL"],
"map_short_name": "Sunskipper-class",
diff --git a/_maps/configs/independent_tranquility.json b/_maps/configs/independent_tranquility.json
index 07236d5e4568..37ba6bc8b813 100644
--- a/_maps/configs/independent_tranquility.json
+++ b/_maps/configs/independent_tranquility.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Tranquility-class Flying Apartment Complex",
+ "faction": "/datum/faction/independent",
"prefix": "SV",
"namelists": [
"GENERAL",
diff --git a/_maps/configs/inteq_colossus.json b/_maps/configs/inteq_colossus.json
index 718ecb9f1295..68bc1e2ec1b3 100644
--- a/_maps/configs/inteq_colossus.json
+++ b/_maps/configs/inteq_colossus.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Colossus-class Armored Frigate",
+ "faction": "/datum/faction/inteq",
"prefix": "IRMV",
"description": "The mainstay of Inteq’s mercenary fleet, the Colossus is a professionally-militarized freighter like most of Inteq’s ships, and is designed to operate independently for some time, serving IRMG’s interests and providing vital mercenary services wherever they are needed. Key features include a secure and well-stocked armory and ample crew space, as well as a spacious cargo bay, which crews often refurbish into additional recreational or training space.",
"tags": [
@@ -41,7 +42,7 @@
},
"Recruit": {
"outfit": "/datum/outfit/job/inteq/assistant",
- "slots": 5
+ "slots": 2
}
},
"enabled": true
diff --git a/_maps/configs/inteq_hound.json b/_maps/configs/inteq_hound.json
index 3d3617263f61..f92f7d285f12 100644
--- a/_maps/configs/inteq_hound.json
+++ b/_maps/configs/inteq_hound.json
@@ -1,5 +1,6 @@
{
"map_name": "Hound-class Corvette",
+ "faction": "/datum/faction/inteq",
"prefix": "IRMV",
"namelists": [
"MYTHOLOGICAL",
diff --git a/_maps/configs/inteq_talos.json b/_maps/configs/inteq_talos.json
index 54f134964470..b2d39c10f443 100644
--- a/_maps/configs/inteq_talos.json
+++ b/_maps/configs/inteq_talos.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Talos-class Command Clipper",
+ "faction": "/datum/faction/inteq",
"prefix": "IRMV",
"description": "The Talos is a command and support ship, and a rare example of a purpose-built Inteq ship. Outfitted with an abundance of construction and engineering equipment and a private bluespace communications suite capable of networking IRMG ships across any given system, Taloses are often the lynchpin of coordinated IRMG operations in a system, and offer construction and repair services as part of IRMG’s mercenary offerings. As Talos crews place a larger emphasis on support personnel, they tend to be less well-armed than other Inteq crews. One unusual feature of the Talos is its depressurized “wings” filled with redundant baffles, intended to provide extra durability in the case of impacts or weapons fire. They also double as auxiliary storage space and potential room for modification by their enterprising Artificer crews.",
"tags": [
@@ -40,9 +41,13 @@
"outfit": "/datum/outfit/job/inteq/security",
"slots": 1
},
+ "Corpsman": {
+ "outfit": "/datum/outfit/job/inteq/paramedic",
+ "slots": 1
+ },
"Recruit": {
"outfit": "/datum/outfit/job/inteq/assistant",
- "slots": 4
+ "slots": 4
}
},
"enabled": true
diff --git a/_maps/configs/inteq_valor.json b/_maps/configs/inteq_valor.json
index 1a3c957cc7b9..c91d7838408f 100644
--- a/_maps/configs/inteq_valor.json
+++ b/_maps/configs/inteq_valor.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Valor-Class Field Care Cruiser",
+ "faction": "/datum/faction/inteq",
"prefix": "IRMV",
"description": "The Valor is the dedicated medical vessel of the Inteq fleet, suitable for treatment both for Inteq combat casualties, or paid treatment of outsiders. It's equipped with high-end medical equipment and a small ambulance for patient transport for this purpose.",
"tags": ["Medical", "Subshuttle"],
diff --git a/_maps/configs/inteq_vaquero.json b/_maps/configs/inteq_vaquero.json
index 459b7353d292..2b0bed8bfe98 100644
--- a/_maps/configs/inteq_vaquero.json
+++ b/_maps/configs/inteq_vaquero.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Vaquero-class Light Frigate",
+ "faction": "/datum/faction/inteq",
"prefix": "IRMV",
"description": "The Vaquero is a flexible and cheap military conversion of a light commercial freighter, widely used by Inteq Risk Management Group for picket, reconnaissance, and light escort duty, or for contracts that don't warrant a larger, more specialized ship. Unlike most Inteq ships, the Vaquero features basic medical, engineering, and military equipment all in one package, and its minimal crew requirements are an excellent fit for Vanguards with a smaller command and for training missions. Like its peers, it features a large cargo bay, which can be reconfigured as needed.",
"tags": [
@@ -38,7 +39,7 @@
},
"Recruit": {
"outfit": "/datum/outfit/job/inteq/assistant",
- "slots": 2
+ "slots": 1
}
},
"enabled": true
diff --git a/_maps/configs/nanotrasen_delta.json b/_maps/configs/nanotrasen_delta.json
index 57e920f77d67..cf28abc50219 100644
--- a/_maps/configs/nanotrasen_delta.json
+++ b/_maps/configs/nanotrasen_delta.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Delta-class Frigate",
+ "faction": "/datum/faction/nt/ns_logi",
"prefix": "NSSV",
"namelists": [
"GENERAL",
diff --git a/_maps/configs/nanotrasen_gecko.json b/_maps/configs/nanotrasen_gecko.json
index 01568c3c1d53..c01e4d9b4801 100644
--- a/_maps/configs/nanotrasen_gecko.json
+++ b/_maps/configs/nanotrasen_gecko.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Gecko-class Salvage Runner",
+ "faction": "/datum/faction/nt",
"prefix": "NTSV",
"namelists": [
"NANOTRASEN",
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_heron.json b/_maps/configs/nanotrasen_heron.json
index 80bf87c0cd15..e8f798d1edab 100644
--- a/_maps/configs/nanotrasen_heron.json
+++ b/_maps/configs/nanotrasen_heron.json
@@ -1,7 +1,10 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "faction": "/datum/faction/nt",
"prefix": "NTSV",
- "namelists": ["WEAPONS"],
+ "namelists": [
+ "WEAPONS"
+ ],
"map_name": "Heron-Class Dreadnaught",
"map_short_name": "Heron-class",
"map_path": "_maps/shuttles/nanotrasen/nanotrasen_heron.dmm",
@@ -33,19 +36,19 @@
"outfit": "/datum/outfit/job/nanotrasen/security",
"slots": 1
},
- "ERT Officer":{
+ "ERT Officer": {
"outfit": "/datum/outfit/job/nanotrasen/security/ert",
"slots": 4
},
- "ERT Medical Officer":{
+ "ERT Medical Officer": {
"outfit": "/datum/outfit/job/nanotrasen/security/ert/med",
"slots": 1
},
- "ERT Engineering Officer":{
+ "ERT Engineering Officer": {
"outfit": "/datum/outfit/job/nanotrasen/security/ert/engi",
"slots": 1
},
- "Mech Pilot":{
+ "Exosuit Pilot":{
"outfit": "/datum/outfit/job/nanotrasen/security/mech_pilot",
"slots": 1
},
@@ -53,20 +56,19 @@
"outfit": "/datum/outfit/job/nanotrasen/engineer",
"slots": 1
},
- "Chief Engineer":{
+ "Chief Engineer": {
"outfit": "/datum/outfit/job/nanotrasen/ce",
"officer": true,
"slots": 1
},
"Roboticist": {
- "outfit":"/datum/outfit/job/nanotrasen/roboticist",
+ "outfit": "/datum/outfit/job/nanotrasen/roboticist",
"slots": 1
},
- "Medical Doctor":{
+ "Medical Doctor": {
"outfit": "/datum/outfit/job/nanotrasen/doctor",
"slots": 1
},
-
"Atmospheric Technician": 1,
"Quartermaster": 1,
"Cargo Technician": 1,
diff --git a/_maps/configs/nanotrasen_meta.json b/_maps/configs/nanotrasen_meta.json
index b4287c3bca3b..207a6a89864b 100644
--- a/_maps/configs/nanotrasen_meta.json
+++ b/_maps/configs/nanotrasen_meta.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Meta-class Freighter",
+ "faction": "/datum/faction/nt",
"prefix": "NTSV",
"map_short_name": "Meta-class",
"description": "The Meta-class is a medium freight vessel designed for comfort and sustainability over long journeys of delivering cargo. Most, if not all of these ships are no longer under the direct management of the Company, leaving regulation and professionalism at the behest of individual captains. They can be found running independent contracts, delivering cargo, smuggling illicit goods, and generally trying to stay afloat ever since the collapse of Nanotrasen's operations in the frontier.",
diff --git a/_maps/configs/nanotrasen_mimir.json b/_maps/configs/nanotrasen_mimir.json
index db7d8b90d198..4f50f429e210 100644
--- a/_maps/configs/nanotrasen_mimir.json
+++ b/_maps/configs/nanotrasen_mimir.json
@@ -1,5 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "faction": "/datum/faction/nt",
"prefix": "NTSV",
"namelists": [
"NANOTRASEN",
diff --git a/_maps/configs/nanotrasen_osprey.json b/_maps/configs/nanotrasen_osprey.json
deleted file mode 100644
index 7e0804a7f203..000000000000
--- a/_maps/configs/nanotrasen_osprey.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
- "map_name": "Osprey-class Exploration Cruiser",
- "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_ranger.json b/_maps/configs/nanotrasen_ranger.json
index b4af3e797d39..fedc351e03b0 100644
--- a/_maps/configs/nanotrasen_ranger.json
+++ b/_maps/configs/nanotrasen_ranger.json
@@ -1,23 +1,23 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
- "prefix": "NTSV",
+ "prefix": "VISV",
"map_name": "Ranger-class Aid Vessel",
+ "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": {
@@ -38,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/configs/nanotrasen_skipper.json b/_maps/configs/nanotrasen_skipper.json
deleted file mode 100644
index 2f61c3afa601..000000000000
--- a/_maps/configs/nanotrasen_skipper.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
- "map_name": "Skipper-class Heavy Cruiser",
- "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/configs/pgf_crying_sun.json b/_maps/configs/pgf_crying_sun.json
index d4eb67b1fb50..7115072cb9fa 100644
--- a/_maps/configs/pgf_crying_sun.json
+++ b/_maps/configs/pgf_crying_sun.json
@@ -1,5 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "faction": "/datum/faction/pgf",
"prefix": "PGFN",
"map_name": "Crying Sun-class Light Frigate",
"namelists": [
@@ -21,7 +22,7 @@
"officer": true,
"slots": 1
},
- "Bridge Crew": {
+ "Helmsman": {
"outfit": "/datum/outfit/job/gezena/assistant/bridge",
"slots": 1
},
@@ -37,7 +38,7 @@
"outfit": "/datum/outfit/job/gezena/assistant",
"slots": 2
},
- "Marine Sergeant": {
+ "Marine Lieutenant": {
"outfit": "/datum/outfit/job/gezena/hos",
"slots": 1
},
diff --git a/_maps/configs/pirate_libertatia.json b/_maps/configs/pirate_libertatia.json
index 4ed426746512..9a77cc2c5dec 100644
--- a/_maps/configs/pirate_libertatia.json
+++ b/_maps/configs/pirate_libertatia.json
@@ -7,6 +7,7 @@
"tags": [
"Combat"
],
+ "faction": "/datum/faction/frontier",
"prefix": "ISV",
"namelists": [
"PIRATES",
diff --git a/_maps/configs/pirate_noderider.json b/_maps/configs/pirate_noderider.json
index 7863a9d96896..60ce1a8501a6 100644
--- a/_maps/configs/pirate_noderider.json
+++ b/_maps/configs/pirate_noderider.json
@@ -2,6 +2,7 @@
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Jupiter-class Stormrider",
"map_short_name": "Jupiter-class",
+ "faction": "/datum/faction/frontier",
"prefix": "ISV",
"namelists": [
"INSTALLATION",
diff --git a/_maps/configs/pirate_tortuga.json b/_maps/configs/pirate_tortuga.json
index 702185c02387..6543d349bad9 100644
--- a/_maps/configs/pirate_tortuga.json
+++ b/_maps/configs/pirate_tortuga.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Tortuga-class Converted Cargo Freighter",
+ "faction": "/datum/faction/frontier",
"prefix": "ISV",
"namelists": [
"PIRATES",
diff --git a/_maps/configs/solgov_chronicle.json b/_maps/configs/solgov_chronicle.json
index 9fe11023e376..b1b14f281938 100644
--- a/_maps/configs/solgov_chronicle.json
+++ b/_maps/configs/solgov_chronicle.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Chronicle-class Sensor Frigate",
+ "faction": "/datum/faction/solgov",
"prefix": "SCSV",
"namelists": [
"SOLGOV",
diff --git a/_maps/configs/solgov_inkwell.json b/_maps/configs/solgov_inkwell.json
index b7ae54a1b6b9..92c1f80075f3 100644
--- a/_maps/configs/solgov_inkwell.json
+++ b/_maps/configs/solgov_inkwell.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Inkwell-class Supply Freighter",
+ "faction": "/datum/faction/solgov",
"prefix": "SCSV",
"namelists": [
"SOLGOV",
diff --git a/_maps/configs/solgov_paracelsus.json b/_maps/configs/solgov_paracelsus.json
index a5eefc5296df..0e9695952e16 100644
--- a/_maps/configs/solgov_paracelsus.json
+++ b/_maps/configs/solgov_paracelsus.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Paracelsus-class Medical Corvette",
+ "faction": "/datum/faction/solgov",
"prefix": "SCSV",
"namelists": [
"SOLGOV",
diff --git a/_maps/configs/srm_elder.json b/_maps/configs/srm_elder.json
index 03caf7196183..6fffaff63e2b 100644
--- a/_maps/configs/srm_elder.json
+++ b/_maps/configs/srm_elder.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Elder-class Montagnes' Vessel",
+ "faction": "/datum/faction/srm",
"prefix": "SRSV",
"namelists": [
"SAINT-ROUMAIN",
diff --git a/_maps/configs/syndicate_cybersun_kansatsu.json b/_maps/configs/syndicate_cybersun_kansatsu.json
index a9c9fcb94349..013be2455640 100644
--- a/_maps/configs/syndicate_cybersun_kansatsu.json
+++ b/_maps/configs/syndicate_cybersun_kansatsu.json
@@ -1,5 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "faction": "/datum/faction/syndicate/cybersun",
"prefix": "CSSV",
"namelists": [
"CYBERSUN",
diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_gorlex_hyena.json
index a835e00b1eba..df4c6485bb0f 100644
--- a/_maps/configs/syndicate_gorlex_hyena.json
+++ b/_maps/configs/syndicate_gorlex_hyena.json
@@ -1,5 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "faction": "/datum/faction/syndicate/ngr",
"prefix": "NGRV",
"namelists": [
"GORLEX",
diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json
index 2bc7a358b754..b51dee46ffd9 100644
--- a/_maps/configs/syndicate_gorlex_komodo.json
+++ b/_maps/configs/syndicate_gorlex_komodo.json
@@ -1,4 +1,5 @@
{
+ "faction": "/datum/faction/syndicate",
"prefix": "ISV",
"namelists": [
"GORLEX",
@@ -28,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
@@ -43,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
diff --git a/_maps/configs/syndicate_litieguai.json b/_maps/configs/syndicate_litieguai.json
index 685a53187422..4680ebe932d6 100644
--- a/_maps/configs/syndicate_litieguai.json
+++ b/_maps/configs/syndicate_litieguai.json
@@ -1,6 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Li Tieguai-class Rescue Ship",
+ "faction": "/datum/faction/syndicate/cybersun",
"prefix": "CSSV",
"map_short_name": "Li Tieguai-class",
"description": "A small, nimble, and exceptionally well-built medical response vessel, the Li Tieguai is a recent addition to Cybersun’s fleet, forming a critical component of their Frontier stabilization program. Li Tieguais come equipped with high-end medical equipment, including a selection of Cybersun augments and prosthetics, as well as weaponry and armor sufficient to protect its personnel in the often-dangerous Frontier sectors, so that they can offer premium healthcare (at premium prices) in even the most dangerous of scenarios.",
diff --git a/_maps/configs/syndicate_panacea.json b/_maps/configs/syndicate_panacea.json
index 5ac45d571829..f56158d9d9df 100644
--- a/_maps/configs/syndicate_panacea.json
+++ b/_maps/configs/syndicate_panacea.json
@@ -3,6 +3,7 @@
"map_name": "Panacea-class Infirm Vessel",
"map_short_name": "Panacea-class",
"map_path": "_maps/shuttles/syndicate/syndicate_panacea.dmm",
+ "faction": "/datum/faction/syndicate/suns",
"description": "Shortly after Solcon breached the Oort Cloud, SUNS joined into the Syndicate Coalition. Holding close ties to both the ACLF and GEC, students jumped at the opportunity to see the rest of the galaxy. The Panacea-class was the first of its kind out of Sol, moving typically planetside inpatient care to a space vessel and jumping system to system. The Panacea class is a moderately well supplied ship, allowing for emergency pharmaceutical compounding, mental and physical therapy, and general medical work, while doubling as a student run vessel.",
"tags": [
"Generalist",
diff --git a/_maps/configs/syndicate_twinkleshine.json b/_maps/configs/syndicate_twinkleshine.json
index ef84cca126f5..b1be2eb333d8 100644
--- a/_maps/configs/syndicate_twinkleshine.json
+++ b/_maps/configs/syndicate_twinkleshine.json
@@ -1,5 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "faction": "/datum/faction/syndicate",
"prefix": "SSV",
"namelists": [
"GORLEX",
diff --git a/_maps/example_ship_config.json b/_maps/example_ship_config.json
index 0f4129fa3d5d..e5dbd47d61e2 100644
--- a/_maps/example_ship_config.json
+++ b/_maps/example_ship_config.json
@@ -2,6 +2,7 @@
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Example-class Experimental Ship",
"map_short_name": "Test-class",
+ "faction": "/datum/faction/independent",
"prefix": "STSV",
"namelists": ["GENERAL", "SPACE", "MYTHOLOGICAL", "WEAPONS"],
"map_path": "_maps/shuttles/shiptest/null.dmm",
diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt
index 5d941ef7fd60..35eb2db0bb16 100644
--- a/_maps/map_catalogue.txt
+++ b/_maps/map_catalogue.txt
@@ -90,10 +90,15 @@ Find the key for using this catalogue in "map_catalogue_key.txt"
Size = (x = 47)(y = 47)(z = 1)
Tags = "Boss Combat Challenge", "Major Loot", "Shelter", "Lava"
- File Name = "_maps\RandomRuins\BeachRuins\lavaland_crashed_starwalker.dmm"
+ 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)
@@ -129,6 +134,10 @@ Find the key for using this catalogue in "map_catalogue_key.txt"
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"
@@ -227,3 +236,7 @@ Find the key for using this catalogue in "map_catalogue_key.txt"
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/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index ff8c37d19e96..d7715e22b561 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{
@@ -154,7 +154,7 @@
/turf/open/floor/plating,
/area/ctf)
"agI" = (
-/obj/machinery/power/emitter/energycannon{
+/obj/machinery/power/emitter/energycannon/ctf{
active = 0
},
/turf/open/floor/plating,
@@ -163,7 +163,7 @@
/turf/open/floor/plating,
/area/ctf)
"aha" = (
-/obj/machinery/power/emitter/energycannon{
+/obj/machinery/power/emitter/energycannon/ctf{
active = 0;
dir = 1
},
@@ -1084,11 +1084,11 @@
/area/centcom/control)
"apm" = (
/obj/structure/rack,
-/obj/item/gun/ballistic/automatic/marksman/gal/inteq{
+/obj/item/gun/ballistic/automatic/marksman/f4/inteq{
pixel_x = 1;
pixel_y = 4
},
-/obj/item/gun/ballistic/automatic/marksman/gal/inteq{
+/obj/item/gun/ballistic/automatic/marksman/f4/inteq{
pixel_x = -4;
pixel_y = -2
},
@@ -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" = (
@@ -1686,7 +1686,7 @@
/area/centcom/evac)
"atW" = (
/obj/structure/rack,
-/obj/item/nullrod/claymore{
+/obj/item/melee/sword/claymore{
damtype = "stamina";
force = 30
},
@@ -1908,7 +1908,7 @@
/area/wizard_station)
"avt" = (
/obj/structure/rack,
-/obj/item/nullrod/claymore/katana{
+/obj/item/melee/sword/katana{
damtype = "stamina";
force = 30
},
@@ -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,
@@ -2467,13 +2455,11 @@
/turf/open/floor/plasteel,
/area/wizard_station)
"azO" = (
-/obj/item/kitchen/knife/ritual,
+/obj/item/melee/knife/kitchen,
/turf/open/floor/plasteel,
/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)
@@ -3043,10 +3029,6 @@
/obj/structure/table/wood,
/turf/open/floor/plasteel,
/area/wizard_station)
-"aEX" = (
-/obj/structure/table/wood,
-/turf/open/floor/plasteel,
-/area/wizard_station)
"aEY" = (
/obj/structure/table/wood,
/obj/item/bikehorn/golden{
@@ -3313,7 +3295,6 @@
/area/tdome/tdomeobserve)
"aHq" = (
/obj/structure/closet/cardboard,
-/obj/item/banhammer,
/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plasteel,
/area/wizard_station)
@@ -3944,7 +3925,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,
@@ -4055,7 +4036,7 @@
"aMx" = (
/obj/machinery/light/directional/east,
/obj/structure/rack,
-/obj/item/nullrod/claymore/saber/red{
+/obj/item/melee/sword/claymore{
damtype = "stamina";
force = 30
},
@@ -4412,7 +4393,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,
@@ -4520,11 +4501,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,
@@ -4983,7 +4964,7 @@
"aRS" = (
/obj/machinery/light/directional/west,
/obj/structure/rack,
-/obj/item/nullrod/claymore/glowing{
+/obj/item/melee/sword/claymore{
damtype = "stamina";
force = 30
},
@@ -5288,15 +5269,6 @@
/obj/item/reagent_containers/glass/beaker,
/turf/open/floor/plasteel,
/area/centcom/holding)
-"aUh" = (
-/obj/machinery/light/directional/east,
-/obj/structure/rack,
-/obj/item/nullrod/claymore/darkblade{
- damtype = "stamina";
- force = 30
- },
-/turf/open/floor/wood,
-/area/centcom/holding)
"aUj" = (
/obj/item/coin/antagtoken,
/obj/effect/turf_decal/industrial/outline/yellow,
@@ -5497,7 +5469,7 @@
/area/wizard_station)
"aVF" = (
/obj/structure/rack,
-/obj/item/nullrod/scythe/vibro{
+/obj/item/scythe{
damtype = "stamina";
force = 30
},
@@ -5967,15 +5939,6 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
/area/centcom/control)
-"aYV" = (
-/obj/machinery/light/directional/west,
-/obj/structure/rack,
-/obj/item/nullrod/claymore/saber{
- damtype = "stamina";
- force = 30
- },
-/turf/open/floor/wood,
-/area/centcom/holding)
"aYW" = (
/obj/effect/landmark/thunderdome/one,
/obj/effect/turf_decal/industrial/warning{
@@ -6990,8 +6953,8 @@
/area/centcom/evac)
"cIS" = (
/obj/structure/rack,
-/obj/item/gun/ballistic/shotgun/bulldog/inteq,
-/obj/item/gun/ballistic/shotgun/bulldog/inteq{
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq,
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq{
pixel_x = -5;
pixel_y = -5
},
@@ -8850,7 +8813,7 @@
},
/area/centcom)
"gFU" = (
-/obj/machinery/computer/helm,
+/obj/machinery/computer,
/obj/effect/turf_decal/industrial/warning{
dir = 6
},
@@ -10979,14 +10942,14 @@
/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/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
@@ -11574,8 +11537,8 @@
/obj/item/reagent_containers/food/snacks/meat/slab/xeno,
/obj/item/reagent_containers/food/snacks/meat/slab/xeno,
/obj/item/reagent_containers/food/snacks/meat/slab/xeno,
-/obj/item/reagent_containers/food/snacks/spaghetti,
-/obj/item/reagent_containers/food/snacks/spaghetti,
+/obj/item/food/spaghetti/raw,
+/obj/item/food/spaghetti/raw,
/obj/item/reagent_containers/food/snacks/meat/rawcutlet,
/obj/item/reagent_containers/food/snacks/meat/rawcutlet,
/obj/item/reagent_containers/food/snacks/meat/rawcutlet,
@@ -12253,7 +12216,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
},
@@ -14505,7 +14468,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{
@@ -15514,7 +15477,7 @@
pixel_x = 7;
pixel_y = -2
},
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_y = -5;
pixel_x = -5
},
@@ -15801,7 +15764,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
@@ -22477,7 +22440,7 @@ aqZ
aqZ
aqZ
aqE
-awU
+aXi
ayg
aHq
aqE
@@ -23766,7 +23729,7 @@ auE
aEc
auE
aAx
-aEX
+aEW
aqZ
aqZ
aGr
@@ -43314,7 +43277,7 @@ aCT
aCT
aNT
avt
-aYV
+aRS
aOU
aOU
aRS
@@ -45887,7 +45850,7 @@ avt
aMx
aQg
aTb
-aUh
+aMx
atW
aWO
aaa
diff --git a/_maps/outpost/hangar/nt_ice_20x20.dmm b/_maps/outpost/hangar/nt_ice_20x20.dmm
index 06e76cbe6b5b..03321bfceaa3 100644
--- a/_maps/outpost/hangar/nt_ice_20x20.dmm
+++ b/_maps/outpost/hangar/nt_ice_20x20.dmm
@@ -837,7 +837,7 @@
/obj/effect/turf_decal/siding/white/corner{
dir = 4
},
-/obj/machinery/atmospherics/components/binary/pressure_valve,
+/obj/machinery/atmospherics/components/binary/volume_pump,
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
diff --git a/_maps/outpost/hangar/nt_ice_40x20.dmm b/_maps/outpost/hangar/nt_ice_40x20.dmm
index defafdc3b085..dc4366bfd54b 100644
--- a/_maps/outpost/hangar/nt_ice_40x20.dmm
+++ b/_maps/outpost/hangar/nt_ice_40x20.dmm
@@ -305,7 +305,7 @@
/obj/effect/turf_decal/siding/white/corner{
dir = 4
},
-/obj/machinery/atmospherics/components/binary/pressure_valve,
+/obj/machinery/atmospherics/components/binary/volume_pump,
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
diff --git a/_maps/outpost/hangar/nt_ice_40x40.dmm b/_maps/outpost/hangar/nt_ice_40x40.dmm
index 62c3858641a5..69d81767fd7f 100644
--- a/_maps/outpost/hangar/nt_ice_40x40.dmm
+++ b/_maps/outpost/hangar/nt_ice_40x40.dmm
@@ -1398,7 +1398,7 @@
/obj/effect/turf_decal/siding/white/corner{
dir = 4
},
-/obj/machinery/atmospherics/components/binary/pressure_valve,
+/obj/machinery/atmospherics/components/binary/volume_pump,
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
diff --git a/_maps/outpost/hangar/nt_ice_56x20.dmm b/_maps/outpost/hangar/nt_ice_56x20.dmm
index 08deb1360025..0966a1e60fa2 100644
--- a/_maps/outpost/hangar/nt_ice_56x20.dmm
+++ b/_maps/outpost/hangar/nt_ice_56x20.dmm
@@ -322,20 +322,6 @@
planetary_atmos = 1
},
/area/hangar)
-"hD" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"if" = (
/obj/machinery/door/airlock/outpost,
/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
@@ -934,7 +920,7 @@
/obj/effect/turf_decal/siding/white/corner{
dir = 4
},
-/obj/machinery/atmospherics/components/binary/pressure_valve,
+/obj/machinery/atmospherics/components/binary/volume_pump,
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
@@ -3996,7 +3982,7 @@ Hr
ag
yh
nD
-hD
+TK
AZ
Vu
OZ
diff --git a/_maps/outpost/hangar/nt_ice_56x40.dmm b/_maps/outpost/hangar/nt_ice_56x40.dmm
index d484671d2f94..b89f435a4a8c 100644
--- a/_maps/outpost/hangar/nt_ice_56x40.dmm
+++ b/_maps/outpost/hangar/nt_ice_56x40.dmm
@@ -443,7 +443,7 @@
/obj/effect/turf_decal/siding/white/corner{
dir = 4
},
-/obj/machinery/atmospherics/components/binary/pressure_valve,
+/obj/machinery/atmospherics/components/binary/volume_pump,
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
@@ -1185,20 +1185,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Eo" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"Eu" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
@@ -5258,7 +5244,7 @@ tj
aH
Zj
qN
-Eo
+AW
pa
Od
aK
diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm
index 7560d2921d2c..86a2a8d102b1 100644
--- a/_maps/outpost/indie_space.dmm
+++ b/_maps/outpost/indie_space.dmm
@@ -108,10 +108,25 @@
/turf/closed/indestructible/reinforced,
/area/outpost/crew/library)
"aM" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/prison_contraband,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/outpost/vacant_rooms)
+/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
+/obj/structure/table,
+/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
+ dir = 8
+ },
+/obj/effect/spawner/lootdrop/plushie{
+ pixel_x = 16;
+ pixel_y = 4
+ },
+/obj/machinery/computer/cryopod/directional/north,
+/obj/item/folder{
+ pixel_x = -5;
+ pixel_y = 2
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/outpost/crew/cryo)
"aP" = (
/obj/structure/railing{
dir = 8
@@ -189,8 +204,9 @@
dir = 10
},
/obj/machinery/computer/electrolyzer_console{
- pixel_y = -31;
- density = 0
+ pixel_y = -18;
+ density = 0;
+ dir = 1
},
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo)
@@ -915,6 +931,7 @@
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 1
},
+/obj/machinery/newscaster/directional/north,
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"gq" = (
@@ -1462,8 +1479,16 @@
/area/outpost/maintenance/fore)
"kh" = (
/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
+/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/lightgrey,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
+/area/outpost/crew/cryo)
"km" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/confetti,
@@ -1694,18 +1719,8 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"lG" = (
-/obj/machinery/door/airlock/public,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/tech,
-/area/outpost/vacant_rooms)
+/turf/closed/indestructible/reinforced,
+/area/outpost/crew/cryo)
"lH" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -1721,6 +1736,15 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
/area/outpost/crew/library)
+"lJ" = (
+/obj/effect/turf_decal/corner/opaque/grey/full,
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plasteel,
+/area/outpost/hallway/port)
"lM" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/steeldecal/steel_decals9,
@@ -2012,11 +2036,17 @@
/area/outpost/cargo)
"nz" = (
/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
-/obj/structure/chair{
- dir = 1
+/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
+ dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
+/area/outpost/crew/cryo)
"nK" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/industrial/warning{
@@ -2472,6 +2502,11 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"qT" = (
@@ -2551,7 +2586,6 @@
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 1
},
-/obj/structure/extinguisher_cabinet/directional/north,
/obj/effect/turf_decal/floordetail/tiled,
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
@@ -3398,10 +3432,18 @@
/turf/open/floor/plating/asteroid,
/area/outpost/external)
"vd" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = -7
+ },
+/obj/machinery/firealarm/directional/east{
+ pixel_y = 6
+ },
/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
+/area/outpost/crew/cryo)
"vp" = (
/obj/effect/turf_decal/corner/opaque/grey/full,
/turf/open/floor/plasteel,
@@ -3586,6 +3628,25 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo)
+"ww" = (
+/obj/machinery/door/airlock/glass{
+ name = "Cryogenics"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/outpost/crew/cryo)
"wA" = (
/obj/effect/decal/cleanable/food/tomato_smudge,
/turf/open/floor/wood/mahogany,
@@ -3668,6 +3729,16 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel,
/area/outpost/storage)
+"wY" = (
+/obj/machinery/cryopod,
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 5
+ },
+/obj/structure/sign/poster/random{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/outpost/crew/cryo)
"xc" = (
/obj/effect/turf_decal/corner/opaque/red{
dir = 4
@@ -3737,10 +3808,12 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/central)
"xI" = (
-/obj/machinery/camera/autoname,
-/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
+/obj/machinery/cryopod,
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 5
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/outpost/crew/cryo)
"xJ" = (
/obj/effect/turf_decal/corner/opaque/grey/full,
/obj/structure/disposalpipe/segment{
@@ -4778,7 +4851,6 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/turf_decal/corner/opaque/black{
dir = 4
},
@@ -5360,15 +5432,20 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"HB" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/outpost/vacant_rooms)
+/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6;
+ pixel_x = 6
+ },
+/obj/item/pen,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central6,
+/turf/open/floor/plasteel,
+/area/outpost/crew/cryo)
"HD" = (
/turf/closed/indestructible/rock,
/area/outpost/external)
@@ -5627,11 +5704,13 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"IS" = (
-/obj/machinery/light/dim/directional/east,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
+/obj/machinery/light/dim/directional/east,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
+/area/outpost/crew/cryo)
"IT" = (
/obj/machinery/camera/autoname,
/obj/effect/turf_decal/corner/opaque/red{
@@ -6035,10 +6114,12 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"Lh" = (
@@ -6139,10 +6220,10 @@
/area/outpost/maintenance/fore)
"LS" = (
/obj/effect/turf_decal/corner/opaque/grey/full,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 1
},
+/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"LU" = (
@@ -6331,6 +6412,15 @@
},
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
+"MQ" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/outpost/crew/cryo)
"Nc" = (
/turf/closed/indestructible/rock,
/area/outpost/hallway/central)
@@ -6614,6 +6704,18 @@
},
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
+"Pt" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 10
+ },
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/outpost/crew/cryo)
"Pw" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance/four,
@@ -6625,6 +6727,10 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
+"PA" = (
+/obj/effect/spawner/structure/window/reinforced/indestructable,
+/turf/open/floor/plating,
+/area/outpost/crew/cryo)
"PD" = (
/obj/structure/chair/sofa/brown/right/directional/west,
/turf/open/floor/carpet/royalblack,
@@ -6678,6 +6784,26 @@
},
/turf/open/floor/wood,
/area/outpost/crew/bar)
+"PQ" = (
+/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
+/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/outpost/crew/cryo)
"PS" = (
/obj/structure/falsewall/reinforced,
/obj/structure/cable/yellow{
@@ -6713,7 +6839,6 @@
/area/outpost/security)
"Qa" = (
/obj/effect/turf_decal/corner/opaque/grey/full,
-/obj/machinery/newscaster/directional/north,
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 1
},
@@ -7300,10 +7425,14 @@
/turf/open/floor/plasteel,
/area/outpost/security)
"Tg" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/outpost/vacant_rooms)
+/obj/effect/turf_decal/corner/opaque/neutral/diagonal,
+/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/lightgrey,
+/obj/machinery/light/dim/directional/west,
+/turf/open/floor/plasteel,
+/area/outpost/crew/cryo)
"Th" = (
/turf/closed/indestructible/reinforced,
/area/outpost/cargo/office)
@@ -7828,6 +7957,11 @@
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 1
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"Wz" = (
@@ -16958,11 +17092,11 @@ LL
Uq
Aw
LL
-wL
-wL
-wL
-wL
-wL
+lG
+lG
+lG
+lG
+lG
BM
Ky
yj
@@ -17081,11 +17215,11 @@ LL
LL
LL
LL
-wL
-aM
+lG
+wY
Tg
-aM
-wL
+Pt
+PA
rm
Kl
hW
@@ -17204,11 +17338,11 @@ HD
HD
HD
HD
-wL
+lG
xI
kh
-ev
-wL
+MQ
+PA
Qa
LY
wu
@@ -17327,14 +17461,14 @@ HD
HD
HD
HD
-wL
+lG
aM
-kh
+PQ
nz
-wL
-Fi
+ww
+Wv
qR
-wu
+lJ
iV
Pw
AW
@@ -17450,7 +17584,7 @@ HD
HD
HD
HD
-wL
+lG
HB
IS
vd
@@ -17824,7 +17958,7 @@ yN
XA
di
wL
-Wv
+Fi
vp
kb
XD
diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm
index 816befea0002..d5af45bfef2d 100644
--- a/_maps/outpost/nanotrasen_asteroid.dmm
+++ b/_maps/outpost/nanotrasen_asteroid.dmm
@@ -125,7 +125,7 @@
/area/outpost/maintenance/fore)
"aE" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/cakeslice/birthday{
+/obj/item/food/cakeslice/birthday{
pixel_x = -3;
pixel_y = -5
},
@@ -1774,7 +1774,7 @@
/area/outpost/crew/cryo)
"gF" = (
/obj/structure/table/reinforced,
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_y = 6;
pixel_x = 9
},
@@ -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
},
@@ -11369,7 +11369,7 @@
"NP" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/table/reinforced,
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_x = -6;
pixel_y = 2
},
@@ -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
},
@@ -13063,7 +13063,7 @@
pixel_x = -4;
pixel_y = 6
},
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_y = 6;
pixel_x = 9
},
@@ -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
@@ -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/outpost/nanotrasen_ice.dmm b/_maps/outpost/nanotrasen_ice.dmm
index d029c3dc86a8..70fb809c4c95 100644
--- a/_maps/outpost/nanotrasen_ice.dmm
+++ b/_maps/outpost/nanotrasen_ice.dmm
@@ -2852,8 +2852,9 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/machinery/computer/electrolyzer_console{
- pixel_x = 32;
- density = 0
+ pixel_x = 20;
+ density = 0;
+ dir = 8
},
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo/smeltery)
@@ -6219,7 +6220,8 @@
/obj/machinery/mineral/processing_unit_console{
machinedir = 8;
output_dir = 1;
- pixel_x = 32
+ pixel_x = 20;
+ dir = 8
},
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo/smeltery)
diff --git a/_maps/ship_config_schema.json b/_maps/ship_config_schema.json
index 4c29f272413d..1efa9eb95f2c 100644
--- a/_maps/ship_config_schema.json
+++ b/_maps/ship_config_schema.json
@@ -28,17 +28,17 @@
"type": "array",
"description": "A list of tags describing the ship's niche, converted into searchable strings."
},
+ "faction": {
+ "title": "Ship Faction Datum",
+ "type": [ "null", "string" ],
+ "description": "Default faction datum"
+ },
"prefix": {
"title": "Ship Default Prefix",
"type": [ "null", "string" ],
"description": "The prefix of the ship class, appended to randomly generated names when they're first purchased.",
"maxLength": 5
},
- "faction_name": {
- "title": "Faction Name",
- "type": [ "null", "string" ],
- "description": "A custom faction name for the ship class. If exluded or left blank, the ship will use the default faction name for the faction that matches the ship's prefix."
- },
"namelists": {
"title": "Namelists",
"type": "array",
diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm
index c8ef49a3b35e..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,
@@ -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
},
@@ -2742,7 +2742,7 @@
pixel_y = 1
},
/obj/structure/table,
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_x = 11;
pixel_y = 7
},
@@ -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
},
@@ -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
},
@@ -4139,7 +4138,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
},
@@ -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_box.dmm b/_maps/shuttles/independent/independent_box.dmm
index 577290c6581c..31891a371d8c 100644
--- a/_maps/shuttles/independent/independent_box.dmm
+++ b/_maps/shuttles/independent/independent_box.dmm
@@ -249,9 +249,6 @@
dir = 9
},
/obj/structure/catwalk/over,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
},
@@ -261,9 +258,8 @@
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
+/obj/machinery/meter/atmos/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/turf/open/floor/plating,
/area/ship/engineering)
"bk" = (
@@ -324,6 +320,11 @@
dir = 1
},
/obj/effect/decal/cleanable/wrapping,
+/obj/machinery/light_switch{
+ pixel_x = 19;
+ pixel_y = 13;
+ dir = 8
+ },
/turf/open/floor/plating,
/area/ship/engineering)
"bo" = (
@@ -620,12 +621,11 @@
/turf/open/floor/carpet/nanoweave/blue,
/area/ship/bridge)
"cr" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/atmospherics/components/unary/portables_connector/layer2,
-/obj/structure/cable{
- icon_state = "6-8"
+/obj/machinery/iv_drip/saline,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
},
-/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plating,
/area/ship/engineering)
"cu" = (
@@ -1497,6 +1497,10 @@
dir = 8
},
/obj/structure/catwalk/over,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating,
/area/ship/engineering)
"ql" = (
@@ -1520,27 +1524,24 @@
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
dir = 1
},
-/obj/structure/cable{
- icon_state = "5-9"
- },
/obj/structure/sign/warning/electricshock{
pixel_x = 32
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
/turf/open/floor/plating,
/area/ship/engineering)
"qX" = (
/turf/open/floor/plasteel/white,
/area/ship/medical)
"ri" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/machinery/iv_drip/saline,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/structure/railing{
- dir = 4
+/obj/machinery/atmospherics/components/unary/portables_connector/layer2{
+ dir = 1
},
+/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plating,
/area/ship/engineering)
"ro" = (
@@ -1619,11 +1620,11 @@
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/obj/structure/cable/yellow{
- icon_state = "2-5"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
},
/turf/open/floor/plating,
/area/ship/engineering)
@@ -1836,13 +1837,10 @@
/turf/open/floor/plating,
/area/ship/bridge)
"wb" = (
-/obj/machinery/power/port_gen/pacman{
- anchored = 1
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/power/port_gen/pacman,
/obj/item/wrench,
-/obj/structure/cable/yellow,
-/obj/machinery/airalarm/directional/south,
+/obj/structure/cable,
+/obj/effect/turf_decal/industrial/hatch/yellow,
/turf/open/floor/plating,
/area/ship/engineering)
"wd" = (
@@ -1871,10 +1869,13 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
},
+/obj/structure/catwalk/over,
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/structure/catwalk/over,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
/turf/open/floor/plating,
/area/ship/engineering)
"wj" = (
@@ -2200,21 +2201,11 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"CR" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/layer_manifold/visible{
- dir = 8
- },
-/obj/structure/reagent_dispensers/watertank,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/item/storage/bag/trash{
- pixel_x = 6
+/obj/machinery/power/smes/engineering{
+ charge = 1e+006
},
-/obj/item/reagent_containers/glass/bucket,
-/obj/item/mop,
-/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable,
+/obj/effect/turf_decal/industrial/hatch/yellow,
/turf/open/floor/plating,
/area/ship/engineering)
"Dm" = (
@@ -2302,18 +2293,16 @@
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"FL" = (
-/obj/machinery/firealarm/directional/south,
-/obj/structure/catwalk/over,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/machinery/meter/atmos/layer2,
/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
dir = 4
},
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = 10;
- pixel_y = -19
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
},
+/obj/structure/catwalk/over,
/turf/open/floor/plating,
/area/ship/engineering)
"Gb" = (
@@ -2326,10 +2315,10 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/item/wallframe/firealarm,
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
dir = 4
},
+/obj/machinery/firealarm/directional/west,
/turf/open/floor/plating,
/area/ship/engineering)
"Gi" = (
@@ -2372,24 +2361,10 @@
/turf/open/floor/plating,
/area/ship/engineering)
"HM" = (
-/obj/machinery/power/terminal{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "0-10"
- },
-/obj/effect/spawner/lootdrop/maintenance/three,
-/obj/structure/rack,
-/obj/item/areaeditor/shuttle,
-/obj/item/flashlight{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 4
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/components/binary/pump/layer2{
+ dir = 8
},
-/obj/item/bot_assembly/hygienebot,
-/obj/machinery/firealarm/directional/north,
/turf/open/floor/plating,
/area/ship/engineering)
"Ic" = (
@@ -2412,12 +2387,11 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/medical)
"In" = (
-/obj/machinery/power/smes/engineering{
- charge = 1e+006
- },
-/obj/structure/cable{
- icon_state = "0-10"
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8;
+ piping_layer = 2
},
+/obj/effect/turf_decal/industrial/hatch/yellow,
/turf/open/floor/plating,
/area/ship/engineering)
"Ja" = (
@@ -2704,7 +2678,6 @@
/obj/structure/railing{
dir = 4
},
-/obj/machinery/firealarm/directional/north,
/turf/open/floor/plating,
/area/ship/engineering)
"SJ" = (
@@ -2832,10 +2805,20 @@
/turf/open/floor/plating,
/area/ship/bridge)
"WW" = (
-/obj/machinery/atmospherics/components/unary/tank/air{
- dir = 4
+/obj/structure/cable/yellow{
+ icon_state = "0-10"
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/structure/rack,
+/obj/item/areaeditor/shuttle,
+/obj/item/flashlight{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 4
+ },
+/obj/item/bot_assembly/hygienebot,
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating,
/area/ship/engineering)
@@ -2963,9 +2946,15 @@
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"ZN" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/storage/bag/trash{
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/mop,
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/obj/machinery/light/small/directional/east,
-/obj/structure/salvageable/machine,
/turf/open/floor/plating,
/area/ship/engineering)
diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm
index 668e1e164530..d1cc698c0c92 100644
--- a/_maps/shuttles/independent/independent_dwayne.dmm
+++ b/_maps/shuttles/independent/independent_dwayne.dmm
@@ -1,31 +1,51 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"ak" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
},
-/obj/effect/landmark/start/captain,
-/obj/effect/turf_decal/box,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
-"ap" = (
-/obj/machinery/airalarm/directional/east,
-/obj/machinery/sleeper{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/structure/cable/cyan{
+ icon_state = "5-8"
+ },
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/cyan{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/corner/opaque/black{
+ dir = 6
},
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/plasteel/mono,
-/area/ship/medical)
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"ap" = (
+/turf/closed/wall,
+/area/ship/crew/dorm)
"as" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/cyan{
+ icon_state = "6-8"
},
-/obj/effect/turf_decal/techfloor{
- dir = 9
+/obj/structure/cable/cyan{
+ icon_state = "1-6"
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/engineering)
+/turf/open/floor/plating,
+/area/ship/storage/eva)
+"ax" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
"aD" = (
/obj/machinery/power/shuttle/engine/electric{
dir = 4
@@ -36,16 +56,31 @@
/turf/open/floor/plating/airless,
/area/ship/engineering)
"aI" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/intercom/directional/north,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"aR" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/suit_storage_unit/independent/mining/eva,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/effect/turf_decal/corner/opaque/ntblue/half{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south{
+ pixel_x = -10
+ },
+/obj/machinery/modular_computer/console/preset/command{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
"aS" = (
/obj/machinery/atmospherics/components/unary/vent_pump/layer2{
dir = 1
@@ -58,2233 +93,3407 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
-"aY" = (
+"aV" = (
/obj/structure/cable/yellow{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/ration,
-/obj/item/storage/cans/sixbeer,
-/turf/open/floor/wood,
-/area/ship/crew)
-"bb" = (
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"aY" = (
+/obj/structure/sink/kitchen{
+ dir = 4;
+ pixel_y = -6
},
-/obj/structure/window/reinforced{
- dir = 8
+/obj/structure/sign/poster/official/bless_this_spess{
+ pixel_x = -32
},
-/obj/machinery/door/window/northright{
- dir = 4;
- name = "Engine Access"
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"bb" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
},
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/item/stack/packageWrap{
+ pixel_y = 9;
+ pixel_x = -7
},
-/turf/open/floor/plating,
-/area/ship/engineering)
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
"bf" = (
-/obj/effect/turf_decal/number/zero,
/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plating,
-/area/ship/construction)
+/area/ship/cargo)
"bj" = (
/turf/closed/wall,
-/area/ship/crew)
+/area/ship/crew/toilet)
"bl" = (
-/obj/docking_port/mobile{
- can_move_docking_ports = 1;
- dir = 2;
- launch_status = 0;
- name = "mining ship";
- port_direction = 8;
- preferred_direction = 4
- },
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- dir = 8;
- id = "mining_ship_atmosgen";
- locked = 1
- },
-/obj/machinery/door/poddoor{
- id = "mining_ship_port"
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/office{
+ dir = 1
},
-/obj/structure/cable{
- icon_state = "0-8"
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"bo" = (
+/obj/structure/cable/cyan{
+ icon_state = "2-9"
},
/turf/open/floor/plating,
/area/ship/cargo)
"bv" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/structure/cable{
+/obj/structure/cable/cyan{
icon_state = "1-8"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/catwalk/over,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
-/area/ship/crew)
+/area/ship/hallway/central)
+"bx" = (
+/obj/structure/chair/sofa/brown/old/left/directional/south,
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/newscaster/directional/north{
+ pixel_x = -13
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
"bE" = (
-/obj/machinery/cryopod{
+/obj/machinery/door/airlock/grunge{
+ name = "Bathroom"
+ },
+/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/obj/machinery/computer/cryopod/directional/south,
-/turf/open/floor/wood,
-/area/ship/crew)
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/toilet)
+"bO" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plating,
+/area/ship/storage/eva)
"bP" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/power/terminal{
+ dir = 8
},
-/obj/structure/catwalk/over,
-/obj/machinery/atmospherics/components/trinary/mixer{
+/obj/structure/cable/cyan{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/turf/open/floor/plating,
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"bW" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
/obj/structure/cable/yellow{
- icon_state = "2-8"
+ icon_state = "0-8"
},
/turf/open/floor/plating/airless,
-/area/ship/external)
+/area/ship/external/dark)
+"cc" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
"cf" = (
-/obj/structure/bed,
-/obj/item/bedsheet/brown,
-/obj/structure/curtain/bounty,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/wood,
-/area/ship/crew)
+/obj/structure/sign/poster/rilena/random{
+ pixel_x = -32
+ },
+/obj/structure/closet/secure_closet{
+ icon_state = "cabinet";
+ name = "Captain's wardobe";
+ req_access_txt = "20";
+ close_sound = 'sound/machines/wooden_closet_close.ogg';
+ open_sound = 'sound/machines/wooden_closet_open.ogg';
+ desc = "It's a card-locked cabinet."
+ },
+/obj/item/storage/backpack/satchel/cap,
+/obj/item/storage/backpack/messenger/com,
+/obj/item/clothing/under/rank/command/captain,
+/obj/item/clothing/under/rank/command/captain/skirt,
+/obj/item/clothing/shoes/cowboy/fancy,
+/obj/item/clothing/suit/jacket/leather/duster/command,
+/obj/item/clothing/suit/armor/vest/capcarapace/duster,
+/obj/item/clothing/gloves/color/white,
+/obj/item/clothing/head/caphat,
+/obj/item/clothing/head/caphat/cowboy,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 11;
+ pixel_y = -19
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken5"
+ },
+/area/ship/crew/dorm)
+"cw" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 4
+ },
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating/airless,
+/area/ship/bridge)
+"cL" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
+ },
+/obj/structure/closet/crate,
+/obj/machinery/firealarm/directional/north,
+/obj/item/circuitboard/machine/pipedispenser,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"dh" = (
+/obj/structure/sign/number/random,
+/turf/closed/wall/r_wall,
+/area/ship/crew/canteen)
"dx" = (
-/obj/machinery/light/directional/south,
-/obj/structure/ore_box,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/turf/open/floor/plating,
-/area/ship/cargo)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_box/c38_box,
+/obj/item/ammo_box/c38_box,
+/obj/item/ammo_box/c38_box,
+/obj/structure/closet/crate/secure/plasma{
+ name = "ammo crate";
+ desc = "A secure ammo crate."
+ },
+/obj/effect/turf_decal/ntspaceworks_big/two{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"dy" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"dK" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/machinery/door/airlock/medical,
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/corner/opaque/blue/mono,
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"dK" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"dQ" = (
+/turf/closed/wall/r_wall,
+/area/ship/crew/cryo)
+"ec" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
- },
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"ei" = (
-/turf/closed/wall/r_wall,
-/area/ship/medical)
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 2
+ },
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating/airless,
+/area/ship/crew/cryo)
+"eu" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"eH" = (
-/obj/effect/landmark/start/shaft_miner,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/turf_decal/industrial/loading,
+/obj/structure/cable/cyan{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/arrows,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/storage/eva)
"eM" = (
/turf/closed/wall,
/area/ship/cargo)
"fl" = (
-/obj/machinery/atmospherics/components/unary/tank/air{
- dir = 8
+/obj/machinery/atmospherics/components/trinary/mixer{
+ dir = 1;
+ name = "fuel mixer";
+ node1_concentration = 0.33;
+ node2_concentration = 0.67;
+ target_pressure = 500
},
-/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"fp" = (
-/obj/docking_port/stationary{
- width = 30;
- height = 15;
- dwidth = 15
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
},
-/turf/template_noop,
-/area/template_noop)
-"fy" = (
-/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast";
- dir = 4
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/ship/engineering)
-"fV" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast";
- dir = 8
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"fy" = (
+/obj/structure/catwalk,
+/obj/item/clothing/head/cone{
+ pixel_x = 3;
+ pixel_y = -2
},
-/turf/open/floor/plating,
-/area/ship/medical)
-"fY" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"fz" = (
/obj/structure/cable/yellow{
- icon_state = "1-2"
+ icon_state = "4-8"
},
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/engineering)
-"gf" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
+/obj/structure/sign/poster/contraband/cardinal_port_starboard{
+ pixel_y = 32
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"fV" = (
+/obj/structure/closet/cabinet{
+ name = "wardrobe"
},
-/obj/structure/cable/yellow{
- icon_state = "2-8"
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/cyan{
+ icon_state = "0-6"
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 4
+/obj/item/storage/backpack/satchel/explorer,
+/obj/item/storage/backpack/satchel/explorer,
+/obj/item/storage/backpack/satchel/explorer,
+/obj/item/clothing/under/utility,
+/obj/item/clothing/under/utility,
+/obj/item/clothing/under/utility/skirt,
+/obj/item/clothing/under/utility/skirt,
+/obj/item/clothing/shoes/workboots/mining,
+/obj/item/clothing/shoes/workboots/mining,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/suit/jacket/leather/duster,
+/obj/item/clothing/suit/jacket/leather/duster,
+/obj/item/clothing/gloves/fingerless,
+/obj/item/clothing/gloves/fingerless,
+/obj/item/clothing/head/cowboy,
+/obj/item/clothing/head/cowboy,
+/obj/item/clothing/glasses/heat,
+/obj/item/clothing/glasses/heat,
+/turf/open/floor/wood,
+/area/ship/crew/dorm)
+"fY" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
+ dir = 8
},
-/obj/structure/catwalk/over/plated_catwalk/dark,
-/obj/machinery/power/ship_gravity,
-/obj/structure/cable/yellow{
- icon_state = "0-2"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/insectguts,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"gf" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/engineering)
"gm" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
+/obj/machinery/door/window/northright{
+ dir = 4;
+ name = "Engine Access"
},
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plasteel/tech/grid,
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_engines";
+ dir = 4
+ },
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plating,
/area/ship/engineering)
"gs" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
+ dir = 6
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"gu" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/closet/firecloset/full{
- anchored = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/cyan{
+ icon_state = "2-9"
},
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/engineering)
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"gu" = (
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/cargo)
"gF" = (
-/obj/machinery/power/shuttle/engine/fire{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/fire,
/turf/open/floor/plating/airless,
/area/ship/engineering)
"gT" = (
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 13
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
+ dir = 5
},
-/obj/structure/closet/wall/directional/north,
-/obj/item/clothing/shoes/cowboy,
-/obj/item/clothing/shoes/cowboy,
-/obj/item/clothing/shoes/cowboy,
-/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/suit/toggle/hazard,
-/obj/item/clothing/suit/toggle/hazard,
-/obj/item/clothing/suit/toggle/hazard,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/under/utility,
-/obj/item/clothing/under/utility,
-/obj/item/clothing/under/utility,
-/obj/item/clothing/under/utility/skirt,
-/obj/item/clothing/under/utility/skirt,
-/obj/item/clothing/under/utility/skirt,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
-"he" = (
-/obj/structure/cable/yellow{
- icon_state = "2-8"
+/obj/structure/cable/cyan{
+ icon_state = "0-1"
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/toilet)
+"hd" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 2
},
+/obj/structure/grille,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/structure/catwalk/over,
+/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plating,
+/area/ship/crew/canteen)
+"he" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"hy" = (
-/obj/structure/cable/yellow,
-/obj/structure/cable/yellow{
- icon_state = "0-4"
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
},
-/obj/structure/cable/yellow{
- icon_state = "0-2"
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
},
-/obj/machinery/power/solar,
-/obj/effect/turf_decal/solarpanel,
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"hK" = (
-/obj/structure/window/reinforced{
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"hB" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
-/obj/machinery/door/window/northleft{
- dir = 4;
- name = "Engine Access"
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"hK" = (
+/obj/structure/sign/poster/contraband/gec{
+ pixel_x = 32
},
-/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
- dir = 4
+/obj/machinery/atmospherics/components/unary/portables_connector{
+ dir = 8;
+ name = "connector port (Fuel)"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
-"hZ" = (
-/obj/structure/cable{
- icon_state = "2-8"
+"hO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
},
-/obj/item/radio/intercom/directional/east,
-/obj/machinery/atmospherics/components/unary/portables_connector{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/machinery/portable_atmospherics/canister/hydrogen,
-/turf/open/floor/plating,
+/obj/structure/cable/cyan{
+ icon_state = "5-10"
+ },
+/obj/effect/turf_decal/ntspaceworks_big/three,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"hZ" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/cyan{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"ig" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 1;
+ piping_layer = 2
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"in" = (
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 4;
+ id = "dwayne_mining_field";
+ locked = 1
+ },
/obj/machinery/door/poddoor{
- id = "mining_ship_port"
+ id = "dwayne_mining"
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/cable/cyan{
+ icon_state = "0-2"
},
/turf/open/floor/plating,
-/area/ship/cargo)
+/area/ship/storage/eva)
"iq" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
},
-/obj/effect/turf_decal/box,
-/obj/structure/tank_dispenser/oxygen,
+/obj/structure/closet/emcloset/wall/directional/west,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"ir" = (
-/obj/structure/cable/yellow{
- icon_state = "2-4"
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
},
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
},
-/obj/effect/turf_decal/techfloor{
- dir = 6
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"iZ" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/effect/turf_decal/techfloor{
+ dir = 6
},
-/obj/machinery/airalarm/directional/south,
-/obj/effect/turf_decal/corner/opaque/yellow/border{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"jS" = (
-/obj/structure/cable/yellow{
- icon_state = "0-8"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/cyan{
+ icon_state = "0-9"
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"ja" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 4
},
+/obj/structure/closet/crate/engineering/electrical,
+/obj/item/radio/intercom/directional/east,
+/obj/item/stack/sheet/mineral/plasma/ten,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"jz" = (
+/obj/structure/cable/yellow,
/obj/machinery/power/solar,
/obj/effect/turf_decal/solarpanel,
/turf/open/floor/plating/airless,
-/area/ship/external)
+/area/ship/external/dark)
+"jS" = (
+/obj/structure/chair/sofa/brown/old/left/directional/north,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
"kb" = (
-/obj/effect/turf_decal/corner/opaque/blue{
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
/obj/structure/closet/emcloset/wall/directional/north,
-/turf/open/floor/plasteel/white{
- dir = 1
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
-/area/ship/crew)
-"kf" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
},
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"kf" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/effect/turf_decal/techfloor{
- dir = 8
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 24
},
-/obj/effect/turf_decal/industrial/caution{
+/obj/machinery/door/airlock/external/glass{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"kM" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/effect/turf_decal/corner/opaque/yellow/half,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"kO" = (
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "0-4"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
},
-/obj/structure/cable/yellow{
- icon_state = "0-8"
+/obj/structure/cable/cyan{
+ icon_state = "5-10"
},
-/obj/machinery/power/solar,
-/obj/effect/turf_decal/solarpanel,
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"kQ" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
+/obj/effect/turf_decal/ntspaceworks_big/three{
+ dir = 1
},
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/turf/open/floor/plating,
-/area/ship/engineering)
-"ls" = (
-/obj/structure/cable,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"kO" = (
+/obj/effect/decal/cleanable/food/tomato_smudge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"kQ" = (
+/obj/structure/table,
+/obj/machinery/computer/helm/viewscreen/directional/north,
/obj/machinery/power/terminal{
- dir = 8
+ dir = 4;
+ layer = 2.30
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/obj/item/paper/guides/jobs/engi/combustion_thruster{
+ pixel_x = -5;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/food/drinks/mug{
+ pixel_x = 10;
+ pixel_y = 3
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
-"lv" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+"ld" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 2
+ },
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating/airless,
+/area/ship/crew/canteen)
+"ls" = (
+/obj/machinery/power/smes/shuttle/precharged{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Engine Access"
},
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-8"
},
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/crew)
-"lD" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_engines";
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+/obj/structure/window/plasma/reinforced{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/turf/open/floor/plating,
+/area/ship/engineering)
+"lv" = (
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
-/obj/machinery/door/firedoor/border_only{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
},
-/obj/machinery/door/firedoor/border_only{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"lD" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
+ },
/obj/effect/turf_decal/techfloor{
- dir = 8
+ dir = 1
},
-/obj/machinery/door/airlock/engineering{
- dir = 4
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"ma" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
},
-/obj/effect/turf_decal/techfloor{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
},
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/tech/techmaint,
+/obj/structure/cable/cyan{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
/area/ship/engineering)
+"mf" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/item/c_tube{
+ pixel_y = 3
+ },
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ship/cargo)
"mr" = (
-/obj/effect/turf_decal/ntspaceworks_big/six,
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
/turf/open/floor/plating,
-/area/ship/construction)
+/area/ship/storage/eva)
"ms" = (
-/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast"
+/obj/machinery/computer/helm/viewscreen/directional/north,
+/obj/structure/cable/yellow{
+ icon_state = "6-9"
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
},
-/obj/effect/spawner/structure/window/reinforced,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"mv" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow,
/turf/open/floor/plating/airless,
-/area/ship/bridge)
+/area/ship/external/dark)
"my" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 5
- },
-/turf/open/floor/plasteel/white{
- dir = 1
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/area/ship/crew)
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"mA" = (
-/obj/structure/table/reinforced,
-/obj/item/gps{
- gpstag = "NTREC1";
- pixel_x = -9;
- pixel_y = 7
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"mC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
},
-/obj/item/radio{
- pixel_x = 6;
- pixel_y = 7
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
},
-/obj/machinery/airalarm/directional/west,
-/obj/effect/turf_decal/corner/opaque/blue/half,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"mC" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/computer/monitor/retro{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 10
},
-/turf/open/floor/plasteel/tech/grid,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable/cyan{
+ icon_state = "1-10"
+ },
+/turf/open/floor/plating,
/area/ship/engineering)
"mE" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
+/obj/effect/turf_decal/techfloor{
+ dir = 5
},
-/obj/effect/turf_decal/corner/opaque/yellow/border{
- dir = 8
+/obj/effect/decal/cleanable/oil,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
+/obj/machinery/light_switch{
+ dir = 2;
+ pixel_y = 20
},
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
"mF" = (
/turf/closed/wall,
/area/ship/engineering)
-"nf" = (
-/obj/effect/turf_decal/corner/opaque/yellow/half,
-/turf/open/floor/plasteel,
+"mJ" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/ntblue/half{
+ dir = 1
+ },
+/obj/item/radio/weather_monitor{
+ pixel_x = 8;
+ pixel_y = 7
+ },
+/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" = (
+/obj/effect/turf_decal/solarpanel,
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/crew/cryo)
+"mX" = (
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
+"nf" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/mineral/processing_unit_console{
+ pixel_y = -18;
+ machinedir = 8;
+ output_dir = 1;
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/storage/eva)
"nr" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"nJ" = (
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/machinery/atmospherics/components/unary/portables_connector/layer2{
+ name = "connector port (Air)"
},
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/catwalk/over,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/turf/open/floor/plating,
-/area/ship/crew)
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
"nL" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/structure/closet/crate/internals,
-/obj/effect/turf_decal/box,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
+/obj/effect/turf_decal/ntspaceworks_big/seven{
+ dir = 1
},
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/structure/ore_box,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"nY" = (
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/turf/open/floor/plating/airless,
-/area/ship/external)
+/turf/closed/wall/r_wall,
+/area/ship/crew/canteen)
"oa" = (
-/obj/machinery/atmospherics/pipe/manifold/general/hidden{
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/power/terminal{
dir = 8
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "5-9"
+/obj/structure/cable/cyan,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
+"of" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/independent/mining/eva,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"om" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/catwalk/over,
-/obj/effect/landmark/start/station_engineer,
-/turf/open/floor/plating,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/structure/closet/wall/orange/directional/west{
+ name = "Mechanic's locker"
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/obj/item/storage/backpack/satchel/eng,
+/obj/item/storage/backpack/messenger/engi,
+/obj/item/clothing/under/rank/engineering/engineer,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/toggle/hazard,
+/obj/item/clothing/head/hardhat/dblue,
+/obj/item/clothing/glasses/welding,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"or" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"oB" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"oC" = (
-/turf/closed/wall,
-/area/ship/medical)
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/dept/mining,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"ow" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"oy" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/secure_closet/quartermaster{
+ populate = 0;
+ name = "\proper Foreman's locker"
+ },
+/obj/item/storage/backpack/satchel/eng,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/under/rank/security/detective,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/jacket/leather/duster{
+ name = "foreman's duster";
+ desc = "A long, utilitarian leather coat. Ideal for protecting its wearer from rain, sun, dust and paperwork."
+ },
+/obj/item/storage/belt/utility/full,
+/obj/item/clothing/gloves/fingerless,
+/obj/item/clothing/head/cowboy/sec,
+/obj/item/clothing/head/hardhat/orange,
+/obj/item/clothing/head/hardhat/white,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"oB" = (
+/obj/machinery/conveyor_switch/oneway{
+ pixel_y = 15;
+ pixel_x = 11;
+ id = "smelter_dwayne"
+ },
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"oC" = (
+/obj/machinery/light_switch{
+ dir = 2;
+ pixel_x = 11;
+ pixel_y = 20
+ },
+/obj/structure/chair,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"oE" = (
-/obj/structure/sink{
- pixel_y = 17
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/table,
+/obj/structure/sign/poster/official/work_for_a_future{
+ pixel_y = 32
},
-/obj/structure/mirror{
- pixel_y = 28
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/cyan{
+ icon_state = "0-6"
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/corner/opaque/blue/border{
- dir = 9
+/obj/item/radio{
+ pixel_y = 5
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"oR" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+/obj/item/radio{
+ pixel_y = 5
+ },
+/obj/item/radio{
+ pixel_y = 5
+ },
+/obj/item/radio{
+ pixel_y = 5
+ },
+/obj/item/radio{
+ pixel_y = 5
+ },
+/obj/item/radio{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/crew/cryo)
+"oJ" = (
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
dir = 8
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 6;
+ pixel_y = 6
},
-/obj/structure/catwalk/over,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/item/pen/fourcolor,
+/obj/item/toy/crayon/spraycan{
+ pixel_x = -9;
+ pixel_y = 17
},
-/turf/open/floor/plating,
-/area/ship/crew)
-"pl" = (
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- dir = 4;
- id = "mining_ship_atmosgen";
- locked = 1
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"oQ" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
},
-/obj/machinery/door/poddoor{
- id = "mining_ship_port"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
},
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/cyan{
+ icon_state = "1-10"
},
-/turf/open/floor/plating,
+/obj/structure/cable/cyan{
+ icon_state = "1-6"
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
-"pn" = (
-/obj/structure/closet/secure_closet/medical2,
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable{
- icon_state = "0-4"
+"oR" = (
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/corner/opaque/blue/border{
- dir = 10
+/obj/structure/cable/cyan{
+ icon_state = "2-8"
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"pl" = (
+/obj/effect/turf_decal/corner/opaque/ntblue/half{
+ dir = 1
+ },
+/obj/machinery/computer/crew,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"pn" = (
+/turf/closed/wall,
+/area/ship/crew/cryo)
"pq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
},
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/yellow/half,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"pt" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/obj/effect/turf_decal/corner/opaque/yellow/border,
-/obj/structure/extinguisher_cabinet/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"pv" = (
-/obj/machinery/light/small/directional/north,
-/obj/machinery/computer/helm/viewscreen/directional/east,
-/obj/effect/landmark/start/assistant,
-/obj/structure/chair/comfy/orange/directional/west,
-/turf/open/floor/wood,
-/area/ship/crew)
+/obj/machinery/light_switch{
+ dir = 2;
+ pixel_x = 12;
+ pixel_y = 20
+ },
+/obj/machinery/vending/coffee,
+/obj/item/trash/candle{
+ pixel_y = 18;
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
"pS" = (
-/obj/effect/turf_decal/box,
-/obj/structure/tank_dispenser/oxygen,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"qg" = (
-/obj/machinery/holopad/emergency/command,
-/obj/machinery/light/directional/west,
-/obj/effect/turf_decal/box,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
-"qz" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/suit_storage_unit/independent/mining/eva,
-/obj/effect/turf_decal/industrial/warning/corner{
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
-"qK" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 5
+"qg" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
+/obj/structure/cable/cyan{
+ icon_state = "1-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"ql" = (
+/obj/structure/cable/yellow,
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white{
- dir = 1
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"qt" = (
+/obj/structure/cable/yellow{
+ icon_state = "6-9"
},
-/area/ship/crew)
-"qO" = (
-/obj/item/reagent_containers/food/snacks/canned/beans{
- pixel_x = -5;
- pixel_y = 3
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
-/obj/item/reagent_containers/food/snacks/canned/beans{
- pixel_x = 2;
- pixel_y = 3
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
},
-/obj/item/reagent_containers/food/snacks/canned/beans{
- pixel_x = -2
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/glass{
+ name = "Common Room"
},
-/obj/item/reagent_containers/food/drinks/waterbottle/large{
- pixel_x = 5
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
},
-/obj/item/reagent_containers/food/drinks/waterbottle/large{
- pixel_x = 1;
- pixel_y = -3
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/canteen)
+"qz" = (
+/turf/closed/wall/r_wall,
+/area/ship/storage/eva)
+"qK" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/obj/item/reagent_containers/food/drinks/waterbottle/large{
- pixel_x = 8;
- pixel_y = -3
+/obj/item/cigbutt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/yellow{
+ icon_state = "6-8"
},
-/obj/structure/closet/crate{
- name = "food crate"
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
-/obj/structure/cable{
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"qO" = (
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/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,
-/turf/open/floor/plasteel/tech/grid,
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
/area/ship/engineering)
+"rq" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
+ },
+/obj/machinery/autolathe,
+/obj/machinery/light_switch{
+ dir = 2;
+ pixel_x = -12;
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
"rE" = (
/turf/closed/wall/r_wall,
/area/ship/bridge)
"sg" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"sp" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/landmark/start/medical_doctor,
-/obj/effect/turf_decal/corner/opaque/blue/border{
- dir = 8
+/obj/structure/noticeboard{
+ dir = 1;
+ pixel_y = -26
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
"sD" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/dept/cargo{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"sM" = (
-/obj/effect/turf_decal/corner/opaque/blue/half{
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/structure/frame/computer/retro{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"sP" = (
-/obj/structure/cable/yellow{
- icon_state = "0-4"
+/obj/machinery/door/airlock/command/glass{
+ dir = 4;
+ name = "Bridge";
+ req_one_access = list(20,41)
},
-/obj/machinery/power/solar,
-/obj/effect/turf_decal/solarpanel,
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"sZ" = (
-/obj/machinery/vending/wallmed{
- pixel_y = 28
+/obj/effect/turf_decal/corner/opaque/black{
+ dir = 9
},
-/obj/structure/closet/crate/freezer/blood,
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/corner/opaque/blue/border{
- dir = 1
+/turf/open/floor/plasteel/stairs{
+ dir = 4;
+ color = "#555555"
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"tj" = (
+/area/ship/bridge)
+"sP" = (
/obj/structure/cable/yellow{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"sZ" = (
+/obj/machinery/cryopod,
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/light/dim/directional/east,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/crew/cryo)
+"tj" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"tq" = (
/turf/closed/wall/r_wall,
/area/ship/engineering)
-"tX" = (
-/obj/structure/ore_box,
+"tJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
+ dir = 10
},
+/obj/item/stack/sheet/cardboard,
/turf/open/floor/plating,
/area/ship/cargo)
+"tX" = (
+/obj/effect/turf_decal/ntspaceworks_big/eight{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"uc" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/ship/cargo)
+/turf/closed/wall,
+/area/ship/storage/eva)
"uk" = (
-/turf/open/floor/plating,
-/area/ship/construction)
-"uP" = (
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
},
-/obj/structure/window/reinforced{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/machinery/door/window/northleft{
+/obj/structure/cable/cyan{
+ icon_state = "6-9"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"ul" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"uP" = (
+/obj/machinery/door/poddoor{
+ id = "dwayne_cargo"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
dir = 4;
- name = "Engine Access"
+ id = "dwayne_cargo_field";
+ locked = 1
},
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/structure/cable/cyan{
+ icon_state = "0-1"
},
/turf/open/floor/plating,
-/area/ship/engineering)
-"uT" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/suit_storage_unit/independent/mining/eva,
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel,
/area/ship/cargo)
+"uT" = (
+/obj/effect/turf_decal/corner/opaque/ntblue/half{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 4;
+ pixel_y = 0;
+ pixel_x = 5
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
"vb" = (
-/obj/effect/turf_decal/box,
-/obj/machinery/ore_silo,
-/turf/open/floor/plasteel,
+/obj/machinery/conveyor/inverted{
+ dir = 9;
+ id = "smelter_dwayne"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/storage/eva)
+"ve" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/item/stack/sheet/cardboard{
+ amount = 2
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"vf" = (
-/obj/effect/turf_decal/ntspaceworks_big/seven,
-/turf/open/floor/plating,
-/area/ship/construction)
+/obj/structure/closet/crate,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance/two,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
"vj" = (
-/obj/structure/cable/yellow{
- icon_state = "2-8"
+/obj/structure/sign/poster/contraband/winchester{
+ pixel_y = -32
},
-/obj/structure/cable/yellow{
- icon_state = "1-8"
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"vm" = (
+/obj/structure/sign/number/random,
+/turf/closed/wall/r_wall,
+/area/ship/crew/toilet)
+"vn" = (
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/corner/opaque/yellow/bordercorner{
- dir = 8
+/obj/machinery/door/window/northright{
+ dir = 4;
+ name = "Engine Access"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"vn" = (
/obj/structure/cable{
- icon_state = "0-4"
+ icon_state = "0-8"
},
-/obj/machinery/power/terminal{
- dir = 8
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_engines";
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
+/obj/structure/window/plasma/reinforced{
dir = 8
},
-/turf/open/floor/plasteel/tech/grid,
+/turf/open/floor/plating,
/area/ship/engineering)
"vw" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/wood,
-/area/ship/crew)
-"vA" = (
-/obj/structure/closet/crate{
- icon_state = "crateopen"
+/obj/structure/table/reinforced,
+/obj/item/cutting_board{
+ anchored = 1
+ },
+/obj/item/melee/knife/kitchen,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/cyan{
+ icon_state = "0-5"
},
-/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"vA" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/item/paicard,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/turf/open/floor/plating,
+/area/ship/storage/eva)
"vJ" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering)
-"vQ" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/airlock/command/glass{
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_engines";
dir = 4
},
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
-"wh" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"vQ" = (
/obj/structure/cable/yellow{
- icon_state = "1-2"
+ icon_state = "5-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"wh" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
+/obj/effect/turf_decal/box/corners{
dir = 1
},
-/obj/machinery/door/airlock/public/glass,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -12;
+ pixel_y = -20
+ },
+/obj/machinery/suit_storage_unit/independent/mining/eva,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"wv" = (
/turf/closed/wall,
/area/ship/bridge)
"ww" = (
-/obj/structure/closet/crate,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/sheet/mineral/titanium/twenty,
-/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/structure/closet/crate/secure/exo,
+/obj/item/clothing/under/rank/cargo/miner/hazard,
+/obj/item/clothing/under/rank/cargo/miner/hazard,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/head/hardhat/mining,
+/obj/item/clothing/head/hardhat/mining,
+/obj/item/clothing/head/hardhat/mining,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/meson,
+/turf/open/floor/plating,
+/area/ship/storage/eva)
"wW" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"xh" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
-/obj/effect/landmark/start/assistant,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
+/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/structure/catwalk/over,
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/structure/cable/yellow{
+ icon_state = "6-9"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
-/area/ship/crew)
+/area/ship/hallway/central)
"xr" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast";
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"xP" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
dir = 8
},
-/turf/open/floor/plating,
-/area/ship/crew)
+/obj/machinery/light/directional/west,
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
"yu" = (
-/obj/machinery/mineral/ore_redemption{
+/obj/effect/turf_decal/techfloor{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/yellow/border{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
+/obj/structure/cable/cyan{
+ icon_state = "5-8"
},
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/machinery/light/directional/east,
+/obj/structure/frame/machine{
+ anchored = 1;
+ state = 2;
+ icon_state = "box_1"
},
-/turf/open/floor/plasteel,
-/area/ship/crew)
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
"yx" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+/obj/structure/closet/wall/directional/west,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
+/obj/item/towel{
+ pixel_y = 4;
+ pixel_x = 4
+ },
+/obj/item/towel{
+ pixel_y = 4;
+ pixel_x = -3
+ },
+/obj/item/soap{
+ pixel_x = -1;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/toilet)
"yJ" = (
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"yN" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
/obj/structure/cable/yellow{
- icon_state = "4-8"
+ icon_state = "0-8"
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
},
-/obj/effect/turf_decal/corner/opaque/yellow/border,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
"za" = (
-/obj/machinery/airalarm/directional/west,
-/obj/effect/turf_decal/corner/opaque/yellow/half{
- dir = 8
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
},
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/power/solar,
+/turf/open/floor/plating,
+/area/ship/external/dark)
"zc" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
},
-/obj/machinery/door/firedoor/border_only{
- dir = 8
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"zi" = (
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
},
+/obj/machinery/power/solar,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"zl" = (
+/obj/machinery/door/firedoor/border_only,
/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/airlock/command/glass{
- dir = 4
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
-"zq" = (
-/obj/structure/catwalk,
-/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
dir = 1
},
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"zF" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/machinery/door/airlock/mining/glass{
+ name = "Mining Hangar"
},
-/mob/living/simple_animal/turtle,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
+/obj/structure/cable/cyan{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
+/area/ship/storage/eva)
+"zq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"zt" = (
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters,
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/machinery/suit_storage_unit/independent/mining/eva,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"zF" = (
+/obj/structure/ore_box,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 8
+ },
+/obj/structure/cable/cyan{
+ icon_state = "6-9"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"zI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/item/cigbutt,
+/obj/effect/turf_decal/ntspaceworks_big/two,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"zK" = (
-/obj/machinery/button/shieldwallgen{
- id = "mining_ship_atmosgen";
- pixel_x = 8;
- pixel_y = 21
- },
-/obj/machinery/button/door{
- id = "mining_ship_port";
- name = "Port Hangar Shutters";
- pixel_x = -2;
- pixel_y = 23
+/obj/effect/decal/cleanable/glass,
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/industrial/warning/corner{
+/obj/effect/turf_decal/industrial/warning{
dir = 1
},
/turf/open/floor/plating,
-/area/ship/cargo)
+/area/ship/storage/eva)
"zQ" = (
-/obj/machinery/atmospherics/pipe/layer_manifold,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow,
-/obj/machinery/power/terminal{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/structure/closet/firecloset/wall/directional/west,
+/obj/structure/cable/cyan{
+ icon_state = "2-5"
},
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"zY" = (
+/obj/structure/sign/warning/fire{
+ pixel_y = -20;
+ pixel_x = -10
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector{
+ dir = 8;
+ name = "connector port (Fuel)"
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"AD" = (
-/obj/effect/landmark/start/assistant,
+/obj/structure/cable/cyan{
+ icon_state = "4-9"
+ },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+ dir = 6
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = -10
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/techfloor{
dir = 8
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/crew)
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"AE" = (
-/obj/machinery/atmospherics/pipe/simple/general/hidden{
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 9
+ },
+/obj/item/radio/intercom/directional/south,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
-/obj/machinery/airalarm/directional/south,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"AQ" = (
-/obj/item/kirbyplants/random,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
},
-/obj/structure/cable{
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"AY" = (
+/obj/structure/sign/poster/rilena/random{
+ pixel_x = 32
+ },
+/obj/structure/cable/cyan{
icon_state = "1-8"
},
-/obj/effect/turf_decal/corner/opaque/ntblue/half{
- dir = 4
+/obj/structure/cable/cyan{
+ icon_state = "0-1"
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"Cn" = (
-/obj/structure/catwalk,
-/turf/closed/wall,
-/area/ship/engineering)
-"Cp" = (
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"CD" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 10
+/obj/structure/cable/yellow{
+ icon_state = "9-10"
+ },
+/obj/machinery/computer/monitor{
+ dir = 8;
+ icon_state = "computer-left"
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
-"CO" = (
-/obj/structure/window/reinforced{
+"Bq" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 2
+ },
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating/airless,
+/area/ship/bridge)
+"Bx" = (
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"BX" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/machinery/door/window/northright{
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Cp" = (
+/obj/machinery/light/directional/west,
+/obj/machinery/mineral/unloading_machine{
+ input_dir = 1;
+ output_dir = 2
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/storage/eva)
+"CB" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/yesdiag,
+/area/ship/engineering)
+"CD" = (
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
+/obj/machinery/door/window/northleft{
dir = 4;
name = "Engine Access"
},
-/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_engines";
dir = 4
},
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/ship/engineering)
+"CO" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 2
+ },
+/obj/structure/grille,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating/airless,
+/area/ship/crew/dorm)
"CP" = (
/obj/machinery/door/airlock/external,
/turf/open/floor/plating,
/area/ship/engineering)
-"DG" = (
-/obj/structure/table/reinforced,
-/obj/item/paper_bin,
-/obj/item/folder/yellow,
-/obj/item/folder/yellow,
-/obj/item/pen,
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/requests_console{
- announcementConsole = 1;
- department = "Cockpit";
- pixel_x = -30;
- pixel_y = 30
- },
-/obj/machinery/camera/autoname,
-/obj/effect/turf_decal/corner/opaque/blue/half{
+"CS" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
dir = 1
},
-/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"DJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/large,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Ds" = (
/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 5
- },
-/turf/open/floor/plasteel/white{
- dir = 1
+ icon_state = "4-8"
},
-/area/ship/crew)
-"Ee" = (
-/obj/item/kirbyplants/random,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
dir = 4
},
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
-"Ex" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating,
+/area/ship/crew/canteen)
+"DG" = (
/obj/machinery/door/firedoor/border_only,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/public/glass,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"Fd" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/corner/opaque/yellow/bordercorner,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"Fn" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
-/turf/open/floor/plating,
-/area/ship/cargo)
-"Fz" = (
/obj/structure/cable/yellow{
- icon_state = "1-4"
+ icon_state = "5-10"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/obj/effect/turf_decal/siding/wood{
dir = 1
},
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
-"FP" = (
-/turf/open/floor/plating,
-/area/ship/cargo)
-"FS" = (
-/obj/structure/cable/yellow{
- icon_state = "0-4"
+/obj/machinery/door/airlock{
+ name = "Dormitory"
},
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/dorm)
+"DJ" = (
/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/power/solar,
-/obj/effect/turf_decal/solarpanel,
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"Gr" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast";
- dir = 8
+ icon_state = "4-8"
},
-/turf/open/floor/plating/airless,
-/area/ship/bridge)
-"Gx" = (
-/obj/structure/cable/yellow{
+/obj/effect/decal/cleanable/ash,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"DR" = (
+/obj/structure/cable/cyan{
icon_state = "4-8"
},
-/obj/effect/turf_decal/corner/opaque/yellow/border,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"GU" = (
-/obj/machinery/vending/snack/random,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"GW" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/toolbox/emergency{
- pixel_x = -12
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
},
-/obj/item/megaphone{
- pixel_x = 3;
- pixel_y = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
},
-/obj/effect/turf_decal/corner/opaque/blue/half,
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"He" = (
-/obj/structure/cable/yellow{
- icon_state = "2-8"
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/item/paperplane{
+ dir = 4;
+ pixel_x = 14;
+ pixel_y = -8
},
-/obj/structure/catwalk/over,
/turf/open/floor/plating,
-/area/ship/engineering)
-"Hh" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/area/ship/hallway/central)
+"Ee" = (
+/obj/structure/sink{
+ pixel_y = 19
},
-/obj/machinery/atmospherics/pipe/layer_manifold,
-/obj/machinery/door/airlock/external{
- name = "Hangar Airlock"
+/obj/structure/mirror{
+ pixel_y = 28;
+ layer = 2.89
},
-/turf/open/floor/plasteel,
-/area/ship/crew)
-"HI" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/toilet)
+"Ex" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/storage/eva)
+"Ez" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable/cyan{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"EE" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Fd" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Fn" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
+ },
+/obj/structure/ore_box,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"Fq" = (
+/obj/effect/turf_decal/solarpanel,
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/crew/dorm)
+"Fz" = (
+/obj/structure/table/wood,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/item/reagent_containers/food/snacks/chips{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/toy/cards/deck/kotahi{
+ pixel_x = -11;
+ pixel_y = 6
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"FH" = (
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
+ dir = 8
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/engineering)
-"HP" = (
-/mob/living/simple_animal/butterfly{
- color = "#DBB17F";
- desc = "A moth.";
- name = "moth"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"FN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"FP" = (
+/obj/structure/closet/crate/large,
+/obj/machinery/portable_atmospherics/canister/hydrogen,
+/turf/open/floor/plating,
+/area/ship/cargo)
+"FR" = (
+/obj/structure/closet/cardboard,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/item/caution,
+/obj/item/caution,
+/obj/item/caution,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/storage/bag/trash,
+/obj/item/mop,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"FS" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
},
-/obj/effect/landmark/observer_start,
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
-"Ia" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast";
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"Gl" = (
+/obj/structure/bed,
+/obj/item/bedsheet/dorms,
+/obj/machinery/airalarm/directional/east,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"Gr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/stairs{
+ dir = 4;
+ color = "#555555"
+ },
+/area/ship/bridge)
+"Gx" = (
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"GH" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/ntspaceworks_big/four,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"GN" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/obj/structure/closet/crate/engineering,
+/obj/item/t_scanner/adv_mining_scanner/lesser{
+ pixel_y = -3
+ },
+/obj/item/pickaxe/drill{
+ pixel_y = -2
+ },
+/obj/item/pickaxe/drill{
+ pixel_y = -2
+ },
+/obj/item/pinpointer/mineral{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"GU" = (
+/obj/docking_port/mobile{
+ can_move_docking_ports = 1;
+ dir = 2;
+ launch_status = 0;
+ name = "mining ship";
+ port_direction = 8;
+ preferred_direction = 4
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 8;
+ id = "dwayne_mining_field";
+ locked = 1
+ },
+/obj/machinery/door/poddoor{
+ id = "dwayne_mining"
+ },
+/obj/structure/cable/cyan{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/ship/storage/eva)
+"GW" = (
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/bridge)
+"He" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/cyan{
+ icon_state = "5-6"
+ },
+/obj/structure/cable/cyan{
+ icon_state = "4-5"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"Hh" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/cargo)
+"HE" = (
+/obj/effect/turf_decal/solarpanel,
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/crew/canteen)
+"HI" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
/turf/open/floor/plating,
-/area/ship/crew)
+/area/ship/engineering)
+"HP" = (
+/obj/machinery/light/dim/directional/east,
+/obj/structure/toilet{
+ dir = 8;
+ pixel_y = 7;
+ pixel_x = 6
+ },
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_y = 13;
+ pixel_x = -10
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/toilet)
+"Ia" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/cyan{
+ icon_state = "1-10"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
"Ip" = (
/obj/machinery/door/poddoor{
- id = "mining_ship_starboard"
+ id = "dwayne_cargo"
},
/turf/open/floor/plating,
-/area/ship/construction)
+/area/ship/cargo)
"Is" = (
-/obj/effect/turf_decal/ntspaceworks_big/five,
+/obj/structure/closet/crate/science,
+/obj/item/paicard,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
-/area/ship/construction)
+/area/ship/cargo)
"IF" = (
-/obj/machinery/power/port_gen/pacman,
+/obj/effect/turf_decal/corner/opaque/ntblue/half,
+/obj/machinery/computer/cargo{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"IJ" = (
+/obj/machinery/vending/cigarette,
+/obj/item/toy/figure/miner{
+ pixel_y = 17;
+ toysay = "Careful out there! Frontier is deadly this time of the year!... Or any time of the year, actually...";
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"IK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/cigbutt,
+/obj/effect/turf_decal/ntspaceworks_big/five{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"IT" = (
+/obj/structure/grille,
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 2
+ },
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating/airless,
+/area/ship/bridge)
+"IZ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
/obj/structure/cable/yellow{
- icon_state = "0-4"
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Jg" = (
+/obj/machinery/conveyor{
+ dir = 2;
+ id = "smelter_dwayne"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/storage/eva)
+"Jk" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 4
+ },
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating,
+/area/ship/crew/canteen)
+"Jn" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Jq" = (
+/obj/structure/closet/crate/engineering,
+/obj/item/stack/sheet/plastic/five,
+/obj/item/stack/sheet/glass/twenty,
+/obj/item/stack/sheet/metal/twenty,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Jy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"JE" = (
+/obj/effect/decal/cleanable/ash,
+/obj/structure/cable/cyan{
+ icon_state = "1-10"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"JH" = (
+/obj/structure/bed,
+/obj/item/bedsheet/dorms,
+/obj/structure/cable/yellow{
+ icon_state = "4-10"
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"JZ" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/machinery/computer/helm/viewscreen/directional/north,
+/obj/item/decal_painter{
+ pixel_x = -2;
+ pixel_y = 3
+ },
+/obj/item/hand_labeler{
+ pixel_x = 13;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Ka" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/cyan{
+ icon_state = "2-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"Kc" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = 6
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/clothing/head/welding{
+ pixel_x = -2;
+ pixel_y = 1
},
-/obj/item/stack/sheet/mineral/plasma/five,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
-"IJ" = (
+"Kz" = (
+/obj/effect/turf_decal/corner/opaque/ntblue/half{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "dwayne_windows";
+ name = "Fore Window Control";
+ pixel_x = -10;
+ pixel_y = 20;
+ dir = 2
+ },
+/obj/machinery/computer/helm{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"KO" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/cyan{
+ icon_state = "6-9"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"LH" = (
+/obj/machinery/firealarm/directional/south{
+ pixel_x = -5
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "5-10"
+ },
/obj/structure/cable/yellow{
+ icon_state = "1-10"
+ },
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = 7
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"LJ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"LK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/components/binary/pump/on/layer2{
+ dir = 1;
+ name = "Air to Distro"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"LN" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"LZ" = (
+/obj/structure/table/reinforced,
+/obj/structure/closet/secure_closet/freezer/wall/directional/south{
+ name = "kitchen cabinet"
+ },
+/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/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/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/candy,
+/obj/item/reagent_containers/food/snacks/candy,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"Mb" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Hangar"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/door/firedoor/border_only,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/obj/machinery/door/airlock/medical,
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/corner/opaque/blue/mono,
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"IK" = (
-/obj/effect/turf_decal/corner/opaque/yellow/half{
- dir = 4
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
-/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/plasteel,
/area/ship/cargo)
-"IT" = (
-/obj/structure/table,
-/obj/item/storage/firstaid/o2{
- pixel_x = 4;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/fire,
-/obj/item/storage/firstaid/medical{
- pixel_x = -5;
- pixel_y = -4
+"Mg" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
},
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/plasteel/mono,
-/area/ship/medical)
-"IZ" = (
-/obj/item/clothing/suit/hazardvest{
- desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
- name = "emergency lifejacket";
- pixel_x = -4;
- pixel_y = -4
+/obj/effect/turf_decal/techfloor{
+ dir = 1
},
-/obj/item/clothing/suit/hazardvest{
- desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
- name = "emergency lifejacket"
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
},
-/obj/item/clothing/suit/hazardvest{
- desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
- name = "emergency lifejacket";
- pixel_x = 4;
- pixel_y = 4
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"Mk" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_engines";
+ dir = 4
},
-/obj/item/clothing/head/hardhat/mining{
- pixel_x = -4;
- pixel_y = -4
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Mn" = (
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Mo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/cyan{
+ icon_state = "5-10"
},
-/obj/item/clothing/head/hardhat/mining,
-/obj/item/clothing/head/hardhat/mining{
- pixel_x = 4;
- pixel_y = 4
+/turf/open/floor/plating,
+/area/ship/storage/eva)
+"Mz" = (
+/obj/machinery/holopad/emergency/command,
+/obj/effect/turf_decal/box/white{
+ color = "#283674"
},
-/obj/item/gps/mining,
-/obj/item/gps/mining,
-/obj/item/gps/mining,
-/obj/item/clothing/glasses/meson/prescription,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/meson,
-/obj/item/t_scanner/adv_mining_scanner/lesser,
-/obj/item/gun/energy/kinetic_accelerator,
-/obj/item/pickaxe/silver,
-/obj/item/pickaxe/silver,
-/obj/item/storage/bag/ore,
-/obj/item/storage/bag/ore,
-/obj/structure/closet/wall/directional/north{
- name = "equipment closet"
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"MB" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Cryogenics"
},
-/obj/effect/turf_decal/industrial/warning/corner{
+/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"Jg" = (
-/obj/effect/landmark/start/quartermaster,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"Jn" = (
-/obj/effect/turf_decal/ntspaceworks_big/four,
-/turf/open/floor/plating,
-/area/ship/construction)
-"Jq" = (
-/obj/effect/turf_decal/ntspaceworks_big/two,
-/turf/open/floor/plating,
-/area/ship/construction)
-"Jy" = (
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/borderfloor{
- dir = 8
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"MD" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
},
-/obj/effect/turf_decal/corner/opaque/blue/half{
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"MG" = (
+/turf/closed/wall/r_wall,
+/area/ship/crew/dorm)
+"MQ" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/button/door{
+ id = "dwayne_engines";
+ name = "Aft Window Control";
+ pixel_x = -20;
+ pixel_y = 0;
dir = 4
},
-/obj/machinery/computer/operating/retro{
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"MT" = (
+/obj/effect/turf_decal/industrial/warning/corner{
dir = 4
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"JH" = (
-/obj/structure/table/reinforced,
-/obj/item/clothing/head/hardhat/mining{
- pixel_x = -18;
- pixel_y = 8
- },
-/obj/item/phone{
- pixel_x = 5;
- pixel_y = 8
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plating,
+/area/ship/storage/eva)
+"Nf" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/cargo)
+"Nw" = (
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
-/obj/item/areaeditor/shuttle{
- pixel_x = -11
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/cyan{
+ icon_state = "6-8"
},
-/obj/effect/turf_decal/corner/opaque/blue/half{
- dir = 1
+/turf/open/floor/plating,
+/area/ship/engineering)
+"NC" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
},
-/obj/item/radio/intercom/wideband/directional/east,
-/obj/item/clothing/suit/armor/vest/capcarapace/duster,
-/obj/item/clothing/head/caphat/cowboy,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"Ka" = (
-/obj/machinery/status_display/shuttle,
-/turf/closed/wall,
-/area/ship/bridge)
-"Kc" = (
+/obj/machinery/power/solar,
/obj/structure/cable/yellow{
- icon_state = "1-2"
+ icon_state = "2-8"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = 25;
- pixel_y = -25
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/corner/opaque/blue/border,
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"KO" = (
-/obj/effect/turf_decal/ntspaceworks_big/three,
-/turf/open/floor/plating,
-/area/ship/construction)
-"LH" = (
-/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast"
+/obj/effect/turf_decal/solarpanel,
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"NE" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
},
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/ship/engineering)
-"LJ" = (
-/obj/machinery/vending/cola/random,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"LK" = (
+/obj/machinery/light/directional/east,
/obj/machinery/power/solar_control{
- dir = 8
+ dir = 8;
+ icon_state = "computer-right"
},
-/obj/structure/cable/yellow,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/storage/overmap_ship/electric/directional/east,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
-"LN" = (
-/obj/effect/turf_decal/industrial/warning/corner,
-/turf/open/floor/plating,
-/area/ship/construction)
-"LZ" = (
-/turf/closed/wall/r_wall,
-/area/ship/crew)
-"Mb" = (
+"NM" = (
/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast"
+ id = "dwayne_windows";
+ dir = 2
+ },
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating/airless,
+/area/ship/crew/dorm)
+"NN" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/cyan{
+ icon_state = "6-9"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"NT" = (
+/obj/structure/closet/cardboard,
+/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_y = 2
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_y = -3;
+ pixel_x = 7
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = -6
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_y = -3
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = -4;
+ pixel_y = -4
},
-/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
-/area/ship/crew)
-"Mg" = (
+/area/ship/storage/eva)
+"NW" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/ntspaceworks_big/five,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Op" = (
/obj/structure/cable/yellow{
- icon_state = "1-2"
+ icon_state = "0-8"
},
-/obj/structure/cable{
+/obj/machinery/power/tracker,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
},
-/obj/effect/turf_decal/techfloor{
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"Ou" = (
+/obj/effect/turf_decal/industrial/warning/corner{
dir = 1
},
+/obj/structure/chair/comfy/shuttle{
+ dir = 2
+ },
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
-"Mn" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
-"Mo" = (
-/obj/structure/closet/crate/large,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/obj/item/circuitboard/machine/chem_dispenser/drinks,
-/obj/item/circuitboard/computer/arcade/orion_trail,
-/obj/item/kinetic_crusher,
-/obj/effect/turf_decal/box,
-/obj/item/vending_refill/mining_equipment,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
+"Ov" = (
+/obj/structure/closet/cardboard,
+/obj/item/chair/plastic,
+/obj/item/chair/plastic{
+ pixel_y = 4
},
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"Mz" = (
-/obj/structure/bed,
-/obj/item/bedsheet/brown,
-/obj/structure/curtain/bounty,
-/obj/structure/sign/poster/official/no_erp{
- pixel_y = 32
+/obj/item/chair/plastic{
+ pixel_y = 8
},
-/turf/open/floor/wood,
-/area/ship/crew)
-"MB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/item/chair/plastic{
+ pixel_y = 11
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/corner/opaque/blue/border,
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"MD" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/ntspaceworks_big/one,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Oz" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/ntblue/half,
+/obj/machinery/fax/indie{
+ pixel_y = 7
},
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"OJ" = (
+/turf/template_noop,
+/area/template_noop)
+"OL" = (
/obj/machinery/light/directional/west,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table,
-/obj/machinery/cell_charger,
-/obj/item/stack/cable_coil/red{
- pixel_x = 2;
- pixel_y = 6
+/obj/structure/filingcabinet/filingcabinet{
+ dir = 4;
+ pixel_x = -10
},
-/obj/item/stock_parts/cell/high/plus,
-/obj/structure/cable{
- icon_state = "1-6"
+/obj/effect/turf_decal/corner/opaque/ntblue/border{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering)
-"MG" = (
+/obj/item/flashlight/flare,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/clothing/mask/breath,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey,
+/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" = (
+/obj/structure/extinguisher_cabinet/directional/south,
/obj/structure/cable/yellow{
- icon_state = "1-2"
+ icon_state = "6-9"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
},
-/obj/machinery/light_switch{
- pixel_x = 21;
- pixel_y = 25
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"OQ" = (
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
},
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
-"MQ" = (
-/obj/structure/cable/yellow{
+/obj/machinery/button/shieldwallgen{
+ id = "dwayne_cargo_field";
+ pixel_x = 1;
+ pixel_y = -19;
+ dir = 1
+ },
+/obj/machinery/button/door{
+ id = "dwayne_cargo";
+ name = "Blast Doors";
+ pixel_x = -8;
+ pixel_y = -20;
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"OW" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
+/obj/structure/closet/crate/large,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/components/binary/pump/on/layer2{
- dir = 1;
- name = "Air to Distro";
- target_pressure = 500
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Pd" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
},
-/obj/structure/cable/yellow{
- icon_state = "2-4"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/engineering)
-"MT" = (
-/obj/effect/turf_decal/corner/opaque/yellow/half{
+/obj/effect/turf_decal/ntspaceworks_big/four{
dir = 1
},
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"Pe" = (
+/obj/structure/catwalk,
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"Ph" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"Nf" = (
-/obj/effect/turf_decal/number/five,
-/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plating,
-/area/ship/construction)
-"Nw" = (
-/obj/machinery/status_display/shuttle,
-/turf/closed/wall,
-/area/ship/engineering)
-"NM" = (
-/obj/structure/cable/yellow,
+/area/ship/storage/eva)
+"Pl" = (
/obj/structure/cable/yellow{
- icon_state = "0-2"
+ icon_state = "4-6"
},
-/obj/machinery/power/solar,
-/obj/effect/turf_decal/solarpanel,
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"NN" = (
-/obj/structure/closet/crate/engineering,
-/obj/item/stack/sheet/metal/twenty,
-/obj/item/stack/sheet/glass/fifty,
-/obj/effect/turf_decal/box,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
+/obj/structure/cable/yellow{
+ icon_state = "1-6"
},
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"Op" = (
-/obj/item/vending_refill/mining_equipment{
- pixel_y = -8
+/obj/structure/cable/cyan{
+ icon_state = "2-9"
},
-/turf/closed/wall/r_wall,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
/area/ship/engineering)
-"OJ" = (
-/turf/template_noop,
-/area/template_noop)
-"OL" = (
-/obj/effect/turf_decal/corner/opaque/blue/half{
+"Po" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/cyan{
+ icon_state = "2-9"
+ },
+/mob/living/simple_animal/turtle{
dir = 4
},
-/obj/machinery/computer/helm/retro{
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ship/crew/dorm)
+"Px" = (
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"OP" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
+/obj/machinery/computer/cryopod/directional/east,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -12;
+ pixel_y = -19
},
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/corner/opaque/ntblue/half{
- dir = 4
+/obj/item/radio/intercom/directional/south{
+ pixel_x = 1
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"OW" = (
-/obj/effect/turf_decal/number/one,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"PH" = (
/obj/effect/turf_decal/industrial/warning/corner{
dir = 8
},
-/turf/open/floor/plating,
-/area/ship/construction)
-"Pd" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/machinery/light_switch{
- pixel_x = 25;
- pixel_y = -25
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"PU" = (
+/obj/structure/filingcabinet/chestdrawer/wheeled{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"Ph" = (
+/obj/item/folder/yellow,
+/obj/item/folder/yellow,
+/obj/item/folder/blue,
+/obj/item/folder,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/corner/opaque/yellow/half{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel,
+/obj/item/pen,
+/obj/item/pen,
+/obj/effect/turf_decal/ntspaceworks_big/eight,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
-"Pl" = (
-/obj/structure/rack,
-/obj/item/storage/toolbox/electrical{
- pixel_x = 1;
- pixel_y = 6
+"Qe" = (
+/obj/structure/window{
+ dir = 4
},
-/obj/item/storage/toolbox/mechanical{
- pixel_x = -2;
- pixel_y = -1
+/obj/structure/curtain,
+/obj/machinery/shower{
+ dir = 1;
+ pixel_y = 0
},
-/obj/item/clothing/head/welding{
+/obj/item/bikehorn/rubberducky/plasticducky{
pixel_x = -2;
- pixel_y = 1
+ pixel_y = 3
},
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/structure/catwalk/over/plated_catwalk/white,
+/obj/machinery/door/window/northleft{
+ name = "Shower Door"
},
-/obj/structure/cable,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/reagent_containers/glass/beaker{
- list_reagents = list(/datum/reagent/fuel=50)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/toilet)
+"Qg" = (
+/obj/machinery/power/ship_gravity,
+/obj/structure/cable/cyan{
+ icon_state = "0-8"
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
-"Po" = (
-/obj/structure/cable/yellow,
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/power/tracker,
-/obj/effect/turf_decal/solarpanel,
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"Px" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/structure/cable/yellow{
- icon_state = "2-4"
+"Qj" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
+/obj/item/stack/sheet/cardboard{
+ amount = 2
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"PU" = (
-/obj/effect/turf_decal/ntspaceworks_big/one,
-/turf/open/floor/plating,
-/area/ship/construction)
-"Qe" = (
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
"Qp" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/door/airlock/external{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
},
-/turf/open/floor/plasteel/tech/techmaint,
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
/area/ship/engineering)
"QG" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/bag/ore,
+/obj/item/storage/bag/ore,
+/obj/item/storage/bag/ore,
+/obj/structure/closet/crate/miningcar{
+ name = "mining cart"
},
-/obj/structure/closet/crate/large,
-/obj/machinery/portable_atmospherics/canister/hydrogen,
-/turf/open/floor/plating,
-/area/ship/cargo)
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"QI" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
},
-/obj/structure/reagent_dispensers/watertank,
-/obj/item/storage/bag/trash{
- pixel_x = 6
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable/yellow{
+ icon_state = "2-5"
},
-/obj/item/reagent_containers/glass/bucket,
-/obj/item/mop,
-/turf/open/floor/plasteel/tech/grid,
+/obj/structure/cable/cyan{
+ icon_state = "1-10"
+ },
+/turf/open/floor/plating,
/area/ship/engineering)
"QO" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
+ dir = 1
},
-/obj/effect/turf_decal/corner/opaque/yellow/half,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"RA" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"RJ" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/machinery/door/firedoor/border_only{
- dir = 4
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"RN" = (
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/storage/eva)
+"RS" = (
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/machinery/button/shieldwallgen{
+ id = "dwayne_mining_field";
+ pixel_x = 1;
+ pixel_y = 19
+ },
+/obj/machinery/button/door{
+ id = "dwayne_mining";
+ name = "Blast Doors";
+ pixel_x = -8;
+ pixel_y = 20
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"RT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/black{
+ dir = 6
},
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"RU" = (
+/obj/structure/closet/crate/internals,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/turf/open/floor/plating,
+/area/ship/storage/eva)
+"Se" = (
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/machinery/door/airlock/engineering{
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/effect/turf_decal/techfloor{
- dir = 8
+/obj/machinery/door/airlock/command/glass{
+ dir = 4;
+ name = "Bridge";
+ req_one_access = list(20,41)
},
-/turf/open/floor/plasteel,
-/area/ship/engineering)
-"RN" = (
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/structure/table,
-/obj/item/book/manual/wiki/surgery,
-/obj/item/storage/backpack/duffelbag/med/surgery,
-/obj/item/clothing/mask/surgical,
-/obj/item/clothing/suit/apron/surgical,
-/obj/item/clothing/gloves/color/latex/nitrile,
-/obj/effect/turf_decal/borderfloor{
+/obj/structure/cable/cyan{
+ icon_state = "4-10"
+ },
+/obj/effect/turf_decal/corner/opaque/black{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
},
-/obj/effect/turf_decal/corner/opaque/blue/half{
+/turf/open/floor/plasteel/stairs{
+ dir = 4;
+ color = "#555555"
+ },
+/area/ship/bridge)
+"Sg" = (
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"RS" = (
-/obj/structure/bed,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/borderfloor{
+/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/effect/turf_decal/corner/opaque/blue/half{
- dir = 4
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"RT" = (
-/obj/structure/chair/comfy/shuttle{
+/obj/structure/cable/cyan{
+ icon_state = "6-10"
+ },
+/obj/machinery/door/airlock/engineering{
+ dir = 4;
+ name = "Engineering"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"St" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
dir = 4
},
-/obj/effect/turf_decal/box,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
-"RU" = (
-/obj/structure/closet/crate/wooden,
-/obj/item/clothing/suit/hooded/explorer,
-/obj/item/clothing/suit/hooded/explorer,
-/obj/item/clothing/suit/hooded/explorer,
-/turf/open/floor/plating,
-/area/ship/cargo)
-"Se" = (
-/obj/effect/turf_decal/corner/opaque/blue/half{
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating,
+/area/ship/crew/dorm)
+"SB" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"SI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/cyan{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ship/cargo)
+"Tl" = (
+/obj/machinery/washing_machine,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/toilet)
+"Tz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ship/crew/dorm)
+"TO" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"TP" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"TR" = (
+/obj/structure/chair/sofa/brown/old/right/directional/north,
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"Ub" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/cryopod,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/crew/cryo)
+"Uj" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
dir = 4
},
-/obj/machinery/computer/cargo/retro{
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"Um" = (
+/turf/closed/wall,
+/area/ship/crew/canteen)
+"Un" = (
+/obj/effect/decal/cleanable/ash,
+/obj/structure/railing{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"Sg" = (
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"St" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4,
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 8
},
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/engineering)
-"SB" = (
-/obj/effect/turf_decal/ntspaceworks_big/eight,
-/turf/open/floor/plating,
-/area/ship/construction)
-"Tl" = (
-/obj/structure/chair/comfy/orange/directional/north,
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
-"TP" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/item/gun/ballistic/shotgun/flamingarrow,
+/obj/item/gun/ballistic/shotgun/flamingarrow,
+/obj/item/gun/ballistic/shotgun/flamingarrow,
+/obj/structure/guncloset/shotgun{
+ name = "rifle locker";
+ desc = "A locker that holds rifles."
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"UD" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/closet/crate/medical,
+/obj/item/clothing/gloves/color/latex/nitrile,
+/obj/item/storage/firstaid/regular,
+/obj/item/roller,
+/obj/item/reagent_containers/hypospray/medipen/survival,
+/obj/item/reagent_containers/hypospray/medipen/survival{
+ pixel_y = -4
},
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/crew)
-"Ub" = (
-/obj/structure/bed/roller,
-/obj/item/bedsheet/medical,
-/obj/machinery/iv_drip,
-/obj/effect/turf_decal/corner/opaque/white/mono,
-/obj/effect/turf_decal/corner/opaque/blue/border{
- dir = 1
+/obj/item/storage/pill_bottle/charcoal/less,
+/obj/structure/cable/cyan{
+ icon_state = "5-10"
},
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel/mono/white,
-/area/ship/medical)
-"Um" = (
-/obj/structure/table/wood,
-/obj/machinery/microwave,
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
-"Un" = (
-/obj/effect/turf_decal/box,
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/ntspaceworks_big/six,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"UP" = (
-/obj/machinery/door/airlock/external{
- dir = 4
+/obj/docking_port/stationary{
+ width = 30;
+ height = 15;
+ dwidth = 15;
+ dir = 8
},
-/obj/structure/cable/yellow{
+/turf/template_noop,
+/area/template_noop)
+"UX" = (
+/obj/structure/cable/cyan{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/cyan{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/cyan{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
-/area/ship/engineering)
+/area/ship/hallway/central)
"UY" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/structure/closet/crate,
-/obj/effect/turf_decal/box,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
"Vb" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/structure/dresser{
+ dir = 4
},
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "mining_ship_blast";
- dir = 8
+/obj/machinery/light/directional/west,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola{
+ pixel_y = 14;
+ pixel_x = 3
},
-/turf/open/floor/plating,
-/area/ship/medical)
+/turf/open/floor/wood,
+/area/ship/crew/dorm)
"Vv" = (
-/obj/machinery/power/smes/engineering,
-/obj/structure/cable{
- icon_state = "0-10"
- },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/turf/open/floor/plating,
/area/ship/engineering)
"VP" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
},
-/obj/structure/closet/emcloset/anchored,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
+"VZ" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_windows";
+ dir = 4
+ },
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating,
+/area/ship/crew/dorm)
"Wi" = (
-/obj/effect/turf_decal/corner/opaque/yellow/half,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/autolathe,
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/machinery/mineral/processing_unit{
+ output_dir = 4;
+ input_dir = 8
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/storage/eva)
"Wm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
- dir = 4
+/obj/effect/turf_decal/corner/opaque/yellow/half,
+/obj/structure/cable/cyan{
+ icon_state = "2-5"
},
-/obj/structure/guncloset/shotgun,
-/obj/item/gun/ballistic/shotgun/flamingarrow,
-/obj/item/gun/ballistic/shotgun/flamingarrow,
-/obj/item/gun/ballistic/shotgun/flamingarrow,
-/turf/open/floor/plasteel,
-/area/ship/cargo)
-"WE" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/cable/cyan{
+ icon_state = "2-9"
},
-/obj/machinery/light_switch{
- pixel_x = -25;
- pixel_y = -25;
- dir = 4
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/storage/eva)
+"WE" = (
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/techfloor{
- dir = 10
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/engineering)
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"WK" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/cargo)
"WL" = (
-/obj/structure/table,
-/obj/item/storage/belt/utility,
-/obj/item/radio{
- pixel_x = 6;
- pixel_y = 7
+/obj/machinery/door/poddoor/preopen{
+ id = "dwayne_engines";
+ dir = 2
},
-/obj/machinery/light/directional/west,
-/obj/item/storage/box/lights/mixed,
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plasteel/tech/grid,
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/turf/open/floor/plating,
/area/ship/engineering)
"WZ" = (
-/obj/structure/cable/yellow,
-/obj/structure/cable/yellow{
- icon_state = "0-2"
+/obj/item/kirbyplants/random{
+ pixel_y = 18;
+ pixel_x = -8
},
-/obj/structure/cable/yellow{
- icon_state = "0-4"
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
},
-/obj/machinery/power/solar,
-/obj/effect/turf_decal/solarpanel,
-/turf/open/floor/plating/airless,
-/area/ship/external)
+/area/ship/crew/dorm)
"Xk" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
+/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plating,
-/area/ship/construction)
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
"Xl" = (
+/obj/machinery/firealarm/directional/north,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Xm" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
+ dir = 8
},
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable/cyan{
+ icon_state = "0-8"
},
-/obj/effect/turf_decal/corner/opaque/ntblue/half{
- dir = 4
+/obj/machinery/light_switch{
+ dir = 2;
+ pixel_x = -12;
+ pixel_y = 20
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"Xn" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/open/floor/plasteel/stairs{
+ dir = 4;
+ color = "#555555"
},
-/obj/structure/cable{
- icon_state = "1-8"
+/area/ship/bridge)
+"Xn" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"Xo" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
},
-/obj/machinery/button/door{
- id = "mining_ship_blast";
- name = "Blast Door Control";
- pixel_y = 28
+/obj/item/radio/intercom/directional/north,
+/obj/effect/turf_decal/corner/opaque/black{
+ dir = 6
},
-/obj/effect/turf_decal/box,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"Xw" = (
-/obj/structure/table,
-/obj/item/defibrillator/loaded,
-/obj/item/stack/medical/suture,
-/obj/item/reagent_containers/syringe,
-/obj/item/reagent_containers/glass/bottle/epinephrine{
- pixel_x = -4
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/salad/oatmeal{
+ pixel_y = 14;
+ pixel_x = 10;
+ desc = "A nice bowl of oatmeal. You aren't quite sure how long it's been sitting here."
},
-/obj/item/reagent_containers/glass/bottle/charcoal{
- pixel_x = 7;
- pixel_y = 4
+/obj/structure/cable/yellow{
+ icon_state = "4-9"
},
/obj/structure/cable/yellow{
- icon_state = "4-8"
+ icon_state = "2-9"
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/cola{
+ pixel_y = 1;
+ pixel_x = -5
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"XC" = (
+/obj/structure/chair/sofa/brown/old/right/directional/south,
+/obj/item/radio/intercom/directional/north,
+/obj/item/cigbutt/cigarbutt{
+ pixel_x = 8;
+ pixel_y = -1
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"YA" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
},
-/obj/item/storage/belt/medical,
-/turf/open/floor/plasteel/mono,
-/area/ship/medical)
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
"YE" = (
-/obj/structure/catwalk/over,
-/obj/machinery/computer/helm/viewscreen/directional/north,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 6
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 10
},
-/turf/open/floor/plating,
+/obj/item/radio/intercom/directional/north,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"YJ" = (
/turf/closed/wall/r_wall,
/area/ship/cargo)
-"YN" = (
-/turf/closed/wall/r_wall,
-/area/ship/construction)
+"YN" = (
+/obj/machinery/door/poddoor{
+ id = "dwayne_cargo"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 8;
+ id = "dwayne_cargo_field";
+ locked = 1
+ },
+/obj/structure/cable/cyan{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plating,
+/area/ship/cargo)
+"YY" = (
+/obj/structure/closet/crate/trashcart,
+/obj/item/trash/candy,
+/obj/item/trash/sosjerky,
+/obj/item/trash/can/food/beans,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/cable/cyan{
+ icon_state = "2-5"
+ },
+/obj/structure/cable/cyan{
+ icon_state = "5-8"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
"Zj" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/obj/machinery/button/door{
- dir = 1;
- id = "mining_ship_starboard";
- name = "Starboard Hangar Shutters";
- pixel_y = -21
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"Zv" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+/obj/machinery/door/airlock/engineering{
+ dir = 4;
+ name = "Engineering"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
},
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -20;
- pixel_y = 22
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"Zv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/cyan{
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"ZA" = (
-/obj/effect/turf_decal/corner/opaque/yellow/half{
- dir = 1
- },
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/ship/cargo)
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/storage/eva)
"ZK" = (
/obj/machinery/door/poddoor{
- id = "mining_ship_port"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
+ id = "dwayne_mining"
},
/turf/open/floor/plating,
-/area/ship/cargo)
+/area/ship/storage/eva)
"ZL" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
},
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/caution{
dir = 4
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
+"ZQ" = (
+/obj/structure/bed,
+/obj/item/bedsheet/dorms,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
"ZR" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
},
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
},
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
+/obj/structure/sign/poster/official/safety_internals{
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
(1,1,1) = {"
OJ
@@ -2294,11 +3503,10 @@ OJ
OJ
OJ
OJ
-mF
-mF
+OJ
UP
-mF
-mF
+OJ
+OJ
OJ
OJ
OJ
@@ -2313,12 +3521,11 @@ OJ
OJ
OJ
OJ
-OJ
-CP
-St
+CB
+mF
HI
-aS
-CP
+mF
+CB
OJ
OJ
OJ
@@ -2329,58 +3536,55 @@ OJ
(3,1,1) = {"
OJ
OJ
-mF
-gF
-aD
-Cn
OJ
-LH
+OJ
+OJ
+OJ
+CP
iq
ZL
-gu
-ig
-zq
-Cn
-aD
-gF
-mF
+aS
+CP
+OJ
+OJ
+OJ
+OJ
+OJ
OJ
"}
(4,1,1) = {"
OJ
-OJ
-tq
-hK
-bb
-tq
+mF
+gF
+aD
+mF
fy
-tq
-tq
+WL
+Ou
Qp
-tq
-tq
-fy
-tq
-uP
-CO
-tq
+PH
+WL
+Pe
+mF
+aD
+gF
+mF
OJ
"}
(5,1,1) = {"
OJ
-OJ
tq
CD
vn
-WL
-IF
-IF
-as
+tq
+Mk
+tq
+tq
kf
-WE
-vJ
+tq
+tq
vJ
-MD
+tq
ls
gm
tq
@@ -2388,8 +3592,7 @@ OJ
"}
(6,1,1) = {"
OJ
-OJ
-Op
+tq
YE
bP
om
@@ -2408,7 +3611,6 @@ OJ
"}
(7,1,1) = {"
OJ
-OJ
tq
kQ
hZ
@@ -2428,106 +3630,100 @@ OJ
"}
(8,1,1) = {"
OJ
-YJ
-YJ
-YJ
-YJ
-YJ
-YJ
-YJ
+tq
+Ez
+AY
+NE
+Qg
+ow
lD
Nw
RA
+nJ
+Kc
+ig
+hK
+zY
tq
-tq
-tq
-tq
-tq
-tq
-tq
+OJ
"}
(9,1,1) = {"
-OJ
-YJ
+RN
qz
-aR
-uT
-za
-pS
-eM
+uc
+uc
+uc
+uc
+uc
mE
yu
iZ
-bj
-uk
-uk
-uk
-uk
-LN
-YN
+eM
+eM
+eM
+eM
+eM
+YJ
+gu
"}
(10,1,1) = {"
-OJ
-pl
+qz
MT
eH
Cp
Jg
vb
-eM
+uc
Sg
-AD
+mF
Zj
-bj
-uk
-uk
-uk
-uk
-Xk
-Ip
+eM
+pS
+ve
+xP
+SI
+mX
+YJ
"}
(11,1,1) = {"
-OJ
in
-MT
-FP
+mr
+as
Un
oB
Wi
-eM
+uc
aI
-TP
+AD
ZR
-bj
-uk
-uk
-uk
-uk
-Xk
-Ip
+eM
+CS
+Ov
+NW
+YY
+mf
+uP
"}
(12,1,1) = {"
-OJ
-in
+ZK
Fn
vA
NN
pq
nf
uc
-or
+LN
lv
-sD
-Mb
-uk
-uk
-uk
-uk
-Xk
+mA
+eM
+cL
+zI
+UD
+FR
+Nf
Ip
"}
(13,1,1) = {"
-fp
ZK
ZA
QG
@@ -2536,160 +3732,152 @@ zF
QO
Ex
wW
-nJ
+lv
sg
Hh
-uk
-uk
-uk
-uk
-Xk
+bb
+hO
+WK
+ul
+Qj
Ip
"}
(14,1,1) = {"
-OJ
-in
-Fn
-FP
+ZK
+eu
+NT
tX
Pd
Wm
-uc
+zl
or
-lv
+UX
sD
Mb
-uk
-uk
+oQ
+GH
PU
Is
Xk
Ip
"}
(15,1,1) = {"
-OJ
-in
+ZK
Ph
-FP
+bO
nL
kM
-YJ
-YJ
+TO
+Ex
IZ
-lv
+WE
dK
-bj
-uk
+Hh
+zc
uk
Jq
-mr
+FP
Nf
Ip
"}
(16,1,1) = {"
-OJ
-bl
-Fn
+ZK
+eu
ww
Mo
dx
-YJ
-LJ
-Sg
+wh
+uc
+EE
lv
tj
-bj
-uk
-uk
+eM
+rq
+tJ
KO
vf
bf
Ip
"}
(17,1,1) = {"
-OJ
-YJ
+GU
zK
-FP
+JE
IK
RU
-YJ
-GU
-Sg
+of
+uc
+fz
lv
Fd
-bj
-uk
-uk
+eM
+JZ
+bl
Jn
-SB
+bo
OW
YN
"}
(18,1,1) = {"
-OJ
-YJ
-YJ
-ei
-ei
-ei
-ei
-oC
+qz
+RS
+Uj
+GN
+zq
+zt
+uc
kb
-lv
+FH
pt
-bj
-LZ
-LZ
-LZ
-LZ
-LZ
-LZ
+eM
+oJ
+ja
+oy
+cc
+OQ
+YJ
"}
(19,1,1) = {"
-OJ
-OJ
-sP
-ei
-Jy
-RS
RN
-oC
+qz
+uc
+uc
+uc
+uc
+uc
my
-lv
+DR
Gx
-bj
-Mz
-cf
-bE
-LZ
-sP
-OJ
+eM
+eM
+eM
+eM
+eM
+YJ
+gu
"}
(20,1,1) = {"
OJ
-OJ
-FS
-ei
+mR
+dQ
oE
sp
pn
oC
-my
+ec
oR
-Gx
-bj
+dy
+bE
gT
yx
Qe
-Mb
-FS
+bj
+vm
OJ
"}
(21,1,1) = {"
OJ
-OJ
-FS
+zi
ei
Ub
gs
@@ -2702,143 +3890,212 @@ bj
Ee
HP
Tl
-Mb
-FS
+bj
+vm
OJ
"}
(22,1,1) = {"
OJ
-OJ
-FS
+za
ei
sZ
Px
-Kc
+pn
IJ
DJ
xh
vj
-wh
-MG
-Fz
Um
-Mb
-FS
+Um
+Um
+Um
+Um
+dh
OJ
"}
(23,1,1) = {"
OJ
-OJ
FS
-ei
-IT
-Xw
+MG
+ap
+ap
+ap
ap
-oC
Xl
AQ
OP
-bj
+Um
pv
aY
vw
-LZ
-FS
+LJ
+nY
OJ
"}
(24,1,1) = {"
OJ
-OJ
FS
-ei
+MG
fV
Vb
-rE
-wv
+cf
+ap
vQ
Ka
-zc
-wv
-rE
+Zv
+qt
+fp
Ia
xr
LZ
-FS
+nY
OJ
"}
(25,1,1) = {"
OJ
-OJ
-bW
+FS
NM
WZ
Po
-ms
+Tz
DG
Zv
qg
Mn
-mA
+Um
ms
kO
hy
-NM
nY
+HE
OJ
"}
(26,1,1) = {"
OJ
-OJ
-OJ
-OJ
-jS
-jS
-ms
-JH
+YA
+CO
+aV
+sP
+LH
+ap
Xo
ak
RT
-GW
-ms
-jS
+Um
+XC
+Xw
jS
-OJ
-OJ
+hd
+MD
OJ
"}
(27,1,1) = {"
OJ
+RJ
+NM
+ZQ
+JH
+Gl
+ap
+Se
+wv
+sM
+Um
+bx
+Fz
+TR
+ld
+RJ
OJ
+"}
+(28,1,1) = {"
OJ
-OJ
-OJ
-OJ
-rE
+bW
+Fq
+St
+VZ
rE
-Se
+wv
+Xm
OL
-sM
-rE
+Gr
+wv
rE
+Ds
+Jk
+HE
+bW
OJ
+"}
+(29,1,1) = {"
OJ
OJ
+TP
+ax
+Op
+Bq
+mJ
+FN
+Mz
+Jy
+Oz
+IT
+NC
+ql
+jz
OJ
OJ
"}
-(28,1,1) = {"
+(30,1,1) = {"
+OJ
+OJ
+OJ
+TP
+yN
+Bq
+pl
+hB
+Bx
+BX
+IF
+IT
+SB
+mv
+OJ
OJ
OJ
+"}
+(31,1,1) = {"
OJ
OJ
OJ
OJ
OJ
+GW
rE
-Gr
-Gr
-Gr
+Kz
+uT
+aR
rE
+GW
+OJ
+OJ
+OJ
+OJ
+OJ
+"}
+(32,1,1) = {"
+OJ
+OJ
+OJ
+OJ
+OJ
+OJ
+GW
+cw
+cw
+cw
+GW
OJ
OJ
OJ
diff --git a/_maps/shuttles/independent/independent_junker.dmm b/_maps/shuttles/independent/independent_junker.dmm
index 136e6e6e17fb..0ae98ef37fe2 100644
--- a/_maps/shuttles/independent/independent_junker.dmm
+++ b/_maps/shuttles/independent/independent_junker.dmm
@@ -91,7 +91,7 @@
pixel_x = 4;
pixel_y = 9
},
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_y = -3;
pixel_x = 10
},
@@ -1790,7 +1790,7 @@
/obj/structure/cable{
icon_state = "5-10"
},
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_y = 1;
pixel_x = 8
},
@@ -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/_maps/shuttles/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm
index 0f1f92a475c8..35f955ff0b3d 100644
--- a/_maps/shuttles/independent/independent_kilo.dmm
+++ b/_maps/shuttles/independent/independent_kilo.dmm
@@ -3,213 +3,166 @@
/turf/template_noop,
/area/template_noop)
"ac" = (
-/turf/closed/wall/mineral/titanium/nodiagonal,
+/turf/closed/wall/r_wall,
/area/ship/cargo)
"ak" = (
-/obj/machinery/power/shuttle/engine/fueled/plasma{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/machinery/power/shuttle/engine/fueled/plasma,
+/turf/open/floor/engine/hull,
+/area/ship/engineering)
"am" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/conveyor{
- id = "NTMSLoad2";
- name = "on ramp"
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/plasticflaps,
-/turf/open/floor/plating,
+/obj/machinery/autolathe,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"ar" = (
-/obj/machinery/atmospherics/components/unary/shuttle/heater{
- dir = 4
- },
-/obj/machinery/door/window/westright{
- dir = 4
- },
+/obj/machinery/atmospherics/components/unary/shuttle/heater,
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/obj/machinery/door/poddoor/shutters{
- id = "kiloengine";
- name = "Engine Shutters";
- dir = 4
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kilothrusters"
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plating/airless,
+/area/ship/engineering)
"av" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 10
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/portable_atmospherics/scrubber/huge,
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
+/obj/structure/sign/poster/random{
+ pixel_y = 32
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/table_frame,
+/obj/item/shard,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
"ay" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/turf/open/floor/mineral/titanium/yellow,
+/obj/effect/decal/cleanable/glass,
+/mob/living/simple_animal/hostile/cockroach,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"aC" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/structure/reagent_dispensers/fueltank,
+/obj/structure/sign/poster/random{
+ pixel_y = 32
},
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/box/corners{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/stand_clear,
-/turf/open/floor/plating,
-/area/ship/cargo)
-"aJ" = (
-/obj/structure/sign/warning/enginesafety,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/engineering/engine)
-"aS" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/components/unary/tank/air{
- piping_layer = 2
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/turf_decal/industrial/warning{
+/obj/effect/turf_decal/box/corners{
dir = 1
},
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/pink{
+ icon_state = "0-2"
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"aU" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/port)
+"aJ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/chair/bench/olive/directional/east,
+/obj/structure/railing{
dir = 8
},
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/structure/sign/warning/fire{
- pixel_x = 32;
- pixel_y = -32
+/obj/effect/turf_decal/corner/opaque/neutral/half,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/port)
+"aS" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/closet/secure_closet/engineering_personal{
+ anchored = 1;
+ populate = 0
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"aZ" = (
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/reagentgrinder{
- desc = "Used to grind things up into raw materials and liquids.";
- pixel_y = 5
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/under/rank/engineering/engineer,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/head/hardhat/dblue,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"aU" = (
+/obj/structure/cable/cyan{
+ icon_state = "0-8"
},
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
+/obj/machinery/power/terminal{
+ dir = 4
},
-/obj/machinery/light/directional/south,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen/kitchen)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"aZ" = (
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
"bg" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "4-8"
- },
+/obj/structure/catwalk/over/plated_catwalk,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
+/obj/structure/cable/pink{
+ icon_state = "4-8"
+ },
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
+/obj/machinery/light/small/directional/south{
+ pixel_x = -5
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 5;
+ pixel_y = -19
},
/turf/open/floor/plating,
-/area/ship/cargo)
+/area/ship/hallway/port)
"bm" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/structure/closet/emcloset/anchored,
-/obj/machinery/button/door{
- id = "ntms_exterior";
- name = "NTMS-037 External Lock";
- normaldoorcontrol = 1;
- pixel_x = -25;
- pixel_y = -8;
- specialfunctions = 4
- },
-/obj/machinery/firealarm/directional/east,
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/advanced_airlock_controller{
- pixel_x = -28;
- pixel_y = 3
- },
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/cargo)
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"bn" = (
-/obj/machinery/power/shuttle/engine/electric{
- dir = 4
- },
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/machinery/power/shuttle/engine/electric,
+/turf/open/floor/engine/hull,
+/area/ship/engineering)
"by" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/blood/old,
-/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,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/turf/open/floor/mineral/titanium/yellow,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"bA" = (
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/crew/canteen/kitchen)
+/obj/structure/chair/plastic,
+/obj/structure/cable/pink{
+ icon_state = "4-6"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/item/reagent_containers/food/drinks/beer{
+ list_reagents = null;
+ pixel_x = -14;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/corner/opaque/neutral/three_quarters,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
"bF" = (
-/turf/closed/wall/mineral/titanium/nodiagonal,
+/turf/closed/wall,
/area/ship/bridge)
"bG" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/shuttle{
- name = "Gear Room"
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
+/obj/structure/cable/pink{
+ icon_state = "5-8"
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/cable/pink{
+ icon_state = "2-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -217,2186 +170,1876 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/turf/open/floor/mineral/plastitanium,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"bH" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
+ dir = 5
},
-/obj/effect/turf_decal/industrial/warning/corner,
-/turf/open/floor/mineral/titanium/blue,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"bL" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/structure/cable/pink{
+ icon_state = "1-8"
},
-/obj/effect/decal/cleanable/greenglow,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/firealarm/directional/east{
+ pixel_y = -5
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = 7
},
-/turf/open/floor/plating,
-/area/ship/cargo)
+/turf/open/floor/plasteel,
+/area/ship/hallway/central)
"bM" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet/crate,
-/obj/item/shovel,
-/obj/item/pickaxe,
-/obj/item/storage/box/lights/mixed,
-/obj/item/mining_scanner,
-/obj/effect/turf_decal/box/corners,
-/obj/effect/turf_decal/box/corners{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/item/gun/energy/kinetic_accelerator,
-/turf/open/floor/plating,
-/area/ship/cargo)
-"bP" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_bridge";
- name = "Garage DoorCockpit Emergency Blast Door";
- dir = 4
+/obj/structure/cable/pink{
+ icon_state = "4-9"
},
-/obj/machinery/door/firedoor/border_only{
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
+/obj/item/radio/intercom/directional/south,
+/obj/structure/cable/pink{
+ icon_state = "1-9"
+ },
/turf/open/floor/plating,
+/area/ship/hallway/port)
+"bP" = (
+/turf/closed/wall/r_wall,
/area/ship/bridge)
"bQ" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/power/terminal{
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"bT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
+/obj/structure/cable/pink{
+ icon_state = "4-9"
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"bU" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
-/obj/effect/turf_decal/ntspaceworks_small/left,
/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"bT" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-8"
+/area/ship/hallway/port)
+"bV" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/pink{
+ icon_state = "4-10"
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/turf/open/floor/mineral/titanium/yellow,
-/area/ship/cargo)
-"bU" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = 7
+ },
+/obj/machinery/firealarm/directional/south{
+ pixel_x = -5
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/port)
+"bX" = (
+/obj/machinery/door/airlock/mining{
+ dir = 8;
+ name = "Cargo Bay"
+ },
+/obj/structure/cable/pink{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/components/binary/valve/layer2{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+ dir = 8
},
-/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/plating,
-/area/ship/engineering/engine)
-"bV" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/shuttle{
- name = "Engineering"
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"bY" = (
+/obj/structure/cable/pink{
+ 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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/structure/cable{
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"bZ" = (
+/obj/structure/closet/crate/secure/exo,
+/obj/item/storage/bag/ore,
+/obj/item/storage/bag/ore,
+/obj/item/pickaxe/drill,
+/obj/item/pinpointer/mineral,
+/obj/structure/cable/pink{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"ca" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/turf/open/floor/mineral/plastitanium,
-/area/ship/engineering/engine)
-"bX" = (
-/obj/structure/ore_box,
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plating,
-/area/ship/cargo)
-"bY" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/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/cargo)
-"bZ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
+/obj/structure/cable/pink{
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/effect/turf_decal/industrial/warning{
dir = 4
},
-/turf/open/floor/plating,
-/area/ship/cargo)
-"ca" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/oil,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 4;
+ pixel_y = -19
},
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = -6
},
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/area/ship/engineering)
"cb" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/effect/turf_decal/box,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/power/smes/engineering{
- charge = 1e+006
- },
-/obj/structure/sign/warning/electricshock{
- pixel_y = 32
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"cf" = (
+/obj/machinery/door/poddoor{
+ id = "kilocargo"
},
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 8;
+ id = "kilofield"
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
+/obj/structure/cable/pink{
+ icon_state = "0-10"
},
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"cf" = (
-/obj/structure/sign/warning/vacuum/external,
-/turf/closed/wall/mineral/titanium/nodiagonal,
+/turf/open/floor/plasteel/patterned/ridged,
/area/ship/cargo)
"ci" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/suit_storage_unit/independent/mining/eva,
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/mineral/plastitanium,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/obj/structure/ore_box,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"cj" = (
-/obj/structure/tank_dispenser/oxygen,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/mineral/plastitanium,
+/obj/structure/closet/crate/internals,
+/obj/effect/turf_decal/borderfloor{
+ dir = 9
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/effect/turf_decal/box/corners,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"ck" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table,
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 4
- },
-/obj/item/flashlight{
- pixel_x = 3;
- pixel_y = 3
+/obj/machinery/door/airlock{
+ name = "Dormitory"
},
-/obj/item/clothing/head/welding{
- pixel_x = -2;
- pixel_y = 1
+/obj/structure/cable/pink{
+ icon_state = "5-9"
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 6
+/obj/structure/cable/pink{
+ icon_state = "2-9"
},
-/obj/machinery/firealarm/directional/east,
-/obj/machinery/light_switch{
- pixel_y = -20;
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
"cq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/light/small/built/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/closed/wall,
+/area/ship/crew/dorm)
"cr" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/power/port_gen/pacman{
- anchored = 1
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable/pink{
+ icon_state = "0-10"
},
-/obj/item/wrench,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable/yellow,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
"cw" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/command{
- name = "Ship Control"
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/machinery/door/firedoor/border_only,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/bridge)
-"cB" = (
-/obj/effect/decal/cleanable/greenglow,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/ship/cargo)
-"cC" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "1-2"
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/item/reagent_containers/food/drinks/beer{
+ list_reagents = list(/datum/reagent/consumable/ethanol/beer = 10);
+ pixel_x = -6;
+ pixel_y = 7
},
-/obj/structure/cable{
- icon_state = "1-4"
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"cB" = (
+/obj/structure/closet/secure_closet/miner{
+ anchored = 1;
+ populate = 0
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+/obj/effect/turf_decal/borderfloor{
dir = 1
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"cJ" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/structure/closet/emcloset/anchored,
-/obj/structure/sign/warning/vacuum/external{
- pixel_x = -32
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 10
},
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/south,
-/obj/structure/sign/warning/xeno_mining{
- pixel_x = 32
+/obj/effect/turf_decal/box/corners{
+ dir = 8
},
-/turf/open/floor/mineral/plastitanium,
+/obj/effect/turf_decal/box/corners,
+/obj/item/storage/backpack/explorer,
+/obj/item/clothing/shoes/workboots/mining,
+/obj/item/clothing/under/rank/cargo/miner/hazard,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/armor/vest/old,
+/obj/item/clothing/gloves/explorer,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/head/hardhat/mining,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
-"cK" = (
-/obj/effect/decal/cleanable/blood/old,
+"cC" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/turf/open/floor/plating,
-/area/ship/cargo)
-"cM" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/door/airlock/engineering{
+ dir = 8;
+ name = "Engine Bay"
},
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/structure/cable/pink{
+ icon_state = "6-8"
},
-/obj/effect/turf_decal/industrial/warning{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/meter/atmos,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"cP" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_windows";
- name = "Exterior Window Blast Door"
- },
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plating,
-/area/ship/cargo)
-"cV" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/shuttle{
- name = "Ship Saloon"
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/port)
+"cJ" = (
+/obj/structure/chair/handrail{
dir = 1
},
-/obj/machinery/door/firedoor/border_only,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = -21
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/canteen/kitchen)
-"cW" = (
-/obj/machinery/power/smes/shuttle{
- dir = 4
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/pink{
+ icon_state = "0-9"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = 13
},
-/obj/machinery/door/window/westright{
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/maintenance/fore)
+"cK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/passive_vent{
dir = 4
},
-/obj/structure/cable{
- icon_state = "0-8"
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"cM" = (
+/obj/structure/cable/pink{
+ icon_state = "5-8"
},
-/obj/structure/window/reinforced/spawner/north,
-/obj/effect/turf_decal/industrial/warning{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
+/obj/structure/cable/pink{
+ icon_state = "6-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"cP" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/atmospherics/pipe/layer_manifold,
/obj/machinery/door/poddoor/shutters{
- id = "kiloengine";
- name = "Engine Shutters";
- dir = 4
+ id = "kilowindows"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/hallway/port)
+"cV" = (
+/obj/structure/cable/pink{
+ icon_state = "2-9"
+ },
+/obj/structure/cable/pink{
+ icon_state = "2-5"
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"cY" = (
-/obj/effect/decal/cleanable/greenglow,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/mono{
dir = 1
},
-/obj/effect/turf_decal/industrial/warning{
+/area/ship/cargo)
+"cW" = (
+/obj/structure/sink/kitchen{
dir = 8
},
-/obj/machinery/button/door{
- name = "Shutter Control";
- dir = 4;
- pixel_y = -7;
- pixel_x = -23;
- id = "kiloengine"
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -12
},
-/obj/structure/cable{
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"cY" = (
+/obj/structure/cable/pink{
icon_state = "0-4"
},
-/obj/machinery/power/ship_gravity,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/area/ship/engineering)
"cZ" = (
-/obj/structure/closet/secure_closet/personal,
-/obj/item/gun/energy/laser/retro,
-/obj/structure/plaque/static_plaque/golden/captain{
- pixel_x = -32
- },
-/obj/item/paicard,
-/obj/item/clothing/shoes/cowboy/white,
-/obj/item/clothing/head/caphat/cowboy,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/clothing/suit/armor/vest/capcarapace/duster,
-/turf/open/floor/carpet,
-/area/ship/crew)
-"da" = (
-/obj/structure/chair/comfy/orange/directional/north{
- buildstackamount = 0;
- color = "#c45c57"
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/machinery/status_display{
- pixel_y = 32;
- pixel_x = -32
+/obj/machinery/power/ship_gravity,
+/obj/structure/cable/pink{
+ icon_state = "0-8"
},
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/carpet,
-/area/ship/crew)
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"da" = (
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
"dc" = (
-/obj/structure/table,
-/obj/effect/turf_decal/trimline/opaque/white/filled/line{
- dir = 1
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = -11
},
-/obj/machinery/microwave{
- pixel_y = 5
+/obj/structure/cable/pink{
+ icon_state = "0-1"
},
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/east,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/canteen/kitchen)
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
"de" = (
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/cable/pink{
+ icon_state = "2-9"
},
/obj/machinery/door/firedoor/border_only,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/turf/open/floor/mineral/plastitanium,
-/area/ship/cargo)
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock{
+ dir = 1;
+ name = "Cryo Room"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
"dt" = (
-/obj/machinery/vending/boozeomat/all_access,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/crew/canteen/kitchen)
+/obj/machinery/vending/cigarette,
+/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/corner/opaque/neutral/half,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
"dF" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4,
-/obj/structure/catwalk,
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"eo" = (
-/obj/structure/reagent_dispensers/fueltank,
-/obj/item/weldingtool/largetank,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 10
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 5
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"eN" = (
-/obj/effect/turf_decal/industrial/warning{
+/obj/effect/turf_decal/miskilamo_small/right{
dir = 1
},
-/obj/machinery/button/door{
- id = "kilocargo";
- name = "Cargo Bay Control";
- pixel_x = 25;
- pixel_y = 7;
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/machinery/atmospherics/pipe/simple/general/hidden{
dir = 10
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"eo" = (
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
},
-/obj/effect/turf_decal/industrial/stand_clear,
-/obj/machinery/button/shieldwallgen{
- dir = 8;
- pixel_y = -6;
- pixel_x = 24;
- id = "kiloshield"
+/obj/structure/cable/cyan{
+ icon_state = "0-2"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"eN" = (
+/obj/machinery/light/directional/west,
+/obj/structure/crate_shelf,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"fs" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+ dir = 5
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
},
-/turf/open/floor/mineral/titanium/blue,
-/area/ship/bridge)
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"fu" = (
-/obj/machinery/power/smes/shuttle{
- dir = 4
- },
-/obj/machinery/door/window/westright{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/window/reinforced/spawner,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters{
- id = "kiloengine";
- name = "Engine Shutters";
- dir = 8
- },
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/effect/turf_decal/corner/opaque/black/mono,
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/cargo)
"fv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/structure/cable/cyan{
+ icon_state = "1-10"
},
-/obj/effect/turf_decal/industrial/warning/corner{
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/obj/effect/turf_decal/ntspaceworks_small,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"gp" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/closet/wall/blue/directional/north{
+ name = "Captain's locker"
+ },
+/obj/item/clothing/under/rank/command/captain/suit,
+/obj/item/clothing/under/rank/command/captain/skirt,
+/obj/item/storage/backpack/captain,
+/obj/item/clothing/gloves/color/white,
+/obj/item/clothing/shoes/sneakers/brown,
+/obj/item/clothing/suit/jacket/leather/duster/command,
+/obj/item/clothing/glasses/cheapsuns,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
+/obj/item/ammo_box/a12g/rubbershot,
+/obj/item/gun/ballistic/shotgun/doublebarrel/presawn{
+ spawnwithmagazine = 0
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
+/obj/structure/cable/pink{
+ icon_state = "4-10"
},
-/turf/open/floor/mineral/titanium/blue,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"gs" = (
-/obj/effect/turf_decal/industrial/warning{
+/obj/structure/cable/pink{
+ icon_state = "4-10"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 1
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/cable/pink{
+ icon_state = "0-10"
},
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+ dir = 6
},
-/obj/machinery/airalarm/directional/north,
-/obj/effect/turf_decal/ntspaceworks_small/right,
+/obj/item/cigbutt,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/area/ship/engineering)
"gC" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/power/terminal{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -3;
+ pixel_y = 8
},
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 4
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
+/obj/structure/table,
+/obj/machinery/light/small/directional/west,
+/obj/item/clothing/glasses/welding{
+ pixel_x = 5;
+ pixel_y = -9
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"hh" = (
-/obj/effect/decal/cleanable/greenglow,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "engine fuel pump"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/structure/chair,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"hN" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/shower{
- pixel_y = 18
+/obj/machinery/mineral/processing_unit{
+ input_dir = 8
},
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/turf_decal/industrial/warning{
+/obj/structure/railing/corner{
dir = 8
},
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 20;
- pixel_y = -12
- },
-/turf/open/floor/mineral/titanium/yellow,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"hR" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table,
-/obj/item/stack/sheet/glass/fifty{
- pixel_x = -2;
- pixel_y = 2
- },
-/obj/item/stack/rods/fifty,
-/obj/item/storage/toolbox/electrical{
- pixel_x = -3;
- pixel_y = 8
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 6
},
-/obj/item/stock_parts/cell/high{
- charge = 100;
- maxcharge = 15000;
- pixel_x = 3;
- pixel_y = -1
+/obj/effect/turf_decal/arrows{
+ dir = 4
},
-/obj/item/stack/sheet/metal/fifty,
-/turf/open/floor/mineral/plastitanium,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"hS" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/shuttle{
- name = "Bunk A"
+/obj/structure/chair/sofa/brown/old/left/directional/east,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
},
-/obj/machinery/door/firedoor/border_only{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
},
-/obj/machinery/door/firedoor/border_only,
-/turf/open/floor/mineral/plastitanium,
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"ig" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/shuttle{
- name = "Bathroom"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/radio/intercom/directional/east,
+/obj/item/mop{
+ pixel_x = 17
},
-/obj/machinery/door/firedoor/border_only{
- dir = 1
+/obj/item/reagent_containers/glass/bucket{
+ list_reagents = list(/datum/reagent/water = 20);
+ pixel_x = 8;
+ pixel_y = 7
},
-/obj/machinery/door/firedoor/border_only,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew)
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
"im" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/structure/rack,
-/obj/item/storage/box/lights/mixed,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/structure/sign/poster/contraband/random{
- pixel_x = 32
- },
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plating,
-/area/ship/cargo)
+/obj/structure/grille,
+/obj/structure/window/fulltile,
+/turf/open/floor/plating/airless,
+/area/ship/hallway/central)
"io" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/table_frame,
-/obj/item/stack/sheet/metal,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/bridge)
-"iM" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/obj/structure/cable/pink{
+ icon_state = "4-8"
},
-/obj/effect/decal/cleanable/blood/old,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
+ dir = 4
},
-/obj/machinery/conveyor_switch/oneway{
- id = "NTMSLoad";
- name = "Off Ramp";
- pixel_y = 9;
- pixel_x = -8
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/obj/machinery/conveyor_switch/oneway{
- id = "NTMSLoad2";
- name = "On Ramp";
- pixel_x = 4
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/obj/machinery/newscaster/directional/north,
-/turf/open/floor/plating,
-/area/ship/cargo)
-"iT" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"iM" = (
+/obj/structure/cable/pink{
+ icon_state = "2-6"
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/cargo)
+/obj/structure/chair/bench/beige/directional/east{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/neutral/half,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/port)
+"iT" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/food/flour,
+/mob/living/simple_animal/hostile/cockroach,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/crew)
"jl" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/mineral/processing_unit_console{
+ dir = 8;
+ machinedir = 1;
+ output_dir = 4;
+ pixel_x = 20;
+ pixel_y = 0
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 5
},
-/turf/open/floor/mineral/titanium/yellow,
+/obj/effect/turf_decal/industrial/loading,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"jx" = (
-/obj/machinery/autolathe,
-/obj/machinery/status_display{
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "kiloconveyor"
+ },
+/obj/structure/sign/poster/random{
pixel_y = 32
},
-/turf/open/floor/mineral/plastitanium,
+/obj/structure/railing,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"jK" = (
-/obj/item/stack/rods,
-/obj/machinery/holopad/emergency/command,
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/ship/bridge)
-"jU" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table,
-/obj/machinery/cell_charger,
-/obj/item/stack/cable_coil,
-/obj/item/stock_parts/cell/high,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/industrial/warning{
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"kb" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
- dir = 4
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -10;
+ pixel_y = -19
+ },
+/obj/structure/cable/pink{
+ icon_state = "4-8"
},
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
-/area/ship/cargo)
-"kA" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/engineering/engine)
-"mr" = (
-/obj/effect/decal/cleanable/blood/old,
+/area/ship/bridge)
+"jU" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/airalarm/directional/west,
/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-2"
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/port)
+"kb" = (
+/obj/structure/chair/handrail,
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
+ dir = 4
},
-/obj/effect/turf_decal/industrial/warning{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/patterned,
+/area/ship/maintenance/fore)
+"kA" = (
+/turf/closed/wall/r_wall,
+/area/ship/engineering)
+"lw" = (
+/turf/closed/wall/rust,
+/area/ship/bridge)
+"mr" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/eva,
+/obj/item/clothing/head/helmet/space/eva,
+/obj/item/clothing/mask/breath,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
dir = 8
},
-/obj/machinery/light/directional/east,
-/turf/open/floor/mineral/titanium/yellow,
+/obj/effect/turf_decal/box/corners,
+/obj/structure/cable/pink{
+ icon_state = "1-5"
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"mz" = (
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/crew)
+/obj/structure/bed,
+/obj/item/bedsheet/dorms,
+/obj/machinery/light_switch{
+ pixel_x = 7;
+ pixel_y = 20
+ },
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
"nd" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
},
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
+/obj/structure/cable/pink{
+ icon_state = "8-9"
+ },
+/obj/structure/cable/pink{
+ icon_state = "1-5"
},
-/turf/open/floor/mineral/titanium/blue,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"ng" = (
-/obj/effect/decal/cleanable/greenglow,
-/obj/machinery/power/terminal{
- dir = 8
- },
-/obj/structure/cable{
+/obj/structure/cable/pink{
icon_state = "0-4"
},
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 6
- },
-/obj/effect/turf_decal/industrial/warning{
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/power/terminal{
dir = 8
},
+/obj/structure/cable/pink{
+ icon_state = "4-5"
+ },
+/obj/item/cigbutt,
/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/area/ship/engineering)
"nJ" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/button/door{
+ dir = 4;
+ id = "kilocargo";
+ name = "blast door control";
+ pixel_x = -20;
+ pixel_y = 7
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plating,
-/area/ship/cargo)
-"nO" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/conveyor{
- dir = 1;
- id = "NTMSLoad";
- name = "off ramp"
+/obj/machinery/button/shieldwallgen{
+ dir = 4;
+ id = "kilofield";
+ pixel_x = -19;
+ pixel_y = -2
},
-/obj/structure/window/reinforced{
- dir = 4
+/obj/item/clothing/head/cone{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/mono{
+ dir = 1
},
-/obj/structure/plasticflaps,
-/turf/open/floor/plating,
/area/ship/cargo)
+"nO" = (
+/turf/closed/wall/r_wall,
+/area/ship/hallway/central)
"oj" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 10
- },
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
+/obj/machinery/cell_charger,
+/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/area/ship/engineering)
"oP" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/tank/toxins{
- dir = 1
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 6
+/obj/item/stack/sheet/mineral/plasma/ten,
+/obj/item/reagent_containers/food/drinks/beer{
+ list_reagents = null;
+ pixel_x = -13;
+ pixel_y = 11
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"pV" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/mob/living/simple_animal/hostile/netherworld/migo{
- environment_smash = 0;
- faction = list("neutral");
- melee_damage_lower = 5;
- melee_damage_upper = 10;
- name = "maurice"
+/obj/machinery/conveyor_switch/oneway{
+ id = "kiloconveyor";
+ layer = 3.09;
+ pixel_x = 11;
+ pixel_y = 14
},
-/turf/open/floor/mineral/titanium/yellow,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"qv" = (
-/obj/machinery/door/poddoor{
- id = "kilocargo";
- name = "NTMS-037 Bay Blast Door"
- },
-/obj/machinery/conveyor{
- dir = 1;
- id = "NTMSLoad";
- name = "off ramp"
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- id = "kiloshield";
+/obj/machinery/door/airlock/external{
dir = 4
},
-/turf/open/floor/plating,
-/area/ship/cargo)
-"qw" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/effect/mapping_helpers/airlock/locked,
-/obj/machinery/atmospherics/pipe/layer_manifold{
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/maintenance/fore)
+"qw" = (
+/obj/machinery/door/airlock/external{
dir = 4
},
-/obj/machinery/door/airlock/external{
- name = "Mining Airlock";
+/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
},
-/turf/open/floor/mineral/plastitanium,
-/area/ship/cargo)
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/maintenance/fore)
"rc" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
+/obj/structure/cable/pink{
+ icon_state = "1-8"
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/turf/open/floor/plating,
-/area/ship/cargo)
+/area/ship/hallway/port)
"rq" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/structure/cable/pink{
+ icon_state = "4-9"
},
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/machinery/door/poddoor{
- id = "kilocargo";
- name = "NTMS-037 Bay Blast Door"
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/pink{
+ icon_state = "4-8"
},
-/turf/open/floor/mineral/plastitanium,
-/area/ship/cargo)
+/turf/open/floor/plating,
+/area/ship/hallway/central)
"rO" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/machinery/door/airlock/glass{
+ dir = 8;
+ name = "Crew Quarters"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen/kitchen)
-"rW" = (
-/obj/machinery/porta_turret/ship/weak{
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/turf/closed/wall/mineral/titanium,
-/area/ship/bridge)
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"rW" = (
+/turf/closed/wall/yesdiag,
+/area/ship/maintenance/fore)
"sD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/structure/chair/sofa/brown/right/directional/south,
-/turf/open/floor/wood{
- icon_state = "wood-broken3"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/area/ship/crew/canteen/kitchen)
+/obj/machinery/computer/helm/viewscreen/directional/south,
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
"sG" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/structure/cable/pink{
+ icon_state = "1-10"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/firealarm/directional/east{
+ pixel_y = -5
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = 7
},
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/machinery/light_switch{
- pixel_x = 13;
- pixel_y = 21
+/obj/structure/cable/pink{
+ icon_state = "6-10"
},
-/turf/open/floor/plasteel/showroomfloor,
-/area/ship/crew)
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
"sW" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/computer/cargo{
+/obj/machinery/computer/cargo/retro{
dir = 8
},
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/mineral/plastitanium,
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
+"tb" = (
+/turf/closed/wall/rust,
+/area/ship/crew/dorm)
+"tW" = (
+/turf/closed/wall/rust,
+/area/ship/crew)
+"vl" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/hallway/port)
"vv" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_bridge";
- name = "Garage DoorCockpit Emergency Blast Door"
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "kilowindows"
},
-/turf/open/floor/plating,
-/area/ship/bridge)
+/turf/open/floor/plating/airless,
+/area/ship/hallway/central)
"vU" = (
-/obj/docking_port/stationary{
- width = 30;
- height = 15;
- dwidth = 15
+/obj/structure/cable/pink{
+ icon_state = "1-2"
},
-/turf/template_noop,
-/area/template_noop)
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
"wc" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/shuttle{
- name = "Ship Lockers"
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
},
-/obj/machinery/door/firedoor/border_only{
- dir = 4
+/obj/item/toy/cards/deck{
+ pixel_y = 22
},
-/obj/machinery/door/firedoor/border_only{
- dir = 8
+/obj/item/reagent_containers/food/snacks/sandwich{
+ pixel_x = -1;
+ pixel_y = 9
},
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"wh" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/crew/dorm)
+"xe" = (
+/obj/machinery/door/airlock/external/glass{
+ dir = 8
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+ dir = 8
},
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew)
-"wh" = (
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/cable/pink{
+ icon_state = "6-10"
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/maintenance/fore)
+"xk" = (
+/turf/closed/wall,
+/area/ship/hallway/central)
+"xn" = (
+/turf/closed/wall/rust,
+/area/ship/hallway/central)
+"xF" = (
+/obj/structure/cable/pink{
+ icon_state = "8-9"
},
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = 11
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen/kitchen)
-"xe" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/external{
- name = "Mining Airlock";
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/cargo)
-"xk" = (
-/obj/structure/table/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/bag/tray,
-/obj/item/reagent_containers/food/snacks/burger/bearger,
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/turf/open/floor/wood{
- icon_state = "wood-broken3"
- },
-/area/ship/crew/canteen/kitchen)
-"xF" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/ship/crew)
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
"yd" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/power/terminal{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
+/obj/structure/cable/pink{
+ icon_state = "4-8"
+ },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/machinery/meter/atmos/layer2,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/area/ship/engineering)
"yn" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet/crate,
-/obj/item/stack/sheet/metal/twenty,
-/obj/item/stack/sheet/glass{
- amount = 10
+/obj/structure/closet/secure_closet/freezer/fridge{
+ populate = 0
},
-/obj/item/storage/box/lights/bulbs,
-/obj/item/stack/sheet/mineral/plasma{
- amount = 10
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -8
},
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable/pink{
+ icon_state = "0-10"
},
-/obj/machinery/light/directional/west,
-/obj/structure/extinguisher_cabinet/directional/south,
-/turf/open/floor/plating,
-/area/ship/cargo)
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/item/reagent_containers/food/snacks/icecreamsandwich,
+/obj/item/reagent_containers/food/snacks/icecreamsandwich,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/crew)
"yF" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_windows";
- name = "Exterior Window Blast Door"
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ship/crew/canteen/kitchen)
+/turf/closed/wall/r_wall,
+/area/ship/crew)
"zc" = (
-/obj/structure/table,
-/obj/effect/turf_decal/trimline/opaque/white/filled/line{
+/obj/structure/curtain,
+/obj/machinery/shower{
dir = 1
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/ration{
- pixel_x = -6;
+/obj/item/soap{
pixel_y = 4
},
-/obj/effect/spawner/lootdrop/ration{
- pixel_x = -6;
- pixel_y = 8
+/obj/item/bikehorn/rubberducky/plasticducky{
+ pixel_x = -9;
+ pixel_y = -7
},
-/obj/item/reagent_containers/food/condiment/enzyme{
- layer = 5;
- pixel_x = 12;
- pixel_y = 6
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 6
},
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/canteen/kitchen)
+/turf/open/floor/plasteel/freezer,
+/area/ship/crew)
"zH" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/effect/turf_decal/siding/wood{
- dir = 2
- },
-/obj/structure/chair/sofa/brown/left/directional/west,
-/turf/open/floor/wood{
- icon_state = "wood-broken6"
- },
-/area/ship/crew/canteen/kitchen)
-"AB" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/external{
- name = "Mining Airlock";
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/cargo)
-"AE" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/shuttle{
- name = "Captain's Quarters"
- },
-/obj/effect/mapping_helpers/airlock/locked,
-/obj/machinery/door/firedoor/border_only{
dir = 4
},
+/obj/structure/cable/pink{
+ icon_state = "5-9"
+ },
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/machinery/door/airlock{
+ dir = 8;
+ name = "Dormitory"
},
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew)
-"AP" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/machinery/turretid{
- icon_state = "control_kill";
- lethal = 1;
- locked = 0;
- name = "Mining Turret control panel";
- pixel_x = -28;
- pixel_y = 6;
- req_access = null
+/obj/effect/turf_decal/siding/wood{
+ color = "#E3994E";
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
+/obj/effect/turf_decal/siding/wood{
+ color = "#E3994E";
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
+/turf/open/floor/wood/yew,
+/area/ship/crew)
+"AB" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"AE" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/shoes/sneakers/black,
+/obj/item/clothing/shoes/sneakers/black,
+/obj/item/clothing/under/utility,
+/obj/item/clothing/under/utility,
+/obj/item/clothing/under/utility/skirt,
+/obj/item/clothing/under/utility/skirt,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/pink{
+ icon_state = "0-4"
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"AP" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump";
+ target_pressure = 500
},
-/turf/open/floor/mineral/titanium/blue,
-/area/ship/bridge)
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"AQ" = (
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/engineering/engine)
+/turf/closed/wall,
+/area/ship/engineering)
"AV" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/power/terminal{
- dir = 8
+/obj/structure/cable/cyan{
+ icon_state = "4-5"
},
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/structure/cable/pink{
+ icon_state = "0-6"
},
-/obj/effect/turf_decal/industrial/warning{
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/power/terminal{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/area/ship/engineering)
"Bm" = (
-/obj/structure/bed,
-/obj/item/bedsheet/captain,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/wood,
-/area/ship/crew)
-"Bu" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_bridge";
- name = "Garage DoorCockpit Emergency Blast Door"
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Bu" = (
+/turf/closed/wall/r_wall/yesdiag,
/area/ship/bridge)
"BP" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 6
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
},
-/turf/open/floor/mineral/titanium/blue,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"BS" = (
-/obj/effect/spawner/structure/window/shuttle,
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
/obj/machinery/door/poddoor{
- id = "whiteship_bridge";
- name = "Garage DoorCockpit Emergency Blast Door";
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
+ dir = 4;
+ id = "kilobridge"
},
-/turf/open/floor/plating,
+/turf/open/floor/plating/airless,
/area/ship/bridge)
+"Ce" = (
+/turf/closed/wall/rust,
+/area/ship/maintenance/fore)
"Co" = (
-/obj/effect/decal/cleanable/oil,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
+/obj/machinery/door/poddoor{
+ id = "kilocargo"
},
-/turf/open/floor/plating,
+/obj/docking_port/mobile{
+ dir = 2;
+ launch_status = 0;
+ name = "Mining Shuttle";
+ port_direction = 8;
+ preferred_direction = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
/area/ship/cargo)
"Cv" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/cable/pink{
+ icon_state = "2-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/turf/open/floor/mineral/titanium/yellow,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/closet/crate/medical,
+/obj/item/clothing/gloves/color/latex/nitrile,
+/obj/item/storage/firstaid/regular,
+/obj/item/roller,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Da" = (
-/obj/structure/chair/comfy/shuttle,
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/mineral/titanium/blue,
-/area/ship/bridge)
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
"Ds" = (
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/folder/yellow{
- pixel_x = -4;
- pixel_y = 6
+/obj/structure/filingcabinet/chestdrawer{
+ dir = 8
},
-/obj/item/paper/crumpled/bloody{
- default_raw_text = "We struck gold, literally. We found some good rocks out near Centurai-II rich with the stuff. Kae said he and Milos found something out while prospecting, some sort of glowing cube. It's jammed in there good, so we're anchoring until we sort this out...";
- pixel_x = 4;
- pixel_y = 4
+/obj/item/folder/blue,
+/obj/item/folder/yellow,
+/obj/item/folder,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/item/computer_hardware/card_slot,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/pink{
+ icon_state = "0-8"
},
-/obj/item/gps{
- gpstag = "NTMS-037";
- pixel_x = -9;
- pixel_y = 4
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 8
},
-/obj/machinery/firealarm/directional/north,
-/obj/item/areaeditor/shuttle,
-/turf/open/floor/mineral/plastitanium,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"Ew" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/random{
- pixel_x = 32
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/structure/chair/sofa/brown/corner/directional/south,
-/obj/machinery/firealarm/directional/north,
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/wood{
- icon_state = "wood-broken"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/light/small/directional/south,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -8;
+ pixel_y = -19
},
-/area/ship/crew/canteen/kitchen)
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/pink{
+ icon_state = "4-6"
+ },
+/obj/item/cigbutt,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
"EG" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/cryopod,
-/obj/machinery/airalarm/directional/east,
-/obj/machinery/light/small/directional/north,
-/obj/machinery/computer/cryopod/directional/west,
-/turf/open/floor/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/confetti,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/crew)
"EU" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/door/airlock/command{
- name = "Ship Control";
- dir = 4
+/obj/structure/cable/pink{
+ icon_state = "1-2"
},
-/obj/machinery/door/firedoor/border_only{
+/obj/item/cigbutt,
+/obj/machinery/computer/cryopod/retro/directional/west,
+/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"GK" = (
+/obj/structure/table,
+/obj/machinery/light_switch{
+ pixel_x = -10;
+ pixel_y = 20
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/item/radio{
+ pixel_y = 5
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/item/radio{
+ pixel_y = 5
},
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/canteen/kitchen)
-"GK" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/item/radio{
+ pixel_y = 5
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
+/obj/item/radio{
+ pixel_y = 5
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
+/obj/item/radio{
+ pixel_y = 5
},
-/turf/open/floor/mineral/titanium/blue,
-/area/ship/bridge)
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
"GM" = (
-/obj/structure/table,
-/obj/machinery/recharger,
-/obj/item/radio/intercom/wideband/directional/north,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/mineral/plastitanium,
+/obj/machinery/computer/crew/retro{
+ dir = 4
+ },
+/obj/structure/cable/pink{
+ icon_state = "4-6"
+ },
+/obj/structure/sign/poster/random{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/corner/opaque/neutral/three_quarters,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"HP" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = 11
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = 7
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/machinery/firealarm/directional/east{
+ pixel_y = -5
},
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen/kitchen)
+/obj/effect/decal/cleanable/confetti,
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
"Ih" = (
-/obj/structure/table,
-/obj/item/wrench,
-/obj/item/tank/internals/emergency_oxygen,
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/light/directional/west,
-/turf/open/floor/mineral/plastitanium,
+/obj/structure/cable/pink{
+ icon_state = "1-6"
+ },
+/obj/structure/ore_box,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Jf" = (
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/engineering/engine)
+/turf/closed/wall/r_wall,
+/area/ship/hallway/port)
+"Jt" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/yesdiag,
+/area/ship/maintenance/fore)
"Kz" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
/obj/structure/rack,
-/obj/item/storage/toolbox/emergency,
-/obj/item/circuitboard/machine/ore_redemption,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
+/obj/item/stack/sheet/plastic/five,
+/obj/item/stack/sheet/glass/twenty,
+/obj/item/stack/sheet/metal/twenty,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
},
-/obj/machinery/light/directional/east,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"KB" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/turf/closed/wall,
+/area/ship/maintenance/fore)
+"KM" = (
+/obj/machinery/atmospherics/components/binary/valve/layer4,
+/obj/effect/decal/cleanable/oil/streak,
+/obj/item/cigbutt,
+/obj/effect/turf_decal/corner/opaque/neutral/half,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/port)
+"KR" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Bay"
},
-/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
- dir = 4
+/obj/structure/cable/pink{
+ icon_state = "1-2"
},
-/turf/open/floor/plating,
-/area/ship/cargo)
-"KM" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/structure/ore_box,
-/obj/effect/turf_decal/industrial/warning/corner{
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/atmospherics/components/binary/pump/layer4{
- dir = 1;
- name = "Scrubbers to Outside"
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"La" = (
+/obj/item/clothing/head/cone{
+ pixel_x = 11;
+ pixel_y = 4
},
-/turf/open/floor/plating,
-/area/ship/cargo)
-"KR" = (
-/obj/structure/table/wood,
-/obj/item/storage/fancy/cigarettes/cigars/havana{
- pixel_y = 5
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = 7
},
-/obj/item/crowbar/red,
-/obj/item/lighter{
- pixel_x = -8;
- pixel_y = 8
+/obj/machinery/firealarm/directional/east{
+ pixel_y = -5
},
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/carpet,
-/area/ship/crew)
-"La" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_windows";
- name = "Exterior Window Blast Door"
+/obj/item/cigbutt,
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/mono{
+ dir = 1
},
-/obj/machinery/door/firedoor/border_only,
-/turf/open/floor/plating,
/area/ship/cargo)
"LC" = (
-/obj/effect/decal/cleanable/greenglow,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/cable/cyan{
+ icon_state = "4-8"
},
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/structure/cable/pink{
+ icon_state = "2-5"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"Mj" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/suit_storage_unit/independent/mining/eva,
-/turf/open/floor/mineral/plastitanium,
+/obj/machinery/mineral/unloading_machine,
+/obj/structure/railing,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"MI" = (
-/obj/machinery/power/smes/shuttle{
- dir = 4
- },
-/obj/machinery/door/window/westright{
- dir = 4
- },
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/structure/window/reinforced/spawner,
+/obj/machinery/power/smes/shuttle,
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/obj/machinery/door/poddoor/shutters{
- id = "kiloengine";
- name = "Engine Shutters";
- dir = 4
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kilothrusters"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
},
/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/area/ship/engineering)
"MY" = (
-/obj/structure/closet/secure_closet/personal,
-/obj/effect/turf_decal/trimline/opaque/white/filled/line{
- dir = 1
- },
-/obj/item/gun/energy/e_gun/mini,
-/obj/item/stock_parts/cell/gun/mini,
-/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/shoes/cowboy,
-/obj/item/clothing/shoes/cowboy,
-/obj/item/clothing/shoes/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/item/clothing/head/cowboy,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/structure/chair/sofa/brown/old/corner/directional/north,
+/obj/structure/sign/poster/random{
+ pixel_x = -32;
+ pixel_y = 0
},
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/mineral/plastitanium,
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Ng" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/obj/structure/cable{
+/obj/structure/cable/pink{
icon_state = "1-8"
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"Nq" = (
-/obj/machinery/conveyor{
- id = "NTMSLoad2";
- name = "on ramp"
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/poddoor{
- id = "kilocargo";
- name = "NTMS-037 Bay Blast Door"
+/obj/structure/cable/pink{
+ icon_state = "4-9"
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/pink{
+ icon_state = "8-10"
},
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- dir = 8;
- id = "kiloshield"
+/mob/living/simple_animal/hostile/netherworld/migo{
+ environment_smash = 0;
+ faction = list("neutral");
+ melee_damage_lower = 5;
+ melee_damage_upper = 10;
+ name = "maurice"
},
/turf/open/floor/plating,
+/area/ship/engineering)
+"Nq" = (
+/turf/closed/wall/r_wall/yesdiag,
/area/ship/cargo)
"NB" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/obj/machinery/status_display{
- pixel_x = -32;
- pixel_y = -32
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Restroom"
},
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen/kitchen)
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
"NI" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 14
},
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
+/obj/structure/mirror{
+ pixel_x = 24;
+ pixel_y = 0
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/structure/toilet{
+ pixel_y = 18
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/machinery/light/small/directional/north{
+ pixel_x = 11
},
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen/kitchen)
-"NT" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4
+/obj/machinery/light_switch{
+ pixel_x = -12;
+ pixel_y = 20
},
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/item/storage/pill_bottle/happy{
+ pixel_x = 12;
+ pixel_y = 12
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
+/mob/living/simple_animal/hostile/cockroach,
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_x = -5
},
-/turf/open/floor/mineral/titanium/blue,
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew)
+"NT" = (
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"NU" = (
-/obj/machinery/conveyor{
- id = "NTMSLoad2";
- name = "on ramp"
- },
-/obj/structure/window/reinforced{
- dir = 8
+/obj/structure/table/wood,
+/obj/structure/cable/pink{
+ icon_state = "2-5"
},
-/turf/open/floor/plating,
-/area/ship/cargo)
-"OH" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
+/obj/item/flashlight/lamp/green{
+ pixel_y = 3
+ },
+/obj/structure/sign/poster/random{
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"Of" = (
+/turf/closed/wall/r_wall,
+/area/ship/maintenance/fore)
+"OH" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/cable/pink{
+ icon_state = "2-10"
},
-/turf/open/floor/mineral/titanium/yellow,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
+"OQ" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/engineering)
"Pg" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/computer/helm{
+/obj/machinery/computer/helm/retro{
dir = 8
},
-/obj/machinery/light/directional/east,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/bridge)
-"PS" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light_switch{
- pixel_y = -23;
- dir = 1
- },
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/closet/crate/internals,
-/obj/item/tank/internals/oxygen,
-/obj/item/tank/internals/oxygen{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/clothing/mask/breath,
-/obj/item/clothing/mask/breath{
- pixel_x = -3;
- pixel_y = 3
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 8
},
-/obj/effect/turf_decal/industrial/warning/corner,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"PJ" = (
+/turf/closed/wall/r_wall/rust,
/area/ship/cargo)
+"PS" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ship/crew)
"PW" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 10
- },
-/turf/closed/wall/mineral/titanium,
-/area/ship/bridge)
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/crew/dorm)
"Qw" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/mapping_helpers/airlock/locked,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/layer_manifold{
- dir = 4
+/obj/structure/sign/warning/docking,
+/turf/closed/wall,
+/area/ship/maintenance/fore)
+"Rq" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "kilowindows"
},
-/obj/machinery/door/airlock/external{
- name = "Mining Airlock";
+/turf/open/floor/plating/airless,
+/area/ship/crew/dorm)
+"RJ" = (
+/obj/structure/chair/stool{
dir = 8
},
-/obj/docking_port/mobile{
- dir = 4;
- launch_status = 0;
- name = "Mining Shuttle";
- preferred_direction = 4;
- port_direction = 2
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
},
-/turf/open/floor/mineral/plastitanium,
-/area/ship/cargo)
-"Rq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen/kitchen)
-"RJ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/machinery/button/door{
+ id = "kilowindows";
+ name = "Window Lockdown";
+ pixel_x = -6;
+ pixel_y = 20
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
+/obj/machinery/button/door{
+ id = "kilobridge";
+ name = "Bridge Lockdown";
+ pixel_x = 6;
+ pixel_y = 20
},
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/machinery/light_switch{
- pixel_x = -13;
- pixel_y = 23
+/obj/structure/cable/pink{
+ icon_state = "2-8"
},
-/turf/open/floor/mineral/titanium/blue,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"Sx" = (
-/obj/structure/closet/secure_closet/freezer{
- locked = 0;
- name = "fridge"
- },
-/obj/item/reagent_containers/food/snacks/sausage,
-/obj/item/reagent_containers/food/snacks/sandwich,
-/obj/effect/turf_decal/trimline/opaque/white/filled/line{
- dir = 1
+/obj/structure/table/reinforced,
+/obj/item/cutting_board{
+ anchored = 1
},
-/obj/item/storage/cans/sixbeer,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/canteen/kitchen)
+/obj/item/melee/knife/kitchen,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/crew)
"Ti" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_windows";
- name = "Exterior Window Blast Door"
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "kilowindows"
},
-/turf/open/floor/plating,
+/turf/open/floor/plating/airless,
/area/ship/crew)
"Tn" = (
-/obj/machinery/power/smes/shuttle{
- dir = 4
- },
-/obj/machinery/door/window/westright{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/window/reinforced/spawner/north,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters{
- id = "kiloengine";
- name = "Engine Shutters";
- dir = 8
+/obj/structure/bed,
+/obj/structure/cable/pink{
+ icon_state = "1-6"
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/obj/item/bedsheet/dorms,
+/obj/machinery/light/directional/west,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
"To" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/reagent_dispensers/watertank,
-/obj/item/reagent_containers/glass/bucket,
-/obj/item/mop,
-/obj/item/storage/bag/trash{
- pixel_x = 6
+/obj/machinery/door/poddoor{
+ id = "kilocargo"
},
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/structure/cable,
-/obj/effect/turf_decal/industrial/warning{
- dir = 2
+/obj/structure/cable/pink{
+ icon_state = "0-6"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 4;
+ id = "kilofield"
},
-/obj/machinery/power/apc/auto_name/directional/south,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"Tr" = (
+/turf/closed/wall/rust,
+/area/ship/engineering)
"TD" = (
-/obj/structure/table,
-/obj/machinery/button/door{
- id = "whiteship_bridge";
- name = "Bridge Blast Door Control";
- pixel_x = -6;
- pixel_y = -2;
- dir = 1
+/obj/machinery/light/directional/south,
+/obj/structure/table/reinforced,
+/obj/item/megaphone/cargo{
+ pixel_x = 4;
+ pixel_y = 5
},
-/obj/machinery/button/door{
- id = "whiteship_windows";
- name = "Windows Blast Door Control";
- pixel_x = -6;
- pixel_y = 8;
- dir = 1
+/obj/item/cigbutt{
+ pixel_x = -17;
+ pixel_y = 5
},
-/obj/item/radio{
- pixel_x = 6;
- pixel_y = 4
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 1
},
-/turf/open/floor/mineral/plastitanium,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"TG" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/decal/cleanable/greenglow,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2,
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/closed/wall,
+/area/ship/hallway/port)
+"TY" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/bridge)
"Ua" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_windows";
- name = "Exterior Window Blast Door"
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "kilowindows"
},
-/obj/machinery/door/firedoor/border_only,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/open/floor/plating/airless,
+/area/ship/engineering)
"Ud" = (
-/obj/effect/turf_decal/box/corners,
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/item/wrench,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/plating,
+/turf/closed/wall,
/area/ship/cargo)
"Un" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor{
- id = "whiteship_windows";
- name = "Exterior Window Blast Door"
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "kilowindows"
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+/turf/open/floor/plating/airless,
+/area/ship/hallway/port)
"Uv" = (
-/obj/structure/frame/computer{
- anchored = 1;
- dir = 1
+/obj/docking_port/stationary{
+ dir = 4;
+ dwidth = 15;
+ height = 15;
+ width = 30
},
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/shard,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/bridge)
+/turf/template_noop,
+/area/template_noop)
"UY" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/wood,
+/obj/structure/chair/sofa/brown/old/right/directional/north,
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Va" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/structure/closet/crate/secure/weapon,
+/obj/structure/cable/pink{
+ icon_state = "6-10"
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/mineral/titanium/yellow,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 2
+ },
+/obj/structure/cable/pink{
+ icon_state = "9-10"
+ },
+/obj/effect/decal/cleanable/oil,
+/obj/item/ammo_box/a12g,
+/obj/item/gun/ballistic/shotgun/doublebarrel/no_mag,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Vd" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/suit_storage_unit/independent/engineering,
-/obj/effect/turf_decal/industrial/warning{
- dir = 6
+/obj/structure/cable/pink{
+ icon_state = "8-10"
},
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
-"Vh" = (
-/obj/structure/frame/computer{
- anchored = 1;
- dir = 1
+/obj/structure/cable/pink{
+ icon_state = "5-10"
},
-/obj/machinery/light/directional/south,
-/obj/machinery/computer/security/telescreen{
- dir = 1;
- name = "NTMS-037 Monitor";
- network = list("ntms");
- pixel_y = -30
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/item/stack/cable_coil/cut,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/bridge)
-"Vq" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 10
+/obj/machinery/atmospherics/components/binary/pump/layer2{
+ dir = 1
},
-/turf/closed/wall/mineral/titanium,
-/area/ship/crew/canteen/kitchen)
-"Vx" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/toilet{
- dir = 4;
- pixel_x = -7
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/light/small/directional/east{
+ pixel_y = 8
},
-/obj/structure/sink{
+/obj/effect/decal/cleanable/oil,
+/obj/machinery/button/door{
dir = 8;
- pixel_x = 14
+ id = "kilothrusters";
+ name = "Thruster Lockdown";
+ pixel_x = 21
},
-/obj/machinery/shower{
- pixel_x = -11;
- pixel_y = 18
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"Vh" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8;
+ piping_layer = 2
},
-/obj/machinery/firealarm/directional/west,
-/obj/machinery/newscaster/directional/north,
-/obj/machinery/light/small/broken/directional/east,
-/turf/open/floor/carpet/blue,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Vq" = (
+/turf/closed/wall/r_wall/yesdiag,
/area/ship/crew)
-"VQ" = (
-/obj/machinery/conveyor{
- dir = 1;
- id = "NTMSLoad";
- name = "off ramp"
+"Vt" = (
+/obj/effect/turf_decal/miskilamo_small{
+ dir = 1
},
-/obj/structure/window/reinforced{
- dir = 4
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"Vx" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/ship/cargo)
+/obj/item/cigbutt,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"VQ" = (
+/obj/effect/turf_decal/miskilamo_small/left{
+ dir = 1
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"We" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/rack,
-/obj/item/storage/belt/utility,
-/obj/item/radio{
- pixel_x = -3;
- pixel_y = 3
+/obj/machinery/suit_storage_unit/inherit,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/pink,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/item/reagent_containers/food/drinks/bottle/absinthe,
+/obj/item/clothing/suit/space/hardsuit/mining/independent,
+/obj/item/clothing/mask/breath,
+/obj/structure/cable/pink{
+ icon_state = "1-5"
},
-/obj/item/radio,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/turf/open/floor/mineral/plastitanium,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Xd" = (
-/obj/structure/chair/comfy/shuttle,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = -7;
+ pixel_y = 4
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 6
+/obj/item/pen/fourcolor,
+/obj/machinery/airalarm/directional/south,
+/obj/item/radio/intercom/wideband/directional/west,
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_x = 10;
+ pixel_y = 7
},
-/turf/open/floor/mineral/titanium/blue,
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"XQ" = (
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 6
+/obj/machinery/cryopod{
+ dir = 8
},
-/obj/item/spacecash/bundle/c200,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/bridge)
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
"XR" = (
-/obj/structure/closet/secure_closet/personal,
-/obj/effect/turf_decal/trimline/opaque/white/filled/line{
- dir = 1
- },
-/obj/effect/decal/cleanable/greenglow,
-/obj/item/stock_parts/cell/gun/mini,
-/obj/item/clothing/under/utility,
-/obj/item/clothing/under/utility,
-/obj/item/clothing/under/utility,
-/obj/item/clothing/under/utility/skirt,
-/obj/item/clothing/under/utility/skirt,
-/obj/item/clothing/under/utility/skirt,
-/obj/item/clothing/suit/toggle/hazard,
-/obj/item/clothing/suit/toggle/hazard,
-/obj/item/clothing/suit/toggle/hazard,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/suit/hazardvest,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/mineral/plastitanium,
+/turf/closed/wall,
+/area/ship/crew)
+"Yn" = (
+/turf/closed/wall/r_wall/rust,
/area/ship/crew)
"Yu" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/ship/cargo)
-"YJ" = (
-/obj/machinery/washing_machine,
-/obj/effect/turf_decal/trimline/opaque/white/filled/line{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/mineral/plastitanium,
+/obj/structure/grille,
+/obj/structure/window/fulltile,
+/obj/structure/curtain/cloth/grey,
+/turf/open/floor/plating/airless,
/area/ship/crew)
-"YL" = (
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+"YJ" = (
+/obj/structure/dresser{
dir = 1
},
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = -9;
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"YL" = (
+/obj/structure/chair/sofa/brown/old/directional/east,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+ dir = 5
},
-/turf/open/floor/plasteel/showroomfloor,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"ZC" = (
-/obj/structure/closet/crate/bin,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/trash/syndi_cakes,
-/obj/item/organ/stomach,
-/obj/machinery/light_switch{
- dir = 1;
- pixel_y = 23
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/effect/turf_decal/industrial/warning/corner{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen/kitchen)
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
"ZG" = (
-/obj/structure/falsewall/titanium,
+/obj/structure/cable/pink{
+ icon_state = "4-9"
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
-/area/ship/crew)
+/area/ship/engineering)
(1,1,1) = {"
aa
aa
-aa
AQ
ak
+AQ
bn
bn
-kA
-bn
bn
+Tr
ak
AQ
aa
@@ -2405,14 +2048,13 @@ aa
(2,1,1) = {"
aa
aa
-aa
-kA
+OQ
ar
-cW
+kA
+MI
+MI
MI
kA
-Tn
-fu
ar
kA
aa
@@ -2421,8 +2063,7 @@ aa
(3,1,1) = {"
aa
aa
-aa
-Jf
+kA
av
bQ
AV
@@ -2430,15 +2071,14 @@ cY
ng
gC
oj
-Un
+Ua
aa
aa
"}
(4,1,1) = {"
aa
aa
-aa
-Jf
+kA
eo
fv
LC
@@ -2446,115 +2086,108 @@ Ng
cM
hh
oP
-Un
+Ua
aa
aa
"}
(5,1,1) = {"
aa
aa
-aa
-Jf
-Jf
+kA
+AQ
gs
aU
Vd
-mz
+fs
ZG
-mz
-mz
+AP
+kA
aa
aa
"}
(6,1,1) = {"
aa
aa
-aa
-Jf
+Ua
cb
yd
cr
-mz
-mz
+AQ
+Vh
cZ
Bm
-Ti
+kA
aa
aa
"}
(7,1,1) = {"
aa
aa
-aa
Ua
aS
ca
+tb
cq
-mz
-KR
-da
-UY
-Ti
+cq
+cq
+cq
+wh
aa
aa
"}
(8,1,1) = {"
aa
aa
-aa
-Ua
+vl
TG
cC
-To
-mz
-mz
+cq
mz
+NU
+Tn
AE
-mz
+wh
PW
aa
"}
(9,1,1) = {"
aa
aa
-aa
Jf
jU
bU
ck
-mz
+sG
Vx
ig
xF
YJ
-Ti
+Rq
aa
"}
(10,1,1) = {"
aa
-aa
-aa
-Jf
+cK
+Un
aJ
bV
-Jf
-mz
-mz
-mz
-sG
XR
-mz
+XR
+zH
+XR
+tW
+XR
+yF
aa
"}
(11,1,1) = {"
aa
-aa
dF
cP
KM
bg
+XR
yn
-mz
EG
hS
YL
@@ -2564,103 +2197,96 @@ aa
"}
(12,1,1) = {"
aa
-ac
-ac
-ac
+Vt
+Un
iM
rc
Yu
-mz
-mz
-mz
+Sx
+iT
+cw
wc
-mz
-mz
+UY
+Ti
aa
"}
(13,1,1) = {"
aa
-qv
VQ
-nO
+Jf
aC
bM
-cK
+XR
PS
-bA
+cW
ZC
HP
aZ
-bA
+yF
Vq
"}
(14,1,1) = {"
-vU
-rq
-iT
-de
-bL
+aa
+fu
+ac
+Ud
bX
Ud
-nJ
-cV
+XR
+XR
rO
-wh
+tW
NB
-Sx
-yF
+XR
+Yn
"}
(15,1,1) = {"
-aa
Nq
-NU
+ac
am
eN
bY
cB
-Co
+im
dt
sD
-xk
+xn
NI
zc
-bA
+yF
"}
(16,1,1) = {"
-aa
-ac
-ac
-ac
-ac
+To
+nJ
+da
+AB
bZ
Kz
im
bA
Ew
-zH
-Rq
-dc
-yF
+xk
+xk
+xk
+nO
"}
(17,1,1) = {"
-aa
-aa
-ac
+Co
+cV
Ih
-ac
+Da
bG
-ac
-ac
-bA
-bA
-bA
+vU
+KR
+bL
+rq
+de
EU
-bA
-bA
+dc
+vv
"}
(18,1,1) = {"
-aa
-aa
+cf
La
hR
Va
@@ -2669,15 +2295,14 @@ cj
bF
bF
io
-AP
+bF
GK
XQ
vv
"}
(19,1,1) = {"
-aa
-aa
-La
+Nq
+ac
Mj
ay
bT
@@ -2685,14 +2310,13 @@ ci
bF
GM
jK
-fs
-Da
-Vh
bF
+bF
+lw
+bP
"}
(20,1,1) = {"
aa
-aa
ac
jx
pV
@@ -2703,66 +2327,77 @@ RJ
nd
bH
Xd
-Uv
bF
+bP
"}
(21,1,1) = {"
aa
-aa
-ac
+PJ
hN
jl
OH
mr
-cw
+bF
gp
NT
BP
TD
-BS
+bP
Bu
"}
(22,1,1) = {"
aa
-aa
-ac
-ac
-AB
+Of
+Of
+Of
xe
-cf
-bF
+Of
+bP
Ds
sW
Pg
BS
-Bu
+BS
aa
"}
(23,1,1) = {"
aa
-aa
-ac
-bm
KB
+bm
+Ce
kb
cJ
-bF
-bP
-bF
-bF
-Bu
+TY
+TY
+BS
+BS
+BS
aa
aa
"}
(24,1,1) = {"
aa
-aa
rW
-ac
+KB
Qw
qw
-ac
-rW
+qv
+Jt
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(25,1,1) = {"
+aa
+aa
+aa
+aa
+Uv
+aa
+aa
aa
aa
aa
diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm
index 77b0d605e91b..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,
@@ -1361,12 +1358,12 @@
"iR" = (
/obj/structure/table/reinforced,
/obj/item/storage/bag/tray,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/structure/cable{
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 +1566,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,
@@ -2069,7 +2066,7 @@
pixel_y = 1
},
/obj/item/toy/cards/deck,
-/obj/item/reagent_containers/food/snacks/butterbiscuit{
+/obj/item/food/butterbiscuit{
pixel_x = 6;
pixel_y = 6
},
@@ -2347,7 +2344,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
},
@@ -3931,11 +3928,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,
@@ -4751,7 +4748,7 @@
/obj/structure/table/wood,
/obj/item/paper_bin,
/obj/item/pen/fountain,
-/obj/item/kitchen/knife/letter_opener,
+/obj/item/melee/knife/letter_opener,
/obj/item/pen,
/turf/open/floor/carpet/black,
/area/ship/crew/library)
@@ -5617,7 +5614,6 @@
/area/ship/hallway/starboard)
"Mz" = (
/obj/structure/table/wood,
-/obj/item/nullrod,
/turf/open/floor/wood,
/area/ship/crew/chapel)
"MD" = (
@@ -6720,11 +6716,7 @@
/area/ship/hallway/aft)
"TX" = (
/obj/structure/table,
-/obj/item/clothing/shoes/wheelys{
- pixel_x = 4;
- pixel_y = 9
- },
-/obj/item/melee/skateboard/hoverboard{
+/obj/item/skateboard/hoverboard{
pixel_x = -4
},
/turf/open/floor/eighties,
diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm
index d7a3341b8927..26474b9c4c2f 100644
--- a/_maps/shuttles/independent/independent_mudskipper.dmm
+++ b/_maps/shuttles/independent/independent_mudskipper.dmm
@@ -9,7 +9,7 @@
icon_state = "0-1"
},
/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"ag" = (
/obj/machinery/power/shuttle/engine/electric{
@@ -18,34 +18,27 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/turf/open/floor/plating,
+/turf/open/floor/engine/hull,
/area/ship/engineering/engine)
"ak" = (
-/obj/effect/turf_decal/siding/wood/end{
- dir = 8;
- color = "#543C30"
- },
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
/obj/structure/extinguisher_cabinet/directional/south,
-/obj/structure/cable{
- icon_state = "1-8"
- },
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/wood/walnut,
+/obj/effect/turf_decal/corner/opaque/bottlegreen/full,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"ao" = (
/obj/machinery/power/terminal{
dir = 8
},
/obj/machinery/atmospherics/components/binary/pump{
- name = "Plasma to Engines";
- dir = 1
+ dir = 1;
+ name = "Plasma to Engines"
},
/obj/structure/cable{
icon_state = "1-4"
@@ -53,11 +46,6 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"ar" = (
@@ -70,70 +58,51 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/grimy,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"bS" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/grimy,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
-"bZ" = (
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/door/window/eastleft{
- layer = 3.1
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "mudskipper_engine"
- },
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
"cn" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
},
/obj/machinery/airalarm/directional/east,
/obj/machinery/light_switch{
- pixel_y = 23;
- pixel_x = -3
+ pixel_x = -3;
+ pixel_y = 23
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/patterned,
/area/ship/maintenance)
"cs" = (
/turf/template_noop,
/area/template_noop)
"cx" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
/obj/machinery/door/firedoor/border_only{
dir = 8
},
/obj/effect/turf_decal/miskilamo_small{
dir = 8
},
+/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-10"
+ },
+/turf/open/floor/plasteel/mono{
+ dir = 1
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"cB" = (
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 5
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 6
},
@@ -141,46 +110,42 @@
dir = 4
},
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "4-9"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/grimy,
+/turf/open/floor/carpet,
/area/ship/crew)
"dc" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall,
/area/ship/hallway/central)
"dw" = (
/obj/structure/window/reinforced/spawner,
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
/obj/machinery/button/door{
dir = 8;
- pixel_x = 22;
- pixel_y = 15;
id = "mudskipper_engine";
- name = "Engine Shutters"
+ name = "Engine Shutters";
+ pixel_x = 22;
+ pixel_y = 15
},
/obj/machinery/cell_charger,
/obj/item/storage/toolbox/mechanical,
-/turf/open/floor/plasteel/tech/grid,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"dN" = (
/obj/machinery/modular_computer/console/preset/command{
dir = 8
},
-/obj/effect/turf_decal/corner/transparent/neutral,
/obj/machinery/light_switch{
- pixel_y = 23;
- pixel_x = -3
+ pixel_x = -3;
+ pixel_y = 23
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"dQ" = (
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 6
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
},
@@ -192,8 +157,10 @@
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/grimy,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/carpet,
/area/ship/crew)
"dT" = (
/obj/machinery/suit_storage_unit/inherit,
@@ -207,41 +174,46 @@
dir = 4;
pixel_x = -22
},
+/obj/effect/turf_decal/borderfloor{
+ dir = 6
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"dZ" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
/obj/effect/decal/cleanable/glass,
/obj/structure/extinguisher_cabinet/directional/west{
pixel_y = 5
},
/obj/machinery/button/door{
dir = 4;
- pixel_x = -33;
- pixel_y = -7;
id = "mudskipper_door";
- name = "Cargo Door"
+ name = "Cargo Door";
+ pixel_x = -33;
+ pixel_y = -7
},
/obj/machinery/button/shieldwallgen{
dir = 4;
- pixel_x = -21;
- pixel_y = -7;
id = "mudskipper_shield";
- name = "Cargo Holofield"
+ name = "Cargo Holofield";
+ pixel_x = -21;
+ pixel_y = -7
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/cable{
+ icon_state = "2-10"
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"ec" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"ee" = (
/obj/effect/turf_decal/industrial/warning,
@@ -250,19 +222,15 @@
},
/obj/structure/window/reinforced/spawner/west,
/obj/structure/window/reinforced/spawner/east,
-/turf/open/floor/plasteel/tech/airless,
+/turf/open/floor/engine/hull,
/area/ship/external/dark)
"en" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 10
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"eu" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
/obj/structure/railing{
dir = 8
},
@@ -274,8 +242,12 @@
/obj/structure/cable{
icon_state = "2-4"
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
+"ev" = (
+/turf/closed/wall,
+/area/ship/crew/cryo)
"eL" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -283,21 +255,18 @@
/obj/structure/sign/poster/contraband/smoke{
pixel_x = 32
},
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 4
- },
/obj/item/toy/cards/deck{
pixel_y = 3
},
-/turf/open/floor/wood/walnut,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"eX" = (
/obj/machinery/atmospherics/components/unary/passive_vent,
-/turf/open/floor/engine/hull/reinforced,
+/turf/open/floor/engine/hull,
/area/ship/external/dark)
"gf" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
},
@@ -310,6 +279,10 @@
/obj/structure/cable{
icon_state = "2-8"
},
+/obj/structure/cable{
+ icon_state = "5-6"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/hallway/central)
"gB" = (
@@ -318,17 +291,19 @@
dir = 4;
id = "mudskipper_door"
},
-/turf/open/floor/engine,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/ridged,
/area/ship/cargo)
"gR" = (
/obj/effect/turf_decal/box,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/oil{
icon_state = "floor4"
},
/obj/structure/closet/crate/secure{
- name = "scavenging supplies";
desc = "A secure crate. This one is particularly large.";
+ name = "scavenging supplies";
storage_capacity = 40
},
/obj/item/reagent_containers/glass/chem_jug/thermite,
@@ -349,24 +324,29 @@
/obj/item/circular_saw,
/obj/item/multitool,
/obj/item/stack/marker_beacon/thirty,
-/turf/open/floor/plasteel/tech,
+/obj/item/gun/energy/plasmacutter,
+/obj/structure/cable{
+ icon_state = "2-10"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"gT" = (
-/obj/structure/chair{
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/obj/structure/chair/plastic{
dir = 1
},
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 6
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/wood/walnut,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
+"hn" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ship/external/dark)
"hr" = (
/obj/machinery/power/smes/engineering,
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
/obj/structure/cable{
icon_state = "0-8"
},
@@ -374,20 +354,20 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"hH" = (
-/turf/closed/wall/mineral/plastitanium,
+/turf/closed/wall/yesdiag,
/area/ship/external/dark)
"hX" = (
/obj/structure/grille,
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
"hY" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/structure/cable{
icon_state = "1-8"
},
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"ib" = (
@@ -400,66 +380,67 @@
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/turf/open/floor/engine/hull/reinforced,
+/turf/open/floor/engine/hull,
/area/ship/cargo)
"ic" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/oil{
icon_state = "floor4"
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable{
- icon_state = "0-2"
+ icon_state = "0-6"
},
+/obj/effect/turf_decal/corner/opaque/bottlegreen/full,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"iy" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"iY" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-9"
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
+/obj/structure/sign/poster/random{
+ pixel_y = -32
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
+/obj/structure/chair/handrail{
+ dir = 1
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel,
/area/ship/hallway/central)
+"js" = (
+/turf/closed/wall/rust,
+/area/ship/bridge)
+"jz" = (
+/turf/closed/wall/rust,
+/area/ship/engineering/engine)
"kB" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
},
/obj/machinery/airalarm/directional/west,
/obj/machinery/light_switch{
- pixel_y = 23;
- pixel_x = 3
+ pixel_x = 3;
+ pixel_y = 23
},
-/turf/open/floor/plasteel/showroomfloor,
+/turf/open/floor/plasteel/patterned,
/area/ship/crew/toilet)
"kV" = (
/obj/machinery/vending/coffee,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
/obj/structure/extinguisher_cabinet/directional/west{
pixel_y = -5
},
/obj/machinery/light/dim/directional/north,
+/obj/effect/turf_decal/corner/opaque/neutral/three_quarters,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"kX" = (
@@ -467,33 +448,31 @@
dir = 4
},
/obj/machinery/airalarm/directional/north,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/dim/directional/west{
bulb_power = 0.5
},
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"kY" = (
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/turf/open/floor/engine/hull/reinforced,
+/turf/open/floor/engine/hull,
/area/ship/cargo)
+"lg" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/crew/toilet)
"lj" = (
/obj/machinery/power/shuttle/engine/fueled/plasma{
dir = 4
},
-/turf/open/floor/plating,
+/turf/open/floor/engine/hull,
/area/ship/engineering/engine)
"ma" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
},
-/turf/open/floor/plating,
+/turf/open/floor/engine/hull,
/area/ship/external/dark)
"mt" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
@@ -505,24 +484,14 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/obj/machinery/door/airlock{
- name = "Bathroom"
+ dir = 1;
+ name = "Restroom"
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/dark,
/area/ship/crew/toilet)
"mC" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
},
@@ -532,10 +501,11 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/tech,
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
/area/ship/hallway/central)
"mF" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall/r_wall,
/area/ship/cargo)
"mS" = (
/obj/structure/catwalk,
@@ -550,12 +520,12 @@
dir = 1;
id = "mudskipper_shield"
},
-/turf/open/floor/engine,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/ridged,
/area/ship/cargo)
"nj" = (
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
/obj/structure/sign/warning/vacuum/external{
pixel_y = 28
},
@@ -568,60 +538,45 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/mono{
+ dir = 1
+ },
/area/ship/cargo)
"nm" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/chair,
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 9
- },
-/turf/open/floor/wood/walnut{
- icon_state = "wood-broken7"
- },
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/obj/structure/chair/plastic,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"nx" = (
/obj/machinery/door/airlock/external,
/obj/machinery/atmospherics/pipe/layer_manifold,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/aft)
"nM" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
/obj/machinery/light/small/directional/north{
pixel_x = 6
},
/obj/machinery/computer/helm/viewscreen/computer,
/obj/machinery/airalarm/directional/east,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/box,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"nR" = (
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
dir = 8
},
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"nV" = (
/obj/structure/closet/wall/blue/directional/west{
- secure = 1;
- locked = 1
+ locked = 1;
+ secure = 1
},
/obj/item/gun/energy/laser/scatter,
/obj/item/stock_parts/cell/gun/upgraded,
@@ -639,66 +594,48 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"ot" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/number/four{
dir = 8
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/mono{
+ dir = 1
+ },
/area/ship/cargo)
"ov" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/airalarm/directional/east,
/obj/machinery/photocopier,
/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"oC" = (
-/obj/effect/turf_decal/siding/wood/end{
- dir = 4;
- color = "#543C30"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 8
},
/obj/machinery/firealarm/directional/south,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "4-10"
},
-/turf/open/floor/wood/walnut,
+/obj/effect/turf_decal/corner/opaque/bottlegreen/full,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"oG" = (
-/obj/machinery/door/airlock/grunge{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 8
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
+/obj/effect/turf_decal/industrial/warning/fulltile,
/obj/machinery/door/firedoor/border_only{
dir = 4
},
@@ -708,10 +645,15 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/public/glass{
+ dir = 4;
+ name = "Office"
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"oU" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall,
/area/ship/crew/toilet)
"po" = (
/obj/structure/catwalk,
@@ -725,7 +667,10 @@
/obj/machinery/power/shieldwallgen/atmos/roundstart{
id = "mudskipper_shield"
},
-/turf/open/floor/engine,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/ridged,
/area/ship/cargo)
"pF" = (
/obj/machinery/firealarm/directional/west{
@@ -734,74 +679,72 @@
/obj/machinery/light/small/directional/south,
/obj/structure/table/reinforced,
/obj/structure/bedsheetbin,
-/obj/effect/turf_decal/techfloor{
- dir = 10
- },
-/turf/open/floor/plasteel/tech/grid,
+/turf/open/floor/plasteel/patterned,
/area/ship/maintenance)
"pY" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
-/turf/open/floor/plasteel/grimy,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"qy" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
- },
-/obj/machinery/computer/crew{
- dir = 8;
- icon_state = "computer-right"
- },
/obj/machinery/button/door{
dir = 1;
- pixel_x = -6;
- pixel_y = -21;
+ id = "mudskipper_bridge";
name = "Bridge Lockdown";
- id = "mudskipper_bridge"
+ pixel_x = -6;
+ pixel_y = -21
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/box,
+/obj/machinery/computer/crew/retro{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"qE" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
dir = 4
},
/obj/structure/cable{
icon_state = "2-5"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"qN" = (
-/obj/machinery/cryopod,
-/obj/effect/turf_decal/techfloor{
- dir = 10
+/obj/machinery/cryopod{
+ dir = 8
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/radio/intercom/directional/north{
pixel_x = -3
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/cryo)
"rr" = (
/obj/structure/chair/office{
dir = 8
},
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 22;
pixel_y = -3
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/corner/opaque/bottlegreen/full,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
+"rG" = (
+/turf/closed/wall/r_wall,
+/area/ship/crew/toilet)
"rO" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 9
},
@@ -811,15 +754,10 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/cargo)
"sa" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/chair,
-/obj/effect/turf_decal/siding/wood{
- dir = 5;
- color = "#543C30"
- },
/obj/machinery/newscaster/directional/east{
pixel_y = -6
},
@@ -828,17 +766,20 @@
pixel_x = 22;
pixel_y = 5
},
-/turf/open/floor/wood/walnut,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/obj/structure/chair/plastic,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"sf" = (
-/obj/machinery/computer/helm{
- dir = 8;
- icon_state = "computer-left"
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 8
},
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 6
+/obj/effect/turf_decal/box,
+/obj/machinery/computer/helm/retro{
+ dir = 8
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"sp" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible/layer4{
@@ -848,33 +789,26 @@
/obj/machinery/meter/atmos/layer2{
name = "waste to external meter"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"sA" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
/obj/effect/turf_decal/miskilamo_small/right{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-2"
+/turf/open/floor/plasteel/mono{
+ dir = 1
},
-/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"sH" = (
/obj/structure/catwalk,
/obj/structure/window/reinforced/spawner/east,
/obj/structure/window/reinforced/spawner/west,
-/turf/open/floor/engine/airless,
+/turf/open/floor/engine/hull,
/area/ship/external/dark)
"sI" = (
-/obj/effect/turf_decal/techfloor,
/obj/structure/railing{
dir = 8
},
@@ -890,42 +824,42 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/table/reinforced,
/obj/machinery/microwave,
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/hallway/aft)
"th" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/effect/turf_decal/industrial/traffic{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/traffic,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "2-8"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech/techmaint,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"ti" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/sign/warning/incident{
pixel_x = -32
},
/obj/machinery/computer/cargo/retro{
dir = 4
},
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"tI" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "2-6"
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"tK" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -936,23 +870,13 @@
/obj/structure/cable{
icon_state = "0-8"
},
-/turf/open/floor/plasteel/showroomfloor,
+/turf/open/floor/plasteel/patterned,
/area/ship/crew/toilet)
"uk" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"uz" = (
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4
- },
/obj/structure/reagent_dispensers/fueltank,
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/structure/railing{
@@ -962,17 +886,12 @@
pixel_x = 7;
pixel_y = 28
},
-/turf/open/floor/plasteel/dark,
-/area/ship/cargo)
-"uW" = (
-/obj/machinery/door/airlock/grunge{
- name = "Bridge";
- req_one_access_txt = "20"
- },
-/obj/effect/turf_decal/industrial/warning,
/obj/effect/turf_decal/industrial/warning{
- dir = 1
+ dir = 4
},
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"uW" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/obj/machinery/door/firedoor/border_only{
@@ -983,6 +902,15 @@
dir = 2;
id = "mudskipper_bridge"
},
+/obj/structure/cable{
+ icon_state = "1-5"
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/command{
+ dir = 1;
+ name = "Bridge";
+ req_access_txt = "19"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"vn" = (
@@ -991,11 +919,11 @@
/obj/structure/sign/poster/contraband/punch_shit{
pixel_x = 32
},
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
/obj/item/storage/fancy/donut_box,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/corner/opaque/neutral/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/hallway/aft)
"vI" = (
/obj/structure/cable{
@@ -1007,10 +935,15 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
-/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/plastic,
-/turf/open/floor/plasteel/tech,
+/obj/structure/cable{
+ icon_state = "1-5"
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
+"vP" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/bridge)
"wi" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
@@ -1022,25 +955,24 @@
/obj/structure/cable{
icon_state = "0-1"
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/patterned,
/area/ship/maintenance)
"wj" = (
-/obj/effect/turf_decal/industrial/outline/red,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
},
-/turf/open/floor/plasteel/tech,
+/obj/structure/cable{
+ icon_state = "4-5"
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"ws" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall,
/area/ship/engineering/engine)
"xk" = (
-/obj/effect/turf_decal/techfloor,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
},
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 25;
@@ -1049,6 +981,12 @@
/obj/item/kirbyplants{
icon_state = "plant-14"
},
+/obj/structure/cable{
+ icon_state = "5-9"
+ },
+/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"xo" = (
@@ -1060,9 +998,7 @@
pixel_x = 22;
pixel_y = -6
},
-/turf/open/floor/wood/walnut{
- icon_state = "wood-broken7"
- },
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"xp" = (
/obj/structure/toilet{
@@ -1070,39 +1006,32 @@
},
/obj/machinery/light/dim/directional/south,
/obj/structure/curtain,
-/turf/open/floor/plasteel/showroomfloor,
+/turf/open/floor/plasteel/patterned,
/area/ship/crew/toilet)
"xH" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
/obj/machinery/recharger{
pixel_y = 4
},
-/turf/open/floor/plasteel/tech,
+/obj/structure/table/reinforced,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"xU" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
/obj/machinery/power/terminal{
dir = 1
},
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/east{
bulb_power = 0.2
},
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
+"xZ" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/engineering/engine)
"yg" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
/obj/structure/extinguisher_cabinet/directional/west{
pixel_y = -5
},
@@ -1114,24 +1043,23 @@
pixel_x = -22;
pixel_y = 6
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/corner/opaque/neutral/half,
+/turf/open/floor/plasteel/dark,
/area/ship/hallway/aft)
"yv" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
/obj/structure/grille,
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
+/obj/structure/window/fulltile,
/turf/open/floor/plating,
/area/ship/cargo)
"yB" = (
-/obj/effect/turf_decal/techfloor,
/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable{
icon_state = "0-1"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"yS" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
@@ -1140,10 +1068,14 @@
/obj/structure/cable{
icon_state = "0-1"
},
-/turf/open/floor/plasteel/grimy,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/hallway/aft)
+"yV" = (
+/turf/closed/wall/r_wall/rust,
/area/ship/hallway/aft)
"yY" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/dim/directional/west{
bulb_power = 0.5
},
@@ -1151,63 +1083,68 @@
dir = 1
},
/obj/machinery/portable_atmospherics/canister/toxins,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"zx" = (
/obj/machinery/atmospherics/components/unary/shuttle/heater{
dir = 4
},
-/obj/structure/window/reinforced/spawner/west,
-/obj/structure/window/reinforced/spawner/north,
-/obj/structure/window/reinforced/spawner,
-/obj/structure/window/reinforced/spawner/east,
-/obj/machinery/door/poddoor/shutters{
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/door/poddoor{
dir = 4;
id = "mudskipper_engine"
},
+/obj/structure/window/reinforced{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/ship/engineering/engine)
"zR" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
-/turf/open/floor/plasteel/grimy,
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"zW" = (
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 10
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 9
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/crew/cryo)
"zX" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall/r_wall/rust,
/area/ship/crew/cryo)
+"Ag" = (
+/turf/closed/wall/r_wall,
+/area/ship/hallway/aft)
"Ak" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
},
-/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"AN" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
dir = 4
},
@@ -1215,9 +1152,6 @@
dir = 9
},
/obj/structure/extinguisher_cabinet/directional/east,
-/obj/structure/cable{
- icon_state = "1-8"
- },
/obj/structure/cable{
icon_state = "2-8"
},
@@ -1226,11 +1160,13 @@
pixel_x = 22;
pixel_y = -14
},
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"Bj" = (
-/obj/effect/turf_decal/corner_techfloor_grid,
-/obj/effect/turf_decal/techfloor/corner,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/sign/poster/contraband/hacking_guide{
pixel_y = -32
@@ -1240,27 +1176,27 @@
dir = 8
},
/obj/structure/reagent_dispensers/watertank,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Bn" = (
/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/aft)
"Bw" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/oil{
icon_state = "floor4"
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"BA" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
@@ -1272,10 +1208,8 @@
/obj/machinery/advanced_airlock_controller{
pixel_y = 24
},
-/obj/effect/turf_decal/techfloor{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/aft)
"BW" = (
/obj/effect/turf_decal/box,
@@ -1295,7 +1229,8 @@
/obj/item/storage/pill_bottle/charcoal/less,
/obj/item/reagent_containers/hypospray/medipen/penacid,
/obj/item/reagent_containers/hypospray/medipen/penacid,
-/turf/open/floor/plasteel/tech,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Ch" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
@@ -1307,7 +1242,7 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/turf/open/floor/plasteel/showroomfloor,
+/turf/open/floor/plasteel/patterned,
/area/ship/crew/toilet)
"Cr" = (
/obj/structure/table/reinforced,
@@ -1315,36 +1250,34 @@
dir = 6
},
/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/hallway/aft)
+"Cv" = (
+/turf/closed/wall/r_wall,
+/area/ship/maintenance)
"CG" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/clothing/suit/space/eva,
/obj/item/clothing/head/helmet/space/eva,
/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/hallway/aft)
"Dj" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/effect/turf_decal/industrial/traffic{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/traffic,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech/techmaint,
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Dp" = (
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30"
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
dir = 1
},
@@ -1352,14 +1285,18 @@
dir = 1
},
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "2-8"
},
-/turf/open/floor/wood/walnut{
- icon_state = "wood-broken2"
+/obj/structure/cable{
+ icon_state = "2-9"
},
+/obj/effect/turf_decal/corner/opaque/bottlegreen/full,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"DA" = (
+/turf/closed/wall/r_wall,
/area/ship/bridge)
"DC" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
dir = 1
},
@@ -1370,59 +1307,47 @@
icon_state = "2-8"
},
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "6-8"
},
+/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/hallway/central)
"DS" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
/obj/item/kirbyplants{
icon_state = "plant-21"
},
/obj/machinery/light_switch{
- pixel_y = 23;
- pixel_x = -3
+ pixel_x = -3;
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{
+ dir = 1
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
+"DU" = (
+/turf/closed/wall/r_wall,
+/area/ship/crew/cryo)
"Ed" = (
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
dir = 8
},
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Eg" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/number/eight{
dir = 4
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/mono{
+ dir = 1
+ },
/area/ship/cargo)
"Ey" = (
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 10
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
dir = 8
},
@@ -1433,39 +1358,37 @@
icon_state = "2-4"
},
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "2-9"
},
-/turf/open/floor/plasteel/grimy,
+/turf/open/floor/carpet,
/area/ship/crew)
"EP" = (
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
/obj/machinery/button/shieldwallgen{
dir = 1;
- pixel_x = -6;
- pixel_y = -21;
id = "mudskipper_shield";
- name = "Cargo Holofield"
+ name = "Cargo Holofield";
+ pixel_x = -6;
+ pixel_y = -21
},
/obj/machinery/button/door{
dir = 1;
- pixel_x = 6;
- pixel_y = -21;
id = "mudskipper_door";
- name = "Cargo Door"
+ name = "Cargo Door";
+ pixel_x = 6;
+ pixel_y = -21
},
/obj/effect/turf_decal/number/six{
dir = 8
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/turf/open/floor/plasteel/mono{
+ dir = 1
+ },
/area/ship/cargo)
"EQ" = (
/obj/structure/tank_dispenser/oxygen,
@@ -1474,19 +1397,21 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/dim/directional/north,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/hallway/aft)
"Ft" = (
/obj/structure/bed,
/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -21;
- pixel_x = 3
+ pixel_x = 3;
+ pixel_y = -21
},
-/turf/open/floor/wood/walnut,
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"FN" = (
/obj/machinery/suit_storage_unit/inherit,
@@ -1496,39 +1421,38 @@
},
/obj/item/clothing/suit/space/engineer,
/obj/item/clothing/head/helmet/space/light/engineer,
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Gk" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
/obj/machinery/door/poddoor/shutters/preopen{
dir = 4;
id = "mudskipper_bridge"
},
+/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/ship/bridge)
"Gq" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall,
/area/ship/crew)
"GI" = (
/obj/machinery/cryopod{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor{
- dir = 9
+ dir = 8
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/cryo)
"GW" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/wood/walnut{
- icon_state = "wood-broken7"
+/obj/structure/cable{
+ icon_state = "6-10"
},
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Hk" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 6
},
@@ -1538,37 +1462,29 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"Id" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
/obj/item/stack/sheet/metal/five{
pixel_y = 3
},
/obj/item/stack/sheet/glass/five{
pixel_y = 6
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"IL" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
+ icon_state = "2-8"
},
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "4-8"
},
+/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/hallway/central)
"IP" = (
@@ -1587,18 +1503,17 @@
pixel_y = 3
},
/obj/item/radio{
- pixel_y = 3;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 3
},
/obj/item/radio{
- pixel_y = 3;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 3
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/cryo)
"IU" = (
-/obj/structure/catwalk,
-/turf/open/floor/engine/airless,
+/turf/open/floor/engine/hull,
/area/ship/external/dark)
"JN" = (
/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
@@ -1607,14 +1522,13 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 1
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/aft)
"JS" = (
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
dir = 8
},
@@ -1624,10 +1538,9 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/grimy,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"Kt" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
@@ -1636,14 +1549,19 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 9
},
-/turf/open/floor/plasteel/grimy,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"KA" = (
/obj/structure/window/reinforced/spawner,
/obj/item/paper_bin,
/obj/item/analyzer{
- pixel_y = 3;
- pixel_x = 13
+ pixel_x = 13;
+ pixel_y = 3
},
/obj/item/pen,
/obj/structure/cable{
@@ -1652,17 +1570,14 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/turf/open/floor/plasteel/tech/grid,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"KT" = (
/obj/machinery/washing_machine,
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
-/turf/open/floor/plasteel/tech/grid,
+/obj/effect/turf_decal/box,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
/area/ship/maintenance)
"KU" = (
/obj/machinery/power/apc/auto_name/directional/north,
@@ -1670,11 +1585,14 @@
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/crew/cryo)
"Lw" = (
/obj/machinery/firealarm/directional/west{
@@ -1685,40 +1603,51 @@
pixel_x = -22;
pixel_y = -9
},
-/obj/effect/turf_decal/techfloor,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
/obj/machinery/computer/cryopod/retro/directional/south,
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/crew/cryo)
"LV" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 8
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
dir = 1
},
+/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/hallway/central)
+"LY" = (
+/obj/effect/turf_decal/corner/opaque/neutral/half,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
"Mf" = (
/turf/template_noop,
/area/space)
"Mi" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "6-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-10"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/hallway/central)
"MB" = (
@@ -1734,38 +1663,33 @@
/obj/machinery/power/smes/shuttle/precharged{
dir = 4
},
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/door/window/eastright{
- layer = 3.1
- },
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/machinery/door/poddoor/shutters{
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/door/poddoor{
dir = 4;
id = "mudskipper_engine"
},
+/obj/structure/window/reinforced{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/ship/engineering/engine)
"MK" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall,
/area/ship/maintenance)
+"Ne" = (
+/turf/closed/wall/rust,
+/area/ship/crew)
"Ni" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"Nj" = (
/obj/machinery/door/airlock/external{
@@ -1777,12 +1701,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 4
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/aft)
"Nl" = (
@@ -1790,7 +1709,7 @@
dir = 4
},
/obj/machinery/light/floor,
-/turf/open/floor/engine/hull/reinforced,
+/turf/open/floor/engine/hull,
/area/ship/cargo)
"NJ" = (
/obj/effect/turf_decal/box,
@@ -1812,52 +1731,50 @@
/obj/item/reagent_containers/food/drinks/waterbottle,
/obj/item/reagent_containers/food/drinks/waterbottle,
/obj/item/reagent_containers/food/drinks/waterbottle,
-/turf/open/floor/plasteel/tech,
+/obj/structure/cable{
+ icon_state = "1-6"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"NN" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/turf/open/floor/plasteel/tech,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"NU" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Oc" = (
/obj/item/paper_bin,
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/turf/open/floor/plasteel/tech/grid,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/bottlegreen/full,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"OB" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall,
/area/ship/bridge)
"OD" = (
-/obj/structure/chair{
+/obj/machinery/airalarm/directional/east,
+/obj/structure/chair/plastic{
dir = 8
},
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
+"OR" = (
+/turf/closed/wall/r_wall,
+/area/ship/crew)
"Pr" = (
-/obj/machinery/door/airlock/grunge{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
/obj/machinery/door/firedoor/border_only{
dir = 8
},
@@ -1870,66 +1787,66 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/public/glass{
+ dir = 4;
+ name = "Canteen"
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"PO" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor/corner,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/ship/hallway/central)
"PR" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
/obj/structure/grille,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
+/obj/structure/window/fulltile,
/turf/open/floor/plating,
/area/ship/hallway/aft)
"PU" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Qp" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall,
/area/ship/hallway/aft)
"Qt" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
/obj/structure/grille,
/obj/machinery/atmospherics/pipe/layer_manifold,
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
+/obj/structure/window/fulltile,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"Qu" = (
/obj/machinery/autolathe/hacked,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Qx" = (
/obj/effect/decal/cleanable/glass,
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor/corner,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-9"
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/cable{
+ icon_state = "2-5"
+ },
+/turf/open/floor/plasteel,
/area/ship/hallway/central)
"QF" = (
/obj/machinery/power/terminal{
@@ -1938,10 +1855,6 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"Rc" = (
@@ -1951,38 +1864,39 @@
},
/obj/machinery/button/door{
dir = 1;
- pixel_x = 6;
- pixel_y = -21;
id = "mudskipper_window";
- name = "Window Shutters"
+ name = "Window Shutters";
+ pixel_x = 6;
+ pixel_y = -21
},
/obj/machinery/light/small/directional/west{
- pixel_y = -6;
- bulb_power = 0.6
+ bulb_power = 0.6;
+ pixel_y = -6
+ },
+/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{
+ dir = 8
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"Rl" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table,
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 8
- },
-/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
},
/obj/item/paper/pamphlet{
+ name = "Salvage And You";
pixel_x = -3;
- pixel_y = 2;
- name = "Salvage And You"
+ pixel_y = 2
},
-/turf/open/floor/wood/walnut,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"Rn" = (
/obj/machinery/door/firedoor/border_only,
@@ -1994,15 +1908,16 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/door/airlock/grunge{
- name = "Utility Closet"
+/obj/machinery/door/airlock{
+ name = "Custodial Closet"
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance)
"Rv" = (
/obj/item/gps/mining{
- pixel_y = 6;
- gpstag = "SCAV0"
+ gpstag = "SCAV0";
+ pixel_y = 6
},
/obj/item/clipboard{
pixel_x = 5;
@@ -2020,10 +1935,8 @@
pixel_y = 32
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/turf/open/floor/plasteel/tech/grid,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"RR" = (
/obj/structure/tank_dispenser/oxygen,
@@ -2034,19 +1947,14 @@
/obj/structure/filingcabinet/double,
/obj/item/folder,
/obj/machinery/light/small/directional/west{
- pixel_y = 6;
- bulb_power = 0.6
+ bulb_power = 0.6;
+ pixel_y = 6
},
+/obj/effect/turf_decal/corner/opaque/neutral/three_quarters,
+/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"So" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/door/airlock{
- name = "Crew Quarters"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/machinery/door/firedoor/border_only{
dir = 1
@@ -2056,7 +1964,11 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock{
+ name = "Dormitory"
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"Sq" = (
/obj/structure/curtain,
@@ -2069,10 +1981,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/ship/crew/toilet)
"ST" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
/obj/item/storage/cans/sixbeer,
/obj/effect/spawner/lootdrop/donkpockets,
/obj/structure/closet/secure_closet/freezer{
@@ -2081,17 +1989,18 @@
},
/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/meat/slab,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/corner/opaque/neutral/half,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
/area/ship/hallway/aft)
"Ti" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
dir = 4;
name = "airlock waste injector"
},
-/turf/open/floor/engine/hull/reinforced,
+/turf/open/floor/engine/hull,
/area/ship/external/dark)
"Tn" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -2104,19 +2013,10 @@
/obj/structure/cable{
icon_state = "2-4"
},
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"TV" = (
-/obj/machinery/door/airlock/grunge{
- dir = 4;
- name = "Cargo Bay"
- },
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
/obj/machinery/door/firedoor/border_only{
dir = 4
},
@@ -2132,7 +2032,15 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/tech,
+/obj/structure/cable{
+ icon_state = "5-10"
+ },
+/obj/machinery/door/airlock/mining{
+ dir = 8;
+ name = "Cargo Bay"
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"Ud" = (
/obj/effect/turf_decal/box,
@@ -2144,6 +2052,7 @@
pixel_y = -5
},
/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"Ui" = (
@@ -2151,8 +2060,11 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
},
-/turf/open/floor/plasteel/grimy,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
+"Uo" = (
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/crew/cryo)
"UF" = (
/obj/machinery/door/airlock/engineering{
dir = 4;
@@ -2164,12 +2076,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 8
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
/obj/machinery/door/firedoor/border_only{
dir = 8
},
@@ -2179,7 +2085,8 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"UL" = (
/obj/machinery/suit_storage_unit/inherit,
@@ -2187,6 +2094,10 @@
/obj/machinery/light/directional/west,
/obj/item/clothing/suit/space/engineer,
/obj/item/clothing/head/helmet/space/light/engineer,
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"UZ" = (
@@ -2196,16 +2107,17 @@
/obj/item/flashlight/lamp/green{
pixel_y = 4
},
-/turf/open/floor/wood/walnut,
+/obj/structure/cable{
+ icon_state = "5-6"
+ },
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Vn" = (
/obj/machinery/vending/cigarette,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/wrapping,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
+/obj/effect/turf_decal/corner/opaque/neutral/half,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"Vo" = (
@@ -2216,11 +2128,6 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"Vy" = (
@@ -2229,38 +2136,23 @@
/obj/structure/curtain/bounty,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/dim/directional/north,
-/turf/open/floor/wood/walnut,
+/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"VP" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-10"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/ship/hallway/central)
"VW" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall,
/area/ship/external/dark)
+"Wk" = (
+/turf/closed/wall/rust,
+/area/ship/maintenance)
"Wm" = (
-/obj/machinery/door/airlock/grunge{
- dir = 4;
- name = "Cryogenic Storage"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 4
},
@@ -2270,7 +2162,12 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Cryo Room"
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"Wz" = (
/obj/structure/sink{
@@ -2285,7 +2182,7 @@
/obj/structure/window/reinforced/tinted/frosted{
dir = 8
},
-/turf/open/floor/plasteel/showroomfloor,
+/turf/open/floor/plasteel/patterned,
/area/ship/crew/toilet)
"Xc" = (
/obj/machinery/blackbox_recorder,
@@ -2293,35 +2190,46 @@
/obj/machinery/light/small/directional/north{
pixel_x = -6
},
+/obj/effect/turf_decal/box,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"Xh" = (
/obj/structure/table/reinforced,
-/obj/effect/turf_decal/techfloor,
/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable{
icon_state = "0-1"
},
+/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"Xk" = (
-/obj/effect/turf_decal/industrial/outline/red,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Xm" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
/obj/structure/grille,
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
+/obj/structure/window/fulltile,
/turf/open/floor/plating,
/area/ship/hallway/aft)
+"XI" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/cargo)
"XK" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
dir = 1
@@ -2330,26 +2238,22 @@
dir = 10
},
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "6-8"
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"XU" = (
-/obj/structure/chair{
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/obj/structure/chair/plastic{
dir = 1
},
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30"
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 10;
- color = "#543C30"
- },
-/turf/open/floor/wood/walnut,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"Yc" = (
/obj/effect/turf_decal/box,
-/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/rack,
/obj/item/gps/mining{
gpstag = "SCAV1"
@@ -2363,20 +2267,23 @@
/obj/item/gps/mining{
gpstag = "SCAV1"
},
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
/obj/item/flashlight/seclite,
/obj/item/flashlight/seclite,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Yd" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
/obj/structure/grille,
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
+/obj/structure/window/fulltile,
/turf/open/floor/plating,
/area/ship/crew)
+"Yi" = (
+/turf/closed/wall/r_wall/yesdiag,
+/area/ship/maintenance)
"Yq" = (
/obj/effect/decal/cleanable/oil{
icon_state = "floor4"
@@ -2386,45 +2293,40 @@
target_pressure = 1000
},
/obj/machinery/atmospherics/components/binary/volume_pump/layer2{
- name = "Scrubbers to External";
- dir = 1
+ dir = 1;
+ name = "Scrubbers to External"
},
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/engine)
+"Yu" = (
+/turf/closed/wall/r_wall,
/area/ship/engineering/engine)
"Yv" = (
/obj/structure/closet/crate/bin,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
/obj/machinery/firealarm/directional/east{
pixel_y = -5
},
/obj/machinery/light/dim/directional/north,
+/obj/effect/turf_decal/corner/opaque/neutral/half,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"YK" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/structure/cable{
+ icon_state = "2-9"
},
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
+/obj/effect/turf_decal/corner/transparent/beige/full,
+/obj/effect/turf_decal/corner/transparent/brown/diagonal,
+/obj/structure/chair/handrail{
+ dir = 8
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"YL" = (
/obj/machinery/power/port_gen/pacman,
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
/obj/structure/cable{
icon_state = "0-1"
},
@@ -2434,7 +2336,6 @@
/area/ship/engineering/engine)
"Zi" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
},
@@ -2442,39 +2343,33 @@
dir = 8
},
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "1-2"
},
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-4"
},
+/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/cargo)
+"Zx" = (
+/turf/closed/wall/r_wall/rust,
+/area/ship/crew)
"ZC" = (
-/obj/effect/turf_decal/siding/wood{
- color = "#543C30";
- dir = 9
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 6
},
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/grimy,
+/turf/open/floor/carpet,
/area/ship/crew)
"ZJ" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/techfloor,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plasteel/dark,
+/obj/structure/chair/plastic{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
/area/ship/hallway/central)
(1,1,1) = {"
@@ -2489,7 +2384,7 @@ ag
ag
lj
ag
-ws
+jz
cs
cs
cs
@@ -2500,16 +2395,16 @@ cs
cs
hX
IU
-ws
-ws
-bZ
+Yu
+Yu
+MF
zx
-bZ
+MF
MF
zx
MF
-ws
-ws
+xZ
+Yu
IU
hX
cs
@@ -2519,7 +2414,7 @@ cs
cs
hX
cs
-ws
+Yu
kX
QF
en
@@ -2528,7 +2423,7 @@ Vo
qE
ao
yY
-ws
+Yu
cs
hX
cs
@@ -2547,7 +2442,7 @@ KA
eu
hY
sI
-ws
+Yu
IU
hX
hX
@@ -2557,7 +2452,7 @@ cs
hX
cs
cs
-ws
+xZ
Ud
Hk
AN
@@ -2566,7 +2461,7 @@ dw
hr
xU
YL
-ws
+Yu
cs
cs
hX
@@ -2575,18 +2470,18 @@ cs
(6,1,1) = {"
hX
IU
-OB
-OB
+DA
+DA
OB
UF
OB
+js
+js
OB
-OB
-OB
-OB
-Qp
-Qp
+js
Qp
+Ag
+Ag
Ti
hX
cs
@@ -2594,7 +2489,7 @@ cs
(7,1,1) = {"
cs
cs
-OB
+DA
Xc
ic
ak
@@ -2613,7 +2508,7 @@ cs
(8,1,1) = {"
cs
cs
-OB
+DA
Rv
Oc
Dp
@@ -2632,18 +2527,18 @@ MB
(9,1,1) = {"
cs
cs
-OB
+vP
nM
rr
oC
-OB
+js
dN
sf
qy
OB
JN
CG
-Qp
+Ag
IU
cs
cs
@@ -2651,8 +2546,8 @@ cs
(10,1,1) = {"
hX
IU
-OB
-OB
+DA
+DA
OB
oG
OB
@@ -2661,8 +2556,8 @@ Gk
Gk
OB
Nj
-Qp
-Qp
+yV
+Ag
IU
hX
cs
@@ -2709,7 +2604,7 @@ cs
hX
cs
cs
-Qp
+Ag
sT
vn
Qp
@@ -2718,7 +2613,7 @@ ar
sa
eL
gT
-Qp
+Ag
cs
cs
hX
@@ -2727,9 +2622,9 @@ cs
(14,1,1) = {"
hX
IU
-Gq
-Gq
-Gq
+OR
+OR
+Ne
Gq
Gq
dc
@@ -2737,8 +2632,8 @@ Pr
dc
oU
oU
-oU
-oU
+rG
+rG
IU
hX
cs
@@ -2746,7 +2641,7 @@ cs
(15,1,1) = {"
cs
cs
-Gq
+OR
Vy
UZ
Ft
@@ -2757,7 +2652,7 @@ Xh
oU
kB
xp
-oU
+rG
cs
cs
cs
@@ -2776,7 +2671,7 @@ Qx
mt
Ch
Wz
-oU
+lg
cs
cs
cs
@@ -2788,14 +2683,14 @@ Yd
xo
cB
dQ
-Gq
+Ne
DS
Mi
ZJ
oU
tK
Sq
-oU
+lg
IU
hX
cs
@@ -2803,18 +2698,18 @@ cs
(18,1,1) = {"
hX
cs
-Gq
+Zx
Gq
Wm
Gq
-Gq
-dc
+Ne
+LY
mC
iY
MK
MK
-MK
-MK
+Wk
+Cv
cs
hX
cs
@@ -2826,14 +2721,14 @@ zX
KU
zW
Lw
-zX
+ev
Vn
DC
PO
Rn
wi
pF
-MK
+Cv
cs
hX
cs
@@ -2841,18 +2736,18 @@ cs
(20,1,1) = {"
hX
IU
-zX
+DU
qN
IP
GI
-zX
+ev
Yv
LV
xk
MK
cn
KT
-MK
+Cv
IU
hX
cs
@@ -2860,18 +2755,18 @@ cs
(21,1,1) = {"
cs
cs
-zX
-zX
-zX
-zX
-zX
+Uo
+DU
+ev
+ev
+ev
dc
TV
dc
MK
MK
-MK
-MK
+Cv
+Yi
cs
cs
cs
@@ -2938,7 +2833,7 @@ cs
hX
IU
mF
-mF
+XI
uz
gR
Xk
@@ -2983,7 +2878,7 @@ gB
gB
gB
mS
-mF
+XI
IU
IU
hX
@@ -2995,7 +2890,7 @@ cs
cs
cs
VW
-hH
+hn
Nl
kY
ib
@@ -3033,14 +2928,14 @@ cs
cs
cs
cs
-hH
-hH
+hn
+hn
cs
cs
cs
cs
hH
-hH
+hn
cs
cs
cs
@@ -3058,7 +2953,7 @@ cs
cs
cs
cs
-hH
+hn
cs
cs
cs
diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm
index 42a9f999f3f7..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)
@@ -845,7 +845,7 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/door/airlock/mining/glass{
- name = "Mech Bay"
+ name = "Exosuit Bay"
},
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
@@ -869,7 +869,7 @@
"kG" = (
/obj/machinery/door/poddoor{
id = "riggs_cargo";
- name = "Mech Bay Blast Door"
+ name = "Exosuit Bay Blast Door"
},
/turf/open/floor/engine/hull/interior,
/area/ship/cargo)
@@ -1179,7 +1179,7 @@
"pv" = (
/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
/obj/structure/table,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"pD" = (
@@ -1488,7 +1488,7 @@
"sT" = (
/obj/machinery/door/poddoor{
id = "riggs_cargo";
- name = "Mech Bay Blast Door"
+ name = "Exosuit Bay Blast Door"
},
/obj/structure/cable{
icon_state = "0-2"
@@ -3309,7 +3309,7 @@
"Oy" = (
/obj/machinery/door/poddoor{
id = "riggs_cargo";
- name = "Mech Bay Blast Door"
+ name = "Exosuit Bay Blast Door"
},
/obj/structure/cable{
icon_state = "0-2"
@@ -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,
@@ -4468,6 +4468,7 @@
/obj/item/storage/toolbox/mechanical,
/obj/item/storage/belt/utility,
/obj/item/clothing/glasses/welding,
+/obj/item/gun/energy/plasmacutter,
/turf/open/floor/plating,
/area/ship/engineering)
diff --git a/_maps/shuttles/independent/independent_schmiedeberg.dmm b/_maps/shuttles/independent/independent_schmiedeberg.dmm
index ce7b407a4731..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/kitchen/knife,
-/obj/item/reagent_containers/food/condiment/saltshaker{
+/obj/item/reagent_containers/condiment/enzyme,
+/obj/item/melee/knife/kitchen,
+/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
},
@@ -2063,8 +2063,8 @@
/obj/item/flashlight/seclite,
/obj/item/flashlight/seclite,
/obj/item/flashlight/seclite,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
/obj/structure/sign/poster/retro/lasergun_new{
pixel_x = -32
},
@@ -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 f147aeb82276..3bf95ea99b6f 100644
--- a/_maps/shuttles/independent/independent_shetland.dmm
+++ b/_maps/shuttles/independent/independent_shetland.dmm
@@ -84,7 +84,7 @@
"aR" = (
/obj/effect/turf_decal/corner/opaque/neutral/half,
/obj/item/cutting_board,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/structure/table/reinforced,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
@@ -131,12 +131,18 @@
dir = 4
},
/obj/item/radio/intercom/directional/south,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering)
"bm" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
+/obj/structure/chair/handrail{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/port)
"bv" = (
@@ -169,6 +175,7 @@
dir = 4
},
/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/chair/handrail,
/turf/open/floor/plating,
/area/ship/hallway/fore)
"bD" = (
@@ -244,7 +251,7 @@
/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"cD" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
@@ -336,6 +343,9 @@
/obj/structure/cable{
icon_state = "5-9"
},
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"cR" = (
@@ -377,6 +387,9 @@
},
/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer5,
/obj/item/radio/intercom/directional/east,
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"dl" = (
@@ -419,6 +432,7 @@
pixel_x = -20;
pixel_y = 5
},
+/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"dT" = (
@@ -458,6 +472,7 @@
/obj/effect/decal/cleanable/cobweb,
/obj/item/trash/candy,
/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"en" = (
@@ -472,6 +487,7 @@
/obj/machinery/door/firedoor/border_only{
dir = 8
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"es" = (
@@ -509,7 +525,7 @@
"ez" = (
/obj/effect/landmark/start/shaft_miner,
/obj/machinery/computer/helm/viewscreen/directional/east,
-/turf/open/floor/plasteel/patterned/cargo_one,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"eC" = (
/obj/machinery/suit_storage_unit/inherit/industrial,
@@ -697,6 +713,9 @@
dir = 9
},
/obj/structure/extinguisher_cabinet/directional/south,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/ship/hallway/starboard)
"gc" = (
@@ -761,6 +780,9 @@
"gt" = (
/obj/machinery/light/directional/south,
/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/fore)
"gF" = (
@@ -835,7 +857,6 @@
/area/ship/hallway/fore)
"hp" = (
/obj/structure/table,
-/obj/machinery/computer/cryopod/directional/west,
/obj/machinery/newscaster/directional/south,
/obj/item/cigbutt{
pixel_x = -10;
@@ -843,6 +864,7 @@
},
/obj/item/cigbutt,
/obj/item/reagent_containers/food/snacks/chips,
+/obj/machinery/computer/cryopod/retro/directional/west,
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/cryo)
"hv" = (
@@ -930,9 +952,6 @@
/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer5{
dir = 5
},
-/obj/structure/cable/yellow{
- icon_state = "4-10"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
@@ -945,6 +964,12 @@
/obj/machinery/atmospherics/pipe/simple/dark/visible{
dir = 10
},
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"ib" = (
@@ -977,6 +1002,7 @@
dir = 8
},
/obj/structure/extinguisher_cabinet/directional/north,
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel,
/area/ship/hallway/port)
"is" = (
@@ -984,7 +1010,7 @@
/obj/effect/turf_decal/corner/transparent/beige/full,
/obj/effect/turf_decal/corner/transparent/brown/diagonal,
/obj/item/toy/redbutton,
-/obj/item/kitchen/knife/plastic,
+/obj/item/melee/knife/plastic,
/obj/item/kitchen/fork/plastic{
pixel_x = 5
},
@@ -1070,6 +1096,9 @@
/obj/effect/turf_decal/corner/transparent/beige/full,
/obj/effect/turf_decal/corner/transparent/brown/diagonal,
/obj/item/radio/intercom/directional/east,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"jj" = (
@@ -1121,6 +1150,7 @@
/obj/effect/turf_decal/corner/opaque/bottlegreen/full,
/obj/machinery/firealarm/directional/west,
/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"jC" = (
@@ -1176,7 +1206,7 @@
/obj/structure/cable{
icon_state = "0-1"
},
-/turf/open/floor/engine/hull/interior,
+/turf/open/floor/plasteel/patterned/ridged,
/area/ship/cargo)
"jY" = (
/turf/closed/wall,
@@ -1227,6 +1257,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
+/obj/structure/chair/handrail,
/turf/open/floor/plating,
/area/ship/hallway/starboard)
"ki" = (
@@ -1235,6 +1266,9 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/ship/hallway/port)
"kt" = (
@@ -1336,6 +1370,9 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
},
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/open/floor/plating,
/area/ship/engineering/engine)
"lu" = (
@@ -1455,7 +1492,7 @@
},
/obj/machinery/button/door{
dir = 1;
- id = "amogusthrusters";
+ id = "shetportthrusters";
name = "Thruster Lockdown";
pixel_y = -21
},
@@ -1513,7 +1550,7 @@
/obj/item/kitchen/fork/plastic{
pixel_x = 5
},
-/obj/item/kitchen/knife/plastic,
+/obj/item/melee/knife/plastic,
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"nt" = (
@@ -1581,6 +1618,9 @@
pixel_x = -25
},
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/port)
"of" = (
@@ -1715,6 +1755,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/fore)
"ph" = (
@@ -1748,6 +1791,7 @@
dir = 1
},
/obj/effect/decal/cleanable/vomit/old,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plasteel/patterned,
/area/ship/crew/toilet)
"pI" = (
@@ -1832,6 +1876,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/layer2{
dir = 1
},
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/starboard)
"qa" = (
@@ -1841,7 +1888,8 @@
"qb" = (
/obj/structure/crate_shelf,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"qg" = (
/obj/structure/closet/secure_closet/engineering_personal{
@@ -1930,6 +1978,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/ship/hallway/central)
"qM" = (
@@ -2144,6 +2195,9 @@
/obj/structure/cable{
icon_state = "1-6"
},
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"sb" = (
@@ -2184,7 +2238,10 @@
/obj/structure/cable{
icon_state = "2-9"
},
-/turf/open/floor/plasteel/patterned/cargo_one,
+/obj/effect/turf_decal/borderfloor{
+ dir = 9
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"su" = (
/obj/structure/disposalpipe/segment,
@@ -2240,7 +2297,7 @@
pixel_y = 5
},
/obj/machinery/button/door{
- id = "amogusthrusters";
+ id = "shetstarboardengine";
name = "Thruster Lockdown";
pixel_y = 24
},
@@ -2408,6 +2465,9 @@
pixel_y = 5
},
/obj/machinery/atmospherics/pipe/simple/dark/visible/layer1,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/aft)
"uM" = (
@@ -2417,6 +2477,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4{
dir = 1
},
+/obj/structure/chair/handrail{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/starboard)
"uO" = (
@@ -2440,6 +2503,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel,
/area/ship/hallway/starboard)
"va" = (
@@ -2518,6 +2582,12 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/fore)
+"vL" = (
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/central)
"vN" = (
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/structure/cable/yellow{
@@ -2549,6 +2619,9 @@
"vV" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/item/kirbyplants/fullysynthetic,
+/obj/structure/sign/poster/random{
+ pixel_y = 32
+ },
/turf/open/floor/carpet/blue,
/area/ship/bridge)
"vX" = (
@@ -2675,7 +2748,13 @@
},
/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)
@@ -2686,9 +2765,6 @@
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"wW" = (
-/obj/structure/cable/yellow{
- icon_state = "1-6"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
},
@@ -2698,6 +2774,12 @@
/obj/machinery/atmospherics/pipe/simple/dark/visible{
dir = 4
},
+/obj/structure/cable/yellow{
+ icon_state = "1-5"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
/turf/open/floor/plating,
/area/ship/engineering/engine)
"xd" = (
@@ -2770,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
},
@@ -2912,6 +2994,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
+/obj/structure/chair/handrail,
/turf/open/floor/plating,
/area/ship/hallway/central)
"yP" = (
@@ -2949,6 +3032,10 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/random{
+ pixel_x = -32;
+ pixel_y = 0
+ },
/turf/open/floor/plasteel/grimy,
/area/ship/security)
"yY" = (
@@ -3092,7 +3179,8 @@
/obj/effect/turf_decal/box,
/obj/item/tank/internals/oxygen/red,
/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/patterned/cargo_one,
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Ab" = (
/obj/structure/catwalk/over/plated_catwalk/dark,
@@ -3115,12 +3203,6 @@
/obj/effect/turf_decal/number/zero{
dir = 8
},
-/obj/structure/cable/yellow{
- icon_state = "5-9"
- },
-/obj/structure/cable/yellow{
- icon_state = "5-10"
- },
/obj/machinery/atmospherics/pipe/layer_manifold/visible{
dir = 4
},
@@ -3147,7 +3229,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"Ax" = (
/obj/structure/table/wood,
@@ -3337,6 +3419,9 @@
"CF" = (
/obj/machinery/light/small/directional/east,
/obj/machinery/atmospherics/components/unary/vent_pump/layer2,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/port)
"CH" = (
@@ -3356,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" = (
@@ -3405,7 +3490,10 @@
/obj/item/pickaxe,
/obj/effect/turf_decal/box,
/obj/machinery/light/small/directional/east,
-/turf/open/floor/plasteel/patterned/cargo_one,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Dm" = (
/obj/machinery/cryopod{
@@ -3537,6 +3625,7 @@
},
/obj/item/radio/intercom/directional/north,
/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel/dark,
/area/ship/engineering/atmospherics)
"EA" = (
@@ -3622,6 +3711,9 @@
/area/ship/crew/janitor)
"ER" = (
/obj/effect/turf_decal/industrial/warning,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/starboard)
"EX" = (
@@ -3634,6 +3726,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel,
/area/ship/hallway/central)
"FE" = (
@@ -3663,7 +3756,7 @@
id = "amogusdoors";
name = "Cargo Bay Blast Door"
},
-/turf/open/floor/engine/hull/interior,
+/turf/open/floor/plasteel/patterned/ridged,
/area/ship/cargo)
"Gg" = (
/obj/machinery/light/dim/directional/south,
@@ -3690,7 +3783,10 @@
/obj/item/clothing/gloves/color/black,
/obj/item/clothing/head/hardhat/mining,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one,
+/obj/effect/turf_decal/borderfloor{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Gt" = (
/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{
@@ -3702,6 +3798,7 @@
/obj/structure/sign/warning/vacuum/external{
pixel_y = 24
},
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"Gw" = (
@@ -3964,6 +4061,7 @@
/obj/machinery/power/terminal{
dir = 1
},
+/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"IE" = (
@@ -3973,6 +4071,9 @@
/obj/structure/sign/warning/vacuum/external{
pixel_y = -21
},
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"IJ" = (
@@ -4107,6 +4208,9 @@
/obj/machinery/atmospherics/pipe/simple/dark/visible/layer1{
dir = 9
},
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/aft)
"JQ" = (
@@ -4185,6 +4289,9 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
+/obj/structure/sign/poster/random{
+ pixel_y = 32
+ },
/turf/open/floor/plating,
/area/ship/hallway/central)
"Kq" = (
@@ -4251,6 +4358,17 @@
/obj/effect/decal/cleanable/oil,
/turf/open/floor/engine/vacuum,
/area/ship/engineering/engine)
+"Li" = (
+/obj/structure/bed,
+/obj/structure/curtain/bounty,
+/obj/item/bedsheet/dorms,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/random{
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
"Ll" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -4308,7 +4426,13 @@
},
/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)
@@ -4428,6 +4552,9 @@
/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
+"Mf" = (
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
"Mk" = (
/obj/structure/table/wood,
/obj/structure/bedsheetbin,
@@ -4435,6 +4562,13 @@
/obj/machinery/newscaster/directional/east,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
+"Ml" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/hallway/starboard)
"Mr" = (
/obj/structure/window/reinforced/fulltile,
/obj/structure/grille,
@@ -4522,9 +4656,6 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/central)
-"MV" = (
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo)
"Na" = (
/turf/closed/wall/rust,
/area/ship/crew/canteen)
@@ -4539,13 +4670,17 @@
"Ne" = (
/obj/structure/crate_shelf,
/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plasteel/patterned/cargo_one,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Ni" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
/obj/item/bedsheet/dorms,
/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/random{
+ pixel_y = 32
+ },
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
"Nl" = (
@@ -4604,6 +4739,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"NR" = (
@@ -4716,6 +4852,8 @@
/obj/item/multitool,
/obj/item/clothing/glasses/welding,
/obj/item/clothing/glasses/welding,
+/obj/item/gun/energy/plasmacutter,
+/obj/item/gun/energy/plasmacutter,
/turf/open/floor/plasteel/dark,
/area/ship/engineering/electrical)
"OU" = (
@@ -4857,7 +4995,13 @@
},
/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)
@@ -4941,6 +5085,15 @@
},
/turf/open/floor/plating,
/area/ship/hallway/fore)
+"Qu" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/hallway/port)
"Qy" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -5013,7 +5166,13 @@
},
/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)
@@ -5076,6 +5235,9 @@
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plating,
/area/ship/hallway/port)
"Ry" = (
@@ -5281,7 +5443,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/turf/open/floor/plasteel/patterned/cargo_one,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Tk" = (
/obj/structure/cable{
@@ -5307,7 +5469,7 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/turf/open/floor/plasteel/patterned/cargo_one,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"TO" = (
/obj/machinery/firealarm/directional/south,
@@ -5347,6 +5509,7 @@
/obj/machinery/door/firedoor/border_only{
dir = 8
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"TX" = (
@@ -5366,6 +5529,9 @@
/obj/effect/turf_decal/corner/transparent/beige/full,
/obj/effect/turf_decal/corner/transparent/brown/diagonal,
/obj/machinery/light/directional/west,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"Ug" = (
@@ -5410,7 +5576,7 @@
/turf/open/floor/plating,
/area/ship/hallway/aft)
"UJ" = (
-/turf/open/floor/plasteel/patterned/cargo_one,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"UT" = (
/obj/machinery/recharger,
@@ -5484,6 +5650,7 @@
},
/obj/machinery/firealarm/directional/north,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel/patterned,
/area/ship/crew/cryo)
"VN" = (
@@ -5521,15 +5688,18 @@
/area/ship/engineering/engine)
"VS" = (
/obj/machinery/light/directional/south,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
"VV" = (
-/obj/structure/cable/yellow{
- icon_state = "2-5"
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"VZ" = (
@@ -5545,7 +5715,8 @@
/obj/structure/cable{
icon_state = "1-6"
},
-/turf/open/floor/plasteel/patterned/cargo_one,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"We" = (
/turf/closed/wall/r_wall/rust/yesdiag,
@@ -5574,7 +5745,8 @@
/obj/structure/crate_shelf,
/obj/machinery/light/small/directional/west,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Wq" = (
/obj/structure/grille,
@@ -5598,7 +5770,7 @@
/obj/structure/cable{
icon_state = "0-1"
},
-/turf/open/floor/engine/hull/interior,
+/turf/open/floor/plasteel/patterned/ridged,
/area/ship/cargo)
"Ws" = (
/obj/effect/turf_decal/corner/transparent/beige/full,
@@ -5621,6 +5793,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
+/obj/structure/chair/handrail{
+ dir = 4
+ },
/turf/open/floor/plasteel/patterned,
/area/ship/crew/toilet)
"WB" = (
@@ -5639,6 +5814,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/patterned,
/area/ship/crew/cryo)
"WG" = (
@@ -5651,6 +5829,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"WM" = (
@@ -5673,6 +5852,9 @@
/area/ship/bridge)
"Xg" = (
/obj/structure/extinguisher_cabinet/directional/south,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/fore)
"Xh" = (
@@ -5730,6 +5912,9 @@
dir = 8
},
/obj/structure/extinguisher_cabinet/directional/east,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"XJ" = (
@@ -5738,6 +5923,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel,
/area/ship/hallway/central)
"XK" = (
@@ -5766,6 +5952,9 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/structure/cable/yellow{
+ icon_state = "4-10"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering/engine)
"XY" = (
@@ -5796,7 +5985,7 @@
/obj/item/kitchen/fork/plastic{
pixel_x = 5
},
-/obj/item/kitchen/knife/plastic,
+/obj/item/melee/knife/plastic,
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"Yp" = (
@@ -5936,6 +6125,10 @@
dir = 8
},
/obj/structure/curtain,
+/obj/structure/sign/poster/random{
+ pixel_x = -32;
+ pixel_y = 0
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"ZJ" = (
@@ -5944,8 +6137,8 @@
},
/obj/structure/curtain,
/obj/item/soap,
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 1
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 9
},
/turf/open/floor/plasteel/freezer,
/area/ship/crew/toilet)
@@ -6469,7 +6662,7 @@ fz
"}
(18,1,1) = {"
BL
-bm
+Qu
CF
XY
we
@@ -6491,7 +6684,7 @@ sk
RP
rJ
pY
-ER
+Ml
iG
OU
"}
@@ -6626,7 +6819,7 @@ Gy
ND
jY
Kn
-ZV
+vL
rr
fW
fW
@@ -6794,7 +6987,7 @@ aI
aI
aI
iz
-ZV
+vL
rr
sX
su
@@ -6835,7 +7028,7 @@ OU
ao
Ok
uh
-Ni
+Li
mJ
mJ
mJ
@@ -6908,7 +7101,7 @@ gq
wQ
MT
pl
-MV
+Mf
xZ
qO
CH
diff --git a/_maps/shuttles/independent/independent_sunskipper.dmm b/_maps/shuttles/independent/independent_sunskipper.dmm
index de92179a11f7..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
},
@@ -441,7 +441,7 @@
pixel_y = 5;
anchored = 1
},
-/obj/item/kitchen/knife{
+/obj/item/melee/knife/kitchen{
pixel_x = -11;
pixel_y = 9
},
@@ -873,8 +873,8 @@
},
/obj/item/pickaxe,
/obj/item/pickaxe,
-/obj/item/kitchen/knife/hunting,
-/obj/item/kitchen/knife/hunting,
+/obj/item/melee/knife/hunting,
+/obj/item/melee/knife/hunting,
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/head/hardhat/mining,
@@ -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 08738bbe821f..020de62890e7 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
},
@@ -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,
@@ -1687,7 +1685,7 @@
/obj/effect/turf_decal/corner/transparent/bar,
/obj/structure/table/reinforced,
/obj/machinery/light/directional/south,
-/obj/item/kitchen/knife/butcher{
+/obj/item/melee/knife/butcher{
pixel_x = -6;
pixel_y = 7
},
@@ -2735,7 +2733,7 @@
/area/ship/crew/crewtwo)
"wA" = (
/obj/structure/table,
-/obj/item/reagent_containers/food/snacks/cakeslice/lime,
+/obj/item/food/cakeslice/lime,
/obj/item/kitchen/fork/plastic{
pixel_x = -11
},
@@ -3002,7 +3000,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
},
@@ -3515,7 +3513,7 @@
/area/ship/crew/hydroponics)
"CH" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/garlicbread,
+/obj/item/food/garlicbread,
/obj/item/reagent_containers/food/snacks/grown/citrus/orange{
pixel_x = -8;
pixel_y = 7
@@ -5415,10 +5413,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{
@@ -6032,11 +6030,11 @@
pixel_x = -11;
pixel_y = 11
},
-/obj/item/reagent_containers/food/snacks/store/bread/banana{
+/obj/item/food/bread/banana{
pixel_x = 14;
pixel_y = 1
},
-/obj/item/reagent_containers/food/snacks/breadslice/banana,
+/obj/item/food/breadslice/banana,
/turf/open/floor/plasteel,
/area/ship/crew/cryo)
"Vg" = (
@@ -6540,10 +6538,6 @@
/obj/effect/turf_decal/techfloor{
dir = 1
},
-/obj/item/disk/tech_disk/major{
- pixel_x = -7;
- pixel_y = -5
- },
/obj/item/disk/tech_disk{
pixel_x = -3;
pixel_y = -2
diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm
index 5925b9c0acdd..74ac142692c6 100644
--- a/_maps/shuttles/inteq/inteq_colossus.dmm
+++ b/_maps/shuttles/inteq/inteq_colossus.dmm
@@ -180,23 +180,6 @@
/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/engine/hull/reinforced/interior,
/area/ship/maintenance/starboard)
-"cd" = (
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/structure/closet/wall/directional/north{
- icon_door = "orange_wall";
- name = "uniform closet"
- },
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
"cq" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -262,6 +245,29 @@
/obj/machinery/newscaster/directional/west,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
+"cT" = (
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/structure/closet/wall/directional/north{
+ icon_door = "orange_wall";
+ name = "uniform closet"
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
"dq" = (
/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
/obj/structure/cable{
@@ -646,6 +652,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
+"gH" = (
+/obj/machinery/porta_turret/ship/inteq{
+ id = "colossus_grid";
+ dir = 4
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew)
"gJ" = (
/obj/effect/turf_decal/siding/thinplating/corner{
dir = 8
@@ -888,6 +901,25 @@
},
/turf/open/floor/plating,
/area/ship/engineering)
+"ja" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 1
+ },
+/obj/machinery/turretid/ship{
+ pixel_y = 24;
+ id = "colossus_grid"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
"jo" = (
/obj/machinery/atmospherics/components/unary/tank/toxins{
piping_layer = 1
@@ -1105,6 +1137,13 @@
/obj/structure/extinguisher_cabinet/directional/south,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/fore)
+"mb" = (
+/obj/machinery/porta_turret/ship/inteq/light{
+ id = "colossus_grid";
+ dir = 5
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/port)
"mq" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -1424,12 +1463,6 @@
/obj/effect/turf_decal/techfloor,
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/cryo)
-"qJ" = (
-/obj/machinery/porta_turret/ship/ballistic{
- dir = 9
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"qK" = (
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -1700,6 +1733,13 @@
/obj/item/pen,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
+"sT" = (
+/obj/machinery/porta_turret/ship/inteq/light{
+ id = "colossus_grid";
+ dir = 5
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew)
"td" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -2027,6 +2067,13 @@
"vH" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/cargo)
+"vJ" = (
+/obj/machinery/porta_turret/ship/inteq{
+ id = "colossus_grid";
+ dir = 5
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/maintenance/port)
"vZ" = (
/obj/effect/turf_decal/industrial/warning/fulltile,
/obj/machinery/door/poddoor{
@@ -2129,12 +2176,6 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
-"xh" = (
-/obj/machinery/porta_turret/ship/ballistic{
- dir = 5
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"xr" = (
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 1
@@ -2400,6 +2441,13 @@
},
/turf/open/floor/plating,
/area/ship/maintenance/port)
+"Bi" = (
+/obj/machinery/porta_turret/ship/inteq{
+ id = "colossus_grid";
+ dir = 9
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/office)
"Bj" = (
/obj/effect/turf_decal/trimline/opaque/yellow/line,
/obj/effect/turf_decal/siding/thinplating,
@@ -2984,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
},
@@ -2997,14 +3042,11 @@
/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)
-"Hu" = (
-/obj/machinery/porta_turret/ship/ballistic{
- dir = 6
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"HD" = (
/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
/obj/structure/cable{
@@ -3278,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)
@@ -3423,13 +3466,13 @@
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 8
},
-/obj/item/ammo_box/magazine/gal{
+/obj/item/ammo_box/magazine/f4_308{
pixel_x = -5
},
-/obj/item/ammo_box/magazine/gal{
+/obj/item/ammo_box/magazine/f4_308{
pixel_x = 5
},
-/obj/item/gun/ballistic/automatic/marksman/gal/inteq{
+/obj/item/gun/ballistic/automatic/marksman/f4/inteq{
pixel_x = -8;
pixel_y = 3
},
@@ -3480,24 +3523,6 @@
/obj/effect/landmark/start/security_officer,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
-"NH" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/obj/machinery/turretid/lethal{
- pixel_y = 22
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/corner/opaque/brown{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
"NP" = (
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/corner/opaque/yellow,
@@ -3533,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,
@@ -3605,6 +3631,13 @@
},
/turf/open/floor/engine/hull/reinforced,
/area/ship/maintenance/starboard)
+"OI" = (
+/obj/machinery/porta_turret/ship/inteq{
+ id = "colossus_grid";
+ dir = 6
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/maintenance/starboard)
"OV" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -3758,6 +3791,13 @@
},
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
+"Qw" = (
+/obj/machinery/porta_turret/ship/inteq{
+ id = "colossus_grid";
+ dir = 10
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security/armory)
"QC" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 10
@@ -3814,12 +3854,6 @@
/obj/machinery/light/directional/north,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
-"QZ" = (
-/obj/machinery/porta_turret/ship/ballistic{
- dir = 10
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"Rb" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
name = "exhaust injector"
@@ -3911,6 +3945,13 @@
/obj/effect/landmark/start/station_engineer,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
+"RZ" = (
+/obj/machinery/porta_turret/ship/inteq/light{
+ id = "talos_grid";
+ dir = 6
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security)
"Sa" = (
/obj/effect/turf_decal/borderfloor{
dir = 4
@@ -3936,13 +3977,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" = (
@@ -4299,10 +4340,10 @@
/obj/item/reagent_containers/spray/pepper,
/obj/item/reagent_containers/spray/pepper,
/obj/item/reagent_containers/spray/pepper,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"WG" = (
@@ -4752,7 +4793,7 @@ XJ
(8,1,1) = {"
XJ
XJ
-xh
+vJ
bo
bo
bo
@@ -4768,7 +4809,7 @@ rl
rl
rl
rl
-Oa
+OI
XJ
"}
(9,1,1) = {"
@@ -4949,7 +4990,7 @@ XJ
"}
(17,1,1) = {"
XJ
-qJ
+Bi
ZB
ZB
ZB
@@ -4967,7 +5008,7 @@ Dq
Dq
Dq
Dq
-QZ
+Qw
"}
(18,1,1) = {"
XJ
@@ -5187,7 +5228,7 @@ XA
XA
XA
XA
-Oa
+RZ
"}
(28,1,1) = {"
Yy
@@ -5213,7 +5254,7 @@ XJ
"}
(29,1,1) = {"
XJ
-Ll
+mb
hD
hD
hD
@@ -5281,7 +5322,7 @@ XJ
XJ
XJ
tX
-NH
+ja
tI
Ae
Sj
@@ -5314,7 +5355,7 @@ fN
fN
Yr
zF
-cd
+cT
GW
vq
gu
@@ -5358,11 +5399,11 @@ XJ
XJ
XJ
XJ
-xh
+sT
xT
xT
xT
-Hu
+gH
XJ
"}
(36,1,1) = {"
diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm
index 491853b5266c..2ab9a9405507 100644
--- a/_maps/shuttles/inteq/inteq_talos.dmm
+++ b/_maps/shuttles/inteq/inteq_talos.dmm
@@ -102,6 +102,13 @@
},
/turf/open/floor/circuit/telecomms/mainframe,
/area/ship/engineering/communications)
+"aC" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "talos_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/maintenance/port)
"aD" = (
/obj/machinery/computer/telecomms/monitor{
network = "irmg_commnet"
@@ -654,6 +661,34 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
+"es" = (
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/hardhat,
+/obj/item/clothing/shoes/combat,
+/obj/item/storage/belt/utility/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/item/clothing/glasses/meson,
+/obj/item/radio/intercom/directional/east,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "eng_secure";
+ name = "artificer's locker";
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/item/gun/energy/plasmacutter,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
"eu" = (
/obj/machinery/cryopod{
dir = 4
@@ -813,6 +848,13 @@
/obj/item/cigbutt,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
+"fs" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "talos_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/communications)
"fC" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/trimline/opaque/yellow/warning{
@@ -874,7 +916,6 @@
icon_state = "0-2"
},
/obj/effect/decal/cleanable/dirt,
-/obj/structure/extinguisher_cabinet/directional/north,
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
@@ -904,33 +945,6 @@
},
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
-"gk" = (
-/obj/item/storage/backpack/industrial,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/under/syndicate/inteq/artificer,
-/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/hardhat,
-/obj/item/clothing/shoes/combat,
-/obj/item/storage/belt/utility/full,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/item/clothing/glasses/meson,
-/obj/item/radio/intercom/directional/east,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "eng_secure";
- name = "artificer's locker";
- req_access_txt = "11";
- req_one_access = null
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering)
"gm" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
@@ -1324,33 +1338,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/engineering)
-"iE" = (
-/obj/item/storage/backpack/industrial,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/under/syndicate/inteq/artificer,
-/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/hardhat,
-/obj/item/clothing/shoes/combat,
-/obj/structure/railing,
-/obj/item/storage/belt/utility/full,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/item/clothing/glasses/meson,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "eng_secure";
- name = "artificer's locker";
- req_access_txt = "11";
- req_one_access = null
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering)
"iM" = (
/obj/effect/turf_decal/industrial/warning{
dir = 4
@@ -1612,42 +1599,6 @@
/obj/structure/sign/warning/securearea,
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/engineering)
-"jY" = (
-/obj/item/storage/backpack/industrial,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/under/syndicate/inteq/artificer,
-/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/hardhat,
-/obj/item/clothing/shoes/combat,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "eng_secure";
- name = "artificer's locker";
- req_access_txt = "11";
- req_one_access = null
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/machinery/light/directional/north,
-/obj/item/storage/belt/utility/full,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/item/clothing/glasses/meson,
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 20;
- pixel_y = 11
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering)
"jZ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -2139,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
},
@@ -2737,6 +2688,20 @@
/obj/item/radio/headset,
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/cryo)
+"qt" = (
+/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/inteq{
+ dir = 5;
+ id = "talos_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/hallway/port)
"qB" = (
/obj/effect/turf_decal/industrial/traffic,
/obj/effect/decal/cleanable/dirt,
@@ -3103,38 +3068,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
-"sM" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/official/ion_carbine{
- pixel_x = -32
- },
-/obj/item/ammo_box/magazine/m12g/small{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/ammo_box/magazine/m12g/small{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/ammo_box/magazine/m12g/small{
- pixel_x = -5
- },
-/obj/item/ammo_box/magazine/m12g/small{
- pixel_x = -5
- },
-/obj/item/ammo_box/magazine/co9mm{
- pixel_x = 5
- },
-/obj/item/ammo_box/magazine/co9mm{
- pixel_x = -5
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
"sN" = (
/obj/effect/turf_decal/industrial/warning{
dir = 8
@@ -3414,23 +3347,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
-"ug" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/retro/lasergun_new{
- pixel_x = -32
- },
-/obj/item/gun/ballistic/shotgun/bulldog/inteq/no_mag{
- pixel_x = -8;
- pixel_y = 8
- },
-/obj/item/gun/ballistic/shotgun/bulldog/inteq/no_mag{
- pixel_x = -12
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
"ul" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
@@ -4165,26 +4081,6 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
-"zf" = (
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/structure/closet{
- icon_door = "orange";
- name = "inteq wardrobe"
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/carpet/black,
-/area/ship/crew/dorm)
"zg" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/lootdrop/grille_or_trash,
@@ -4549,12 +4445,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/engine)
-"Bd" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 9
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"Bh" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -4630,11 +4520,13 @@
},
/obj/structure/crate_shelf,
/obj/structure/closet/crate/medical,
-/obj/item/storage/firstaid/regular{
- pixel_x = 5
+/obj/item/storage/firstaid/brute{
+ pixel_x = -8;
+ pixel_y = 0
},
-/obj/item/storage/firstaid/medical{
- pixel_x = -5
+/obj/item/storage/firstaid/fire{
+ pixel_x = 9;
+ pixel_y = 0
},
/obj/item/storage/box/bodybags,
/turf/open/floor/plasteel/patterned/cargo_one,
@@ -4663,6 +4555,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
+"Cr" = (
+/obj/machinery/porta_turret/ship/inteq/light{
+ id = "talos_grid";
+ dir = 9
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/communications)
"Cs" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -4757,6 +4656,32 @@
},
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
+"CY" = (
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/structure/closet{
+ icon_door = "orange";
+ name = "inteq wardrobe"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
"Dd" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -4896,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,
@@ -4927,6 +4852,13 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/engineering/communications)
+"ED" = (
+/obj/machinery/porta_turret/ship/inteq/light{
+ id = "talos_grid";
+ dir = 10
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/storage)
"EL" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -4936,6 +4868,43 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
+"EQ" = (
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/hardhat,
+/obj/item/clothing/shoes/combat,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "eng_secure";
+ name = "artificer's locker";
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/machinery/light/directional/north,
+/obj/item/storage/belt/utility/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/item/clothing/glasses/meson,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 11
+ },
+/obj/item/gun/energy/plasmacutter,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
"Fe" = (
/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
dir = 8
@@ -5220,12 +5189,6 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/storage)
-"GA" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 5
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"GG" = (
/obj/machinery/light/small/directional/west,
/obj/structure/cable{
@@ -5340,6 +5303,23 @@
"Hq" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/security/armory)
+"Hv" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/retro/lasergun_new{
+ pixel_x = -32
+ },
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq/no_mag{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq/no_mag{
+ pixel_x = -12
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
"HB" = (
/obj/machinery/suit_storage_unit/inherit/industrial,
/obj/item/clothing/suit/space/hardsuit/engine,
@@ -5630,9 +5610,9 @@
pixel_x = -1;
pixel_y = 3
},
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"JT" = (
@@ -5952,9 +5932,6 @@
/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
/turf/open/floor/plating,
/area/ship/engineering/engine)
-"Me" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/template_noop)
"Mf" = (
/obj/structure/chair{
dir = 4
@@ -6243,37 +6220,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/storage)
-"Ok" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "ce";
- name = "honorable artificer's locker";
- req_access_txt = "56"
- },
-/obj/item/clothing/under/syndicate/inteq/artificer,
-/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/storage/backpack/industrial,
-/obj/item/clothing/suit/toggle/industrial,
-/obj/item/clothing/head/hardhat/white,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/gloves/combat,
-/obj/item/megaphone/cargo{
- name = "engineering megaphone"
- },
-/obj/item/stamp/ce{
- name = "honorable artificer's rubber stamp"
- },
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/glasses/welding,
-/obj/item/pipe_dispenser,
-/obj/item/storage/belt/utility/chief{
- name = "honorable artificer's toolbelt"
- },
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering/communications)
"Oq" = (
/obj/effect/turf_decal/corner/opaque/yellow{
dir = 1
@@ -6303,6 +6249,34 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
+"OJ" = (
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/hardhat,
+/obj/item/clothing/shoes/combat,
+/obj/structure/railing,
+/obj/item/storage/belt/utility/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/item/clothing/glasses/meson,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "eng_secure";
+ name = "artificer's locker";
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/item/gun/energy/plasmacutter,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
"OK" = (
/obj/machinery/cryopod{
dir = 8
@@ -6385,12 +6359,6 @@
/obj/structure/closet/crate,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
-"Pw" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 10
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"Py" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -6560,6 +6528,38 @@
},
/turf/open/floor/engine/air,
/area/ship/engineering/engine)
+"QP" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/official/ion_carbine{
+ pixel_x = -32
+ },
+/obj/item/ammo_box/magazine/m12g_bulldog{
+ pixel_x = 5;
+ pixel_y = 5
+ },
+/obj/item/ammo_box/magazine/m12g_bulldog{
+ pixel_x = 5;
+ pixel_y = 5
+ },
+/obj/item/ammo_box/magazine/m12g_bulldog{
+ pixel_x = -5
+ },
+/obj/item/ammo_box/magazine/m12g_bulldog{
+ pixel_x = -5
+ },
+/obj/item/ammo_box/magazine/co9mm{
+ pixel_x = 5
+ },
+/obj/item/ammo_box/magazine/co9mm{
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
"QR" = (
/obj/effect/turf_decal/corner/opaque/yellow,
/obj/effect/turf_decal/corner/opaque/brown{
@@ -6623,6 +6623,13 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/engineering/communications)
+"Rf" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "talos_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security)
"Rg" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -6714,12 +6721,6 @@
},
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
-"RO" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 6
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/template_noop)
"RT" = (
/turf/open/floor/plating/airless,
/area/ship/storage/port)
@@ -6730,12 +6731,6 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/port)
-"RW" = (
-/obj/machinery/turretid/lethal{
- pixel_y = 32
- },
-/turf/open/floor/carpet/orange,
-/area/ship/bridge)
"RY" = (
/obj/effect/turf_decal/industrial/warning/fulltile,
/obj/machinery/door/airlock/hatch{
@@ -7495,6 +7490,13 @@
},
/turf/open/floor/plating,
/area/ship/engineering/engine)
+"WN" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "talos_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/storage)
"WR" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -7504,12 +7506,6 @@
},
/turf/open/floor/carpet/orange,
/area/ship/bridge)
-"Xa" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 6
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"Xg" = (
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
@@ -7531,6 +7527,13 @@
/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
+"Xo" = (
+/obj/machinery/turretid/ship{
+ pixel_y = 24;
+ id = "talos_grid"
+ },
+/turf/open/floor/carpet/orange,
+/area/ship/bridge)
"Xs" = (
/obj/effect/turf_decal/techfloor{
dir = 4
@@ -7808,6 +7811,38 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/communications)
+"ZA" = (
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "ce";
+ name = "honorable artificer's locker";
+ req_access_txt = "56"
+ },
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/toggle/industrial,
+/obj/item/clothing/head/hardhat/white,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/gloves/combat,
+/obj/item/megaphone/cargo{
+ name = "engineering megaphone"
+ },
+/obj/item/stamp/ce{
+ name = "honorable artificer's rubber stamp"
+ },
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/welding,
+/obj/item/pipe_dispenser,
+/obj/item/storage/belt/utility/chief{
+ name = "honorable artificer's toolbelt"
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/item/gun/energy/plasmacutter,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/communications)
"ZB" = (
/obj/machinery/firealarm/directional/west,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
@@ -8009,7 +8044,7 @@ sw
"}
(5,1,1) = {"
sw
-Bd
+Cr
vp
vp
vp
@@ -8038,7 +8073,7 @@ sV
sV
sV
sV
-Pw
+ED
sw
"}
(6,1,1) = {"
@@ -8048,7 +8083,7 @@ ZU
eC
Zu
SK
-Ok
+ZA
vp
HB
MS
@@ -8152,9 +8187,9 @@ aD
MC
zR
vp
-jY
-gk
-iE
+EQ
+es
+OJ
Xn
gP
qh
@@ -8213,7 +8248,7 @@ cV
"}
(11,1,1) = {"
sw
-GA
+fs
vp
vp
sW
@@ -8242,7 +8277,7 @@ sc
jW
sV
sV
-Xa
+WN
sw
"}
(12,1,1) = {"
@@ -8251,7 +8286,7 @@ MV
sw
og
sW
-zf
+CY
GG
tr
Xg
@@ -8575,9 +8610,9 @@ hT
sq
Rg
Hq
-sM
+QP
bI
-ug
+Hv
Hq
sw
sw
@@ -8590,7 +8625,7 @@ sw
sw
sw
sw
-Me
+sw
lC
Ks
IT
@@ -8663,7 +8698,7 @@ lC
ae
bU
mX
-RW
+Xo
WR
Tj
mX
@@ -8726,7 +8761,7 @@ sw
sw
sw
sw
-Me
+sw
lC
qF
Zj
@@ -8759,8 +8794,8 @@ sw
sw
sw
sw
-Me
-RO
+sw
+sw
lC
UP
gp
@@ -8963,7 +8998,7 @@ sw
sw
sw
sw
-GA
+qz
yp
jj
Gl
@@ -8988,7 +9023,7 @@ as
QR
WG
mK
-Xa
+Rf
sw
sw
sw
@@ -9578,7 +9613,7 @@ sw
sw
sw
sw
-GA
+aC
Pp
fN
Pp
@@ -9597,7 +9632,7 @@ Gq
If
YZ
fK
-Xa
+qt
sw
sw
sw
diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm
index 0b41578dd31b..3f709a261b15 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,
@@ -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" = (
@@ -353,7 +356,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 +369,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 +416,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
@@ -500,8 +509,8 @@
/obj/item/megaphone/sec,
/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/suit/armor/vest,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
/obj/machinery/recharger{
pixel_x = -16;
pixel_y = 5
@@ -539,14 +548,14 @@
},
/obj/effect/turf_decal/borderfloorwhite,
/obj/machinery/button/door{
+ dir = 1;
id = "valor_surgery";
name = "Privacy Shutters";
- pixel_y = 8;
- dir = 1;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 8
},
/turf/open/floor/plasteel/white,
-/area/ship/medical)
+/area/ship/medical/surgery)
"eV" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -640,10 +649,10 @@
/area/ship/hallway/port)
"fO" = (
/obj/structure/closet/secure_closet{
+ icon_door = "prisoner";
icon_state = "prisoner";
name = "shuttle pilot locker";
- req_access = list(3);
- icon_door = "prisoner"
+ req_access = list(3)
},
/obj/item/clothing/head/beret/sec/inteq,
/obj/item/clothing/head/soft/inteq,
@@ -733,8 +742,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 +776,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 +854,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 +879,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 +1040,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 +1085,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 +1121,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 +1211,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 +1366,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 +1379,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 +1523,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 +1554,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 +1600,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 +1621,7 @@
dir = 4
},
/turf/open/floor/plasteel/dark,
-/area/ship/medical)
+/area/ship/medical/surgery)
"oz" = (
/obj/structure/cable{
icon_state = "6-8"
@@ -1658,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" = (
@@ -1719,7 +1774,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 +1844,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 +1905,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 +1949,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)
@@ -1904,8 +1977,11 @@
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/medical)
+/area/ship/medical/surgery)
"rX" = (
/obj/structure/sign/poster/contraband/inteq_gec{
pixel_y = 32
@@ -1951,6 +2027,7 @@
},
/obj/effect/turf_decal/corner_techfloor_gray/full,
/obj/machinery/cell_charger,
+/obj/item/clothing/gloves/color/yellow,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"sc" = (
@@ -1995,8 +2072,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,
@@ -2010,8 +2091,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
@@ -2082,6 +2167,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" = (
@@ -2233,7 +2323,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
@@ -2465,12 +2555,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)
@@ -2726,7 +2815,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
@@ -2767,8 +2856,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;
@@ -2799,6 +2892,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" = (
@@ -2884,11 +2981,11 @@
pixel_y = 4
},
/obj/item/reagent_containers/syringe{
- pixel_y = -4;
- pixel_x = -7
+ pixel_x = -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{
@@ -2967,6 +3064,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" = (
@@ -2983,6 +3084,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{
@@ -3081,7 +3189,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{
@@ -3329,8 +3437,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
@@ -3462,7 +3571,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
@@ -3531,6 +3640,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
@@ -3566,6 +3689,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" = (
@@ -3630,6 +3756,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" = (
@@ -4034,14 +4164,14 @@
/obj/machinery/airalarm/directional/east,
/obj/effect/turf_decal/borderfloorwhite,
/obj/machinery/button/door{
+ dir = 1;
id = "valor_surgery";
name = "Privacy Shutters";
- pixel_y = -23;
- dir = 1;
- pixel_x = -7
+ pixel_x = -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";
@@ -4088,6 +4218,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
},
@@ -4152,11 +4286,25 @@
/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" = (
/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,
@@ -4174,6 +4322,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" = (
@@ -4308,6 +4460,7 @@
/obj/effect/turf_decal/techfloor{
dir = 4
},
+/obj/machinery/light/directional/east,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Ok" = (
@@ -4317,6 +4470,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{
@@ -4350,7 +4511,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)
@@ -4409,14 +4570,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
@@ -4450,10 +4616,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)
@@ -4532,8 +4697,8 @@
/obj/structure/table/glass,
/obj/machinery/computer/med_data/laptop{
dir = 8;
- pixel_y = 7;
- pixel_x = 3
+ pixel_x = 3;
+ pixel_y = 7
},
/turf/open/floor/plasteel/tech,
/area/ship/medical)
@@ -4581,8 +4746,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)
@@ -4598,6 +4767,12 @@
/obj/item/clothing/head/soft/inteq,
/obj/structure/closet/wall/directional/north,
/obj/machinery/airalarm/directional/east,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
"RF" = (
@@ -4697,6 +4872,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
@@ -4801,7 +4979,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{
@@ -4853,6 +5031,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{
@@ -5039,10 +5226,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"
@@ -5124,8 +5313,8 @@
},
/obj/structure/table,
/obj/item/storage/toolbox/emergency/shuttle{
- pixel_y = 9;
- pixel_x = -1
+ pixel_x = -1;
+ pixel_y = 9
},
/obj/item/gps{
pixel_x = 6;
@@ -5214,12 +5403,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" = (
@@ -5255,14 +5450,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
@@ -5297,6 +5494,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" = (
@@ -5474,7 +5677,7 @@ cu
Td
Td
Td
-Td
+BB
Nh
xj
qG
@@ -5588,13 +5791,13 @@ xj
Td
Td
Td
-bB
-LI
+mr
+SL
ns
-LI
+SL
pC
zD
-LI
+SL
"}
(8,1,1) = {"
Zu
@@ -5621,13 +5824,13 @@ xj
Td
Td
Td
-WC
+Ox
WO
gp
-LI
+SL
FY
OK
-LI
+SL
"}
(9,1,1) = {"
Zu
@@ -5654,13 +5857,13 @@ xj
Td
Td
Td
-WC
+Ox
dA
Pe
si
hW
AE
-LI
+SL
"}
(10,1,1) = {"
Zu
@@ -5683,17 +5886,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
@@ -5717,8 +5920,8 @@ Mn
de
KU
zI
-Re
-Re
+hJ
+hJ
xg
Re
Ui
@@ -5726,7 +5929,7 @@ gU
nK
Pg
eU
-LI
+SL
"}
(12,1,1) = {"
tZ
@@ -5751,15 +5954,15 @@ Fa
MR
qk
su
-su
+Nk
+Nk
YL
-su
ux
rO
qR
Yi
bI
-LI
+SL
"}
(13,1,1) = {"
tZ
@@ -5792,7 +5995,7 @@ oy
qR
CF
LJ
-LI
+SL
"}
(14,1,1) = {"
tZ
@@ -5817,15 +6020,15 @@ zT
nX
LI
jG
-Io
+ml
Au
LI
-LI
+SL
dN
-LI
-LI
-LI
-LI
+SL
+SL
+SL
+SL
"}
(15,1,1) = {"
tZ
@@ -5835,9 +6038,9 @@ tZ
Qc
AP
HC
-gq
-gq
-gq
+ou
+ou
+ou
Hw
nX
ct
@@ -5868,8 +6071,8 @@ ME
iN
xl
HC
-gq
-gq
+ou
+ou
gq
xj
Rc
@@ -5901,9 +6104,9 @@ tZ
VD
Um
DT
+UD
Oj
-Oj
-Oj
+UD
DT
DT
DT
@@ -5967,7 +6170,7 @@ mB
ma
CH
jk
-lc
+GT
Sh
lc
ht
@@ -5983,7 +6186,7 @@ hj
id
lc
Sh
-lc
+rh
bR
XD
NZ
diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm
index 9e8f7d6c81f5..92e024ba7bf6 100644
--- a/_maps/shuttles/inteq/inteq_vaquero.dmm
+++ b/_maps/shuttles/inteq/inteq_vaquero.dmm
@@ -244,11 +244,11 @@
req_access_txt = "3"
},
/obj/machinery/light/small/directional/north,
-/obj/item/ammo_box/magazine/m12g/small{
+/obj/item/ammo_box/magazine/m12g_bulldog{
pixel_x = -5;
pixel_y = -5
},
-/obj/item/ammo_box/magazine/m12g/small{
+/obj/item/ammo_box/magazine/m12g_bulldog{
pixel_x = 5
},
/obj/item/ammo_box/magazine/co9mm{
@@ -263,10 +263,7 @@
/obj/item/ammo_box/magazine/co9mm{
pixel_x = -5
},
-/obj/item/gun/ballistic/shotgun/bulldog/inteq/no_mag{
- pixel_x = -4;
- pixel_y = 5;
- },
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq/no_mag,
/obj/item/gun/ballistic/automatic/pistol/commander/inteq,
/obj/item/gun/ballistic/automatic/pistol/commander/inteq{
pixel_y = -5
@@ -1194,25 +1191,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
-"tx" = (
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/structure/closet/wall/directional/north{
- icon_door = "orange_wall";
- name = "uniform closet"
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/carpet/black,
-/area/ship/crew)
"ui" = (
/turf/closed/wall/mineral/plastitanium,
/area/ship/hallway/central)
@@ -1279,18 +1257,6 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/crew/toilet)
-"vd" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 5
- },
-/obj/docking_port/mobile{
- dir = 2;
- launch_status = 0;
- port_direction = 8;
- preferred_direction = 4
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"vg" = (
/obj/docking_port/stationary{
dir = 8;
@@ -1426,12 +1392,6 @@
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/cargo)
-"xX" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 6
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"xZ" = (
/obj/effect/turf_decal/industrial/warning/fulltile,
/obj/machinery/door/airlock/external{
@@ -1584,12 +1544,6 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
-"zP" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 6
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"zR" = (
/obj/structure/chair{
dir = 1
@@ -1978,6 +1932,13 @@
/obj/item/clothing/suit/armor/vest/security/warden/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/security)
+"DT" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "vaquero_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew)
"Eh" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/cargo)
@@ -2065,6 +2026,13 @@
/obj/machinery/firealarm/directional/west,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
+"Fm" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "vaquero_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/office)
"Fu" = (
/obj/machinery/door/airlock{
dir = 4;
@@ -2207,9 +2175,9 @@
pixel_y = 23
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security)
"HN" = (
@@ -2271,19 +2239,6 @@
/obj/machinery/holopad/emergency/command,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
-"Iy" = (
-/obj/effect/turf_decal/corner/opaque/brown{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/turretid{
- pixel_y = 25
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
"IN" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -2567,6 +2522,13 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
+"NO" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "vaquero_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security)
"NR" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -2872,12 +2834,6 @@
/obj/structure/ore_box,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
-"Td" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"Ti" = (
/obj/machinery/vending/coffee,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
@@ -2896,6 +2852,20 @@
/obj/effect/turf_decal/siding/thinplating/dark,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
+"TC" = (
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/turretid/ship{
+ pixel_y = 26;
+ id = "vaquero_grid"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
"TK" = (
/obj/machinery/computer/cargo{
dir = 8
@@ -2936,6 +2906,31 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
+"TX" = (
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/structure/closet/wall/directional/north{
+ icon_door = "orange_wall";
+ name = "uniform closet"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/turf/open/floor/carpet/black,
+/area/ship/crew)
"Uf" = (
/obj/structure/table,
/obj/item/flashlight/lamp/green,
@@ -2955,6 +2950,19 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/carpet/black,
/area/ship/crew)
+"UO" = (
+/obj/docking_port/mobile{
+ dir = 2;
+ launch_status = 0;
+ port_direction = 8;
+ preferred_direction = 4
+ },
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "vaquero_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/medical)
"UV" = (
/obj/machinery/door/airlock/public/glass{
dir = 4;
@@ -3644,7 +3652,7 @@ ec
lr
FK
Ul
-Iy
+TC
In
qe
VI
@@ -3672,7 +3680,7 @@ Ul
sS
bu
Gq
-tx
+TX
jg
LB
"}
@@ -3697,7 +3705,7 @@ bL
Gq
"}
(17,1,1) = {"
-Td
+Fm
VN
VN
VN
@@ -3714,7 +3722,7 @@ id
te
Gq
Gq
-xX
+DT
"}
(18,1,1) = {"
ww
@@ -3880,7 +3888,7 @@ ww
ww
ww
ww
-vd
+UO
lo
lo
lo
@@ -3891,7 +3899,7 @@ ww
te
te
te
-zP
+NO
ww
ww
ww
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
index e5890b401cfa..351e8e2df037 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
@@ -1371,7 +1371,8 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"jH" = (
-/obj/machinery/porta_turret/ship/weak{
+/obj/machinery/porta_turret/ship/nt/light{
+ id = "delta_grid";
dir = 9
},
/turf/closed/wall/mineral/titanium,
@@ -2057,18 +2058,14 @@
pixel_x = -24;
pixel_y = -5
},
-/obj/machinery/turretid{
- icon_state = "control_kill";
- lethal = 1;
- locked = 0;
- pixel_y = -28;
- req_access = null
- },
/obj/structure/table,
/obj/machinery/recharger,
/obj/item/spacecash/bundle/c1000,
/obj/item/spacecash/bundle/c1000,
/obj/item/areaeditor/shuttle,
+/obj/machinery/turretid/ship{
+ pixel_y = -24
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"Aw" = (
@@ -2894,7 +2891,8 @@
/turf/open/floor/plasteel/white,
/area/ship/science/robotics)
"WG" = (
-/obj/machinery/porta_turret/ship/weak{
+/obj/machinery/porta_turret/ship/nt/light{
+ id = "delta_grid";
dir = 4
},
/turf/closed/wall/mineral/titanium,
@@ -3020,7 +3018,8 @@
/turf/open/floor/plasteel/white,
/area/ship/science/robotics)
"YZ" = (
-/obj/machinery/porta_turret/ship/weak{
+/obj/machinery/porta_turret/ship/nt/light{
+ id = "delta_grid";
dir = 10
},
/turf/closed/wall/mineral/titanium,
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
index 351f188e3369..2cb4e641cd53 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
@@ -383,6 +383,7 @@
/obj/item/clothing/under/rank/cargo/miner,
/obj/item/clothing/gloves/color/black,
/obj/item/clothing/glasses/meson,
+/obj/item/gun/energy/plasmacutter,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo/port)
"dC" = (
@@ -4112,6 +4113,7 @@
/obj/item/clothing/under/rank/cargo/miner,
/obj/item/clothing/gloves/color/black,
/obj/item/clothing/glasses/meson,
+/obj/item/gun/energy/plasmacutter,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo/starboard)
"Qc" = (
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 0c860abb9e20..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/caphat/nt,
-/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/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/wood,
-/area/ship/crew/canteen)
-"lz" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/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/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "harrier_garbage"
},
+/turf/open/floor/plating,
+/area/ship/crew/janitor)
+"iV" = (
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "4-8"
},
-/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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/structure/closet/secure_closet{
- icon_state = "atmos";
- name = "\proper atmospheric technician's locker";
- req_access = list(24)
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortTypes = list(9,10,11);
+ tag = "Medbay"
},
-/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/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 = "1-2"
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering/atmospherics)
-"lY" = (
-/obj/structure/table/reinforced,
-/obj/machinery/microwave{
- pixel_y = 5
+/obj/machinery/door/airlock/atmos{
+ dir = 8;
+ name = "Atmospherics";
+ req_access_txt = "10"
},
-/obj/effect/turf_decal/corner/opaque/white{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/white{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel,
-/area/ship/crew/canteen)
-"mf" = (
-/obj/structure/disposalpipe/segment{
+/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/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{
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/turf/open/floor/plasteel,
+/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"
},
-/turf/open/floor/plasteel,
-/area/ship/hallway/central)
-"mj" = (
-/obj/machinery/cryopod,
-/obj/structure/window/reinforced{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/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 = 4
+ dir = 6
},
/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,
+/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 = "0-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
+ icon_state = "4-8"
},
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "2-8"
},
-/obj/effect/turf_decal/siding/wood{
- dir = 8
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ 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/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
-/obj/item/table_bell,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
},
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/machinery/door/poddoor/shutters{
- id = "ospreymed"
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ sortTypes = list(4, 5);
+ tag = "Engineering"
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"oX" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Infirmary";
+/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/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"
+ id = "harrier_garbage"
},
-/obj/item/table_bell,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/door/poddoor/shutters{
- id = "ospreysci"
- },
-/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/clothing/head/bowler,
-/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/food/condiment/peppermill{
- pixel_x = -4;
- pixel_y = 10
- },
-/obj/item/reagent_containers/food/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/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/engineering)
-"ui" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/turf/open/floor/plasteel/dark,
+/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)
-"uk" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/siding/white{
+"qK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/crew/cryo)
-"un" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/area/ship/storage/eva)
+"qO" = (
+/obj/effect/turf_decal/corner/opaque/ntblue/full,
+/obj/effect/turf_decal/corner/opaque/white{
+ dir = 1
},
-/obj/machinery/holopad/emergency/medical,
-/obj/effect/turf_decal/box/white{
- color = "#2CB2E8"
+/turf/open/floor/plasteel,
+/area/ship/hallway/central)
+"qQ" = (
+/turf/closed/wall/mineral/titanium/exterior,
+/area/ship/crew)
+"qX" = (
+/obj/structure/railing{
+ dir = 8
},
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"uq" = (
-/obj/structure/disposalpipe/segment{
+/obj/effect/turf_decal/siding/wideplating/dark{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"rc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel/patterned/grid,
-/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/structure/disposalpipe/segment{
+ dir = 8
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"rf" = (
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 10
},
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/ship/crew/janitor)
-"ux" = (
-/obj/machinery/computer/operating,
-/obj/effect/turf_decal/corner/opaque/pink{
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"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/corner/opaque/white{
dir = 8
},
-/obj/effect/turf_decal/corner/opaque/pink{
- dir = 4
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 12
},
-/obj/effect/turf_decal/corner/opaque/pink{
- dir = 1
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
},
-/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/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/siding/thinplating{
+ dir = 1
},
-/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{
+/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw{
dir = 1
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"st" = (
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Bridge";
+ req_access = list(19, 41)
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering)
-"vl" = (
-/obj/structure/disposalpipe/segment{
- dir = 8
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/trimline/opaque/blue/end,
-/obj/effect/turf_decal/trimline/opaque/blue/line{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"vp" = (
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/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/machinery/light/directional/east,
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"wT" = (
-/obj/machinery/power/shuttle/engine/fueled/plasma{
- dir = 4
+/obj/structure/disposalpipe/segment{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/ship/engineering/atmospherics)
-"wV" = (
-/obj/effect/landmark/start/atmospheric_technician,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
+/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"
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering/atmospherics)
-"wW" = (
-/turf/open/floor/plasteel/stairs/right{
- dir = 4
+/obj/effect/turf_decal/box/white{
+ color = "#2CB2E8"
},
-/area/ship/cargo)
-"wY" = (
+/obj/machinery/light/directional/east,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"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 = 1
+ },
+/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/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
},
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/structure/window/reinforced{
+ dir = 4
},
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/industrial/warning{
+/obj/machinery/door/window/westleft,
+/obj/structure/disposalpipe/trunk{
dir = 1
},
-/obj/machinery/door/poddoor{
- id = "osprey_tank_vent"
+/turf/open/floor/plating,
+/area/ship/cargo)
+"uv" = (
+/obj/machinery/atmospherics/pipe/layer_manifold/visible{
+ dir = 4
},
-/turf/open/floor/engine,
-/area/ship/engineering/atmospherics)
-"xT" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/light_switch{
+ pixel_x = -5;
+ pixel_y = 20
},
-/obj/machinery/camera/autoname{
- dir = 10
+/obj/effect/turf_decal/siding/yellow{
+ dir = 9
},
-/turf/open/floor/plasteel/stairs{
- dir = 4
+/obj/machinery/button/door{
+ dir = 4;
+ id = "harrier_enginevent";
+ name = "Blast Door Control";
+ pixel_x = -25;
+ pixel_y = 1
},
-/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/chair/handrail,
+/turf/open/floor/plasteel,
+/area/ship/engineering/engine)
+"uw" = (
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "5-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/chair/handrail{
+ dir = 1
},
/turf/open/floor/plasteel,
-/area/ship/hallway/central)
-"yc" = (
-/obj/structure/closet/secure_closet{
- icon_state = "med";
- name = "medicine locker"
+/area/ship/hallway/starboard)
+"uy" = (
+/obj/machinery/light/small/directional/north,
+/obj/structure/disposalpipe/segment{
+ dir = 8
},
-/obj/item/storage/firstaid/fire{
- pixel_x = -4;
- pixel_y = 5
+/turf/open/floor/carpet/executive,
+/area/ship/crew/law_office)
+"uz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
},
-/obj/item/storage/firstaid/regular,
-/obj/machinery/button/door{
- dir = 1;
- id = "ospreymed";
- name = "Shutter Control";
- pixel_x = 5;
- pixel_y = -25
- },
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = -5;
- pixel_y = -24
+/obj/machinery/light/directional/east,
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/machinery/camera/autoname{
- dir = 1
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
},
-/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/dark,
+/area/ship/bridge)
+"uB" = (
+/obj/docking_port/mobile{
+ dir = 4;
+ launch_status = 0;
+ port_direction = 2;
+ preferred_direction = 4
},
-/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" = (
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/area/ship/crew/toilet)
+"uC" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+/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 = "4-8"
+ 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/effect/turf_decal/siding/wood{
- dir = 4
+/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/wood,
+/turf/open/floor/plating,
/area/ship/crew/canteen)
-"yw" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/white{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 4
+"uH" = (
+/obj/structure/table/reinforced,
+/obj/item/table_bell{
+ pixel_x = -4;
+ pixel_y = 13
},
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/machinery/door/window/westright,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/obj/machinery/status_display/shuttle{
- pixel_x = 32
+/turf/open/floor/carpet/cyan,
+/area/ship/medical)
+"uI" = (
+/obj/machinery/door/window/southright{
+ dir = 8;
+ name = "Freezer";
+ req_access_txt = "28"
},
-/turf/open/floor/plasteel,
-/area/ship/hallway/central)
-"yC" = (
-/obj/machinery/camera/emp_proof/motion{
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/effect/turf_decal/siding{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/science/ai_chamber)
-"yE" = (
-/obj/machinery/vending/cola/random,
-/obj/structure/disposalpipe/segment{
- dir = 8
+/turf/open/floor/plasteel/freezer,
+/area/ship/crew/canteen)
+"uS" = (
+/obj/machinery/door/airlock{
+ name = "Dormitory"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/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
},
-/turf/open/floor/plasteel,
-/area/ship/crew/canteen)
-"zF" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/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{
+/obj/effect/turf_decal/borderfloor{
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
+/area/ship/crew)
+"vI" = (
+/obj/structure/table,
+/obj/item/storage/bag/trash{
+ pixel_x = 5
},
-/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/reagent_containers/glass/bucket{
+ pixel_x = -3;
+ pixel_y = 8
+ },
+/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/wood,
-/turf/open/floor/wood,
-/area/ship/crew/canteen)
-"Bq" = (
-/obj/structure/disposalpipe/segment{
+/obj/effect/turf_decal/siding/thinplating/dark{
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/hopcap/nt,
-/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/food/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,1473 +5344,1478 @@
/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/fireaxecabinet{
- 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/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/dark/hidden/layer5{
- dir = 10
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"EF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer4{
+ dir = 4;
+ piping_layer = 5
},
-/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1,
-/obj/structure/catwalk/over,
+/turf/open/floor/engine/vacuum,
+/area/ship/engineering/engine)
+"EJ" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/small/directional/south,
/turf/open/floor/plating,
-/area/ship/science/ai_chamber)
-"Mc" = (
-/obj/structure/sign/warning/vacuum/external,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/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{
+/area/ship/engineering/engine)
+"EQ" = (
+/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{
dir = 8
},
-/obj/structure/closet/secure_closet{
- icon_state = "eng_secure";
- name = "engineer's locker";
- req_access = list(11)
- },
-/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/atmospherics/components/binary/pump/on/layer2{
+ name = "Air to Supply"
},
-/obj/effect/turf_decal/corner/opaque/yellow{
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
- },
-/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,
-/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{
+/obj/effect/turf_decal/trimline/opaque/ntblue/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/starboard)
+"FS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"FX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/brown{
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 1
},
-/obj/structure/table,
-/obj/item/stack/sheet/metal/five{
- pixel_x = -3
+/obj/structure/disposalpipe/segment{
+ dir = 8
},
-/obj/item/stack/sheet/glass/five{
- pixel_x = 2;
- pixel_y = 5
+/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/machinery/camera/autoname{
- dir = 6
+/obj/item/reagent_containers/glass/bottle/formaldehyde{
+ pixel_x = 8;
+ pixel_y = 8
},
-/turf/open/floor/plasteel,
-/area/ship/cargo/office)
-"Nv" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 1
+/obj/machinery/light/small/directional/south,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20
},
-/obj/effect/turf_decal/corner/opaque/brown{
+/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/effect/turf_decal/corner/opaque/brown,
-/obj/structure/sign/poster/retro/radio{
- pixel_x = -32
- },
-/obj/structure/extinguisher_cabinet/directional/south,
/turf/open/floor/plasteel,
-/area/ship/cargo/office)
-"Nw" = (
-/obj/machinery/door/airlock{
- name = "Dormitory"
- },
-/obj/structure/disposalpipe/segment{
- dir = 2
+/area/ship/engineering)
+"Gd" = (
+/obj/structure/fluff/hedge,
+/obj/effect/turf_decal/trimline/opaque/ntblue/filled/end{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/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,
-/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
- },
-/turf/open/floor/plasteel/white,
-/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,
-/area/ship/engineering/atmospherics)
-"Qm" = (
-/obj/structure/disposalpipe/segment{
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/disposalpipe/junction/flip{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/turf/open/floor/carpet/cyan,
+/area/ship/medical)
+"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 = "4-8"
+ icon_state = "0-2"
},
-/obj/effect/turf_decal/trimline/opaque/blue/corner{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{
+ dir = 10
},
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"Qr" = (
-/obj/structure/disposalpipe/segment{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
},
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering/atmospherics)
+"IV" = (
/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
+/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 = "0-4"
},
/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering)
-"Qt" = (
-/obj/effect/turf_decal/corner/transparent/neutral{
- dir = 4
+/area/ship/storage/eva)
+"Jd" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/machinery/light/dim/directional/north,
-/turf/open/floor/plasteel,
-/area/ship/hallway/central)
-"Qv" = (
-/obj/effect/turf_decal/corner/opaque/yellow{
+/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 = 4
},
-/obj/effect/turf_decal/corner/opaque/yellow{
- 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"
},
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "4-8"
},
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering)
-"Qy" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
},
-/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/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 4
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering)
-"QE" = (
/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/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 = "4-8"
+ icon_state = "1-8"
},
-/obj/effect/turf_decal/trimline/opaque/blue/corner,
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"QI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/structure/disposalpipe/segment{
- dir = 8
+ dir = 9
},
-/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/line{
+ dir = 1
},
-/turf/open/floor/plasteel,
-/area/ship/hallway/central)
-"QJ" = (
-/obj/machinery/conveyor{
- dir = 8;
- id = "osprey_cargoload"
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/port)
+"Jx" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
},
-/obj/structure/sign/warning{
- pixel_y = -25
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20
},
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating,
-/area/ship/cargo)
-"QK" = (
-/obj/structure/disposalpipe/segment{
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"JB" = (
+/obj/effect/turf_decal/number/nine{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
+/obj/machinery/button/door{
+ dir = 4;
+ id = "harrier_thrusters_starboard";
+ name = "Blast Door Control";
+ pixel_x = -25;
+ pixel_y = 6
},
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"QW" = (
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"JC" = (
/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/open/floor/plasteel/mono,
+/area/ship/hallway/port)
+"JH" = (
+/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
+ dir = 1
},
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/cargo/office)
-"Ri" = (
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/effect/turf_decal/trimline/transparent/white/filled/warning,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
},
-/obj/structure/cable{
- icon_state = "1-2"
+/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/structure/cable{
- icon_state = "1-4"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering/atmospherics)
-"Ro" = (
-/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{
+/turf/open/floor/plating,
+/area/ship/engineering)
+"JL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/area/ship/cargo)
-"Ry" = (
-/obj/structure/table/reinforced,
-/obj/item/areaeditor/shuttle{
- pixel_x = 5;
- pixel_y = 1
- },
-/obj/item/megaphone/command{
- pixel_x = 1;
- pixel_y = 1
- },
-/obj/machinery/airalarm/directional/south,
-/obj/effect/turf_decal/corner/opaque/ntblue{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/effect/turf_decal/corner/opaque/ntblue,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"RB" = (
-/obj/machinery/atmospherics/components/binary/pump/layer4{
+/obj/structure/disposalpipe/segment{
dir = 8
},
-/obj/effect/turf_decal/industrial/warning/corner{
+/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{
- dir = 8
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering/atmospherics)
-"RD" = (
-/obj/machinery/door/airlock/highsecurity{
- name = "AI Chamber";
- req_access_txt = "24"
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"JN" = (
+/obj/machinery/photocopier,
+/obj/machinery/light_switch{
+ pixel_x = -5;
+ pixel_y = 20
},
-/obj/structure/disposalpipe/segment{
- dir = 2
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"JP" = (
+/obj/effect/turf_decal/trimline/opaque/ntblue/line{
+ dir = 5
},
-/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"
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"JQ" = (
+/obj/structure/sign/warning/vacuum/external,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/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
},
-/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/plasteel,
+/area/ship/hallway/central)
+"JT" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/matches{
+ pixel_y = 9
},
-/obj/item/stack/sheet/mineral/plasma/twenty,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/engineering)
-"RI" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
+/obj/effect/turf_decal/trimline/opaque/ntblue/line{
+ dir = 8
},
-/obj/machinery/disposal/bin,
-/obj/structure/sign/warning/nosmoking/circle{
- pixel_x = 25
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
},
-/obj/structure/sign/poster/official/moth/smokey{
- pixel_y = -32
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"JU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/effect/turf_decal/corner/opaque/bottlegreen{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/bottlegreen{
+/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1,
+/obj/structure/disposalpipe/segment{
dir = 8
},
-/turf/open/floor/plasteel/patterned/grid,
+/turf/open/floor/plasteel/patterned,
/area/ship/engineering/atmospherics)
-"RO" = (
+"JX" = (
/obj/structure/disposalpipe/segment{
- dir = 2
+ 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/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/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{
+/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)
+"Kd" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/ntblue/line{
dir = 10
},
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/science/ai_chamber)
-"RQ" = (
-/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
-/area/ship/cargo)
-"RU" = (
-/obj/structure/table/wood,
-/obj/item/toy/plush/carpplushie,
-/obj/machinery/light/small/directional/west,
+/area/ship/crew/canteen)
+"Kg" = (
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
/turf/open/floor/wood,
-/area/ship/crew/dorm)
-"RW" = (
-/obj/structure/disposalpipe/segment{
- dir = 8
+/area/ship/crew)
+"Ki" = (
+/obj/structure/cable{
+ icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel,
-/area/ship/hallway/central)
-"RY" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/visible,
-/turf/open/floor/plasteel/patterned/grid,
/area/ship/engineering)
-"Sa" = (
-/obj/structure/table,
-/obj/item/storage/box/lights/mixed{
- pixel_x = 4;
- pixel_y = 9
+"Kj" = (
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0
},
-/obj/machinery/airalarm/directional/south,
-/obj/item/storage/box/mousetraps{
- pixel_x = -9
+/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)
+"Kl" = (
+/obj/structure/cable{
+ icon_state = "2-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/structure/cable{
+ icon_state = "1-8"
},
-/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/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/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
@@ -7103,2815 +6823,4937 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -5;
+ pixel_y = -20
},
-/turf/open/floor/plasteel,
-/area/ship/hallway/central)
-"TJ" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/disposalpipe/segment{
+ dir = 8
},
-/obj/structure/disposalpipe/junction/flip{
- dir = 4
+/obj/machinery/camera{
+ dir = 10
},
-/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{
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Lz" = (
+/obj/structure/chair/comfy/blue/corpo/directional/north,
+/obj/effect/turf_decal/trimline/opaque/ntblue/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
dir = 8
},
-/obj/effect/turf_decal/corner/opaque/bar{
+/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/plating,
+/area/ship/hallway/starboard)
+"LJ" = (
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = -24
+ },
+/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/bar,
+/obj/effect/turf_decal/corner/opaque/white{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/north,
/turf/open/floor/plasteel,
-/area/ship/hallway/central)
-"TU" = (
-/obj/machinery/door/airlock/research{
- name = "Science Lab";
- req_access_txt = "47"
+/area/ship/crew/canteen)
+"LW" = (
+/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/borderfloor,
+/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
+ },
+/obj/effect/spawner/structure/window/shuttle,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "harrierwindows";
+ name = "Window Blast Door"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Me" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/bridge)
+"Mf" = (
+/obj/structure/railing{
+ dir = 8
+ },
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/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
},
-/turf/open/floor/plasteel,
-/area/ship/science)
-"TW" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/conveyor_switch/oneway{
- id = "osprey_cargoload"
+/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{
+ dir = 9
},
+/obj/machinery/atmospherics/pipe/simple/purple/hidden,
+/obj/structure/disposalpipe/segment,
/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{
- dir = 8
+/area/ship/engineering)
+"Ms" = (
+/obj/structure/cable{
+ icon_state = "4-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/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/machinery/button/shieldwallgen{
- dir = 1;
- id = "osprey_atmosfield";
- pixel_x = 5;
- pixel_y = -24
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ 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/light/small/directional/north,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
},
-/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{
dir = 8
},
+/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 = "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/purple/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"MB" = (
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering/atmospherics)
-"UB" = (
-/obj/machinery/sleeper{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/lime{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/lime{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/lime{
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
dir = 8
},
-/obj/structure/sign/warning/nosmoking/circle{
- pixel_x = -25
+/obj/structure/sign/poster/official/random{
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/ship/crew)
+"MK" = (
+/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{
+ dir = 1
},
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"UG" = (
-/obj/effect/turf_decal/industrial/warning{
+/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{
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"
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"UU" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/ship/crew/canteen)
-"UZ" = (
-/obj/effect/turf_decal/siding/white{
+/area/ship/hallway/port)
+"MM" = (
+/obj/machinery/power/shuttle/engine/electric{
dir = 4
},
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/crew/cryo)
-"Vf" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "harrier_thrusters_starboard";
+ name = "Thruster Blast Door"
},
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"MP" = (
+/obj/structure/cable{
+ 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/light/small/directional/west,
+/obj/effect/turf_decal/trimline/transparent/white/filled/corner{
+ 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/effect/turf_decal/siding/thinplating{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+/obj/structure/chair/handrail{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/turf/open/floor/plasteel/dark,
+/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/bottlegreen{
- dir = 8
+/obj/effect/turf_decal/corner/opaque/white,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/disposalpipe/junction/flip{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/ship/hallway/central)
-"Vx" = (
-/obj/machinery/door/window/eastleft,
-/obj/machinery/shower{
- pixel_y = 10
- },
-/obj/structure/curtain,
-/turf/open/floor/plasteel/freezer,
-/area/ship/crew/toilet)
-"VA" = (
+"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 = "0-8"
+ icon_state = "1-2"
},
-/obj/machinery/power/smes/shuttle/precharged{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/door/window/eastright{
- name = "Engine Access"
+/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)
+"MX" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-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";
+/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)
-"VC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- 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/engineering/engine)
+"MZ" = (
+/turf/template_noop,
+/area/template_noop)
+"Nc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/area/ship/security)
+"Ni" = (
/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
- },
-/turf/open/floor/wood,
-/area/ship/crew/canteen)
-"VR" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/structure/cable{
- icon_state = "2-4"
+/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/kitchen/knife,
-/obj/item/kitchen/rollingpin,
-/obj/item/reagent_containers/food/condiment/sugar,
-/obj/item/reagent_containers/food/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{
+/obj/item/assembly/flash/handheld{
+ pixel_x = 5
+ },
+/obj/item/assembly/flash/handheld{
+ pixel_x = -5
+ },
+/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 = "2-8"
+ },
+/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/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-8"
+ },
+/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/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
+ dir = 4
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/engineering)
-"XR" = (
-/obj/structure/disposalpipe/segment{
- dir = 2
+/obj/effect/turf_decal/siding/yellow,
+/obj/effect/turf_decal/industrial/caution{
+ 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/engineering/engine)
+"Oh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
},
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/manifold/green/hidden/layer1{
+/obj/structure/disposalpipe/segment,
+/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/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/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
},
-/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{
+/obj/structure/disposalpipe/segment{
dir = 8
},
-/obj/machinery/advanced_airlock_controller{
- pixel_x = -24
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/port)
+"Ot" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ 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/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/structure/reagent_dispensers/watertank/high,
-/turf/open/floor/plasteel,
-/area/ship/crew/janitor)
-"Yt" = (
/obj/structure/disposalpipe/segment{
dir = 8
},
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/mono,
/area/ship/hallway/central)
-"Yw" = (
-/obj/structure/noticeboard{
- pixel_y = 32
+"Oy" = (
+/obj/effect/turf_decal/corner/opaque/white{
+ dir = 4
},
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 24;
- pixel_y = 9
+/obj/effect/turf_decal/corner/opaque/white{
+ dir = 8
},
-/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/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -24;
- pixel_y = -5
+/obj/structure/disposalpipe/segment{
+ dir = 8
},
-/obj/effect/turf_decal/corner/opaque/brown{
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"OA" = (
+/obj/structure/railing{
dir = 1
},
-/obj/effect/turf_decal/corner/opaque/brown{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/corner/opaque/brown{
- dir = 8
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
},
-/obj/item/folder/yellow,
-/obj/item/stamp/denied{
- pixel_x = 4
+/turf/open/floor/plasteel/stairs{
+ dir = 8
},
-/obj/item/stamp{
- pixel_x = -5;
- pixel_y = 9
+/area/ship/bridge)
+"OB" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/obj/item/pen/red,
-/obj/item/holochip{
- credits = 4000
+/obj/structure/disposalpipe/segment{
+ dir = 10
},
+/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)
-"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";
- dir = 4
+/area/ship/hallway/central)
+"OK" = (
+/obj/structure/table/reinforced,
+/obj/item/table_bell{
+ pixel_x = -4;
+ pixel_y = 13
},
-/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"
+/area/ship/crew/canteen)
+"OO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
},
-/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
+ dir = 10
},
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/structure/disposalpipe/segment{
+ dir = 10
},
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"YP" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 4
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/port)
+"OR" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
-/obj/effect/turf_decal/corner/opaque/mauve{
- dir = 1
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"OW" = (
+/obj/effect/spawner/structure/window/shuttle,
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 8
},
-/obj/effect/turf_decal/corner/opaque/mauve{
+/turf/open/floor/plating,
+/area/ship/engineering/engine)
+"OX" = (
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair/office{
dir = 8
},
-/obj/structure/sign/poster/official/random{
- pixel_x = -32
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Pb" = (
+/obj/structure/dresser{
+ dir = 4
},
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plasteel/white,
-/area/ship/science)
-"YR" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4;
- name = "Operations"
+/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/bridge)
-"Zj" = (
-/obj/structure/tank_dispenser/oxygen,
-/obj/effect/turf_decal/borderfloor{
- dir = 8
+/area/ship/crew/cryo)
+"Pk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
/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
- },
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "4-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
+/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/brown,
-/obj/machinery/autolathe,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel,
-/area/ship/cargo/office)
-"Zu" = (
-/obj/effect/turf_decal/corner/opaque/brown,
-/obj/effect/turf_decal/corner/opaque/brown{
+/obj/effect/turf_decal/corner/opaque/white{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/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/pipe/simple/scrubbers/hidden/layer4{
+/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/cargo)
-"ZC" = (
+/area/ship/crew/canteen)
+"YX" = (
/obj/structure/cable{
- icon_state = "0-4"
+ icon_state = "1-8"
},
-/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/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ship/crew/canteen)
+"YZ" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
},
-/obj/structure/table,
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/plasteel/patterned/grid,
+/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)
-"ZO" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+"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/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/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
},
-/turf/open/floor/plasteel,
-/area/ship/cargo/office)
-"ZX" = (
-/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{
+/obj/machinery/camera{
+ dir = 1
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ship/bridge)
+"Zi" = (
+/obj/structure/railing{
dir = 4
},
-/obj/machinery/door/poddoor{
- id = "osprey_thruster_starboard";
- name = "Blast Door";
+/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/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/door/firedoor/heavy,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
/turf/open/floor/plating,
-/area/ship/science/ai_chamber)
-"ZY" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/rnd/production/protolathe/department/science,
+/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_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
index 0a0c9dead99f..a5673c22d7bc 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
@@ -1474,6 +1474,7 @@
pixel_y = -11;
pixel_x = 9
},
+/obj/item/gun/energy/plasmacutter,
/turf/open/floor/plasteel/dark,
/area/ship/engineering)
"gd" = (
@@ -2003,7 +2004,7 @@
dir = 1
},
/obj/machinery/door/airlock/research{
- name = "Mech Bay"
+ name = "Exosuit Bay"
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/science/robotics)
@@ -3481,7 +3482,7 @@
dir = 1
},
/obj/machinery/door/airlock/research{
- name = "Mech Bay"
+ name = "Exosuit Bay"
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/science/robotics)
@@ -4135,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,
@@ -4557,7 +4557,7 @@
},
/obj/machinery/door/poddoor{
id = "heron_mechbayshut";
- name = "Mechbay Shutters"
+ name = "Exosuit Bay Shutters"
},
/turf/open/floor/plasteel/patterned/ridged,
/area/ship/science/robotics)
@@ -4852,11 +4852,11 @@
pixel_x = 2;
pixel_y = 3
},
-/obj/item/kitchen/knife/plastic{
+/obj/item/melee/knife/plastic{
pixel_x = 2
},
-/obj/item/kitchen/knife/plastic,
-/obj/item/kitchen/knife/plastic{
+/obj/item/melee/knife/plastic,
+/obj/item/melee/knife/plastic{
pixel_x = 5;
pixel_y = 2
},
@@ -6112,7 +6112,7 @@
/obj/item/storage/pill_bottle/aranesp,
/obj/item/taperecorder,
/obj/item/t_scanner,
-/obj/item/kitchen/knife/switchblade,
+/obj/item/melee/knife/switchblade,
/obj/item/trash/candy,
/obj/structure/filingcabinet/double,
/obj/item/radio/intercom/directional/south,
@@ -7053,11 +7053,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
},
@@ -7282,7 +7282,7 @@
"AC" = (
/obj/machinery/door/poddoor{
id = "heron_mechbayshut";
- name = "Mechbay Shutters"
+ name = "Exosuit Bay Shutters"
},
/turf/open/floor/plasteel/patterned/ridged,
/area/ship/science/robotics)
@@ -9208,12 +9208,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
@@ -9318,11 +9318,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
},
@@ -10650,6 +10650,7 @@
pixel_y = -10;
pixel_x = 5
},
+/obj/item/gun/energy/plasmacutter,
/turf/open/floor/plasteel/dark,
/area/ship/engineering)
"NC" = (
@@ -11850,7 +11851,7 @@
},
/obj/machinery/door/poddoor{
id = "heron_mechbayshut";
- name = "Mechbay Shutters"
+ name = "Exosuit Bay Shutters"
},
/turf/open/floor/plasteel/patterned/ridged,
/area/ship/science/robotics)
@@ -12146,12 +12147,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
@@ -13016,10 +13017,10 @@
/obj/item/reagent_containers/food/snacks/dough,
/obj/item/reagent_containers/food/snacks/dough,
/obj/item/kitchen/rollingpin,
-/obj/item/kitchen/knife/butcher{
+/obj/item/melee/knife/butcher{
pixel_x = 13
},
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
@@ -13619,7 +13620,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_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm
index 663a567b8bbc..95b61c204b54 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{
@@ -1679,6 +1679,14 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plating,
/area/ship/cargo)
+"jo" = (
+/obj/machinery/porta_turret/ship/nt/light{
+ id = "meta_grid";
+ pixel_y = 0;
+ dir = 4
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/crew)
"jw" = (
/obj/effect/turf_decal/corner/transparent/bar/diagonal,
/obj/effect/decal/cleanable/dirt/dust,
@@ -1801,10 +1809,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
@@ -1820,10 +1828,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" = (
@@ -2198,6 +2206,14 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
+"uT" = (
+/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)
"ve" = (
/obj/effect/turf_decal/box/corners,
/obj/machinery/light/broken/directional/south,
@@ -2379,11 +2395,19 @@
/obj/structure/table,
/obj/item/cutting_board,
/obj/item/kitchen/rollingpin,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/effect/turf_decal/corner/opaque/white/diagonal,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel,
/area/ship/crew/canteen/kitchen)
+"yF" = (
+/obj/machinery/porta_turret/ship/nt/light{
+ id = "meta_grid";
+ pixel_y = 0;
+ dir = 5
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/engineering)
"yS" = (
/obj/structure/table,
/obj/item/storage/box/lights/mixed{
@@ -2737,11 +2761,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
},
@@ -2848,11 +2872,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
},
@@ -2910,10 +2934,9 @@
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/turretid{
+/obj/machinery/turretid/ship{
pixel_y = -24;
- req_access = null;
- locked = 0
+ id = "meta_grid"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -3059,11 +3082,13 @@
/turf/open/floor/plating,
/area/ship/engineering)
"Lo" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 1
+/obj/machinery/porta_turret/ship/nt/light{
+ id = "meta_grid";
+ pixel_y = 0;
+ dir = 6
},
/turf/closed/wall/mineral/titanium,
-/area/ship/bridge)
+/area/ship/engineering)
"Lq" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -3458,6 +3483,22 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
+"TR" = (
+/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/nt/light{
+ id = "meta_grid";
+ pixel_y = 0;
+ dir = 9
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/crew)
"Uk" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -3861,7 +3902,7 @@ aa
"}
(6,1,1) = {"
aa
-Lo
+yF
ac
ri
Pr
@@ -4186,7 +4227,7 @@ aa
"}
(19,1,1) = {"
aa
-Lo
+TV
ai
ai
MU
@@ -4206,7 +4247,7 @@ sA
Uk
an
bD
-Lo
+TR
aa
"}
(20,1,1) = {"
@@ -4412,12 +4453,12 @@ aa
(28,1,1) = {"
aa
aa
-Lo
+jo
ai
ai
ai
ai
-Lo
+jo
aa
aa
aa
@@ -4425,12 +4466,12 @@ aa
aa
aa
aa
-Lo
+uT
cO
cO
cO
cO
-Lo
+uT
aa
aa
"}
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
index 928fc6bd90ee..7791494023f4 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
@@ -2005,7 +2005,7 @@
/obj/machinery/door/window{
dir = 4
},
-/obj/item/kitchen/knife/shiv,
+/obj/item/melee/knife/shiv,
/turf/open/floor/plating,
/area/ship/crew/canteen)
"lc" = (
@@ -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/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/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/food/condiment/sugar{
- pixel_y = 4
- },
-/obj/item/reagent_containers/food/condiment/rice{
- pixel_y = 10;
- pixel_x = 3
- },
-/obj/item/reagent_containers/food/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
@@ -4049,11 +3988,11 @@
/area/ship/crew/dorm)
"ye" = (
/obj/structure/closet/crate,
-/obj/item/kitchen/knife/plastic,
-/obj/item/kitchen/knife/plastic,
-/obj/item/kitchen/knife/plastic,
-/obj/item/kitchen/knife/plastic,
-/obj/item/kitchen/knife/plastic,
+/obj/item/melee/knife/plastic,
+/obj/item/melee/knife/plastic,
+/obj/item/melee/knife/plastic,
+/obj/item/melee/knife/plastic,
+/obj/item/melee/knife/plastic,
/obj/item/kitchen/spoon/plastic,
/obj/item/kitchen/spoon/plastic,
/obj/item/kitchen/spoon/plastic,
@@ -4100,11 +4039,6 @@
"ys" = (
/turf/closed/wall/r_wall,
/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" = (
/obj/effect/decal/cleanable/food/tomato_smudge,
/obj/effect/turf_decal/siding/wood{
@@ -4461,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/food/condiment/saltshaker{
- pixel_y = 10;
- pixel_x = -7
- },
-/obj/item/reagent_containers/food/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
@@ -4568,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"
@@ -4922,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
@@ -5864,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";
@@ -6211,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
@@ -8460,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
@@ -9145,7 +9143,7 @@ Mv
Lu
rq
Hm
-nb
+Bf
dJ
VG
oM
@@ -9551,8 +9549,8 @@ PP
td
VK
Fg
-AH
-xb
+Ie
+Dj
nR
zq
mU
@@ -9675,7 +9673,7 @@ pe
Rr
KQ
wa
-qe
+Xf
Ad
gZ
eF
@@ -10357,7 +10355,7 @@ oI
VU
Dy
nh
-yu
+Kc
nK
jY
jY
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
index 342ffb8fa928..07b8722e5e7b 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,19 +220,20 @@
},
/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,
-/obj/item/clothing/glasses/sunglasses/gar,
/obj/item/melee/classic_baton/telescopic,
/obj/item/flashlight/seclite,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
/obj/item/holosign_creator/security,
/obj/item/storage/box/handcuffs,
/obj/item/restraints/legcuffs/bola/energy,
@@ -184,31 +241,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 +290,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 +336,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 +343,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 +352,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 +385,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 +402,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 +418,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 +493,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 +510,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 +547,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 +559,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 +602,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 +628,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 +652,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 +667,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 +723,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 +863,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 +872,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 +892,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 +913,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 +936,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 +966,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 +975,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 +1020,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 +1031,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 +1056,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 +1105,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 +1129,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 +1137,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 +1173,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 +1203,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 +1241,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 +1279,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 +1341,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 +1368,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 +1417,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 +1433,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 +1522,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 +1538,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 +1552,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 +1564,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 +1579,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 +1590,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 +1692,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 +1741,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 +1779,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 +1823,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 +1852,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 +1866,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 +1891,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 +1916,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 +1956,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 +1990,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
@@ -1544,15 +2083,25 @@
pixel_y = 9;
pixel_x = -12
},
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_y = 6;
pixel_x = 5
},
/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)
@@ -1561,56 +2110,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" = (
@@ -1620,10 +2181,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{
@@ -1631,6 +2188,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" = (
@@ -1639,38 +2203,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"
},
@@ -1692,31 +2273,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{
@@ -1727,7 +2308,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"
@@ -1735,21 +2317,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)
@@ -1762,13 +2343,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{
@@ -1781,8 +2377,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"
@@ -1793,10 +2395,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
@@ -1812,28 +2413,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" = (
@@ -1864,20 +2488,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
@@ -1897,8 +2521,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" = (
@@ -1920,7 +2546,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,
@@ -1930,49 +2559,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"
@@ -1980,10 +2623,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,
@@ -1992,7 +2636,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,
@@ -2002,9 +2659,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{
@@ -2013,22 +2674,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{
@@ -2038,27 +2702,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{
@@ -2073,11 +2740,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
@@ -2085,47 +2777,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
},
@@ -2135,15 +2856,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" = (
@@ -2165,20 +2887,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" = (
@@ -2188,25 +2913,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;
@@ -2223,57 +2950,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{
@@ -2283,26 +3019,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{
@@ -2314,27 +3034,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,
@@ -2342,7 +3083,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{
@@ -2360,38 +3105,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"
@@ -2401,17 +3148,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{
@@ -2419,50 +3183,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
},
@@ -2472,7 +3250,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,
@@ -2482,23 +3262,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"
@@ -2509,60 +3290,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{
@@ -2574,29 +3406,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;
@@ -2615,22 +3462,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
},
@@ -2640,19 +3493,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{
@@ -2661,38 +3525,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"
@@ -2703,7 +3566,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,
@@ -2716,7 +3582,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{
@@ -2726,47 +3594,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,
@@ -2776,23 +3647,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" = (
@@ -2804,65 +3677,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"
@@ -2875,23 +3875,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" = (
@@ -2902,45 +3920,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{
@@ -2952,11 +3977,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
},
@@ -2968,7 +3995,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{
@@ -2977,15 +4010,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)
@@ -3000,32 +4042,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" = (
@@ -3035,24 +4078,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,
@@ -3063,8 +4102,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
@@ -3075,22 +4128,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{
@@ -3102,50 +4162,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/kitchen/knife/combat/survival,
+/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" = (
@@ -3155,27 +4219,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{
@@ -3192,6 +4254,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" = (
@@ -3206,10 +4269,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,
@@ -3228,6 +4311,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" = (
@@ -3235,11 +4322,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"
},
@@ -3249,18 +4370,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,
@@ -3272,19 +4403,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,
@@ -3292,7 +4423,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{
@@ -3304,20 +4435,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"
},
@@ -3326,7 +4451,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"
@@ -3340,38 +4465,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" = (
@@ -3380,18 +4507,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,
@@ -3404,7 +4530,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{
@@ -3423,24 +4553,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{
@@ -3452,31 +4587,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{
@@ -3485,6 +4616,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" = (
@@ -3493,39 +4625,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"
@@ -3533,17 +4672,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,
@@ -3552,12 +4695,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{
@@ -3567,24 +4714,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,
@@ -3607,32 +4761,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
@@ -3643,12 +4797,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{
@@ -3657,33 +4823,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{
@@ -3698,7 +4886,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{
@@ -3708,6 +4896,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" = (
@@ -3718,74 +4909,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" = (
@@ -3795,24 +4993,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{
@@ -3822,10 +5057,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,
@@ -3833,19 +5068,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{
@@ -3854,44 +5095,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
@@ -3904,12 +5140,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,
@@ -3924,18 +5160,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"
@@ -3947,72 +5196,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,
@@ -4022,25 +5292,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,
@@ -4056,13 +5326,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
@@ -4075,6 +5346,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
},
@@ -4120,6 +5400,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" = (
@@ -4132,10 +5415,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
},
@@ -4147,32 +5444,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
@@ -4183,60 +5484,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{
@@ -4245,36 +5575,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"
},
@@ -4282,31 +5614,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"
@@ -4318,21 +5650,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
@@ -4340,12 +5665,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" = (
@@ -4354,16 +5680,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"
},
@@ -4373,39 +5710,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,
@@ -4415,7 +5765,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";
@@ -4428,7 +5779,7 @@
/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/noslip,
/area/ship/engineering)
"Wr" = (
/obj/structure/cable{
@@ -4437,10 +5788,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,
@@ -4451,12 +5802,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");
@@ -4464,20 +5831,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,
@@ -4485,44 +5855,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"
},
@@ -4530,10 +5940,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{
@@ -4545,7 +5963,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,
@@ -4556,20 +5974,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{
@@ -4581,24 +6006,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{
@@ -4618,33 +6049,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{
@@ -4662,21 +6107,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{
@@ -4687,22 +6140,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" = (
@@ -4716,70 +6180,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) = {"
@@ -4794,6 +6301,7 @@ tg
tg
LV
zW
+yK
zW
zW
zW
@@ -4807,8 +6315,7 @@ zW
zW
zW
zW
-zW
-zW
+yK
zW
QT
qs
@@ -4936,8 +6443,8 @@ zW
zW
zW
LV
-Zl
-Vq
+ci
+hp
aW
UW
hl
@@ -4961,7 +6468,7 @@ qQ
gD
ib
eN
-RS
+Lw
Dd
QT
zW
@@ -5044,10 +6551,10 @@ zW
(8,1,1) = {"
zW
zW
-zW
+hN
vm
-xp
-Aw
+vm
+cj
oQ
tq
LV
@@ -5059,9 +6566,9 @@ zW
zW
Kg
Pd
-vO
+Ox
IE
-vO
+Ep
Nf
Kg
zW
@@ -5076,7 +6583,7 @@ Zv
AZ
Wj
fV
-zW
+sp
"}
(9,1,1) = {"
zW
@@ -5085,7 +6592,7 @@ vm
vm
YK
aO
-Om
+Aw
Gn
LV
vT
@@ -5093,7 +6600,7 @@ LV
LV
zW
zW
-wq
+yK
Kg
MK
Ua
@@ -5101,7 +6608,7 @@ vO
Nn
Cq
Kg
-wq
+yK
zW
zW
QT
@@ -5129,14 +6636,14 @@ zc
jA
zW
zW
-Tz
-Tz
+wU
+wU
Kg
Kg
Kg
kw
gk
-zB
+Kg
Kg
Kg
Kg
@@ -5145,7 +6652,7 @@ zW
Vp
cN
vR
-fV
+nq
Us
Js
Ma
@@ -5164,25 +6671,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
@@ -5202,10 +6709,10 @@ XQ
PR
jA
zW
-Tz
+wU
LQ
-MD
aP
+Pu
xq
Wp
Gz
@@ -5223,7 +6730,7 @@ qR
tQ
nh
Dx
-Dx
+yk
fV
"}
(13,1,1) = {"
@@ -5239,7 +6746,7 @@ cR
pU
jA
zW
-Tz
+wU
gN
dr
rC
@@ -5248,7 +6755,7 @@ Dr
ZJ
fU
Mx
-tT
+MD
tT
ux
Kg
@@ -5257,9 +6764,9 @@ Vp
TR
KX
fV
-Ji
+fV
Yz
-hf
+iH
iH
fV
"}
@@ -5276,15 +6783,15 @@ bf
tR
jA
zW
-Tz
+wU
Ge
or
JP
-Tz
-Tz
+wU
+wU
hK
Hd
-Tz
+wU
Ds
Bo
WG
@@ -5293,11 +6800,11 @@ zW
Vp
bD
iD
-fV
-fV
-fV
-fV
-fV
+dm
+hf
+Ab
+Ji
+SG
fV
"}
(15,1,1) = {"
@@ -5313,8 +6820,8 @@ jH
uE
jA
zW
-Tz
-Tz
+wU
+wU
Sl
Nd
IC
@@ -5331,11 +6838,11 @@ Vp
yo
Cg
of
-gg
-Ut
-BI
+jd
+TG
+my
xv
-gg
+fV
"}
(16,1,1) = {"
zW
@@ -5351,15 +6858,15 @@ Kf
jA
zW
zW
-Tz
-Tz
+wU
+wU
Qt
-Tz
+wU
Ca
rA
yU
-dP
-wf
+wU
+Kg
Kg
Kg
zW
@@ -5369,7 +6876,7 @@ pi
iZ
ji
gg
-am
+gg
gg
gg
gg
@@ -5381,24 +6888,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
@@ -5406,8 +6913,8 @@ Vp
MI
zF
gg
-my
-fo
+Ut
+BI
BA
gg
"}
@@ -5427,13 +6934,13 @@ zW
zW
zW
zW
-Tz
+wU
jr
Mt
lX
Ny
JK
-Tz
+wU
zW
zW
zW
@@ -5443,9 +6950,9 @@ Vp
dK
ZI
gg
-qe
-oM
-yK
+am
+gg
+gg
gg
"}
(19,1,1) = {"
@@ -5455,7 +6962,7 @@ JR
tb
mQ
rq
-rq
+gr
Zs
pf
jA
@@ -5464,13 +6971,13 @@ zW
zW
zW
zW
-Tz
+wU
ps
Hs
tk
Bh
GY
-Tz
+wU
zW
zW
zW
@@ -5500,15 +7007,15 @@ jA
zW
zW
zW
-Tz
-Tz
-eo
+wU
+wU
+wU
FB
wU
-hZ
-Lw
-Tz
-Tz
+wU
+wU
+wU
+wU
zW
zW
zW
@@ -5538,13 +7045,13 @@ sJ
sJ
sJ
sJ
-sJ
-sJ
+We
+hZ
VJ
-sJ
-sJ
-sJ
-sJ
+rX
+Sv
+Kl
+eo
sJ
sJ
sJ
@@ -5564,7 +7071,7 @@ zW
zW
zW
QV
-jA
+gd
KQ
wp
oz
@@ -5575,13 +7082,13 @@ gW
ZY
CG
mw
-rX
+MR
vj
fd
-Ox
+yG
BX
Gk
-Kl
+bK
mw
zi
lj
@@ -5592,19 +7099,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
@@ -5612,7 +7119,7 @@ PG
Gh
XR
OP
-OP
+DQ
OP
OP
BY
@@ -5651,14 +7158,14 @@ sJ
Wv
Fx
fy
-bu
+PB
pn
Av
tf
-bu
+iS
rT
sJ
-Vg
+sJ
ok
sJ
OK
@@ -5673,8 +7180,8 @@ zW
(25,1,1) = {"
zW
zW
-zW
-hN
+ef
+Og
jA
Po
iX
@@ -5689,10 +7196,10 @@ ox
IM
RM
Mn
-bu
+iv
bu
AP
-bu
+Ih
kK
sJ
Zk
@@ -5708,7 +7215,7 @@ hz
zW
"}
(26,1,1) = {"
-ef
+zW
zW
zW
zW
@@ -5739,7 +7246,7 @@ DZ
So
Eq
lU
-cj
+EA
XT
zW
zW
@@ -5757,14 +7264,14 @@ jZ
Be
Tb
sJ
-SU
+sJ
Mf
Gc
Ha
Lk
-Lk
-Lk
-Lk
+VE
+VE
+VE
tj
Lk
sJ
@@ -5774,8 +7281,8 @@ CP
XT
Iz
lv
+Yk
pD
-ww
vz
XT
zW
@@ -5794,8 +7301,8 @@ wu
yZ
Tb
NC
-jC
Mf
+jC
mv
Ao
JO
@@ -5803,17 +7310,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
@@ -5831,8 +7338,8 @@ Qf
Xt
Tb
zW
-zW
Mf
+Mu
Vk
NZ
Lk
@@ -5840,15 +7347,15 @@ sf
iF
XA
Sa
+xp
Lk
wq
zW
zW
-zW
XT
TL
-pD
-pD
+Fg
+zB
eE
XT
XT
@@ -5868,18 +7375,18 @@ YJ
Tb
Tb
zW
-zW
Mf
-Mu
+Mf
+qn
hx
Lk
AF
vp
CI
dC
+kt
Lk
-zW
-zW
+wq
zW
zW
XT
@@ -5908,14 +7415,14 @@ zW
zW
Mf
Mf
-Fg
+Mf
Lk
tK
og
NM
ff
Lk
-zW
+Lk
zW
zW
zW
@@ -5981,14 +7488,14 @@ zW
zW
zW
zW
-wq
+VQ
wq
Lk
mn
cv
lW
-WF
-VQ
+Lk
+rw
zW
zW
zW
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm
deleted file mode 100644
index f9aeea662f05..000000000000
--- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm
+++ /dev/null
@@ -1,7393 +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,
-/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/fireaxecabinet{
- 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/hopcap/nt,
-/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/kitchen/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/kitchen/knife,
-/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/food/condiment/peppermill{
- pixel_x = -2;
- pixel_y = 11
- },
-/obj/item/reagent_containers/food/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/item/paper/crumpled{
- default_raw_text = "66% Oxy (Node 1) to 34% Plasma (Node 2) works great at 500 kPa."
- },
-/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/food/condiment/saltshaker{
- pixel_y = 6;
- pixel_x = -8
- },
-/obj/item/reagent_containers/food/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/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/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/_maps/shuttles/pgf/pgf_crying_sun.dmm b/_maps/shuttles/pgf/pgf_crying_sun.dmm
index e016ef725525..0c740842e5d9 100644
--- a/_maps/shuttles/pgf/pgf_crying_sun.dmm
+++ b/_maps/shuttles/pgf/pgf_crying_sun.dmm
@@ -1,4 +1,18 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ae" = (
+/obj/structure/cable/blue{
+ icon_state = "0-4"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "lib_engine_blast"
+ },
+/obj/machinery/power/shuttle/engine/fire{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
"ai" = (
/obj/structure/railing,
/obj/structure/cable/yellow{
@@ -129,6 +143,13 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/white,
/area/ship/hallway/port)
+"bi" = (
+/obj/machinery/computer/crew{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
"bl" = (
/obj/effect/turf_decal/industrial/traffic,
/obj/machinery/power/apc/auto_name/directional/north,
@@ -215,10 +236,6 @@
/obj/item/storage/box/flashes{
pixel_y = -1
},
-/obj/item/screwdriver{
- pixel_x = -8;
- pixel_y = -5
- },
/obj/item/screwdriver{
pixel_x = -5;
pixel_y = -5
@@ -235,10 +252,6 @@
pixel_x = 4;
pixel_y = -5
},
-/obj/item/screwdriver{
- pixel_x = 7;
- pixel_y = -5
- },
/obj/structure/closet/secure_closet/wall/directional/west{
icon_state = "sec_wall";
name = "equipment locker"
@@ -406,23 +419,25 @@
dir = 6
},
/obj/structure/catwalk/over/plated_catwalk/dark,
-/obj/structure/cable{
- icon_state = "1-8"
- },
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plating,
/area/ship/engineering/engines/starboard)
-"du" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 6
+"dv" = (
+/obj/structure/cable/blue{
+ icon_state = "0-4"
},
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "lib_engine_blast"
},
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/obj/machinery/power/shuttle/engine/fire{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
"dz" = (
/obj/effect/turf_decal/corner_steel_grid{
dir = 10
@@ -464,10 +479,10 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/hallway/port)
"dK" = (
-/obj/machinery/computer/cargo{
- dir = 8
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
},
-/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/floordetail/tiled,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -509,6 +524,29 @@
},
/turf/open/floor/plasteel/mono/dark,
/area/ship/hallway/central)
+"ee" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "lib_bridge_shut";
+ name = "Bridge Shutters";
+ pixel_y = 20;
+ pixel_x = 8
+ },
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/machinery/turretid/ship{
+ pixel_y = 24;
+ pixel_x = -7;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
"ej" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
@@ -523,9 +561,6 @@
dir = 8;
name = "engine fuel pump"
},
-/obj/structure/cable{
- icon_state = "2-4"
- },
/obj/machinery/camera/autoname{
dir = 2;
network = list("GEC")
@@ -1010,16 +1045,20 @@
/obj/machinery/light/directional/north,
/turf/open/floor/plating,
/area/ship/engineering)
-"if" = (
-/obj/structure/cable{
- icon_state = "0-8"
+"hX" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/obj/machinery/porta_turret/ship/weak{
- dir = 4
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
},
-/obj/structure/catwalk/over/plated_catwalk/dark,
-/turf/open/floor/plating/airless,
-/area/ship/external/dark)
+/obj/machinery/door/poddoor/shutters{
+ id = "lib_bridge_shut"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
"ih" = (
/obj/structure/table/reinforced,
/obj/item/modular_computer/laptop/preset,
@@ -1151,6 +1190,17 @@
},
/turf/open/floor/plasteel/mono,
/area/ship/hangar/starboard)
+"jg" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 5;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"jh" = (
/obj/effect/turf_decal/industrial/traffic{
dir = 1
@@ -1166,12 +1216,12 @@
/area/ship/hangar/starboard)
"jm" = (
/obj/machinery/holopad/emergency,
-/obj/effect/turf_decal/spline/fancy/opaque/lime{
- dir = 1
- },
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/effect/turf_decal/spline/fancy/opaque/lime{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"jt" = (
@@ -1253,7 +1303,7 @@
},
/obj/machinery/button/door{
id = "lib_armory_1";
- name = "Sergeant Access";
+ name = "Lieutenant Access";
dir = 4;
pixel_x = -20;
pixel_y = -5;
@@ -1421,7 +1471,7 @@
/obj/structure/table/reinforced,
/obj/effect/turf_decal/corner/opaque/lime/mono,
/obj/machinery/camera/autoname{
- dir = 1
+ dir = 10
},
/obj/machinery/light/directional/south,
/turf/open/floor/plasteel/mono/dark,
@@ -1436,6 +1486,17 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating/airless,
/area/ship/external/dark)
+"mf" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 8;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
"mk" = (
/obj/structure/table/wood,
/obj/item/toy/plush/sharai{
@@ -1457,14 +1518,13 @@
pixel_x = 4;
pixel_y = 4
},
+/obj/machinery/light/directional/north,
/obj/item/reagent_containers/food/drinks/bottle/whiskey{
pixel_x = -10;
pixel_y = 3;
- name = "'Anastheasia'";
+ name = "'Anesthesia'";
desc = "A bottle of Git's with the word 'Anastheasia' written over it in marker."
},
-/obj/machinery/light/directional/north,
-/obj/item/clothing/neck/stethoscope,
/turf/open/floor/mineral/titanium,
/area/ship/medical)
"mL" = (
@@ -1473,7 +1533,7 @@
},
/obj/structure/closet/crate{
icon_state = "wooden";
- name = "myning geer";
+ name = "mining gear";
desc = "A rectangular steel crate with 'myning geer' spelled out in crayon on top."
},
/obj/item/storage/bag/ore{
@@ -1608,9 +1668,12 @@
/turf/open/floor/plasteel/white,
/area/ship/hallway/port)
"no" = (
-/obj/structure/bed,
-/obj/item/bedsheet/cosmos,
/obj/structure/curtain/cloth/grey,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
/turf/open/floor/plasteel/dark,
/area/ship/crew/dorm)
"nv" = (
@@ -1665,6 +1728,26 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/crew/cryo)
+"om" = (
+/obj/effect/turf_decal/corner/opaque/lime/mono,
+/obj/structure/table/reinforced,
+/obj/item/clipboard{
+ pixel_x = -9;
+ pixel_y = -1
+ },
+/obj/item/pen{
+ pixel_x = -10;
+ pixel_y = 1
+ },
+/obj/item/gps{
+ pixel_x = 8;
+ pixel_y = -2
+ },
+/obj/item/binoculars{
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
"ou" = (
/obj/structure/railing{
dir = 8
@@ -1784,22 +1867,22 @@
/obj/structure/railing{
dir = 4
},
-/obj/structure/table,
/obj/item/toy/plush/knight{
- pixel_y = 10;
+ pixel_y = 11;
pixel_x = -10
},
/obj/item/toy/plush/hornet{
- pixel_y = 8;
- pixel_x = -3
+ pixel_y = 10;
+ pixel_x = -2
},
/obj/item/toy/plush/mora{
- pixel_y = 4;
- pixel_x = 5
+ pixel_y = 6;
+ pixel_x = 6
},
/obj/effect/turf_decal/corner_steel_grid{
dir = 10
},
+/obj/structure/dresser,
/turf/open/floor/plasteel/dark,
/area/ship/crew/dorm)
"oX" = (
@@ -1848,6 +1931,22 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/mono/dark,
/area/ship/hallway/central)
+"pK" = (
+/obj/structure/cable/blue{
+ icon_state = "0-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
"pW" = (
/obj/machinery/computer/helm/viewscreen/directional/west,
/obj/effect/turf_decal/siding/wood{
@@ -1883,15 +1982,8 @@
/turf/open/floor/plasteel/sepia,
/area/ship/crew/dorm/dormthree)
"qj" = (
-/obj/structure/table/reinforced,
-/obj/item/desk_flag/gezena{
- pixel_x = 9;
- pixel_y = 1
- },
-/obj/machinery/recharger{
- pixel_y = 1;
- pixel_x = -6
- },
+/obj/structure/chair/comfy/shuttle,
+/obj/effect/turf_decal/floordetail/tiled,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"qm" = (
@@ -1904,7 +1996,6 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"qp" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
/obj/structure/cable{
icon_state = "1-10"
},
@@ -1915,6 +2006,9 @@
dir = 1
},
/obj/item/paper/guides/jobs/engi/combustion_thruster,
+/obj/machinery/atmospherics/pipe/manifold/orange/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engines/starboard)
"qy" = (
@@ -2104,11 +2198,6 @@
/turf/closed/wall/mineral/plastitanium,
/area/ship/engineering/engines/starboard)
"sF" = (
-/obj/machinery/door/airlock/security/glass{
- req_one_access_txt = "1";
- req_access = list(1);
- name = "Checkpoint"
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -2117,6 +2206,10 @@
dir = 1
},
/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/airlock/security/glass{
+ req_one_access_txt = "1";
+ name = "Checkpoint"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"sJ" = (
@@ -2241,7 +2334,6 @@
pixel_y = 3
},
/obj/effect/turf_decal/corner/opaque/lime/mono,
-/obj/machinery/light/directional/south,
/obj/machinery/light_switch{
dir = 4;
pixel_x = -19;
@@ -2260,26 +2352,21 @@
/turf/closed/wall/mineral/titanium/exterior,
/area/ship/crew/cryo)
"tQ" = (
-/obj/structure/chair/comfy/shuttle,
/obj/effect/turf_decal/corner_steel_grid{
dir = 9
},
+/obj/structure/chair/comfy/shuttle,
+/obj/effect/turf_decal/floordetail/tiled,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
-"tU" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 5
- },
-/obj/structure/cable{
- icon_state = "0-2"
+"tY" = (
+/obj/machinery/modular_computer/console/preset/command{
+ dir = 1
},
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
"uh" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4
- },
-/obj/effect/turf_decal/floordetail/tiled,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -2497,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,
@@ -2585,12 +2672,12 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"wz" = (
-/obj/effect/turf_decal/corner_steel_grid{
- dir = 9
- },
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"wK" = (
@@ -2812,6 +2899,19 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engines/port)
+"yy" = (
+/obj/structure/table/reinforced,
+/obj/item/desk_flag/gezena{
+ pixel_x = 9;
+ pixel_y = 1
+ },
+/obj/machinery/recharger{
+ pixel_y = 1;
+ pixel_x = -6
+ },
+/obj/effect/turf_decal/floordetail/tiled,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
"yF" = (
/obj/effect/turf_decal/industrial/traffic{
dir = 1
@@ -2932,9 +3032,6 @@
icon_state = "1-4"
},
/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
/obj/machinery/cell_charger,
/obj/item/stock_parts/cell/high,
/obj/structure/cable,
@@ -2945,6 +3042,7 @@
dir = 5
},
/obj/machinery/airalarm/directional/west,
+/obj/structure/table/reinforced,
/turf/open/floor/plating,
/area/ship/engineering)
"zL" = (
@@ -2970,7 +3068,7 @@
},
/obj/machinery/door/airlock/security{
req_access = list(3);
- name = "Sergeant's Quarters"
+ name = "Lieutenant's Quarters"
},
/turf/open/floor/plasteel/tech,
/area/ship/security)
@@ -2997,28 +3095,6 @@
},
/turf/open/floor/vault,
/area/ship/security/armory)
-"Aq" = (
-/obj/effect/turf_decal/corner_steel_grid{
- dir = 9
- },
-/obj/effect/turf_decal/corner_steel_grid{
- dir = 4
- },
-/obj/machinery/button/door{
- id = "lib_bridge_shut";
- name = "Bridge Shutters";
- pixel_y = 20;
- pixel_x = 8
- },
-/obj/structure/chair/comfy/shuttle{
- dir = 4
- },
-/obj/machinery/turretid{
- pixel_y = 23;
- pixel_x = -8
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/bridge)
"Ar" = (
/obj/effect/turf_decal/corner_steel_grid{
dir = 9
@@ -3088,10 +3164,38 @@
"At" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/security/armory)
+"Az" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 4;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
"AL" = (
/obj/machinery/vending/toyliberationstation,
/turf/open/floor/plasteel/tech,
/area/ship/security)
+"AM" = (
+/obj/structure/cable/blue{
+ icon_state = "0-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
"AN" = (
/obj/structure/window/reinforced{
dir = 1
@@ -3254,19 +3358,19 @@
pixel_x = 3;
pixel_y = 5
},
-/obj/item/kitchen/knife/plastic{
+/obj/item/melee/knife/plastic{
pixel_y = 5;
pixel_x = -1
},
-/obj/item/kitchen/knife/plastic{
+/obj/item/melee/knife/plastic{
pixel_y = 5;
pixel_x = -3
},
-/obj/item/kitchen/knife/plastic{
+/obj/item/melee/knife/plastic{
pixel_y = 5;
pixel_x = -5
},
-/obj/item/kitchen/knife/plastic{
+/obj/item/melee/knife/plastic{
pixel_y = 5;
pixel_x = -7
},
@@ -3347,19 +3451,10 @@
dir = 8
},
/turf/open/floor/plating,
-/area/ship/engineering/engines/port)
-"CD" = (
-/turf/open/floor/plasteel/white,
-/area/ship/crew/canteen)
-"CF" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 10
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/area/ship/engineering/engines/port)
+"CD" = (
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
"CO" = (
/obj/machinery/vending/coffee,
/obj/effect/turf_decal/corner_steel_grid/full{
@@ -3517,6 +3612,17 @@
/obj/item/clothing/head/helmet/space/gezena,
/turf/open/floor/plating,
/area/ship/engineering)
+"DG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 5;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"DJ" = (
/obj/effect/turf_decal/industrial/traffic,
/obj/structure/sign/flag/gezena{
@@ -3583,10 +3689,7 @@
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/external/dark)
"El" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/machinery/modular_computer/console/preset/command{
+/obj/machinery/computer/security{
dir = 1
},
/obj/structure/catwalk/over/plated_catwalk/dark,
@@ -3633,13 +3736,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel,
/area/ship/hallway/central)
-"Eu" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 5
- },
-/obj/structure/cable,
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
"EA" = (
/obj/structure/sign/poster/contraband/pgf{
pixel_y = 32
@@ -3896,15 +3992,6 @@
},
/turf/open/floor/plasteel/mono/dark,
/area/ship/hallway/central)
-"FJ" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 5
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
"FN" = (
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/door/poddoor{
@@ -3916,15 +4003,6 @@
},
/turf/open/floor/plating,
/area/ship/engineering/engines/starboard)
-"FO" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/engine/hull/reinforced,
-/area/ship/external/dark)
"FU" = (
/obj/effect/turf_decal/corner_steel_grid{
dir = 10
@@ -3946,10 +4024,10 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/hallway/central)
"Gb" = (
-/obj/machinery/computer/crew{
- dir = 8
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
},
-/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/floordetail/tiled,
/obj/structure/cable{
icon_state = "1-8"
},
@@ -4104,8 +4182,8 @@
"GW" = (
/obj/structure/rack,
/obj/item/stock_parts/cell/gun/pgf{
- pixel_y = 12;
- pixel_x = -3
+ pixel_x = -6;
+ pixel_y = -2
},
/obj/item/stock_parts/cell/gun/pgf{
pixel_y = 10;
@@ -4128,6 +4206,13 @@
pixel_x = 3
},
/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_x = -12
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_x = -8;
+ pixel_y = -2
+ },
/turf/open/floor/vault,
/area/ship/security/armory)
"Ha" = (
@@ -4144,15 +4229,6 @@
/obj/effect/turf_decal/corner/opaque/neutral/full,
/turf/open/floor/vault,
/area/ship/security/armory)
-"Hb" = (
-/obj/machinery/porta_turret/ship/weak{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
"Hf" = (
/obj/structure/railing,
/obj/effect/turf_decal/corner_steel_grid{
@@ -4160,6 +4236,18 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/crew/cryo)
+"Hl" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 4;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
"Hn" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/cryo)
@@ -4300,10 +4388,6 @@
/area/ship/crew/canteen)
"Ig" = (
/obj/machinery/computer/helm/viewscreen/directional/north,
-/obj/structure/chair/comfy/shuttle{
- dir = 4
- },
-/obj/effect/turf_decal/floordetail/tiled,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"Ir" = (
@@ -4466,6 +4550,20 @@
},
/turf/open/floor/engine/hull,
/area/ship/external/dark)
+"KH" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "lib_bridge_shut"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
"KM" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/hallway/port)
@@ -4516,9 +4614,6 @@
dir = 8;
name = "engine fuel pump"
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
/obj/machinery/camera/autoname{
dir = 1;
network = list("GEC")
@@ -4677,7 +4772,7 @@
"Mw" = (
/obj/structure/bed,
/obj/item/bedsheet/hos{
- name = "Sergeant's Bedsheet";
+ name = "Lieutenant's Bedsheet";
desc = "It is decorated with a shield emblem."
},
/obj/effect/turf_decal/borderfloorblack,
@@ -4713,9 +4808,6 @@
pixel_x = -9;
pixel_y = 3
},
-/obj/item/clothing/head/gezena/medic/flap{
- pixel_x = 12
- },
/obj/item/clothing/head/gezena/medic{
pixel_y = 4;
pixel_x = 7
@@ -4743,6 +4835,11 @@
pixel_x = -13;
pixel_y = -19
},
+/obj/item/clothing/neck/stethoscope,
+/obj/item/clothing/head/gezena/flap/medic{
+ pixel_y = 1;
+ pixel_x = 12
+ },
/turf/open/floor/mineral/titanium,
/area/ship/medical)
"MF" = (
@@ -4801,6 +4898,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
+/obj/structure/railing/corner{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"MZ" = (
@@ -4877,7 +4977,7 @@
dir = 8
},
/obj/structure/closet/crate{
- name = "Mishun Acomplshed"
+ name = "Mission Accomplished"
},
/obj/item/poster/mission_accomplished_7,
/obj/item/poster/mission_accomplished_6,
@@ -4917,8 +5017,13 @@
/area/ship/external/dark)
"NF" = (
/obj/structure/closet/crate/radiation,
-/obj/effect/turf_decal/borderfloorblack{
- dir = 4
+/obj/item/clothing/suit/radiation,
+/obj/item/clothing/suit/radiation,
+/obj/item/clothing/head/radiation{
+ pixel_x = -7
+ },
+/obj/item/clothing/head/radiation{
+ pixel_x = -7
},
/turf/open/floor/plasteel/dark,
/area/ship/construction)
@@ -5119,6 +5224,9 @@
/turf/open/floor/vault,
/area/ship/security/armory)
"Pb" = (
+/obj/structure/railing{
+ dir = 4
+ },
/turf/open/floor/plasteel/stairs{
icon = 'icons/obj/stairs.dmi';
dir = 2
@@ -5145,7 +5253,6 @@
/turf/open/floor/plating,
/area/ship/engineering)
"Ph" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
/obj/structure/cable{
icon_state = "2-9"
},
@@ -5155,6 +5262,9 @@
/obj/machinery/atmospherics/components/trinary/mixer/layer2{
dir = 1
},
+/obj/machinery/atmospherics/pipe/manifold/orange/visible{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engines/port)
"Pi" = (
@@ -5360,21 +5470,28 @@
/obj/effect/turf_decal/corner/opaque/neutral/full,
/turf/open/floor/vault,
/area/ship/security/armory)
+"Qi" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/computer/cargo{
+ dir = 8
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
"Qq" = (
/obj/structure/rack,
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_x = -7;
pixel_y = 4
},
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_x = -2;
pixel_y = 4
},
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_y = 4;
pixel_x = 3
},
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_y = 4;
pixel_x = 8
},
@@ -5718,6 +5835,17 @@
/obj/machinery/light/floor/hangar,
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
+"Tp" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 10;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"Tw" = (
/obj/structure/cable{
icon_state = "0-2"
@@ -5867,6 +5995,7 @@
/obj/item/gun/energy/kalix/pistol{
pixel_y = -16
},
+/obj/item/screwdriver,
/turf/open/floor/plasteel/sepia,
/area/ship/crew/dorm/dormthree)
"UH" = (
@@ -5915,13 +6044,6 @@
pixel_x = -10;
pixel_y = -7
},
-/obj/item/clothing/under/gezena/marine{
- pixel_x = -10;
- pixel_y = -7
- },
-/obj/item/clothing/gloves/gezena/marine{
- pixel_y = 11
- },
/obj/item/clothing/gloves/gezena/marine{
pixel_y = 11
},
@@ -5931,22 +6053,6 @@
/obj/item/clothing/gloves/gezena/marine{
pixel_y = 11
},
-/obj/item/clothing/head/gezena/marine/flap{
- pixel_x = -10
- },
-/obj/item/clothing/head/gezena/marine/flap{
- pixel_x = -10
- },
-/obj/item/clothing/head/gezena/marine/flap{
- pixel_x = -10
- },
-/obj/item/clothing/head/gezena/marine/flap{
- pixel_x = -10
- },
-/obj/item/clothing/head/gezena/marine{
- pixel_y = 10;
- pixel_x = -10
- },
/obj/item/clothing/head/gezena/marine{
pixel_y = 10;
pixel_x = -10
@@ -5975,13 +6081,6 @@
/obj/item/storage/backpack/duffelbag/sec{
pixel_y = -13
},
-/obj/item/storage/backpack/duffelbag/sec{
- pixel_y = -13
- },
-/obj/item/storage/backpack/satchel/sec{
- pixel_x = -8;
- pixel_y = -17
- },
/obj/item/storage/backpack/satchel/sec{
pixel_x = -8;
pixel_y = -17
@@ -6006,11 +6105,19 @@
pixel_x = 3;
pixel_y = 0
},
-/obj/item/clothing/shoes/combat/gezena{
- pixel_x = 3;
- pixel_y = 0
- },
/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/item/clothing/head/gezena/flap/marine{
+ pixel_y = 1;
+ pixel_x = -10
+ },
+/obj/item/clothing/head/gezena/flap/marine{
+ pixel_y = 1;
+ pixel_x = -10
+ },
+/obj/item/clothing/head/gezena/flap/marine{
+ pixel_y = 1;
+ pixel_x = -10
+ },
/turf/open/floor/vault,
/area/ship/security/armory)
"Vp" = (
@@ -6059,11 +6166,11 @@
/turf/open/floor/plasteel/mono,
/area/ship/hangar/starboard)
"VM" = (
-/obj/machinery/power/terminal{
- dir = 8
- },
-/obj/structure/cable,
/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump"
+ },
/turf/open/floor/plating,
/area/ship/engineering/engines/starboard)
"VY" = (
@@ -6075,7 +6182,7 @@
anchored = 1;
can_be_unanchored = 1;
icon_state = "warden";
- name = "sergeant's locker";
+ name = "Lieutenant's locker";
req_access_txt = "3";
req_access = list(3)
},
@@ -6106,10 +6213,6 @@
pixel_y = 1;
pixel_x = -11
},
-/obj/item/clothing/head/gezena/marine/lead/flap{
- pixel_y = 9;
- pixel_x = -11
- },
/obj/item/clothing/suit/armor/gezena/marinecoat{
pixel_y = 8
},
@@ -6117,14 +6220,6 @@
pixel_y = 11;
pixel_x = 5
},
-/obj/item/radio/headset/pgf/captain{
- pixel_x = -4;
- pixel_y = 9
- },
-/obj/item/kitchen/knife/combat/survival{
- pixel_y = 0;
- pixel_x = 1
- },
/obj/item/storage/belt/military/gezena{
pixel_y = 1
},
@@ -6132,6 +6227,10 @@
pixel_x = -8;
pixel_y = -17
},
+/obj/item/radio/headset/pgf/captain{
+ pixel_x = -2;
+ pixel_y = 9
+ },
/obj/item/storage/backpack/duffelbag/sec{
pixel_y = -13
},
@@ -6140,7 +6239,14 @@
pixel_x = -3
},
/obj/item/clothing/head/helmet/gezena{
- pixel_y = -11
+ pixel_x = -11
+ },
+/obj/item/clothing/suit/armor/gezena/marine{
+ pixel_y = 8
+ },
+/obj/item/clothing/head/gezena/flap/marine/lead{
+ pixel_y = 10;
+ pixel_x = -10
},
/turf/open/floor/plasteel/tech,
/area/ship/crew/dorm/dormtwo)
@@ -6171,6 +6277,27 @@
},
/turf/open/floor/plasteel/sepia,
/area/ship/crew/dorm)
+"Wg" = (
+/obj/effect/turf_decal/spline/fancy/opaque/lime{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/lime,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"Wi" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 6;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"Wk" = (
/obj/machinery/power/smes/shuttle/precharged{
dir = 4
@@ -6229,9 +6356,6 @@
dir = 5
},
/obj/structure/catwalk/over/plated_catwalk/dark,
-/obj/structure/cable{
- icon_state = "2-8"
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -6244,6 +6368,17 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating/airless,
/area/ship/external/dark)
+"WU" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 5;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"WV" = (
/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
dir = 4
@@ -6384,13 +6519,11 @@
/turf/open/floor/plasteel/tech,
/area/ship/construction)
"Yd" = (
-/obj/machinery/power/terminal{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "0-2"
- },
/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump"
+ },
/turf/open/floor/plating,
/area/ship/engineering/engines/port)
"Yo" = (
@@ -6565,6 +6698,15 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engines/port)
+"Zr" = (
+/obj/structure/cable,
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 5;
+ mode = 1;
+ id = "crying_sun_grid"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"Zw" = (
/obj/structure/railing{
dir = 4
@@ -6707,14 +6849,14 @@ xz
xz
lc
hJ
-hJ
+ae
is
lc
xz
xz
TV
FN
-fN
+dv
fN
TV
xz
@@ -6735,14 +6877,14 @@ xz
lc
lc
CB
-CB
+AM
UM
lc
-FO
+mf
LD
TV
bB
-Wk
+pK
Wk
TV
TV
@@ -7092,7 +7234,7 @@ xz
(15,1,1) = {"
xz
xz
-FJ
+jg
ow
ow
mG
@@ -7170,7 +7312,7 @@ xK
zz
DT
SB
-CF
+Tp
xz
"}
(18,1,1) = {"
@@ -7289,7 +7431,7 @@ xz
xz
xz
Si
-KB
+DG
KM
Te
EM
@@ -7346,7 +7488,7 @@ xz
xz
xz
eR
-Eu
+Zr
KP
BX
xy
@@ -7478,7 +7620,7 @@ Bq
oR
Ne
SB
-du
+Wi
xz
"}
(29,1,1) = {"
@@ -7683,7 +7825,7 @@ xz
xz
xz
xz
-tU
+WU
xk
UE
pW
@@ -7881,7 +8023,7 @@ xz
xz
xz
MF
-Aq
+ee
Xs
jm
jH
@@ -7914,8 +8056,8 @@ bb
wz
tQ
El
-Ms
-MF
+Wg
+om
MF
eO
Ly
@@ -7941,10 +8083,10 @@ MF
Ig
uh
qj
-Ms
-CZ
-xz
-Mk
+tY
+hX
+MF
+MF
Bc
KS
Sp
@@ -7964,14 +8106,14 @@ xz
xz
xz
xz
-Hb
+WU
vr
dK
Gb
-Ms
+yy
+KH
CZ
xz
-xz
Mk
iK
sQ
@@ -7993,13 +8135,13 @@ xz
xz
xz
cR
-Rx
-bD
-bD
+Sd
+Qi
+bi
+Ms
CZ
xz
xz
-xz
Mk
Er
Mk
@@ -8021,10 +8163,10 @@ xz
xz
xz
xz
-xz
-xz
-xz
-xz
+Rx
+bD
+bD
+CZ
xz
xz
xz
@@ -8141,11 +8283,11 @@ xz
xz
xz
xz
-if
+Hl
xz
xz
xz
-if
+Az
xz
xz
xz
diff --git a/_maps/shuttles/pirate/pirate_libertatia.dmm b/_maps/shuttles/pirate/pirate_libertatia.dmm
index 2fe2cd9ddb20..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,
@@ -566,11 +566,11 @@
/area/ship/security)
"sI" = (
/obj/machinery/firealarm/directional/south,
-/obj/item/kitchen/knife/hunting{
+/obj/item/melee/knife/hunting{
pixel_y = 5
},
-/obj/item/kitchen/knife/hunting,
-/obj/item/kitchen/knife/hunting{
+/obj/item/melee/knife/hunting,
+/obj/item/melee/knife/hunting{
pixel_y = -5
},
/obj/item/storage/belt/security/webbing,
diff --git a/_maps/shuttles/pirate/pirate_noderider.dmm b/_maps/shuttles/pirate/pirate_noderider.dmm
index 2e0352c54a58..6861f971143f 100644
--- a/_maps/shuttles/pirate/pirate_noderider.dmm
+++ b/_maps/shuttles/pirate/pirate_noderider.dmm
@@ -341,10 +341,11 @@
/area/ship/crew)
"et" = (
/obj/machinery/porta_turret/ship{
- dir = 5
+ dir = 5;
+ id = "jupiter_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/security/armory)
"ev" = (
/obj/machinery/power/rtg,
/obj/structure/cable{
@@ -578,10 +579,11 @@
/area/ship/crew)
"iH" = (
/obj/machinery/porta_turret/ship{
- dir = 9
+ dir = 9;
+ id = "jupiter_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/engineering)
"iJ" = (
/obj/effect/turf_decal/industrial/warning,
/obj/effect/turf_decal/spline/fancy/opaque/black{
@@ -965,6 +967,13 @@
/obj/item/pickaxe/drill,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
+"oX" = (
+/obj/machinery/porta_turret/ship{
+ dir = 4;
+ id = "jupiter_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security/armory)
"pi" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -1596,6 +1605,13 @@
/obj/effect/turf_decal/spline/fancy/opaque/black,
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/central)
+"yH" = (
+/obj/machinery/porta_turret/ship{
+ dir = 4;
+ id = "jupiter_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"yI" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -1733,7 +1749,8 @@
/area/ship/engineering)
"Az" = (
/obj/machinery/porta_turret/ship{
- dir = 6
+ dir = 6;
+ id = "jupiter_grid"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -2578,10 +2595,11 @@
/area/ship/maintenance/central)
"MX" = (
/obj/machinery/porta_turret/ship{
- dir = 1
+ dir = 1;
+ id = "jupiter_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/maintenance/central)
"MZ" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -2862,10 +2880,11 @@
/area/ship/cargo)
"RE" = (
/obj/machinery/porta_turret/ship{
- dir = 4
+ dir = 4;
+ id = "jupiter_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/crew)
"RI" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -2889,10 +2908,11 @@
/area/ship/engineering)
"Ss" = (
/obj/machinery/porta_turret/ship{
- dir = 10
+ dir = 10;
+ id = "jupiter_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/engineering)
"SP" = (
/obj/machinery/power/shieldwallgen/anchored,
/obj/structure/cable,
@@ -2982,9 +3002,12 @@
/turf/open/floor/plating/airless,
/area/ship/external)
"VC" = (
-/obj/machinery/porta_turret/ship,
+/obj/machinery/porta_turret/ship{
+ dir = 2;
+ id = "jupiter_grid"
+ },
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/maintenance/central)
"VF" = (
/obj/machinery/ai_slipper,
/obj/effect/turf_decal/spline/fancy/opaque/black,
@@ -4102,7 +4125,7 @@ qc
Th
Kc
by
-RE
+oX
by
oJ
Ne
@@ -4192,7 +4215,7 @@ by
by
by
by
-RE
+yH
by
by
by
diff --git a/_maps/shuttles/pirate/pirate_tortuga.dmm b/_maps/shuttles/pirate/pirate_tortuga.dmm
index 4bc354b31b5c..fc08d44db510 100644
--- a/_maps/shuttles/pirate/pirate_tortuga.dmm
+++ b/_maps/shuttles/pirate/pirate_tortuga.dmm
@@ -753,7 +753,7 @@
/obj/structure/closet/crate{
icon_state = "o2crate"
},
-/obj/item/spear/explosive,
+/obj/item/melee/spear/explosive,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -2375,19 +2375,19 @@
/area/ship/cargo)
"FB" = (
/obj/structure/rack,
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_y = 8;
pixel_x = -9
},
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_y = 7;
pixel_x = 5
},
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_y = 7;
pixel_x = -4
},
-/obj/item/kitchen/knife/combat/survival{
+/obj/item/melee/knife/survival{
pixel_y = 7;
pixel_x = 1
},
@@ -3403,7 +3403,7 @@
/turf/open/floor/plating,
/area/ship/cargo)
"RV" = (
-/obj/item/kitchen/knife/plastic{
+/obj/item/melee/knife/plastic{
pixel_x = 8
},
/obj/item/reagent_containers/food/snacks/grown/potato{
diff --git a/_maps/shuttles/roumain/srm_elder.dmm b/_maps/shuttles/roumain/srm_elder.dmm
index 5ef138ad19db..0e501c62ed57 100644
--- a/_maps/shuttles/roumain/srm_elder.dmm
+++ b/_maps/shuttles/roumain/srm_elder.dmm
@@ -1533,7 +1533,7 @@
/obj/item/clothing/shoes/cowboy,
/obj/item/clothing/shoes/cowboy/black,
/obj/item/clothing/shoes/combat,
-/obj/item/kitchen/knife/hunting,
+/obj/item/melee/knife/hunting,
/obj/item/gps{
pixel_x = -7
},
@@ -2017,7 +2017,7 @@
pixel_x = -2;
pixel_y = 2
},
-/obj/item/kitchen/knife/combat,
+/obj/item/melee/knife/combat,
/obj/effect/turf_decal/spline/fancy/wood{
dir = 5
},
@@ -2462,15 +2462,15 @@
/area/ship/roumain)
"Eh" = (
/obj/structure/table/wood,
-/obj/item/spear/bonespear{
+/obj/item/melee/spear/bone{
pixel_y = -3;
pixel_x = 2
},
-/obj/item/spear/bonespear{
+/obj/item/melee/spear/bone{
pixel_y = 1;
pixel_x = 2
},
-/obj/item/spear/bonespear{
+/obj/item/melee/spear/bone{
pixel_y = 5;
pixel_x = 2
},
@@ -2643,7 +2643,7 @@
/obj/item/clothing/shoes/cowboy/black,
/obj/item/clothing/shoes/cowboy,
/obj/item/clothing/shoes/combat,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
/obj/item/gps{
pixel_x = -7
},
@@ -2687,7 +2687,7 @@
pixel_x = -2;
pixel_y = 2
},
-/obj/item/kitchen/knife/combat,
+/obj/item/melee/knife/combat,
/obj/effect/turf_decal/spline/fancy/wood{
dir = 5
},
@@ -3656,7 +3656,7 @@
/obj/item/clothing/shoes/cowboy,
/obj/item/clothing/shoes/cowboy/black,
/obj/item/clothing/shoes/combat,
-/obj/item/kitchen/knife/hunting,
+/obj/item/melee/knife/hunting,
/obj/item/gps{
pixel_x = -7
},
diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm
index 012261bda246..bacabd6cc23c 100644
--- a/_maps/shuttles/solgov/solgov_chronicle.dmm
+++ b/_maps/shuttles/solgov/solgov_chronicle.dmm
@@ -1,8 +1,8 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/effect/turf_decal/siding/wood/corner{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
@@ -58,8 +58,8 @@
/area/ship/engineering/engine)
"aB" = (
/obj/effect/turf_decal/siding/wood{
- dir = 4;
- color = "#543C30"
+ color = "#543C30";
+ dir = 4
},
/turf/open/floor/wood/mahogany,
/area/ship/crew)
@@ -69,10 +69,10 @@
},
/obj/machinery/button/door{
dir = 8;
- pixel_x = 22;
- pixel_y = 10;
+ id = "sgc_airlock1";
name = "blast door control";
- id = "sgc_airlock1"
+ pixel_x = 22;
+ pixel_y = 10
},
/obj/structure/sign/warning/vacuum/external{
pixel_y = -22
@@ -130,8 +130,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_bridge";
- dir = 8
+ dir = 8;
+ id = "sgc_bridge"
},
/obj/structure/cable{
icon_state = "1-8"
@@ -214,11 +214,11 @@
},
/obj/machinery/light/small/directional/east,
/obj/machinery/button/door{
- pixel_y = 11;
- pixel_x = 22;
dir = 8;
+ id = "sgc_dorm";
name = "window shutter control";
- id = "sgc_dorm"
+ pixel_x = 22;
+ pixel_y = 11
},
/turf/open/floor/wood,
/area/ship/crew)
@@ -251,8 +251,8 @@
/area/ship/crew)
"bH" = (
/obj/structure/closet/secure_closet/captains{
- populate = 0;
- anchored = 1
+ anchored = 1;
+ populate = 0
},
/obj/item/clothing/under/solgov/formal/captain,
/obj/item/clothing/shoes/laceup,
@@ -267,7 +267,7 @@
/obj/item/door_remote/captain,
/obj/item/storage/belt/sabre/solgov,
/obj/item/clothing/under/solgov/dress,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov/captain,
+/obj/item/clothing/suit/armor/vest/solgov/captain,
/obj/item/stamp/solgov,
/obj/item/clothing/suit/armor/solgov_trenchcoat,
/obj/item/spacecash/bundle/loadsamoney,
@@ -304,9 +304,9 @@
/area/ship/engineering)
"cw" = (
/obj/docking_port/mobile{
+ dir = 2;
port_direction = 8;
- preferred_direction = 4;
- dir = 2
+ preferred_direction = 4
},
/turf/closed/wall/mineral/titanium,
/area/ship/crew)
@@ -398,11 +398,11 @@
dir = 1
},
/obj/machinery/button/door{
- pixel_y = -22;
- pixel_x = -9;
+ dir = 1;
id = "sgc_overseer";
name = "window shutter control";
- dir = 1
+ pixel_x = -9;
+ pixel_y = -22
},
/turf/open/floor/wood,
/area/ship/crew/crewtwo)
@@ -477,8 +477,8 @@
/obj/structure/table/wood/fancy/purple,
/obj/item/paper_bin,
/obj/item/desk_flag/solgov{
- pixel_y = 12;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 12
},
/obj/item/pen/solgov,
/obj/effect/turf_decal/spline/fancy/wood{
@@ -504,9 +504,9 @@
},
/obj/machinery/button/door{
dir = 4;
- pixel_y = -10;
+ id = "sgc_engine";
pixel_x = -22;
- id = "sgc_engine"
+ pixel_y = -10
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/engine)
@@ -553,9 +553,9 @@
/area/ship/engineering/engine)
"fl" = (
/obj/structure/closet/secure_closet/miner{
+ anchored = 1;
name = "field engineer's locker";
- populate = 0;
- anchored = 1
+ populate = 0
},
/obj/item/pickaxe/drill/jackhammer,
/obj/item/storage/toolbox/mechanical,
@@ -569,7 +569,7 @@
/obj/item/clothing/suit/hazardvest/solgov,
/obj/item/clothing/accessory/armband/cargo,
/obj/item/clothing/shoes/workboots,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
/obj/item/clothing/gloves/combat,
/obj/item/storage/backpack,
/obj/machinery/light/small/directional/north,
@@ -609,9 +609,9 @@
dir = 1
},
/obj/machinery/computer/bookmanagement{
- pixel_y = 7;
+ dir = 8;
icon_state = "laptop";
- dir = 8
+ pixel_y = 7
},
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -766,8 +766,8 @@
pixel_y = -3
},
/obj/item/reagent_containers/food/snacks/grown/cabbage{
- pixel_y = 6;
- pixel_x = 9
+ pixel_x = 9;
+ pixel_y = 6
},
/turf/open/floor/wood/mahogany,
/area/ship/crew)
@@ -782,10 +782,10 @@
dir = 5
},
/obj/machinery/button/door{
- pixel_y = 23;
- pixel_x = 10;
id = "sgc_captain";
- name = "window shutter control"
+ name = "window shutter control";
+ pixel_x = 10;
+ pixel_y = 23
},
/turf/open/floor/wood,
/area/ship/crew/office)
@@ -799,8 +799,8 @@
/obj/machinery/firealarm/directional/north,
/obj/item/kirbyplants{
icon_state = "applebush";
- pixel_y = 16;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 16
},
/obj/item/kirbyplants{
icon_state = "plant-11";
@@ -836,9 +836,9 @@
"hx" = (
/obj/item/kirbyplants{
icon_state = "plant-11";
+ layer = 2.89;
pixel_x = -12;
- pixel_y = 19;
- layer = 2.89
+ pixel_y = 19
},
/obj/effect/turf_decal/spline/fancy/wood{
dir = 1
@@ -850,8 +850,8 @@
dir = 6
},
/obj/machinery/light_switch{
- pixel_y = 21;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 21
},
/turf/open/floor/wood,
/area/ship/crew/crewtwo)
@@ -911,8 +911,8 @@
"hU" = (
/obj/item/kirbyplants{
icon_state = "plant-06";
- pixel_y = 16;
- pixel_x = 16
+ pixel_x = 16;
+ pixel_y = 16
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
@@ -936,9 +936,9 @@
/area/ship/crew/crewtwo)
"id" = (
/obj/structure/closet/secure_closet/security{
- populate = 0;
+ anchored = 1;
name = "sonnensöldners's locker";
- anchored = 1
+ populate = 0
},
/obj/item/clothing/head/solgov/sonnensoldner,
/obj/structure/sign/poster/solgov/sonnensoldner{
@@ -955,7 +955,7 @@
/obj/item/clothing/gloves/combat,
/obj/item/radio/headset/solgov/alt,
/obj/item/storage/backpack,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov,
+/obj/item/clothing/suit/armor/vest/solgov,
/obj/effect/turf_decal/techfloor{
dir = 1
},
@@ -996,10 +996,10 @@
dir = 10
},
/obj/machinery/button/door{
- pixel_y = 22;
- pixel_x = 9;
id = "sgc_engi";
- name = "window shutter control"
+ name = "window shutter control";
+ pixel_x = 9;
+ pixel_y = 22
},
/turf/open/floor/plasteel/white,
/area/ship/engineering)
@@ -1036,12 +1036,12 @@
"jd" = (
/obj/structure/table/wood,
/obj/structure/railing/wood{
- dir = 6;
- color = "#792f27"
+ color = "#792f27";
+ dir = 6
},
/obj/effect/turf_decal/siding/wood{
- dir = 4;
- color = "#543C30"
+ color = "#543C30";
+ dir = 4
},
/obj/item/reagent_containers/food/snacks/grown/cabbage{
pixel_y = 4
@@ -1057,11 +1057,11 @@
"jJ" = (
/obj/machinery/button/door{
dir = 4;
- pixel_y = -8;
- pixel_x = -22;
id = "sgc_airlock2";
- req_one_access = list(20,19);
- name = "blast door control"
+ name = "blast door control";
+ pixel_x = -22;
+ pixel_y = -8;
+ req_one_access = list(20,19)
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
@@ -1070,8 +1070,8 @@
dir = 10
},
/obj/machinery/light_switch{
- pixel_y = 21;
- pixel_x = 7
+ pixel_x = 7;
+ pixel_y = 21
},
/obj/machinery/light/small/directional/west{
pixel_y = 1
@@ -1138,8 +1138,8 @@
/obj/structure/table/wood/fancy/purple,
/obj/machinery/computer/secure_data/laptop{
dir = 8;
- pixel_y = 5;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = 5
},
/obj/effect/turf_decal/spline/fancy/wood{
dir = 4
@@ -1163,8 +1163,8 @@
"kz" = (
/obj/machinery/telecomms/hub{
autolinkers = list("solgov","broadcasterA","receiverA","solgovPDA","SolHub");
- network = "SolNet";
- id = "Solgov Hub"
+ id = "Solgov Hub";
+ network = "SolNet"
},
/obj/structure/window/reinforced{
dir = 8
@@ -1273,8 +1273,8 @@
dir = 5
},
/obj/structure/sign/warning{
- pixel_y = 9;
- pixel_x = -23
+ pixel_x = -23;
+ pixel_y = 9
},
/obj/machinery/camera/autoname{
dir = 5
@@ -1558,9 +1558,9 @@
req_one_access = list(61,11)
},
/obj/machinery/telecomms/bus{
+ autolinkers = list("processor7","solgov");
id = "bus mainframe";
- network = "SolNet";
- autolinkers = list("processor7","solgov")
+ network = "SolNet"
},
/turf/open/floor/circuit,
/area/ship/engineering)
@@ -1704,8 +1704,8 @@
},
/obj/machinery/door/airlock/engineering{
dir = 4;
- req_access = list(11);
- name = "Equipment Room"
+ name = "Equipment Room";
+ req_access = list(11)
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -1888,9 +1888,9 @@
"sE" = (
/obj/machinery/advanced_airlock_controller{
pixel_y = 24;
- req_ship_access = 1;
req_access = null;
- req_one_access = list(1,48)
+ req_one_access = list(1,48);
+ req_ship_access = 1
},
/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer2{
dir = 4
@@ -1997,8 +1997,8 @@
},
/obj/machinery/telecomms/message_server{
autolinkers = list("solgovPDA");
- network = "SolNet";
- calibrating = 0
+ calibrating = 0;
+ network = "SolNet"
},
/obj/machinery/light/small/directional/east,
/turf/open/floor/circuit/red,
@@ -2034,8 +2034,8 @@
/area/ship/engineering)
"un" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
@@ -2161,8 +2161,8 @@
"vR" = (
/obj/machinery/door/window{
dir = 8;
- opacity = 1;
- name = "Tinted Interior Door"
+ name = "Tinted Interior Door";
+ opacity = 1
},
/obj/structure/cable{
icon_state = "1-4"
@@ -2201,8 +2201,8 @@
},
/obj/machinery/light/floor,
/obj/structure/sign/solgov_seal{
- pixel_y = 0;
- pixel_x = -29
+ pixel_x = -29;
+ pixel_y = 0
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine/hull,
@@ -2214,8 +2214,8 @@
/area/ship/cargo)
"wU" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/turf/open/floor/wood,
@@ -2232,8 +2232,8 @@
"wW" = (
/obj/item/kirbyplants{
icon_state = "plant-11";
- pixel_x = 10;
- layer = 2.89
+ layer = 2.89;
+ pixel_x = 10
},
/obj/structure/table/wood/fancy/purple,
/obj/item/paper/crumpled,
@@ -2263,8 +2263,8 @@
/area/ship/engineering/engine)
"xt" = (
/obj/effect/turf_decal/siding/wood/corner{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/camera/autoname,
@@ -2326,8 +2326,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_captain";
- dir = 4
+ dir = 4;
+ id = "sgc_captain"
},
/obj/structure/cable{
icon_state = "0-2"
@@ -2364,8 +2364,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_bridge";
- dir = 8
+ dir = 8;
+ id = "sgc_bridge"
},
/obj/structure/cable{
icon_state = "2-8"
@@ -2411,8 +2411,8 @@
dir = 4
},
/obj/machinery/door/airlock{
- name = "Dorm";
- dir = 4
+ dir = 4;
+ name = "Dorm"
},
/obj/machinery/door/firedoor/border_only{
dir = 4
@@ -2454,12 +2454,12 @@
"yQ" = (
/obj/item/kirbyplants{
icon_state = "plant-17";
- pixel_y = 23;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 23
},
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/wood,
@@ -2469,15 +2469,15 @@
req_access = null
},
/obj/structure/railing/wood{
- dir = 4;
- color = "#792f27"
+ color = "#792f27";
+ dir = 4
},
/obj/effect/turf_decal/siding/wood{
- dir = 4;
- color = "#543C30"
+ 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" = (
@@ -2491,8 +2491,8 @@
dir = 8
},
/obj/machinery/door/poddoor{
- id = "sgc_engine";
- dir = 4
+ dir = 4;
+ id = "sgc_engine"
},
/obj/structure/cable{
icon_state = "0-8"
@@ -2528,14 +2528,14 @@
/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{
- populate = 0;
- name = "emergency sauerkraut supplies";
desc = "For emergency use only";
+ name = "emergency sauerkraut supplies";
+ populate = 0;
req_access = list(19)
},
/obj/item/reagent_containers/food/snacks/grown/cabbage,
@@ -2650,8 +2650,8 @@
},
/obj/machinery/light/small/directional/south,
/obj/structure/sign/solgov_seal{
- pixel_y = 0;
- pixel_x = -29
+ pixel_x = -29;
+ pixel_y = 0
},
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
@@ -2686,11 +2686,11 @@
/obj/item/pen/solgov,
/obj/item/clothing/suit/hazardvest/solgov,
/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/gloves/combat,
/obj/machinery/light/directional/west,
/obj/structure/sign/poster/solgov/random{
pixel_y = 30
},
+/obj/item/clothing/gloves/color/yellow,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"Au" = (
@@ -2708,8 +2708,8 @@
},
/obj/machinery/firealarm/directional/north,
/obj/machinery/light_switch{
- pixel_y = 21;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 21
},
/obj/item/clothing/under/solgov,
/obj/item/clothing/under/solgov,
@@ -2746,16 +2746,16 @@
},
/obj/machinery/button/door{
dir = 1;
- pixel_y = -22;
- pixel_x = 8;
id = "sgc_cargo";
- name = "blast door control"
+ name = "blast door control";
+ pixel_x = 8;
+ pixel_y = -22
},
/obj/machinery/button/shieldwallgen{
dir = 1;
- pixel_y = -20;
+ id = "sgc_cs";
pixel_x = -2;
- id = "sgc_cs"
+ pixel_y = -20
},
/turf/open/floor/plasteel,
/area/ship/cargo)
@@ -2791,8 +2791,8 @@
"AV" = (
/obj/machinery/telecomms/processor{
autolinkers = list("processor7");
- network = "SolNet";
- id = "Processor"
+ id = "Processor";
+ network = "SolNet"
},
/obj/structure/window/reinforced,
/obj/machinery/door/window/brigdoor/westleft{
@@ -2822,8 +2822,8 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/turf/open/floor/wood,
/area/ship/crew/crewtwo)
@@ -2838,8 +2838,8 @@
/area/ship/engineering/engine)
"Bs" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/turf/open/floor/wood,
/area/ship/bridge)
@@ -2859,8 +2859,8 @@
/area/ship/security/armory)
"BZ" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/structure/cable{
icon_state = "1-2"
@@ -2900,8 +2900,8 @@
/area/ship/crew/crewtwo)
"Cf" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -3056,8 +3056,8 @@
},
/obj/machinery/firealarm/directional/north,
/obj/machinery/light_switch{
- pixel_y = 22;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 22
},
/turf/open/floor/wood,
/area/ship/crew/office)
@@ -3152,14 +3152,14 @@
/area/ship/crew/dorm)
"EF" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/machinery/airalarm/directional/west,
/obj/item/kirbyplants{
icon_state = "applebush";
- pixel_y = 19;
- pixel_x = -8
+ pixel_x = -8;
+ pixel_y = 19
},
/turf/open/floor/wood,
/area/ship/crew/crewtwo)
@@ -3186,8 +3186,8 @@
},
/obj/item/kirbyplants{
icon_state = "plant-22";
- pixel_y = 11;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 11
},
/turf/open/floor/wood,
/area/ship/crew/office)
@@ -3204,31 +3204,31 @@
icon_state = "0-8"
},
/obj/machinery/light_switch{
- pixel_y = 22;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 22
},
/turf/open/floor/plasteel/white,
/area/ship/security/armory)
"Fh" = (
/obj/structure/sign/solgov_seal{
- pixel_y = 0;
- pixel_x = 28
+ pixel_x = 28;
+ pixel_y = 0
},
/turf/open/floor/plating,
/area/ship/external)
"Fl" = (
/obj/docking_port/stationary{
dir = 4;
- height = 15;
dwidth = 15;
+ height = 15;
width = 30
},
/turf/template_noop,
/area/template_noop)
"Fm" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
@@ -3249,8 +3249,8 @@
/area/ship/crew/crewtwo)
"FG" = (
/obj/structure/railing/wood{
- dir = 6;
- color = "#543C30"
+ color = "#543C30";
+ dir = 6
},
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/mug/tea{
@@ -3322,8 +3322,8 @@
dir = 1
},
/obj/structure/sign/warning/vacuum/external{
- pixel_y = 10;
- pixel_x = -30
+ pixel_x = -30;
+ pixel_y = 10
},
/obj/effect/turf_decal/siding/wood{
dir = 10
@@ -3352,12 +3352,6 @@
},
/turf/open/floor/plasteel/white,
/area/ship/engineering)
-"GH" = (
-/obj/effect/turf_decal/corner/opaque/solgovgold{
- dir = 6
- },
-/turf/template_noop,
-/area/template_noop)
"GP" = (
/obj/machinery/door/airlock/solgov{
dir = 4;
@@ -3396,8 +3390,8 @@
/area/ship/security/armory)
"Hb" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/obj/effect/turf_decal/corner/opaque/solgovblue{
dir = 5
@@ -3454,8 +3448,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_overseer";
- dir = 4
+ dir = 4;
+ id = "sgc_overseer"
},
/obj/structure/cable,
/turf/open/floor/plating,
@@ -3479,8 +3473,8 @@
/area/ship/engineering)
"In" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/wood,
@@ -3667,8 +3661,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_captain";
- dir = 4
+ dir = 4;
+ id = "sgc_captain"
},
/obj/structure/cable{
icon_state = "0-8"
@@ -3774,8 +3768,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_captain";
- dir = 4
+ dir = 4;
+ id = "sgc_captain"
},
/obj/structure/cable,
/turf/open/floor/plating,
@@ -3823,8 +3817,8 @@
dir = 8
},
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/obj/structure/railing/wood{
color = "#543C30";
@@ -4004,8 +3998,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_overseer";
- dir = 4
+ dir = 4;
+ id = "sgc_overseer"
},
/obj/structure/cable{
icon_state = "0-4"
@@ -4028,9 +4022,9 @@
dir = 4
},
/obj/structure/chair/plastic{
+ desc = "Welcome to the shower";
dir = 4;
- name = "shower chair";
- desc = "Welcome to the shower"
+ name = "shower chair"
},
/obj/machinery/light/small/directional/west,
/turf/open/floor/plasteel/freezer,
@@ -4071,8 +4065,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_bridge";
- dir = 4
+ dir = 4;
+ id = "sgc_bridge"
},
/obj/structure/cable{
icon_state = "0-8"
@@ -4105,7 +4099,7 @@
/area/ship/crew/office)
"OU" = (
/obj/item/clothing/neck/cloak/overseer,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov/overseer,
+/obj/item/clothing/suit/armor/vest/solgov/overseer,
/obj/structure/closet/secure_closet/head_of_personnel{
anchored = 1;
name = "\proper overseer's locker";
@@ -4131,8 +4125,8 @@
pixel_y = 25
},
/obj/effect/turf_decal/siding/wood/corner{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/structure/cable{
icon_state = "4-10"
@@ -4150,10 +4144,10 @@
dir = 8
},
/obj/machinery/button/door{
- pixel_y = 9;
- pixel_x = 6;
id = "sgc_bridge";
- name = "bridge window lockdown"
+ name = "bridge window lockdown";
+ pixel_x = 6;
+ pixel_y = 9
},
/obj/item/reagent_containers/glass/maunamug{
pixel_x = -3
@@ -4178,8 +4172,8 @@
},
/obj/machinery/light/floor,
/obj/structure/sign/solgov_seal{
- pixel_y = 0;
- pixel_x = -29
+ pixel_x = -29;
+ pixel_y = 0
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine/hull,
@@ -4356,8 +4350,8 @@
},
/obj/machinery/door/airlock/engineering{
dir = 4;
- req_access = list(11);
- name = "Engine Room"
+ name = "Engine Room";
+ req_access = list(11)
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -4406,8 +4400,8 @@
},
/obj/machinery/door/airlock/engineering{
dir = 4;
- req_access = list(11);
- name = "Engineering"
+ name = "Engineering";
+ req_access = list(11)
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -4433,12 +4427,12 @@
"RX" = (
/obj/structure/table/wood,
/obj/item/cutting_board,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/machinery/newscaster/directional/north,
/obj/structure/sink{
- pixel_y = 20;
+ layer = 2.79;
pixel_x = -15;
- layer = 2.79
+ pixel_y = 20
},
/turf/open/floor/wood/mahogany,
/area/ship/crew)
@@ -4471,8 +4465,8 @@
dir = 8
},
/obj/machinery/light_switch{
- pixel_y = 22;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 22
},
/turf/open/floor/wood,
/area/ship/crew/crewtwo)
@@ -4485,8 +4479,8 @@
icon_state = "1-2"
},
/obj/item/reagent_containers/food/drinks/mug/tea{
- pixel_y = 3;
- pixel_x = -4
+ pixel_x = -4;
+ pixel_y = 3
},
/obj/item/reagent_containers/food/drinks/mug/tea{
pixel_x = 10
@@ -4521,7 +4515,7 @@
/obj/item/pen/solgov,
/obj/item/clothing/suit/hazardvest/solgov,
/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/color/yellow,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"SH" = (
@@ -4536,8 +4530,8 @@
/area/ship/crew/dorm)
"SJ" = (
/obj/machinery/telecomms/receiver/preset_left{
- network = "SolNet";
- id = "Receiver"
+ id = "Receiver";
+ network = "SolNet"
},
/obj/structure/window/reinforced{
dir = 1
@@ -4667,11 +4661,11 @@
},
/obj/machinery/button/door{
dir = 8;
+ id = "sgc_piss";
+ name = "bathroom lock";
pixel_x = 22;
pixel_y = -9;
- id = "sgc_piss";
- specialfunctions = 3;
- name = "bathroom lock"
+ specialfunctions = 3
},
/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel/freezer,
@@ -4757,8 +4751,8 @@
"US" = (
/obj/structure/table/wood,
/obj/item/desk_flag/solgov{
- pixel_y = 2;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 2
},
/turf/open/floor/carpet/blue,
/area/ship/crew)
@@ -5026,8 +5020,8 @@
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
/obj/machinery/door/poddoor{
- id = "sgc_bridge";
- dir = 4
+ dir = 4;
+ id = "sgc_bridge"
},
/obj/structure/cable{
icon_state = "0-8"
@@ -5090,8 +5084,8 @@
},
/obj/machinery/door/airlock{
dir = 4;
- name = "Bathroom";
- id_tag = "sgc_piss"
+ id_tag = "sgc_piss";
+ name = "Bathroom"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -5132,8 +5126,8 @@
dir = 8
},
/obj/machinery/light_switch{
- pixel_y = 22;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 22
},
/turf/open/floor/plasteel,
/area/ship/cargo)
@@ -5313,7 +5307,7 @@ pS
pS
KZ
KZ
-GH
+pS
AN
Bz
Wn
diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm
index 86781cc2e251..27427f9bbfa2 100644
--- a/_maps/shuttles/solgov/solgov_inkwell.dmm
+++ b/_maps/shuttles/solgov/solgov_inkwell.dmm
@@ -1,4 +1,11 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 6
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/crew/canteen/kitchen)
"af" = (
/obj/effect/turf_decal/techfloor{
dir = 1
@@ -62,6 +69,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
/area/ship/crew/library)
+"aB" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 5
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/security/armory)
"aO" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
@@ -117,10 +131,10 @@
dir = 8;
id = "sgi_captainbolt";
name = "bolt control";
+ normaldoorcontrol = 1;
pixel_x = 20;
pixel_y = 6;
- specialfunctions = 4;
- normaldoorcontrol = 1
+ specialfunctions = 4
},
/turf/open/floor/wood/walnut,
/area/ship/crew/dorm/dormtwo)
@@ -152,7 +166,7 @@
/obj/item/pen/solgov,
/obj/item/clothing/suit/hazardvest/solgov,
/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/color/yellow,
/obj/effect/turf_decal/techfloor,
/obj/effect/turf_decal/industrial/outline/orange,
/obj/item/clothing/glasses/meson/prescription,
@@ -161,9 +175,9 @@
/area/ship/engineering)
"bu" = (
/obj/structure/closet/secure_closet/security{
- populate = 0;
+ anchored = 1;
name = "sonnensöldners's locker";
- anchored = 1
+ populate = 0
},
/obj/item/clothing/head/solgov/sonnensoldner,
/obj/item/radio{
@@ -177,7 +191,7 @@
/obj/item/clothing/gloves/combat,
/obj/item/radio/headset/solgov/alt,
/obj/item/storage/backpack,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov,
+/obj/item/clothing/suit/armor/vest/solgov,
/obj/effect/turf_decal/techfloor,
/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/window/reinforced{
@@ -220,8 +234,8 @@
/area/ship/crew/library)
"ce" = (
/obj/structure/sign/solgov_seal{
- pixel_y = 0;
- pixel_x = 28
+ pixel_x = 28;
+ pixel_y = 0
},
/turf/open/floor/engine/hull,
/area/ship/external/dark)
@@ -256,8 +270,8 @@
},
/obj/item/kirbyplants{
icon_state = "plant-22";
- pixel_y = 11;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 11
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
@@ -292,9 +306,9 @@
/area/ship/crew/toilet)
"cI" = (
/obj/structure/closet/secure_closet/security{
- populate = 0;
+ anchored = 1;
name = "sonnensöldners's locker";
- anchored = 1
+ populate = 0
},
/obj/item/clothing/head/solgov/sonnensoldner,
/obj/item/radio{
@@ -308,7 +322,7 @@
/obj/item/clothing/gloves/combat,
/obj/item/radio/headset/solgov/alt,
/obj/item/storage/backpack,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov,
+/obj/item/clothing/suit/armor/vest/solgov,
/obj/effect/turf_decal/techfloor,
/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/window/reinforced{
@@ -433,9 +447,9 @@
},
/obj/machinery/door/airlock/solgov{
dir = 4;
- req_one_access = list(20);
+ id_tag = "sgi_captainbolt";
name = "Captain's Quarters";
- id_tag = "sgi_captainbolt"
+ req_one_access = list(20)
},
/obj/machinery/door/firedoor/border_only{
dir = 8
@@ -482,10 +496,10 @@
},
/obj/machinery/button/door{
dir = 8;
- pixel_x = 22;
- pixel_y = 10;
+ id = "sgi_cafeteria";
name = "external shutters control";
- id = "sgi_cafeteria"
+ pixel_x = 22;
+ pixel_y = 10
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -551,9 +565,9 @@
},
/obj/machinery/button/shieldwallgen{
dir = 4;
- pixel_y = 2;
+ id = "sgi_holocargo1";
pixel_x = -18;
- id = "sgi_holocargo1"
+ pixel_y = 2
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/mono,
@@ -614,8 +628,8 @@
/area/ship/cargo)
"eq" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/structure/railing/corner/wood{
color = "#543C30"
@@ -664,9 +678,9 @@
dir = 4;
id = "sgi_bolt";
name = "bathroom lock";
+ normaldoorcontrol = 1;
pixel_x = -20;
pixel_y = 7;
- normaldoorcontrol = 1;
specialfunctions = 4
},
/turf/open/floor/plasteel/freezer,
@@ -1045,6 +1059,13 @@
/obj/item/tank/jetpack/oxygen,
/turf/open/floor/wood/maple,
/area/ship/crew/dorm/dormtwo)
+"hk" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 6
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/crew/toilet)
"hl" = (
/obj/effect/turf_decal/corner/opaque/solgovblue{
dir = 1
@@ -1059,8 +1080,8 @@
"hm" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
- pixel_y = 7;
- pixel_x = 16
+ pixel_x = 16;
+ pixel_y = 7
},
/obj/item/paper_bin,
/obj/item/pen/solgov,
@@ -1088,9 +1109,12 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"hE" = (
-/obj/machinery/porta_turret/ship/solgov,
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 6
+ },
/turf/closed/wall/mineral/titanium,
-/area/ship/bridge)
+/area/ship/storage)
"hF" = (
/obj/effect/turf_decal/siding/wood,
/obj/effect/turf_decal/siding/wood/corner{
@@ -1308,11 +1332,11 @@
/obj/structure/table/wood,
/obj/structure/closet/wall/directional/east,
/obj/machinery/button/door{
- pixel_y = -21;
- pixel_x = -8;
dir = 1;
id = "sgi_dorms";
- name = "dorms shutters control"
+ name = "dorms shutters control";
+ pixel_x = -8;
+ pixel_y = -21
},
/obj/item/clothing/suit/hooded/wintercoat/solgov,
/obj/item/clothing/suit/hooded/wintercoat/solgov,
@@ -1526,9 +1550,9 @@
/obj/structure/closet/cabinet{
name = "armor cabinet"
},
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov,
+/obj/item/clothing/suit/armor/vest/solgov,
+/obj/item/clothing/suit/armor/vest/solgov,
+/obj/item/clothing/suit/armor/vest/solgov,
/obj/item/clothing/head/solgov/sonnensoldner,
/obj/item/clothing/head/solgov/sonnensoldner,
/obj/item/clothing/head/solgov/sonnensoldner,
@@ -1620,6 +1644,13 @@
},
/turf/open/floor/plasteel/mono/dark,
/area/ship/engineering)
+"kE" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 9
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/maintenance/starboard)
"kK" = (
/obj/machinery/door/window/brigdoor/westleft,
/obj/structure/rack,
@@ -1717,8 +1748,8 @@
"li" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
- pixel_y = 7;
- pixel_x = 16
+ pixel_x = 16;
+ pixel_y = 7
},
/obj/item/folder/solgov,
/obj/machinery/light/directional/south,
@@ -1729,9 +1760,9 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/turretid/lethal{
- pixel_y = 0;
- pixel_x = -26
+/obj/machinery/turretid/ship{
+ pixel_x = -26;
+ id = "inkwell_grid"
},
/turf/open/floor/plasteel/stairs/wood/left{
dir = 1
@@ -1836,8 +1867,8 @@
"mf" = (
/obj/item/kirbyplants{
icon_state = "applebush";
- pixel_y = 2;
- pixel_x = -5
+ pixel_x = -5;
+ pixel_y = 2
},
/obj/machinery/light/directional/west,
/turf/open/floor/wood/birch,
@@ -1848,10 +1879,10 @@
/area/ship/crew/canteen/kitchen)
"mz" = (
/obj/structure/closet/crate,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
+/obj/item/food/bread/plain,
+/obj/item/food/bread/plain,
+/obj/item/food/bread/plain,
+/obj/item/food/bread/plain,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -1880,8 +1911,8 @@
/area/ship/hallway/starboard)
"mD" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/walnut,
@@ -2138,6 +2169,13 @@
},
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
+"nN" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 10
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/maintenance/starboard)
"nO" = (
/obj/machinery/computer/cargo/solgov,
/turf/open/floor/wood/maple,
@@ -2153,8 +2191,8 @@
/area/ship/bridge)
"nV" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/structure/railing/wood{
color = "#543C30";
@@ -2213,8 +2251,8 @@
icon_state = "0-8"
},
/obj/machinery/door/poddoor{
- id = "sgi_engine";
- dir = 4
+ dir = 4;
+ id = "sgi_engine"
},
/obj/machinery/door/window/westright{
dir = 4
@@ -2282,6 +2320,7 @@
dir = 4;
name = "Fuel Mixer"
},
+/obj/item/paper/guides/jobs/engi/combustion_thruster,
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
"oH" = (
@@ -2372,8 +2411,8 @@
/area/ship/crew/dorm)
"pu" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 6
@@ -2398,8 +2437,8 @@
color = "#D5A66E"
},
/obj/structure/railing/wood{
- dir = 1;
- color = "#D5A66E"
+ color = "#D5A66E";
+ dir = 1
},
/obj/machinery/power/apc/auto_name/directional/east,
/obj/machinery/light_switch{
@@ -2532,11 +2571,11 @@
/area/ship/crew/canteen)
"qE" = (
/obj/structure/table/wood,
-/obj/item/kitchen/knife/letter_opener{
- pixel_x = -13;
+/obj/item/melee/knife/letter_opener{
icon_state = "letter_opener_b";
- pixel_y = 4;
- name = "boxcutter"
+ name = "boxcutter";
+ pixel_x = -13;
+ pixel_y = 4
},
/obj/item/storage/box/shipping,
/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
@@ -2547,6 +2586,13 @@
},
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
+"qF" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 10
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/maintenance/port)
"qG" = (
/obj/machinery/light/small/directional/south,
/obj/effect/decal/cleanable/dirt/dust,
@@ -2555,8 +2601,8 @@
"qM" = (
/obj/machinery/light/floor,
/obj/structure/sign/solgov_seal{
- pixel_y = 0;
- pixel_x = 28
+ pixel_x = 28;
+ pixel_y = 0
},
/turf/open/floor/engine/hull,
/area/ship/external/dark)
@@ -2592,8 +2638,8 @@
/area/ship/crew/cryo)
"rb" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/effect/turf_decal/box/corners,
/turf/open/floor/plasteel/mono,
@@ -2639,9 +2685,9 @@
/area/ship/cargo)
"rN" = (
/obj/structure/closet/secure_closet/miner{
+ anchored = 1;
name = "field engineer's locker";
- populate = 0;
- anchored = 1
+ populate = 0
},
/obj/item/pickaxe/drill/jackhammer,
/obj/item/storage/toolbox/mechanical,
@@ -2665,7 +2711,7 @@
dir = 4
},
/obj/item/clothing/glasses/meson/prescription,
-/obj/item/kitchen/knife/letter_opener,
+/obj/item/melee/knife/letter_opener,
/obj/item/clothing/glasses/meson,
/obj/machinery/light/directional/north,
/obj/item/storage/bag/ore,
@@ -2956,22 +3002,22 @@
/area/ship/cargo)
"ti" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/obj/effect/turf_decal/siding/wood{
- dir = 4;
- color = "#543C30"
+ color = "#543C30";
+ dir = 4
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
/obj/machinery/button/door{
- pixel_y = -21;
- pixel_x = -8;
dir = 1;
id = "sgi_captain";
- name = "external shutters control"
+ name = "external shutters control";
+ pixel_x = -8;
+ pixel_y = -21
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/walnut,
@@ -2985,9 +3031,9 @@
/area/ship/crew/dorm/dormthree)
"tr" = (
/obj/structure/closet/secure_closet/miner{
+ anchored = 1;
name = "field engineer's locker";
- populate = 0;
- anchored = 1
+ populate = 0
},
/obj/item/pickaxe/drill/jackhammer,
/obj/item/storage/toolbox/mechanical,
@@ -3011,7 +3057,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/item/kitchen/knife/letter_opener,
+/obj/item/melee/knife/letter_opener,
/obj/item/clothing/glasses/meson,
/obj/structure/sign/poster/solgov/random{
pixel_y = 32
@@ -3034,8 +3080,8 @@
dir = 8
},
/obj/machinery/door/poddoor{
- id = "sgi_engine";
- dir = 4
+ dir = 4;
+ id = "sgi_engine"
},
/obj/machinery/door/window/westright{
dir = 4
@@ -3084,8 +3130,8 @@
/obj/structure/table/wood,
/obj/item/radio/intercom/directional/east,
/obj/item/desk_flag/solgov{
- pixel_y = 12;
- pixel_x = -8
+ pixel_x = -8;
+ pixel_y = 12
},
/turf/open/floor/wood,
/area/ship/crew/canteen)
@@ -3296,11 +3342,11 @@
"uS" = (
/obj/structure/table/wood,
/obj/item/cutting_board,
-/obj/item/kitchen/knife,
-/obj/item/reagent_containers/food/condiment/saltshaker{
+/obj/item/melee/knife/kitchen,
+/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
},
@@ -3343,14 +3389,14 @@
"vn" = (
/obj/item/kirbyplants{
icon_state = "plant-11";
+ layer = 2.89;
pixel_x = -12;
- pixel_y = 19;
- layer = 2.89
+ pixel_y = 19
},
/obj/item/kirbyplants{
icon_state = "plant-17";
- pixel_y = 3;
- pixel_x = -10
+ pixel_x = -10;
+ pixel_y = 3
},
/obj/structure/cable{
icon_state = "1-4"
@@ -3395,8 +3441,8 @@
/area/ship/hallway/starboard)
"vz" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#543C30"
+ color = "#543C30";
+ dir = 1
},
/obj/structure/railing/wood{
color = "#543C30"
@@ -3552,8 +3598,8 @@
/area/ship/cargo)
"wk" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/obj/effect/turf_decal/siding/wood/corner{
color = "#543C30"
@@ -3571,6 +3617,13 @@
},
/turf/open/floor/plating,
/area/ship/crew/dorm/dormthree)
+"wn" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 5
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/crew/toilet)
"wo" = (
/obj/item/clothing/gloves/combat,
/obj/item/folder/solgov,
@@ -3581,11 +3634,11 @@
/obj/item/stamp/solgov,
/obj/item/clothing/suit/armor/solgov_trenchcoat,
/obj/item/storage/backpack/satchel,
-/obj/item/kitchen/knife/letter_opener,
+/obj/item/melee/knife/letter_opener,
/obj/structure/closet/secure_closet/quartermaster{
- populate = 0;
anchored = 1;
- name = "\proper logistics deck officer's locker"
+ name = "\proper logistics deck officer's locker";
+ populate = 0
},
/obj/item/clothing/suit/solgov/overcoat,
/obj/item/clothing/head/flatcap/solgov,
@@ -3630,9 +3683,9 @@
/area/ship/cargo)
"wB" = (
/obj/structure/closet/secure_closet/security{
- populate = 0;
+ anchored = 1;
name = "sonnensöldners's locker";
- anchored = 1
+ populate = 0
},
/obj/item/clothing/head/solgov/sonnensoldner,
/obj/item/radio{
@@ -3646,7 +3699,7 @@
/obj/item/clothing/gloves/combat,
/obj/item/radio/headset/solgov/alt,
/obj/item/storage/backpack,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov,
+/obj/item/clothing/suit/armor/vest/solgov,
/obj/effect/turf_decal/techfloor,
/obj/effect/turf_decal/industrial/outline/red,
/turf/open/floor/plasteel/white,
@@ -3886,8 +3939,8 @@
/area/ship/bridge)
"yD" = (
/obj/effect/turf_decal/siding/wood{
- dir = 9;
- color = "#543C30"
+ color = "#543C30";
+ dir = 9
},
/obj/structure/chair/comfy/beige{
dir = 8
@@ -3897,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" = (
@@ -3988,8 +4041,8 @@
},
/obj/machinery/light/directional/south,
/obj/machinery/telecomms/relay{
- network = "SolNet";
- autolinkers = list("SolHub")
+ autolinkers = list("SolHub");
+ network = "SolNet"
},
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/port)
@@ -4186,8 +4239,8 @@
/obj/structure/table/wood,
/obj/item/paper_bin,
/obj/item/desk_flag/solgov{
- pixel_y = 12;
- pixel_x = -8
+ pixel_x = -8;
+ pixel_y = 12
},
/obj/item/pen/solgov,
/turf/open/floor/carpet/blue,
@@ -4198,8 +4251,8 @@
},
/obj/item/kirbyplants{
icon_state = "plant-17";
- pixel_y = 3;
- pixel_x = -10
+ pixel_x = -10;
+ pixel_y = 3
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/sign/poster/solgov/random{
@@ -4225,9 +4278,9 @@
},
/obj/machinery/door/airlock/solgov{
dir = 4;
+ id_tag = "sgi_quartermaster";
name = "Logistics Deck Officer's Quarters";
- req_one_access = list(41);
- id_tag = "sgi_quartermaster"
+ req_one_access = list(41)
},
/obj/machinery/door/firedoor/border_only{
dir = 8
@@ -4255,8 +4308,8 @@
},
/obj/item/kirbyplants{
icon_state = "plant-22";
- pixel_y = 11;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 11
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/white,
@@ -4345,6 +4398,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/white,
/area/ship/engineering)
+"BN" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 9
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/maintenance/port)
"BO" = (
/obj/effect/turf_decal/industrial/warning,
/obj/effect/turf_decal/industrial/warning{
@@ -4424,8 +4484,8 @@
/area/ship/hallway/starboard)
"BY" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
@@ -4537,8 +4597,8 @@
pixel_y = 4
},
/obj/item/stamp/solgov{
- pixel_y = 11;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 11
},
/obj/item/paper_bin{
pixel_x = -5;
@@ -4564,6 +4624,13 @@
},
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
+"CY" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 5
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/crew/canteen/kitchen)
"Dc" = (
/obj/effect/turf_decal/corner/opaque/solgovblue/full,
/obj/structure/cable{
@@ -4587,9 +4654,9 @@
},
/obj/machinery/button/shieldwallgen{
dir = 4;
- pixel_y = 2;
+ id = "sgi_holocargo2";
pixel_x = -18;
- id = "sgi_holocargo2"
+ pixel_y = 2
},
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
@@ -5200,6 +5267,13 @@
},
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
+"Hl" = (
+/obj/machinery/porta_turret/ship/solgov{
+ id = "inkwell_grid";
+ dir = 1
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
"Ho" = (
/obj/structure/chair/comfy/grey/directional/south,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
@@ -5387,13 +5461,13 @@
},
/obj/structure/rack,
/obj/structure/window/reinforced,
-/obj/item/kitchen/knife/letter_opener{
+/obj/item/melee/knife/letter_opener{
pixel_x = -2
},
-/obj/item/kitchen/knife/letter_opener{
+/obj/item/melee/knife/letter_opener{
pixel_x = 1
},
-/obj/item/kitchen/knife/letter_opener{
+/obj/item/melee/knife/letter_opener{
pixel_x = 4
},
/obj/effect/turf_decal/corner/opaque/solgovblue{
@@ -5421,9 +5495,9 @@
/obj/structure/table/wood,
/obj/item/clipboard,
/obj/machinery/button/door{
- pixel_y = 23;
id = "sgi_office";
- name = "external shutters control"
+ name = "external shutters control";
+ pixel_y = 23
},
/turf/open/floor/carpet/blue,
/area/ship/crew/office)
@@ -5739,8 +5813,8 @@
/area/ship/cargo)
"KX" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/obj/machinery/power/apc/auto_name/directional/south,
/obj/machinery/light_switch{
@@ -5838,7 +5912,7 @@
/area/ship/cargo)
"LB" = (
/obj/item/clothing/head/solgov/captain,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov/captain,
+/obj/item/clothing/suit/armor/vest/solgov/captain,
/obj/item/clothing/under/solgov/formal/captain,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/gloves/combat,
@@ -5954,10 +6028,10 @@
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/machinery/button/door{
- pixel_y = 23;
id = "sgi_qm";
name = "logistics deck officer shutters control";
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 23
},
/turf/open/floor/wood/birch,
/area/ship/crew/dorm/dormthree)
@@ -5969,8 +6043,8 @@
dir = 8
},
/obj/machinery/door/poddoor{
- id = "sgi_engine";
- dir = 4
+ dir = 4;
+ id = "sgi_engine"
},
/obj/machinery/door/window/westright{
dir = 4
@@ -6203,8 +6277,8 @@
"Or" = (
/obj/machinery/atmospherics/pipe/layer_manifold,
/obj/structure/sign/solgov_seal{
- pixel_y = 0;
- pixel_x = -1
+ pixel_x = -1;
+ pixel_y = 0
},
/turf/closed/wall/mineral/titanium,
/area/ship/hallway/starboard)
@@ -6221,9 +6295,9 @@
},
/obj/machinery/button/shieldwallgen{
dir = 4;
- pixel_y = -2;
+ id = "sgi_holocargo1";
pixel_x = -18;
- id = "sgi_holocargo1"
+ pixel_y = -2
},
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
@@ -6238,17 +6312,17 @@
pixel_y = 8
},
/obj/item/desk_flag/solgov{
- pixel_y = 12;
- pixel_x = -8
+ pixel_x = -8;
+ pixel_y = 12
},
/obj/item/reagent_containers/food/drinks/mug/coco{
pixel_x = -7;
pixel_y = -2
},
/obj/machinery/button/door{
- pixel_y = 23;
id = "sgi_bridge";
- name = "external shutters control"
+ name = "external shutters control";
+ pixel_y = 23
},
/turf/open/floor/wood/maple,
/area/ship/bridge)
@@ -6395,11 +6469,11 @@
dir = 4
},
/obj/machinery/button/door{
- pixel_y = -23;
- pixel_x = -4;
dir = 1;
id = "sgi_engine";
- name = "engine blast door control"
+ name = "engine blast door control";
+ pixel_x = -4;
+ pixel_y = -23
},
/obj/machinery/atmospherics/pipe/simple/orange/visible{
dir = 4
@@ -6439,8 +6513,8 @@
dir = 8
},
/obj/effect/turf_decal/siding/wood/corner{
- dir = 4;
- color = "#D5A66E"
+ color = "#D5A66E";
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/decal/cleanable/dirt/dust,
@@ -6601,8 +6675,8 @@
"Ru" = (
/obj/structure/table/wood/fancy/blue,
/obj/item/desk_flag/solgov{
- pixel_y = 12;
- pixel_x = -8
+ pixel_x = -8;
+ pixel_y = 12
},
/obj/item/binoculars,
/turf/open/floor/wood/walnut,
@@ -6674,7 +6748,7 @@
/obj/item/pen/solgov,
/obj/item/clothing/suit/hazardvest/solgov,
/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/color/yellow,
/obj/effect/turf_decal/techfloor,
/obj/effect/turf_decal/industrial/outline/orange,
/obj/item/clothing/glasses/meson/prescription,
@@ -6862,9 +6936,9 @@
/area/ship/cargo)
"Td" = (
/obj/structure/closet/secure_closet/miner{
+ anchored = 1;
name = "field engineer's locker";
- populate = 0;
- anchored = 1
+ populate = 0
},
/obj/item/pickaxe/drill/jackhammer,
/obj/item/storage/toolbox/mechanical,
@@ -6885,7 +6959,7 @@
},
/obj/effect/turf_decal/industrial/outline/red,
/obj/item/clothing/glasses/meson/prescription,
-/obj/item/kitchen/knife/letter_opener,
+/obj/item/melee/knife/letter_opener,
/obj/item/clothing/glasses/meson,
/obj/item/storage/bag/ore,
/turf/open/floor/plasteel/white,
@@ -7092,13 +7166,13 @@
/area/ship/bridge)
"Vk" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#543C30"
+ color = "#543C30";
+ dir = 8
},
/obj/structure/dresser,
/obj/item/desk_flag/trans{
- pixel_y = 8;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 8
},
/turf/open/floor/wood/walnut,
/area/ship/crew/dorm)
@@ -7202,8 +7276,8 @@
},
/obj/machinery/door/airlock{
dir = 4;
- name = "Bathroom";
- id_tag = "sgi_bolt"
+ id_tag = "sgi_bolt";
+ name = "Bathroom"
},
/obj/machinery/door/firedoor/border_only{
dir = 4
@@ -7267,8 +7341,8 @@
color = "#D5A66E"
},
/obj/structure/railing/corner/wood{
- dir = 4;
- color = "#D5A66E"
+ color = "#D5A66E";
+ dir = 4
},
/obj/structure/cable{
icon_state = "1-4"
@@ -7292,14 +7366,14 @@
/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{
- populate = 0;
- name = "emergency sauerkraut supplies";
desc = "For emergency use only";
+ name = "emergency sauerkraut supplies";
+ populate = 0;
req_access = list(19)
},
/obj/item/reagent_containers/food/snacks/grown/cabbage,
@@ -7374,9 +7448,9 @@
},
/obj/machinery/button/shieldwallgen{
dir = 4;
- pixel_y = -2;
+ id = "sgi_holocargo2";
pixel_x = -18;
- id = "sgi_holocargo2"
+ pixel_y = -2
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/mono,
@@ -7475,10 +7549,10 @@
},
/obj/effect/turf_decal/corner/opaque/solgovblue,
/obj/machinery/button/door{
- pixel_y = 24;
- pixel_x = -4;
id = "sgi_engine";
- name = "engine blast door control"
+ name = "engine blast door control";
+ pixel_x = -4;
+ pixel_y = 24
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
@@ -7505,8 +7579,8 @@
"XZ" = (
/obj/docking_port/mobile{
can_move_docking_ports = 1;
- preferred_direction = 4;
- port_direction = 4
+ port_direction = 4;
+ preferred_direction = 4
},
/turf/closed/wall/mineral/titanium,
/area/ship/security/armory)
@@ -7619,11 +7693,11 @@
icon_state = "0-8"
},
/obj/machinery/button/door{
- pixel_y = -23;
- pixel_x = -8;
dir = 1;
id = "sgi_external";
- name = "blast door control"
+ name = "blast door control";
+ pixel_x = -8;
+ pixel_y = -23
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/white,
@@ -7688,8 +7762,8 @@
icon_state = "0-8"
},
/obj/machinery/door/poddoor{
- id = "sgi_engine";
- dir = 4
+ dir = 4;
+ id = "sgi_engine"
},
/obj/machinery/door/window/westright{
dir = 4
@@ -7750,8 +7824,8 @@
"ZB" = (
/obj/item/kirbyplants{
icon_state = "plant-17";
- pixel_y = 3;
- pixel_x = -10
+ pixel_x = -10;
+ pixel_y = 3
},
/obj/structure/cable{
icon_state = "1-2"
@@ -7819,10 +7893,10 @@
dir = 8;
id = "sgi_quartermaster";
name = "bolt control";
+ normaldoorcontrol = 1;
pixel_x = 20;
pixel_y = -6;
- specialfunctions = 4;
- normaldoorcontrol = 1
+ specialfunctions = 4
},
/turf/open/floor/wood/birch,
/area/ship/crew/dorm/dormthree)
@@ -7843,12 +7917,12 @@
(1,1,1) = {"
iG
-hE
+BN
UJ
Hp
Hp
zI
-hE
+qF
iG
iG
iG
@@ -7866,12 +7940,12 @@ iG
iG
iG
iG
-hE
+kE
ni
dv
dv
vY
-hE
+nN
iG
iG
"}
@@ -8046,7 +8120,7 @@ DH
iG
"}
(7,1,1) = {"
-hE
+Hl
XY
DE
Cq
@@ -8076,7 +8150,7 @@ Np
ts
qx
ts
-hE
+ts
iG
"}
(8,1,1) = {"
@@ -8488,7 +8562,7 @@ sJ
iG
"}
(20,1,1) = {"
-hE
+aB
SI
kK
LJ
@@ -8999,7 +9073,7 @@ iG
"}
(35,1,1) = {"
iG
-hE
+wn
ea
pc
cH
@@ -9027,7 +9101,7 @@ FE
nA
yE
AA
-hE
+aa
iG
iG
"}
@@ -9037,7 +9111,7 @@ iG
DS
DS
DS
-hE
+hk
iG
iG
iG
@@ -9057,7 +9131,7 @@ iG
iG
iG
iG
-hE
+CY
qc
qc
FE
diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm
index 1235af6da913..9cfda7a14c0d 100644
--- a/_maps/shuttles/solgov/solgov_paracelsus.dmm
+++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm
@@ -193,8 +193,8 @@
/area/ship/hallway/port)
"cf" = (
/obj/effect/turf_decal/siding/wood{
- dir = 4;
- color = "#332521"
+ color = "#332521";
+ dir = 4
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/ebony,
@@ -248,8 +248,8 @@
"cy" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#E3994E"
+ color = "#E3994E";
+ dir = 8
},
/obj/structure/cable{
icon_state = "2-8"
@@ -437,9 +437,9 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/door/airlock/medical{
+ id_tag = "sg_par_surgery_one";
name = "Surgery";
- req_one_access = list(5,69);
- id_tag = "sg_par_surgery_one"
+ req_one_access = list(5,69)
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/dark,
@@ -583,8 +583,8 @@
dir = 8
},
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#792f27"
+ color = "#792f27";
+ dir = 1
},
/obj/structure/sign/poster/solgov/random{
pixel_y = 30
@@ -657,8 +657,8 @@
dir = 4
},
/obj/machinery/door/poddoor{
- id = "sg_par_cargo3";
- dir = 8
+ dir = 8;
+ id = "sg_par_cargo3"
},
/turf/open/floor/plasteel,
/area/ship/cargo)
@@ -687,8 +687,8 @@
"hd" = (
/obj/structure/sink/kitchen{
dir = 8;
- pixel_y = 8;
- pixel_x = 12
+ pixel_x = 12;
+ pixel_y = 8
},
/obj/effect/turf_decal/trimline/opaque/solgovblue/filled/line,
/obj/effect/turf_decal/borderfloorwhite{
@@ -708,10 +708,10 @@
dir = 8;
id = "sg_par_surgery_one";
name = "bolt control";
+ normaldoorcontrol = 1;
pixel_x = 20;
pixel_y = -5;
- specialfunctions = 4;
- normaldoorcontrol = 1
+ specialfunctions = 4
},
/turf/open/floor/plasteel/white,
/area/ship/medical/surgery)
@@ -731,10 +731,10 @@
/area/ship/hallway/starboard)
"hh" = (
/obj/structure/closet/crate,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
-/obj/item/reagent_containers/food/snacks/store/bread/plain,
+/obj/item/food/bread/plain,
+/obj/item/food/bread/plain,
+/obj/item/food/bread/plain,
+/obj/item/food/bread/plain,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -803,7 +803,7 @@
/obj/effect/turf_decal/siding/yellow{
dir = 4
},
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/suit/hazardvest/solgov,
/obj/item/clothing/head/hardhat/solgov,
@@ -1015,8 +1015,8 @@
/obj/docking_port/mobile{
dir = 4;
launch_status = 0;
- preferred_direction = 4;
- port_direction = 2
+ port_direction = 2;
+ preferred_direction = 4
},
/turf/closed/wall/mineral/titanium,
/area/ship/cargo)
@@ -1043,9 +1043,9 @@
"kF" = (
/obj/machinery/door/airlock/solgov{
dir = 4;
- req_one_access = list(20);
+ id_tag = "sg_par_bolt";
name = "Captain's Quarters";
- id_tag = "sg_par_bolt"
+ req_one_access = list(20)
},
/obj/effect/turf_decal/industrial/warning{
dir = 8
@@ -1150,10 +1150,10 @@
/area/ship/cargo)
"lu" = (
/obj/docking_port/stationary{
- width = 30;
- height = 15;
+ dir = 2;
dwidth = 15;
- dir = 2
+ height = 15;
+ width = 30
},
/turf/template_noop,
/area/template_noop)
@@ -1178,8 +1178,8 @@
"lJ" = (
/obj/structure/table/wood,
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#E3994E"
+ color = "#E3994E";
+ dir = 8
},
/obj/machinery/light/directional/north,
/obj/item/radio/intercom/table{
@@ -1243,8 +1243,8 @@
pixel_y = 7
},
/obj/item/desk_flag/trans{
- pixel_y = 2;
- pixel_x = 7
+ pixel_x = 7;
+ pixel_y = 2
},
/turf/open/floor/wood/ebony,
/area/ship/hallway/starboard)
@@ -1333,11 +1333,11 @@
/area/ship/cargo/office)
"nG" = (
/obj/machinery/button/door{
- pixel_y = -22;
- pixel_x = 7;
dir = 1;
id = "sg_par_office";
- name = "shutter control"
+ name = "shutter control";
+ pixel_x = 7;
+ pixel_y = -22
},
/obj/structure/chair/sofa/brown/left/directional/north,
/obj/machinery/airalarm/directional/west,
@@ -1358,8 +1358,8 @@
/area/ship/medical/surgery)
"op" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#332521"
+ color = "#332521";
+ dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/ebony,
@@ -1380,8 +1380,8 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/door/airlock/medical{
- name = "Surgery";
id_tag = "sg_par_surgery_two";
+ name = "Surgery";
req_one_access = list(5,69)
},
/turf/open/floor/plasteel/dark,
@@ -1397,8 +1397,8 @@
"ow" = (
/obj/structure/table,
/obj/item/defibrillator/loaded{
- pixel_y = 3;
- pixel_x = 3
+ pixel_x = 3;
+ pixel_y = 3
},
/obj/item/defibrillator/loaded,
/turf/open/floor/plasteel/mono/white,
@@ -1450,8 +1450,8 @@
/obj/item/bedsheet/solgov,
/obj/structure/curtain/cloth,
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#332521"
+ color = "#332521";
+ dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/west,
@@ -1601,8 +1601,8 @@
/area/ship/cargo)
"qe" = (
/obj/machinery/door/airlock/medical/glass{
- name = "Treatment Center";
dir = 4;
+ name = "Treatment Center";
req_one_access = list(5,45)
},
/obj/effect/turf_decal/industrial/warning{
@@ -1652,7 +1652,7 @@
/obj/effect/turf_decal/siding/yellow{
dir = 4
},
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/suit/hazardvest/solgov,
/obj/item/clothing/head/hardhat/solgov,
@@ -1692,24 +1692,24 @@
"qM" = (
/obj/structure/table/wood,
/obj/machinery/button/door{
- pixel_y = 8;
id = "sg_par_captain";
name = "captain privacy shutters control";
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = 8
},
/obj/machinery/button/door{
- pixel_y = 8;
id = "sg_par_bolt";
name = "captain door bolt control";
+ normaldoorcontrol = 1;
pixel_x = 6;
- specialfunctions = 4;
- normaldoorcontrol = 1
+ pixel_y = 8;
+ specialfunctions = 4
},
/obj/machinery/button/door{
- pixel_y = -2;
id = "sg_par_captain_window";
name = "captain privacy shutters control";
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = -2
},
/turf/open/floor/wood/yew,
/area/ship/crew)
@@ -1744,7 +1744,7 @@
name = "engineer's locker";
req_access = list(11)
},
-/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/color/yellow,
/obj/item/clothing/head/hardhat/solgov,
/obj/item/clothing/under/solgov/formal,
/obj/item/storage/toolbox/mechanical,
@@ -1775,9 +1775,9 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/door/airlock/medical{
+ id_tag = "sg_par_chem_bolt";
name = "Chemistry";
- req_one_access = list(5,10,45);
- id_tag = "sg_par_chem_bolt"
+ req_one_access = list(5,10,45)
},
/obj/effect/mapping_helpers/airlock/unres{
dir = 1
@@ -1901,18 +1901,18 @@
/area/ship/medical/surgery)
"sC" = (
/obj/machinery/button/door{
- pixel_y = -23;
- pixel_x = -8;
dir = 1;
id = "sg_par_cargo1";
- name = "cargo blast door control"
+ name = "cargo blast door control";
+ pixel_x = -8;
+ pixel_y = -23
},
/obj/machinery/button/door{
- pixel_y = -23;
- pixel_x = 6;
dir = 1;
id = "sg_par_cargo2";
- name = "cargo blast door control"
+ name = "cargo blast door control";
+ pixel_x = 6;
+ pixel_y = -23
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
@@ -2031,8 +2031,8 @@
},
/obj/machinery/light/directional/south,
/obj/machinery/telecomms/relay{
- network = "SolNet";
- autolinkers = list("SolHub")
+ autolinkers = list("SolHub");
+ network = "SolNet"
},
/turf/open/floor/wood/mahogany,
/area/ship/bridge)
@@ -2222,15 +2222,15 @@
"wi" = (
/obj/machinery/button/shieldwallgen{
dir = 1;
+ id = "sg_par_holocargo1";
pixel_x = -5;
- pixel_y = -21;
- id = "sg_par_holocargo1"
+ pixel_y = -21
},
/obj/machinery/button/shieldwallgen{
dir = 1;
+ id = "sg_par_holocargo2";
pixel_x = 5;
- pixel_y = -21;
- id = "sg_par_holocargo2"
+ pixel_y = -21
},
/obj/structure/railing/wood{
dir = 4
@@ -2245,8 +2245,8 @@
/area/ship/cargo/office)
"wk" = (
/obj/machinery/door/airlock/solgov{
- name = "Psychologist Office";
- id_tag = "sg_par_psychlock"
+ id_tag = "sg_par_psychlock";
+ name = "Psychologist Office"
},
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -2463,7 +2463,7 @@
/area/ship/bridge)
"ye" = (
/obj/item/clothing/neck/cloak/overseer,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov/overseer,
+/obj/item/clothing/suit/armor/vest/solgov/overseer,
/obj/structure/closet/secure_closet/head_of_personnel{
anchored = 1;
name = "\proper overseer's locker";
@@ -2482,8 +2482,8 @@
/obj/item/stamp/solgov,
/obj/item/clothing/suit/armor/solgov_trenchcoat,
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#792f27"
+ color = "#792f27";
+ dir = 1
},
/obj/machinery/light/directional/north,
/turf/open/floor/wood/mahogany,
@@ -2510,8 +2510,8 @@
"yw" = (
/obj/structure/table,
/obj/item/storage/belt/medical{
- pixel_y = 4;
- pixel_x = 2
+ pixel_x = 2;
+ pixel_y = 4
},
/obj/item/storage/belt/medical{
pixel_x = -2
@@ -2601,8 +2601,8 @@
"zc" = (
/obj/structure/table/wood,
/obj/item/desk_flag/solgov{
- pixel_y = 2;
- pixel_x = 7
+ pixel_x = 7;
+ pixel_y = 2
},
/obj/item/reagent_containers/food/drinks/mug/coco{
pixel_x = -6;
@@ -2685,8 +2685,8 @@
/obj/machinery/power/apc/auto_name/directional/west,
/obj/machinery/light_switch{
dir = 4;
- pixel_y = 12;
- pixel_x = -20
+ pixel_x = -20;
+ pixel_y = 12
},
/obj/machinery/button/door{
dir = 1;
@@ -2729,8 +2729,8 @@
dir = 4
},
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#792f27"
+ color = "#792f27";
+ dir = 1
},
/turf/open/floor/wood/mahogany,
/area/ship/bridge)
@@ -2832,8 +2832,8 @@
"BQ" = (
/obj/structure/sink/kitchen{
dir = 4;
- pixel_y = 16;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 16
},
/obj/effect/turf_decal/borderfloorwhite{
dir = 1
@@ -2898,8 +2898,8 @@
/area/ship/hallway/starboard)
"Cf" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#332521"
+ color = "#332521";
+ dir = 8
},
/obj/structure/cable{
icon_state = "4-8"
@@ -2930,8 +2930,8 @@
/area/ship/cargo/office)
"Cp" = (
/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#E3994E"
+ color = "#E3994E";
+ dir = 1
},
/obj/structure/fluff/hedge/opaque,
/turf/open/floor/wood/yew,
@@ -3535,14 +3535,14 @@
"IO" = (
/obj/structure/table/wood,
/obj/machinery/reagentgrinder{
- pixel_y = 8;
- pixel_x = -7
+ 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
},
@@ -3560,7 +3560,7 @@
/area/ship/crew/crewtwo)
"IX" = (
/obj/item/clothing/head/solgov/captain,
-/obj/item/clothing/suit/armor/vest/bulletproof/solgov/captain,
+/obj/item/clothing/suit/armor/vest/solgov/captain,
/obj/item/clothing/under/solgov/formal/captain,
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/gloves/combat,
@@ -3895,10 +3895,10 @@
dir = 4;
id = "sg_par_chem_bolt";
name = "bolt control";
+ normaldoorcontrol = 1;
pixel_x = -20;
pixel_y = -6;
- specialfunctions = 4;
- normaldoorcontrol = 1
+ specialfunctions = 4
},
/obj/machinery/autolathe,
/turf/open/floor/plasteel/white,
@@ -3951,16 +3951,16 @@
dir = 4
},
/obj/machinery/button/door{
- pixel_y = 24;
+ id = "sg_par_exterior";
name = "external shutters control";
- id = "sg_par_exterior"
+ pixel_y = 24
},
/turf/open/floor/carpet/royalblue,
/area/ship/bridge)
"Mr" = (
/obj/effect/turf_decal/siding/wood/corner{
- dir = 1;
- color = "#E3994E"
+ color = "#E3994E";
+ dir = 1
},
/obj/structure/cable{
icon_state = "1-4"
@@ -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"
@@ -4128,8 +4128,8 @@
/obj/machinery/power/apc/auto_name/directional/west,
/obj/machinery/light_switch{
dir = 4;
- pixel_y = 12;
- pixel_x = -20
+ pixel_x = -20;
+ pixel_y = 12
},
/obj/structure/cable{
icon_state = "0-4"
@@ -4181,8 +4181,8 @@
"OS" = (
/obj/structure/sink/kitchen{
dir = 4;
- pixel_y = 8;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 8
},
/obj/effect/turf_decal/trimline/opaque/solgovblue/filled/line,
/obj/effect/turf_decal/borderfloorwhite{
@@ -4202,10 +4202,10 @@
dir = 4;
id = "sg_par_surgery_two";
name = "bolt control";
+ normaldoorcontrol = 1;
pixel_x = -20;
pixel_y = -5;
- specialfunctions = 4;
- normaldoorcontrol = 1
+ specialfunctions = 4
},
/turf/open/floor/plasteel/white,
/area/ship/medical/surgery)
@@ -4267,8 +4267,8 @@
/area/ship/crew/crewtwo)
"Pg" = (
/obj/effect/turf_decal/siding/wood{
- dir = 8;
- color = "#332521"
+ color = "#332521";
+ dir = 8
},
/obj/item/kirbyplants/random,
/turf/open/floor/wood/ebony,
@@ -4381,8 +4381,8 @@
dir = 8
},
/obj/machinery/door/poddoor{
- id = "sg_par_cargo3";
- dir = 8
+ dir = 8;
+ id = "sg_par_cargo3"
},
/turf/open/floor/plasteel,
/area/ship/cargo)
@@ -4506,11 +4506,11 @@
"Rs" = (
/obj/effect/turf_decal/techfloor,
/obj/machinery/button/door{
- pixel_y = -23;
- pixel_x = -4;
dir = 1;
id = "sg_par_engine";
- name = "Engine Blast Door Control"
+ name = "Engine Blast Door Control";
+ pixel_x = -4;
+ pixel_y = -23
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/power/terminal{
@@ -4659,10 +4659,10 @@
dir = 1
},
/obj/machinery/button/door{
- pixel_y = 24;
- pixel_x = -4;
id = "sg_par_engine";
- name = "engine blast door control"
+ name = "engine blast door control";
+ pixel_x = -4;
+ pixel_y = 24
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/power/terminal{
@@ -4715,7 +4715,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table/wood,
/obj/item/cutting_board,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/item/kitchen/rollingpin,
/turf/open/floor/wood/ebony,
/area/ship/crew/canteen)
@@ -4821,8 +4821,8 @@
/area/ship/crew/toilet)
"Uc" = (
/obj/effect/turf_decal/siding/wood{
- dir = 4;
- color = "#332521"
+ color = "#332521";
+ dir = 4
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
@@ -4898,8 +4898,8 @@
/area/ship/bridge)
"UO" = (
/obj/machinery/smartfridge/bloodbank/preloaded{
- pixel_y = 32;
- density = 0
+ density = 0;
+ pixel_y = 32
},
/obj/effect/turf_decal/trimline/opaque/solgovblue/filled/line{
dir = 1
@@ -4914,18 +4914,18 @@
"UV" = (
/obj/structure/curtain/cloth,
/obj/machinery/button/door{
- pixel_y = 24;
- pixel_x = -6;
id = "sg_par_psychlock";
name = "psychology office door bolt";
normaldoorcontrol = 1;
+ pixel_x = -6;
+ pixel_y = 24;
specialfunctions = 4
},
/obj/machinery/button/door{
- pixel_y = 24;
- pixel_x = 6;
id = "sg_par_psych";
- name = "psychology office privacy shutters"
+ name = "psychology office privacy shutters";
+ pixel_x = 6;
+ pixel_y = 24
},
/turf/open/floor/carpet/royalblue,
/area/ship/crew/office)
@@ -5162,12 +5162,12 @@
pixel_y = 15
},
/obj/item/cigbutt{
- pixel_y = 9;
- pixel_x = -11
+ pixel_x = -11;
+ pixel_y = 9
},
/obj/item/clothing/mask/cigarette/robust{
- pixel_y = 10;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 10
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/maintenance/port)
diff --git a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt
index 732d43938f30..14a2fff4895e 100644
--- a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt
+++ b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt
@@ -13,6 +13,11 @@ Size = "12x7"
Purpose = "A multi-role dropship used by almost every group faring space. Its ease of manufacture and high mobility makes it ideal for transport."
File Path = "_maps\shuttles\subshuttles\indepenent_kunai.dmm"
+Name = "Tanto-class Drop Pod"
+Size = "6x5"
+Purpose = "A combat-ready drop pod designed for quick deployment in hectic battles. Its lack of holofields makes it unsuitable for environments without sufficient atmosphere, unless depressurised beforehand."
+File Path = "_maps\shuttles\subshuttles\indepenent_kunai.dmm"
+
Name = "Haste-class Patient Recovery Ship"
Size = "6x4"
Purpose = "A small, nimble ship utilized as an ambulance by Inteq forces."
diff --git a/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm b/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm
index d9c361701213..20fe92d380f7 100644
--- a/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm
+++ b/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm
@@ -370,7 +370,9 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/obj/structure/cable,
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
diff --git a/_maps/shuttles/subshuttles/frontiersmen_gut.dmm b/_maps/shuttles/subshuttles/frontiersmen_gut.dmm
index 6044e1011891..d27da7c54e5e 100644
--- a/_maps/shuttles/subshuttles/frontiersmen_gut.dmm
+++ b/_maps/shuttles/subshuttles/frontiersmen_gut.dmm
@@ -61,7 +61,8 @@
/area/ship/storage)
"dJ" = (
/obj/machinery/porta_turret/ship/ballistic{
- dir = 5
+ dir = 5;
+ id = "gut_grid"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal,
/area/ship/storage)
@@ -305,6 +306,10 @@
dir = 9
},
/obj/machinery/computer/helm,
+/obj/machinery/turretid/ship{
+ pixel_y = 24;
+ id = "gut_grid"
+ },
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/storage)
"sk" = (
@@ -397,7 +402,8 @@
/area/ship/storage)
"vJ" = (
/obj/machinery/porta_turret/ship/ballistic{
- dir = 9
+ dir = 9;
+ id = "gut_grid"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal,
/area/ship/storage)
@@ -478,7 +484,8 @@
/area/ship/storage)
"GQ" = (
/obj/machinery/porta_turret/ship/ballistic{
- dir = 5
+ dir = 5;
+ id = "gut_grid"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/storage)
@@ -576,7 +583,8 @@
/area/ship/storage)
"RY" = (
/obj/machinery/porta_turret/ship/ballistic{
- dir = 9
+ dir = 9;
+ id = "gut_grid"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/storage)
diff --git a/_maps/shuttles/subshuttles/independent_kunai.dmm b/_maps/shuttles/subshuttles/independent_kunai.dmm
index e1975d0a1737..1cd4e42355e5 100644
--- a/_maps/shuttles/subshuttles/independent_kunai.dmm
+++ b/_maps/shuttles/subshuttles/independent_kunai.dmm
@@ -260,7 +260,9 @@
dir = 1
},
/obj/structure/cable,
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 1
+ },
/obj/machinery/door/poddoor/shutters{
id = "polengine";
name = "Engine Shutters"
@@ -278,7 +280,9 @@
dir = 1
},
/obj/structure/cable,
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/obj/machinery/door/poddoor/shutters{
id = "polengine"
},
diff --git a/_maps/shuttles/subshuttles/independent_sugarcube.dmm b/_maps/shuttles/subshuttles/independent_sugarcube.dmm
index 11a8de916cd6..0504142f55b3 100644
--- a/_maps/shuttles/subshuttles/independent_sugarcube.dmm
+++ b/_maps/shuttles/subshuttles/independent_sugarcube.dmm
@@ -235,7 +235,7 @@
/obj/effect/decal/cleanable/glass,
/obj/item/shard,
/obj/item/shard,
-/obj/item/kitchen/knife/shiv,
+/obj/item/melee/knife/shiv,
/turf/open/floor/plating,
/area/ship/storage)
"B" = (
diff --git a/_maps/shuttles/subshuttles/independent_tanto.dmm b/_maps/shuttles/subshuttles/independent_tanto.dmm
new file mode 100644
index 000000000000..e99e605fed4b
--- /dev/null
+++ b/_maps/shuttles/subshuttles/independent_tanto.dmm
@@ -0,0 +1,333 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"e" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/ert_shuttle_spawn,
+/turf/open/floor/pod,
+/area/ship/storage)
+"f" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "pod_aft"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/docking_port/mobile{
+ dir = 4;
+ name = "tanto pod";
+ port_direction = 2;
+ preferred_direction = 4
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/storage)
+"l" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ layer = 3.3
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = -6;
+ pixel_x = -22;
+ name = "Aft Door";
+ id = "pod_aft"
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_x = -32;
+ name = "Window Shutters";
+ id = "pod_window"
+ },
+/obj/machinery/door/window/brigdoor/northleft,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 6;
+ pixel_x = -22;
+ name = "Fore Door";
+ id = "pod_fore"
+ },
+/obj/effect/landmark/ert_shuttle_spawn,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/storage)
+"n" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/item/radio/intercom/directional/south,
+/obj/effect/landmark/ert_shuttle_brief_spawn,
+/turf/open/floor/pod,
+/area/ship/storage)
+"p" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/obj/structure/cable/yellow,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pod_window"
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/storage)
+"s" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod,
+/area/ship/storage)
+"w" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/storage)
+"x" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/power/port_gen/pacman,
+/obj/item/stack/sheet/mineral/plasma/twenty,
+/obj/item/stack/sheet/mineral/plasma/five,
+/obj/item/stack/sheet/mineral/plasma/five,
+/obj/item/wrench,
+/obj/machinery/door/window/brigdoor/southleft,
+/obj/structure/closet/wall/red/directional/west{
+ secure = 1;
+ locked = 1
+ },
+/obj/item/pickaxe/mini,
+/obj/item/flashlight/flare{
+ pixel_y = 3
+ },
+/obj/item/flashlight/flare,
+/obj/item/flashlight/flare{
+ pixel_y = -3
+ },
+/obj/item/storage/toolbox/emergency/shuttle/electric,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/mask/gas,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/mask/gas,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/storage)
+"z" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/computer/helm{
+ dir = 8;
+ layer = 3.3
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/storage)
+"C" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/power/smes/shuttle/micro/precharged{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pod_window"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/storage)
+"E" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pod_window"
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/storage)
+"J" = (
+/obj/structure/window/reinforced,
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/small/directional/east{
+ pixel_y = -6
+ },
+/obj/machinery/light_switch{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/light_switch{
+ pixel_x = 22;
+ pixel_y = 5;
+ dir = 8
+ },
+/obj/effect/landmark/ert_shuttle_spawn,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/storage)
+"K" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/pod,
+/area/ship/storage)
+"L" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "pod_fore"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/storage)
+"S" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/power/smes/shuttle/micro/precharged{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pod_window"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/storage)
+"Y" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/storage)
+
+(1,1,1) = {"
+a
+w
+f
+w
+a
+"}
+(2,1,1) = {"
+Y
+w
+e
+w
+Y
+"}
+(3,1,1) = {"
+C
+l
+K
+x
+S
+"}
+(4,1,1) = {"
+E
+z
+s
+J
+p
+"}
+(5,1,1) = {"
+w
+w
+n
+w
+w
+"}
+(6,1,1) = {"
+a
+w
+L
+w
+a
+"}
diff --git a/_maps/shuttles/subshuttles/inteq_anvil.dmm b/_maps/shuttles/subshuttles/inteq_anvil.dmm
index 5e591774e259..61d7946fb794 100644
--- a/_maps/shuttles/subshuttles/inteq_anvil.dmm
+++ b/_maps/shuttles/subshuttles/inteq_anvil.dmm
@@ -67,7 +67,9 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
"g" = (
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/obj/structure/cable,
/obj/structure/window/reinforced{
dir = 1
@@ -189,13 +191,6 @@
"w" = (
/turf/template_noop,
/area/template_noop)
-"x" = (
-/obj/machinery/porta_turret/ship/weak{
- faction = list("playerInteq","turret");
- dir = 1
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"y" = (
/obj/machinery/power/terminal,
/obj/structure/cable{
@@ -223,10 +218,11 @@
/obj/effect/turf_decal/corner/opaque/yellow,
/obj/structure/chair/comfy/shuttle,
/obj/effect/landmark/ert_shuttle_spawn,
-/obj/machinery/turretid{
- pixel_y = 25
- },
/obj/machinery/light/directional/east,
+/obj/machinery/turretid/ship{
+ pixel_y = 24;
+ id = "anvil_grid"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"B" = (
@@ -383,8 +379,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"T" = (
-/obj/machinery/porta_turret/ship/weak{
- faction = list("playerInteq","turret")
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 8;
+ id = "anvil_grid"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -430,7 +427,7 @@
(1,1,1) = {"
w
-x
+T
X
u
Q
diff --git a/_maps/shuttles/subshuttles/inteq_haste.dmm b/_maps/shuttles/subshuttles/inteq_haste.dmm
index 25324d952a5e..177dcd41bc5c 100644
--- a/_maps/shuttles/subshuttles/inteq_haste.dmm
+++ b/_maps/shuttles/subshuttles/inteq_haste.dmm
@@ -121,7 +121,9 @@
/obj/structure/cable/yellow{
icon_state = "0-4"
},
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"K" = (
diff --git a/_maps/shuttles/subshuttles/pgf_nail.dmm b/_maps/shuttles/subshuttles/pgf_nail.dmm
index 9a5224dc4573..6b0c12bc7f53 100644
--- a/_maps/shuttles/subshuttles/pgf_nail.dmm
+++ b/_maps/shuttles/subshuttles/pgf_nail.dmm
@@ -115,6 +115,11 @@
/obj/structure/chair/comfy/shuttle{
dir = 8
},
+/obj/machinery/turretid/ship{
+ pixel_y = -30;
+ pixel_x = -2;
+ id = "nail_grid"
+ },
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"p" = (
@@ -390,8 +395,10 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/machinery/porta_turret/ship/weak{
- dir = 8
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 8;
+ mode = 1;
+ id = "nail_grid"
},
/turf/open/floor/engine/hull/reinforced/interior,
/area/ship/external/dark)
diff --git a/_maps/shuttles/subshuttles/syndicate_runner.dmm b/_maps/shuttles/subshuttles/syndicate_runner.dmm
index 69430bf09157..d7f64a0d43ee 100644
--- a/_maps/shuttles/subshuttles/syndicate_runner.dmm
+++ b/_maps/shuttles/subshuttles/syndicate_runner.dmm
@@ -1,6 +1,8 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/obj/structure/window/reinforced{
dir = 4
},
diff --git a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
index ffc2472b5dec..253a82277fdf 100644
--- a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
+++ b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
@@ -549,7 +549,7 @@
dir = 4
},
/obj/item/storage/box/rxglasses/spyglasskit,
-/obj/item/kitchen/knife/letter_opener,
+/obj/item/melee/knife/letter_opener,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"nF" = (
@@ -887,13 +887,6 @@
/obj/effect/landmark/observer_start,
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
-"tV" = (
-/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 4;
- pixel_x = 8
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"uq" = (
/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 10
@@ -902,10 +895,11 @@
/area/ship/bridge)
"uR" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 9
+ dir = 9;
+ id = "kansatsu_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/engineering)
"vk" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -1135,10 +1129,11 @@
/area/ship/cargo)
"Ah" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 6
+ dir = 6;
+ id = "kansatsu_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/engineering)
"AM" = (
/obj/effect/turf_decal/trimline/opaque/syndiered/filled/warning,
/obj/effect/turf_decal/trimline/opaque/syndiered/filled/warning{
@@ -1194,10 +1189,11 @@
/area/ship/crew/dorm)
"CR" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 10
+ dir = 10;
+ id = "kansatsu_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/engineering)
"CU" = (
/obj/machinery/power/smes/shuttle/precharged{
dir = 4
@@ -1313,7 +1309,7 @@
/obj/machinery/porta_turret/ship/syndicate/weak{
dir = 4;
pixel_x = 8;
- pixel_y = 4
+ id = "kansatsu_grid"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1417,10 +1413,11 @@
/area/ship/bridge)
"KA" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 5
+ dir = 5;
+ id = "kansatsu_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/engineering)
"KP" = (
/obj/structure/closet/wall/directional/north{
name = "emergency rum cabinet"
@@ -1457,10 +1454,11 @@
dir = 4;
name = "Captain's Chair"
},
-/obj/machinery/turretid{
- pixel_y = 28
- },
/obj/effect/turf_decal/trimline/opaque/bar,
+/obj/machinery/turretid/ship{
+ pixel_y = 26;
+ id = "kansatsu_grid"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"MH" = (
@@ -1846,7 +1844,7 @@
/obj/item/implanter/stealth,
/obj/item/modular_computer/laptop/preset/civilian,
/obj/item/clothing/mask/chameleon,
-/obj/item/kitchen/knife/combat,
+/obj/item/melee/knife/combat,
/obj/item/reagent_containers/pill/cyanide,
/obj/item/reagent_containers/pill/cyanide,
/obj/item/reagent_containers/pill/cyanide,
@@ -1950,10 +1948,10 @@
layer = 2.91
},
/obj/effect/turf_decal/box,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
-/obj/item/kitchen/knife/combat/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
/obj/item/pickaxe,
/obj/item/pickaxe,
/obj/item/pickaxe,
@@ -2302,7 +2300,7 @@ YQ
YQ
YQ
YQ
-tV
+GV
bO
bO
dA
diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
index ae46dc0286f3..66133d79d47a 100644
--- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
+++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
@@ -177,8 +177,8 @@
dir = 1
},
/obj/machinery/light_switch{
- pixel_y = 23;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 23
},
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
@@ -333,6 +333,13 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/mineral/plastitanium/red,
/area/ship/security/armory)
+"ge" = (
+/obj/machinery/porta_turret/ship/syndicate{
+ dir = 2;
+ id = "hyena_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm)
"gg" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
@@ -880,27 +887,6 @@
},
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
-"pt" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/item/clothing/shoes/workboots/mining,
-/obj/item/clothing/accessory/armband/cargo,
-/obj/item/storage/belt/mining,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/welding,
-/obj/machinery/light/small/directional/north,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "mining";
- name = "wrecker's locker";
- req_access = list(48)
- },
-/obj/machinery/firealarm/directional/east,
-/obj/effect/turf_decal/industrial/outline,
-/obj/item/clothing/under/syndicate/ngr/jumpsuit,
-/obj/item/clothing/suit/hazardvest/ngr,
-/obj/item/clothing/head/hardhat/ngr,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
"pu" = (
/obj/structure/bed,
/obj/item/bedsheet/black,
@@ -1027,12 +1013,13 @@
/obj/machinery/power/apc/auto_name/directional/south,
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -16;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = -16
},
/obj/item/clothing/under/syndicate/ngr,
/obj/item/clothing/suit/hazardvest/ngr,
/obj/item/clothing/head/hardhat/ngr,
+/obj/item/clothing/gloves/color/red/insulated,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage)
"rM" = (
@@ -1135,25 +1122,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/port)
-"tx" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "mining";
- name = "wrecker's locker";
- req_access = list(48)
- },
-/obj/item/clothing/shoes/workboots/mining,
-/obj/item/clothing/accessory/armband/cargo,
-/obj/item/storage/belt/mining,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/welding,
-/obj/machinery/airalarm/directional/north,
-/obj/item/clothing/under/syndicate/ngr/jumpsuit,
-/obj/item/clothing/suit/hazardvest/ngr,
-/obj/item/clothing/head/hardhat/ngr,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
"tI" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -1268,8 +1236,8 @@
},
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -16;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = -16
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/port)
@@ -1330,8 +1298,8 @@
"wP" = (
/obj/effect/turf_decal/industrial/outline,
/obj/structure/closet/crate{
- name = "desert equipment crate";
- desc = "A rectangular steel crate containing supplies to survive a desert environment more easily."
+ desc = "A rectangular steel crate containing supplies to survive a desert environment more easily.";
+ name = "desert equipment crate"
},
/obj/item/clothing/neck/shemagh/ngr,
/obj/item/clothing/neck/shemagh/ngr,
@@ -1429,6 +1397,19 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
+"yH" = (
+/obj/effect/turf_decal/industrial/outline,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/rack,
+/obj/item/gun/energy/plasmacutter{
+ pixel_y = 10
+ },
+/obj/item/gun/energy/plasmacutter,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage)
"yM" = (
/obj/item/lighter{
pixel_x = -8;
@@ -1637,32 +1618,6 @@
},
/turf/open/floor/plating,
/area/ship/storage)
-"Bv" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "warden";
- name = "foreman's locker";
- req_access = list(56)
- },
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/under/syndicate/ngr/officer,
-/obj/item/clothing/gloves/combat,
-/obj/item/storage/belt/utility/chief{
- name = "\improper Foreman's toolbelt"
- },
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/welding,
-/obj/item/storage/toolbox/syndicate,
-/obj/item/wrench/combat,
-/obj/item/clothing/accessory/holster,
-/obj/item/grenade/chem_grenade/metalfoam,
-/obj/machinery/airalarm/directional/west,
-/obj/item/clothing/suit/ngr,
-/obj/item/clothing/head/hardhat/ngr/foreman,
-/obj/item/tank/jetpack/suit,
-/obj/item/storage/pistolcase/stechkin,
-/turf/open/floor/carpet/red,
-/area/ship/cargo/office)
"BB" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/corner_techfloor_grid{
@@ -1671,15 +1626,19 @@
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"BG" = (
-/obj/machinery/porta_turret/ship/ballistic,
+/obj/machinery/porta_turret/ship/syndicate{
+ dir = 8;
+ id = "hyena_grid"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
+/area/ship/storage)
"BR" = (
/obj/machinery/porta_turret/ship/syndicate{
- dir = 1
+ dir = 1;
+ id = "hyena_grid"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
+/area/ship/maintenance/port)
"BZ" = (
/obj/structure/window/reinforced/tinted/frosted,
/obj/machinery/suit_storage_unit/inherit{
@@ -1752,8 +1711,8 @@
},
/obj/machinery/light/small/directional/north,
/obj/machinery/light_switch{
- pixel_y = 22;
- pixel_x = 7
+ pixel_x = 7;
+ pixel_y = 22
},
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
@@ -1852,8 +1811,8 @@
},
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -16;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = -16
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -1944,9 +1903,9 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/radio/intercom/directional/north,
/obj/machinery/light_switch{
+ dir = 4;
pixel_x = -20;
- pixel_y = 12;
- dir = 4
+ pixel_y = 12
},
/turf/open/floor/carpet/red,
/area/ship/crew)
@@ -1971,6 +1930,26 @@
/obj/machinery/airalarm/directional/south,
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/port)
+"GM" = (
+/obj/effect/turf_decal/industrial/outline,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "mining";
+ name = "wrecker's locker";
+ req_access = list(48)
+ },
+/obj/item/clothing/shoes/workboots/mining,
+/obj/item/clothing/accessory/armband/cargo,
+/obj/item/storage/belt/mining,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/welding,
+/obj/machinery/airalarm/directional/north,
+/obj/item/clothing/under/syndicate/ngr/jumpsuit,
+/obj/item/clothing/suit/hazardvest/ngr,
+/obj/item/clothing/head/hardhat/ngr,
+/obj/item/pickaxe/drill,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage)
"GV" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/crew/dorm)
@@ -2323,9 +2302,12 @@
/turf/open/floor/carpet/red_gold,
/area/ship/bridge)
"NA" = (
-/obj/machinery/porta_turret/ship/syndicate,
+/obj/machinery/porta_turret/ship/syndicate{
+ dir = 2;
+ id = "hyena_grid"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
+/area/ship/maintenance/starboard)
"NF" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/cargo)
@@ -2491,10 +2473,37 @@
/area/ship/cargo)
"Qz" = (
/obj/machinery/porta_turret/ship/syndicate{
- dir = 6
+ dir = 6;
+ id = "hyena_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/maintenance/fore)
+"QG" = (
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "warden";
+ name = "foreman's locker";
+ req_access = list(56)
+ },
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr/officer,
+/obj/item/clothing/gloves/combat,
+/obj/item/storage/belt/utility/chief{
+ name = "\improper Foreman's toolbelt"
+ },
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/welding,
+/obj/item/storage/toolbox/syndicate,
+/obj/item/wrench/combat,
+/obj/item/clothing/accessory/holster,
+/obj/item/grenade/chem_grenade/metalfoam,
+/obj/machinery/airalarm/directional/west,
+/obj/item/clothing/suit/ngr,
+/obj/item/clothing/head/hardhat/ngr/foreman,
+/obj/item/tank/jetpack/suit,
+/obj/item/storage/pistolcase/ringneck,
+/turf/open/floor/carpet/red,
+/area/ship/cargo/office)
"QW" = (
/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
/obj/machinery/door/poddoor/shutters{
@@ -2852,8 +2861,8 @@
/obj/effect/turf_decal/trimline/opaque/red/filled/corner,
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -16;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = -16
},
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
@@ -2867,8 +2876,9 @@
/turf/open/floor/carpet/red_gold,
/area/ship/bridge)
"Up" = (
-/obj/machinery/porta_turret/ship/syndicate/heavy{
- dir = 4
+/obj/machinery/porta_turret/ship/syndicate{
+ dir = 4;
+ id = "hyena_grid"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -2884,10 +2894,11 @@
/area/ship/crew)
"UN" = (
/obj/machinery/porta_turret/ship/syndicate{
- dir = 1
+ dir = 1;
+ id = "hyena_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/hallway/central)
"UX" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/crew)
@@ -3038,6 +3049,28 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo/office)
+"Xv" = (
+/obj/effect/turf_decal/industrial/outline,
+/obj/item/clothing/shoes/workboots/mining,
+/obj/item/clothing/accessory/armband/cargo,
+/obj/item/storage/belt/mining,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/welding,
+/obj/machinery/light/small/directional/north,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "mining";
+ name = "wrecker's locker";
+ req_access = list(48)
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/effect/turf_decal/industrial/outline,
+/obj/item/clothing/under/syndicate/ngr/jumpsuit,
+/obj/item/clothing/suit/hazardvest/ngr,
+/obj/item/clothing/head/hardhat/ngr,
+/obj/item/pickaxe/drill,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage)
"Xz" = (
/obj/machinery/power/shuttle/engine/fueled/plasma{
dir = 4
@@ -3131,8 +3164,8 @@
req_access = null
},
/obj/machinery/light_switch{
- pixel_y = 23;
- pixel_x = -12
+ pixel_x = -12;
+ pixel_y = 23
},
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
@@ -3152,19 +3185,6 @@
/obj/structure/closet/emcloset/wall/directional/north,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
-"Yc" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/rack,
-/obj/item/pickaxe/drill/jackhammer/old{
- pixel_y = 10
- },
-/obj/item/pickaxe/drill/jackhammer/old,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
"Yv" = (
/obj/machinery/nuclearbomb/beer{
desc = "An evidently-decommissioned nuclear warhead. Sloppy paint on the casing declares 'VICTORY OVER NANOTRASEN,' followed by a badly-smudged date of 25-something. A drink tap has been drilled directly into the metal.";
@@ -3384,7 +3404,7 @@ iT
XO
VX
iL
-Yc
+yH
Sm
Sa
sE
@@ -3423,7 +3443,7 @@ KH
Ic
vG
iT
-tx
+GM
dh
Oy
KX
@@ -3444,7 +3464,7 @@ uq
La
Gw
iT
-pt
+Xv
qO
xx
rF
@@ -3578,7 +3598,7 @@ UX
GV
GV
GV
-NA
+ge
nn
Zb
"}
@@ -3598,7 +3618,7 @@ bN
Zn
fL
KW
-Bv
+QG
QW
nn
Zb
diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
index bfbdc4e43e04..c466f5351f9c 100644
--- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
+++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
@@ -122,6 +122,9 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
+"bC" = (
+/turf/template_noop,
+/area/ship/cargo)
"bM" = (
/obj/effect/turf_decal/industrial/warning{
dir = 8
@@ -212,10 +215,10 @@
},
/obj/structure/bed/dogbed,
/mob/living/simple_animal/hostile/asteroid/elite/broodmother_child{
- faction = list("neutral","playerSyndicate");
- name = "Goliath";
+ desc = "A little guy.";
environment_smash = 0;
- desc = "A little guy."
+ faction = list("neutral","playerSyndicate");
+ name = "Goliath"
},
/obj/effect/decal/cleanable/wrapping,
/turf/open/floor/plasteel/tech,
@@ -312,10 +315,11 @@
/area/ship/hallway/central)
"ea" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 6
+ dir = 6;
+ id = "komodo_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/maintenance/starboard)
"en" = (
/obj/structure/railing/corner{
dir = 8
@@ -332,8 +336,8 @@
icon_state = "0-8"
},
/obj/machinery/light_switch{
- pixel_y = 21;
- pixel_x = 12
+ pixel_x = 12;
+ pixel_y = 21
},
/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/mineral/plastitanium,
@@ -513,9 +517,9 @@
icon_state = "4-8"
},
/obj/machinery/light_switch{
- pixel_y = -23;
+ dir = 1;
pixel_x = 3;
- dir = 1
+ pixel_y = -23
},
/turf/open/floor/plasteel/stairs{
dir = 8
@@ -960,11 +964,30 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/hallway/aft)
+"jy" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/storage/toolbox/ammo/c10mm,
+/obj/structure/closet/secure_closet/wall/directional/west{
+ icon_state = "sec_wall";
+ name = "Ammo Locker";
+ req_access_txt = "1"
+ },
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ship/security/armory)
"jA" = (
/obj/machinery/door/poddoor/shutters{
dir = 8;
id = "syndie_mechbay";
- name = "Mechbay"
+ name = "Exosuit Bay"
},
/obj/machinery/door/firedoor/border_only{
dir = 8
@@ -1082,15 +1105,36 @@
/obj/structure/table/reinforced,
/turf/open/floor/circuit/green/off,
/area/ship/maintenance/starboard)
+"kw" = (
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "hos";
+ name = "captain's locker";
+ req_access_txt = "20"
+ },
+/obj/item/clothing/gloves/krav_maga/combatglovesplus,
+/obj/item/clothing/glasses/thermal/eyepatch,
+/obj/item/gun/ballistic/revolver/viper,
+/obj/item/clothing/under/syndicate/sniper,
+/obj/item/ammo_box/a357,
+/obj/item/ammo_box/a357,
+/obj/item/radio/headset/syndicate/alt/leader,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/hardliners/officer,
+/obj/item/clothing/suit/toggle/armor/vest/hardliners,
+/obj/item/clothing/head/hardliners/peaked,
+/turf/open/floor/carpet/black,
+/area/ship/bridge)
"kD" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/crew/canteen)
"kG" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 1
+ dir = 1;
+ id = "komodo_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/hallway/central)
"kI" = (
/turf/open/floor/engine,
/area/ship/bridge)
@@ -1153,30 +1197,6 @@
},
/turf/open/floor/circuit/green/off,
/area/ship/maintenance/starboard)
-"lr" = (
-/obj/structure/closet/wall/orange/directional/south{
- name = "Engineering locker"
- },
-/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/head/welding,
-/obj/item/clothing/head/hardhat/red,
-/obj/item/clothing/head/hardhat/weldhat/orange{
- pixel_x = 7;
- pixel_y = 2
- },
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/storage/belt/utility/full/engi,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "engine fuel pump"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/item/clothing/under/syndicate/hardliners,
-/obj/item/clothing/suit/hazardvest/hardliners,
-/turf/open/floor/plasteel/tech,
-/area/ship/engineering)
"ls" = (
/obj/structure/railing/corner,
/obj/effect/turf_decal/steeldecal/steel_decals_central4,
@@ -1300,6 +1320,13 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
+"mq" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 1;
+ id = "komodo_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/cargo)
"my" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -1390,8 +1417,8 @@
},
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -23;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = -23
},
/turf/open/floor/mineral/plastitanium,
/area/ship/hallway/aft)
@@ -1418,8 +1445,8 @@
},
/obj/machinery/button/shieldwallgen{
id = "komodo_port";
- pixel_y = 24;
- pixel_x = 6
+ pixel_x = 6;
+ pixel_y = 24
},
/obj/machinery/button/door{
id = "Artillery1shutter";
@@ -1666,10 +1693,11 @@
/area/ship/engineering)
"pN" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 9
+ dir = 9;
+ id = "komodo_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/engineering)
"qf" = (
/obj/structure/railing{
dir = 8
@@ -1699,8 +1727,8 @@
/obj/effect/turf_decal/industrial/fire,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/trash/syndi_cakes{
- pixel_y = 6;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = 6
},
/obj/item/t_scanner{
pixel_x = -2;
@@ -1773,6 +1801,20 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/hallway/central)
+"qP" = (
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
+/obj/item/gun/ballistic/automatic/pistol/ringneck{
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/industrial/fire{
+ dir = 8
+ },
+/obj/structure/guncloset,
+/obj/structure/railing,
+/obj/item/gun/ballistic/automatic/smg/cobra,
+/obj/machinery/light/directional/east,
+/turf/open/floor/pod/dark,
+/area/ship/security/armory)
"qZ" = (
/obj/structure/chair/comfy/grey/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
@@ -1846,16 +1888,16 @@
},
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -23;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = -23
},
/turf/open/floor/mineral/plastitanium,
/area/ship/crew/canteen)
"rN" = (
/obj/structure/table/reinforced,
/obj/item/toy/figure/syndie{
- pixel_y = 5;
- pixel_x = -8
+ pixel_x = -8;
+ pixel_y = 5
},
/obj/machinery/light/directional/south,
/obj/machinery/fax/syndicate,
@@ -1863,10 +1905,11 @@
/area/ship/bridge)
"rS" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 5
+ dir = 5;
+ id = "komodo_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/maintenance/port)
"rX" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -1994,25 +2037,6 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/hallway/central)
-"sX" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/storage/toolbox/ammo/c10mm,
-/obj/structure/closet/secure_closet/wall/directional/west{
- icon_state = "sec_wall";
- name = "Ammo Locker";
- req_access_txt = "1"
- },
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/smgm45,
-/obj/item/ammo_box/magazine/smgm45,
-/turf/open/floor/mineral/plastitanium/red,
-/area/ship/security/armory)
"sY" = (
/obj/effect/turf_decal/corner_techfloor_grid{
dir = 6
@@ -2024,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
},
@@ -2044,7 +2068,7 @@
/obj/machinery/button/door{
dir = 4;
id = "syndie_mechbay";
- name = "mechbay door";
+ name = "Exosuit Bay Door";
pixel_x = -24
},
/obj/item/radio/intercom/directional/south,
@@ -2099,7 +2123,7 @@
/obj/machinery/button/door{
dir = 8;
id = "syndie_mechbay";
- name = "mechbay door";
+ name = "Exosuit Bay Door";
pixel_x = 24
},
/obj/effect/turf_decal/techfloor{
@@ -2201,8 +2225,8 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light_switch{
- pixel_y = 23;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 23
},
/obj/machinery/firealarm/directional/east{
pixel_y = -8
@@ -2475,6 +2499,7 @@
/obj/machinery/atmospherics/components/trinary/mixer/flipped{
dir = 1
},
+/obj/item/paper/guides/jobs/engi/combustion_thruster,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"wJ" = (
@@ -2724,20 +2749,6 @@
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/engineering)
-"yH" = (
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
-/obj/item/gun/ballistic/automatic/pistol/syndicate{
- pixel_y = 3
- },
-/obj/effect/turf_decal/industrial/fire{
- dir = 8
- },
-/obj/structure/guncloset,
-/obj/structure/railing,
-/obj/item/gun/ballistic/automatic/smg/c20r,
-/obj/machinery/light/directional/east,
-/turf/open/floor/pod/dark,
-/area/ship/security/armory)
"yJ" = (
/obj/structure/frame/machine,
/obj/structure/grille/broken,
@@ -2871,32 +2882,6 @@
},
/turf/open/floor/plating,
/area/ship/bridge)
-"AL" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/item/gun/ballistic/automatic/pistol/syndicate{
- pixel_y = 3
- },
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/c10mm,
-/obj/item/clothing/gloves/tackler/combat/insulated,
-/obj/structure/closet/secure_closet/wall/directional/west{
- icon_state = "sec_wall";
- name = "Sergeant's Locker";
- req_access_txt = "58"
- },
-/obj/item/melee/classic_baton/telescopic,
-/obj/item/clothing/suit/armor/vest/blueshirt,
-/obj/item/clothing/accessory/holster,
-/obj/item/clothing/shoes/combat,
-/obj/item/radio/headset/syndicate,
-/obj/item/clothing/under/syndicate/hardliners/officer,
-/obj/item/clothing/suit/armor/hardliners/sergeant,
-/obj/item/clothing/head/hardliners/peaked,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
"AS" = (
/obj/effect/turf_decal/industrial/warning,
/obj/effect/decal/cleanable/dirt,
@@ -2943,9 +2928,12 @@
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"Bx" = (
-/obj/machinery/porta_turret/ship/syndicate/weak,
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 10;
+ id = "komodo_grid"
+ },
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/crew/dorm)
"BK" = (
/obj/effect/turf_decal/box,
/obj/machinery/shower{
@@ -2997,6 +2985,13 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/engineering)
+"BU" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 2;
+ id = "komodo_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security/armory)
"BY" = (
/obj/effect/turf_decal/industrial/warning/corner{
dir = 1
@@ -3115,26 +3110,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
-"Ek" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "hos";
- name = "captain's locker";
- req_access_txt = "20"
- },
-/obj/item/clothing/gloves/krav_maga/combatglovesplus,
-/obj/item/clothing/glasses/thermal/eyepatch,
-/obj/item/gun/ballistic/revolver/syndicate,
-/obj/item/clothing/under/syndicate/sniper,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/radio/headset/syndicate/alt/leader,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/under/syndicate/hardliners/officer,
-/obj/item/clothing/suit/toggle/armor/vest/hardliners,
-/obj/item/clothing/head/hardliners/peaked,
-/turf/open/floor/carpet/black,
-/area/ship/bridge)
"El" = (
/obj/structure/filingcabinet,
/obj/item/folder/documents/syndicate/red,
@@ -3162,6 +3137,13 @@
"Ep" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/cargo)
+"Es" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 9;
+ id = "komodo_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/cargo)
"EB" = (
/obj/structure/closet/crate{
name = "food crate"
@@ -3491,6 +3473,13 @@
/obj/structure/catwalk/over,
/turf/open/floor/plating,
/area/ship/engineering)
+"Hx" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 2;
+ id = "komodo_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/hallway/central)
"HF" = (
/obj/effect/turf_decal/industrial/warning{
dir = 4
@@ -3596,8 +3585,8 @@
dir = 1;
id = "syndiewarship_armorybay";
name = "Weapon Hold";
- req_access_txt = "3";
- pixel_y = -26
+ pixel_y = -26;
+ req_access_txt = "3"
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -3654,8 +3643,8 @@
pixel_y = 16
},
/obj/structure/mirror{
- pixel_y = 30;
- layer = 2.8
+ layer = 2.8;
+ pixel_y = 30
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/west,
@@ -3803,6 +3792,39 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/hallway/central)
+"KJ" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 10;
+ id = "komodo_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/maintenance/starboard)
+"KK" = (
+/obj/structure/closet/wall/orange/directional/south{
+ name = "Engineering locker"
+ },
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/head/welding,
+/obj/item/clothing/head/hardhat/red,
+/obj/item/clothing/head/hardhat/weldhat/orange{
+ pixel_x = 7;
+ pixel_y = 2
+ },
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/storage/belt/utility/full/engi,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/item/clothing/under/syndicate/hardliners,
+/obj/item/clothing/suit/hazardvest/hardliners,
+/obj/item/gun/energy/plasmacutter,
+/obj/item/clothing/gloves/color/red/insulated,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
"KL" = (
/obj/structure/table/reinforced{
color = "#c1b6a5"
@@ -3861,8 +3883,8 @@
/area/ship/hallway/central)
"Lj" = (
/obj/item/scalpel{
- pixel_y = 6;
- pixel_x = 10
+ pixel_x = 10;
+ pixel_y = 6
},
/obj/structure/table/reinforced,
/obj/item/hemostat,
@@ -3982,8 +4004,8 @@
},
/obj/item/clothing/under/suit/waiter/syndicate,
/obj/machinery/vending/boozeomat/syndicate_access{
- pixel_x = 32;
- density = 0
+ density = 0;
+ pixel_x = 32
},
/turf/open/floor/mineral/plastitanium,
/area/ship/crew/canteen)
@@ -4130,8 +4152,8 @@
"ND" = (
/obj/structure/railing,
/obj/machinery/atmospherics/components/unary/tank/air{
- piping_layer = 2;
- dir = 8
+ dir = 8;
+ piping_layer = 2
},
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/effect/decal/cleanable/greenglow,
@@ -4165,8 +4187,8 @@
/obj/structure/table/reinforced,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/airalarm/directional/north,
-/obj/machinery/turretid{
- pixel_y = 2
+/obj/machinery/turretid/ship{
+ id = "komodo_grid"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -4204,10 +4226,11 @@
/area/ship/hallway/central)
"OP" = (
/obj/machinery/porta_turret/ship/syndicate/weak{
- dir = 10
+ dir = 10;
+ id = "komodo_grid"
},
/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
+/area/ship/engineering)
"OQ" = (
/turf/closed/wall/mineral/plastitanium,
/area/ship/maintenance/starboard)
@@ -4268,7 +4291,7 @@
/turf/open/floor/plating,
/area/ship/engineering)
"PA" = (
-/obj/structure/mecha_wreckage/mauler,
+/obj/structure/mecha_wreckage/touro,
/obj/effect/turf_decal/techfloor{
dir = 8
},
@@ -4583,6 +4606,13 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
+"RX" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 9;
+ id = "komodo_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/maintenance/port)
"RZ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -5075,8 +5105,8 @@
dir = 8;
id = "warshipbridge";
name = "Bridge Window";
- pixel_y = -1;
- pixel_x = -2
+ pixel_x = -2;
+ pixel_y = -1
},
/obj/item/reagent_containers/food/drinks/mug{
pixel_x = -6;
@@ -5348,6 +5378,32 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
+"YY" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/item/gun/ballistic/automatic/pistol/ringneck{
+ pixel_y = 3
+ },
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/c10mm,
+/obj/item/clothing/gloves/tackler/combat/insulated,
+/obj/structure/closet/secure_closet/wall/directional/west{
+ icon_state = "sec_wall";
+ name = "Sergeant's Locker";
+ req_access_txt = "58"
+ },
+/obj/item/melee/classic_baton/telescopic,
+/obj/item/clothing/suit/armor/vest/blueshirt,
+/obj/item/clothing/accessory/holster,
+/obj/item/clothing/shoes/combat,
+/obj/item/radio/headset/syndicate,
+/obj/item/clothing/under/syndicate/hardliners/officer,
+/obj/item/clothing/suit/armor/hardliners/sergeant,
+/obj/item/clothing/head/hardliners/peaked,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
"Zb" = (
/obj/structure/railing{
dir = 4
@@ -5463,8 +5519,8 @@
},
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -21;
- pixel_x = 6
+ pixel_x = 6;
+ pixel_y = -21
},
/obj/machinery/firealarm/directional/south{
pixel_x = -6
@@ -5627,7 +5683,7 @@ wG
yb
YR
nA
-lr
+KK
hY
"}
(6,1,1) = {"
@@ -5732,7 +5788,7 @@ CM
"}
(11,1,1) = {"
CM
-CM
+bC
Ep
uJ
es
@@ -5752,7 +5808,7 @@ Bx
"}
(12,1,1) = {"
CM
-kG
+Es
Ep
jA
jA
@@ -5825,7 +5881,7 @@ kh
gE
ue
vp
-sX
+jy
Ni
km
tf
@@ -5864,7 +5920,7 @@ jv
VR
gE
gE
-yH
+qP
VU
MV
eY
@@ -5892,7 +5948,7 @@ tf
"}
(19,1,1) = {"
CM
-kG
+mq
Ep
Ep
We
@@ -5908,7 +5964,7 @@ gE
wT
Im
gE
-Bx
+BU
"}
(20,1,1) = {"
CM
@@ -5967,7 +6023,7 @@ Dd
Dd
Dd
Dd
-Bx
+Hx
CM
"}
(23,1,1) = {"
@@ -6132,7 +6188,7 @@ CM
"}
(31,1,1) = {"
CM
-pN
+RX
gN
nU
iL
@@ -6148,7 +6204,7 @@ Dd
JJ
Hc
OQ
-OP
+KJ
"}
(32,1,1) = {"
CM
@@ -6182,7 +6238,7 @@ wR
ae
GS
tC
-Ek
+kw
RK
tC
yd
@@ -6262,7 +6318,7 @@ It
dG
WR
ub
-AL
+YY
jn
tC
dc
diff --git a/_maps/shuttles/syndicate/syndicate_litieguai.dmm b/_maps/shuttles/syndicate/syndicate_litieguai.dmm
index 09ad85bc606f..2b12f177f57e 100644
--- a/_maps/shuttles/syndicate/syndicate_litieguai.dmm
+++ b/_maps/shuttles/syndicate/syndicate_litieguai.dmm
@@ -1032,15 +1032,15 @@
name = "firearms locker";
req_access_txt = "5"
},
-/obj/item/ammo_box/magazine/m10mm/rubber,
-/obj/item/ammo_box/magazine/m10mm/rubber,
-/obj/item/ammo_box/magazine/m10mm/rubber,
-/obj/item/ammo_box/magazine/m10mm/ap,
-/obj/item/ammo_box/magazine/m10mm/ap,
-/obj/item/ammo_box/magazine/m10mm/ap,
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/crew)
@@ -1500,7 +1500,7 @@
/obj/item/gun/syringe,
/obj/item/reagent_containers/glass/bottle/sodium_thiopental,
/obj/item/clothing/glasses/hud/health/night,
-/obj/item/gun/ballistic/automatic/pistol/syndicate,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
/obj/item/clothing/gloves/color/latex/nitrile/evil,
/obj/item/clothing/suit/toggle/labcoat/raincoat,
/obj/item/clothing/shoes/combat,
@@ -2849,7 +2849,7 @@
name = "captain's closet";
req_access_txt = "20"
},
-/obj/item/gun/ballistic/revolver/syndicate,
+/obj/item/gun/ballistic/revolver/viper,
/obj/item/clothing/suit/armor/vest/capcarapace/cybersun,
/obj/item/clothing/shoes/combat,
/obj/item/clothing/head/HoS/cybersun,
diff --git a/_maps/shuttles/syndicate/syndicate_panacea.dmm b/_maps/shuttles/syndicate/syndicate_panacea.dmm
index 702798048e53..3d26ff6512b5 100644
--- a/_maps/shuttles/syndicate/syndicate_panacea.dmm
+++ b/_maps/shuttles/syndicate/syndicate_panacea.dmm
@@ -2877,7 +2877,7 @@
pixel_x = 8;
pixel_y = -6
},
-/obj/item/clothing/suit/armor/vest/bulletproof/suns/xo{
+/obj/item/clothing/suit/armor/vest/suns/xo{
pixel_y = 7;
pixel_x = -5
},
@@ -3100,7 +3100,7 @@
pixel_x = 6;
pixel_y = -9
},
-/obj/item/clothing/suit/armor/vest/bulletproof/suns/captain{
+/obj/item/clothing/suit/armor/vest/suns/captain{
pixel_y = -1
},
/obj/item/clothing/under/syndicate/suns/captain{
@@ -4895,7 +4895,7 @@
pixel_x = -1;
pixel_y = 4
},
-/obj/item/clothing/suit/armor/vest/bulletproof/suns{
+/obj/item/clothing/suit/armor/vest/suns{
pixel_y = 4;
pixel_x = 8
},
@@ -6072,7 +6072,7 @@
/area/ship/external/dark)
"JJ" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/store/cake/lemon{
+/obj/item/food/cake/lemon{
pixel_y = 5
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -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
},
@@ -7344,7 +7344,7 @@
/obj/item/cutting_board{
pixel_y = 3
},
-/obj/item/kitchen/knife/butcher{
+/obj/item/melee/knife/butcher{
pixel_y = 4;
pixel_x = 4
},
diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
index 1adef58948fe..29f4bc28922b 100644
--- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
+++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
@@ -83,47 +83,6 @@
},
/turf/open/floor/mineral/plastitanium,
/area/ship/bridge)
-"aD" = (
-/obj/structure/sign/poster/contraband/m90{
- icon_state = "poster-m90";
- pixel_x = -32
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 9
- },
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "syndicate";
- name = "lieutenant locker";
- req_access = list(3,150)
- },
-/obj/item/clothing/under/syndicate/ngr/officer,
-/obj/item/clothing/suit/armor/ngr/captain,
-/obj/item/clothing/head/ngr/peaked,
-/obj/item/clothing/shoes/combat,
-/obj/item/megaphone/sec{
- name = "syndicate megaphone"
- },
-/obj/item/storage/pistolcase/stechkin,
-/obj/item/clothing/head/HoS/beret/syndicate,
-/obj/item/radio/headset/syndicate/alt/leader,
-/obj/item/clothing/gloves/krav_maga/combatglovesplus,
-/obj/item/ammo_box/magazine/m10mm/ap,
-/obj/item/ammo_box/magazine/m10mm/ap,
-/obj/item/clothing/suit/armor/hos/trenchcoat,
-/obj/machinery/button/door{
- pixel_x = 9;
- pixel_y = 25;
- id = "twinkle_armory";
- name = "Armory Access";
- req_access = list(3,150)
- },
-/obj/item/ammo_box/c10mm,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security)
"aE" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -132,9 +91,36 @@
},
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
+"aF" = (
+/obj/structure/rack,
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/no_mag{
+ pixel_x = -7;
+ pixel_y = 7
+ },
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/no_mag{
+ pixel_y = -3;
+ pixel_x = 2
+ },
+/obj/machinery/light/directional/north,
+/obj/item/ammo_box/magazine/m12g_bulldog/drum{
+ pixel_x = -8;
+ pixel_y = -4
+ },
+/obj/item/ammo_box/magazine/m12g_bulldog/drum{
+ pixel_y = -7
+ },
+/obj/item/ammo_box/magazine/m12g_bulldog/drum{
+ pixel_y = -9;
+ pixel_x = -10
+ },
+/obj/item/ammo_box/magazine/m12g_bulldog/drum{
+ pixel_y = -12
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security/armory)
"aG" = (
/obj/structure/closet/secure_closet/wall/directional/east,
-/obj/item/kitchen/knife,
+/obj/item/melee/knife/kitchen,
/obj/item/cutting_board,
/obj/item/clothing/under/suit/waiter/syndicate,
/obj/item/clothing/suit/hazardvest/donk,
@@ -277,11 +263,6 @@
"bQ" = (
/obj/effect/turf_decal/corner/opaque/syndiered/bordercorner,
/obj/machinery/light/directional/north,
-/obj/machinery/turretid{
- pixel_y = 32;
- req_access = null;
- req_access_txt = "150"
- },
/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
/obj/effect/turf_decal/corner/opaque/syndiered/bordercorner{
dir = 4
@@ -898,31 +879,6 @@
"fH" = (
/turf/open/floor/engine,
/area/ship/engineering/engine)
-"fJ" = (
-/obj/structure/closet/secure_closet/security{
- populate = 0;
- icon_state = "syndicate";
- name = "operative's locker"
- },
-/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
-/obj/item/gun/ballistic/automatic/pistol/syndicate/no_mag,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/storage/belt/security/webbing{
- name = "syndicate webbing";
- desc = "Unique and versatile chest rig, can hold syndicate gear."
- },
-/obj/item/radio/headset/syndicate/alt{
- keyslot = null
- },
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/gloves/color/black,
-/obj/machinery/light/directional/east,
-/obj/item/flashlight/seclite,
-/obj/item/kitchen/knife/combat,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security)
"fK" = (
/obj/machinery/light/directional/south,
/turf/open/floor/mineral/plastitanium/red,
@@ -1195,6 +1151,30 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
+"hh" = (
+/obj/structure/closet/secure_closet/engineering_personal{
+ req_access = list(150,10);
+ populate = 0
+ },
+/obj/effect/turf_decal/corner/opaque/orange{
+ dir = 10
+ },
+/obj/machinery/light/directional/south,
+/obj/item/clothing/shoes/magboots/syndie,
+/obj/item/clothing/head/helmet/space/syndicate/black/engie,
+/obj/item/clothing/suit/space/syndicate/black/engie,
+/obj/item/pipe_dispenser,
+/obj/item/storage/belt/utility/syndicate,
+/obj/item/clothing/under/syndicate/gec,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/head/hardhat/red{
+ name = "hard hat"
+ },
+/obj/item/gun/energy/plasmacutter,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"hr" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -1218,6 +1198,33 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
+"hB" = (
+/obj/effect/turf_decal/corner/opaque/orange/three_quarters{
+ dir = 1
+ },
+/obj/item/clothing/under/syndicate/gec,
+/obj/item/clothing/shoes/magboots/syndie,
+/obj/item/clothing/head/helmet/space/syndicate/black/engie,
+/obj/item/clothing/suit/space/syndicate/black/engie,
+/obj/structure/closet/secure_closet/engineering_personal{
+ req_access = list(150,10);
+ populate = 0
+ },
+/obj/item/pipe_dispenser,
+/obj/structure/sign/poster/contraband/gec{
+ pixel_y = -32
+ },
+/obj/item/storage/belt/utility/syndicate,
+/obj/item/clothing/under/syndicate/gec,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/head/hardhat/red{
+ name = "hard hat"
+ },
+/obj/item/gun/energy/plasmacutter,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
"hN" = (
/obj/effect/turf_decal/corner/opaque/orange{
dir = 5
@@ -1547,6 +1554,15 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
+"iX" = (
+/obj/machinery/porta_turret/ship/syndicate/heavy{
+ dir = 10;
+ id = "twink_grid"
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal{
+ rad_insulation = 0
+ },
+/area/ship/engineering/atmospherics)
"iZ" = (
/obj/effect/turf_decal/trimline/opaque/syndiered/filled/line{
dir = 1
@@ -1807,6 +1823,31 @@
/obj/item/ammo_box/a357,
/turf/open/floor/carpet/nanoweave/red,
/area/ship/crew/dorm/dormtwo)
+"kr" = (
+/obj/structure/closet/secure_closet/security{
+ populate = 0;
+ icon_state = "syndicate";
+ name = "operative's locker"
+ },
+/obj/item/clothing/suit/armor/vest/syndie,
+/obj/item/clothing/head/helmet/operator,
+/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/storage/belt/security/webbing{
+ name = "syndicate webbing";
+ desc = "Unique and versatile chest rig, can hold syndicate gear."
+ },
+/obj/item/radio/headset/syndicate/alt{
+ keyslot = null
+ },
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/gloves/color/black,
+/obj/machinery/light/directional/west,
+/obj/item/flashlight/seclite,
+/obj/item/melee/knife/combat,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security)
"ky" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/light/directional/east,
@@ -1823,33 +1864,6 @@
/obj/machinery/holopad/emergency/command,
/turf/open/floor/mineral/plastitanium,
/area/ship/crew/office)
-"kH" = (
-/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
-/obj/item/gun/ballistic/automatic/pistol/syndicate/no_mag,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/storage/belt/security/webbing{
- name = "syndicate webbing";
- desc = "Unique and versatile chest rig, can hold syndicate gear."
- },
-/obj/item/radio/headset/syndicate/alt{
- keyslot = null
- },
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/gloves/color/black,
-/obj/structure/closet/secure_closet/security{
- populate = 0;
- icon_state = "syndicate";
- name = "operative's locker"
- },
-/obj/machinery/light/directional/east,
-/obj/item/clothing/head/soft/black,
-/obj/item/clothing/glasses/sunglasses,
-/obj/item/flashlight/seclite,
-/obj/item/kitchen/knife/combat,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security)
"kJ" = (
/obj/item/tank/internals/plasma/full,
/obj/structure/cable{
@@ -2079,6 +2093,33 @@
},
/turf/open/floor/wood,
/area/ship/crew/canteen)
+"lZ" = (
+/obj/item/clothing/suit/armor/vest/syndie,
+/obj/item/clothing/head/helmet/operator,
+/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/storage/belt/security/webbing{
+ name = "syndicate webbing";
+ desc = "Unique and versatile chest rig, can hold syndicate gear."
+ },
+/obj/item/radio/headset/syndicate/alt{
+ keyslot = null
+ },
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/gloves/color/black,
+/obj/structure/closet/secure_closet/security{
+ populate = 0;
+ icon_state = "syndicate";
+ name = "operative's locker"
+ },
+/obj/machinery/light/directional/east,
+/obj/item/clothing/head/soft/black,
+/obj/item/clothing/glasses/sunglasses,
+/obj/item/flashlight/seclite,
+/obj/item/melee/knife/combat,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security)
"ma" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -2141,12 +2182,13 @@
/area/ship/engineering/engine)
"ms" = (
/obj/machinery/porta_turret/ship/syndicate/heavy{
- dir = 9
+ dir = 9;
+ id = "twink_grid"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
},
-/area/ship/bridge)
+/area/ship/engineering/atmospherics)
"mt" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{
dir = 8
@@ -2758,31 +2800,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/atmospherics)
-"pN" = (
-/obj/structure/closet/secure_closet/security{
- populate = 0;
- icon_state = "syndicate";
- name = "operative's locker"
- },
-/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
-/obj/item/gun/ballistic/automatic/pistol/syndicate/no_mag,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/storage/belt/security/webbing{
- name = "syndicate webbing";
- desc = "Unique and versatile chest rig, can hold syndicate gear."
- },
-/obj/item/radio/headset/syndicate/alt{
- keyslot = null
- },
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/gloves/color/black,
-/obj/machinery/light/directional/west,
-/obj/item/flashlight/seclite,
-/obj/item/kitchen/knife/combat,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security)
"pO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -2976,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,
@@ -3286,6 +3303,32 @@
/obj/machinery/airalarm/directional/north,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/atmospherics)
+"sU" = (
+/obj/structure/closet/secure_closet/security{
+ populate = 0;
+ icon_state = "syndicate";
+ name = "operative's locker"
+ },
+/obj/item/clothing/suit/armor/vest/syndie,
+/obj/item/clothing/head/helmet/operator,
+/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/storage/belt/security/webbing{
+ name = "syndicate webbing";
+ desc = "Unique and versatile chest rig, can hold syndicate gear."
+ },
+/obj/item/radio/headset/syndicate/alt{
+ keyslot = null
+ },
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/gloves/color/black,
+/obj/machinery/light/directional/east,
+/obj/item/clothing/head/beret/black,
+/obj/item/flashlight/seclite,
+/obj/item/melee/knife/combat,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security)
"sW" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 8
@@ -3293,6 +3336,32 @@
/obj/effect/turf_decal/industrial/outline,
/turf/open/floor/plasteel/mono/dark,
/area/ship/engineering/engine)
+"sX" = (
+/obj/structure/closet/secure_closet/security{
+ populate = 0;
+ icon_state = "syndicate";
+ name = "explosives locker"
+ },
+/obj/item/storage/backpack/duffelbag/syndie/c4{
+ pixel_x = -1;
+ pixel_y = -10
+ },
+/obj/item/gun/ballistic/rocketlauncher/mako{
+ pixel_y = 6;
+ pixel_x = -3
+ },
+/obj/item/ammo_casing/caseless/rocket/hedp,
+/obj/item/ammo_casing/caseless/rocket/hedp,
+/obj/item/ammo_casing/caseless/rocket{
+ pixel_x = -6;
+ pixel_y = -3
+ },
+/obj/item/ammo_casing/caseless/rocket{
+ pixel_x = -6;
+ pixel_y = -3
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security/armory)
"sY" = (
/obj/machinery/computer/atmos_control/tank/nitrogen_tank{
dir = 8
@@ -3431,7 +3500,7 @@
pixel_y = 4
},
/obj/item/storage/toolbox/electrical,
-/obj/structure/fireaxecabinet{
+/obj/structure/cabinet/fireaxe{
pixel_y = -32;
dir = 1
},
@@ -3509,6 +3578,25 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/medical)
+"uM" = (
+/obj/structure/rack,
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/obj/item/ammo_box/magazine/sniper_rounds{
+ pixel_x = 9;
+ pixel_y = 4
+ },
+/obj/item/ammo_box/magazine/sniper_rounds{
+ pixel_x = 6;
+ pixel_y = 1
+ },
+/obj/item/gun/ballistic/automatic/marksman/taipan/no_mag{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security/armory)
"uP" = (
/obj/machinery/atmospherics/pipe/simple/purple/visible,
/obj/structure/sign/poster/contraband/atmosia_independence{
@@ -3548,12 +3636,13 @@
/area/ship/engineering/atmospherics)
"vd" = (
/obj/machinery/porta_turret/ship/syndicate/heavy{
- dir = 5
+ dir = 5;
+ id = "twink_grid"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
},
-/area/ship/bridge)
+/area/ship/hallway/port)
"vl" = (
/obj/machinery/sleeper/syndie{
dir = 8
@@ -4403,45 +4492,19 @@
},
/turf/open/floor/engine,
/area/ship/engineering/engine)
-"zS" = (
-/obj/structure/sign/directions/medical{
- dir = 1;
- pixel_y = 6
- },
-/obj/structure/sign/directions/command{
- dir = 4;
- pixel_y = -4
- },
-/turf/closed/wall/r_wall/syndicate/nodiagonal{
- rad_insulation = 0
- },
-/area/ship/medical)
-"zZ" = (
-/obj/effect/turf_decal/corner/opaque/orange/three_quarters{
- dir = 1
- },
-/obj/item/clothing/under/syndicate/gec,
-/obj/item/clothing/shoes/magboots/syndie,
-/obj/item/clothing/head/helmet/space/syndicate/black/engie,
-/obj/item/clothing/suit/space/syndicate/black/engie,
-/obj/structure/closet/secure_closet/engineering_personal{
- req_access = list(150,10);
- populate = 0
+"zS" = (
+/obj/structure/sign/directions/medical{
+ dir = 1;
+ pixel_y = 6
},
-/obj/item/pipe_dispenser,
-/obj/structure/sign/poster/contraband/gec{
- pixel_y = -32
+/obj/structure/sign/directions/command{
+ dir = 4;
+ pixel_y = -4
},
-/obj/item/storage/belt/utility/syndicate,
-/obj/item/clothing/under/syndicate/gec,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/head/hardhat/red{
- name = "hard hat"
+/turf/closed/wall/r_wall/syndicate/nodiagonal{
+ rad_insulation = 0
},
-/turf/open/floor/plasteel/dark,
-/area/ship/engineering)
+/area/ship/medical)
"Af" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{
dir = 8
@@ -4633,51 +4696,6 @@
rad_insulation = 0
},
/area/ship/security)
-"Bn" = (
-/obj/structure/closet/secure_closet/security{
- populate = 0;
- icon_state = "syndicate";
- name = "operative's locker"
- },
-/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
-/obj/item/gun/ballistic/automatic/pistol/syndicate/no_mag,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/ammo_box/magazine/m10mm,
-/obj/item/storage/belt/security/webbing{
- name = "syndicate webbing";
- desc = "Unique and versatile chest rig, can hold syndicate gear."
- },
-/obj/item/radio/headset/syndicate/alt{
- keyslot = null
- },
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/gloves/color/black,
-/obj/machinery/light/directional/east,
-/obj/item/clothing/head/beret/black,
-/obj/item/flashlight/seclite,
-/obj/item/kitchen/knife/combat,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security)
-"Bq" = (
-/obj/structure/rack,
-/obj/machinery/camera/autoname{
- dir = 6
- },
-/obj/item/ammo_box/magazine/sniper_rounds{
- pixel_x = 9;
- pixel_y = 4
- },
-/obj/item/ammo_box/magazine/sniper_rounds{
- pixel_x = 6;
- pixel_y = 1
- },
-/obj/item/gun/ballistic/automatic/marksman/sniper_rifle/no_mag{
- pixel_x = -3;
- pixel_y = 6
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
"Bs" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -5031,6 +5049,29 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/medical)
+"Dj" = (
+/obj/structure/rack,
+/obj/item/ammo_box/magazine/m556_42_hydra/small{
+ pixel_x = 10;
+ pixel_y = -1
+ },
+/obj/item/ammo_box/magazine/m556_42_hydra/small{
+ pixel_x = 4
+ },
+/obj/item/ammo_box/magazine/m556_42_hydra/small{
+ pixel_y = -3;
+ pixel_x = 7
+ },
+/obj/item/ammo_box/magazine/m556_42_hydra/small{
+ pixel_y = -2
+ },
+/obj/item/gun/ballistic/automatic/assault/hydra/dmr/no_mag{
+ pixel_x = -7;
+ pixel_y = 4
+ },
+/obj/item/gun/ballistic/automatic/assault/hydra/dmr/no_mag,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security/armory)
"Dk" = (
/obj/effect/turf_decal/corner/opaque/orange{
dir = 5
@@ -5606,29 +5647,6 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/security)
-"Gm" = (
-/obj/structure/rack,
-/obj/item/ammo_box/magazine/ebr{
- pixel_x = 10;
- pixel_y = -1
- },
-/obj/item/ammo_box/magazine/ebr{
- pixel_x = 4
- },
-/obj/item/ammo_box/magazine/ebr{
- pixel_y = -3;
- pixel_x = 7
- },
-/obj/item/ammo_box/magazine/ebr{
- pixel_y = -2
- },
-/obj/item/gun/ballistic/automatic/marksman/ebr/no_mag{
- pixel_x = -7;
- pixel_y = 4
- },
-/obj/item/gun/ballistic/automatic/marksman/ebr/no_mag,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
"Gn" = (
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
dir = 1;
@@ -6679,12 +6697,13 @@
/area/ship/engineering/engine)
"Mr" = (
/obj/machinery/porta_turret/ship/syndicate/heavy{
- dir = 6
+ dir = 6;
+ id = "twink_grid"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
},
-/area/ship/bridge)
+/area/ship/hallway/starboard)
"Mw" = (
/obj/effect/turf_decal/industrial/caution/red,
/obj/effect/decal/cleanable/shreds{
@@ -7097,6 +7116,31 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/hallway/starboard)
+"Pf" = (
+/obj/structure/closet/secure_closet/security{
+ populate = 0;
+ icon_state = "syndicate";
+ name = "operative's locker"
+ },
+/obj/item/clothing/suit/armor/vest/syndie,
+/obj/item/clothing/head/helmet/operator,
+/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/storage/belt/security/webbing{
+ name = "syndicate webbing";
+ desc = "Unique and versatile chest rig, can hold syndicate gear."
+ },
+/obj/item/radio/headset/syndicate/alt{
+ keyslot = null
+ },
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/gloves/color/black,
+/obj/machinery/light/directional/east,
+/obj/item/flashlight/seclite,
+/obj/item/melee/knife/combat,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security)
"Pn" = (
/obj/machinery/light/small/directional/east,
/obj/effect/turf_decal/trimline/opaque/syndiered/warning,
@@ -7323,8 +7367,8 @@
/obj/item/clothing/glasses/hud/security/suns,
/obj/item/clothing/gloves/tackler/dolphin/suns,
/obj/item/clothing/suit/toggle/suns/pkcoat,
-/obj/item/clothing/suit/armor/vest/bulletproof/suns/hos,
-/obj/item/clothing/suit/armor/vest/bulletproof/suns/ehos,
+/obj/item/clothing/suit/armor/vest/suns/hos,
+/obj/item/clothing/suit/armor/vest/suns/ehos,
/obj/item/clothing/head/welding/suns/hos,
/obj/item/clothing/under/syndicate/suns/pkuniform,
/obj/item/radio/headset/syndicate/alt{
@@ -7493,33 +7537,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/hallway/aft)
-"Rv" = (
-/obj/structure/rack,
-/obj/item/gun/ballistic/shotgun/bulldog/no_mag{
- pixel_x = -7;
- pixel_y = 7
- },
-/obj/item/gun/ballistic/shotgun/bulldog/no_mag{
- pixel_y = -3;
- pixel_x = 2
- },
-/obj/machinery/light/directional/north,
-/obj/item/ammo_box/magazine/m12g{
- pixel_x = -8;
- pixel_y = -4
- },
-/obj/item/ammo_box/magazine/m12g{
- pixel_y = -7
- },
-/obj/item/ammo_box/magazine/m12g{
- pixel_y = -9;
- pixel_x = -10
- },
-/obj/item/ammo_box/magazine/m12g{
- pixel_y = -12
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
"Ry" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
@@ -7568,6 +7585,27 @@
},
/turf/open/floor/circuit/red,
/area/ship/engineering/communications)
+"RF" = (
+/obj/structure/rack,
+/obj/item/gun/ballistic/automatic/smg/cobra/no_mag{
+ pixel_x = 2;
+ pixel_y = 8
+ },
+/obj/item/gun/ballistic/automatic/smg/cobra/no_mag{
+ pixel_y = 3
+ },
+/obj/item/gun/ballistic/automatic/smg/cobra/no_mag{
+ pixel_y = -2;
+ pixel_x = 3
+ },
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security/armory)
"RG" = (
/obj/effect/turf_decal/corner/opaque/orange{
dir = 5
@@ -7923,6 +7961,15 @@
/obj/machinery/vending/tool,
/turf/open/floor/plasteel/dark,
/area/ship/engineering/atmospherics)
+"TH" = (
+/obj/machinery/porta_turret/ship/syndicate/heavy{
+ dir = 9;
+ id = "twink_grid"
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal{
+ rad_insulation = 0
+ },
+/area/ship/crew/canteen)
"TI" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -8041,32 +8088,6 @@
"Um" = (
/turf/open/floor/pod/dark,
/area/ship/cargo)
-"Up" = (
-/obj/structure/closet/secure_closet/security{
- populate = 0;
- icon_state = "syndicate";
- name = "explosives locker"
- },
-/obj/item/storage/backpack/duffelbag/syndie/c4{
- pixel_x = -1;
- pixel_y = -10
- },
-/obj/item/gun/ballistic/rocketlauncher{
- pixel_y = 6;
- pixel_x = -3
- },
-/obj/item/ammo_casing/caseless/rocket/hedp,
-/obj/item/ammo_casing/caseless/rocket/hedp,
-/obj/item/ammo_casing/caseless/rocket{
- pixel_x = -6;
- pixel_y = -3
- },
-/obj/item/ammo_casing/caseless/rocket{
- pixel_x = -6;
- pixel_y = -3
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
"Uu" = (
/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2,
/obj/effect/turf_decal/corner/opaque/orange/full,
@@ -8385,12 +8406,13 @@
/area/ship/crew/cryo)
"We" = (
/obj/machinery/porta_turret/ship/syndicate/heavy{
- dir = 10
+ dir = 10;
+ id = "twink_grid"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
},
-/area/ship/bridge)
+/area/ship/security)
"Wj" = (
/obj/effect/turf_decal/corner/opaque/syndiered{
dir = 5
@@ -8563,6 +8585,13 @@
dir = 8
},
/obj/machinery/fax/syndicate,
+/obj/machinery/turretid/ship{
+ pixel_y = 24;
+ pixel_x = -5;
+ id = "twink_grid";
+ req_access = null;
+ req_access_txt = "150"
+ },
/turf/open/floor/mineral/plastitanium,
/area/ship/bridge)
"Xf" = (
@@ -8812,6 +8841,47 @@
},
/turf/open/floor/mineral/plastitanium,
/area/ship/bridge)
+"YI" = (
+/obj/structure/sign/poster/contraband/m90{
+ icon_state = "poster-m90";
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 9
+ },
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "syndicate";
+ name = "lieutenant locker";
+ req_access = list(3,150)
+ },
+/obj/item/clothing/under/syndicate/ngr/officer,
+/obj/item/clothing/suit/armor/ngr/captain,
+/obj/item/clothing/head/ngr/peaked,
+/obj/item/clothing/shoes/combat,
+/obj/item/megaphone/sec{
+ name = "syndicate megaphone"
+ },
+/obj/item/storage/pistolcase/ringneck,
+/obj/item/clothing/head/HoS/beret/syndicate,
+/obj/item/radio/headset/syndicate/alt/leader,
+/obj/item/clothing/gloves/krav_maga/combatglovesplus,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/clothing/suit/armor/hos/trenchcoat,
+/obj/machinery/button/door{
+ pixel_x = 9;
+ pixel_y = 25;
+ id = "twinkle_armory";
+ name = "Armory Access";
+ req_access = list(3,150)
+ },
+/obj/item/ammo_box/c10mm,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security)
"YJ" = (
/obj/effect/turf_decal/trimline/opaque/syndiered/filled/line,
/obj/machinery/iv_drip,
@@ -8830,27 +8900,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/engine,
/area/ship/engineering/engine)
-"YO" = (
-/obj/structure/rack,
-/obj/item/gun/ballistic/automatic/smg/c20r/no_mag{
- pixel_x = 2;
- pixel_y = 8
- },
-/obj/item/gun/ballistic/automatic/smg/c20r/no_mag{
- pixel_y = 3
- },
-/obj/item/gun/ballistic/automatic/smg/c20r/no_mag{
- pixel_y = -2;
- pixel_x = 3
- },
-/obj/item/ammo_box/magazine/smgm45,
-/obj/item/ammo_box/magazine/smgm45,
-/obj/item/ammo_box/magazine/smgm45,
-/obj/item/ammo_box/magazine/smgm45,
-/obj/item/ammo_box/magazine/smgm45,
-/obj/item/ammo_box/magazine/smgm45,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
"YR" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/brigdoor/eastleft,
@@ -8896,29 +8945,6 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/bridge)
-"Zc" = (
-/obj/structure/closet/secure_closet/engineering_personal{
- req_access = list(150,10);
- populate = 0
- },
-/obj/effect/turf_decal/corner/opaque/orange{
- dir = 10
- },
-/obj/machinery/light/directional/south,
-/obj/item/clothing/shoes/magboots/syndie,
-/obj/item/clothing/head/helmet/space/syndicate/black/engie,
-/obj/item/clothing/suit/space/syndicate/black/engie,
-/obj/item/pipe_dispenser,
-/obj/item/storage/belt/utility/syndicate,
-/obj/item/clothing/under/syndicate/gec,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/head/hardhat/red{
- name = "hard hat"
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/engineering)
"Zg" = (
/obj/effect/turf_decal/industrial/warning{
dir = 6
@@ -9116,7 +9142,7 @@ FR
FR
LX
ae
-We
+iX
mp
mp
mp
@@ -9482,7 +9508,7 @@ ZX
Qd
bM
zH
-zZ
+hB
ZX
hN
IT
@@ -9517,7 +9543,7 @@ ZX
fz
zK
qK
-Zc
+hh
ZX
RG
BV
@@ -9615,7 +9641,7 @@ mp
mp
"}
(17,1,1) = {"
-ms
+TH
xj
xj
xj
@@ -9674,7 +9700,7 @@ xo
pc
TT
PL
-Gm
+Dj
Si
Sg
PL
@@ -9744,7 +9770,7 @@ oX
PN
ec
PL
-YO
+RF
ji
wg
Uc
@@ -9779,14 +9805,14 @@ ea
BG
tY
PL
-Rv
+aF
jx
TC
on
ep
sd
da
-kH
+lZ
Bj
"}
(22,1,1) = {"
@@ -9814,9 +9840,9 @@ sO
AK
Pe
PL
-Bq
+uM
Fr
-Up
+sX
PL
Tt
sd
@@ -9856,7 +9882,7 @@ PL
BL
EG
da
-pN
+kr
Bj
"}
(24,1,1) = {"
@@ -9884,7 +9910,7 @@ sO
QC
Cq
Bj
-aD
+YI
nt
oc
Eh
@@ -9961,7 +9987,7 @@ Bj
Tt
sd
da
-fJ
+Pf
Bj
"}
(27,1,1) = {"
@@ -10031,7 +10057,7 @@ Pa
At
sd
da
-pN
+kr
Bj
"}
(29,1,1) = {"
@@ -10136,7 +10162,7 @@ GD
Nj
eN
da
-Bn
+sU
Bj
"}
(32,1,1) = {"
diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm
index 9c2571e6f5a5..c12d8dd837da 100644
--- a/_maps/templates/shelter_2.dmm
+++ b/_maps/templates/shelter_2.dmm
@@ -39,7 +39,7 @@
/area/survivalpod)
"i" = (
/obj/structure/toilet/secret{
- secret_type = /obj/item/kitchen/knife/combat/survival
+ secret_type = /obj/item/melee/knife/survival
},
/turf/open/floor/pod,
/area/survivalpod)
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/check_regex.yaml b/check_regex.yaml
index 441f1e44d743..a56bd83644d3 100644
--- a/check_regex.yaml
+++ b/check_regex.yaml
@@ -29,16 +29,16 @@ standards:
- exactly: [1, "/area text paths", '"/area']
- exactly: [17, "/datum text paths", '"/datum']
- exactly: [4, "/mob text paths", '"/mob']
- - exactly: [43, "/obj text paths", '"/obj']
+ - exactly: [36, "/obj text paths", '"/obj']
- exactly: [0, "/turf text paths", '"/turf']
- - exactly: [116, "text2path uses", "text2path"]
+ - exactly: [115, "text2path uses", "text2path"]
- exactly: [18, "world<< uses", 'world[ \t]*<<']
- exactly: [0, "world.log<< uses", 'world.log[ \t]*<<']
- exactly:
[
- 266,
+ 261,
"non-bitwise << uses",
'(? pre_attack -> target.attackby (item.attack) -> afterattack
+ ///Ends the attack chain. If sent early might cause posterior attacks not to happen.
+ #define COMPONENT_CANCEL_ATTACK_CHAIN (1<<0)
+ ///Skips the specific attack step, continuing for the next one to happen.
+ #define COMPONENT_SKIP_ATTACK (1<<1)
///from base of atom/attack_ghost(): (mob/dead/observer/ghost)
#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost"
///from base of atom/attack_hand(): (mob/user)
@@ -324,6 +346,37 @@
#define COMSIG_MOVABLE_LIGHT_OVERLAY_TOGGLE_ON "movable_light_overlay_toggle_on"
///called when the movable's glide size is updated: (new_glide_size)
#define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size"
+/// from base of atom/movable/Process_Spacemove(): (movement_dir, continuous_move)
+#define COMSIG_MOVABLE_SPACEMOVE "spacemove"
+ #define COMSIG_MOVABLE_STOP_SPACEMOVE (1<<0)
+ ///from datum/component/drift/apply_initial_visuals(): ()
+#define COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT "movable_drift_visual_attempt"
+ #define DRIFT_VISUAL_FAILED (1<<0)
+ ///from datum/component/drift/allow_final_movement(): ()
+#define COMSIG_MOVABLE_DRIFT_BLOCK_INPUT "movable_drift_block_input"
+ #define DRIFT_ALLOW_INPUT (1<<0)
+
+///signal sent out by an atom when it checks if it can be pulled, for additional checks
+#define COMSIG_ATOM_CAN_BE_PULLED "movable_can_be_pulled"
+ #define COMSIG_ATOM_CANT_PULL (1 << 0)
+///signal sent out by an atom when it is no longer being pulled by something else
+#define COMSIG_ATOM_NO_LONGER_PULLED "movable_no_longer_pulled"
+///signal sent out by an atom when it is no longer pulling something : (atom/pulling)
+#define COMSIG_ATOM_NO_LONGER_PULLING "movable_no_longer_pulling"
+///called on /living, when pull is attempted, but before it completes, from base of [/mob/living/start_pulling]: (atom/movable/thing, force)
+#define COMSIG_LIVING_TRY_PULL "living_try_pull"
+ #define COMSIG_LIVING_CANCEL_PULL (1 << 0)
+/// Called from /mob/living/update_pull_movespeed
+#define COMSIG_LIVING_UPDATING_PULL_MOVESPEED "living_updating_pull_movespeed"
+/// Called from /mob/living/PushAM -- Called when this mob is about to push a movable, but before it moves
+/// (aotm/movable/being_pushed)
+#define COMSIG_LIVING_PUSHING_MOVABLE "living_pushing_movable"
+///from base of [/atom/proc/interact]: (mob/user)
+#define COMSIG_ATOM_UI_INTERACT "atom_ui_interact"
+///called on /living when attempting to pick up an item, from base of /mob/living/put_in_hand_check(): (obj/item/I)
+#define COMSIG_LIVING_TRY_PUT_IN_HAND "living_try_put_in_hand"
+ /// Can't pick up
+ #define COMPONENT_LIVING_CANT_PUT_IN_HAND (1<<0)
// /mob signals
@@ -345,6 +398,9 @@
#define COMSIG_MOB_ALTCLICKON "mob_altclickon"
#define COMSIG_MOB_CANCEL_CLICKON (1<<0)
+///From base of mob/living/MobBump() (mob/living)
+#define COMSIG_LIVING_MOB_BUMP "living_mob_bump"
+
///from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj
#define COMSIG_MOB_ALLOWED "mob_allowed"
///from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources)
@@ -498,84 +554,6 @@
#define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget"
#define COMPONENT_HOSTILE_NO_ATTACK 1
-// /obj signals
-
-///from base of obj/deconstruct(): (disassembled)
-#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct"
-///from base of code/game/machinery
-#define COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH "obj_default_unfasten_wrench"
-///from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide
-#define COMSIG_OBJ_HIDE "obj_hide"
-
-// /obj/machinery signals
-
-///from /obj/machinery/obj_break(damage_flag): (damage_flag)
-#define COMSIG_MACHINERY_BROKEN "machinery_broken"
-///from base power_change() when power is lost
-#define COMSIG_MACHINERY_POWER_LOST "machinery_power_lost"
-///from base power_change() when power is restored
-#define COMSIG_MACHINERY_POWER_RESTORED "machinery_power_restored"
-
-// /obj/machinery/power/supermatter_crystal signals
-/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM delam reaches the point of sounding alarms
-#define COMSIG_SUPERMATTER_DELAM_START_ALARM "sm_delam_start_alarm"
-/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM sounds an audible alarm
-#define COMSIG_SUPERMATTER_DELAM_ALARM "sm_delam_alarm"
-
-// /obj/item signals
-#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
-#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (/mob)
- #define COMPONENT_NO_INTERACT 1
-#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //from base of obj/item/attack_obj(): (/obj, /mob)
- #define COMPONENT_NO_ATTACK_OBJ 1
-#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" //from base of obj/item/pre_attack(): (atom/target, mob/user, params)
- #define COMPONENT_NO_ATTACK 1
-#define COMSIG_ITEM_AFTERATTACK "item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, params)
-#define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted" //from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params)
-#define COMSIG_ITEM_EQUIPPED "item_equip" //from base of obj/item/equipped(): (/mob/equipper, slot)
-#define COMSIG_ITEM_DROPPED "item_drop" //from base of obj/item/dropped(): (mob/user)
-#define COMSIG_ITEM_PICKUP "item_pickup" //from base of obj/item/pickup(): (/mob/taker)
-#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
-#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user)
-#define COMSIG_ITEM_MARK_RETRIEVAL "item_mark_retrieval" //called before marking an object for retrieval, checked in /obj/effect/proc_holder/spell/targeted/summonitem/cast() : (mob/user)
- #define COMPONENT_BLOCK_MARK_RETRIEVAL 1
-#define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args)
-#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable, mob/living/crossed)
-#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act" //called on item when microwaved (): (obj/machinery/microwave/M)
-#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" //from base of item/sharpener/attackby(): (amount, max)
- #define COMPONENT_BLOCK_SHARPEN_APPLIED 1
- #define COMPONENT_BLOCK_SHARPEN_BLOCKED 2
- #define COMPONENT_BLOCK_SHARPEN_ALREADY 4
- #define COMPONENT_BLOCK_SHARPEN_MAXED 8
-#define COMSIG_TOOL_IN_USE "tool_in_use" ///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user)
-#define COMSIG_TOOL_START_USE "tool_start_use" ///from base of [/obj/item/proc/tool_start_check]: (mob/living/user)
-#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" ///from [/obj/item/proc/disableEmbedding]:
-#define COMSIG_MINE_TRIGGERED "minegoboom" ///from [/obj/item/mine/proc/trigger_mine]:
-///from [/obj/structure/closet/supplypod/proc/endlaunch]:
-#define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom"
-
-// Item mouse siganls
-#define COMSIG_ITEM_MOUSE_EXIT "item_mouse_exit" //from base of obj/item/MouseExited(): (location, control, params)
-#define COMSIG_ITEM_MOUSE_ENTER "item_mouse_enter" //from base of obj/item/MouseEntered(): (location, control, params)
-
-///Called when an item is being offered, from [/obj/item/proc/on_offered(mob/living/carbon/offerer)]
-#define COMSIG_ITEM_OFFERING "item_offering"
- ///Interrupts the offer proc
- #define COMPONENT_OFFER_INTERRUPT (1<<0)
-///Called when an someone tries accepting an offered item, from [/obj/item/proc/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker)]
-#define COMSIG_ITEM_OFFER_TAKEN "item_offer_taken"
- ///Interrupts the offer acceptance
- #define COMPONENT_OFFER_TAKE_INTERRUPT (1<<0)
-/// sent from obj/effect/attackby(): (/obj/effect/hit_effect, /mob/living/attacker, params)
-#define COMSIG_ITEM_ATTACK_EFFECT "item_effect_attacked"
-
-// /obj/item signals for economy
-#define COMSIG_ITEM_SOLD "item_sold" //called when an item is sold by the exports subsystem
-#define COMSIG_STRUCTURE_UNWRAPPED "structure_unwrapped" //called when a wrapped up structure is opened by hand
-#define COMSIG_ITEM_UNWRAPPED "item_unwrapped" //called when a wrapped up item is opened by hand
- #define COMSIG_ITEM_SPLIT_VALUE 1
-#define COMSIG_ITEM_SPLIT_PROFIT "item_split_profits" //Called when getting the item's exact ratio for cargo's profit.
-#define COMSIG_ITEM_SPLIT_PROFIT_DRY "item_split_profits_dry" //Called when getting the item's exact ratio for cargo's profit, without selling the item.
/// Admin helps
/// From /datum/admin_help/RemoveActive().
@@ -585,21 +563,6 @@
/// Called when the player replies. From /client/proc/cmd_admin_pm().
#define COMSIG_ADMIN_HELP_REPLIED "admin_help_replied"
-// /obj/item/clothing signals
-#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): ()
-#define COMSIG_SUIT_SPACE_TOGGLE "suit_space_toggle" //from base of /obj/item/clothing/suit/space/proc/toggle_spacesuit(): (obj/item/clothing/suit/space/suit)
-
-// /obj/item/implant signals
-#define COMSIG_IMPLANT_ACTIVATED "implant_activated" //from base of /obj/item/implant/proc/activate(): ()
-#define COMSIG_IMPLANT_IMPLANTING "implant_implanting" //from base of /obj/item/implant/proc/implant(): (list/args)
- #define COMPONENT_STOP_IMPLANTING 1
-#define COMSIG_IMPLANT_OTHER "implant_other" //called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant)
- //#define COMPONENT_STOP_IMPLANTING 1 //The name makes sense for both
- #define COMPONENT_DELETE_NEW_IMPLANT 2
- #define COMPONENT_DELETE_OLD_IMPLANT 4
-#define COMSIG_IMPLANT_EXISTING_UPLINK "implant_uplink_exists" //called on implants being implanted into someone with an uplink implant: (datum/component/uplink)
- //This uses all return values of COMSIG_IMPLANT_OTHER
-
// /obj/item/pda signals
#define COMSIG_PDA_CHANGE_RINGTONE "pda_change_ringtone" //called on pda when the user changes the ringtone: (mob/living/user, new_ringtone)
#define COMPONENT_STOP_RINGTONE_CHANGE 1
@@ -615,10 +578,6 @@
// /obj/item/gun signals
#define COMSIG_MOB_FIRED_GUN "mob_fired_gun" //called in /obj/item/gun/process_fire (user, target, params, zone_override)
-// /obj/item/grenade signals
-#define COMSIG_GRENADE_PRIME "grenade_prime" //called in /obj/item/gun/process_fire (user, target, params, zone_override)
-#define COMSIG_GRENADE_ARMED "grenade_armed" //called in /obj/item/gun/process_fire (user, target, params, zone_override)
-
// /obj/projectile signals (sent to the firer)
#define COMSIG_PROJECTILE_SELF_ON_HIT "projectile_self_on_hit" // from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle)
#define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" // from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle)
@@ -633,13 +592,6 @@
// /obj/mecha signals
#define COMSIG_MECHA_ACTION_ACTIVATE "mecha_action_activate" //sent from mecha action buttons to the mecha they're linked to
-// /mob/living/carbon/human signals
-#define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
-#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
-#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" //from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
-#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" //Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted)
-#define COMSIG_JOB_RECEIVED "job_received" //Whenever EquipRanked is called, called after job is set
-
// /datum/species signals
#define COMSIG_SPECIES_GAIN "species_gain" //from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species)
#define COMSIG_SPECIES_LOSS "species_loss" //from datum/species/on_species_loss(): (datum/species/lost_species)
@@ -665,9 +617,6 @@
//Creamed
#define COMSIG_COMPONENT_CLEAN_FACE_ACT "clean_face_act" //called when you wash your face at a sink: (num/strength)
-//Food
-#define COMSIG_FOOD_EATEN "food_eaten" //from base of obj/item/reagent_containers/food/snacks/attack(): (mob/living/eater, mob/feeder)
-
//Gibs
#define COMSIG_GIBS_STREAK "gibs_streak" // from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases)
@@ -724,6 +673,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
@@ -753,10 +703,6 @@
#define COMSIG_BEAM_BEFORE_DRAW "beam_before_draw"
#define BEAM_CANCEL_DRAW (1 << 0)
-// Aquarium related signals
-#define COMSIG_AQUARIUM_SURFACE_CHANGED "aquarium_surface_changed"
-#define COMSIG_AQUARIUM_FLUID_CHANGED "aquarium_fluid_changed"
-
// Fish signals
#define COMSIG_FISH_STATUS_CHANGED "fish_status_changed"
#define COMSIG_FISH_STIRRED "fish_stirred"
@@ -792,3 +738,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/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
new file mode 100644
index 000000000000..2428eddf1346
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
@@ -0,0 +1,82 @@
+///Called from /mob/living/carbon/help_shake_act, before any hugs have ocurred. (mob/living/helper)
+#define COMSIG_CARBON_PRE_HELP_ACT "carbon_pre_help"
+ /// Stops the rest of help act (hugging, etc) from occuring
+ #define COMPONENT_BLOCK_HELP_ACT (1<<0)
+
+///Called from /mob/living/carbon/help_shake_act on the person being helped, after any hugs have ocurred. (mob/living/helper)
+#define COMSIG_CARBON_HELP_ACT "carbon_help"
+///Called from /mob/living/carbon/help_shake_act on the helper, after any hugs have ocurred. (mob/living/helped)
+#define COMSIG_CARBON_HELPED "carbon_helped_someone"
+
+///Before a carbon mob is shoved, sent to the turf we're trying to shove onto (mob/living/carbon/shover, mob/living/carbon/target)
+#define COMSIG_CARBON_DISARM_PRESHOVE "carbon_disarm_preshove"
+ #define COMSIG_CARBON_ACT_SOLID (1<<0) //Tells disarm code to act as if the mob was shoved into something solid, even we we're not
+///When a carbon mob is disarmed, this is sent to the turf we're trying to shove onto (mob/living/carbon/shover, mob/living/carbon/target, shove_blocked)
+#define COMSIG_CARBON_DISARM_COLLIDE "carbon_disarm_collision"
+ #define COMSIG_CARBON_SHOVE_HANDLED (1<<0)
+
+// /mob/living/carbon physiology signals
+#define COMSIG_CARBON_GAIN_WOUND "carbon_gain_wound" //from /datum/wound/proc/apply_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L)
+#define COMSIG_CARBON_LOSE_WOUND "carbon_lose_wound" //from /datum/wound/proc/remove_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L)
+///from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment
+#define COMSIG_CARBON_ATTACH_LIMB "carbon_attach_limb"
+#define COMSIG_CARBON_REMOVE_LIMB "carbon_remove_limb" //from base of /obj/item/bodypart/proc/drop_limb(lost_limb, dismembered)
+#define COMSIG_BODYPART_GAUZED "bodypart_gauzed" // from /obj/item/bodypart/proc/apply_gauze(/obj/item/stack/gauze)
+#define COMSIG_BODYPART_GAUZE_DESTROYED "bodypart_degauzed" // from [/obj/item/bodypart/proc/seep_gauze] when it runs out of absorption
+
+///Called when someone attempts to cuff a carbon
+#define COMSIG_CARBON_CUFF_ATTEMPTED "carbon_attempt_cuff"
+///Called when a carbon mutates (source = dna, mutation = mutation added)
+#define COMSIG_CARBON_GAIN_MUTATION "carbon_gain_mutation"
+///Called when a carbon loses a mutation (source = dna, mutation = mutation lose)
+#define COMSIG_CARBON_LOSE_MUTATION "carbon_lose_mutation"
+///Called when a carbon becomes addicted (source = what addiction datum, addicted_mind = mind of the addicted carbon)
+#define COMSIG_CARBON_GAIN_ADDICTION "carbon_gain_addiction"
+///Called when a carbon is no longer addicted (source = what addiction datum was lost, addicted_mind = mind of the freed carbon)
+#define COMSIG_CARBON_LOSE_ADDICTION "carbon_lose_addiction"
+///Called when a carbon gets a brain trauma (source = carbon, trauma = what trauma was added) - this is before on_gain()
+#define COMSIG_CARBON_GAIN_TRAUMA "carbon_gain_trauma"
+///Called when a carbon loses a brain trauma (source = carbon, trauma = what trauma was removed)
+#define COMSIG_CARBON_LOSE_TRAUMA "carbon_lose_trauma"
+///Called when a carbon updates their health (source = carbon)
+#define COMSIG_CARBON_HEALTH_UPDATE "carbon_health_update"
+///Called when a carbon updates their sanity (source = carbon)
+#define COMSIG_CARBON_SANITY_UPDATE "carbon_sanity_update"
+///Called when a carbon breathes, before the breath has actually occured
+#define COMSIG_CARBON_PRE_BREATHE "carbon_pre_breathe"
+///Called when a carbon updates their mood
+#define COMSIG_CARBON_MOOD_UPDATE "carbon_mood_update"
+
+// /mob/living/carbon/human signals
+
+///Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted)
+#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit"
+///Whenever EquipRanked is called, called after job is set
+#define COMSIG_JOB_RECEIVED "job_received"
+///from /mob/living/carbon/human/proc/set_coretemperature(): (oldvalue, newvalue)
+#define COMSIG_HUMAN_CORETEMP_CHANGE "human_coretemp_change"
+///from /datum/species/handle_fire. Called when the human is set on fire and burning clothes and stuff
+#define COMSIG_HUMAN_BURNING "human_burning"
+///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity, modifiers)
+#define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack"
+///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity, modifiers)
+#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack"
+//from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
+#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby"
+//from /mob/living/carbon/human/proc/check_shields(): (atom/hit_by, damage, attack_text, attack_type, armour_penetration)
+#define COMSIG_HUMAN_CHECK_SHIELDS "human_check_shields"
+ #define SHIELD_BLOCK (1<<0)
+
+// Mob transformation signals
+///Called when a human turns into a monkey, from /mob/living/carbon/proc/finish_monkeyize()
+#define COMSIG_HUMAN_MONKEYIZE "human_monkeyize"
+///Called when a monkey turns into a human, from /mob/living/carbon/proc/finish_humanize(species)
+#define COMSIG_MONKEY_HUMANIZE "monkey_humanize"
+
+///From mob/living/carbon/human/suicide()
+#define COMSIG_HUMAN_SUICIDE_ACT "human_suicide_act"
+
+/// A mob has just equipped an item. Called on [/mob] from base of [/obj/item/equipped()]: (/obj/item/equipped_item, slot)
+#define COMSIG_MOB_EQUIPPED_ITEM "mob_equipped_item"
+/// A mob has just unequipped an item.
+#define COMSIG_MOB_UNEQUIPPED_ITEM "mob_unequipped_item"
diff --git a/code/__DEFINES/dcs/signals/signals_mod.dm b/code/__DEFINES/dcs/signals/signals_mod.dm
new file mode 100644
index 000000000000..e5c27a902a65
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mod.dm
@@ -0,0 +1,25 @@
+//MODsuit signals
+/// Called when a module is selected to be the active one from on_select(obj/item/mod/module/module)
+#define COMSIG_MOD_MODULE_SELECTED "mod_module_selected"
+/// Called when a MOD activation is called from toggle_activate(mob/user)
+#define COMSIG_MOD_ACTIVATE "mod_activate"
+ /// Cancels the suit's activation
+ #define MOD_CANCEL_ACTIVATE (1 << 0)
+/// Called when a MOD is having modules removed from crowbar_act(mob/user, obj/crowbar)
+#define COMSIG_MOD_MODULE_REMOVAL "mod_module_removal"
+ /// Cancels the removal of modules
+ #define MOD_CANCEL_REMOVAL (1 << 0)
+/// Called when a module attempts to activate, however it does. At the end of checks so you can add some yourself, or work on trigger behavior (mob/user)
+#define COMSIG_MODULE_TRIGGERED "mod_module_triggered"
+ // Cancels activation, with no message. include feedback on your cancel.
+ #define MOD_ABORT_USE (1<<0)
+/// Called when a module activates, after all checks have passed and cooldown started.
+#define COMSIG_MODULE_ACTIVATED "mod_module_activated"
+/// Called when a module deactivates, after all checks have passed.
+#define COMSIG_MODULE_DEACTIVATED "mod_module_deactivated"
+/// Called when a module is used, after all checks have passed and cooldown started.
+#define COMSIG_MODULE_USED "mod_module_used"
+/// Called when the MODsuit wearer is set.
+#define COMSIG_MOD_WEARER_SET "mod_wearer_set"
+/// Called when the MODsuit wearer is unset.
+#define COMSIG_MOD_WEARER_UNSET "mod_wearer_unset"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_clothing.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_clothing.dm
new file mode 100644
index 000000000000..6eb107d55fda
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_clothing.dm
@@ -0,0 +1,10 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+// /obj/item/clothing signals
+
+//from base of obj/item/clothing/shoes/proc/step_action(): ()
+#define COMSIG_SHOES_STEP_ACTION "shoes_step_action"
+//from base of /obj/item/clothing/suit/space/proc/toggle_spacesuit(): (obj/item/clothing/suit/space/suit)
+#define COMSIG_SUIT_SPACE_TOGGLE "suit_space_toggle"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_food.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_food.dm
new file mode 100644
index 000000000000..831363f5a523
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_food.dm
@@ -0,0 +1,22 @@
+// Eating stuff
+/// From datum/component/edible/proc/TakeBite: (mob/living/eater, mob/feeder, bitecount, bitesize)
+#define COMSIG_FOOD_EATEN "food_eaten"
+/// From base of Component/edible/On_Consume: (mob/living/eater, mob/living/feeder)
+#define COMSIG_FOOD_CONSUMED "food_consumed"
+
+// Deep frying foods
+/// An item becomes fried - From /datum/element/fried_item/Attach: (fry_time)
+#define COMSIG_ITEM_FRIED "item_fried"
+ #define COMSIG_FRYING_HANDLED (1<<0)
+
+// Microwaving foods
+///called on item when microwaved (): (obj/machinery/microwave/M)
+#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act"
+ #define COMPONENT_SUCCESFUL_MICROWAVE (1<<0)
+///called on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency)
+#define COMSIG_ITEM_MICROWAVE_COOKED "microwave_cooked"
+
+///From /datum/component/edible/on_compost(source, /mob/living/user)
+#define COMSIG_EDIBLE_ON_COMPOST "on_compost"
+ // Used to stop food from being composted.
+ #define COMPONENT_EDIBLE_BLOCK_COMPOST 1
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_grenade.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_grenade.dm
new file mode 100644
index 000000000000..03767ecbc53f
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_grenade.dm
@@ -0,0 +1,11 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+// /obj/item/grenade signals
+
+//called in /obj/item/gun/process_fire (user, target, params, zone_override)
+#define COMSIG_GRENADE_PRIME "grenade_prime"
+
+//called in /obj/item/gun/process_fire (user, target, params, zone_override)
+#define COMSIG_GRENADE_ARMED "grenade_armed"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_hydroponic.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_hydroponic.dm
new file mode 100644
index 000000000000..32fbb4867b2d
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_hydroponic.dm
@@ -0,0 +1,34 @@
+//Plants / Plant Traits
+
+///called when a plant with slippery skin is slipped on (mob/victim)
+#define COMSIG_PLANT_ON_SLIP "plant_on_slip"
+///called when a plant with liquid contents is squashed on (atom/target)
+#define COMSIG_PLANT_ON_SQUASH "plant_on_squash"
+///called when a plant backfires via the backfire element (mob/victim)
+#define COMSIG_PLANT_ON_BACKFIRE "plant_on_backfire"
+///called when a seed grows in a tray (obj/machinery/hydroponics)
+#define COMSIG_SEED_ON_GROW "plant_on_grow"
+///called when a seed is planted in a tray (obj/machinery/hydroponics)
+#define COMSIG_SEED_ON_PLANTED "plant_on_plant"
+
+//Hydro tray
+///from base of /obj/machinery/hydroponics/set_seed() : (obj/item/new_seed)
+#define COMSIG_HYDROTRAY_SET_SEED "hydrotray_set_seed"
+///from base of /obj/machinery/hydroponics/set_self_sustaining() : (new_value)
+#define COMSIG_HYDROTRAY_SET_SELFSUSTAINING "hydrotray_set_selfsustaining"
+///from base of /obj/machinery/hydroponics/set_weedlevel() : (new_value)
+#define COMSIG_HYDROTRAY_SET_WEEDLEVEL "hydrotray_set_weedlevel"
+///from base of /obj/machinery/hydroponics/set_pestlevel() : (new_value)
+#define COMSIG_HYDROTRAY_SET_PESTLEVEL "hydrotray_set_pestlevel"
+///from base of /obj/machinery/hydroponics/set_waterlevel() : (new_value)
+#define COMSIG_HYDROTRAY_SET_WATERLEVEL "hydrotray_set_waterlevel"
+///from base of /obj/machinery/hydroponics/set_plant_health() : (new_value)
+#define COMSIG_HYDROTRAY_SET_PLANT_HEALTH "hydrotray_set_plant_health"
+///from base of /obj/machinery/hydroponics/set_toxic() : (new_value)
+#define COMSIG_HYDROTRAY_SET_TOXIC "hydrotray_set_toxic"
+///from base of /obj/machinery/hydroponics/set_plant_status() : (new_value)
+#define COMSIG_HYDROTRAY_SET_PLANT_STATUS "hydrotray_set_plant_status"
+///from base of /obj/machinery/hydroponics/update_tray() : (mob/user, product_count)
+#define COMSIG_HYDROTRAY_ON_HARVEST "hydrotray_on_harvest"
+///from base of /obj/machinery/hydroponics/plantdies()
+#define COMSIG_HYDROTRAY_PLANT_DEATH "hydrotray_plant_death"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_implant.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_implant.dm
new file mode 100644
index 000000000000..95123ef8b309
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_implant.dm
@@ -0,0 +1,14 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+// /obj/item/implant signals
+#define COMSIG_IMPLANT_ACTIVATED "implant_activated" //from base of /obj/item/implant/proc/activate(): ()
+#define COMSIG_IMPLANT_IMPLANTING "implant_implanting" //from base of /obj/item/implant/proc/implant(): (list/args)
+ #define COMPONENT_STOP_IMPLANTING 1
+#define COMSIG_IMPLANT_OTHER "implant_other" //called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant)
+ //#define COMPONENT_STOP_IMPLANTING 1 //The name makes sense for both
+ #define COMPONENT_DELETE_NEW_IMPLANT 2
+ #define COMPONENT_DELETE_OLD_IMPLANT 4
+#define COMSIG_IMPLANT_EXISTING_UPLINK "implant_uplink_exists" //called on implants being implanted into someone with an uplink implant: (datum/component/uplink)
+ //This uses all return values of COMSIG_IMPLANT_OTHER
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm
new file mode 100644
index 000000000000..1a562b84a4a1
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm
@@ -0,0 +1,68 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+// /obj/item signals
+///from base of obj/item/equipped(): (/mob/equipper, slot)
+#define COMSIG_ITEM_EQUIPPED "item_equip"
+///from base of obj/item/dropped(): (mob/user)
+#define COMSIG_ITEM_DROPPED "item_drop"
+///from base of obj/item/pickup(): (/mob/taker)
+#define COMSIG_ITEM_PICKUP "item_pickup"
+
+///from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
+#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone"
+///from base of obj/item/hit_reaction(): (list/args)
+#define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args)
+ #define COMPONENT_HIT_REACTION_BLOCK (1<<0)
+
+#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
+#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (/mob)
+ #define COMPONENT_NO_INTERACT 1
+#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //from base of obj/item/attack_obj(): (/obj, /mob)
+ #define COMPONENT_NO_ATTACK_OBJ 1
+#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" //from base of obj/item/pre_attack(): (atom/target, mob/user, params)
+ #define COMPONENT_NO_ATTACK 1
+#define COMSIG_ITEM_AFTERATTACK "item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, params)
+#define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted" //from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params)
+#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user)
+#define COMSIG_ITEM_MARK_RETRIEVAL "item_mark_retrieval" //called before marking an object for retrieval, checked in /obj/effect/proc_holder/spell/targeted/summonitem/cast() : (mob/user)
+ #define COMPONENT_BLOCK_MARK_RETRIEVAL 1
+#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable, mob/living/crossed)
+
+///from base of item/sharpener/attackby(): (amount, max)
+#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act"
+ #define COMPONENT_BLOCK_SHARPEN_APPLIED 1
+ #define COMPONENT_BLOCK_SHARPEN_BLOCKED 2
+ #define COMPONENT_BLOCK_SHARPEN_ALREADY 4
+ #define COMPONENT_BLOCK_SHARPEN_MAXED 8
+
+#define COMSIG_TOOL_IN_USE "tool_in_use" ///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user)
+#define COMSIG_TOOL_START_USE "tool_start_use" ///from base of [/obj/item/proc/tool_start_check]: (mob/living/user)
+#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" ///from [/obj/item/proc/disableEmbedding]:
+#define COMSIG_MINE_TRIGGERED "minegoboom" ///from [/obj/item/mine/proc/trigger_mine]:
+///from [/obj/structure/closet/supplypod/proc/endlaunch]:
+#define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom"
+
+// Item mouse siganls
+#define COMSIG_ITEM_MOUSE_EXIT "item_mouse_exit" //from base of obj/item/MouseExited(): (location, control, params)
+#define COMSIG_ITEM_MOUSE_ENTER "item_mouse_enter" //from base of obj/item/MouseEntered(): (location, control, params)
+
+///Called when an item is being offered, from [/obj/item/proc/on_offered(mob/living/carbon/offerer)]
+#define COMSIG_ITEM_OFFERING "item_offering"
+ ///Interrupts the offer proc
+ #define COMPONENT_OFFER_INTERRUPT (1<<0)
+///Called when an someone tries accepting an offered item, from [/obj/item/proc/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker)]
+#define COMSIG_ITEM_OFFER_TAKEN "item_offer_taken"
+ ///Interrupts the offer acceptance
+ #define COMPONENT_OFFER_TAKE_INTERRUPT (1<<0)
+/// sent from obj/effect/attackby(): (/obj/effect/hit_effect, /mob/living/attacker, params)
+#define COMSIG_ITEM_ATTACK_EFFECT "item_effect_attacked"
+
+// /obj/item signals for economy
+#define COMSIG_ITEM_SOLD "item_sold" //called when an item is sold by the exports subsystem
+#define COMSIG_STRUCTURE_UNWRAPPED "structure_unwrapped" //called when a wrapped up structure is opened by hand
+#define COMSIG_ITEM_UNWRAPPED "item_unwrapped" //called when a wrapped up item is opened by hand
+ #define COMSIG_ITEM_SPLIT_VALUE 1
+#define COMSIG_ITEM_SPLIT_PROFIT "item_split_profits" //Called when getting the item's exact ratio for cargo's profit.
+#define COMSIG_ITEM_SPLIT_PROFIT_DRY "item_split_profits_dry" //Called when getting the item's exact ratio for cargo's profit, without selling the item.
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_aquarium.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_aquarium.dm
new file mode 100644
index 000000000000..d4c88d7c16b2
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_aquarium.dm
@@ -0,0 +1,7 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+// Aquarium related signals
+#define COMSIG_AQUARIUM_SURFACE_CHANGED "aquarium_surface_changed"
+#define COMSIG_AQUARIUM_FLUID_CHANGED "aquarium_fluid_changed"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_machinery.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_machinery.dm
new file mode 100644
index 000000000000..929a2f844074
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_machinery.dm
@@ -0,0 +1,12 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+// /obj/machinery signals
+
+///from /obj/machinery/obj_break(damage_flag): (damage_flag)
+#define COMSIG_MACHINERY_BROKEN "machinery_broken"
+///from base power_change() when power is lost
+#define COMSIG_MACHINERY_POWER_LOST "machinery_power_lost"
+///from base power_change() when power is restored
+#define COMSIG_MACHINERY_POWER_RESTORED "machinery_power_restored"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_supermatter.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_supermatter.dm
new file mode 100644
index 000000000000..b4e8abe2b80b
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_machine/signals_supermatter.dm
@@ -0,0 +1,9 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+// /obj/machinery/power/supermatter_crystal signals
+/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM delam reaches the point of sounding alarms
+#define COMSIG_SUPERMATTER_DELAM_START_ALARM "sm_delam_start_alarm"
+/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM sounds an audible alarm
+#define COMSIG_SUPERMATTER_DELAM_ALARM "sm_delam_alarm"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_object.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_object.dm
new file mode 100644
index 000000000000..136b73ffb3d2
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_object.dm
@@ -0,0 +1,14 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+// /obj signals
+
+///from base of obj/deconstruct(): (disassembled)
+#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct"
+///from base of code/game/machinery
+#define COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH "obj_default_unfasten_wrench"
+///from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide
+#define COMSIG_OBJ_HIDE "obj_hide"
+/// from base of [/atom/proc/obj_destruction]: (damage_flag)
+#define COMSIG_OBJ_DESTRUCTION "obj_destruction"
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/__DEFINES/dcs/signals/signals_ship.dm b/code/__DEFINES/dcs/signals/signals_ship.dm
new file mode 100644
index 000000000000..c18a26c5089d
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_ship.dm
@@ -0,0 +1,2 @@
+///Sent when a shuttle finishes loading to allow for any machinery that requires a late connection to fire that connection
+#define COMSIG_SHIP_DONE_CONNECTING "late_connect"
diff --git a/code/__DEFINES/dcs/signals/signals_storage.dm b/code/__DEFINES/dcs/signals/signals_storage.dm
new file mode 100644
index 000000000000..456ac3c0781a
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_storage.dm
@@ -0,0 +1,4 @@
+/// Sent when /datum/storage/dump_content_at(): (obj/item/storage_source, mob/user)
+#define COMSIG_STORAGE_DUMP_CONTENT "storage_dump_contents"
+ /// Return to stop the standard dump behavior.
+ #define STORAGE_DUMP_HANDLED (1<<0)
diff --git a/code/__DEFINES/factions.dm b/code/__DEFINES/factions.dm
index 5eb0209dda4c..596060d6610e 100644
--- a/code/__DEFINES/factions.dm
+++ b/code/__DEFINES/factions.dm
@@ -8,7 +8,37 @@
#define FACTION_PLAYER_NANOTRASEN "playerNanotrasen"
#define FACTION_PLAYER_FRONTIERSMEN "playerFrontiersmen"
#define FACTION_PLAYER_MINUTEMAN "playerMinuteman"
-#define FACTION_PLAYER_SOLGOV "playerSolgov"
+#define FACTION_PLAYER_SOLCON "playerSolcon"
#define FACTION_PLAYER_INTEQ "playerInteq"
#define FACTION_PLAYER_ROUMAIN "playerRoumain"
#define FACTION_PLAYER_GEZENA "playerGezena"
+
+#define FACTION_SYNDICATE "Syndicate"
+ #define FACTION_NGR "New Gorlex Republic"
+ #define FACTION_CYBERSUN "CyberSun"
+ #define FACTION_SUNS "Student-Union of Naturalistic Sciences"
+#define FACTION_SOLGOV "SolGov"
+#define FACTION_SRM "Saint-Roumain Militia"
+#define FACTION_INTEQ "Inteq Risk Management Group"
+#define FACTION_CLIP "CLIP Minutemen"
+#define FACTION_NT "Nanotrasen"
+ #define FACTION_NS_LOGI "N+S Logistics"
+ #define FACTION_VIGILITAS "Vigilitas Interstellar"
+#define FACTION_FRONTIER "Frontiersmen Fleet"
+#define FACTION_PGF "Pan-Gezenan Federation"
+#define FACTION_INDEPENDENT "Independent"
+
+#define PREFIX_SYNDICATE list("SEV", "SSV")
+ #define PREFIX_NGR list("NGRV")
+ #define PREFIX_CYBERSUN list("CSSV")
+ #define PREFIX_SUNS list("SUNS")
+#define PREFIX_SOLGOV list("SCSV")
+#define PREFIX_SRM list("SRSV")
+#define PREFIX_INTEQ list("IRMV")
+#define PREFIX_CLIP list("CMSV", "CMGSV")
+#define PREFIX_NT list("NTSV")
+ #define PREFIX_NS_LOGI list("NSSV")
+ #define PREFIX_VIGILITAS list("VISV")
+#define PREFIX_FRONTIER list("FFV")
+#define PREFIX_PGF list("PGF", "PGFMC", "PGFN")
+#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV")
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index c27a78ffd2de..77e608ac922e 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -46,6 +46,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define SHOW_BEHIND_LARGE_ICONS_1 (1<<12)
/// Should we use the initial icon for display? Mostly used by overlay only objects
#define HTML_USE_INITAL_ICON_1 (1<<20)
+// Whether or not this atom is storing contents for a disassociated storage object
+#define HAS_DISASSOCIATED_STORAGE_1 (1<<24)
// Update flags for [/atom/proc/update_appearance]
/// Update the atom's name
@@ -83,8 +85,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
////////////////Area flags\\\\\\\\\\\\\\
/// If it's a valid territory for cult summoning or the CRAB-17 phone to spawn
#define VALID_TERRITORY (1<<0)
-/// If blobs can spawn there and if it counts towards their score.
-#define BLOBS_ALLOWED (1<<1)
/// If mining tunnel generation is allowed in this area
#define CAVES_ALLOWED (1<<2)
/// If flora are allowed to spawn in this area randomly through tunnel generation
@@ -108,7 +108,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define PASSTABLE (1<<0)
#define PASSGLASS (1<<1)
#define PASSGRILLE (1<<2)
-#define PASSBLOB (1<<3)
#define PASSMOB (1<<4)
#define PASSCLOSEDTURF (1<<5)
/// Let thrown things past us. **ONLY MEANINGFUL ON pass_flags_self!**
diff --git a/code/__DEFINES/fonts.dm b/code/__DEFINES/fonts.dm
index 32a08f38861b..8ffecbbe20d5 100644
--- a/code/__DEFINES/fonts.dm
+++ b/code/__DEFINES/fonts.dm
@@ -19,3 +19,5 @@
#define SHARE "Share Tech Mono"
GLOBAL_LIST_INIT(pda_styles, sortList(list(MONO, VT, ORBITRON, SHARE)))
+
+#define EMOJI_SET 'icons/emoji.dmi'
diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm
index f2b6a8fd196d..a12ceca284dd 100644
--- a/code/__DEFINES/food.dm
+++ b/code/__DEFINES/food.dm
@@ -49,6 +49,16 @@
#define DRINK_FANTASTIC 4
#define FOOD_AMAZING 5
+/// Food is "in a container", not in a code sense, but in a literal sense (canned foods)
#define FOOD_IN_CONTAINER (1<<0)
+/// Finger food can be eaten while walking / running around
+#define FOOD_FINGER_FOOD (1<<1)
#define STOP_SERVING_BREAKFAST (15 MINUTES)
+
+///Amount of reagents you start with on crafted food excluding the used parts
+#define CRAFTED_FOOD_BASE_REAGENT_MODIFIER 0.7
+///Modifier of reagents you get when crafting food from the parts used
+#define CRAFTED_FOOD_INGREDIENT_REAGENT_MODIFIER 0.5
+
+#define IS_EDIBLE(O) (O.GetComponent(/datum/component/edible))
diff --git a/code/__DEFINES/generators.dm b/code/__DEFINES/generators.dm
new file mode 100644
index 000000000000..e9d373c9a65d
--- /dev/null
+++ b/code/__DEFINES/generators.dm
@@ -0,0 +1,15 @@
+//generator types
+#define GEN_NUM "num"
+#define GEN_VECTOR "vector"
+#define GEN_BOX "box"
+#define GEN_COLOR "color"
+#define GEN_CIRCLE "circle"
+#define GEN_SPHERE "sphere"
+#define GEN_SQUARE "square"
+#define GEN_CUBE "cube"
+
+///particle editor var modifiers
+#define P_DATA_GENERATOR "generator"
+#define P_DATA_ICON_ADD "icon_add"
+#define P_DATA_ICON_REMOVE "icon_remove"
+#define P_DATA_ICON_WEIGHT "icon_edit"
diff --git a/code/__DEFINES/guns.dm b/code/__DEFINES/guns.dm
index 17cbab5683d8..d1cea0d28de4 100644
--- a/code/__DEFINES/guns.dm
+++ b/code/__DEFINES/guns.dm
@@ -24,6 +24,9 @@
///Gun has a bolt, it locks back when empty. It can be released to chamber a round if a magazine is in.
/// Example: Pistols with a slide lock, some SMGs
#define BOLT_TYPE_LOCKING 4
+///Gun has an HK-style locking charging handle, so you can slap it. Only use this for flavor, otherwise modern-style automatics should use BOLT_TYPE_LOCKING.
+/// Example: everything made by lanchester
+#define BOLT_TYPE_CLIP 5
//Sawn off nerfs
///accuracy penalty of sawn off guns
#define SAWN_OFF_ACC_PENALTY 25
@@ -61,10 +64,16 @@
#define MANUFACTURER_BRAZIL "a green flag with a blue circle and a yellow diamond around it"
#define MANUFACTURER_INTEQ "an orange crest with the letters 'IRMG'"
#define MANUFACTURER_MINUTEMAN "the Lanchester City Firearms Plant logo"
+#define MANUFACTURER_MINUTEMAN_LASER "the Clover Photonics logo"
#define MANUFACTURER_DONKCO "the Donk! Co. logo"
#define MANUFACTURER_PGF "the Etherbor Industries emblem"
#define MANUFACTURER_IMPORT "Lanchester Import Co."
+// Misfire chances if the gun's safety is off
+#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_LOW 5
+#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM 10
+#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_HIGH 15
+
/////////////////
// ATTACHMENTS //
/////////////////
diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm
index 64aa6aa52627..5b99546fed97 100644
--- a/code/__DEFINES/inventory.dm
+++ b/code/__DEFINES/inventory.dm
@@ -46,6 +46,7 @@
#define HIDEFACIALHAIR (1<<9)
#define HIDENECK (1<<10)
#define HIDEHORNS (1<<11) // Used for hiding Sarathi horns.
+#define HIDESNOUT (1<<11)
//bitflags for clothing coverage - also used for limbs
#define HEAD (1<<0)
@@ -149,7 +150,7 @@ GLOBAL_LIST_INIT(security_vest_allowed, typecacheof(list(
/obj/item/gun/energy,
/obj/item/gun/grenadelauncher,
/obj/item/flamethrower,
- /obj/item/kitchen/knife/combat,
+ /obj/item/melee/knife/combat,
/obj/item/melee/baton,
/obj/item/melee/classic_baton/telescopic,
/obj/item/reagent_containers/spray/pepper,
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 241136c297b9..7120afd8cf45 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -8,6 +8,8 @@
#define isweakref(D) (istype(D, /datum/weakref))
+#define isgenerator(A) (istype(A, /generator))
+
//Turfs
//#define isturf(A) (istype(A, /turf)) This is actually a byond built-in. Added here for completeness sake.
@@ -98,8 +100,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define isalienqueen(A) (istype(A, /mob/living/carbon/alien/humanoid/royal/queen))
-#define istruedevil(A) (istype(A, /mob/living/carbon/true_devil))
-
//Silicon mobs
#define issilicon(A) (istype(A, /mob/living/silicon))
@@ -136,8 +136,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define ishostile(A) (istype(A, /mob/living/simple_animal/hostile))
-#define isswarmer(A) (istype(A, /mob/living/simple_animal/hostile/swarmer))
-
#define isguardian(A) (istype(A, /mob/living/simple_animal/hostile/guardian))
#define isconstruct(A) (istype(A, /mob/living/simple_animal/hostile/construct))
@@ -155,8 +153,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define isnewplayer(A) (istype(A, /mob/dead/new_player))
-#define isovermind(A) (istype(A, /mob/camera/blob))
-
#define iscameramob(A) (istype(A, /mob/camera))
#define isaicamera(A) (istype(A, /mob/camera/aiEye))
@@ -166,6 +162,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define isitem(A) (istype(A, /obj/item))
+#define isstack(A) (istype(A, /obj/item/stack))
+
#define isgrenade(A) (istype(A, /obj/item/grenade))
#define islandmine(A) (istype(A, /obj/item/mine))
@@ -227,8 +225,6 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
#define iseffect(O) (istype(O, /obj/effect))
-#define isblobmonster(O) (istype(O, /mob/living/simple_animal/hostile/blob))
-
#define isshuttleturf(T) (length(T.baseturfs) && (/turf/baseturf_skipover/shuttle in T.baseturfs))
#define isProbablyWallMounted(O) (O.pixel_x > 20 || O.pixel_x < -20 || O.pixel_y > 20 || O.pixel_y < -20)
diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm
index 021cb202004d..00e0fb557833 100644
--- a/code/__DEFINES/language.dm
+++ b/code/__DEFINES/language.dm
@@ -12,7 +12,6 @@
#define LANGUAGE_APHASIA "aphasia"
#define LANGUAGE_CULTIST "cultist"
#define LANGUAGE_CURATOR "curator"
-#define LANGUAGE_DEVIL "devil"
#define LANGUAGE_GLAND "gland"
#define LANGUAGE_HAT "hat"
#define LANGUAGE_HIGH "high"
diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm
index d021558901f4..bd9b0f0063bb 100644
--- a/code/__DEFINES/layers.dm
+++ b/code/__DEFINES/layers.dm
@@ -1,5 +1,6 @@
//Defines for atom layers and planes
//KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE
+#define LOWEST_EVER_PLANE -100
#define CLICKCATCHER_PLANE -99
@@ -21,6 +22,20 @@
#define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals
#define BLACKNESS_PLANE_RENDER_TARGET "BLACKNESS_PLANE"
+#define ABOVE_GAME_PLANE 1
+
+//-------------------- Rendering ---------------------
+#define RENDER_PLANE_GAME 100
+#define RENDER_PLANE_NON_GAME 101
+#define RENDER_PLANE_MASTER 102
+
+// Lummox I swear to god I will find you
+// NOTE! You can only ever have planes greater then -10000, if you add too many with large offsets you will brick multiz
+// Same can be said for large multiz maps. Tread carefully mappers
+#define HIGHEST_EVER_PLANE RENDER_PLANE_MASTER
+/// The range unique planes can be in
+#define PLANE_RANGE (HIGHEST_EVER_PLANE - LOWEST_EVER_PLANE)
+
#define SPACE_LAYER 1.8
//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define
#define MID_TURF_LAYER 2.02
diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm
index a89965da7bec..02e6853338d7 100644
--- a/code/__DEFINES/machines.dm
+++ b/code/__DEFINES/machines.dm
@@ -123,9 +123,16 @@
#define MACHINE_ELECTRIFIED_PERMANENT -1
#define MACHINE_DEFAULT_ELECTRIFY_TIME 30
-//these flags are used to tell the DNA modifier if a plant gene cannot be extracted or modified.
+/// -- Flags for genes --
+/// Plant genes that can be removed via gene shears.
#define PLANT_GENE_REMOVABLE (1<<0)
-#define PLANT_GENE_EXTRACTABLE (1<<1)
+/// Plant genes that can be mutated randomly in strange seeds / due to high instability.
+#define PLANT_GENE_MUTATABLE (1<<1)
+#define PLANT_GENE_EXTRACTABLE (1<<2)
+
+/// -- Flags for traits. --
+/// Caps the plant's yield at 5 instead of 10.
+#define TRAIT_HALVES_YIELD (1<<0)
//used to determine what rotation mode the ore redemption machine is in
#define ORM_BOTH 0
diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm
index 719f06f2a812..a442ddb464b8 100644
--- a/code/__DEFINES/maths.dm
+++ b/code/__DEFINES/maths.dm
@@ -290,3 +290,11 @@
/// Like SPT_PROB_RATE but easier to use, simply put `if(SPT_PROB(10, 5))`
#define SPT_PROB(prob_per_second_percent, seconds_per_tick) (prob(100*SPT_PROB_RATE((prob_per_second_percent)/100, (seconds_per_tick))))
+
+/// Converts a probability/second chance to probability/delta_time chance
+/// For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do `if(prob(100*DT_PROB_RATE(0.1, 5)))`
+#define DT_PROB_RATE(prob_per_second, delta_time) (1 - (1 - (prob_per_second)) ** (delta_time))
+
+/// Like DT_PROB_RATE but easier to use, simply put `if(DT_PROB(10, 5))`
+#define DT_PROB(prob_per_second_percent, delta_time) (prob(100*DT_PROB_RATE((prob_per_second_percent)/100, (delta_time))))
+// )
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index ddd395d3879a..c6fe0591ee27 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -28,7 +28,6 @@
#define LEGCUFF_LAYER 5
#define HANDS_LAYER 4
#define BODY_FRONT_LAYER 3
-#define HALO_LAYER 2 //blood cult ascended halo, because there's currently no better solution for adding/removing
#define FIRE_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 31 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
@@ -277,12 +276,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define NUKE_SYNDICATE_BASE 3
#define STATION_DESTROYED_NUKE 4
#define STATION_EVACUATED 5
-#define BLOB_WIN 8
-#define BLOB_NUKE 9
-#define BLOB_DESTROYED 10
-#define CULT_ESCAPE 11
-#define CULT_FAILURE 12
-#define CULT_SUMMON 13
#define NUKE_MISS 14
#define OPERATIVES_KILLED 15
#define OPERATIVE_SKIRMISH 16
@@ -381,7 +374,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define TELEPORT_CHANNEL_QUANTUM "quantum" //Quantum-based teleportation, requires both sender and receiver, but is free from normal disruption
#define TELEPORT_CHANNEL_WORMHOLE "wormhole" //Wormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe
#define TELEPORT_CHANNEL_MAGIC "magic" //Magic teleportation, does whatever it wants (unless there's antimagic)
-#define TELEPORT_CHANNEL_CULT "cult" //Cult teleportation, does whatever it wants (unless there's holiness)
#define TELEPORT_CHANNEL_FREE "free" //Anything else
//Run the world with this parameter to enable a single run though of the game setup and tear down process with unit tests in between
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index f5c382c15c29..7bcca355f34a 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -76,7 +76,6 @@
#define MONKEY_BODYPART "monkey"
#define ALIEN_BODYPART "alien"
#define LARVA_BODYPART "larva"
-#define DEVIL_BODYPART "devil"
//Defines for Species IDs
#define SPECIES_ABDUCTOR "abductor"
@@ -416,9 +415,6 @@
#define SILENCE_RANGED_MESSAGE (1<<0)
-///Swarmer flags
-#define SWARMER_LIGHT_ON (1<<0)
-
/// Returns whether or not the given mob can succumb
#define CAN_SUCCUMB(target) (HAS_TRAIT(target, TRAIT_CRITICAL_CONDITION) && !HAS_TRAIT(target, TRAIT_NODEATH))
diff --git a/code/__DEFINES/mod.dm b/code/__DEFINES/mod.dm
new file mode 100644
index 000000000000..29a450eceb91
--- /dev/null
+++ b/code/__DEFINES/mod.dm
@@ -0,0 +1,40 @@
+/// Default value for the max_complexity var on MODsuits
+#define DEFAULT_MAX_COMPLEXITY 15
+
+/// Default cell drain per process on MODsuits
+#define DEFAULT_CHARGE_DRAIN 0.09
+
+/// Default time for a part to seal
+#define MOD_ACTIVATION_STEP_TIME (2 SECONDS)
+
+/// Passive module, just acts when put in naturally.
+#define MODULE_PASSIVE 0
+/// Usable module, does something when you press a button.
+#define MODULE_USABLE 1
+/// Toggle module, you turn it on/off and it does stuff.
+#define MODULE_TOGGLE 2
+/// Actively usable module, you may only have one selected at a time.
+#define MODULE_ACTIVE 3
+
+//Defines used by the theme for clothing flags and similar
+#define CONTROL_LAYER "control_layer"
+#define HELMET_FLAGS "helmet_flags"
+#define CHESTPLATE_FLAGS "chestplate_flags"
+#define GAUNTLETS_FLAGS "gauntlets_flags"
+#define BOOTS_FLAGS "boots_flags"
+
+#define UNSEALED_LAYER "unsealed_layer"
+#define UNSEALED_CLOTHING "unsealed_clothing"
+#define SEALED_CLOTHING "sealed_clothing"
+#define UNSEALED_INVISIBILITY "unsealed_invisibility"
+#define SEALED_INVISIBILITY "sealed_invisibility"
+#define UNSEALED_COVER "unsealed_cover"
+#define SEALED_COVER "sealed_cover"
+#define CAN_OVERSLOT "can_overslot"
+
+//Defines used to override MOD clothing's icon and worn icon files in the skin.
+#define MOD_ICON_OVERRIDE "mod_icon_override"
+#define MOD_WORN_ICON_OVERRIDE "mod_worn_icon_override"
+
+/// Global list of all /datum/mod_theme
+GLOBAL_LIST_INIT(mod_themes, setup_mod_themes())
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index d9ca63008c1d..387f87c90acc 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -52,6 +52,7 @@
#define ANTI_TINFOIL_MANEUVER (1<<12) //Hats with negative effects when worn (i.e the tinfoil hat).
#define DANGEROUS_OBJECT (1<<13) //Clothes that cause a larger notification when placed on a person.
#define FAST_EMBARK (1<<14) //Clothes that speed up mech and pod boarding.
+#define SEALS_EYES (1<<15) //Goggles and helmets that seal eyes from the enviroment
/// Flags for the organ_flags var on /obj/item/organ
#define ORGAN_SYNTHETIC (1<<0) //Synthetic organs, or cybernetic organs. Reacts to EMPs and don't deteriorate or heal
diff --git a/code/__DEFINES/particles.dm b/code/__DEFINES/particles.dm
new file mode 100644
index 000000000000..5657566a63bb
--- /dev/null
+++ b/code/__DEFINES/particles.dm
@@ -0,0 +1,5 @@
+// /obj/effect/abstract/particle_holder/var/particle_flags
+// Flags that effect how a particle holder displays something
+
+/// If we're inside something inside a mob, display off that mob too
+#define PARTICLE_ATTACH_MOB (1<<0)
diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index c65f26a89fd3..4f225d304313 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -21,7 +21,6 @@
#define DEADMIN_POSITION_SECURITY (1<<18)
#define DEADMIN_POSITION_SILICON (1<<19)
#define SOUND_ENDOFROUND (1<<20)
-#define ADMIN_IGNORE_CULT_GHOST (1<<21)
#define SPLIT_ADMIN_TABS (1<<22)
#define FAST_MC_REFRESH (1<<23)
diff --git a/code/__DEFINES/processing.dm b/code/__DEFINES/processing.dm
new file mode 100644
index 000000000000..905c03830d51
--- /dev/null
+++ b/code/__DEFINES/processing.dm
@@ -0,0 +1,3 @@
+#define TOOL_PROCESSING_RESULT "result"
+#define TOOL_PROCESSING_AMOUNT "amount"
+#define TOOL_PROCESSING_TIME "time"
diff --git a/code/__DEFINES/projectiles.dm b/code/__DEFINES/projectiles.dm
index 61038b17c1ec..db31a4b5552d 100644
--- a/code/__DEFINES/projectiles.dm
+++ b/code/__DEFINES/projectiles.dm
@@ -7,3 +7,9 @@
#define PROJECTILE_PIERCE_PHASE 2
// Delete self without hitting
#define PROJECTILE_DELETE_WITHOUT_HITTING 3
+
+#define PROJECTILE_BONUS_DAMAGE_NONE 0
+#define PROJECTILE_BONUS_DAMAGE_MINERALS (1<<0) //minable walls
+#define PROJECTILE_BONUS_DAMAGE_WALLS (1<<1) // walls
+#define PROJECTILE_BONUS_DAMAGE_RWALLS (1<<2) //reinforced walls
+
diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm
index 9e253563fe89..9cb2732d3a5c 100644
--- a/code/__DEFINES/role_preferences.dm
+++ b/code/__DEFINES/role_preferences.dm
@@ -17,13 +17,10 @@
#define ROLE_REV_SUCCESSFUL "Victorious Revolutionary"
#define ROLE_ALIEN "Xenomorph"
#define ROLE_PAI "pAI"
-#define ROLE_CULTIST "Cultist"
-#define ROLE_BLOB "Blob"
#define ROLE_NINJA "Space Ninja"
#define ROLE_MONKEY "Monkey"
#define ROLE_ABDUCTOR "Abductor"
#define ROLE_REVENANT "Revenant"
-#define ROLE_DEVIL "Devil"
#define ROLE_BROTHER "Blood Brother"
#define ROLE_BRAINWASHED "Brainwashed Victim"
#define ROLE_OVERTHROW "Syndicate Mutineer" //Role removed, left here for safety.
@@ -53,14 +50,11 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_MALF,
ROLE_ALIEN,
ROLE_PAI,
- ROLE_CULTIST = /datum/game_mode/cult,
- ROLE_BLOB,
ROLE_NINJA,
ROLE_OBSESSED,
ROLE_SPACE_DRAGON,
ROLE_REVENANT,
ROLE_ABDUCTOR,
- ROLE_DEVIL = /datum/game_mode/devil,
ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs,
ROLE_SENTIENCE,
ROLE_BORER
diff --git a/code/__DEFINES/ruins.dm b/code/__DEFINES/ruins.dm
index 894b9c0863f4..93a63d207c30 100644
--- a/code/__DEFINES/ruins.dm
+++ b/code/__DEFINES/ruins.dm
@@ -32,3 +32,52 @@
return SSmapping.ruins_templates
else
return SSmapping.ruin_types_list[ruintype]
+
+/*
+Maps described in the catalogue must be described with at least one or more of the following tags.
+
+*Loot Summary
+Minor Loot = Has negligable/no loot at all, only contains fluff items or just the loot found from enemy drops or structures in the ruin.
+Medium Loot = Has a pool of loot that is useful for the average player or ship, but not in large amounts, and does not have more than one or two boss drops.
+Major Loot = Contains a large pool of loot useful to the average player or ship. Or includes more boss drops or necropolis loot than there are challenges for.
+*/
+#define RUIN_TAG_MINOR_LOOT "Minor Loot"
+#define RUIN_TAG_MEDIUM_LOOT "Medium Loot"
+#define RUIN_TAG_MAJOR_LOOT "Major Loot"
+
+/*Combat Summary
+No Combat = Contains no enemies or combat challenges.
+Minor Combat Challenge = Has only 1-2 hit melee mobs in small or moderate amounts.
+Medium Combat Challenge = Contains more than just simple low health melee mobs, or a moderate amount of mobs.
+Boss Combat Challenge = Contains either one or more bossmobs, has a large number of mobs that are either overwhelming or considerably challenging, or has a significant combat challenge overall.
+*/
+#define RUIN_TAG_NO_COMBAT "No Combat"
+#define RUIN_TAG_MINOR_COMBAT "Minor Combat Challenge"
+#define RUIN_TAG_MEDIUM_COMBAT "Medium Combat Challenge"
+#define RUIN_TAG_HARD_COMBAT "Hard Combat Challenge"
+#define RUIN_TAG_BOSS_COMBAT "Boss Combat Challenge"
+
+
+/*Qualities
+Megafauna = Map contains one or more megafauna.
+Antag Gear = Map contains one or more items typically only obtainable by antag roles.
+Necropolis Loot = Map contains an item or chest from the necropolis loot pool.
+Liveable = The entirety of the map is inhabitable without protective gear, and the map is not surrounded by an inhospitable environment.
+Inhospitable = The majority of the map is uninhabitable without protective gear, and the map is not surrounded by a hospitable environment.
+Shelter = The map contains a portion that is hospitable without protective gear, with a surrounding section that is inhospitable. Or the map is an enclosed hospitable space that spawns on an inhospitable planet.
+Bad Shelter = The map contains a portion that is inhospitable without protective gear, with a surround section that is hospitable. Or the map is an enclosed inhospitable space that spawn on a hospitable planet.
+No Content = A map that contains no objects. It contains only turfs, walls, and or areas.
+Hazardous = Contains hazardous environment elements. Elements include but are not limited to: Mines, IEDs, Chasms appearing more than twice or more than once if one is 3x3 or more, disease spawns, beartraps.
+Unknown Details = Something about the map can't be checked with a map editor alone, and has not been tested for confirmation yet.
+Lava = Contains lava or liquid plasma tiles.
+Ghost Role = Contains a ghost role.
+*/
+#define RUIN_TAG_MEGAFAUNA "Megafauna"
+#define RUIN_TAG_LIVEABLE "Liveable"
+#define RUIN_TAG_INHOSPITABLE "Inhospitable"
+#define RUIN_TAG_SHELTER "Shelter"
+#define RUIN_TAG_BAD_SHELTER "Bad Shelter"
+#define RUIN_TAG_NO_CONTENT "No Content"
+#define RUIN_TAG_HAZARDOUS "Hazardous"
+#define RUIN_TAG_UNKNOWN_DETAILS "Unknown Details"
+#define RUIN_TAG_LAVA "Lava"
diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm
index 1bd23038c600..285e7ce5ff80 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -174,4 +174,36 @@
#define SOUND_AREA_ICEMOON SOUND_ENVIRONMENT_CAVE
#define SOUND_AREA_WOODFLOOR SOUND_ENVIRONMENT_CITY
+/// List of all of our sound keys.
+#define SFX_BODYFALL "bodyfall"
+#define SFX_BULLET_MISS "bullet_miss"
+#define SFX_CAN_OPEN "can_open"
+#define SFX_CLOWN_STEP "clown_step"
+#define SFX_DESECRATION "desecration"
+#define SFX_EXPLOSION "explosion"
+#define SFX_EXPLOSION_CREAKING "explosion_creaking"
+#define SFX_HISS "hiss"
+#define SFX_HONKBOT_E "honkbot_e"
+#define SFX_HULL_CREAKING "hull_creaking"
+#define SFX_HYPERTORUS_CALM "hypertorus_calm"
+#define SFX_HYPERTORUS_MELTING "hypertorus_melting"
+#define SFX_IM_HERE "im_here"
+#define SFX_LAW "law"
+#define SFX_PAGE_TURN "page_turn"
+#define SFX_PUNCH "punch"
+#define SFX_REVOLVER_SPIN "revolver_spin"
+#define SFX_RICOCHET "ricochet"
+#define SFX_RUSTLE "rustle"
+#define SFX_SHATTER "shatter"
+#define SFX_SM_CALM "sm_calm"
+#define SFX_SM_DELAM "sm_delam"
+#define SFX_SPARKS "sparks"
+#define SFX_SUIT_STEP "suit_step"
+#define SFX_SWING_HIT "swing_hit"
+#define SFX_TERMINAL_TYPE "terminal_type"
+#define SFX_WARPSPEED "warpspeed"
+#define SFX_CRUNCHY_BUSH_WHACK "crunchy_bush_whack"
+#define SFX_TREE_CHOP "tree_chop"
+#define SFX_ROCK_TAP "rock_tap"
+
#define SOUND_EMPTY_MAG 'sound/weapons/empty.ogg'
diff --git a/code/__DEFINES/species_clothing_defines.dm b/code/__DEFINES/species_clothing_defines.dm
index 517579192634..4dd9e26da752 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
@@ -22,6 +22,7 @@
#define VOX_SUIT_PATH 'icons/mob/species/vox/onmob_suit_vox.dmi'
#define VOX_EARS_PATH 'icons/mob/species/vox/onmob_ears_vox.dmi'
#define VOX_MASK_PATH 'icons/mob/species/vox/onmob_mask_vox.dmi'
+#define VOX_NECK_PATH 'icons/mob/species/vox/onmob_neck_vox.dmi'
#define VOX_HEAD_PATH 'icons/mob/species/vox/onmob_head_vox.dmi'
#define VOX_GLOVES_PATH 'icons/mob/species/vox/onmob_hands_vox.dmi'
#define VOX_GLASSES_PATH 'icons/mob/species/vox/onmob_eyes_vox.dmi'
@@ -29,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/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index d1fbf26616d5..9a7c477b8b14 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -64,8 +64,6 @@
#define STATUS_EFFECT_HISWRATH /datum/status_effect/his_wrath //His Wrath.
-#define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes
-
#define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage
#define STATUS_EFFECT_SAWBLEED /datum/status_effect/stacking/saw_bleed //if the bleed builds up enough, takes a ton of damage
@@ -99,6 +97,14 @@
#define STATUS_EFFECT_METAB_FROZEN /datum/status_effect/metab_frozen // Affected cannot process chems
+//Incapacitated status effect flags
+/// If the incapacitated status effect will ignore a mob in restraints (handcuffs)
+#define IGNORE_RESTRAINTS (1<<0)
+/// If the incapacitated status effect will ignore a mob in stasis (stasis beds)
+#define IGNORE_STASIS (1<<1)
+/// If the incapacitated status effect will ignore a mob being agressively grabbed
+#define IGNORE_GRAB (1<<2)
+
/////////////
// NEUTRAL //
/////////////
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 36aa57e48625..54874bc9e16b 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -121,6 +121,7 @@
#define INIT_ORDER_JOBS 65
#define INIT_ORDER_QUIRKS 60
#define INIT_ORDER_TICKER 55
+#define INIT_ORDER_FACTION 53
#define INIT_ORDER_MAPPING 50
#define INIT_ORDER_TIMETRACK 47
#define INIT_ORDER_NETWORKS 45
diff --git a/code/__DEFINES/tools.dm b/code/__DEFINES/tools.dm
index 320648170b44..eb2696c0afbb 100644
--- a/code/__DEFINES/tools.dm
+++ b/code/__DEFINES/tools.dm
@@ -14,6 +14,8 @@
#define TOOL_DRILL "drill"
#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/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index f88f0c9d791c..664e6cc687f7 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -173,13 +173,20 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_RESISTCOLD "resist_cold"
#define TRAIT_RESISTHIGHPRESSURE "resist_high_pressure"
#define TRAIT_RESISTLOWPRESSURE "resist_low_pressure"
+#define TRAIT_METALLIC "metallic" //used on IPCs
#define TRAIT_BOMBIMMUNE "bomb_immunity"
#define TRAIT_RADIMMUNE "rad_immunity"
#define TRAIT_GENELESS "geneless"
#define TRAIT_VIRUSIMMUNE "virus_immunity"
#define TRAIT_PIERCEIMMUNE "pierce_immunity"
#define TRAIT_NODISMEMBER "dismember_immunity"
+#define TRAIT_LAVA_IMMUNE "lava_immunity"
+#define TRAIT_SNOWSTORM_IMMUNE "snow_immunity"
+#define TRAIT_ASHSTORM_IMMUNE "ash_immunity"
+#define TRAIT_SANDSTORM_IMMUNE "sand_immunity"
#define TRAIT_NOFIRE "nonflammable"
+/// Prevents plasmamen from self-igniting if only their helmet is missing
+#define TRAIT_NOSELFIGNITION_HEAD_ONLY "no_selfignition_head_only"
#define TRAIT_NOGUNS "no_guns"
#define TRAIT_NOHUNGER "no_hunger"
#define TRAIT_NOMETABOLISM "no_metabolism"
@@ -215,6 +222,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NOMOBSWAP "no-mob-swap"
#define TRAIT_XRAY_VISION "xray_vision"
#define TRAIT_THERMAL_VISION "thermal_vision"
+/// Like antimagic, but doesn't block the user from casting
+#define TRAIT_ANTIMAGIC_NO_SELFBLOCK "anti_magic_no_selfblock"
/// We have some form of forced gravity acting on us
#define TRAIT_FORCED_GRAVITY "forced_gravity"
#define TRAIT_ABDUCTOR_TRAINING "abductor-training"
@@ -248,6 +257,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_GAMERGOD "gamer-god" //double arcade prizes
#define TRAIT_GIANT "giant"
#define TRAIT_DWARF "dwarf"
+#define TRAIT_FASTMED "fast_med_use"
#define TRAIT_SILENT_FOOTSTEPS "silent_footsteps" //makes your footsteps completely silent
#define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good....
/// The holder of this trait has antennae or whatever that hurt a ton when noogied
@@ -264,6 +274,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_SCOOPABLE "scoopable"
//your smooches actually deal damage to their target
#define TRAIT_KISS_OF_DEATH "kiss_of_death"
+/// We can handle 'dangerous' plants in botany safely
+#define TRAIT_PLANT_SAFE "plant_safe"
/// This mob overrides certian SSlag_switch measures with this special trait
#define TRAIT_BYPASS_MEASURES "bypass_lagswitch_measures"
//non-mob traits
@@ -279,6 +291,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_AREA_SENSITIVE "area-sensitive"
///Used for managing KEEP_TOGETHER in [/atom/var/appearance_flags]
+///every object that is currently the active storage of some client mob has this trait
+#define TRAIT_ACTIVE_STORAGE "active_storage"
+
#define TRAIT_KEEP_TOGETHER "keep-together"
// item traits
@@ -286,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"
@@ -337,7 +353,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define CYBORG_ITEM_TRAIT "cyborg-item"
#define ADMIN_TRAIT "admin" // (B)admins only.
#define CHANGELING_TRAIT "changeling"
-#define CULT_TRAIT "cult"
#define CURSED_ITEM_TRAIT "cursed-item" // The item is magically cursed
#define ABSTRACT_ITEM_TRAIT "abstract-item"
#define STATUS_EFFECT_TRAIT "status-effect"
@@ -362,6 +377,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define LYING_DOWN_TRAIT "lying-down"
/// Trait associated to lacking electrical power.
#define POWER_LACK_TRAIT "power-lack"
+/// Trait applied by MODsuits.
+#define MOD_TRAIT "mod"
// unique trait sources, still defines
#define CLONING_POD_TRAIT "cloning-pod"
@@ -374,7 +391,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define STASIS_MUTE "stasis"
#define GENETICS_SPELL "genetics_spell"
#define EYES_COVERED "eyes_covered"
-#define CULT_EYES "cult_eyes"
#define TRAIT_SANTA "santa"
#define SCRYING_ORB "scrying-orb"
#define ABDUCTOR_ANTAGONIST "abductor-antagonist"
@@ -385,14 +401,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"
@@ -411,8 +425,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define WARPWHISTLE_TRAIT "warpwhistle"
///Turf trait for when a turf is transparent
#define TURF_Z_TRANSPARENT_TRAIT "turf_z_transparent"
-/// Trait applied by by [/datum/component/soulstoned]
-#define SOULSTONE_TRAIT "soulstone"
/// Trait applied to slimes by low temperature
#define SLIME_COLD "slime-cold"
/// Trait applied to bots by being tipped over
@@ -435,6 +447,31 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define BEAUTY_ELEMENT_TRAIT "beauty_element"
#define MOOD_COMPONENT_TRAIT "mood_component"
+// mobility flag traits
+// IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it)
+// BUT FOR NOW, THESE ARE HOOKED TO DO update_mobility() VIA COMSIG IN living_mobility.dm
+// SO IF YOU ADD MORE, BESURE TO UPDATE IT THERE.
+
+/// Disallow movement
+#define TRAIT_MOBILITY_NOMOVE "mobility_nomove"
+/// Disallow pickup
+#define TRAIT_MOBILITY_NOPICKUP "mobility_nopickup"
+/// Disallow item use
+#define TRAIT_MOBILITY_NOUSE "mobility_nouse"
+///Disallow resting/unresting
+#define TRAIT_MOBILITY_NOREST "mobility_norest"
+
+#define TRAIT_FORCED_STANDING "forcedstanding"
+
+///Movement type traits for movables. See elements/movetype_handler.dm
+#define TRAIT_MOVE_GROUND "move_ground"
+#define TRAIT_MOVE_FLYING "move_flying"
+#define TRAIT_MOVE_VENTCRAWLING "move_ventcrawling"
+#define TRAIT_MOVE_FLOATING "move_floating"
+#define TRAIT_MOVE_PHASING "move_phasing"
+/// Disables the floating animation. See above.
+#define TRAIT_NO_FLOATING_ANIM "no-floating-animation"
+
/// Trait granted by [mob/living/silicon/ai]
/// Applied when the ai anchors itself
#define AI_ANCHOR_TRAIT "ai_anchor"
diff --git a/code/__DEFINES/turfs.dm b/code/__DEFINES/turfs.dm
index 571bade19ef2..30db6fc98f33 100644
--- a/code/__DEFINES/turfs.dm
+++ b/code/__DEFINES/turfs.dm
@@ -12,3 +12,9 @@
#define CHANGETURF_DEFER_BATCH (1 << 5)
#define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS)
+
+// Integrity of mineral walls.
+#define MINERAL_WALL_INTEGRITY 100
+
+// how many bullet holes a wall can have at a given time
+#define MAX_DENT_DECALS 15
diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm
index 5d9522b18ee4..602473b6086d 100644
--- a/code/__DEFINES/vv.dm
+++ b/code/__DEFINES/vv.dm
@@ -92,6 +92,7 @@
#define VV_HK_AUTO_RENAME "auto_rename"
#define VV_HK_RADIATE "radiate"
#define VV_HK_EDIT_FILTERS "edit_filters"
+#define VV_HK_EDIT_PARTICLES "edit_particles"
// /obj
#define VV_HK_OSAY "osay"
diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm
index f603e85292ad..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)
@@ -109,13 +145,25 @@
return "[output][and_text][input[index]]"
-//Checks for specific types in a list
-/proc/is_type_in_list(atom/A, list/L)
- if(!LAZYLEN(L) || !A)
+/**
+ * Checks for specific types in a list.
+ *
+ * If using zebra mode the list should be an assoc list with truthy/falsey values.
+ * The check short circuits so earlier entries in the input list will take priority.
+ * Ergo, subtypes should come before parent types.
+ * Notice that this is the opposite priority of [/proc/typecacheof].
+ *
+ * Arguments:
+ * - [type_to_check][/datum]: An instance to check.
+ * - [list_to_check][/list]: A list of typepaths to check the type_to_check against.
+ * - zebra: Whether to use the value of the matching type in the list instead of just returning true when a match is found.
+ */
+/proc/is_type_in_list(datum/type_to_check, list/list_to_check, zebra = FALSE)
+ if(!LAZYLEN(list_to_check) || !type_to_check)
return FALSE
- for(var/type in L)
- if(istype(A, type))
- return TRUE
+ for(var/type in list_to_check)
+ if(istype(type_to_check, type))
+ return !zebra || list_to_check[type] // Subtypes must come first in zebra lists.
return FALSE
//Checks for specific types in specifically structured (Assoc "type" = TRUE) lists ('typecaches')
diff --git a/code/__HELPERS/_planes.dm b/code/__HELPERS/_planes.dm
new file mode 100644
index 000000000000..d8306c356d4c
--- /dev/null
+++ b/code/__HELPERS/_planes.dm
@@ -0,0 +1,80 @@
+// This file contains helper macros for plane operations
+// See the planes section of Visuals.md for more detail, but essentially
+// When we render multiz, we do it by placing all atoms on lower levels on well, lower planes
+// This is done with stacks of plane masters (things we use to apply effects to planes)
+// These macros exist to facilitate working with this system, and other associated small bits
+
+/// Takes an atom to change the plane of, a new plane value, and something that can be used as a reference to a z level as input
+/// Modifies the new value to match the plane we actually want. Note, if you pass in an already offset plane the offsets will add up
+/// Use PLANE_TO_TRUE() to avoid this
+#define SET_PLANE(thing, new_value, z_reference) (thing.plane = MUTATE_PLANE(new_value, z_reference))
+
+/// Takes a plane and a z reference, and offsets the plane by the mutation
+/// The SSmapping.max_plane_offset bit here is technically redundant, but saves a bit of work in the base case
+/// And the base case is important to me. Non multiz shouldn't get hit too bad by this code
+#define MUTATE_PLANE(new_value, z_reference) ((SSmapping.max_plane_offset) ? GET_NEW_PLANE(new_value, GET_TURF_PLANE_OFFSET(z_reference)) : (new_value))
+
+/// Takes a z reference that we are unsure of, sanity checks it
+/// Returns either its offset, or 0 if it's not a valid ref
+#define GET_TURF_PLANE_OFFSET(z_reference) ((SSmapping.max_plane_offset && isatom(z_reference)) ? GET_Z_PLANE_OFFSET(z_reference.z) : 0)
+/// Essentially just an unsafe version of GET_TURF_PLANE_OFFSET()
+/// Takes a z value we returns its offset with a list lookup
+/// Will runtime during parts of init. Be careful :)
+#define GET_Z_PLANE_OFFSET(z) (SSmapping.z_level_to_plane_offset[z])
+
+/// Takes a plane to offset, and the multiplier to use, and well, does the offsetting
+/// Respects a blacklist we use to remove redundant plane masters, such as hud objects
+#define GET_NEW_PLANE(new_value, multiplier) (SSmapping.plane_offset_blacklist?["[new_value]"] ? new_value : (new_value) - (PLANE_RANGE * (multiplier)))
+
+// Now for the more niche things
+
+/// Takes an object, new plane, and multipler, and offsets the plane
+/// This is for cases where you have a multipler precalculated, and just want to use it
+/// Often an optimization, sometimes a necessity
+#define SET_PLANE_W_SCALAR(thing, new_value, multiplier) (thing.plane = GET_NEW_PLANE(new_value, multiplier))
+
+
+/// Implicit plane set. We take the turf from the object we're changing the plane of, and use ITS z as a spokesperson for our plane value
+#define SET_PLANE_IMPLICIT(thing, new_value) SET_PLANE_EXPLICIT(thing, new_value, thing)
+
+// This is an unrolled and optimized version of SET_PLANE, for use anywhere where you are unsure of a source's "turfness"
+// The plane is cached to allow for fancy stuff to be eval'd once, rather then often
+#define SET_PLANE_EXPLICIT(thing, new_value, source) \
+ do {\
+ if(SSmapping.max_plane_offset) {\
+ var/_cached_plane = new_value;\
+ var/turf/_our_turf = get_turf(source);\
+ if(_our_turf){\
+ thing.plane = GET_NEW_PLANE(_cached_plane, GET_Z_PLANE_OFFSET(_our_turf.z));\
+ }\
+ }\
+ else {\
+ thing.plane = new_value;\
+ }\
+ }\
+ while (FALSE)
+
+// Now for macros that exist to get info from SSmapping
+// Mostly about details of planes, or z levels
+
+/// Takes a z level, gets the lowest plane offset in its "stack"
+#define GET_LOWEST_STACK_OFFSET(z) ((SSmapping.max_plane_offset) ? SSmapping.z_level_to_lowest_plane_offset[z] : 0)
+/// Takes a plane, returns the canonical, unoffset plane it represents
+#define PLANE_TO_TRUE(plane) ((SSmapping.plane_offset_to_true) ? SSmapping.plane_offset_to_true["[plane]"] : plane)
+/// Takes a plane, returns the offset it uses
+#define PLANE_TO_OFFSET(plane) ((SSmapping.plane_to_offset) ? SSmapping.plane_to_offset["[plane]"] : plane)
+/// Takes a plane, returns TRUE if it is of critical priority, FALSE otherwise
+#define PLANE_IS_CRITICAL(plane) ((SSmapping.plane_to_offset) ? !!SSmapping.critical_planes["[plane]"] : FALSE)
+/// Takes a true plane, returns the offset planes that would canonically represent it
+#define TRUE_PLANE_TO_OFFSETS(plane) ((SSmapping.true_to_offset_planes) ? SSmapping.true_to_offset_planes["[plane]"] : list(plane))
+/// Takes a render target and an offset, returns a canonical render target string for it
+#define OFFSET_RENDER_TARGET(render_target, offset) (_OFFSET_RENDER_TARGET(render_target, SSmapping.render_offset_blacklist?["[render_target]"] ? 0 : offset))
+/// Helper macro for the above
+/// Honestly just exists to make the pattern of render target strings more readable
+#define _OFFSET_RENDER_TARGET(render_target, offset) ("[(render_target)] #[(offset)]")
+
+// Known issues:
+// Potentially too much client load? Hard to tell due to not having a potato pc to hand.
+// This is solvable with lowspec preferences, which would not be hard to implement
+// Player popups will now render their effects, like overlay lights. this is fixable, but I've not gotten to it
+// I think overlay lights can render on the wrong z layer. s fucked
diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm
index 70349078bd92..5479f2bcbe54 100644
--- a/code/__HELPERS/areas.dm
+++ b/code/__HELPERS/areas.dm
@@ -42,7 +42,6 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(/area/ship/engin
// Passed into the above proc as list/break_if_found
var/static/area_or_turf_fail_types = typecacheof(list(
/turf/open/space,
- /area/shuttle,
))
// Ignore these areas and dont let people expand them. They can expand into them though
var/static/blacklisted_areas = typecacheof(list(
diff --git a/code/__HELPERS/atoms.dm b/code/__HELPERS/atoms.dm
new file mode 100644
index 000000000000..dbb42122ff45
--- /dev/null
+++ b/code/__HELPERS/atoms.dm
@@ -0,0 +1,9 @@
+///Returns the src and all recursive contents as a list.
+/atom/proc/get_all_contents(ignore_flag_1)
+ . = list(src)
+ var/i = 0
+ while(i < length(.))
+ var/atom/checked_atom = .[++i]
+ if(checked_atom.flags_1 & ignore_flag_1)
+ continue
+ . += checked_atom.contents
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index e7af7f31884d..7bb70222072f 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -6,7 +6,6 @@ block( \
)
#define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL))
-#define CULT_POLL_WAIT 2400
/proc/get_area_name(atom/X, format_text = FALSE)
var/area/A = isarea(X) ? X : get_area(X)
@@ -596,3 +595,31 @@ block( \
continue
C.energy_fail(rand(duration_min,duration_max))
+
+///Returns a list of turfs around a center based on RANGE_TURFS()
+/proc/circle_range_turfs(center = usr, radius = 3)
+
+ var/turf/center_turf = get_turf(center)
+ var/list/turfs = new/list()
+ var/rsq = radius * (radius + 0.5)
+
+ for(var/turf/checked_turf as anything in RANGE_TURFS(radius, center_turf))
+ var/dx = checked_turf.x - center_turf.x
+ var/dy = checked_turf.y - center_turf.y
+ if(dx * dx + dy * dy <= rsq)
+ turfs += checked_turf
+ return turfs
+
+///Returns a list of turfs around a center based on view()
+/proc/circle_view_turfs(center=usr,radius=3) //Is there even a diffrence between this proc and circle_range_turfs()?
+
+ var/turf/center_turf = get_turf(center)
+ var/list/turfs = new/list()
+ var/rsq = radius * (radius + 0.5)
+
+ for(var/turf/checked_turf in view(radius, center_turf))
+ var/dx = checked_turf.x - center_turf.x
+ var/dy = checked_turf.y - center_turf.y
+ if(dx * dx + dy * dy <= rsq)
+ turfs += checked_turf
+ return turfs
diff --git a/code/__HELPERS/generators.dm b/code/__HELPERS/generators.dm
new file mode 100644
index 000000000000..d50df7deba19
--- /dev/null
+++ b/code/__HELPERS/generators.dm
@@ -0,0 +1,11 @@
+/**
+ * returns the arguments given to a generator and manually extracts them from the internal byond object
+ * returns:
+ * * flat list of strings for args given to the generator.
+ * * Note: this means things like "list(1,2,3)" will need to be processed
+ */
+/proc/return_generator_args(generator/target)
+ var/string_repr = "[target]" //the name of the generator is the string representation of it's _binobj, which also contains it's args
+ string_repr = copytext(string_repr, 11, length(string_repr)) // strips extraneous data
+ string_repr = replacetext(string_repr, "\"", "") // removes the " around the type
+ return splittext(string_repr, ", ")
diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm
new file mode 100644
index 000000000000..983ecc800274
--- /dev/null
+++ b/code/__HELPERS/maths.dm
@@ -0,0 +1,13 @@
+///Calculate the angle between two movables and the west|east coordinate
+/proc/get_angle(atom/movable/start, atom/movable/end)//For beams.
+ if(!start || !end)
+ return 0
+ var/dy =(32 * end.y + end.pixel_y) - (32 * start.y + start.pixel_y)
+ var/dx =(32 * end.x + end.pixel_x) - (32 * start.x + start.pixel_x)
+ if(!dy)
+ return (dx >= 0) ? 90 : 270
+ . = arctan(dx/dy)
+ if(dy < 0)
+ . += 180
+ else if(dx < 0)
+ . += 360
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 6a3028443dcc..ae5a1c1ce929 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -257,7 +257,19 @@ GLOBAL_LIST_EMPTY(species_list)
return ..()
/**
- * Timed action involving one mob user. A target can also be specified, but it is optional.
+ * Used to get the amount of change between two body temperatures
+ *
+ * When passed the difference between two temperatures returns the amount of change to temperature to apply.
+ * The change rate should be kept at a low value tween 0.16 and 0.02 for optimal results.
+ * vars:
+ * * temp_diff (required) The differance between two temperatures
+ * * change_rate (optional)(Default: 0.06) The rate of range multiplyer
+ */
+/proc/get_temp_change_amount(temp_diff, change_rate = 0.06)
+ if(temp_diff < 0)
+ return -(BODYTEMP_AUTORECOVERY_DIVISOR / 2) * log(1 - (temp_diff * change_rate))
+
+/* Timed action involving one mob user. A target can also be specified, but it is optional.
*
* Checks that `user` does not move, change hands, get stunned, etc. for the
* given `delay`. Returns `TRUE` on success or `FALSE` on failure.
diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm
index 6f4ec205448c..d78667dbfb4b 100644
--- a/code/__HELPERS/names.dm
+++ b/code/__HELPERS/names.dm
@@ -229,61 +229,3 @@ GLOBAL_DATUM(syndicate_code_response_regex, /regex)
. += "."
else
. += ", "
-
-#define FACTION_SYNDICATE "Syndicate"
- #define FACTION_NGR "New Gorlex Republic"
- #define FACTION_CYBERSUN "CyberSun"
- #define FACTION_SUNS "Student-Union of Naturalistic Sciences"
-#define FACTION_SOLGOV "SolGov"
-#define FACTION_SRM "Saint-Roumain Militia"
-#define FACTION_INTEQ "Inteq Risk Management Group"
-#define FACTION_CLIP "CLIP Minutemen"
-#define FACTION_NT "Nanotrasen"
- #define FACTION_NS_LOGI "N+S Logistics"
- #define FACTION_VIGILITAS "Vigilitas Interstellar"
-#define FACTION_FRONTIER "Frontiersmen Fleet"
-#define FACTION_PGF "Pan-Gezenan Federation"
-#define FACTION_INDEPENDENT "Independent"
-
-#define PREFIX_SYNDICATE list("SEV", "SSV")
- #define PREFIX_NGR list("NGRV")
- #define PREFIX_CYBERSUN list("CSSV")
- #define PREFIX_SUNS list("SUNS")
-#define PREFIX_SOLGOV list("SCSV")
-#define PREFIX_SRM list("SRSV")
-#define PREFIX_INTEQ list("IRMV")
-#define PREFIX_CLIP list("CMSV", "CMGSV")
-#define PREFIX_NT list("NTSV")
- #define PREFIX_NS_LOGI list("NSSV")
- #define PREFIX_VIGILITAS list("VISV")
-#define PREFIX_FRONTIER list("FFV")
-#define PREFIX_PGF list("PGF", "PGFMC", "PGFN")
-#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV")
-
-/// List of all ship factions to their prefixes.
-GLOBAL_LIST_INIT(ship_faction_to_prefixes, list(
- FACTION_SYNDICATE = PREFIX_SYNDICATE,
- FACTION_NGR = PREFIX_NGR,
- FACTION_CYBERSUN = PREFIX_CYBERSUN,
- FACTION_SUNS = PREFIX_SUNS,
- FACTION_SOLGOV = PREFIX_SOLGOV,
- FACTION_SRM = PREFIX_SRM,
- FACTION_INTEQ = PREFIX_INTEQ,
- FACTION_CLIP = PREFIX_CLIP,
- FACTION_NT = PREFIX_NT,
- FACTION_NS_LOGI = PREFIX_NS_LOGI,
- FACTION_VIGILITAS = PREFIX_VIGILITAS,
- FACTION_FRONTIER = PREFIX_FRONTIER,
- FACTION_PGF = PREFIX_PGF,
- FACTION_INDEPENDENT = PREFIX_INDEPENDENT
-))
-
-/proc/ship_prefix_to_faction(prefix)
- for(var/faction in GLOB.ship_faction_to_prefixes)
- if(prefix in GLOB.ship_faction_to_prefixes[faction])
- return faction
- var/static/list/screamed = list()
- if(!(prefix in screamed))
- screamed += prefix
- stack_trace("attempted to get faction for unknown prefix [prefix]")
- return "?!ERR!?"
diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm
index 65ea832c0e0b..fb02a93e144d 100644
--- a/code/__HELPERS/priority_announce.dm
+++ b/code/__HELPERS/priority_announce.dm
@@ -1,4 +1,4 @@
-/proc/priority_announce(text, title = "", sound = 'sound/ai/attention.ogg', type, sender_override, auth_id, zlevel) //WS Edit - Make cap's announcement use logged-in name
+/proc/priority_announce(text, title = "", sound = 'sound/ai/attention.ogg', type, sender_override, auth_id, zlevel)
if(!text)
return
@@ -73,3 +73,9 @@
to_chat(M, "[title]
[message]
[from ? "-[from.name] ([from.job])" : null]")
if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS)
SEND_SOUND(M, S)
+
+/proc/create_distress_beacon(datum/overmap/ship/ship)
+ if(!ship)
+ return
+ var/text = "A distress beacon has been launched by [ship.name], at local sector co-ordinates [ship.x || ship.docked_to.x]/[ship.y || ship.docked_to.y]. No further information available."
+ priority_announce(text, null, 'sound/effects/alert.ogg', sender_override = "Outpost Distress Beacon System", zlevel = 0)
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index 5301f0ec9d3e..01fd964120ea 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -77,10 +77,6 @@
var/pos = length(file_data["[escape_status]"]) + 1
file_data["[escape_status]"]["[pos]"] = mob_data
- var/datum/station_state/end_state = new /datum/station_state()
- end_state.count()
- var/station_integrity = min(PERCENT(GLOB.start_state.score(end_state)), 100)
- file_data["additional data"]["station integrity"] = station_integrity
WRITE_FILE(json_file, json_encode(file_data))
SSblackbox.record_feedback("nested tally", "round_end_stats", num_survivors, list("survivors", "total"))
@@ -88,7 +84,6 @@
SSblackbox.record_feedback("nested tally", "round_end_stats", GLOB.joined_player_list.len - num_survivors, list("players", "dead"))
. = list()
.[POPCOUNT_SURVIVORS] = num_survivors
- .["station_integrity"] = station_integrity
/datum/controller/subsystem/ticker/proc/gather_antag_data()
var/team_gid = 1
@@ -121,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 d6b048de4289..7bd6f72771cc 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -294,70 +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, only_realname = FALSE)
- 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 = ""
- if(only_realname)
- name = avoid_assoc_duplicate_keys(M.real_name, namecounts)
- else
- 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
@@ -389,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
@@ -744,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
)))
@@ -1425,10 +1361,15 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
REMOVE_TRAIT(the_atom2,trait,source)
/proc/get_random_food()
- var/list/blocked = list(/obj/item/reagent_containers/food/snacks/store/bread,
- /obj/item/reagent_containers/food/snacks/breadslice,
- /obj/item/reagent_containers/food/snacks/store/cake,
- /obj/item/reagent_containers/food/snacks/cakeslice,
+ var/static/list/allowed_food = list()
+
+ if(!LAZYLEN(allowed_food)) //it's static so we only ever do this once
+ var/list/blocked = list(
+ /obj/item/food/spaghetti,
+ /obj/item/food/bread,
+ /obj/item/food/breadslice,
+ /obj/item/food/cake,
+ /obj/item/food/cakeslice,
/obj/item/reagent_containers/food/snacks/store,
/obj/item/reagent_containers/food/snacks/pie,
/obj/item/reagent_containers/food/snacks/kebab,
@@ -1440,15 +1381,21 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
/obj/item/reagent_containers/food/snacks/soup,
/obj/item/reagent_containers/food/snacks/grown,
/obj/item/reagent_containers/food/snacks/grown/mushroom,
- /obj/item/reagent_containers/food/snacks/deepfryholder,
+ /obj/item/food/deepfryholder,
/obj/item/reagent_containers/food/snacks/clothing,
/obj/item/reagent_containers/food/snacks/grown/shell, //base types
- /obj/item/reagent_containers/food/snacks/store/bread,
+ /obj/item/food/bread,
/obj/item/reagent_containers/food/snacks/grown/nettle
)
- blocked |= typesof(/obj/item/reagent_containers/food/snacks/customizable)
+ blocked |= typesof(/obj/item/reagent_containers/food/snacks/customizable)
+
+ var/list/unfiltered_allowed_food = subtypesof(/obj/item/food) - blocked
+ for(var/obj/item/food/food as anything in unfiltered_allowed_food)
+ if(!initial(food.icon_state)) //food with no icon_state should probably not be spawned
+ continue
+ allowed_food.Add(food)
- return pick(subtypesof(/obj/item/reagent_containers/food/snacks) - blocked)
+ return pick(allowed_food)
/proc/get_random_drink()
var/list/blocked = list(/obj/item/reagent_containers/food/drinks/soda_cans,
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index bbfb0d3a74c5..d9957c7db0f1 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -50,7 +50,6 @@ DEFINE_BITFIELD(appearance_flags, list(
DEFINE_BITFIELD(area_flags, list(
"VALID_TERRITORY" = VALID_TERRITORY,
- "BLOBS_ALLOWED" = BLOBS_ALLOWED,
"CAVES_ALLOWED" = CAVES_ALLOWED,
"FLORA_ALLOWED" = FLORA_ALLOWED,
"MOB_SPAWN_ALLOWED" = MOB_SPAWN_ALLOWED,
@@ -213,7 +212,6 @@ DEFINE_BITFIELD(obj_flags, list(
DEFINE_BITFIELD(pass_flags, list(
"LETPASSTHROW" = LETPASSTHROW,
- "PASSBLOB" = PASSBLOB,
"PASSCLOSEDTURF" = PASSCLOSEDTURF,
"PASSGLASS" = PASSGLASS,
"PASSGRILLE" = PASSGRILLE,
diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm
index 56037ab30389..a30e316f5326 100644
--- a/code/_globalvars/game_modes.dm
+++ b/code/_globalvars/game_modes.dm
@@ -5,10 +5,6 @@ GLOBAL_VAR(survivor_report) //Contains shared survivor report for roundend repor
GLOBAL_VAR_INIT(wavesecret, 0) // meteor mode, delays wave progression, terrible name
-GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report
-
-//TODO clear this one up too
-GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult)
GLOBAL_DATUM(sac_mind, /datum/mind) // So Cryo can modify sac stuff
GLOBAL_VAR_INIT(sac_image, null)
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index 532ed3f888d7..15fbf39c6e24 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -164,7 +164,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/roller = 1,
/obj/item/restraints/legcuffs/bola = 1,
/obj/item/restraints/handcuffs/cable = 1,
- /obj/item/spear = 1,
+ /obj/item/melee/spear = 1,
/obj/item/shield/riot/buckler = 1,
/obj/item/grenade/iedcasing/spawned = 1,
/obj/item/melee/baton/cattleprod = 1,
@@ -243,7 +243,6 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
))
GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items
- /obj/effect/rune/teleport = 1,
/obj/item/clothing/gloves/color/yellow = 1,
/obj/item/clothing/head/helmet/abductor = 1,
/obj/item/clothing/head/helmet/justice =1,
@@ -253,7 +252,7 @@ GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items
/obj/item/clothing/shoes/jackboots/fast = 1,
/obj/item/clothing/suit/armor/reactive/table = 1,
/obj/item/storage/box/donkpockets/donkpocketgondola = 1,
- /obj/item/melee/greykingsword = 1 //WS - Meth Sword
+ /obj/item/melee/sword/greyking = 1 //WS - Meth Sword
))
//Maintenance loot spawner pools
diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm
index ff4237d1e892..332ac86582a0 100644
--- a/code/_globalvars/lists/mapping.dm
+++ b/code/_globalvars/lists/mapping.dm
@@ -30,7 +30,6 @@ GLOBAL_LIST_EMPTY(tdome2)
GLOBAL_LIST_EMPTY(tdomeobserve)
GLOBAL_LIST_EMPTY(tdomeadmin)
GLOBAL_LIST_EMPTY(prisonwarped) //list of players already warped
-GLOBAL_LIST_EMPTY(blobstart) //blobs, santa, respawning devils
GLOBAL_LIST_EMPTY(secequipment) //sec equipment lockers that scale with the number of sec players
GLOBAL_LIST_EMPTY(deathsquadspawn)
GLOBAL_LIST_EMPTY(emergencyresponseteamspawn)
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/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm
index e25b0b6e9a87..7fbc92bb8af5 100644
--- a/code/_globalvars/lists/poll_ignore.dm
+++ b/code/_globalvars/lists/poll_ignore.dm
@@ -11,7 +11,6 @@
#define POLL_IGNORE_CONSTRUCT "construct"
#define POLL_IGNORE_SPIDER "spider"
#define POLL_IGNORE_ASHWALKER "ashwalker"
-#define POLL_IGNORE_SWARMER "swarmer"
#define POLL_IGNORE_DRONE "drone"
#define POLL_IGNORE_FUGITIVE "fugitive"
#define POLL_IGNORE_DEFECTIVECLONE "defective_clone" //WS Edit - Cloning
@@ -35,7 +34,6 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list(
POLL_IGNORE_CONSTRUCT = "Construct",
POLL_IGNORE_SPIDER = "Spiders",
POLL_IGNORE_ASHWALKER = "Ashwalker eggs",
- POLL_IGNORE_SWARMER = "Swarmer shells",
POLL_IGNORE_DRONE = "Drone shells",
POLL_IGNORE_FUGITIVE = "Fugitive Hunter",
POLL_IGNORE_DEFECTIVECLONE = "Defective clone", //WS Edit - Cloning
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
index 5f5c26731d15..d87596cf828c 100644
--- a/code/_globalvars/traits.dm
+++ b/code/_globalvars/traits.dm
@@ -44,6 +44,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD,
"TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE,
"TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE,
+ "TRAIT_METALLIC" = TRAIT_METALLIC,
"TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE,
"TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE,
"TRAIT_GENELESS" = TRAIT_GENELESS,
@@ -147,8 +148,8 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_HOLDABLE" = TRAIT_HOLDABLE,
"TRAIT_SCOOPABLE" = TRAIT_SCOOPABLE,
"TRAIT_ANXIOUS" = TRAIT_ANXIOUS,
- "TRAIT_KISS_OF_DEATH" = TRAIT_KISS_OF_DEATH
-
+ "TRAIT_KISS_OF_DEATH" = TRAIT_KISS_OF_DEATH,
+ "TRAIT_PLANT_SAFE" = TRAIT_PLANT_SAFE
),
/obj/item/bodypart = list(
"TRAIT_PARALYSIS" = TRAIT_PARALYSIS
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index 8e9fde4d1859..dc6dfd37cea7 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -37,7 +37,6 @@
//Middle left indicators
#define ui_lingchemdisplay "WEST,CENTER-1:15"
#define ui_lingstingdisplay "WEST:6,CENTER-3:11"
-#define ui_devilsouldisplay "WEST:6,CENTER-1:15"
//Lower center, persistent menu
#define ui_sstore1 "CENTER-5:10,SOUTH:5"
diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm
index fb2bac175034..6cd9aa8a0849 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -56,10 +56,16 @@
if(id && usr.client) //try to (un)remember position
usr.client.prefs.action_buttons_screen_locs["[name]_[id]"] = locked ? moved : null
return TRUE
+ var/trigger_flags
+ if(LAZYACCESS(modifiers, ALT_CLICK))
+ if(locked)
+ to_chat(usr, "Action button \"[name]\" is locked, unlock it first.")
+ return TRUE
+ trigger_flags |= TRIGGER_SECONDARY_ACTION
if(usr.next_click > world.time)
return
usr.next_click = world.time + 1
- linked_action.Trigger()
+ linked_action.Trigger(trigger_flags)
return TRUE
//Hide/Show Action Buttons ... Button
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 43ae8ffbe246..3eefdb7c2f02 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -190,15 +190,40 @@ Override makes it so the alert is not replaced until cleared by a clear_alert wi
icon_state = "gross3"
/atom/movable/screen/alert/hot
- name = "Too Hot"
- desc = "You're flaming hot! Get somewhere cooler and take off any insulating clothing like a fire suit."
+ name = "Hot"
+ desc = "It's quite warm. Get somewhere cooler and take off any insulating clothing like a fire suit."
+ icon_state = "hot"
+
+/atom/movable/screen/alert/warm
+ name = "Warm"
+ desc = "It's a bit warm, but not unbearably so."
icon_state = "hot"
/atom/movable/screen/alert/cold
- name = "Too Cold"
- desc = "You're freezing cold! Get somewhere warmer and take off any insulating clothing like a space suit."
+ name = "Cold"
+ desc = "It's quite cold. Get somewhere warmer and take off any insulating clothing like a space suit."
+ icon_state = "cold"
+
+/atom/movable/screen/alert/chilly
+ name = "Chilly"
+ desc = "It's a bit chilly, but not unbearably so."
icon_state = "cold"
+/atom/movable/screen/alert/sweat
+ name = "Sweating"
+ desc = "You're sweating and the heat is starting to hurt. Get somewhere cooler and take off any insulating clothing like a fire suit."
+ icon_state = "sweat"
+
+/atom/movable/screen/alert/shiver
+ name = "Shivering"
+ desc = "You're shivering and the cold is starting to hurt. Get somewhere warmer and take off any insulating clothing like a space suit."
+ icon_state = "shiver"
+
+/atom/movable/screen/alert/fans
+ name = "High Fan Speed"
+ desc = "Your fans are spinning quite fast, and your components are reaching a dangerous temperature! Get somewhere cooler and take off any insulating clothing like a fire suit."
+ icon_state = "fans"
+
/atom/movable/screen/alert/lowpressure
name = "Low Pressure"
desc = "The air around you is hazardously thin. A space suit would protect you."
@@ -420,123 +445,6 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
icon_state = "alien_noqueen"
alerttooltipstyle = "alien"
-//BLOBS
-
-/atom/movable/screen/alert/nofactory
- name = "No Factory"
- desc = "You have no factory, and are slowly dying!"
- icon_state = "blobbernaut_nofactory"
- alerttooltipstyle = "blob"
-
-// BLOODCULT
-
-/atom/movable/screen/alert/bloodsense
- name = "Blood Sense"
- desc = "Allows you to sense blood that is manipulated by dark magicks."
- icon_state = "cult_sense"
- alerttooltipstyle = "cult"
- var/static/image/narnar
- var/angle = 0
- var/mob/living/simple_animal/hostile/construct/Cviewer = null
-
-/atom/movable/screen/alert/bloodsense/Initialize()
- . = ..()
- narnar = new('icons/hud/screen_alert.dmi', "mini_nar")
- START_PROCESSING(SSprocessing, src)
-
-/atom/movable/screen/alert/bloodsense/Destroy()
- Cviewer = null
- STOP_PROCESSING(SSprocessing, src)
- return ..()
-
-/atom/movable/screen/alert/bloodsense/process()
- var/atom/blood_target
-
- if(!owner.mind)
- return
-
- var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- if(!antag)
- return
- var/datum/objective/sacrifice/sac_objective = locate() in antag.cult_team.objectives
-
- if(antag.cult_team.blood_target)
- if(!get_turf(antag.cult_team.blood_target))
- antag.cult_team.blood_target = null
- else
- blood_target = antag.cult_team.blood_target
- if(Cviewer && Cviewer.seeking && Cviewer.master)
- blood_target = Cviewer.master
- desc = "Your blood sense is leading you to [Cviewer.master]"
- if(!blood_target)
- if(sac_objective && !sac_objective.check_completion())
- if(icon_state == "runed_sense0")
- return
- animate(src, transform = null, time = 1, loop = 0)
- angle = 0
- cut_overlays()
- icon_state = "runed_sense0"
- desc = "Nar'Sie demands that [sac_objective.target] be sacrificed before the summoning ritual can begin."
- add_overlay(sac_objective.sac_image)
- else
- var/datum/objective/eldergod/summon_objective = locate() in antag.cult_team.objectives
- if(!summon_objective)
- return
- desc = "The sacrifice is complete, summon Nar'Sie! The summoning can only take place in [english_list(summon_objective.summon_spots)]!"
- if(icon_state == "runed_sense1")
- return
- animate(src, transform = null, time = 1, loop = 0)
- angle = 0
- cut_overlays()
- icon_state = "runed_sense1"
- add_overlay(narnar)
- return
- var/turf/P = get_turf(blood_target)
- var/turf/Q = get_turf(owner)
- if(!P || !Q || (P.virtual_z()!= Q.virtual_z())) //The target is on a different Z level, we cannot sense that far.
- icon_state = "runed_sense2"
- desc = "You can no longer sense your target's presence."
- return
- if(isliving(blood_target))
- var/mob/living/real_target = blood_target
- desc = "You are currently tracking [real_target.real_name] in [get_area_name(blood_target)]."
- else
- desc = "You are currently tracking [blood_target] in [get_area_name(blood_target)]."
- var/target_angle = Get_Angle(Q, P)
- var/target_dist = get_dist(P, Q)
- cut_overlays()
- switch(target_dist)
- if(0 to 1)
- icon_state = "runed_sense2"
- if(2 to 8)
- icon_state = "arrow8"
- if(9 to 15)
- icon_state = "arrow7"
- if(16 to 22)
- icon_state = "arrow6"
- if(23 to 29)
- icon_state = "arrow5"
- if(30 to 36)
- icon_state = "arrow4"
- if(37 to 43)
- icon_state = "arrow3"
- if(44 to 50)
- icon_state = "arrow2"
- if(51 to 57)
- icon_state = "arrow1"
- if(58 to 64)
- icon_state = "arrow0"
- if(65 to 400)
- icon_state = "arrow"
- var/difference = target_angle - angle
- angle = target_angle
- if(!difference)
- return
- var/matrix/final = matrix(transform)
- final.Turn(difference)
- animate(src, transform = final, time = 5, loop = 0)
-
-
//GUARDIANS
/atom/movable/screen/alert/cancharge
@@ -587,6 +495,29 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
desc = "Your blood's electric charge is becoming dangerously high, find an outlet for your energy. Use Grab Intent on an APC to channel your energy into it."
icon_state = "ethereal_overcharge"
+//MODsuit unique
+/atom/movable/screen/alert/nocore
+ name = "Missing Core"
+ desc = "Unit has no core. No modules available until a core is reinstalled. Robotics may provide assistance."
+ icon_state = "no_cell"
+
+/atom/movable/screen/alert/emptycell/plasma
+ name = "Out of Power"
+ desc = "Unit's plasma core has no charge remaining. No modules available until plasma core is recharged. \
+ Unit can be refilled through plasma fuel."
+
+/atom/movable/screen/alert/emptycell/plasma/update_desc()
+ . = ..()
+ desc = initial(desc)
+
+/atom/movable/screen/alert/lowcell/plasma
+ name = "Low Charge"
+ desc = "Unit's plasma core is running low. Unit can be refilled through plasma fuel."
+
+/atom/movable/screen/alert/lowcell/plasma/update_desc()
+ . = ..()
+ desc = initial(desc)
+
//Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg
/atom/movable/screen/alert/hacked
name = "Hacked"
@@ -625,11 +556,11 @@ so as to remain in compliance with the most up-to-date laws."
if(T)
AI.eyeobj.setLoc(T)
-//MECHS
+//EXOSUITS
/atom/movable/screen/alert/low_mech_integrity
- name = "Mech Damaged"
- desc = "Mech integrity is low."
+ name = "Exosuit Damaged"
+ desc = "Exosuit integrity is low."
icon_state = "low_mech_integrity"
diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm
deleted file mode 100644
index cd7597e33f0d..000000000000
--- a/code/_onclick/hud/blob_overmind.dm
+++ /dev/null
@@ -1,187 +0,0 @@
-
-/atom/movable/screen/blob
- icon = 'icons/mob/blob.dmi'
-
-/atom/movable/screen/blob/MouseEntered(location,control,params)
- . = ..()
- openToolTip(usr,src,params,title = name,content = desc, theme = "blob")
-
-/atom/movable/screen/blob/MouseExited()
- closeToolTip(usr)
-
-/atom/movable/screen/blob/BlobHelp
- icon_state = "ui_help"
- name = "Blob Help"
- desc = "Help on playing blob!"
-
-/atom/movable/screen/blob/BlobHelp/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- B.blob_help()
-
-/atom/movable/screen/blob/JumpToNode
- icon_state = "ui_tonode"
- name = "Jump to Node"
- desc = "Moves your camera to a selected blob node."
-
-/atom/movable/screen/blob/JumpToNode/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- B.jump_to_node()
-
-/atom/movable/screen/blob/JumpToCore
- icon_state = "ui_tocore"
- name = "Jump to Core"
- desc = "Moves your camera to your blob core."
-
-/atom/movable/screen/blob/JumpToCore/MouseEntered(location,control,params)
- if(hud && hud.mymob && isovermind(hud.mymob))
- var/mob/camera/blob/B = hud.mymob
- if(!B.placed)
- name = "Place Blob Core"
- desc = "Attempt to place your blob core at this location."
- else
- name = initial(name)
- desc = initial(desc)
- return ..()
-
-/atom/movable/screen/blob/JumpToCore/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- if(!B.placed)
- B.place_blob_core(0)
- B.transport_core()
-
-/atom/movable/screen/blob/Blobbernaut
- icon_state = "ui_blobbernaut"
- name = "Produce Blobbernaut (40)"
- desc = "Produces a strong, smart blobbernaut from a factory blob for 40 resources.
The factory blob used will become fragile and unable to produce spores."
-
-/atom/movable/screen/blob/Blobbernaut/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- B.create_blobbernaut()
-
-/atom/movable/screen/blob/ResourceBlob
- icon_state = "ui_resource"
- name = "Produce Resource Blob (40)"
- desc = "Produces a resource blob for 40 resources.
Resource blobs will give you resources every few seconds."
-
-/atom/movable/screen/blob/ResourceBlob/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- B.create_resource()
-
-/atom/movable/screen/blob/NodeBlob
- icon_state = "ui_node"
- name = "Produce Node Blob (50)"
- desc = "Produces a node blob for 50 resources.
Node blobs will expand and activate nearby resource and factory blobs."
-
-/atom/movable/screen/blob/NodeBlob/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- B.create_node()
-
-/atom/movable/screen/blob/FactoryBlob
- icon_state = "ui_factory"
- name = "Produce Factory Blob (60)"
- desc = "Produces a factory blob for 60 resources.
Factory blobs will produce spores every few seconds."
-
-/atom/movable/screen/blob/FactoryBlob/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- B.create_factory()
-
-/atom/movable/screen/blob/ReadaptStrain
- icon_state = "ui_chemswap"
- name = "Readapt Strain (40)"
- desc = "Allows you to choose a new strain from 4 random choices for 40 resources."
-
-/atom/movable/screen/blob/ReadaptStrain/MouseEntered(location,control,params)
- if(hud && hud.mymob && isovermind(hud.mymob))
- var/mob/camera/blob/B = hud.mymob
- if(B.free_strain_rerolls)
- name = "Readapt Strain (FREE)"
- desc = "Randomly rerolls your strain for free."
- else
- name = initial(name)
- desc = initial(desc)
- ..()
-
-/atom/movable/screen/blob/ReadaptStrain/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- B.strain_reroll()
-
-/atom/movable/screen/blob/RelocateCore
- icon_state = "ui_swap"
- name = "Relocate Core (80)"
- desc = "Swaps a node and your core for 80 resources."
-
-/atom/movable/screen/blob/RelocateCore/Click()
- if(isovermind(usr))
- var/mob/camera/blob/B = usr
- B.relocate_core()
-
-/datum/hud/blob_overmind/New(mob/owner)
- ..()
- var/atom/movable/screen/using
-
- blobpwrdisplay = new /atom/movable/screen()
- blobpwrdisplay.name = "blob power"
- blobpwrdisplay.icon_state = "block"
- blobpwrdisplay.screen_loc = ui_health
- blobpwrdisplay.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
- blobpwrdisplay.layer = ABOVE_HUD_LAYER
- blobpwrdisplay.plane = ABOVE_HUD_PLANE
- blobpwrdisplay.hud = src
- infodisplay += blobpwrdisplay
-
- healths = new /atom/movable/screen/healths/blob()
- healths.hud = src
- infodisplay += healths
-
- using = new /atom/movable/screen/blob/BlobHelp()
- using.screen_loc = "WEST:6,NORTH:-3"
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/blob/JumpToNode()
- using.screen_loc = ui_inventory
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/blob/JumpToCore()
- using.screen_loc = ui_zonesel
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/blob/Blobbernaut()
- using.screen_loc = ui_belt
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/blob/ResourceBlob()
- using.screen_loc = ui_back
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/blob/NodeBlob()
- using.screen_loc = ui_hand_position(2)
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/blob/FactoryBlob()
- using.screen_loc = ui_hand_position(1)
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/blob/ReadaptStrain()
- using.screen_loc = ui_storage1
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/blob/RelocateCore()
- using.screen_loc = ui_storage2
- using.hud = src
- static_inventory += using
diff --git a/code/_onclick/hud/blobbernauthud.dm b/code/_onclick/hud/blobbernauthud.dm
deleted file mode 100644
index 430e8e81e7f8..000000000000
--- a/code/_onclick/hud/blobbernauthud.dm
+++ /dev/null
@@ -1,11 +0,0 @@
-
-/datum/hud/blobbernaut/New(mob/owner)
- ..()
-
- blobpwrdisplay = new /atom/movable/screen/healths/blob/naut/core()
- blobpwrdisplay.hud = src
- infodisplay += blobpwrdisplay
-
- healths = new /atom/movable/screen/healths/blob/naut()
- healths.hud = src
- infodisplay += healths
diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm
deleted file mode 100644
index 55fbeb26a7c9..000000000000
--- a/code/_onclick/hud/devil.dm
+++ /dev/null
@@ -1,69 +0,0 @@
-
-//Soul counter is stored with the humans, it does weird when you place it here apparently...
-
-
-/datum/hud/devil/New(mob/owner)
- ..()
- var/atom/movable/screen/using
-
- using = new /atom/movable/screen/drop()
- using.icon = ui_style
- using.screen_loc = ui_drone_drop
- using.hud = src
- static_inventory += using
-
- pull_icon = new /atom/movable/screen/pull()
- pull_icon.icon = ui_style
- pull_icon.update_appearance()
- pull_icon.screen_loc = ui_drone_pull
- pull_icon.hud = src
- static_inventory += pull_icon
-
- build_hand_slots()
-
- using = new /atom/movable/screen/inventory()
- using.name = "hand"
- using.icon = ui_style
- using.icon_state = "swap_1_m"
- using.screen_loc = ui_swaphand_position(owner,1)
- using.layer = HUD_LAYER
- using.plane = HUD_PLANE
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/inventory()
- using.name = "hand"
- using.icon = ui_style
- using.icon_state = "swap_2"
- using.screen_loc = ui_swaphand_position(owner,2)
- using.layer = HUD_LAYER
- using.plane = HUD_PLANE
- using.hud = src
- static_inventory += using
-
- zone_select = new /atom/movable/screen/zone_sel()
- zone_select.icon = ui_style
- zone_select.hud = src
- zone_select.update_appearance()
-
- lingchemdisplay = new /atom/movable/screen/ling/chems()
- lingchemdisplay.hud = src
-
- devilsouldisplay = new /atom/movable/screen/devil/soul_counter
- devilsouldisplay.hud = src
- infodisplay += devilsouldisplay
-
-
-/datum/hud/devil/persistent_inventory_update()
- if(!mymob)
- return
- var/mob/living/carbon/true_devil/D = mymob
-
- if(hud_version != HUD_STYLE_NOHUD)
- for(var/obj/item/I in D.held_items)
- I.screen_loc = ui_hand_position(D.get_held_index_of_item(I))
- D.client.screen += I
- else
- for(var/obj/item/I in D.held_items)
- I.screen_loc = null
- D.client.screen -= I
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 27b220d7fdb7..c8e99a395bfa 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -29,12 +29,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
var/atom/movable/screen/ling/chems/lingchemdisplay
var/atom/movable/screen/ling/sting/lingstingdisplay
- var/atom/movable/screen/blobpwrdisplay
-
var/atom/movable/screen/alien_plasma_display
var/atom/movable/screen/alien_queen_finder
- var/atom/movable/screen/devil/soul_counter/devilsouldisplay
var/atom/movable/screen/combo/combo_display
var/atom/movable/screen/action_intent
@@ -111,9 +108,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
healthdoll = null
internals = null
lingchemdisplay = null
- devilsouldisplay = null
lingstingdisplay = null
- blobpwrdisplay = null
alien_plasma_display = null
alien_queen_finder = null
combo_display = null
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 0833d606927f..848702876f42 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -33,35 +33,6 @@
var/mob/living/carbon/human/H = usr
H.quick_equip()
-/atom/movable/screen/devil
- icon = 'icons/hud/screen_devil.dmi'
- invisibility = INVISIBILITY_ABSTRACT
-
-/atom/movable/screen/devil/soul_counter
- name = "souls owned"
- icon_state = "Devil-6"
- screen_loc = ui_devilsouldisplay
-
-/atom/movable/screen/devil/soul_counter/proc/update_counter(souls = 0)
- invisibility = 0
- maptext = "
[emoji] | [tag] |
Damage: | \ +Damage: | \Brute | \Burn | \Toxin | \Suffocation |
Overall: | \ +|||||
Overall: | \[CEILING(brute_loss,1)] | \[CEILING(fire_loss,1)] | \[CEILING(tox_loss,1)] | \ @@ -239,7 +239,7 @@ GENE SCANNER for(var/o in damaged) var/obj/item/bodypart/org = o //head, left arm, right arm, etc. - dmgreport += "||
[capitalize(parse_zone(org.body_zone))]: | \ + dmgreport += "|||||
[capitalize(parse_zone(org.body_zone))]: | \[(org.brute_dam > 0) ? "[CEILING(org.brute_dam,1)]" : "0"] | \[(org.burn_dam > 0) ? "[CEILING(org.burn_dam,1)]" : "0"] |
[N.name], "
var/atom/disk_loc = N.loc
while(!isturf(disk_loc))
diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm
index 084176f4b8c4..81f8facd465a 100644
--- a/code/modules/antagonists/revenant/revenant.dm
+++ b/code/modules/antagonists/revenant/revenant.dm
@@ -176,9 +176,6 @@
/mob/living/simple_animal/revenant/ex_act(severity, target)
return 1 //Immune to the effects of explosions.
-/mob/living/simple_animal/revenant/blob_act(obj/structure/blob/B)
- return //blah blah blobs aren't in tune with the spirit world, or something.
-
/mob/living/simple_animal/revenant/singularity_act()
return //don't walk into the singularity expecting to find corpses, okay?
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/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/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/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index a20b905b590d..b50c6dc1ea8b 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -257,10 +257,9 @@ 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/claymore(H), TRUE) - H.equip_to_slot_or_del(new /obj/item/spear(H), ITEM_SLOT_BACK) + 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) /obj/item/voodoo 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 69ff4bcfc2f5..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." @@ -351,16 +339,6 @@ limit = 3 category = "Assistance" -/datum/spellbook_entry/item/mjolnir - name = "Mjolnir" - desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power." - item_path = /obj/item/mjollnir - -/datum/spellbook_entry/item/singularity_hammer - name = "Singularity Hammer" - desc = "A hammer that creates an intensely powerful field of gravity where it strikes, pulling everything nearby to the point of impact." - item_path = /obj/item/singularityhammer - /datum/spellbook_entry/item/battlemage name = "Battlemage Armour" desc = "An ensorceled suit of armour, protected by a powerful shield. The shield can completely negate sixteen attacks before being permanently depleted." 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/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 83abc98ed990..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' ) @@ -147,16 +148,23 @@ ) /datum/asset/simple/namespaced/fontawesome - legacy = TRUE assets = list( - "fa-regular-400.eot" = 'html/font-awesome/webfonts/fa-regular-400.eot', - "fa-regular-400.woff" = 'html/font-awesome/webfonts/fa-regular-400.woff', - "fa-solid-900.eot" = 'html/font-awesome/webfonts/fa-solid-900.eot', - "fa-solid-900.woff" = 'html/font-awesome/webfonts/fa-solid-900.woff', - "v4shim.css" = 'html/font-awesome/css/v4-shims.min.css' + "fa-regular-400.ttf" = 'html/font-awesome/webfonts/fa-regular-400.ttf', + "fa-solid-900.ttf" = 'html/font-awesome/webfonts/fa-solid-900.ttf', + "fa-v4compatibility.ttf" = 'html/font-awesome/webfonts/fa-v4compatibility.ttf', + "v4shim.css" = 'html/font-awesome/css/v4-shims.min.css', ) parents = list("font-awesome.css" = 'html/font-awesome/css/all.min.css') +/datum/asset/simple/namespaced/tgfont + assets = list( + "tgfont.eot" = file("tgui/packages/tgfont/static/tgfont.eot"), + "tgfont.woff2" = file("tgui/packages/tgfont/static/tgfont.woff2"), + ) + parents = list( + "tgfont.css" = file("tgui/packages/tgfont/static/tgfont.css"), + ) + /datum/asset/simple/fonts assets = list( "sga.ttf" = 'html/sga.ttf' @@ -171,8 +179,8 @@ /datum/asset/spritesheet/chat name = "chat" -/datum/asset/spritesheet/chat/register() - InsertAll("emoji", 'icons/emoji.dmi') +/datum/asset/spritesheet/chat/create_spritesheets() + InsertAll("emoji", EMOJI_SET) // pre-loading all lanugage icons also helps to avoid meta InsertAll("language", 'icons/misc/language.dmi') // catch languages which are pulling icons from another file @@ -182,7 +190,6 @@ if (icon != 'icons/misc/language.dmi') var/icon_state = initial(L.icon_state) Insert("language-[icon_state]", icon, icon_state=icon_state) - ..() /datum/asset/simple/lobby assets = list( @@ -235,7 +242,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/atmospherics/auxgm/gas_types.dm b/code/modules/atmospherics/auxgm/gas_types.dm index fb0d7026a6d1..662b88046956 100644 --- a/code/modules/atmospherics/auxgm/gas_types.dm +++ b/code/modules/atmospherics/auxgm/gas_types.dm @@ -165,5 +165,30 @@ color = "#ffe" fusion_power = 0 fire_products = list(GAS_H2O = 1) + enthalpy = FIRE_HYDROGEN_ENERGY_RELEASED fire_burn_rate = 2 fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - 50 + +/datum/gas/chlorine + id = GAS_CHLORINE + specific_heat = 20 + name = "Chlorine" + flags = GAS_FLAG_DANGEROUS + moles_visible = MOLES_GAS_VISIBLE * 5 + gas_overlay = "nitrous_oxide" + color = "#FFFB89" + fusion_power = 0 + +/datum/gas/hydrogen_chloride + id = GAS_HYDROGEN_CHLORIDE + specific_heat = 40 + name = "Hydrogen Chloride" + flags = GAS_FLAG_DANGEROUS + moles_visible = MOLES_GAS_VISIBLE * 2 + gas_overlay = "nitrous_oxide" + color = "#5bfd45" + fusion_power = 0 + fire_products = list(GAS_CHLORINE = 1, GAS_H2O = 0.5) + enthalpy = 63000 + fire_burn_rate = 1 + fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST diff --git a/code/modules/atmospherics/gasmixtures/auxgm.dm b/code/modules/atmospherics/gasmixtures/auxgm.dm index b3a81dbb0e9c..e774d1060ec3 100644 --- a/code/modules/atmospherics/gasmixtures/auxgm.dm +++ b/code/modules/atmospherics/gasmixtures/auxgm.dm @@ -1,5 +1,5 @@ GLOBAL_LIST_INIT(hardcoded_gases, list(GAS_O2, GAS_N2, GAS_CO2, GAS_PLASMA)) //the main four gases, which were at one time hardcoded -GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(GAS_O2, GAS_N2, GAS_CO2, GAS_PLUOXIUM, GAS_STIMULUM, GAS_NITRYL))) //unable to react amongst themselves +GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(GAS_O2, GAS_N2, GAS_CO2, GAS_PLUOXIUM, GAS_STIMULUM, GAS_NITRYL, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE))) //unable to react amongst themselves // Auxgm // It's a send-up of XGM, like what baystation got. diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index 00ca2d22f76c..b824c1d78d61 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -825,3 +825,32 @@ if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) air.set_temperature(clamp((air.return_temperature()*old_heat_capacity + energy_released)/new_heat_capacity,TCMB,INFINITY)) return REACTING + +/datum/gas_reaction/hydrogen_chloride_formation + priority = 11 + name = "Hydrogen Chloride formation" + id = "hydrogenchlorideformation" + +/datum/gas_reaction/hydrogen_chloride_formation/init_reqs() + min_requirements = list( + GAS_CHLORINE = 5, + GAS_HYDROGEN = 5, + "TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST + ) + +/datum/gas_reaction/hydrogen_chloride_formation/react(datum/gas_mixture/air) + var/temperature = air.return_temperature() + var/old_heat_capacity = air.heat_capacity() + var/reaction_efficency = min((temperature/(FIRE_MINIMUM_TEMPERATURE_TO_EXIST*10)),air.get_moles(GAS_CHLORINE),air.get_moles(GAS_HYDROGEN)) + var/energy_released = reaction_efficency*185000 + if ((air.get_moles(GAS_CHLORINE) - reaction_efficency < 0)|| (air.get_moles(GAS_HYDROGEN) - (reaction_efficency) < 0) || energy_released <= 0) //Shouldn't produce gas from nothing. + return NO_REACTION + air.adjust_moles(GAS_HYDROGEN_CHLORIDE, reaction_efficency) + air.adjust_moles(GAS_HYDROGEN, -reaction_efficency) + air.adjust_moles(GAS_CHLORINE, -reaction_efficency) + + if(energy_released > 0) + var/new_heat_capacity = air.heat_capacity() + if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) + air.set_temperature(max(((temperature*old_heat_capacity + energy_released)/new_heat_capacity),TCMB)) + return REACTING diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index e5a1be0294d6..236c7b040d99 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -106,6 +106,11 @@ var/alarm_frequency = FREQ_ATMOS_ALARMS var/datum/radio_frequency/radio_connection + //anything outright hazardous (flammable, toxic, generally Weird) + var/list/filter_basic = list(GAS_CO2, GAS_PLASMA, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_NITRYL, GAS_FREON, GAS_HYDROGEN, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE) + //anything that isn't o2 or n2. + var/list/filter_extra = list(GAS_CO2, GAS_PLASMA, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_NITRYL, GAS_FREON, GAS_HYDROGEN, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE, GAS_H2O, GAS_HYPERNOB, GAS_STIMULUM, GAS_PLUOXIUM) + var/list/TLV = list( // Breathable air. "pressure" = new/datum/tlv(HAZARD_LOW_PRESSURE, WARNING_LOW_PRESSURE, WARNING_HIGH_PRESSURE, HAZARD_HIGH_PRESSURE), // kPa. Values are min2, min1, max1, max2 "temperature" = new/datum/tlv(T0C, T0C+10, T0C+40, T0C+66), @@ -122,7 +127,9 @@ GAS_NITRYL = new/datum/tlv/dangerous, GAS_PLUOXIUM = new/datum/tlv(-1, -1, 5, 6), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires GAS_FREON = new/datum/tlv/dangerous, - GAS_HYDROGEN = new/datum/tlv/dangerous + GAS_HYDROGEN = new/datum/tlv/dangerous, + GAS_CHLORINE = new/datum/tlv/dangerous, + GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous ) /obj/machinery/airalarm/server // No checks here. @@ -142,7 +149,9 @@ GAS_NITRYL = new/datum/tlv/no_checks, GAS_PLUOXIUM = new/datum/tlv/no_checks, GAS_FREON = new/datum/tlv/no_checks, - GAS_HYDROGEN = new/datum/tlv/no_checks + GAS_HYDROGEN = new/datum/tlv/no_checks, + GAS_CHLORINE = new/datum/tlv/dangerous, + GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous ) heating_manage = FALSE @@ -163,7 +172,9 @@ GAS_NITRYL = new/datum/tlv/dangerous, GAS_PLUOXIUM = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires GAS_FREON = new/datum/tlv/dangerous, - GAS_HYDROGEN = new/datum/tlv/dangerous + GAS_HYDROGEN = new/datum/tlv/dangerous, + GAS_CHLORINE = new/datum/tlv/dangerous, + GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous ) heating_manage = FALSE @@ -542,7 +553,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27) for(var/device_id in A.air_scrub_names) send_signal(device_id, list( "power" = 1, - "set_filters" = list(GAS_CO2, GAS_BZ), + "set_filters" = filter_basic, "scrubbing" = 1, "widenet" = 0 ), signal_source) @@ -556,20 +567,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27) for(var/device_id in A.air_scrub_names) send_signal(device_id, list( "power" = 1, - "set_filters" = list( - GAS_CO2, - GAS_PLASMA, - GAS_H2O, - GAS_HYPERNOB, - GAS_NITROUS, - GAS_NITRYL, - GAS_TRITIUM, - GAS_BZ, - GAS_STIMULUM, - GAS_PLUOXIUM, - GAS_FREON, - GAS_HYDROGEN - ), + "set_filters" = filter_extra, "scrubbing" = 1, "widenet" = 1 ), signal_source) @@ -596,7 +594,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27) for(var/device_id in A.air_scrub_names) send_signal(device_id, list( "power" = 1, - "set_filters" = list(GAS_CO2, GAS_BZ), + "set_filters" = filter_basic, "scrubbing" = 1, "widenet" = 0 ), signal_source) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index f2e563c07b5e..cb6a1b9b0bb0 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -54,7 +54,9 @@ "caution" = /obj/machinery/portable_atmospherics/canister, "freon" = /obj/machinery/portable_atmospherics/canister/freon, "hydrogen" = /obj/machinery/portable_atmospherics/canister/hydrogen, - "fuel mix" = /obj/machinery/portable_atmospherics/canister/fuel + "fuel mix" = /obj/machinery/portable_atmospherics/canister/fuel, + "cl2" = /obj/machinery/portable_atmospherics/canister/chlorine, + "hcl" =/obj/machinery/portable_atmospherics/canister/hydrogen_chloride, ) /obj/machinery/portable_atmospherics/canister/interact(mob/user) @@ -170,6 +172,20 @@ air_contents.set_moles(GAS_HYDROGEN, 1000) air_contents.set_temperature(T20C) +/obj/machinery/portable_atmospherics/canister/chlorine + name = "chlorine canister" + desc = "chlorine" + icon_state = "greenys" + gas_type = GAS_CHLORINE + filled = 1 + +/obj/machinery/portable_atmospherics/canister/hydrogen_chloride + name = "hydrogen chloride canister" + desc = "awful" + icon_state = "greenyshaz" + gas_type = GAS_HYDROGEN_CHLORIDE + filled = 1 + /obj/machinery/portable_atmospherics/canister/fusion_test name = "fusion test canister" desc = "Don't be a badmin." diff --git a/code/modules/autowiki/pages/techweb.dm b/code/modules/autowiki/pages/techweb.dm index 0f4b87f9e2a2..42e58dd1cc66 100644 --- a/code/modules/autowiki/pages/techweb.dm +++ b/code/modules/autowiki/pages/techweb.dm @@ -9,9 +9,6 @@ if (!node.show_on_wiki) continue - if (!valid_node(node)) - continue - output += "\n\n" + include_template("Autowiki/TechwebEntry", list( "name" = escape_value(node.display_name), "description" = escape_value(node.description), @@ -21,9 +18,6 @@ return output -/datum/autowiki/techweb/proc/valid_node(datum/techweb_node/node) - return !node.experimental - /datum/autowiki/techweb/proc/generate_designs(list/design_ids) var/output = "" @@ -50,9 +44,6 @@ /datum/autowiki/techweb/experimental page = "Template:Autowiki/Content/Techweb/Experimental" -/datum/autowiki/techweb/experimental/valid_node(datum/techweb_node/node) - return node.experimental - /proc/sort_research_nodes(node_id_a, node_id_b) var/datum/techweb_node/node_a = SSresearch.techweb_nodes[node_id_a] var/datum/techweb_node/node_b = SSresearch.techweb_nodes[node_id_b] diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 2f87eea6d2a7..5fc667c4db4a 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -171,6 +171,7 @@ icon = 'icons/obj/device.dmi' icon_state = "syndbeacon" resistance_flags = INDESTRUCTIBLE + processing_flags = START_PROCESSING_MANUALLY var/team = WHITE_TEAM var/team_span = "" //Capture the Flag scoring @@ -194,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() @@ -347,6 +348,7 @@ /obj/machinery/capture_the_flag/proc/start_ctf() ctf_enabled = TRUE + START_PROCESSING(SSmachines, src) for(var/d in dead_barricades) var/obj/effect/ctf/dead_barricade/D = d D.respawn() @@ -378,6 +380,7 @@ /obj/machinery/capture_the_flag/proc/stop_ctf() ctf_enabled = FALSE + STOP_PROCESSING(SSmachines, src) arena_reset = FALSE var/area/A = get_area(src) for(var/i in GLOB.mob_list) 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/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/awaymissions/mission_code/caves.dm b/code/modules/awaymissions/mission_code/caves.dm index b7ab7c454d98..abaaceefd604 100644 --- a/code/modules/awaymissions/mission_code/caves.dm +++ b/code/modules/awaymissions/mission_code/caves.dm @@ -58,4 +58,4 @@ /obj/item/paper/fluff/awaymissions/caves/mech_notice name = "NOTICE!! paper" - default_raw_text = " Robotics Team" + default_raw_text = " Robotics Team" diff --git a/code/modules/awaymissions/mission_code/challenge.dm b/code/modules/awaymissions/mission_code/challenge.dm index 05d079220151..6f8bb473b77a 100644 --- a/code/modules/awaymissions/mission_code/challenge.dm +++ b/code/modules/awaymissions/mission_code/challenge.dm @@ -35,3 +35,13 @@ /obj/machinery/power/emitter/energycannon/RefreshParts() return + +/obj/machinery/power/emitter/energycannon/ctf + processing_flags = START_PROCESSING_MANUALLY + +/obj/machinery/power/emitter/energycannon/ctf/proc/toggle_ctf(ctf_enabled) + src.active = ctf_enabled + if(ctf_enabled) + START_PROCESSING(SSmachines, src) + else + STOP_PROCESSING(SSmachines, src) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index f2dbb91f3f0f..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 @@ -507,13 +501,11 @@ /obj/effect/spawner/lootdrop/snowdin/dungeonheavy name = "dungeon heavy" - loot = list(/obj/item/singularityhammer = 25, - /obj/item/mjollnir = 10, - /obj/item/fireaxe = 25, + loot = list(/obj/item/melee/axe/fire = 25, /obj/item/organ/brain/alien = 17, /obj/item/dualsaber = 15, /obj/item/organ/heart/demon = 7, - /obj/item/gun/ballistic/automatic/smg/c20r = 16, + /obj/item/gun/ballistic/automatic/smg/cobra = 16, /obj/item/uplink/old = 2, /obj/item/book/granter/spell/charge = 12, /obj/item/grenade/clusterbuster/spawner_manhacks = 15, @@ -530,7 +522,7 @@ loot = list(/obj/item/stack/sheet/mineral/snow{amount = 25} = 10, /obj/item/toy/snowball = 15, /obj/item/shovel = 10, - /obj/item/spear = 8, + /obj/item/melee/spear = 8, ) //special items//-- @@ -579,7 +571,7 @@ uniform = /obj/item/clothing/under/syndicate/coldres shoes = /obj/item/clothing/shoes/combat/coldres ears = /obj/item/radio/headset/syndicate/alt - r_pocket = /obj/item/gun/ballistic/automatic/pistol/syndicate + r_pocket = /obj/item/gun/ballistic/automatic/pistol/ringneck id = /obj/item/card/id/syndicate implants = list(/obj/item/implant/exile) diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm index efe429b86b73..f0131d830cd0 100644 --- a/code/modules/awaymissions/mission_code/spacebattle.dm +++ b/code/modules/awaymissions/mission_code/spacebattle.dm @@ -43,7 +43,7 @@ /mob/living/simple_animal/hostile/human/syndicate/ranged/spacebattle loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, - /obj/item/gun/ballistic/automatic/smg/c20r, + /obj/item/gun/ballistic/automatic/smg/cobra, /obj/item/shield/energy) /mob/living/simple_animal/hostile/human/syndicate/melee/spacebattle diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm deleted file mode 100644 index 063966c86d63..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/c20r/sc_c20r - -/obj/item/gun/ballistic/automatic/smg/c20r/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/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm deleted file mode 100644 index 26c6b4823dce..000000000000 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ /dev/null @@ -1,47 +0,0 @@ -/* Code for the Wild West map by Brotemis - * Contains: - * Wish Granter - * Meat Grinder - */ - -///////////////Meatgrinder////////////// - - -/obj/effect/meatgrinder - name = "Meat Grinder" - desc = "What is that thing?" - density = TRUE - anchored = TRUE - icon = 'icons/mob/blob.dmi' - icon_state = "blobpod" - var/triggered = 0 - -/obj/effect/meatgrinder/Initialize() - . = ..() - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/obj/effect/meatgrinder/proc/on_entered(datum/source, atom/movable/AM) - SIGNAL_HANDLER - Bumped(AM) - -/obj/effect/meatgrinder/Bumped(atom/movable/AM) - - if(triggered) - return - if(!ishuman(AM)) - return - - var/mob/living/carbon/human/M = AM - - if(M.stat != DEAD && M.ckey) - visible_message("[M] triggered [src]!") - triggered = 1 - - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, src) - s.start() - explosion(M, 1, 0, 0, 0) - qdel(src) diff --git a/code/modules/cargo/blackmarket/blackmarket_item.dm b/code/modules/cargo/blackmarket/blackmarket_item.dm index cbadddcf1221..00ed7e3bee38 100644 --- a/code/modules/cargo/blackmarket/blackmarket_item.dm +++ b/code/modules/cargo/blackmarket/blackmarket_item.dm @@ -24,23 +24,56 @@ var/stock_min = 1 /// Maximum amount that there should be of this item in the market if generated randomly. var/stock_max = 0 + /// Whether the item is visible and purchasable on the market + var/available = TRUE /// Probability for this item to be available. Used by SSblackmarket on init. var/availability_prob = 0 + /// If this item should be more or less likely to spawn than usual. Positive is more likely, negative is less + var/weight = 0 + /// If this item is affected by avalibility weight. For items that shouldnt appear on their own (paired items), should always appear, or items paticularly rare or powerful that we dont want showing up too often + var/spawn_weighting // Should there be an unlimited stock of an item var/unlimited = FALSE /// Should another item spawn alongside this one in the catalogue? - var/datum/blackmarket_item/pair_item + var/list/pair_item = null + /datum/blackmarket_item/New() if(isnull(price)) - price = rand(price_min, price_max) + randomize_price() if(isnull(stock)) - stock = rand(stock_min, stock_max) + randomize_stock() + if(isnull(spawn_weighting)) + if(availability_prob == 0 || availability_prob == 100) + spawn_weighting = FALSE + else + spawn_weighting = TRUE /// Used for spawning the wanted item, override if you need to do something special with the item. /datum/blackmarket_item/proc/spawn_item(loc) return new item(loc) +/datum/blackmarket_item/proc/randomize_price() + price = rand(price_min, price_max) + +/datum/blackmarket_item/proc/randomize_stock() + stock = rand(stock_min, stock_max) + +/datum/blackmarket_item/proc/cycle(price = TRUE, availibility = TRUE, stock = FALSE, force_appear = FALSE) + if(price) + randomize_price() + if(stock) + randomize_stock() + if(availibility) + if(spawn_weighting ? prob(max(0, (availability_prob + (weight * 10)))) : prob(availability_prob)) + available = TRUE + weight-- + else + available = FALSE + weight++ + if(force_appear) + available = TRUE + /// Buys the item and makes SSblackmarket handle it. /datum/blackmarket_item/proc/buy(obj/item/blackmarket_uplink/uplink, mob/buyer, shipping_method) // Sanity diff --git a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm new file mode 100644 index 000000000000..d5489edeb3e0 --- /dev/null +++ b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm @@ -0,0 +1,295 @@ +/datum/blackmarket_item/ammo + category = "Ammunition" + +/datum/blackmarket_item/ammo/shotgun_dart + name = "Shotgun Dart" + desc = "These handy darts can be filled up with any chemical and be shot with a shotgun! \ + Prank your friends by shooting them with laughter! \ + Not recommended for comercial use." + item = /obj/item/ammo_casing/shotgun/dart + + price_min = 10 + price_max = 50 + stock_min = 10 + stock_max = 60 + availability_prob = 40 + +/datum/blackmarket_item/ammo/himehabu_mag + name = "Himehabu Magazines" + desc = "Compact 10 round .22 LR magazines for use in the Himehabu pistol." + item = /obj/item/ammo_box/magazine/m22lr_himehabu + + price_min = 100 + price_max = 200 + stock_min = 6 + stock_max = 10 + availability_prob = 0 + +/datum/blackmarket_item/ammo/himehabu_box + name = ".22 LR Ammo Box" + desc = "A 75 round ammo box of .22 LR. Trust me, you'll need every shot." + item = /obj/item/ammo_box/c22lr_box + + price_min = 100 + price_max = 300 + stock_min = 6 + stock_max = 10 + availability_prob = 0 + +/datum/blackmarket_item/ammo/a357_box + name = ".357 Ammo Box" + desc = "A 50 round ammo box of .357." + item = /obj/item/ammo_box/a357_box + + price_min = 150 + price_max = 500 + stock_min = 3 + stock_max = 6 + availability_prob = 0 + +/datum/blackmarket_item/ammo/e40_mag + name = "Eoehoma .299 Caseless Magazine" + desc = "A 30 round magazine for the E-40 Hybrid Rifle." + item = /obj/item/ammo_box/magazine/e40 + + price_min = 750 + price_max = 1250 + stock = 6 + availability_prob = 0 + +/datum/blackmarket_item/ammo/c299 + name = "Eoehoma .299 Caseless Ammo Box" + desc = "This ammunition for the E-40 Hybrid Rifle is probably worth more than the people you're shooting it at." + item = /obj/item/ammo_box/c299 + + price_min = 300 + price_max = 700 + stock_min = 4 + stock_max = 8 + availability_prob = 0 + +/datum/blackmarket_item/ammo/saber_mag + name = "Saber 9mm SMG Magazines" + desc = "Magazines for use in the Saber 9mm SMG. No, they don't work as swords." + item = /obj/item/ammo_box/magazine/smgm9mm + + price_min = 500 + price_max = 1000 + stock_min = 4 + stock_max = 6 + availability_prob = 0 + +/datum/blackmarket_item/ammo/model_h_mag + name = "Model H Magazine" + desc = "A 10 round magazine for Model H slug pistol." + item = /obj/item/ammo_box/magazine/modelh + + price_min = 500 + price_max = 1000 + stock_max = 4 + availability_prob = 0 + +/datum/blackmarket_item/ammo/sgg_stripper + name = "8x58mm Stripper Clip" + desc = "A five round 8x58mm stripper clip for use with the SGG-669C. Also doubles as a paperweight, because of course it does. Fucking Solarians." + item = /obj/item/ammo_box/a858 + + price_min = 500 + price_max = 1000 + stock_min = 6 + stock_max = 8 + availability_prob = 0 + +/datum/blackmarket_item/ammo/pistole_c_mag + name = "5.56 Caseless Magazine" + desc = "A 12 round magazine for the Pistole Cheese." + item = /obj/item/ammo_box/magazine/pistol556mm + + price_min = 250 + price_max = 750 + stock = 2 + availability_prob = 0 + +/datum/blackmarket_item/ammo/proto_gauss_mag + name = "Prototype Gauss Rifle Magazine" + desc = "A 25 round ferromagnetic pellet magazine for the prototype gauss rifle. Choking hazard, keep pellets away from children under the age of 5." + item = /obj/item/ammo_box/magazine/gauss + + price_min = 500 + price_max = 800 + stock_min = 3 + stock_max = 5 + availability_prob = 0 + +/datum/blackmarket_item/ammo/polymer_clip + name = "7.62 Stripper Clip" + desc = "A 5 round stripper clip of 7.62x40mm CLIP." + item = /obj/item/ammo_box/a762_stripper + + price_min = 500 + price_max = 750 + stock_min = 4 + stock_max = 6 + availability_prob = 0 + +/datum/blackmarket_item/ammo/carbine_mag + name = "SKM-24v Magazine" + desc = "A 30 round magazine of 4.6x30mm for the SKM-24v. A hermit classic." + item = /obj/item/ammo_box/magazine/skm_545_39 + + price_min = 500 + price_max = 1000 + stock_min = 3 + stock_max = 5 + availability_prob = 40 + +/datum/blackmarket_item/ammo/skm_extended + name = "Extended SKM Magazine" + desc = "An extended 40 round 7.62x40mm CLIP magazine for the SKM family of assault rifles. Extra curves mean extra ammo." + item = /obj/item/ammo_box/magazine/skm_762_40/extended + + price_min = 1000 + price_max = 3000 + stock_max = 4 + availability_prob = 40 + +/datum/blackmarket_item/ammo/skm_drum + name = "SKM Drum Magazine" + desc = "Do you have too much ammo on your hands? Do you have someone you really hate? \ + Do you want them to be absolutely suppressed for the next 15 seconds? \ + This 75 round 7.62x40mm CLIP drum magazine is perfect for you! (SKM not included.)" + item = /obj/item/ammo_box/magazine/skm_762_40/drum + + price_min = 1500 + price_max = 3500 + stock = 2 + availability_prob = 20 + +/datum/blackmarket_item/ammo/damaged_cell + name = "Discount Weapon Power Cells" + desc = "These cells got a little banged up during a raid by GOLD authorities, but they still should be safe to use. Probably." + item = /obj/item/stock_parts/cell/gun + + price_min = 100 + price_max = 400 + stock_min = 5 + stock_max = 10 + availability_prob = 80 + +/datum/blackmarket_item/ammo/damaged_cell/spawn_item(loc) + var/obj/item/stock_parts/cell/damaged_cell = ..() + damaged_cell.name = "dented weapon power cell" + damaged_cell.desc = "A rechargeable electrochemical power cell. This one doesn't appear to be in the greatest condition." + if(prob(35)) + damaged_cell.rigged = TRUE + damaged_cell.show_rigged = FALSE + + return new damaged_cell(loc) + +/datum/blackmarket_item/ammo/advanced_weapon_cell + name = "Upgraded Weapon Power Cells" + desc = "These upgraded weapon powercells come with twice the capacity of the standard cells, and quality checked to make sure they won't explode!" + item = /obj/item/stock_parts/cell/gun/upgraded + + price_min = 1000 + price_max = 1750 + stock_min = 2 + stock_max = 4 + availability_prob = 25 + +/datum/blackmarket_item/ammo/huge_weapon_cell + name = "Extra Large Weapon Power Cells" + desc = "We're way past double A now. These extra-large power cells (in both charge and size!) are purpose built for the most heavy duty energy weapons." + item = /obj/item/stock_parts/cell/gun/large + + price_min = 2500 + price_max = 4000 + stock = 2 + availability_prob = 20 + spawn_weighting = FALSE + +/datum/blackmarket_item/ammo/mecha_hades_ammo + name = "FNX-99 Incediary Ammo" + desc = "A box of 24 incendiary shells for the FNX-99 mounted carbine." + item = /obj/item/mecha_ammo/incendiary + + price_min = 250 + price_max = 350 + stock_min = 3 + stock_max = 5 + availability_prob = 0 + +/datum/blackmarket_item/ammo/mauler_mag + name = "Mauler Magazine" + desc = "A 12 round 9mm magazine for the Mauler Machine Pistol." + item = /obj/item/ammo_box/magazine/m9mm_mauler + price_min = 250 + price_max = 750 + stock_min = 3 + stock_max = 5 + availability_prob = 0 + +/datum/blackmarket_item/ammo/spitter_mag + name = "Spitter Magazine" + desc = "A 30 round 9mm magazine for the Spitter submachine gun." + item = /obj/item/ammo_box/magazine/spitter_9mm + + price_min = 250 + price_max = 750 + stock_min = 2 + stock_max = 5 + availability_prob = 0 + +/datum/blackmarket_item/ammo/pounder_mag + name = "Pounder Pan Magazine" + desc = "A 50 round pan magazine for the Pounder submachine gun. Heavy enough to double as an emergency melee weapon to beat off your enemies in a pinch." + item = /obj/item/ammo_box/magazine/c22lr_pounder_pan + + price_min = 400 + price_max = 750 + stock = 2 + availability_prob = 0 + +/datum/blackmarket_item/ammo/a4570hp + name = ".45-70 Hollow Point Ammo Box" + desc = "Put the hollow in hollow point by blowing a crater in some random sod with this devastating .45-70 cartridge." + item = /obj/item/ammo_box/a4570/hp + + price_min = 600 + price_max = 1000 + stock_min = 3 + stock_max = 5 + availability_prob = 20 + +/datum/blackmarket_item/ammo/a4570explo + name = "Single .45-70 Explosive Round" + desc = "If you need to fuck someone, hard, we got just the thing. Only one round, though, hope you got good aim." + item = /obj/item/ammo_casing/a4570/explosive + + price_min = 400 + price_max = 800 //still an exorbitantly high price for one round that you might not even hit + 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/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index a4c4195beca0..677b82624bae 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -11,15 +11,26 @@ stock_max = 5 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 +/datum/blackmarket_item/clothing/straitjacket + name = "Straitjacket" + desc = "These straitjackets might be a tight fit, but you can certain the poor sod wont be getting away anytime soon." + item = /obj/item/clothing/suit/straight_jacket - price_min = 1000 - price_max = 2000 - stock_max = 1 - availability_prob = 20 + price_min = 500 + price_max = 1000 + stock_max = 3 + availability_prob = 40 + +/datum/blackmarket_item/clothing/surplus_uniform + name = "Surplus Combat Uniforms" + desc = "A mass produced and non-descript surplus combat uniform. For when you need to look like another faceless thug in the crowd." + item = /obj/item/clothing/under/rank/security/officer/military + + price_min = 50 + price_max = 200 + stock_min = 5 + stock_max = 10 + availability_prob = 80 /datum/blackmarket_item/clothing/galaxy_blue name = "Blue Galaxy Suit" @@ -98,11 +109,31 @@ new /obj/item/clothing/head/helmet/bulletproof/x11/frontier(B) return B +/datum/blackmarket_item/clothing/frontiersmen_armor_fireproof + name = "Fireproof Armor Set" + desc = "Get it while it's hot! This fireproofed armor and uniform set is made with a pre-Night Of Fire miracle material that renders it almost impervious to flames. The Frontiersmen swear by the stuff. It's kept each of it's previous owners safe until they passed away from illness." + item = /obj/item/storage/box + + price_min = 1000 + price_max = 1750 + stock_max = 3 + availability_prob = 50 + +/datum/blackmarket_item/clothing/frontiersmen_armor_fireproof/spawn_item(loc) + var/obj/item/storage/box/B = ..() + B.name = "Fireproof Armor Set Box" + B.desc = "A singed box with some folded clothes and a helmet inside." + new /obj/item/clothing/suit/armor/frontier/fireproof(B) + new /obj/item/clothing/head/helmet/bulletproof/x11/frontier/fireproof(B) + new /obj/item/clothing/under/frontiersmen/fireproof(B) + new /obj/item/clothing/mask/gas/frontiersmen(B) + return B + /datum/blackmarket_item/clothing/gezena_armor name = "Raksha-Plating vest" desc = "Genuine armor vests used by the PGF Marine Corp. If a military guy in a cape comes by, play dumb." item = /obj/item/clothing/suit/armor/gezena/marine - pair_item = /datum/blackmarket_item/clothing/gezena_helmet + pair_item = list(/datum/blackmarket_item/clothing/gezena_helmet) price_min = 750 price_max = 1250 @@ -137,6 +168,54 @@ new /obj/item/clothing/head/helmet/space(B) return B +/datum/blackmarket_item/clothing/syndie_spacesuit_set + name = "\improper Syndicate Branded Spacesuit Box" + desc = "An armored syndicate softsuit, popular among the ACLF operatives who were too broke to get an actual hardsuit." + item = /obj/item/storage/box/syndie_kit + + price_min = 750 + price_max = 2500 + stock_max = 3 + availability_prob = 50 + +/datum/blackmarket_item/clothing/syndie_spacesuit_set/spawn_item(loc) + var/obj/item/storage/box/syndie_kit/B = ..() + B.name = "Spacesuit Box" + B.desc = "It has a Syndicate logo on it." + var/suit_color = pick(list("red","green","dark green","blue","orange","black","black-green","black-blue","black-orange","black-red")) + switch(suit_color) + if("red") + new /obj/item/clothing/head/helmet/space/syndicate(B) + new /obj/item/clothing/suit/space/syndicate(B) + if("green") + new /obj/item/clothing/head/helmet/space/syndicate/green(B) + new /obj/item/clothing/suit/space/syndicate/green(B) + if("dark-green") + new /obj/item/clothing/head/helmet/space/syndicate/green/dark(B) + new /obj/item/clothing/suit/space/syndicate/green/dark(B) + if("orange") + new /obj/item/clothing/head/helmet/space/syndicate/orange(B) + new /obj/item/clothing/suit/space/syndicate/orange(B) + if("blue") + new /obj/item/clothing/head/helmet/space/syndicate/blue(B) + new /obj/item/clothing/suit/space/syndicate/blue(B) + if("black") + new /obj/item/clothing/head/helmet/space/syndicate/black(B) + new /obj/item/clothing/suit/space/syndicate/black(B) + if("black-green") + new /obj/item/clothing/head/helmet/space/syndicate/black/green(B) + new /obj/item/clothing/suit/space/syndicate/black/green(B) + if("black-blue") + new /obj/item/clothing/head/helmet/space/syndicate/black/blue(B) + new /obj/item/clothing/suit/space/syndicate/black/blue(B) + if("black-orange") + new /obj/item/clothing/head/helmet/space/syndicate/black/orange(B) + new /obj/item/clothing/suit/space/syndicate/black/orange(B) + if("black-red") + new /obj/item/clothing/head/helmet/space/syndicate/black/red(B) + new /obj/item/clothing/suit/space/syndicate/black/red(B) + return B + /datum/blackmarket_item/clothing/chameleon_hat name = "Chameleon Hat" desc = "Pick any hat you want with this Handy device. Not Quality Tested." @@ -147,6 +226,17 @@ stock_max = 2 availability_prob = 70 +/datum/blackmarket_item/clothing/cham_kit + name = "Chameleon Kit" + desc = "Not sure what to wear? This adaptive set of clothing can change to suit whatever you desire! Quality tested." + item = /obj/item/storage/box/syndie_kit/chameleon + + price_min = 1000 + price_max = 2500 + stock_max = 2 + availability_prob = 10 + spawn_weighting = FALSE + /datum/blackmarket_item/clothing/combatmedic_suit name = "Combat Medic Hardsuit" desc = "A discarded combat medic hardsuit, found in the ruins of a carpet bombed xeno hive. Definitely used, but as sturdy as an anchor." @@ -164,7 +254,7 @@ price_min = 1500 price_max = 2500 - stock = 1 + stock_max = 3 availability_prob = 30 /datum/blackmarket_item/clothing/frontiersmen_hardsuit diff --git a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm index e3a20e0e8905..2d9f3af83c06 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm @@ -17,10 +17,10 @@ desc = "A random cocktail of luxury drugs that are sure to put a smile on your face!" item = /obj/item/storage/pill_bottle - stock_min = 2 - stock_max = 3 - price_min = 200 - price_max = 500 + stock_min = 4 + stock_max = 6 + price_min = 50 + price_max = 300 availability_prob = 50 /datum/blackmarket_item/consumable/suspicious_pills/spawn_item(loc) @@ -42,6 +42,28 @@ price_max = 60 availability_prob = 50 +/datum/blackmarket_item/consumable/cannabis + name = "Cannabis Leaves" + desc = "Homegrown cannabis, fresh off the garden just for your pleasure!" + item = /obj/item/reagent_containers/food/snacks/grown/cannabis + + stock_min = 4 + stock_max = 6 + price_min = 50 + price_max = 300 + availability_prob = 50 + +/datum/blackmarket_item/consumable/syndie_cigs + name = "Syndicate Cigarettes" + desc = "Who said smoking was bad for you? These omnizine laced cigarettes will have you feeling like a million bucks!" + item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate + + stock_min = 4 + stock_max = 6 + price_min = 50 + price_max = 300 + availability_prob = 50 + /datum/blackmarket_item/consumable/trickwine name = "Trickwine" desc = "The SRM keeps the recipes for their trickwines a closely guarded secret. The Hunters carrying those bottles? Less so." @@ -62,16 +84,16 @@ /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine)) return new trickwine(loc) +/datum/blackmarket_item/consumable/stimpack + name = "Stimpack" + desc = "A quick inject medipen loaded with a cocktail of powerful stimulants. Side effects may include nasuea, heartburn, constipation, weight loss, increased blood pressure, kidney stones, liver damage, mood swings, mania, anemia, weight gain, total organ failure, runny nose and minor retinal irritation." + item = /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor -/datum/blackmarket_item/consumable/pumpup - name = "Maintenance Pump-Up" - desc = "Resist any Baton stun with this handy instant tetanus free injector!." - item = /obj/item/reagent_containers/hypospray/medipen/pumpup - - stock_max = 3 - price_min = 50 - price_max = 150 - availability_prob = 90 + stock_min = 4 + stock_max = 6 + price_min = 250 + price_max = 500 + availability_prob = 50 /datum/blackmarket_item/consumable/morphine name = "Morphine Bottle" @@ -80,6 +102,7 @@ price_min = 50 price_max = 150 + stock_min = 2 stock_max = 4 availability_prob = 50 @@ -88,9 +111,10 @@ desc = "Cyanide, a tried and true classic for all your poisoning needs." item = /obj/item/reagent_containers/glass/bottle/cyanide - price_min = 300 - price_max = 600 - stock_max = 3 + price_min = 200 + price_max = 400 + stock_min = 2 + stock_max = 4 availability_prob = 30 /datum/blackmarket_item/consumable/sodium_thiopental @@ -98,19 +122,21 @@ desc = "Sodium Thiopental, a potent and fast acting sedative for any occasion." item = /obj/item/reagent_containers/glass/bottle/sodium_thiopental - price_min = 300 + price_min = 250 price_max = 600 - stock_max = 3 + stock_min = 2 + stock_max = 4 availability_prob = 30 /datum/blackmarket_item/consumable/amanitin - name = "Amanitin bottle" + name = "Amanitin Bottle" desc = "A slow acting, but nearly undetectable poison. For the dignified assassin." item = /obj/item/reagent_containers/glass/bottle/amanitin price_min = 300 price_max = 600 - stock_max = 3 + stock_max = 2 + stock_max = 4 availability_prob = 30 /datum/blackmarket_item/consumable/gumballs @@ -124,15 +150,21 @@ stock_max = 20 availability_prob = 80 -/datum/blackmarket_item/consumable/xeno_meat - name = "Xenomorph steak" +/datum/blackmarket_item/consumable/xeno_corpse + name = "Xenomorph Corpse" desc = "The Frontier's most dangerous game, delivered right to your plate! May constitute a violation of your local BARD laws and regulations." - item = /obj/item/reagent_containers/food/snacks/meat/slab/xeno + item = /mob/living/simple_animal/hostile/alien - price_min = 300 - price_max = 500 - stock_max = 5 - availability_prob = 20 + price_min = 6000 + price_max = 10000 + stock = 1 + availability_prob = 10 + spawn_weighting = FALSE + +/datum/blackmarket_item/consumable/xeno_corpse/spawn_item(loc) + var/mob/living/simple_animal/hostile/alien = ..() + alien.stat = DEAD + return new alien(loc) /datum/blackmarket_item/consumable/berries name = "Berries" @@ -157,7 +189,7 @@ item = /obj/effect/spawner/lootdrop/ration price_min = 150 - price_max = 400 + price_max = 300 availability_prob = 80 unlimited = TRUE @@ -177,10 +209,10 @@ desc = "A bundle of sutures for stitching up your latest bullet wound." item = /obj/item/stack/medical/suture - price_min = 200 - price_max = 450 - stock_min = 2 - stock_max = 5 + price_min = 25 + price_max = 150 + stock_min = 4 + stock_max = 6 availability_prob = 40 /datum/blackmarket_item/consumable/regen_mesh @@ -188,10 +220,10 @@ desc = "A smoothing pack of regenerative mesh for your burns." item = /obj/item/stack/medical/mesh - price_min = 200 - price_max = 450 - stock_min = 2 - stock_max = 5 + price_min = 25 + price_max = 150 + stock_min = 4 + stock_max = 6 availability_prob = 40 /datum/blackmarket_item/consumable/bruise_pack @@ -199,19 +231,53 @@ desc = "A bundle of old bruise packs, for you guessed it, bruises. Any rumors of these containing hazardous chemicals are just that. Rumors." item = /obj/item/stack/medical/bruise_pack - price_min = 300 - price_max = 500 - stock_min = 2 - stock_max = 5 + price_min = 50 + price_max = 175 + stock_min = 4 + stock_max = 6 availability_prob = 30 /datum/blackmarket_item/consumable/ointment - name = "Burn ointment" + name = "Burn Ointment" desc = "A tube of burn ointment. It's past the expiry date, but those are only suggestions." item = /obj/item/stack/medical/ointment - price_min = 300 - price_max = 500 - stock_min = 2 - stock_max = 5 + price_min = 50 + price_max = 175 + stock_min = 4 + stock_max = 6 availability_prob = 30 + +/datum/blackmarket_item/consumable/goliath + name = "A Live Goliath" + desc = "We reappropiated an outpost freighter a week back, and the entire thing was packed with goliaths for whatever reason. Point is, we're sick and tired of eating them, so we're selling what's left so we can buy some actual take out." + item = /mob/living/simple_animal/hostile/asteroid/goliath/beast + + price_min = 750 + price_max = 2000 + stock_max = 4 + availability_prob = 15 + spawn_weighting = FALSE + +/datum/blackmarket_item/consumable/color_salve + name = "Color Salve" + desc = "A cosmetic salve used for changing the hue of Elzouse. Now with 20% less harmful chemical dyes!" + item = /obj/item/colorsalve + + price_min = 100 + price_max = 200 + stock_min = 4 + stock_max = 10 + availability_prob = 80 + +/datum/blackmarket_item/consumable/secret_sauce + name = "Family Sauce Recipe" + desc = "This used to belong to a good friend of mine before the authorities did em in. Best goddamn sauce I've ever tasted, but I could never get it right myself. Maybe you can do it justice." + item = /obj/item/paper/secretrecipe + + price_min = 1000 + price_max = 2000 + stock = 1 + availability_prob = 5 + spawn_weighting = FALSE + diff --git a/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm b/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm index 7fe78cdcd055..26402e3dfac0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm @@ -11,6 +11,16 @@ stock_max = 5 availability_prob = 50 +/datum/blackmarket_item/explosive/smoke_grenade + name = "Smoke Grenade" + desc = "Too much heat on your back? This handy smoke grenade is perfect for a hasty getaway." + item = /obj/item/grenade/smokebomb + + price_min = 100 + price_max = 400 + stock_max = 5 + availability_prob = 50 + /datum/blackmarket_item/explosive/h_e name = "HE Grenade" desc = "These high explosive grenades are sure to get some bang for your buck." @@ -57,7 +67,7 @@ /datum/blackmarket_item/explosive/slipocalypse name = "Slipocalyse Cluster Bomb" - desc = "Wash away the opposition with sudstastic grenade!" + desc = "Wash away the opposition with this sudstastic grenade!" item = /obj/item/grenade/clusterbuster/soap price_min = 500 @@ -65,9 +75,21 @@ stock = 1 availability_prob = 10 +/datum/blackmarket_item/explosive/disco_grenade + name = "Portable Disco Grenade" + desc = "Become the life of the party with this groovy grenade!" + item = /obj/item/grenade/discogrenade + + price_min = 500 + price_max = 750 + stock_min = 2 + stock_max = 3 + availability_prob = 10 + spawn_weighting = FALSE + /datum/blackmarket_item/explosive/rusted_mine name = "Landmine" - desc = "Recovered from a decades old ICW battlefield by our best EOD tech, Nicky Nine Fingers." + desc = "Recovered from a decade old ICW battlefield by our best EOD tech, Nicky Nine Fingers." item = /obj/item/mine/pressure/explosive/rusty price_min = 250 @@ -75,14 +97,29 @@ 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 +/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." + item = /obj/machinery/syndicatebomb - price_min = 3500 - price_max = 6500 - stock_min = 2 - stock_max = 5 - availability_prob = 20 + price_min = 500 + price_max = 1000 + stock = 1 + availability_prob = 5 + spawn_weighting = FALSE +/datum/blackmarket_item/explosive/live_bomb/spawn_item(loc) + var/obj/machinery/syndicatebomb/bomb = ..() + bomb.activate() + return new bomb(loc) + +/datum/blackmarket_item/explosive/firecrackers + name = "Firecracker" + desc = "Nuclear Bomb brand extra strength firecrackers, painted in the signature blood red of the Gorlex Marauders. Enjoyed a successful, albeit short run in PGF space due to a certain event in 492 FS made selling them somewhat in poor taste." + item = /obj/item/grenade/firecracker + + price_min = 50 + price_max = 250 + stock_min = 5 + stock_max = 10 + availability_prob = 50 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm index a5e2c67175af..8f51514de804 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm @@ -56,31 +56,11 @@ desc = "Why, it could be anything. Are you feeling lucky?" item = /obj/structure/closet/crate/secure/loot - price_min = 250 - price_max = 400 + price_min = 100 + price_max = 300 availability_prob = 100 unlimited = TRUE -/datum/blackmarket_item/misc/spygass - name = "Spy Glass Kit" - desc = "A set of trick glasses and a linked camera. Suit and dashing shades not included." - item = /obj/item/storage/box/rxglasses/spyglasskit - - price_min = 250 - price_max = 1000 - stock_max = 3 - availability_prob = 30 - -/datum/blackmarket_item/misc/ripley_mk_4 - name = "Ripley Mk IV Upgrade Kit" - desc = "Pimp out your Ripley to the CLIP Mark IV Rogue Model today! Killjoy bureaucrats not included, thank god." - item = /obj/item/mecha_parts/mecha_equipment/conversion_kit/ripley/clip - - price_min = 1500 - price_max = 2500 - stock_max = 3 - availability_prob = 30 - /datum/blackmarket_item/misc/secret_docs name = "Classified Documents" desc = "Good people died to get these. Luckily, we aren't good people." @@ -107,3 +87,57 @@ price_max = 10000 stock = 1 availability_prob = 40 + +/datum/blackmarket_item/misc/knockoff_plush + name = "Knockoff T4LI Plush" + desc = "You'll hardly be able to tell that it's an offbrand rip off!" + item = /obj/item/toy/plush/tali + + price_min = 50 + price_max = 150 + stock_min = 2 + stock_max = 5 + availability_prob = 60 + +/datum/blackmarket_item/misc/knockoff_plush/spawn_item(loc) + var/obj/item/toy/plush/tali/plush = ..() + plush.name = "T3MMI" + plush.desc = "A rather shoddy and unlicensed plushie 'paying homage' to a character from the RILENA series." + return new plush(loc) + +/datum/blackmarket_item/misc/pens + name = "Pen" + desc = "We found an old Cybersun blacksite, and came across an unmarked crate full of pens. Want one?" + item = /obj/item/pen + + price_min = 50 + price_max = 150 + unlimited = TRUE + availability_prob = 60 + +/datum/blackmarket_item/misc/pens/spawn_item(loc) + var/pen = pick(list(/obj/item/pen, + /obj/item/pen/blue, + /obj/item/pen/red, + /obj/item/pen/fourcolor, + /obj/item/pen/fountain, + /obj/item/pen/fountain/captain, + /obj/item/pen/solgov, + /obj/item/pen/fountain/solgov, + /obj/item/pen/edagger, + /obj/item/pen/survival, + /obj/item/pen/sleepy)) + return new pen(loc) + +/datum/blackmarket_item/misc/hexacrete + name = "Jug of Hexacrete" + desc = "Need to make a blacksite in a jiffy? Skip the fuss with this 150u jug of hexacrete!" + item = /obj/item/reagent_containers/glass/chem_jug/hexacrete + + price_min = 750 + price_max = 1500 + stock_min = 3 + stock_max = 10 + availability_prob = 30 + + diff --git a/code/modules/cargo/blackmarket/blackmarket_items/tech.dm b/code/modules/cargo/blackmarket/blackmarket_items/tech.dm new file mode 100644 index 000000000000..63db8cbb75d1 --- /dev/null +++ b/code/modules/cargo/blackmarket/blackmarket_items/tech.dm @@ -0,0 +1,214 @@ +/datum/blackmarket_item/tech + category = "Technology" + +/datum/blackmarket_item/tech/ripley_mk_4 + name = "Ripley Mk IV Upgrade Kit" + desc = "Pimp out your Ripley to the CLIP Mark IV Rogue Model today! Killjoy bureaucrats not included, thank god." + item = /obj/item/mecha_parts/mecha_equipment/conversion_kit/ripley/clip + + price_min = 1500 + price_max = 2500 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/tech/chem_master + name = "Chem Master Board" + desc = "A Chem Master board, capable of seperating and packaging reagents. Perfect for any aspiring at home chemist." + item = /obj/item/circuitboard/machine/chem_master + + price_min = 1000 + price_max = 3000 + stock = 1 + availability_prob = 30 + +/datum/blackmarket_item/tech/ltrsbt + name = "Black Market Long-To-Short-Range-Bluespace-Transciever" + desc = "Need a faster and better way of transporting your illegal goods from and to the sector? Fear not, the Long-To-Short-Range-Bluespace-Transceiver (LTSRBT for short) is here to help. This handy teleporter will teleport your purchases directly to you once built." + item = /obj/item/circuitboard/machine/ltsrbt + + price_min = 500 + price_max = 1000 + stock_max = 3 + availability_prob = 20 + +/datum/blackmarket_item/tech/mrs_pacman + name = "MRSPACMAN-type Generator Board" + desc = "A ridiciously overclocked PACMAN generator that somehow burns diamonds as fuel." + item = /obj/item/circuitboard/machine/pacman/mrs + + price_min = 2000 + price_max = 3000 + stock = 1 + availability_prob = 30 + +/datum/blackmarket_item/tech/ai_core + name = "AI Core Board" + desc = "The future is now! Become one with your ship with this AI core board! (Some assembly required.)" + item = /obj/item/circuitboard/aicore + pair_item = list(/datum/blackmarket_item/tech/boris, /datum/blackmarket_item/tech/mmi, /datum/blackmarket_item/tech/borg) + + price_min = 5000 + price_max = 8000 + stock = 1 + availability_prob = 5 + spawn_weighting = FALSE + +/datum/blackmarket_item/tech/boris + name = "B.O.R.I.S Module" + desc = "A Bluespace Optimi-blah blah blah, I'm bored already. This module will convert a cyborg frame into an AI compatible shell." + item = /obj/item/borg/upgrade/ai + + price_min = 500 + price_max = 1000 + stock = 1 + availability_prob = 0 + +/datum/blackmarket_item/tech/mmi + name = "Man Machine Interface" + desc = "Transcend the weakness of your flesh with this man machine interface, compatible with AIs, Cyborgs and Mechs!" + item = /obj/item/mmi + pair_item = list(/datum/blackmarket_item/tech/borg) + + price_min = 250 + price_max = 750 + stock_max = 3 + availability_prob = 40 + +/datum/blackmarket_item/tech/borg + name = "Cyborg Construction Kit" + desc = "This durable and verastile cyborg frame is capable of fufilling a number of roles and survive situations that would kill the average person. Brain sold seperately." + item = /obj/structure/closet/crate/cyborg + + price_min = 1000 + price_max = 2000 + stock_max = 2 + availability_prob = 0 + +/datum/blackmarket_item/tech/t4_capacitor + name = "Quadratic Capacitor" + desc = "A top grade quadractic capacitor. These highly effiecent capacitors are capable of storing massive amounts of electricity. Keep away from open plugs." + item = /obj/item/stock_parts/capacitor/quadratic + + price_min = 400 + price_max = 700 + stock_min = 2 + stock_max = 4 + availability_prob = 20 + +/datum/blackmarket_item/tech/t4_scanner + name = "Triphasic Scanning Module" + desc = "A top grade triphasic scanning module. These finely tuned scanning modules are usually reserved for vital systems like early warning defence radars against raiders and pirates. We decided to put it to better use." + item = /obj/item/stock_parts/scanning_module/triphasic + + price_min = 400 + price_max = 700 + stock_min = 2 + stock_max = 4 + availability_prob = 20 + +/datum/blackmarket_item/tech/t4_manip + name = "Femto Manipulator" + desc = "A top grade femto manipulator. These insanely precise manipuators are capable of manipulating particles up to a quadtillionth of a meter. Still not precise enough to find a single braincell in an NT exec's head though." + item = /obj/item/stock_parts/manipulator/femto + + price_min = 400 + price_max = 700 + stock_min = 2 + stock_max = 4 + availability_prob = 20 + +/datum/blackmarket_item/tech/t4_laser + name = "Quad-Ultra Microlaser" + desc = "A top grade quad-ultra microlaser. A bit too micro of a laser to actually kill anyone with, but more than enough to get the most out of your materials." + item = /obj/item/stock_parts/micro_laser/quadultra + + price_min = 400 + price_max = 700 + stock_min = 2 + stock_max = 4 + availability_prob = 20 + +/datum/blackmarket_item/tech/t4_bin + name = "Bluespace Matter Bin" + desc = "A top grade bluespace matter bin. Uses the power of bluespace to contain tons of matter without all the hassle of actually needing to carry literal tons with only a miniscule chance of ripping a hole in reality." + item = /obj/item/stock_parts/matter_bin/bluespace + + price_min = 400 + price_max = 700 + stock_min = 2 + stock_max = 4 + availability_prob = 20 + +/datum/blackmarket_item/tech/crew_monitor + name = "Crew Monitor Board" + desc = "A crew monitor computer board, for watching your hapless crew die in real time." + item = /obj/machinery/computer/crew + + price_min = 750 + price_max = 1250 + stock_max = 3 + availability_prob = 40 + +/datum/blackmarket_item/tech/sec_cam + name = "Camera Console Board" + desc = "A camera console computer board, for when you want to invade your crew's privacy." + item = /obj/item/circuitboard/computer/security + + price_min = 750 + price_max = 1250 + stock_max = 3 + availability_prob = 40 + +/datum/blackmarket_item/tech/emag_limited + name = "Limited Cryptographic Sequencer" + desc = "These cryptographic sequencers are perfect for bypassing any mechanical safties or just breaking shit in general. They're pretty old though, and will probably burn out after a single use. Do not keep in the same wallet as your credit card." + item = /obj/item/card/emag/limited + + price_min = 750 + price_max = 1500 + stock_min = 2 + stock_max = 7 + availability_prob = 30 + +/datum/blackmarket_item/tech/joywire + name = "Pleasure Vivifier Neural Implant" + desc = "Midi-Sim's ever popular pleasure vivifier implant promises a constant rush of dopamine to get you high on life." + item = /obj/item/organ/cyberimp/brain/joywire + + price_min = 500 + price_max = 1000 + stock_min = 3 + stock_max = 5 + availability_prob = 50 + +/datum/blackmarket_item/tech/joywire/spawn_item(loc) + if(prob(10)) + var/obj/item/organ/cyberimp/brain/mindscrew/implant = ..() + implant.name = "\improper Midi-Sed pleasure vivifier" + implant.desc = "A widely popular (and addictive) implant produced by Miditeke-Sedari Tokoce that \ + stimulates the brain's pleasure centers. \ + Dramatically increases mood, but interferes with taste reception even if uninstalled. \ + Its wires seem a little loose." + return new implant(loc) + return ..() + +/datum/blackmarket_item/tech/mindscrew + name = "MNDFCK Neural Implant" + desc = "Got a tough customer who refuses to crack? This aftermarket modification of the Midi-Sed pleasure vivifier will amplify their pain receptors and get them talking fast." + item = /obj/item/organ/cyberimp/brain/mindscrew + + price_min = 500 + price_max = 1500 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/tech/arm_gun + name = "Arm Mounted Laser Cannon Implant" + desc = "A retractable laser cannon that fits inside your arm for concealment. You won't be passing any metal detector scans though." + item = /obj/item/organ/cyberimp/arm/gun/laser + + price_min = 2000 + price_max = 4000 + stock = 1 + availability_prob = 15 + spawn_weighting = FALSE diff --git a/code/modules/cargo/blackmarket/blackmarket_items/tools.dm b/code/modules/cargo/blackmarket/blackmarket_items/tools.dm index d24cbf68171d..412ba303b977 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/tools.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/tools.dm @@ -18,12 +18,23 @@ price_min = 500 price_max = 2000 + stock_min = 1 + stock_max = 3 + availability_prob = 40 + +/datum/blackmarket_item/tool/surgery_duffel + name = "Cybersun Advanced Surgical Kit" + desc = "You might say it's morally wrong to steal. I say it's justified when it's Cybersun." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery + + price_min = 2500 + price_max = 5000 stock = 1 - availability_prob = 30 + availability_prob = 25 /datum/blackmarket_item/tool/binoculars name = "Binoculars" - desc = "Increase your sight by 150% with this handy Tool!" + desc = "Twice as effective as a monocular for seeing across long distances." item = /obj/item/binoculars price_min = 50 @@ -32,6 +43,28 @@ stock_max = 4 availability_prob = 70 +/datum/blackmarket_item/tool/whetstone + name = "Whetstone" + desc = "Your blades not making the cut? This whetstone will give you the edge you need!" + item = /obj/item/sharpener + + price_min = 100 + price_max = 300 + stock_min = 2 + stock_max = 4 + availability_prob = 50 + +/datum/blackmarket_item/tool/cham_stamp + name = "Chameleon Stamp" + desc = "Can't find a forger? Look no further than these handy chameleon stamps, capable of replicating all manner of offical or government seals." + item = /obj/item/stamp/chameleon + + price_min = 50 + price_max = 200 + stock_min = 2 + stock_max = 4 + availability_prob = 80 + /datum/blackmarket_item/tool/riot_shield name = "Riot Shield" desc = "Protect yourself from an unexpected Riot at your local Police department!" @@ -47,8 +80,8 @@ desc = "30u of Thermite to assist in creating a quick access point or get away!" item = /obj/item/reagent_containers/glass/bottle/thermite - price_min = 100 - price_max = 600 + price_min = 75 + price_max = 300 stock_max = 10 availability_prob = 50 @@ -58,7 +91,7 @@ item = /obj/item/reagent_containers/glass/chem_jug/thermite price_min = 400 - price_max = 1500 + price_max = 1200 stock_max = 3 availability_prob = 20 @@ -80,7 +113,8 @@ price_min = 1000 price_max = 3000 stock = 1 - availability_prob = 20 + availability_prob = 10 + spawn_weighting = FALSE /datum/blackmarket_item/tool/jumpboots name = "Jump Boots" @@ -101,16 +135,7 @@ price_max = 2000 stock_max = 3 availability_prob = 30 - -/datum/blackmarket_item/tool/chem_master - name = "Chem Master Board" - desc = "A Chem Master board, capable of seperating and packaging reagents. Perfect for any aspiring at home chemist." - item = /obj/item/circuitboard/machine/chem_master - - price_min = 1000 - price_max = 3000 - stock = 1 - availability_prob = 30 + spawn_weighting = FALSE /datum/blackmarket_item/tool/rcd name = "Rapid Construction Device" @@ -128,7 +153,7 @@ item = /obj/item/attachment/silencer price_min = 100 - price_max = 700 + price_max = 300 stock_min = 3 stock_max = 6 availability_prob = 60 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index 3d6b32a67569..740ee2c5341b 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -12,23 +12,10 @@ stock_max = 7 availability_prob = 40 -/datum/blackmarket_item/weapon/shotgun_dart - name = "Shotgun Dart" - desc = "These handy darts can be filled up with any chemical and be shot with a shotgun! \ - Prank your friends by shooting them with laughter! \ - Not recommended for comercial use." - item = /obj/item/ammo_casing/shotgun/dart - - price_min = 10 - price_max = 50 - stock_min = 10 - stock_max = 60 - availability_prob = 40 - /datum/blackmarket_item/weapon/bone_spear name = "Bone Spear" desc = "Authentic tribal spear, made from real bones! A steal at any price, especially if you're a caveman." - item = /obj/item/spear/bonespear + item = /obj/item/melee/spear/bone price_min = 200 price_max = 300 @@ -38,13 +25,22 @@ /datum/blackmarket_item/weapon/switchblade name = "Switchblade" desc = "Extra shrap switchblades for intimidation AND style. Bandages not included if you cut yourself." - item = /obj/item/kitchen/knife/switchblade + item = /obj/item/melee/knife/switchblade price_min = 500 price_max = 700 stock_max = 3 availability_prob = 50 +/datum/blackmarket_item/weapon/powerfist + name = "Powerfist" + desc = "Need a bit more... omph in your right hook? This gas operated powerfist will put you in the heavyweight." + item = /obj/item/melee/powerfist + price_min = 1500 + price_max = 4000 + stock_max = 2 + availability_prob = 50 + /datum/blackmarket_item/weapon/sabre name = "SUNS Dueling Sabre" desc = "A mastercrafted sabre formerly wielded by a SUNS academic. It's very sharp, we had to spend hours stitching our fingers back on after getting it." @@ -55,53 +51,67 @@ stock = 1 availability_prob = 25 +/datum/blackmarket_item/weapon/mag_cleaver + name = "Magnetic Cleaver" + desc = "A prototype modification to the standard crusher, featuring an energy blade rather than the standard alloy cutting edge allowing for much more devasting detonations. The guy who sold this to us disappeared the next week, but that's probably a coincidence." + item = /obj/item/kinetic_crusher/syndie_crusher + + price_min = 1750 + price_max = 3000 + stock = 2 + availability_prob = 15 + spawn_weighting = FALSE + /datum/blackmarket_item/weapon/derringer name = "Derringer" desc = "A concealable handgun small enough to hide nearly anywhere. Uses .38 revolver rounds." item = /obj/item/gun/ballistic/derringer + price_min = 100 - price_max = 500 + price_max = 300 stock_max = 6 availability_prob = 50 -/datum/blackmarket_item/weapon/golden - name = "Golden Derringer" - desc = "A rare custom-made concealable weapon designed to fire illegal .357 rounds." - item = /obj/item/gun/ballistic/derringer/gold - price_min = 1000 - price_max = 3000 +/datum/blackmarket_item/weapon/syndi_derringer + name = ".357 Derringer" + desc = "A concealable hangun with a tasteful red and black paintjob, which makes it slightly more noticable. Chambered in .357, so you actually have a chance at killing something." + item = /obj/item/gun/ballistic/derringer/traitor + pair_item = list(/datum/blackmarket_item/ammo/a357_box) + + price_min = 300 + price_max = 800 + stock = 2 + availability_prob = 30 + +/datum/blackmarket_item/weapon/disposable_gun_disk + name = "Disposable Gun Design Disk" + desc = "An autolathe compatible fabrication disk for printing disposable guns chambered in .22 LR. Improper disposal or recycling of these guns is an enviromental felony misdemeanor in Solarian space. Luckily, we aren't in Solarian space, so litter all you want." + item = /obj/item/disk/design_disk/disposable_gun + + price_min = 1500 + price_max = 2500 stock = 1 availability_prob = 10 + spawn_weighting = FALSE /datum/blackmarket_item/weapon/himehabu name = "Himehabu Pistol" desc = "Great things come in small packages. The Himehabu is perfect for all your espionage needs. Chambered in .22lr." item = /obj/item/gun/ballistic/automatic/pistol/himehabu - pair_item = /datum/blackmarket_item/weapon/himehabu_mag + pair_item = list(/datum/blackmarket_item/ammo/himehabu_mag, /datum/blackmarket_item/ammo/himehabu_box) price_min = 100 price_max = 600 stock_max = 6 availability_prob = 50 -/datum/blackmarket_item/weapon/himehabu_mag - name = "Himehabu Magazines" - desc = "Compact 10 round .22lr magazines for use in the Himehabu pistol." - item = /obj/item/ammo_box/magazine/m22lr - - price_min = 100 - price_max = 200 - stock_min = 3 - stock_max = 6 - availability_prob = 0 - /datum/blackmarket_item/weapon/e10 name = "E-10 Laser Pistol" desc = "Sharplite letting you down? Try these classic Eoehoma Firearms E-10 Laser Pistols." item = /obj/item/gun/energy/laser/e10 price_min = 500 - price_max = 1250 + price_max = 1000 stock_max = 5 availability_prob = 20 @@ -119,55 +129,47 @@ name = "E-40 Hybrid Assault Rifle" desc = "A dual mode hybrid assault rifle made by the now defunct Eoehoma Firearms. Capable of firing both bullets AND lasers, for the discerning dealer in death. Chambered in Eoehoma .299 Caseless." item = /obj/item/gun/ballistic/automatic/assault/e40 - pair_item = /datum/blackmarket_item/weapon/e40_mag + pair_item = list(/datum/blackmarket_item/ammo/e40_mag, /datum/blackmarket_item/ammo/c299) price_min = 7000 - price_max = 15000 + price_max = 10000 stock_max = 2 - availability_prob = 20 - -/datum/blackmarket_item/weapon/e40_mag - name = "Eoehoma .299 Caseless Magazine" - desc = "A 30 round magazine for the E-40 Hybrid Rifle." - item = /obj/item/ammo_box/magazine/e40 - - price_min = 750 - price_max = 1250 - stock_min = 2 - stock_max = 6 - availability_prob = 0 + availability_prob = 10 + spawn_weighting = FALSE /datum/blackmarket_item/weapon/e50 name = "E-50 Energy Emitter" desc = "An Eoehoma Firearms E-50 Emitter cannon. For when you want a send a message. A really big message." item = /obj/item/gun/energy/laser/e50 + pair_item = (/datum/blackmarket_item/ammo/huge_weapon_cell) price_min = 4000 price_max = 7000 stock_max = 2 availability_prob = 20 + spawn_weighting = FALSE + +/datum/blackmarket_item/weapon/e60 + name = "E-60 Disabler" + desc = "Looking for a live capture? This Eoehoma Firearms E-60 disabler will get your man." + item = /obj/item/gun/energy/disabler/e60 + + price_min = 500 + price_max = 750 + stock_max = 3 + availability_prob = 40 /datum/blackmarket_item/weapon/saber_smg name = "Saber 9mm SMG" desc = "A prototype 9mm submachine gun. Most of these never got past the RND phase and into distribution. But we happen know a guy." item = /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto - pair_item = /datum/blackmarket_item/weapon/saber_mag + pair_item = list(/datum/blackmarket_item/ammo/saber_mag) - price_min = 2500 - price_max = 4200 + price_min = 2250 + price_max = 3750 stock_max = 2 availability_prob = 25 -/datum/blackmarket_item/weapon/saber_mag - name = "Saber 9mm SMG Magazines" - desc = "Magazines for use in the Saber 9mm SMG. No, they don't work as swords." - item = /obj/item/ammo_box/magazine/smgm9mm - - price_min = 500 - price_max = 1000 - stock = 2 - availability_prob = 0 - /datum/blackmarket_item/weapon/bg_16 name = "BG-16 Beam Gun" desc = "Not satisfied by Etherbor's civilian offerings? Try this military grade one we found!" @@ -184,7 +186,7 @@ item = /obj/item/gun/ballistic/rifle/illestren/sawn price_min = 600 - price_max = 1250 + price_max = 1000 stock_min = 2 stock_max = 5 availability_prob = 60 @@ -194,8 +196,8 @@ desc = "Are your arms tired from pumping Hunter's Pride shotguns? This semi-automatic combat shotgun will make killing a breeze." item = /obj/item/gun/ballistic/shotgun/automatic/combat - price_min = 2000 - price_max = 4000 + price_min = 1750 + price_max = 3500 stock_max = 3 availability_prob = 40 @@ -207,7 +209,8 @@ price_min = 1000 price_max = 2000 stock_max = 3 - availability_prob = 30 + availability_prob = 20 + spawn_weighting = FALSE /datum/blackmarket_item/weapon/mecha_syringe_gun name = "Mounted Syringe Gun" @@ -217,35 +220,25 @@ price_min = 5000 price_max = 7000 stock = 1 - availability_prob = 15 + availability_prob = 10 + spawn_weighting = FALSE /datum/blackmarket_item/weapon/mecha_hades name = "Mounted FNX-99 Carbine" - desc = "This so called \"Hades\" carbine is sure to burn brightly above the competition! Not to be confused with the \"Hades\" energy rifle. Exosuit not included." + desc = "This so called \"Phoenix\" carbine is sure to burn brightly above the competition! Exosuit not included." item = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine - pair_item = /datum/blackmarket_item/weapon/mecha_hades_ammo + pair_item = list(/datum/blackmarket_item/ammo/mecha_hades_ammo) price_min = 2000 price_max = 3000 stock_max = 2 availability_prob = 25 -/datum/blackmarket_item/weapon/mecha_hades_ammo - name = "FNX-99 Incediary Ammo" - desc = "A box of 24 incendiary shells for the FNX-99 mounted carbine." - item = /obj/item/mecha_ammo/incendiary - - price_min = 250 - price_max = 350 - stock_min = 3 - stock_max = 5 - availability_prob = 0 - /datum/blackmarket_item/weapon/model_h name = "Model H" desc = "A Model H slug pistol. The H stands for Hurt. Chambered in ferromagnetic slugs." item = /obj/item/gun/ballistic/automatic/powered/gauss/modelh - pair_item = /datum/blackmarket_item/weapon/model_h_mag + pair_item = list(/datum/blackmarket_item/ammo/model_h_mag) price_min = 2000 price_max = 3500 @@ -257,122 +250,123 @@ /obj/item/gun/ballistic/automatic/powered/gauss/modelh)) return new model_h(loc) -/datum/blackmarket_item/weapon/model_h_mag - name = "Model H Magazine" - desc = "A 10 round magazine for Model H slug pistol." - item = /obj/item/ammo_box/magazine/modelh - - price_min = 500 - price_max = 1000 - stock_max = 4 - availability_prob = 0 - /datum/blackmarket_item/weapon/sgg name = "SSG-669C Rotary Sniper Rifle" - desc = "I could tell you it's full name, but we'd be here all day. It's a sniper rifle. It shoots people from far away. Chambered in 8x58mm." + desc = "I could tell you it's full name, but we'd be here all day. It's a sniper rifle. It shoots people from far away. Chambered in 8x58mm caseless." item = /obj/item/gun/ballistic/rifle/solgov - pair_item = /datum/blackmarket_item/weapon/sgg_stripper + pair_item = list(/datum/blackmarket_item/ammo/sgg_stripper) price_min = 3000 price_max = 6000 stock = 1 availability_prob = 20 -/datum/blackmarket_item/weapon/sgg_stripper - name = "8x58mm Stripper Clip" - desc = "A five round 8x58mm stripper clip for use with the SGG-669C." - item = /obj/item/ammo_box/a858 - - price_min = 500 - price_max = 1000 - stock_min = 4 - stock_max = 6 - availability_prob = 0 - /datum/blackmarket_item/weapon/pistole_c name = "Pistole C" desc = "Pistole Compact? Pistole Caseless? Pistole Cheese? Fuck if I know. All I know is these little numbers pack a nasty sting. Chambered in 5.56 caseless." item = /obj/item/gun/ballistic/automatic/pistol/solgov/old - pair_item = /datum/blackmarket_item/weapon/pistole_c_mag + pair_item = list(/datum/blackmarket_item/ammo/pistole_c_mag) price_min = 900 price_max = 1250 stock_max = 3 availability_prob = 30 -/datum/blackmarket_item/weapon/pistole_c_mag - name = "5.56 Caseless Magazine" - desc = "A 12 round magazine for the Pistole Cheese." - item = /obj/item/ammo_box/magazine/pistol556mm - - price_min = 250 - price_max = 750 - stock_max = 2 - availability_prob = 0 - /datum/blackmarket_item/weapon/proto_gauss name = "Prototype Gauss Rifle" desc = "A prototype gauss rifle made by Nanotrasen. Perfect for making swiss cheese out of people. Chambered in ferromagnetic pellets." item = /obj/item/gun/ballistic/automatic/powered/gauss - pair_item = /datum/blackmarket_item/weapon/proto_gauss_mag + pair_item = list(/datum/blackmarket_item/ammo/proto_gauss_mag) - price_min = 3500 - price_max = 6000 + price_min = 2500 + price_max = 4000 stock = 2 availability_prob = 25 -/datum/blackmarket_item/weapon/proto_gauss_mag - name = "Prototype Gauss Rifle Magazine" - desc = "A 25 round ferromagnetic pellet magazine for the prototype gauss rifle." - item = /obj/item/ammo_box/magazine/gauss +/datum/blackmarket_item/weapon/syringe_gun + name = "Dart Pistol" + desc = "A compact dart pistol, for clandestine poisoining from a distance." + item = /obj/item/gun/syringe/syndicate - price_min = 600 - price_max = 1100 - stock_min = 2 - stock_max = 4 - availability_prob = 0 + price_min = 750 + price_max = 1500 + stock = 2 + availability_prob = 30 -/datum/blackmarket_item/weapon/tec - name = "TEC-9 Machine Pistol" - desc = "Hallelujah! It's raining lead! This 9mm machine pistol is capable of spitting out bullets at rapid pace." - item = /obj/item/gun/ballistic/automatic/pistol/tec9 - pair_item = /datum/blackmarket_item/weapon/tec_mag +/datum/blackmarket_item/weapon/mauler + name = "Mauler Machine Pistol" + desc = "This gun's got teeth! Twelve 9mm teeth to be exact. Hardly a full smile, and you'll be losing the rest pretty quick with this thing's rate of fire." + item = /obj/item/gun/ballistic/automatic/pistol/mauler + pair_item = list(/datum/blackmarket_item/ammo/mauler_mag) + + price_min = 1000 + price_max = 2000 + stock_max = 3 + availability_prob = 50 + +/datum/blackmarket_item/weapon/spitter + name = "Spitter Submachine Gun" + desc = "The aptly named Spitter won't be hitting anything outside of spitting distance. Anything in that range on the otherhand? Let's just say the bereaved will be wanting a closed casket funeral. Chambered in 9mm." + item = /obj/item/gun/ballistic/automatic/pistol/spitter + pair_item = list(/datum/blackmarket_item/ammo/spitter_mag) price_min = 1500 - price_max = 2750 + price_max = 2250 + stock_min = 1 stock_max = 2 + availability_prob = 30 + +/datum/blackmarket_item/weapon/pounder + name = "Pounder Submachine Gun" + desc = "There's a certain quality to quantity. With a massive 50 round capacity, this .22lr submachine is capable of laying down an jawdropping amount of fire." + item = /obj/item/gun/ballistic/automatic/smg/pounder + pair_item = list(/datum/blackmarket_item/ammo/pounder_mag,/datum/blackmarket_item/ammo/himehabu_box) + + price_min = 1500 + price_max = 2000 + stock = 1 availability_prob = 35 -/datum/blackmarket_item/weapon/tec_mag - name = "TEC-9 AP Magazine" - desc = "A 20 round magazine of AP ammo for the TEC-9 machine pistol." - item = /obj/item/ammo_box/magazine/tec9 +/datum/blackmarket_item/weapon/polymer + name = "Polymer Survivor Rifle" + desc = "A slapdash rifle held together by spite, dreams and a good helping of duct tape. Chambered in 7.62x40mm CLIP." + item = /obj/item/gun/ballistic/rifle/polymer + pair_item = list(/datum/blackmarket_item/ammo/polymer_clip) price_min = 600 - price_max = 1000 - stock_max = 2 - availability_prob = 0 + price_max = 1250 + stock_min = 2 + stock_max = 4 + availability_prob = 50 -/datum/blackmarket_item/weapon/scout - name = "HP Scout" - desc = "A scoped rifle chambered in .300 Magnum. As the name would imply, perfect for scouts. Try not to tunnel vision with the scope like the last guy." - item = /obj/item/gun/ballistic/rifle/scout - pair_item = /datum/blackmarket_item/weapon/scout_stripper +/datum/blackmarket_item/weapon/skm_carbine + name = "SKM-24v Carbine" + desc = "Technically this is just a sawn down SKM-24 assault rifle, but what's CLIP going to do? Sue us? Chambered in 4.6x30mm." + item = /obj/item/gun/ballistic/automatic/smg/skm_carbine + pair_item = list(/datum/blackmarket_item/ammo/carbine_mag) - price_min = 4000 - price_max = 6500 - stock = 1 + price_min = 3000 + price_max = 4500 + stock_max = 2 availability_prob = 20 -/datum/blackmarket_item/weapon/scout_stripper - name = ".300 Magnum Stripper Clip" - desc = "A 5 round .300 Magnum stripper clips for use with the HP Scout." - item = /obj/item/ammo_box/a300 +/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 = 500 - price_max = 1000 - stock_min = 4 - stock_max = 6 - availability_prob = 0 + price_min = 2500 + 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 diff --git a/code/modules/cargo/blackmarket/blackmarket_market.dm b/code/modules/cargo/blackmarket/blackmarket_market.dm index 3e055048a85b..5b0c2365b3df 100644 --- a/code/modules/cargo/blackmarket/blackmarket_market.dm +++ b/code/modules/cargo/blackmarket/blackmarket_market.dm @@ -12,11 +12,37 @@ /// Item categories available from this market, only items which are in these categories can be gotten from this market. var/list/categories = list() +/datum/blackmarket_market/New() + . = ..() + addtimer(CALLBACK(src, PROC_REF(cycle_stock)), 60 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME) + +/datum/blackmarket_market/proc/cycle_stock() + var/list/pair_items_to_handle = list() + + for(var/category in available_items) + for(var/item in available_items[category]) + if(istype(item, /datum/blackmarket_item)) + var/datum/blackmarket_item/b_item = item + b_item.cycle() + if(b_item.available == TRUE) + for(var/paired_item in b_item.pair_item) + var/datum/blackmarket_item/item_to_set = get_item_in_market(paired_item) + if(!(item_to_set in pair_items_to_handle) && !isnull(item_to_set)) + pair_items_to_handle += item_to_set + + for(var/item in pair_items_to_handle) + var/datum/blackmarket_item/b_item = item + b_item.cycle(TRUE,FALSE,FALSE,TRUE) + +// returns the blackmarket_item datum currently in the availible items list. Null if not in the list +/datum/blackmarket_market/proc/get_item_in_market(datum/blackmarket_item/item) + for(var/item_to_find in available_items[item.category]) + if(istype(item_to_find,item)) + return item_to_find + return null + /// Adds item to the available items and add it's category if it is not in categories yet. /datum/blackmarket_market/proc/add_item(datum/blackmarket_item/item, paired) - if(!prob(initial(item.availability_prob)) && !paired) - return FALSE - if(ispath(item)) item = new item() @@ -26,8 +52,10 @@ available_items[item.category] += item - if(item.pair_item) - add_item(item.pair_item, TRUE) + if(prob(initial(item.availability_prob)) || paired) + item.available = TRUE + else + item.available = FALSE return TRUE @@ -52,5 +80,6 @@ /datum/blackmarket_market/blackmarket name = "Black Market" - shipping = list(SHIPPING_METHOD_LTSRBT =50, - SHIPPING_METHOD_LAUNCH =10) + shipping = list(SHIPPING_METHOD_LTSRBT =100, + SHIPPING_METHOD_LAUNCH =10, + SHIPPING_METHOD_DEAD_DROP = 20) diff --git a/code/modules/cargo/blackmarket/blackmarket_telepad.dm b/code/modules/cargo/blackmarket/blackmarket_telepad.dm index 14211cad6878..bd8ec96e80b0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_telepad.dm +++ b/code/modules/cargo/blackmarket/blackmarket_telepad.dm @@ -3,11 +3,8 @@ icon_state = "bluespacearray" build_path = /obj/machinery/ltsrbt req_components = list( - /obj/item/stack/ore/bluespace_crystal = 2, - /obj/item/stock_parts/subspace/ansible = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/scanning_module = 2) - def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) /obj/machinery/ltsrbt name = "Long-To-Short-Range-Bluespace-Transciever" @@ -121,3 +118,17 @@ if(queue.len) recieving = pick_n_take(queue) + +/datum/crafting_recipe/blackmarket_telepad + name = "Black Market LTRSBT Board" + result = /obj/item/circuitboard/machine/ltsrbt + time = 30 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER, TOOL_MULTITOOL) + reqs = list( + /obj/item/stack/ore/bluespace_crystal = 2, + /obj/item/stack/tape/industrial = 5, + /obj/item/card/bank = 1, + /obj/item/computer_hardware/network_card = 1, + /obj/item/circuitboard = 1 + ) + category = CAT_MISC diff --git a/code/modules/cargo/blackmarket/blackmarket_uplink.dm b/code/modules/cargo/blackmarket/blackmarket_uplink.dm index 26363bf71b82..2d25c9c444f4 100644 --- a/code/modules/cargo/blackmarket/blackmarket_uplink.dm +++ b/code/modules/cargo/blackmarket/blackmarket_uplink.dm @@ -82,13 +82,14 @@ if(viewing_category && market) if(market.available_items[viewing_category]) for(var/datum/blackmarket_item/I in market.available_items[viewing_category]) - data["items"] += list(list( - "id" = I.type, - "name" = I.name, - "cost" = I.price, - "amount" = I.unlimited ? "INF" : I.stock, - "desc" = I.desc || I.name - )) + if(I.available) + data["items"] += list(list( + "id" = I.type, + "name" = I.name, + "cost" = I.price, + "amount" = I.unlimited ? "INF" : I.stock, + "desc" = I.desc || I.name + )) return data /obj/item/blackmarket_uplink/ui_static_data(mob/user) diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm index 3ddc15dfa33b..37507132a865 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -15,7 +15,7 @@ name = "Skateboard" description = "Nanotrasen has determined walking to be wasteful. Ship a skateboard to CentCom to speed operations up." reward = 900 // the tony hawk - wanted_types = list(/obj/vehicle/ridden/scooter/skateboard, /obj/item/melee/skateboard) + wanted_types = list(/obj/vehicle/ridden/scooter/skateboard, /obj/item/skateboard) /datum/bounty/item/assistant/stunprod name = "Stunprod" @@ -35,7 +35,7 @@ description = "CentCom's security forces are going through budget cuts. You will be paid if you ship a set of spears." reward = 2000 required_count = 5 - wanted_types = list(/obj/item/spear) + wanted_types = list(/obj/item/melee/spear) /datum/bounty/item/assistant/toolbox name = "Toolboxes" diff --git a/code/modules/cargo/bounties/chef.dm b/code/modules/cargo/bounties/chef.dm index d0e946ba2a6e..969a41601fbb 100644 --- a/code/modules/cargo/bounties/chef.dm +++ b/code/modules/cargo/bounties/chef.dm @@ -2,7 +2,7 @@ name = "Birthday Cake" description = "Nanotrasen's birthday is coming up! Ship them a birthday cake to celebrate!" reward = 4000 - wanted_types = list(/obj/item/reagent_containers/food/snacks/store/cake/birthday, /obj/item/reagent_containers/food/snacks/cakeslice/birthday) + wanted_types = list(/obj/item/food/cake/birthday, /obj/item/food/cakeslice/birthday) /datum/bounty/item/chef/soup name = "Soup" @@ -43,7 +43,7 @@ name = "Bread" description = "Problems with central planning have led to bread prices skyrocketing. Ship some bread to ease tensions." reward = 1000 - wanted_types = list(/obj/item/reagent_containers/food/snacks/store/bread, /obj/item/reagent_containers/food/snacks/breadslice, /obj/item/reagent_containers/food/snacks/bun, /obj/item/reagent_containers/food/snacks/pizzabread, /obj/item/reagent_containers/food/snacks/rawpastrybase) + wanted_types = list(/obj/item/food/bread, /obj/item/food/breadslice, /obj/item/reagent_containers/food/snacks/bun, /obj/item/reagent_containers/food/snacks/pizzabread, /obj/item/reagent_containers/food/snacks/rawpastrybase) /datum/bounty/item/chef/pie name = "Pie" diff --git a/code/modules/cargo/bounties/mining.dm b/code/modules/cargo/bounties/mining.dm index 4eb48b09c7cb..6527228f31ec 100644 --- a/code/modules/cargo/bounties/mining.dm +++ b/code/modules/cargo/bounties/mining.dm @@ -22,7 +22,7 @@ name = "Bone Axe" description = "Station 12 has had their fire axes stolen by marauding clowns. Ship them a bone axe as a replacement." reward = 7500 - wanted_types = list(/obj/item/fireaxe/boneaxe) + wanted_types = list(/obj/item/melee/axe/bone) /datum/bounty/item/mining/bone_armor name = "Bone Armor" @@ -48,7 +48,7 @@ description = "Central Command's canteen is undergoing budget cuts. Ship over some bone daggers so our Chef can keep working." reward = 5000 required_count = 3 - wanted_types = list(/obj/item/kitchen/knife/combat/bone) + wanted_types = list(/obj/item/melee/knife/bone) /datum/bounty/item/mining/polypore_mushroom name = "Mushroom Bowl" 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/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm index 4779886622a4..c585ecb25a98 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -9,10 +9,6 @@ /obj/item/book_of_babel, /obj/item/wisp_lantern, /obj/item/reagent_containers/glass/bottle/potion/flight, - /obj/item/katana/cursed, - /obj/item/clothing/glasses/godeye, - /obj/item/melee/ghost_sword, - /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/voodoo, /obj/item/grenade/clusterbuster/inferno, /obj/item/clothing/neck/memento_mori, @@ -21,10 +17,7 @@ /obj/item/dragons_blood, /obj/item/lava_staff, /obj/item/ship_in_a_bottle, - /obj/item/clothing/shoes/clown_shoes/banana_shoes, - /obj/item/kitchen/knife/envy, /obj/item/veilrender/vealrender, - /obj/item/nullrod/scythe/talking/necro, /obj/item/clothing/suit/armor/ascetic) /datum/export/lavaland/major //valuable chest/ruin loot and staff of storms 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/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index bbe73991f7ef..c6ee67ed091e 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -13,7 +13,7 @@ /datum/export/weapon/knife cost = 100 unit_name = "combat knife" - export_types = list(/obj/item/kitchen/knife/combat) + export_types = list(/obj/item/melee/knife/combat) /datum/export/weapon/taser diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 8098ff6b5130..e6555fc58b6e 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -7,10 +7,15 @@ var/crate_name = "crate" var/desc = ""//no desc by default var/crate_type = /obj/structure/closet/crate - // var/DropPodOnly = FALSE//only usable by the Bluespace Drop Pod via the express cargo console var/admin_spawned = FALSE var/small_item = FALSE //Small items can be grouped into a single crate. + var/faction + /* to be implmented + var/faction_discount = 15 + var/faction_locked = FALSE + */ + /datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account) var/obj/structure/closet/crate/C if(paying_account) diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index a04d62059792..8d8f47a05f65 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -31,9 +31,9 @@ cost = 250 /datum/supply_pack/ammo/m10mm_mag - name = "10mm Stechkin Magazine Crate" - desc = "Contains a 10mm magazine for the stechkin pistol, containing eight rounds." - contains = list(/obj/item/ammo_box/magazine/m10mm) + name = "10mm ringneck Magazine Crate" + desc = "Contains a 10mm magazine for the ringneck pistol, containing ten rounds." + contains = list(/obj/item/ammo_box/magazine/m10mm_ringneck) cost = 500 /datum/supply_pack/ammo/a357_mag @@ -47,12 +47,14 @@ desc = "Contains a 5.56mm magazine for the Pistole C, containing twelve rounds." contains = list(/obj/item/ammo_box/magazine/pistol556mm) cost = 750 + faction = FACTION_SOLGOV /datum/supply_pack/ammo/fms_mag name = "Ferromagnetic Slug Magazine Crate" desc = "Contains a ferromagnetic slug magazine for the Model H pistol, containing ten rounds." contains = list(/obj/item/ammo_box/magazine/modelh) cost = 750 + faction = FACTION_SOLGOV /* Shotgun ammo @@ -70,18 +72,36 @@ 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." cost = 210 contains = list(/obj/item/storage/box/techshot) +/datum/supply_pack/ammo/rubbershot + name = "Rubbershot Crate" + desc = "Contains a box of twenty-five rubbershot shells for use in crowd control or training." + cost = 500 + contains = list(/obj/item/ammo_box/a12g/rubbershot) + /* .38 ammo */ /datum/supply_pack/ammo/winchester_ammo - name = "Flaming Arrow and Detective Special .38 Ammo Boxes" + name = ".38 Ammo Boxes Crate" desc = "Contains two 50 round ammo boxes for refilling .38 weapons." cost = 250 contains = list(/obj/item/ammo_box/c38_box, @@ -125,7 +145,7 @@ name = ".45 Cobra Ammo Crate" desc = "Contains a .45 magazine for the Cobra-20, containing 24 rounds." cost = 750 - contains = list(/obj/item/ammo_box/magazine/smgm45) + contains = list(/obj/item/ammo_box/magazine/m45_cobra) /* Rifle ammo @@ -134,7 +154,7 @@ /datum/supply_pack/ammo/gal308_ammo name = "CM-GAL .308 Magazine Crate" desc = "Contains a .308 CM-GAL magazine for the CM-GAL rifle, containing ten rounds." - contains = list(/obj/item/ammo_box/magazine/gal) + contains = list(/obj/item/ammo_box/magazine/f4_308) cost = 1000 /datum/supply_pack/ammo/gar_ammo @@ -149,16 +169,10 @@ contains = list(/obj/item/ammo_box/amagpellet_claris) cost = 1000 -/datum/supply_pack/ammo/a300 - name = ".300 Magnum Stripper Clip Crate" - desc = "Contains a five round .300 Magnum stripper clip for sniper rifles such as the HP Scout." - contains = list(/obj/item/ammo_box/a300) - cost = 750 - /datum/supply_pack/ammo/ebr_ammo name = "M514 EBR .308 Magazine Crate" desc = "Contains a .308 magazine for the M514 EBR rifle, containing ten rounds." - contains = list(/obj/item/ammo_box/magazine/ebr) + contains = list(/obj/item/ammo_box/magazine/m556_42_hydra/small) cost = 1000 /datum/supply_pack/ammo/skm_ammo @@ -169,22 +183,28 @@ /datum/supply_pack/ammo/p16_ammo name = "P-16 5.56mm Magazine Crate" - desc = "Contains a 5.56mm magazine for the P-16 rifle, containing thirty rounds." + desc = "Contains a 5.56mm magazine for the P-16 rifle, containing thirty rounds. Notably, these are also compatable with the CM-82 rifle." contains = list(/obj/item/ammo_box/magazine/p16) cost = 1000 -/datum/supply_pack/ammo/a850r_ammo - name = "8x50mmR En Bloc Clip Crate" - desc = "Contains a 8x50mmR en bloc clip for rifles like the illestren rifle, containing five rounds." - contains = list(/obj/item/ammo_box/magazine/illestren_a850r) - cost = 250 +/datum/supply_pack/ammo/boomslang_ammo + name = "Boomslang-90 Magazine Crate" + desc = "Contains a 6.5 CLIP magazine for the Boomslang-90 rifle, containing five rounds." + contains = list(/obj/item/ammo_box/magazine/boomslang/short) + cost = 1000 /datum/supply_pack/ammo/a762_ammo_box name = "7.62x40mm CLIP Ammo Box Crate" - desc = "Contains a eighty-round 7.62x40mm CLIP box for the SKM rifles." + desc = "Contains a one hundred and twenty-round 7.62x40mm CLIP box for the SKM rifles." contains = list(/obj/item/ammo_box/a762_40) cost = 500 +/datum/supply_pack/ammo/a556_ammo_box + name = "5.56x42mm CLIP Ammo Box Crate" + desc = "Contains a one hundred and twenty-round 5.56x42mm CLIP box for most newer rifles." + contains = list(/obj/item/ammo_box/a556_42) + cost = 450 + /datum/supply_pack/ammo/a357_ammo_box name = ".357 Ammo Box Crate" desc = "Contains a fifty-round .357 box for revolvers such as the Scarborough Revolver and the HP Firebrand." @@ -205,7 +225,7 @@ /datum/supply_pack/ammo/c10mm_ammo_box name = "10mm Ammo Box Crate" - desc = "Contains a fifty-round 10mm box for pistols and SMGs like the Stechkin or the SkM-44(k)." + desc = "Contains a fifty-round 10mm box for pistols and SMGs like the Ringneck or the SkM-44(k)." contains = list(/obj/item/ammo_box/c10mm) cost = 250 @@ -317,6 +337,12 @@ contains = list(/obj/item/stock_parts/cell/gun/kalix) cost = 600 +/datum/supply_pack/ammo/c57x39mm_boxcrate + name = "5.7x39mm Ammo Box Crate" + desc = "Contains a fifty-round 5.7x39mm box for PDWs such as the Sidewinder." + contains = list(/obj/item/ammo_box/c57x39mm_box) + cost = 250 + /datum/supply_pack/ammo/c46x30mm_boxcrate name = "4.6x30mm Ammo Box Crate" desc = "Contains a fifty-round 4.6x30mm box for PDWs such as the WT-550." @@ -339,7 +365,14 @@ name = ".300 Ammo Box Crate" desc = "Contains a twenty-round .300 Magnum ammo box for sniper rifles such as the HP Scout." contains = list(/obj/item/ammo_box/a300_box) - cost = 500 + cost = 400 + +/datum/supply_pack/ammo/a65clip_box + name = "6.5x57mm CLIP Ammo Box Crate" + desc = "Contains a twenty-round 6.5x57mm CLIP ammo box for various sniper rifles such as the CM-F90 and the Boomslang series." + contains = list(/obj/item/ammo_box/a65clip_box) + cost = 400 + /datum/supply_pack/ammo/a4570_box name = ".45-70 Ammo Box Crate" @@ -388,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/cargo/packs/civilian.dm b/code/modules/cargo/packs/civilian.dm index 154dce436ee7..0b1d7303ca44 100644 --- a/code/modules/cargo/packs/civilian.dm +++ b/code/modules/cargo/packs/civilian.dm @@ -86,6 +86,7 @@ contains = list(/obj/item/storage/box/fountainpens) crate_name = "calligraphy crate" crate_type = /obj/structure/closet/crate/wooden + faction = FACTION_SOLGOV /datum/supply_pack/civilian/wrapping_paper name = "Festive Wrapping Paper Crate" diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index fa63529b7955..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 @@ -115,27 +108,16 @@ if(prob(30)) //Not all mafioso have mustaches, some people also find this item annoying. new /obj/item/clothing/mask/fakemoustache/italian(C) if(prob(10)) //A little extra sugar every now and then to shake things up. - new /obj/item/kitchen/knife/switchblade(C) + new /obj/item/melee/knife/switchblade(C) /datum/supply_pack/costumes_toys/mech_suits - name = "Mech Pilot's Suit Crate" + name = "Exosuit Pilot's Suit Crate" desc = "Suits for piloting big robots. Contains all three colors!" cost = 1500 //state-of-the-art technology doesn't come cheap contains = list(/obj/item/clothing/under/costume/mech_suit, /obj/item/clothing/under/costume/mech_suit/white, /obj/item/clothing/under/costume/mech_suit/blue) - crate_name = "mech pilot's suit crate" - crate_type = /obj/structure/closet/crate/wooden - -/datum/supply_pack/costumes_toys/wizard - name = "Wizard Costume Crate" - desc = "Pretend to join the Wizard Federation with this full wizard outfit! As required by interstellar law, the seller reminds potential buyers that the Wizard Federation is not real and cannot hurt you." - cost = 2000 - contains = list(/obj/item/staff, - /obj/item/clothing/suit/wizrobe/fake, - /obj/item/clothing/shoes/sandal, - /obj/item/clothing/head/wizard/fake) - crate_name = "wizard costume crate" + crate_name = "exosuit pilot's suit crate" crate_type = /obj/structure/closet/crate/wooden /datum/supply_pack/costumes_toys/formalwear @@ -154,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, @@ -170,6 +151,7 @@ /obj/item/lipstick/random) crate_name = "formalwear crate" crate_type = /obj/structure/closet/crate/wooden + faction = FACTION_SOLGOV // this is technically armor but you aren't buying it for that. it's a joke pack so it goes here /datum/supply_pack/costumes_toys/justiceinbound @@ -185,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, @@ -193,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/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index 3627633bcb77..3759dc6d8d11 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -8,25 +8,25 @@ /datum/supply_pack/emergency/internals name = "Internals Crate" - desc = "Two gas masks, two breathing masks, and four empty oxygen tanks of varying size. Oxygen canister sold separately." - cost = 500 - contains = list(/obj/item/clothing/mask/gas, - /obj/item/clothing/mask/gas, + desc = "Contains four breathing masks, three advanced emergency oxygen tanks and one large oxygen tank. Oxygen canister sold separately." + cost = 100 + contains = list(/obj/item/clothing/mask/breath, + /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath, - /obj/item/tank/internals/emergency_oxygen/empty, - /obj/item/tank/internals/emergency_oxygen/empty, - /obj/item/tank/internals/oxygen/empty, - /obj/item/tank/internals/oxygen/empty) + /obj/item/tank/internals/emergency_oxygen/engi, + /obj/item/tank/internals/emergency_oxygen/engi, + /obj/item/tank/internals/emergency_oxygen/engi, + /obj/item/tank/internals/oxygen) crate_name = "internals crate" /datum/supply_pack/emergency/plasmaman_tank - name = "Plasmaman Tank Kit" - desc = "Contains two empty plasmaman belt tanks, for when you just can't bear to refill a normal tank with plasma. Plasma canisters sold separately. Warranty void if filled with flammable gas." - cost = 500 - contains = list(/obj/item/tank/internals/plasmaman/belt/empty, - /obj/item/tank/internals/plasmaman/belt/empty) - crate_name = "plasmaman tank kit" + name = "Plasmaman Internals Crate" + desc = "Contains two plasmaman belt tanks, for when you just can't bear to refill a normal tank with plasma. Plasma canisters sold separately." + cost = 100 + contains = list(/obj/item/tank/internals/plasmaman/belt, + /obj/item/tank/internals/plasmaman/belt) + crate_name = "plasmaman internals crate" /datum/supply_pack/emergency/plasmaman_suit name = "Plasmaman Suit Kit" diff --git a/code/modules/cargo/packs/exploration.dm b/code/modules/cargo/packs/exploration.dm index 504b3b4bdbb1..5f70f2b9c2a1 100644 --- a/code/modules/cargo/packs/exploration.dm +++ b/code/modules/cargo/packs/exploration.dm @@ -8,13 +8,13 @@ /datum/supply_pack/exploration/lava name = "Lava Exploration Kit" - desc = "Contains two pickaxes, 60 lavaproof rods, and goggles to protect eyes from the heat" - cost = 1500 + desc = "Contains two pickaxes, 60 lavaproof rods, two pocket extinguishers and goggles to protect yourself from the heat." + cost = 500 contains = list( /obj/item/pickaxe/mini, /obj/item/pickaxe/mini, - /obj/item/clothing/glasses/heat, - /obj/item/clothing/glasses/heat, + /obj/item/extinguisher/mini, + /obj/item/extinguisher/mini, /obj/item/clothing/glasses/heat, /obj/item/clothing/glasses/heat, /obj/item/stack/rods/lava/thirty, @@ -22,34 +22,45 @@ ) crate_name = "Lava Exploration Kit" +/datum/supply_pack/exploration/lavaproof_ords + name ="Lavaproof Rods Crate" + desc = "Contains 60 lavaproof rods for safely traversing molten pits." + cost = 200 + contains = list( + /obj/item/stack/rods/lava/thirty, + /obj/item/stack/rods/lava/thirty, + ) + crate_name = "Lavaproof Rod Crate" + /datum/supply_pack/exploration/ice name = "Ice Exploration Kit" - desc = "Contains two pickaxes, winter clothes, and goggles to protect eyes from the cold" - cost = 1500 + desc = "Contains two pickaxes, 2 sets of winter clothes and ice hiking boots, along with goggles to protect eyes from the cold." + cost = 500 contains = list( /obj/item/pickaxe/mini, /obj/item/pickaxe/mini, /obj/item/clothing/glasses/cold, /obj/item/clothing/glasses/cold, - /obj/item/clothing/glasses/cold, - /obj/item/clothing/glasses/cold, - /obj/item/clothing/shoes/winterboots, - /obj/item/clothing/shoes/winterboots, - /obj/item/clothing/shoes/winterboots, - /obj/item/clothing/shoes/winterboots, + /obj/item/clothing/suit/hooded/wintercoat, + /obj/item/clothing/suit/hooded/wintercoat, + /obj/item/clothing/shoes/winterboots/ice_boots, + /obj/item/clothing/shoes/winterboots/ice_boots, ) crate_name = "Ice Exploration Kit" /datum/supply_pack/exploration/jungle name = "Jungle Exploration Kit" - desc = "Contains hatchets, picks, and antivenom, great for dense jungles!" - cost = 750 + desc = "Contains a hatchets, two picks and lanterns, plus antivenom pills, great for dense jungles!" + cost = 500 contains = list( /obj/item/pickaxe/mini, /obj/item/pickaxe/mini, + /obj/item/flashlight/lantern, + /obj/item/flashlight/lantern, /obj/item/storage/pill_bottle/charcoal, /obj/item/storage/pill_bottle/charcoal, /obj/item/hatchet, + /obj/item/hatchet, ) crate_name = "Jungle Exploration Kit" @@ -76,16 +87,56 @@ crate_name = "Beach Kit" /* - Heavy Duty Exploration Gear + General Exploration Gear */ /datum/supply_pack/exploration/capsules - name = "Bluespace Shelter Capsules" - desc = "A trio of Bluespace Shelter Capsules, for instant shelter in rough situations." - cost = 3000 + name = "Bluespace Shelter Capsule" + desc = "Contains a Bluespace Shelter Capsule, for instant shelter in rough situations." + cost = 500 contains = list( - /obj/item/survivalcapsule, - /obj/item/survivalcapsule, - /obj/item/survivalcapsule, + /obj/item/survivalcapsule ) +/datum/supply_pack/exploration/binocular + name = "Binoculars" + desc = "One pair of binoculars for surveying terrain." + cost = 200 + contains = list( + /obj/item/binoculars + ) + +/datum/supply_pack/exploration/anom_neutralizer + name = "Anomaly Neutralizer" + desc = "A single use anomaly neutralizer for stabalizing hazardous anomalies." + cost = 250 + contains = list( + /obj/item/anomaly_neutralizer + ) + +/datum/supply_pack/exploration/mineral_scanner + name = "Underground Mineral Scanner" + desc = "Contains an underground mineral scanner for locating veins of ore beneath the earth. Deep core laser drill for extracting said ores not included." + cost = 250 + contains = list( + /obj/item/pinpointer/mineral + ) + +/datum/supply_pack/exploration/gps + name = "GPS" + desc = "Contains a GPS device, useful for finding lost things and not getting lost yourself." + cost = 100 + contains = list( + /obj/item/gps + ) + +/datum/supply_pack/exploration/flares + name = "Flare Supply Pack" + desc = "Contains 4 boxes of flares (28 total)! Great for lighting things up." + cost = 100 + contains = list( + /obj/item/storage/box/flares, + /obj/item/storage/box/flares, + /obj/item/storage/box/flares, + /obj/item/storage/box/flares, + ) diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index c7d8b77f46a5..3eb7f33cbe4c 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -8,7 +8,7 @@ /datum/supply_pack/food/donkpockets name = "Donk Pocket Variety Crate" desc = "Featuring a line up of Donk Co.'s most popular pastry!" - cost = 2000 + cost = 500 contains = list(/obj/item/storage/box/donkpockets/donkpocketspicy, /obj/item/storage/box/donkpockets/donkpocketteriyaki, /obj/item/storage/box/donkpockets/donkpocketpizza, @@ -16,6 +16,7 @@ /obj/item/storage/box/donkpockets/donkpockethonk) crate_name = "donk pocket crate" crate_type = /obj/structure/closet/crate/freezer + faction = FACTION_SYNDICATE /datum/supply_pack/food/donkpockets/fill(obj/structure/closet/crate/C) for(var/i in 1 to 3) @@ -25,7 +26,7 @@ /datum/supply_pack/food/pizza name = "Pizza Crate" desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99.5% anomaly-free!" - cost = 3000// Best prices this side of the galaxy. + cost = 750// Best prices this side of the galaxy. contains = list(/obj/item/pizzabox/margherita, /obj/item/pizzabox/mushroom, /obj/item/pizzabox/meat, @@ -42,6 +43,19 @@ fourfiveeight.boxtag = P.boxtag qdel(P) +/datum/supply_pack/food/ration + name = "Ration Crate" + desc = "6 standerd issue rations." + cost = 500 + contains = list(/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) + crate_name = "ration crate" + crate_type = /obj/structure/closet/crate + /* Ingredients */ @@ -49,13 +63,13 @@ /datum/supply_pack/food/ingredients_basic 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 = 1000 - 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, + cost = 300 + 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 @@ -63,16 +77,17 @@ crate_name = "food crate" crate_type = /obj/structure/closet/crate/freezer -/datum/supply_pack/food/ingredients_specialized - name = "Advanced Cooking Crate" - desc = "For the discerning chef. Contains a bottle of enzyme, a salt shaker, a pepper mill, a bottle of ketchup, a bottle of hot sauce, and a bottle of cream." - cost = 2000 - 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, - /obj/item/reagent_containers/food/drinks/bottle/cream +/datum/supply_pack/food/ingredients_condiments + 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/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/condiment/bbqsauce ) crate_name = "condiments crate" crate_type = /obj/structure/closet/crate/freezer @@ -80,7 +95,7 @@ /datum/supply_pack/food/ingredients_randomized name = "Exotic Meat Crate" desc = "The best cuts in the whole galaxy. Probably." - cost = 1000 + cost = 500 contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime, /obj/item/reagent_containers/food/snacks/meat/slab/killertomato, /obj/item/reagent_containers/food/snacks/meat/slab/bear, @@ -103,7 +118,7 @@ /datum/supply_pack/food/ingredients_randomized/meat name = "Standard Meat Crate" desc = "Less interesting cuts of meat, but filling nonetheless." - cost = 1500 + cost = 300 contains = list(/obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab/chicken, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, @@ -116,7 +131,7 @@ /datum/supply_pack/food/ingredients_randomized/vegetables name = "Vegetables Crate" desc = "Grown in vats." - cost = 1300 + cost = 250 contains = list(/obj/item/reagent_containers/food/snacks/grown/chili, /obj/item/reagent_containers/food/snacks/grown/corn, /obj/item/reagent_containers/food/snacks/grown/tomato, @@ -132,7 +147,7 @@ /datum/supply_pack/food/ingredients_randomized/fruits name = "Fruit Crate" desc = "Rich of vitamins, may contain oranges." - cost = 1500 + cost = 250 contains = list(/obj/item/reagent_containers/food/snacks/grown/citrus/lime, /obj/item/reagent_containers/food/snacks/grown/citrus/orange, /obj/item/reagent_containers/food/snacks/grown/citrus/lemon, @@ -147,7 +162,7 @@ /datum/supply_pack/food/ingredients_randomized/grains name = "Grains Crate" desc = "A crate full of various grains. How interesting." - cost = 1000 + cost = 250 contains = list(/obj/item/reagent_containers/food/snacks/grown/wheat, /obj/item/reagent_containers/food/snacks/grown/wheat, /obj/item/reagent_containers/food/snacks/grown/wheat, //Weighted to be more common @@ -162,11 +177,11 @@ /datum/supply_pack/food/ingredients_randomized/bread name = "Bread Crate" desc = "A crate full of various breads. Bready to either be eaten or made into delicious meals." - cost = 1000 - contains = list(/obj/item/reagent_containers/food/snacks/store/bread/plain, - /obj/item/reagent_containers/food/snacks/breadslice/plain, - /obj/item/reagent_containers/food/snacks/breadslice/plain, - /obj/item/reagent_containers/food/snacks/breadslice/plain, //Weighted to be more common + cost = 300 + contains = list(/obj/item/food/bread/plain, + /obj/item/food/breadslice/plain, + /obj/item/food/breadslice/plain, + /obj/item/food/breadslice/plain, //Weighted to be more common /obj/item/reagent_containers/food/snacks/bun, /obj/item/reagent_containers/food/snacks/tortilla, /obj/item/reagent_containers/food/snacks/pizzabread @@ -181,17 +196,16 @@ /datum/supply_pack/food/grill name = "Grilling Starter Kit" desc = "Sometimes the stresses of the world are too much to bear. Some times, for God's sake, you just want to grill. This crate is for those times." - cost = 5000 + cost = 1000 contains = list(/obj/item/stack/sheet/mineral/coal/five, - /obj/machinery/grill/unwrenched, - /obj/item/reagent_containers/food/drinks/soda_cans/xeno_energy) + /obj/machinery/grill/unwrenched) crate_name = "grilling starter kit crate" crate_type = /obj/structure/closet/crate/large /datum/supply_pack/food/grillfuel name = "Grilling Fuel Kit" desc = "Contains propane and propane accessories. (Note: doesn't contain any actual propane.)" - cost = 2000 + cost = 250 contains = list(/obj/item/stack/sheet/mineral/coal/ten) crate_name = "grilling fuel kit crate" @@ -202,7 +216,7 @@ /datum/supply_pack/food/hydrotank name = "Hydroponics Backpack Crate" desc = "Bring on the flood with this high-capacity backpack crate. Contains 500 units of life-giving H2O." - cost = 1000 + cost = 750 contains = list(/obj/item/watertank) crate_name = "hydroponics backpack crate" crate_type = /obj/structure/closet/crate/hydroponics @@ -210,7 +224,7 @@ /datum/supply_pack/food/gardening name = "Gardening Crate" desc = "Supplies for growing a great garden! Contains two bottles of ammonia, two Plant-B-Gone spray bottles, a hatchet, cultivator, plant analyzer, as well as a pair of leather gloves and a botanist's apron." - cost = 1500 + cost = 500 contains = list(/obj/item/reagent_containers/spray/plantbgone, /obj/item/reagent_containers/spray/plantbgone, /obj/item/reagent_containers/glass/bottle/ammonia, @@ -227,7 +241,7 @@ /datum/supply_pack/food/weedcontrol name = "Weed Control Crate" desc = "Contains a scythe, gasmask, and two anti-weed defoliant grenades, for when your garden grows out of control." - cost = 1500 + cost = 750 contains = list(/obj/item/scythe, /obj/item/clothing/mask/gas, /obj/item/grenade/chem_grenade/antiweed, @@ -238,7 +252,7 @@ /datum/supply_pack/food/seeds name = "Seeds Crate" desc = "Big things have small beginnings. Contains fourteen different seeds." - cost = 2000 + cost = 750 contains = list(/obj/item/seeds/chili, /obj/item/seeds/cotton, /obj/item/seeds/berry, @@ -259,7 +273,7 @@ /datum/supply_pack/food/exoticseeds name = "Exotic Seeds Crate" desc = "Any entrepreneuring botanist's dream. Contains eleven different seeds, including two mystery seeds!" - cost = 3000 + cost = 1000 contains = list(/obj/item/seeds/nettle, /obj/item/seeds/plump, /obj/item/seeds/liberty, @@ -281,7 +295,7 @@ /datum/supply_pack/food/beekeeping_suits name = "Beekeeper Suit Crate" desc = "Bee business booming? Better be benevolent and boost botany by bestowing bi-Beekeeper-suits! Contains two beekeeper suits and matching headwear." - cost = 2000 + cost = 1000 contains = list(/obj/item/clothing/head/beekeeper_head, /obj/item/clothing/suit/beekeeper_suit, /obj/item/clothing/head/beekeeper_head, @@ -292,7 +306,7 @@ /datum/supply_pack/food/beekeeping_fullkit name = "Beekeeping Starter Crate" desc = "BEES BEES BEES. Contains three honey frames, a beekeeper suit and helmet, flyswatter, bee house, and, of course, a pure-bred Nanotrasen-Standardized Queen Bee!" - cost = 3000 + cost = 2000 contains = list(/obj/structure/beebox/unwrenched, /obj/item/honey_frame, /obj/item/honey_frame, @@ -303,17 +317,3 @@ /obj/item/melee/flyswatter) crate_name = "beekeeping starter crate" crate_type = /obj/structure/closet/crate/hydroponics - -/datum/supply_pack/food/ration - name = "Ration Crate" - desc = "6 standerd issue rations." - cost = 2000 - contains = list(/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) - crate_name = "ration crate" - crate_type = /obj/structure/closet/crate - diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index 4aaf2f60bef8..4074f76194d3 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -12,6 +12,7 @@ cost = 300 contains = list(/obj/item/storage/pistolcase/disposable) crate_name = "disposable gun crate" + faction = FACTION_FRONTIER /datum/supply_pack/gun/derringer name = ".38 Derringer Crate" @@ -19,43 +20,55 @@ cost = 350 contains = list(/obj/item/storage/pistolcase/derringer) crate_name = "derringer crate" + faction = FACTION_SRM /datum/supply_pack/gun/commanders name = "Commander Pistol Crate" desc = "Contains a modified Candor 'Commander' pistol, produced by Nanotrasen and chambered in 9mm." - cost = 1000 + cost = 750 contains = list(/obj/item/storage/pistolcase/commander) + faction = FACTION_NT -/datum/supply_pack/gun/makarovs - name = "Stechkin Pistol Crate" - desc = "Contains a concealable stechkin pistol, produced by Scarborough Arms and chambered in 10mm." - cost = 1250 - contains = list(/obj/item/storage/pistolcase/stechkin) +/datum/supply_pack/gun/ringneck + name = "Ringneck Pistol Crate" + desc = "Contains a civillian variant of the Ringneck pistol, produced by Scarborough Arms and chambered in 10mm." + cost = 1000 + contains = list(/obj/item/storage/pistolcase/ringneck) + faction = FACTION_SYNDICATE /datum/supply_pack/gun/candors name = "Candor Pistol Crate" desc = "Contains a Candor pistol, the trusty sidearm of any spacer, produced by Hunter's Pride and chambered in .45 ACP." - cost = 1250 + cost = 1000 contains = list(/obj/item/storage/pistolcase/candor) + faction = FACTION_SRM /datum/supply_pack/gun/pepperbox name = "HP Firebrand Pepperbox Revolver Crate" desc = "Contains a concealable pepperbox revolver manufactured by the Saint Roumain Militia, chambered in .357." cost = 1250 contains = list(/obj/item/storage/pistolcase/firebrand) + faction = FACTION_SRM /datum/supply_pack/gun/detrevolver name = "Hunter's Pride Detective Revolver Crate" desc = "Contains a concealable revolver favored by police departments around the sector, chambered in .38." cost = 600 contains = list(/obj/item/storage/pistolcase/detective) + faction = FACTION_SRM /datum/supply_pack/gun/shadowrevolver name = "Shadow Revolver Crate" desc = "Contains a concealable Shadow revolver, chambered in .44 Roumain." cost = 1000 contains = list(/obj/item/storage/pistolcase/shadow) + faction = FACTION_SRM +/datum/supply_pack/gun/viperrevolver + name = "Viper-23 Revolver Crate" + desc = "Contains a a civillian variant of the Viper revolver, chambered in .357 magnum." + cost = 2500 + contains = list(/obj/item/storage/pistolcase/viper) /* Energy @@ -115,6 +128,14 @@ cost = 1000 contains = list(/obj/item/storage/guncase/doublebarrel) crate_name = "shotguns crate" + faction = FACTION_SRM + +/datum/supply_pack/gun/conflagration + name = "Conflagration Lever Action Shotgun Crate" + desc = "For when you need to deal with 6 hooligans and look good doing it. Contains one lever-action shotgun, with a 6 round capacity." + cost = 1500 + contains = list(/obj/item/storage/guncase/conflagration) + crate_name = "shotguns crate" /datum/supply_pack/gun/hellfire_shotgun name = "Hellfire Shotgun Crate" @@ -122,6 +143,7 @@ cost = 2000 contains = list(/obj/item/storage/guncase/hellfire) crate_name = "shotgun crate" + faction = FACTION_SRM /datum/supply_pack/gun/brimstone_shotgun name = "Brimstone Shotgun Crate" @@ -129,6 +151,7 @@ cost = 2000 contains = list(/obj/item/storage/guncase/brimstone) crate_name = "shotgun crate" + faction = FACTION_SRM /* Rifles @@ -140,6 +163,14 @@ cost = 750 contains = list(/obj/item/storage/guncase/winchester) crate_name = "rifle crate" + faction = FACTION_SRM + +/datum/supply_pack/gun/absolution + name = "Absolution Lever Action Rifle Crate" + desc = "Contains a powerful lever-action rifle for hunting larger wildlife. Chambered in .357." + cost = 2000 + contains = list(/obj/item/storage/guncase/absolution) + crate_name = "shotguns crate" /datum/supply_pack/gun/illestren name = "Illestren Rifle Crate" @@ -147,48 +178,62 @@ cost = 1250 contains = list(/obj/item/storage/guncase/illestren) crate_name = "rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/beacon - name = "Contender Break Action Rifle Crate" + name = "Beacon Break Action Rifle Crate" desc = "Contains a single shot break action rifle to hunt wildlife that annoys you in particular. Chambered in devastating .45-70 rounds. Warranty voided if sawed off." cost = 2250 contains = list(/obj/item/storage/guncase/beacon) crate_name = "rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/scout name = "Scout Sniper Rifle Crate" desc = "Contains a traditional scoped rifle to hunt wildlife and big game from a respectful distance. Chambered in powerful .300 Magnum." - cost = 5500 + cost = 4000 contains = list(/obj/item/storage/guncase/scout) crate_name = "rifle crate" + faction = FACTION_SRM + +/datum/supply_pack/gun/boomslang90 + name = "Boomslang-90 Rifle Crate" + desc = "Contains a civillian variant of the Boomslang Sniper rifle- modified with a 2x scope, rather than a sniper scope. Chambered in the powerful 6.5x57mm CLIP." + cost = 5000 + contains = list(/obj/item/storage/guncase/boomslang) + crate_name = "rifle crate" /datum/supply_pack/gun/cobra20 name = "Cobra-20 SMG Crate" - desc = "Contains a .45 submachine gun, manufactured by Scaraborough Arms and chambered in .45" - cost = 6000 + desc = "Contains a civillian variant of the Cobra SMG, manufactured by Scaraborough Arms and chambered in .45" + cost = 3000 contains = list(/obj/item/storage/guncase/cobra) crate_name = "SMG crate" + faction = FACTION_SRM /datum/supply_pack/gun/wt550 name = "WT-550 Auto Rifle Crate" desc = "Contains a high-powered, automatic personal defense weapon chambered in 4.6x30mm." - cost = 6000 + cost = 4000 contains = list(/obj/item/storage/guncase/wt550) crate_name = "auto rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/p16 name = "P16 Assault Rifle Crate" desc = "Contains a high-powered, automatic rifle chambered in 5.56mm." - cost = 9000 + cost = 5000 contains = list(/obj/item/storage/guncase/p16) crate_name = "auto rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/skm name = "SKM-24 Rifle Crate" desc = "Contains a high-powered, automatic rifle chambered in 7.62x40mm CLIP." - cost = 9000 + cost = 5000 contains = list(/obj/item/storage/guncase/skm) crate_name = "auto rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/attachment/rail_light name = "Tactical Rail Light Crate" diff --git a/code/modules/cargo/packs/machinery.dm b/code/modules/cargo/packs/machinery.dm index f25e4818329e..6e5a12f30f5b 100644 --- a/code/modules/cargo/packs/machinery.dm +++ b/code/modules/cargo/packs/machinery.dm @@ -168,18 +168,6 @@ crate_name = "holofield generator crate" crate_type = /obj/structure/closet/crate/engineering -/datum/supply_pack/machinery/blackmarket_telepad - name = "Black Market LTSRBT" - desc = "Need a faster and better way of transporting your illegal goods from and to the sector? Fear not, the Long-To-Short-Range-Bluespace-Transceiver (LTSRBT for short) is here to help. Contains a LTSRBT circuit, two bluespace crystals, and one ansible." - cost = 1000 - contains = list( - /obj/item/circuitboard/machine/ltsrbt, - /obj/item/stack/ore/bluespace_crystal/artificial, - /obj/item/stack/ore/bluespace_crystal/artificial, - /obj/item/stock_parts/subspace/ansible - ) - crate_type = /obj/structure/closet/crate/science - /datum/supply_pack/machinery/shuttle_in_a_box name = "Shuttle in a Box" desc = "The bare minimum amount of machine and computer boards required to create a working spacecraft." diff --git a/code/modules/cargo/packs/material.dm b/code/modules/cargo/packs/material.dm index ee0f00e42d96..e396854387de 100644 --- a/code/modules/cargo/packs/material.dm +++ b/code/modules/cargo/packs/material.dm @@ -1,5 +1,6 @@ /datum/supply_pack/material group = "Materials & Sheets" + faction = FACTION_NS_LOGI /* Basic construction materials @@ -110,3 +111,9 @@ contains = list(/obj/item/stack/sheet/mineral/wood/fifty) crate_name = "wood planks crate" +/datum/supply_pack/material/concrete_mix + name = "Concrete Bag" + desc = "Feeling lazy? Need a structure and quick? Use F.O.O.D.'s near-instant concrete mix! Just add water." + cost = 500 + contains = list(/obj/item/reagent_containers/glass/concrete_bag) + crate_name = "Concrete Mix" diff --git a/code/modules/cargo/packs/mechs.dm b/code/modules/cargo/packs/mechs.dm index 937126a86361..744e9f67e2f2 100644 --- a/code/modules/cargo/packs/mechs.dm +++ b/code/modules/cargo/packs/mechs.dm @@ -1,5 +1,5 @@ /datum/supply_pack/mech - group = "Mech and Exosuit Construction" + group = "Exosuit Construction" crate_type = /obj/structure/closet/crate/large @@ -97,12 +97,12 @@ Mech Equipment */ /datum/supply_pack/mech/equipment - name = "Mech equipment crate" + name = "Exosuit equipment crate" crate_type = /obj/structure/closet/crate/secure/gear - crate_name = "mech equipment" + crate_name = "exosuit equipment" /datum/supply_pack/mech/equipment/drill - name = "Mech drill kit" + name = "Exosuit drill kit" desc = "Contains one mechanized drill for heavy duty digging." cost = 500 contains = list( @@ -110,7 +110,7 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/diamond_drill - name = "Mech diamond drill kit" + name = "Exosuit diamond drill kit" desc = "Contains mechanized diamond drill, for the enterprising prospector!" cost = 750 contains = list( @@ -118,31 +118,31 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/scanner - name = "Mech scanner kit" - desc = "An electronic mining scanner, graded to interface with a mech." + name = "Exosuit scanner kit" + desc = "An electronic mining scanner, graded to interface with an exosuit." cost = 350 contains = list( /obj/item/mecha_parts/mecha_equipment/mining_scanner ) /datum/supply_pack/mech/equipment/plasma_gen - name = "Mech generator kit" - desc = "A plasma-fueled generator for a mech, ideal for long operations." + name = "Exosuit generator kit" + desc = "A plasma-fueled generator for an exosuit, ideal for long operations." cost = 1000 contains = list( /obj/item/mecha_parts/mecha_equipment/generator ) /datum/supply_pack/mech/equipment/nuclear_gen - name = "Mech nuclear generator kit" - desc = "Contains a uranium-fueled generator for a mech, ideal for polluting the environment." + name = "Exosuit nuclear generator kit" + desc = "Contains a uranium-fueled generator for an exosuit, ideal for polluting the environment." cost = 1250 contains = list( /obj/item/mecha_parts/mecha_equipment/generator/nuclear ) /datum/supply_pack/mech/equipment/tesla_energy_relay - name = "Mech tesla relay kit" + name = "Exosuit tesla relay kit" desc = "Contains an advanced exosuit module which draws power from nearby APCs." cost = 1750 contains = list( @@ -150,7 +150,7 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/clamp - name = "Mech clamp kit" + name = "Exosuit clamp kit" desc = "Contains a clamp designed for mechanized freight hauling." cost = 350 contains = list( @@ -158,7 +158,7 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/extinguisher - name = "Mech extinguisher kit" + name = "Exosuit extinguisher kit" desc = "Contains a heavy duty fire extinguisher, for heavy duty firefighting." cost = 250 contains = list( @@ -166,7 +166,7 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/cable_layer - name = "Mech RCL Kit" + name = "Exosuit RCL Kit" desc = "Contains a \"rapid cable layer\" for laying down long lengths of wire." cost = 250 contains = list( @@ -174,7 +174,7 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/mech_sleeper - name = "Mech Mounted Sleeper Kit" + name = "Exosuit Mounted Sleeper Kit" desc = "Contains a mounted sleeper device, used for retrieving and stabilizing patients." cost = 1000 contains = list( @@ -182,14 +182,14 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/beam_gun - name = "Mech Beam Gun Kit" + name = "Exosuit Beam Gun Kit" desc = "Contains an advanced mounted medical beamgun, capable of alleviating wounds to targets." cost = 7000 contains = list( /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam ) /datum/supply_pack/mech/equipment/rcs - name = "Mech RCS kit" + name = "Exosuit RCS kit" desc = "A gas fueled RCS pack, ideal for mechanized space operation." cost = 800 contains = list( @@ -205,7 +205,7 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/melee_armor_booster - name = "Mech CCW armor kit" + name = "Exosuit CCW armor kit" desc = "A \"close combat weaponry\" module designed to deflect melee attacks." cost = 750 contains = list( @@ -213,25 +213,34 @@ Mech Equipment ) /datum/supply_pack/mech/equipment/projectile_armor_booster - name = "Mech projectile armor kit" + name = "Exosuit projectile armor kit" desc = "A protective exosuit module designed to deflect ranged attacks." cost = 1000 contains = list( /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 */ /datum/supply_pack/mech/weapon - name = "Mech weapons crate" + name = "Exosuit weapons crate" crate_type = /obj/structure/closet/crate/secure/weapon - crate_name = "mech weapon crate" + crate_name = "exosuit weapon crate" /datum/supply_pack/mech/weapon/pka - name = "Mech Mounted Proto-Kinetic Accelerator kit" - desc = "A ranged mining attachment for any mech." + name = "Exosuit-Mounted Proto-Kinetic Accelerator kit" + desc = "A ranged mining attachment for any exosuit." cost = 750 contains = list( /obj/item/mecha_parts/mecha_equipment/weapon/energy/mecha_kineticgun @@ -262,7 +271,7 @@ weapons ) /datum/supply_pack/mech/weapon/scattershot - name = "LBX AC 10 kit" + name = "LBX-10 kit" desc = "Contains a \"Scattershot\" gun to mount on combat exosuits." cost = 1750 contains = list( @@ -270,7 +279,7 @@ weapons ) /datum/supply_pack/mech/weapon/lmg - name = "Ultra AC 2 kit" + name = "UMG-2 kit" desc = "Contains a mounted gun which fires in three round bursts." cost = 2250 contains = list( @@ -290,21 +299,21 @@ ammo */ /datum/supply_pack/mech/ammo - name = "Mech ammo crate" + name = "Exosuit ammo crate" crate_type = /obj/structure/closet/crate/secure/gear - crate_name = "mech ammo crate" + crate_name = "exosuit ammo crate" /datum/supply_pack/mech/ammo/scattershot_ammo - name = "LBX AC 10 ammo box" - desc = "Contains a fourty-round box of upscaled buckshot, to be loaded directly in a mounted LBX AC 10." + name = "LBX-10 ammo box" + desc = "Contains a fourty-round box of upscaled buckshot, to be loaded directly in a mounted LBX-10." cost = 500 contains = list( /obj/item/mecha_ammo/scattershot ) /datum/supply_pack/mech/ammo/lmg_ammo - name = "Ultra AC 2 ammo box" - desc = "Contains a three hundred-round box of heavy ammunition for the Ultra AC 2." + name = "UMG-2 ammo box" + desc = "Contains a three hundred-round box of heavy ammunition for the UMG-2." cost = 750 contains = list( /obj/item/mecha_ammo/lmg diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 08b576937138..e0ca4f139258 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -9,42 +9,42 @@ /datum/supply_pack/medical/firstaid_single name = "First Aid Kit Single-Pack" desc = "Contains one first aid kit for healing most types of wounds." - cost = 750 + cost = 400 small_item = TRUE contains = list(/obj/item/storage/firstaid/regular) /datum/supply_pack/medical/firstaidbruises_single name = "Bruise Treatment Kit Single-Pack" desc = "Contains one first aid kit focused on healing bruises and broken bones." - cost = 1250 + cost = 700 small_item = TRUE contains = list(/obj/item/storage/firstaid/brute) /datum/supply_pack/medical/firstaidburns_single name = "Burn Treatment Kit Single-Pack" desc = "Contains one first aid kit focused on healing severe burns." - cost = 1250 + cost = 700 small_item = TRUE contains = list(/obj/item/storage/firstaid/fire) /datum/supply_pack/medical/firstaidoxygen_single name = "Oxygen Deprivation Kit Single-Pack" desc = "Contains one first aid kit focused on helping oxygen deprivation victims." - cost = 1250 + cost = 500 small_item = TRUE contains = list(/obj/item/storage/firstaid/o2) /datum/supply_pack/medical/firstaidtoxins_single name = "Toxin Treatment Kit Single-Pack" desc = "Contains one first aid kit focused on healing damage dealt by heavy toxins." - cost = 1250 + cost = 500 small_item = TRUE contains = list(/obj/item/storage/firstaid/toxin) /datum/supply_pack/medical/firstaid_rad_single name = "Radiation Treatment Kit Single-Pack" desc = "Contains one first aid kit focused on reducing the damage done by radiation." - cost = 1000 + cost = 500 small_item = TRUE contains = list(/obj/item/storage/firstaid/radiation) @@ -75,6 +75,15 @@ /obj/item/roller) crate_name = "surgical supplies crate" + +/datum/supply_pack/medical/anesthetic + name = "Anesthetics Crate" + desc = "Contains a standard anesthetics tank, for standard surgical procedures." + cost = 500 + contains = list(/obj/item/clothing/mask/breath/medical, + /obj/item/tank/internals/anesthetic) + crate_name = "anesthetics crate" + /* Bundles and supplies */ @@ -123,6 +132,7 @@ /obj/item/reagent_containers/pill/neurine, /obj/item/vending_refill/medical) crate_name = "medical surplus crate" + faction = FACTION_SUNS /datum/supply_pack/medical/surplus/fill(obj/structure/closet/crate/C) for(var/i in 1 to 7) @@ -150,6 +160,7 @@ /obj/item/reagent_containers/glass/bottle/mutagen) crate_name = "virus crate" crate_type = /obj/structure/closet/crate/medical + faction = FACTION_SUNS /datum/supply_pack/medical/salglucanister name = "Heavy-Duty Saline Canister" diff --git a/code/modules/cargo/packs/sec_supply.dm b/code/modules/cargo/packs/sec_supply.dm index 8ff09a5dc38a..f0f062160c79 100644 --- a/code/modules/cargo/packs/sec_supply.dm +++ b/code/modules/cargo/packs/sec_supply.dm @@ -30,6 +30,13 @@ cost = 2000 crate_name = "security barriers crate" +/datum/supply_pack/sec_supply/empty_sandbags + name = "Empty Sandbags" + desc = "Contains one box of seven empty sandbags for deployable cover in the field. Sand not included." + contains = list(/obj/item/storage/box/emptysandbags) + cost = 150 + crate_name = "sandbag crate" + /datum/supply_pack/sec_supply/wall_flash name = "Wall-Mounted Flash Crate" desc = "Contains four wall-mounted flashes." @@ -65,10 +72,23 @@ name = "Survival Knives Crate" desc = "Contains three sharpened survival knives. Each knife guaranteed to fit snugly inside any galactic-standard boot." cost = 500 - contains = list(/obj/item/kitchen/knife/combat/survival, - /obj/item/kitchen/knife/combat/survival, - /obj/item/kitchen/knife/combat/survival) + contains = list(/obj/item/melee/knife/survival, + /obj/item/melee/knife/survival, + /obj/item/melee/knife/survival) + crate_name = "combat knife crate" + +/* +/datum/supply_pack/sec_supply/machete + name = "Stampted Steel Machete Crate" + desc = "Contains five mass produced machetes. A perfect choice for crews on a budget." + cost = 500 + contains = list(/obj/item/melee/sword/mass, + /obj/item/melee/sword/mass, + /obj/item/melee/sword/mass, + /obj/item/melee/sword/mass, + /obj/item/melee/sword/mass) crate_name = "combat knife crate" +*/ /datum/supply_pack/sec_supply/fire name = "Incendiary Weapons Crate" @@ -84,6 +104,7 @@ ) crate_name = "incendiary weapons crate" crate_type = /obj/structure/closet/crate/secure/plasma + faction = FACTION_NGR /* Stamina / PVP weapons (intentionally overpriced due to odd balance position of stamina weapons) diff --git a/code/modules/cargo/packs/spacesuit_armor.dm b/code/modules/cargo/packs/spacesuit_armor.dm index 8346ea00b06e..581a7f2587b4 100644 --- a/code/modules/cargo/packs/spacesuit_armor.dm +++ b/code/modules/cargo/packs/spacesuit_armor.dm @@ -16,7 +16,7 @@ /datum/supply_pack/spacesuit_armor/pilot_spacesuit name = "Pilot Space Suit Crate" - desc = "One pilot space suit, for improved mobility in mechs." + desc = "One pilot space suit, for improved mobility in exosuits." cost = 750 contains = list(/obj/item/clothing/suit/space/pilot, /obj/item/clothing/head/helmet/space/pilot/random) @@ -29,6 +29,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/mining/independent) crate_name = "mining hardsuit crate" crate_type = /obj/structure/closet/crate/secure/plasma + faction = FACTION_INDEPENDENT /datum/supply_pack/spacesuit_armor/med_hardsuit name = "Medical Hardsuit Crate" @@ -37,6 +38,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/medical) crate_name = "medical hardsuit crate" crate_type = /obj/structure/closet/crate/medical + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/mining_hardsuit_heavy name = "Heavy Mining Hardsuit Crate" @@ -46,6 +48,7 @@ /obj/item/clothing/shoes/bhop) crate_name = "heavy mining hardsuit crate" crate_type = /obj/structure/closet/crate/secure/plasma + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/sec_hardsuit_bundle name = "Security Hardsuit Crate" @@ -54,6 +57,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/security/independent) crate_name = "security hardsuit crate" crate_type = /obj/structure/closet/crate/secure/gear + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/sci_hardsuit name = "Science Hardsuit Crate" @@ -62,6 +66,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/rd) crate_name = "science hardsuit crate" crate_type = /obj/structure/closet/crate/secure/science + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/engi_spacesuit_bundle name = "Engineering Space Suit Crate" @@ -79,6 +84,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/engine/atmos) crate_name = "atmospherics hardsuit crate" crate_type = /obj/structure/closet/crate/secure/engineering + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/swat name = "SWAT Crate" @@ -117,7 +123,8 @@ desc = "Contains one full set of bulletproof armor, guaranteed to reduce a bullet's stopping power by half but with limited protection against melee weaponry." cost = 1750 contains = list(/obj/item/clothing/suit/armor/vest/bulletproof, - /obj/item/clothing/head/helmet/bulletproof) + /obj/item/clothing/head/helmet/bulletproof, + /obj/item/clothing/glasses/sunglasses/ballistic) crate_name = "bulletproof armor crate" crate_type = /obj/structure/closet/crate/secure/plasma diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index 6b43448a5d81..36bfefc02796 100644 --- a/code/modules/cargo/packs/tools.dm +++ b/code/modules/cargo/packs/tools.dm @@ -69,11 +69,17 @@ /datum/supply_pack/tools/jackhammer name = "Jackhammer Crate" - desc = "Contains a jackhammer, ideal for breaking rocks and breaking hull." + desc = "Contains a jackhammer, ideal for breaking rocks." cost = 1750 contains = list(/obj/item/pickaxe/drill/jackhammer) crate_name = "jackhammer crate" +/datum/supply_pack/tools/plasmacutter + name = "Plasmacutter Crate" + desc = "Contains a plasmacutter, capable of rapidly breaking down hull." + cost = 1250 + contains = list(/obj/item/gun/energy/plasmacutter) + crate_name = "plasmacutter crate" /datum/supply_pack/tools/metalfoam name = "Metal Foam Grenade Crate" @@ -105,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 */ @@ -140,3 +153,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/client/loadout/loadout_accessories.dm b/code/modules/client/loadout/loadout_accessories.dm index c1e4d7a088a8..a8acc1544654 100644 --- a/code/modules/client/loadout/loadout_accessories.dm +++ b/code/modules/client/loadout/loadout_accessories.dm @@ -50,7 +50,39 @@ display_name = "tie, recolorable" path = /obj/item/clothing/neck/tie +//Gloves + +/datum/gear/accessory/gloves + subtype_path = /datum/gear/accessory/gloves + slot = ITEM_SLOT_GLOVES + +/datum/gear/accessory/gloves/black + display_name = "gloves, black" + description = "Standard hand coverings for everyday use." + path = /obj/item/clothing/gloves/color/black + +/datum/gear/accessory/gloves/white + display_name = "gloves, white" + description = "Standard hand coverings for everyday use." + path = /obj/item/clothing/gloves/color/white + +/datum/gear/accessory/gloves/brown + display_name = "gloves, brown" + description = "Standard hand coverings for everyday use." + path = /obj/item/clothing/gloves/color/brown + +/datum/gear/accessory/gloves/fingerless + display_name = "gloves, fingerless" + description = "Radical hand coverings for everyday use." + path = /obj/item/clothing/gloves/fingerless + +/datum/gear/accessory/gloves/evening + display_name = "gloves, evening" + description = "Excessively fancy elbow-length gloves." + path = /obj/item/clothing/gloves/color/evening + //Bone + /datum/gear/accessory/fangnecklace display_name = "wolf fang necklace" path = /obj/item/clothing/neck/fangnecklace @@ -60,6 +92,36 @@ path = /obj/item/clothing/accessory/bonearmlet slot = null +//Masks + +/datum/gear/accessory/mask + subtype_path = /datum/gear/accessory/mask + slot = ITEM_SLOT_MASK + +/datum/gear/accessory/mask/bandana/red + display_name = "bandana, red" + path = /obj/item/clothing/mask/bandana/red + +/datum/gear/accessory/mask/bandana/skull + display_name = "bandana, skull" + path = /obj/item/clothing/mask/bandana/skull + +/datum/gear/accessory/mask/bandana/black + display_name = "bandana, black" + path = /obj/item/clothing/mask/bandana/black + +/datum/gear/accessory/mask/bandana/blue + display_name = "bandana, blue" + path = /obj/item/clothing/mask/bandana/blue + +/datum/gear/accessory/mask/surgical + display_name = "surgical mask" + path = /obj/item/clothing/mask/surgical + +/datum/gear/accessory/mask/balaclava + display_name = "balaclava" + path = /obj/item/clothing/mask/balaclava + //Misc /datum/gear/accessory/waistcoat @@ -72,23 +134,11 @@ path = /obj/item/clothing/neck/stethoscope allowed_roles = list("Medical Doctor", "Chief Medical Officer") -/datum/gear/accessory/gloves/black - display_name = "black gloves" - description = "Standard hand coverings for everyday use." - path = /obj/item/clothing/gloves/color/black - -/datum/gear/accessory/gloves/white - display_name = "white gloves" - description = "Standard hand coverings for everyday use." - path = /obj/item/clothing/gloves/color/white +/datum/gear/accessory/headphones + display_name = "headphones" + slot = ITEM_SLOT_EARS + path = /obj/item/instrument/piano_synth/headphones -/datum/gear/accessory/gloves/fingerless - display_name = "fingerless gloves" - description = "Radical hand coverings for everyday use." - path = /obj/item/clothing/gloves/fingerless - -/datum/gear/accessory/gloves/evening - display_name = "evening gloves" - description = "Excessively fancy elbow-length gloves." - path = /obj/item/clothing/gloves/color/evening - slot = ITEM_SLOT_GLOVES +/datum/gear/accessory/pocketprotector + display_name = "pocket protector" + path = /obj/item/clothing/accessory/pocketprotector diff --git a/code/modules/client/loadout/loadout_eyewear.dm b/code/modules/client/loadout/loadout_eyewear.dm index 99e868ad0854..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 @@ -46,7 +42,10 @@ description = "A blindfold you can still see through." path = /obj/item/clothing/glasses/trickblindfold - +/datum/gear/eyewear/doubleeyepatch + display_name = "double eyepatch" + description = "Two eyepatches at once! Effectively a blindfold, though." + path = /obj/item/clothing/glasses/blindfold/eyepatch /datum/gear/eyewear/glasses/cold display_name = "cold goggles" diff --git a/code/modules/client/loadout/loadout_footwear.dm b/code/modules/client/loadout/loadout_footwear.dm index dd4632f9bc34..3e65cd9ed5d3 100644 --- a/code/modules/client/loadout/loadout_footwear.dm +++ b/code/modules/client/loadout/loadout_footwear.dm @@ -64,3 +64,17 @@ /datum/gear/footwear/color/white display_name = "white shoes" path = /obj/item/clothing/shoes/sneakers/white + +//Cowboy boots + +/datum/gear/footwear/cowboy + display_name = "cowboy boots, brown" + path = /obj/item/clothing/shoes/cowboy + +/datum/gear/footwear/cowboy/black + display_name = "cowboy boots, black" + path = /obj/item/clothing/shoes/cowboy/black + +/datum/gear/footwear/cowboy/white + display_name = "cowboy boots, white" + path = /obj/item/clothing/shoes/cowboy/white diff --git a/code/modules/client/loadout/loadout_general.dm b/code/modules/client/loadout/loadout_general.dm index 8bb3ff3cb69d..712500f9fd62 100644 --- a/code/modules/client/loadout/loadout_general.dm +++ b/code/modules/client/loadout/loadout_general.dm @@ -14,10 +14,6 @@ display_name = "lipstick, red" path = /obj/item/lipstick -/datum/gear/balaclava - display_name = "balaclava" - path = /obj/item/clothing/mask/balaclava - /datum/gear/vape display_name = "vape" path = /obj/item/clothing/mask/vape @@ -26,10 +22,6 @@ display_name = "e-cigar" path = /obj/item/clothing/mask/vape/cigar -/datum/gear/bandana - display_name = "bandana, red" - path = /obj/item/clothing/mask/bandana/red - /datum/gear/flask display_name = "flask" path = /obj/item/reagent_containers/food/drinks/flask @@ -58,12 +50,17 @@ display_name = "toy, deck of cards" path = /obj/item/toy/cards/deck +/datum/gear/kotahi + display_name = "toy, deck of KOTAHI cards" + path = /obj/item/toy/cards/deck/kotahi + /datum/gear/eightball display_name = "toy, magic eight ball" path = /obj/item/toy/eightball /datum/gear/pai display_name = "personal AI device" + description = "A synthetic friend that fits in your pocket." path = /obj/item/paicard /datum/gear/tablet @@ -86,6 +83,10 @@ display_name = "pen, four-color" path = /obj/item/pen/fourcolor +/datum/gear/fountainpen + display_name = "pen, fountain" + path = /obj/item/pen/fountain + /datum/gear/paperbin display_name = "paper bin" path = /obj/item/paper_bin @@ -127,7 +128,6 @@ display_name = "toy, rilena tali plushie" path = /obj/item/toy/plush/tali -// Shiptest edit /datum/gear/amongus display_name = "toy, suspicious pill plushie" path = /obj/item/toy/plush/among @@ -150,8 +150,6 @@ display_name = "table bell, brass" path = /obj/item/table_bell/brass -// End Shiptest - /datum/gear/flashlight display_name = "tool, flashlight" path = /obj/item/flashlight @@ -160,11 +158,11 @@ display_name = "tool, emergency crowbar" path = /obj/item/crowbar/red -/datum/gear/surgical_mask - display_name = "surgical mask" - path = /obj/item/clothing/mask/surgical - /datum/gear/rilena_poster display_name = "poster, rilena" path = /obj/item/poster/random_rilena description = "A random poster of the RILENA series." + +/datum/gear/camera + display_name = "polaroid camera" + path = /obj/item/camera diff --git a/code/modules/client/loadout/loadout_hat.dm b/code/modules/client/loadout/loadout_hat.dm index 23e34d7d19c3..2f7e59c288b7 100644 --- a/code/modules/client/loadout/loadout_hat.dm +++ b/code/modules/client/loadout/loadout_hat.dm @@ -27,6 +27,10 @@ display_name = "beret, red" path = /obj/item/clothing/head/beret +/datum/gear/hat/beret/black + display_name = "beret, black" + path = /obj/item/clothing/head/beret/black + /datum/gear/hat/beret/departmental display_name = "beret, departmental" path = /obj/item/clothing/head/beret/grey @@ -74,6 +78,57 @@ path = /obj/item/clothing/head/beret/eng/hazard allowed_roles = list("Station Engineer", "Atmospheric Technician", "Chief Engineer") +//Soft caps + +/datum/gear/hat/softcap/red + display_name = "cap, red" + path = /obj/item/clothing/head/soft/red + +/datum/gear/hat/softcap/blue + display_name = "cap, blue" + path = /obj/item/clothing/head/soft/blue + +/datum/gear/hat/softcap/grey + display_name = "cap, grey" + path = /obj/item/clothing/head/soft/grey + +/datum/gear/hat/softcap/white + display_name = "cap, white" + path = /obj/item/clothing/head/soft/mime + +/datum/gear/hat/softcap/black + display_name = "cap, black" + path = /obj/item/clothing/head/soft/black + +//Beanies + +/datum/gear/hat/beanie + display_name = "beanie, white" + path = /obj/item/clothing/head/beanie + +/datum/gear/hat/beanie/black + display_name = "beanie, black" + path = /obj/item/clothing/head/beanie/black + +/datum/gear/hat/beanie/red + display_name = "beanie, red" + path = /obj/item/clothing/head/beanie/red + +/datum/gear/hat/beanie/green + display_name = "beanie, green" + path = /obj/item/clothing/head/beanie/green + +/datum/gear/hat/beanie/purple + display_name = "beanie, purple" + path = /obj/item/clothing/head/beanie/purple + +/datum/gear/hat/beanie/blue + display_name = "beanie, blue" + path = /obj/item/clothing/head/beanie/darkblue + +/datum/gear/hat/beanie/orange + display_name = "beanie, orange" + path = /obj/item/clothing/head/beanie/orange //Misc /datum/gear/hat/that @@ -81,17 +136,21 @@ path = /obj/item/clothing/head/that /datum/gear/hat/fedora - display_name = "fedora" + display_name = "fedora, black" path = /obj/item/clothing/head/fedora +/datum/gear/hat/fedora/white + display_name = "fedora, white" + path = /obj/item/clothing/head/fedora/white + +/datum/gear/hat/fedora/beige + display_name = "fedora, beige" + path = /obj/item/clothing/head/fedora/beige + /datum/gear/hat/flatcap display_name = "flatcap" path = /obj/item/clothing/head/flatcap -/datum/gear/hat/beanie - display_name = "beanie" - path = /obj/item/clothing/head/beanie - /datum/gear/hat/wig display_name = "wig" path = /obj/item/clothing/head/wig diff --git a/code/modules/client/loadout/loadout_suit.dm b/code/modules/client/loadout/loadout_suit.dm index f8757bfa5b38..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 @@ -55,8 +51,6 @@ display_name = "suit jacket, charcoal" path = /obj/item/clothing/suit/toggle/lawyer/charcoal -/datum/gear/suit/jacket/navy //why is this blank? i dont know - /datum/gear/suit/jacket/hoodie_black display_name = "hoodie, black" path = /obj/item/clothing/suit/hooded/hoodie/black @@ -93,11 +87,20 @@ display_name = "hazard jacket" path = /obj/item/clothing/suit/toggle/hazard -//Misc -/datum/gear/suit/grponcho - display_name = "poncho, green" - path = /obj/item/clothing/suit/poncho/green +//Suspenders +/datum/gear/suit/suspenders/red + display_name = "suspenders, red" + path = /obj/item/clothing/suit/toggle/suspenders + +/datum/gear/suit/suspenders/blue + display_name = "suspenders, blue" + path = /obj/item/clothing/suit/toggle/suspenders/blue +/datum/gear/suit/suspenders/gray + display_name = "suspenders, gray" + path = /obj/item/clothing/suit/toggle/suspenders/gray + +//Misc /datum/gear/suit/overalls display_name = "overalls" path = /obj/item/clothing/suit/apron/overalls @@ -119,3 +122,11 @@ display_name = "floral shirt" description = "From grills to guns, this shirt's seen it all." path = /obj/item/clothing/suit/hawaiian + +/datum/gear/suit/hazardvest + display_name = "hazard vest" + path = /obj/item/clothing/suit/hazardvest + +/datum/gear/suit/longcoat + display_name = "longcoat" + path = /obj/item/clothing/suit/longcoat diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 006074e74bcd..91eab6d53f0f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) //doohickeys for savefiles var/path var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used - var/max_save_slots = 20 + var/max_save_slots = 30 //non-preference stuff var/muted = 0 @@ -227,7 +227,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) load_path(C.ckey) unlock_content = C.IsByondMember() if(unlock_content) - max_save_slots = 30 + max_save_slots = 50 var/loaded_preferences_successfully = load_preferences() if(loaded_preferences_successfully) if(load_character()) @@ -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 += " " @@ -1435,7 +1434,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) balance -= initial(quirk_type.value) switch(change_type) if("species") - if((quirk_name in SSquirks.species_blacklist) && (pref_species.id in SSquirks.species_blacklist[quirk_name])) + if((quirk_name in SSquirks.species_blacklist) && (target_species.id in SSquirks.species_blacklist[quirk_name])) all_quirks_new -= quirk_name balance += initial(quirk_type.value) if("mood") @@ -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/clothing.dm b/code/modules/clothing/clothing.dm index 166f437dc3af..a6bb80499588 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -42,6 +42,10 @@ /// If this can be eaten by a moth var/moth_edible = TRUE + // Not used yet + /// Trait modification, lazylist of traits to add/take away, on equipment/drop in the correct slot + var/list/clothing_traits + /obj/item/clothing/Initialize() if((clothing_flags & VOICEBOX_TOGGLABLE)) actions_types += /datum/action/item_action/toggle_voice_box @@ -111,6 +115,8 @@ ..() if(!istype(user)) return + for(var/trait in clothing_traits) + REMOVE_CLOTHING_TRAIT(user, trait) if(LAZYLEN(user_vars_remembered)) for(var/variable in user_vars_remembered) if(variable in user.vars) @@ -123,12 +129,48 @@ if (!istype(user)) return if(slot_flags & slot) //Was equipped to a valid slot for this item? + for(var/trait in clothing_traits) + ADD_CLOTHING_TRAIT(user, trait) if (LAZYLEN(user_vars_to_edit)) for(var/variable in user_vars_to_edit) if(variable in user.vars) LAZYSET(user_vars_remembered, variable, user.vars[variable]) user.vv_edit_var(variable, user_vars_to_edit[variable]) +/** + * Inserts a trait (or multiple traits) into the clothing traits list + * + * If worn, then we will also give the wearer the trait as if equipped + * + * This is so you can add clothing traits without worrying about needing to equip or unequip them to gain effects + */ +/obj/item/clothing/proc/attach_clothing_traits(trait_or_traits) + if(!islist(trait_or_traits)) + trait_or_traits = list(trait_or_traits) + + LAZYOR(clothing_traits, trait_or_traits) + var/mob/wearer = loc + if(istype(wearer) && (wearer.get_slot_by_item(src) & slot_flags)) + for(var/new_trait in trait_or_traits) + ADD_CLOTHING_TRAIT(wearer, new_trait) + +/** + * Removes a trait (or multiple traits) from the clothing traits list + * + * If worn, then we will also remove the trait from the wearer as if unequipped + * + * This is so you can add clothing traits without worrying about needing to equip or unequip them to gain effects + */ +/obj/item/clothing/proc/detach_clothing_traits(trait_or_traits) + if(!islist(trait_or_traits)) + trait_or_traits = list(trait_or_traits) + + LAZYREMOVE(clothing_traits, trait_or_traits) + var/mob/wearer = loc + if(istype(wearer)) + for(var/new_trait in trait_or_traits) + REMOVE_CLOTHING_TRAIT(wearer, new_trait) + /obj/item/clothing/examine(mob/user) . = ..() switch (max_heat_protection_temperature) diff --git a/code/modules/clothing/factions/clip.dm b/code/modules/clothing/factions/clip.dm index ce87ea624d7a..7ac3668aaf77 100644 --- a/code/modules/clothing/factions/clip.dm +++ b/code/modules/clothing/factions/clip.dm @@ -140,10 +140,10 @@ icon_state = "clip_trenchcoat" item_state = "trenchcoat_solgov" - body_parts_covered = CHEST|LEGS|ARMS + body_parts_covered = CHEST|GROIN armor = list("melee" = 25, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) - cold_protection = CHEST|LEGS|ARMS - heat_protection = CHEST|LEGS|ARMS + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE @@ -156,7 +156,7 @@ icon_state = "clip_captaincoat" item_state = "clip_captaincoat" - body_parts_covered = CHEST|LEGS|ARMS + body_parts_covered = CHEST armor = list("melee" = 25, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) cold_protection = CHEST|LEGS|ARMS heat_protection = CHEST|LEGS|ARMS @@ -415,26 +415,31 @@ supports_variations = VOX_VARIATION -/obj/item/storage/belt/military/clip/p16/PopulateContents() +/obj/item/storage/belt/military/clip/cm82/PopulateContents() for(var/i in 1 to 4) new /obj/item/ammo_box/magazine/p16(src) new /obj/item/grenade/frag(src) -/obj/item/storage/belt/military/clip/gal/PopulateContents() +/obj/item/storage/belt/military/clip/f4/PopulateContents() for(var/i in 1 to 4) - new /obj/item/ammo_box/magazine/gal(src) + new /obj/item/ammo_box/magazine/f4_308(src) new /obj/item/grenade/frag(src) /obj/item/storage/belt/military/clip/cm5/PopulateContents() for(var/i in 1 to 4) - new /obj/item/ammo_box/magazine/smgm9mm(src) + new /obj/item/ammo_box/magazine/cm5_9mm(src) new /obj/item/grenade/frag(src) /obj/item/storage/belt/military/clip/cm15/PopulateContents() for(var/i in 1 to 5) - new /obj/item/ammo_box/magazine/cm15_mag(src) + new /obj/item/ammo_box/magazine/cm15_12g(src) new /obj/item/grenade/frag(src) +/obj/item/storage/belt/military/clip/e50/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + /obj/item/storage/belt/military/clip/e50/PopulateContents() for(var/i in 1 to 5) new /obj/item/stock_parts/cell/gun/large(src) diff --git a/code/modules/clothing/factions/frontiersmen.dm b/code/modules/clothing/factions/frontiersmen.dm index 9bac6c40a004..77af8138fb40 100644 --- a/code/modules/clothing/factions/frontiersmen.dm +++ b/code/modules/clothing/factions/frontiersmen.dm @@ -10,6 +10,7 @@ can_adjust = FALSE icon = 'icons/obj/clothing/faction/frontiersmen/uniforms.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/frontiersmen/uniforms.dmi' + supports_variations = VOX_VARIATION /obj/item/clothing/under/frontiersmen/deckhand name = "\improper deckhand jumpsuit" @@ -58,6 +59,7 @@ icon = 'icons/obj/clothing/faction/frontiersmen/suits.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/frontiersmen/suits.dmi' blood_overlay_type = "armor" + supports_variations = VOX_VARIATION /obj/item/clothing/suit/armor/vest/marine/frontier name = "light tactical armor vest" @@ -71,13 +73,13 @@ name = "reinforced fur coat" desc = "A stiff olive-green coat, meant for frigid conditions. Commonly worn by Frontiersmen command." icon_state = "frontier_coat" - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN cold_protection = CHEST|GROIN|ARMS heat_protection = CHEST|GROIN|ARMS icon_state = "frontier_coat" item_state = "frontier_coat" blood_overlay_type = "coat" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) icon = 'icons/obj/clothing/faction/frontiersmen/suits.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/frontiersmen/suits.dmi' @@ -85,7 +87,7 @@ name = "frontiersmen fireproof coat" desc = "A stiff olive-green coat, used particularly by Frontiersmen flame troopers. It seems to be lined with asbestos, to provide maximum heat and fire deterrence... At the cost of comfort. And mesothelioma." icon_state = "frontier_fireproof_suit" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.9 permeability_coefficient = 0.5 @@ -142,7 +144,7 @@ name = "\improper Frontiersmen officer beret" desc = "A scratchy olive green beret emblazoned with the Frontiersmen insignia, worn by Frontiersmen who want to look good while intimidating freighter captains." icon_state = "frontier_officer_beret" - armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) /obj/item/clothing/head/frontier name = "frontier surgical cap" @@ -162,17 +164,20 @@ name = "\improper frontiersmen commander's cap" desc = "An imposing peaked cap, meant for a commander of the Frontiersmen." icon_state = "frontier_cap" + supports_variations = VOX_VARIATION /obj/item/clothing/head/frontier/admiral name = "\improper frontiersmen admiral's cap" desc = "An imposing peaked cap meant for only the highest of officers of the Frontiersmen pirate fleet." icon_state = "frontier_admiral_cap" + supports_variations = VOX_VARIATION /obj/item/clothing/head/helmet/bulletproof/x11/frontier name = "\improper frontiersmen X-11 helmet" desc = "A heavily modified X-11 pattern helmet used by the Frontiersmen pirate fleet." icon_state = "x11helm_frontier" unique_reskin = null + supports_variations = VOX_VARIATION /obj/item/clothing/head/helmet/bulletproof/x11/frontier/fireproof name = "\improper fireproof frontiersmen X-11 helmet" @@ -249,9 +254,14 @@ new /obj/item/ammo_box/magazine/skm_762_40(src) new /obj/item/grenade/frag(src) -/obj/item/storage/belt/security/military/frontiersmen/aps_mp_ammo/PopulateContents() //replace with spitter. remind me. +/obj/item/storage/belt/security/military/frontiersmen/mauler_mp_ammo/PopulateContents() for(var/i in 1 to 4) - new /obj/item/ammo_box/magazine/pistolm9mm(src) + new /obj/item/ammo_box/magazine/m9mm_mauler(src) + new /obj/item/grenade/frag(src) + +/obj/item/storage/belt/security/military/frontiersmen/spitter_ammo/PopulateContents() + for(var/i in 1 to 4) + new /obj/item/ammo_box/magazine/spitter_9mm(src) new /obj/item/grenade/frag(src) /obj/item/storage/belt/security/military/frontiersmen/flamer/PopulateContents() diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm index 96c6eee3c734..3eea9ebec461 100644 --- a/code/modules/clothing/factions/gezena.dm +++ b/code/modules/clothing/factions/gezena.dm @@ -36,10 +36,12 @@ item_state = "bluecloth" blood_overlay_type = "coat" togglename = "zipper" - body_parts_covered = CHEST + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON - armor = list("melee" = 20, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) //Armored suit @@ -130,6 +132,9 @@ desc = "The standard cap of the PGF military, in Navy colors. “betzu-il”, translating to “sun-blocker”, refers to the flap at the back for protection against natural hazards such as sunburns, sandstorms, and biting insects." icon_state = "navalflap" item_state = "bluecloth" + cold_protection = HEAD + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) /obj/item/clothing/head/gezena/marine name = "\improper PGFMC Cap" @@ -137,7 +142,7 @@ icon_state = "marinehat" item_state = "marinecloth" -/obj/item/clothing/head/gezena/marine/flap +/obj/item/clothing/head/gezena/flap/marine name = "\improper PGFMC Betzu-il cap" desc = "The standard cap of the PGF military, in Marine Corps colors. “betzu-il”, translating to “sun-blocker”, refers to the flap at the back for protection against natural hazards such as sunburns, sandstorms, and biting insects." icon_state = "marineflap" @@ -149,7 +154,7 @@ icon_state = "squadhat" item_state = "marinecloth" -/obj/item/clothing/head/gezena/marine/lead/flap +/obj/item/clothing/head/gezena/flap/marine/lead name = "\improper PGFMC Commander's' Betzu-il cap" desc = "The standard cap of the PGF military, in Marine Corps colors. “betzu-il”, translating to “sun-blocker”, refers to the flap at the back for protection against natural hazards such as sunburns, sandstorms, and biting insects. The silver markings denote it as a commander's cap." icon_state = "squadflap" @@ -161,7 +166,7 @@ icon_state = "medichat" item_state = "whitecloth" -/obj/item/clothing/head/gezena/medic/flap +/obj/item/clothing/head/gezena/flap/medic name = "\improper PGF medic Betzu-il cap" desc = "The standard cap of the PGF military. “betzu-il”, translating to “sun-blocker”, refers to the flap at the back for protection against natural hazards such as sunburns, sandstorms, and biting insects. The coloring indicates the wearer as a medical officer." icon_state = "medicflap" @@ -212,7 +217,7 @@ name = "\improper PGFN Captain's Ihuz-irra Gloves" desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments. Bears the silver standard of a Gezenan captain." icon_state = "captaingloves" - siemens_coefficient = 0 + siemens_coefficient = 0.5 //Boots @@ -260,8 +265,8 @@ item_state = "blackcloth" /obj/item/clothing/neck/cloak/gezena/lead - name = "sergeant's Azuilhauz" - desc = "The “Aziulhauz”, or “rank-cape”, is the method with which PGF military members display their rank to others. Wearing one while on duty is required by uniform code. This variant displays the wearer's rank as a squad commander." + name = "marine officer's Azuilhauz" + desc = "The “Aziulhauz”, or “rank-cape”, is the method with which PGF military members display their rank to others. Wearing one while on duty is required by uniform code. This variant displays the wearer's rank as a squad leader." icon_state = "squadcape" item_state = "blackcloth" @@ -278,7 +283,7 @@ item_state = "whitecloth" /obj/item/clothing/neck/cloak/gezena/command - name = "officer's Azuilhauz" + name = "navy officer's Azuilhauz" desc = "The “Aziulhauz”, or “rank-cape”, is the method with which PGF military members display their rank to others. Wearing one while on duty is required by uniform code. This variant displays the wearer's rank as an officer." icon_state = "commandcape" item_state = "whitecloth" diff --git a/code/modules/clothing/factions/hardliners.dm b/code/modules/clothing/factions/hardliners.dm index 5c3423f745c0..43faee3ccb19 100644 --- a/code/modules/clothing/factions/hardliners.dm +++ b/code/modules/clothing/factions/hardliners.dm @@ -44,6 +44,20 @@ icon_state = "hl_hazard" item_state = "whitecloth" +/obj/item/clothing/suit/hooded/wintercoat/security/hardliners + name = "hardliner winter coat" + desc = "A stark-white winter coat used by Marauders of the Hardliner movement, the zipper tab displaying the cracked emblem of the Gorlex Marauders." + icon_state = "coathl" + item_state = "coathl" + icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' + hoodtype = /obj/item/clothing/head/hooded/winterhood/security/hardliners + +/obj/item/clothing/head/hooded/winterhood/security/hardliners + icon_state = "hood_hl" + icon = 'icons/obj/clothing/faction/hardliners/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/head.dmi' + ////////////////// //Armored suits// ///////////////// @@ -69,22 +83,22 @@ /obj/item/clothing/suit/armor/hardliners/sergeant name = "hardliners sergeant jacket" desc = "An armored jacket typically worn by sergeant of the Hardliners. They're reminiscent of the garb worn by old Gorlex navymen, prior to its destruction." - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN icon_state = "hl_sergeant" item_state = "hl_sergeant" blood_overlay_type = "coat" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) /obj/item/clothing/suit/toggle/armor/vest/hardliners name = "hardliners captain coat" desc = "An imposing armored coat worn by captains of Hardliner fleets, hand-designed by Cybersun tailors to provide maximum protection to its wearer." - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN icon_state = "hl_captain" item_state = "hl_captain" icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' blood_overlay_type = "coat" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) togglename = "buttons" /////////////// @@ -114,6 +128,28 @@ lightweight = 1 jetpack = null +/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/hl + name = "elite white-red hardsuit helmet" + desc = "An elite version of the infamous white-red Hardliner hardsuit, with improved armor and fireproofing. It is in EVA mode. Property of Gorlex Marauders." + alt_desc = "An elite version of the infamous white-red Hardliner hardsuit, with improved armor and fireproofing. It is in combat mode. Property of Gorlex Marauders." + icon_state = "hardsuit0-hlelite" + hardsuit_type = "hlelite" + icon = 'icons/obj/clothing/faction/hardliners/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/head.dmi' + +/obj/item/clothing/suit/space/hardsuit/syndi/elite/hl + name = "elite white-red hardsuit" + desc = "An elite version of the infamous white-red Hardliner hardsuit, with improved armor and fireproofing. It is in travel mode." + alt_desc = "An elite version of the infamous white-red Hardliner hardsuit, with improved armor and fireproofing. It is in combat mode." + icon_state = "hardsuit0-hlelite" + item_state = "hardsuit0-hlelite" + hardsuit_type = "hlelite" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/hl + icon = 'icons/obj/clothing/faction/hardliners/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi' + lightweight = 1 + jetpack = null + ///////// //Hats// //////// @@ -150,7 +186,7 @@ /obj/item/clothing/head/helmet/hardliners/swat name = "hardliners pilot helmet" - desc = "A modified X-11 helmet utilized by regular pilots, as well as the feared mech pilots of the Hardliner movement. The attached visor helps protect against sudden flashes from explosions." + desc = "A modified X-11 helmet utilized by regular pilots, as well as the feared exosuit pilots of the Hardliner movement. The attached visor helps protect against sudden flashes from explosions." flash_protect = FLASH_PROTECTION_WELDER icon_state = "hl_pilot" item_state = "hl_pilot" diff --git a/code/modules/clothing/factions/nanotrasen.dm b/code/modules/clothing/factions/nanotrasen.dm index 664c534d236e..6e605d5471b2 100644 --- a/code/modules/clothing/factions/nanotrasen.dm +++ b/code/modules/clothing/factions/nanotrasen.dm @@ -230,7 +230,7 @@ icon_state = "armor" item_state = "blackcloth" body_parts_covered = CHEST|GROIN - armor = list("melee" = 30, "bullet" = 40, "laser" = 30, "energy" = 50, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) resistance_flags = FIRE_PROOF /obj/item/clothing/suit/armor/nanotrasen/slim @@ -241,8 +241,8 @@ name = "security director's overcoat" desc = "A tailored black overcoat, made from cutting-edge ballistic fabrics and composites. Vigilitas's 'VI' logo is embossed on every button. Intimidating and profoundly stylish." icon_state = "command_coat" - body_parts_covered = CHEST|GROIN|ARMS - armor = list("melee" = 30, "bullet" = 0, "laser" = 30, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) + body_parts_covered = CHEST|GROIN + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90) /obj/item/clothing/suit/armor/nanotrasen/captain name = "captain's jacket" @@ -250,7 +250,7 @@ icon_state = "armor_captain" item_state = "bluecloth" body_parts_covered = CHEST|GROIN - armor = list("melee" = 50, "bullet" = 60, "laser" = 60, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) + armor = list("melee" = 50, "bullet" = 40, "laser" = 50, "energy" = 50, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) resistance_flags = FIRE_PROOF /obj/item/clothing/suit/armor/nanotrasen/captain/parade @@ -258,7 +258,7 @@ desc = "An exquisitely-decorated fine blue jacket, suitable for especially formal situations, or for a commanding officer who wants to flaunt their status even more than usual. Richly decorated with gold thread and embroidered Nanotrasen logos." icon_state = "captain_formal" item_state = "bluecloth" - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN armor = list("melee" = 30, "bullet" = 0, "laser" = 30, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) // Hats // @@ -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/factions/ngr.dm b/code/modules/clothing/factions/ngr.dm index 7892a098b50d..401f82795f68 100644 --- a/code/modules/clothing/factions/ngr.dm +++ b/code/modules/clothing/factions/ngr.dm @@ -14,7 +14,7 @@ /obj/item/clothing/under/syndicate/ngr/fatigues name = "\improper NGR fatigues" - desc = "Beige fatigues used primarily by the ship and mech pilots of the New Gorlex Republic." + desc = "Beige fatigues used primarily by the shuttle and exosuit pilots of the New Gorlex Republic." icon_state = "ngr_fatigues" item_state = "ngr_fatigues" @@ -64,6 +64,21 @@ mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' icon_state = "ngr_hazard" item_state = "redcloth" + supports_variations = VOX_VARIATION + +/obj/item/clothing/suit/hooded/wintercoat/security/ngr + name = "NGR winter coat" + desc = "A sleek beige winter coat used by the Second Battlegroup of the New Gorlex Republic, the zipper tab proudly displays the official emblem of the NGR." + icon_state = "coatngr" + item_state = "coatngr" + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + hoodtype = /obj/item/clothing/head/hooded/winterhood/security/ngr + +/obj/item/clothing/head/hooded/winterhood/security/ngr + icon_state = "hood_ngr" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' ////////////////// //Armored suits// @@ -81,20 +96,20 @@ /obj/item/clothing/suit/armor/ngr/lieutenant name = "\improper 2nd Battlegroup overcoat" desc = "An armored overcoat worn by the lieutenants of the New Gorlex Republic's 2nd Battlegroup." - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN icon_state = "ngr_lieutenant" item_state = "ngr_lieutenant" blood_overlay_type = "coat" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) /obj/item/clothing/suit/armor/ngr/captain name = "\improper 2nd Battlegroup coat" desc = "An armored coat worn by captains the New Gorlex Republic's 2nd Battlegroup." - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN icon_state = "ngr_captain" item_state = "ngr_captain" blood_overlay_type = "coat" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) /////////////// //Spacesuits// @@ -122,6 +137,7 @@ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ngr lightweight = 1 jetpack = null + greyscale_colors = list("#33353a", "#d9ad82", "#8c1a34") /obj/item/clothing/head/helmet/space/plasmaman/ngr name = "NGR phorid envirosuit helmet" @@ -141,7 +157,6 @@ icon_state = "ngr_garrison" icon = 'icons/obj/clothing/faction/ngr/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' - armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) /obj/item/clothing/head/ngr/flap name = "beige flap cap" @@ -230,6 +245,7 @@ icon_state = "ngr_shemagh" icon = 'icons/obj/clothing/faction/ngr/neck.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/ngr/neck.dmi' + supports_variations = VOX_VARIATION ////////// //Belts// diff --git a/code/modules/clothing/factions/srm.dm b/code/modules/clothing/factions/srm.dm index cd901306b7a7..34e6b4218fe4 100644 --- a/code/modules/clothing/factions/srm.dm +++ b/code/modules/clothing/factions/srm.dm @@ -10,6 +10,7 @@ can_adjust = FALSE icon = 'icons/obj/clothing/faction/srm/uniforms.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/srm/uniforms.dmi' + supports_variations = KEPORI_VARIATION ////////////////// //Armored suits// @@ -20,17 +21,19 @@ desc = "A coat made from hard leather. Meant to withstand long hunts in harsh wilderness." icon_state = "armor_rouma" item_state = "rouma_coat" - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN cold_protection = CHEST|GROIN|ARMS heat_protection = CHEST|GROIN|ARMS icon = 'icons/obj/clothing/faction/srm/suits.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/srm/suits.dmi' + supports_variations = KEPORI_VARIATION /obj/item/clothing/suit/armor/roumain/shadow name = "saint-roumain shadow duster" desc = "A coat made from hard leather. Its rough, barely-treated finish is typical of one of the Saint-Roumain Militia's trainees." icon_state = "armor_rouma_shadow" item_state = "rouma_shadow_coat" + supports_variations = KEPORI_VARIATION /obj/item/clothing/suit/toggle/labcoat/roumain_med name = "saint-roumain medical duster" @@ -38,7 +41,8 @@ icon = 'icons/obj/clothing/faction/srm/suits.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/srm/suits.dmi' icon_state = "rouma_med_coat" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50) + supports_variations = KEPORI_VARIATION /obj/item/clothing/suit/hazardvest/roumain name = "saint-roumain machinist leather vest" @@ -47,31 +51,34 @@ mob_overlay_icon = 'icons/mob/clothing/faction/srm/suits.dmi' icon_state = "armor_rouma_machinist" item_state = "rouma_coat" - armor = list("melee" = 30, "bullet" = 20, "laser" = 20, "energy" = 40, "bomb" = 35, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) + armor = list("melee" = 35, "bullet" = 20, "laser" = 20, "energy" = 40, "bomb" = 35, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) /obj/item/clothing/suit/armor/roumain/flamebearer name = "saint-roumain flamebearer robes" desc = "A set of ashy-grey robes made from hard leather, adorned with gold trims. Its rough finish after a near-char and application of aromatics is heavily favored for the ecclesiastical sect of the Church of Saint Roumain, a living reminder of the Ashen Huntsman himself." icon_state = "armor_rouma_flamebearer" + supports_variations = KEPORI_VARIATION /obj/item/clothing/suit/armor/roumain/colligne name = "saint-roumain colligne coat" desc = "A well-maintained hard leather coat typically worn to denote the rank of Colligne, a trainee Hunter Montagne. It is treated with bullet-resistant materials, and lined with the dark fur of Illestrian dire wolves." icon_state = "armor_rouma_colligne" item_state = "rouma_coat" - body_parts_covered = CHEST|GROIN|ARMS|LEGS + body_parts_covered = CHEST|GROIN cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS + supports_variations = KEPORI_VARIATION /obj/item/clothing/suit/armor/roumain/montagne name = "saint-roumain montagne coat" desc = "A stylish red coat to indicate that you are, in fact, a Hunter Montagne. Made of extra hard exotic leather, treated with bullet-resistant materials, and lined with the fur of some unidentifiable creature." icon_state = "armor_rouma_montagne" item_state = "rouma_montagne_coat" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90) + body_parts_covered = CHEST|GROIN + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS + supports_variations = KEPORI_VARIATION /////////////// //Spacesuits// @@ -86,6 +93,7 @@ item_state = "hardsuit0-roumain" hardsuit_type = "roumain" worn_y_offset = 4 + supports_variations = KEPORI_VARIATION /obj/item/clothing/suit/space/hardsuit/solgov/roumain name = "\improper roumain hardsuit" @@ -96,6 +104,7 @@ item_state = "hardsuit-roumain" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/solgov/roumain slowdown = 0.5 + supports_variations = KEPORI_VARIATION ///////// //Hats// @@ -107,11 +116,13 @@ icon_state = "rouma_hat" icon = 'icons/obj/clothing/faction/srm/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/srm/head.dmi' + supports_variations = KEPORI_VARIATION /obj/item/clothing/head/cowboy/sec/roumain/shadow name = "shadow's hat" desc = "A rough, simple hat. The way it covers your eyes makes you feel badass, but you just look like a wannabe hunter." icon_state = "rouma_shadow_hat" + supports_variations = KEPORI_VARIATION /obj/item/clothing/head/cowboy/sec/roumain/machinist name = "machinist's hat" @@ -122,21 +133,25 @@ name = "medical hunter's hat" desc = "A very wide-brimmed, round hat treated with oil and wax. Somehow manages to look stylish and creepy at the same time." icon_state = "rouma_med_hat" + supports_variations = KEPORI_VARIATION /obj/item/clothing/head/cowboy/sec/roumain/flamebearer name = "flamebearer's hat" desc = "A wide-brimmed, pointed hat with charred leather, granting it an ash-grey appearance. The design honors the one the Ashen Huntsman himself wore, according to legend." icon_state = "rouma_flamebearer_hat" + supports_variations = KEPORI_VARIATION /obj/item/clothing/head/cowboy/sec/roumain/colligne name = "colligne's hat" desc = "A fancy, pointy leather hat with a large feather plume to signal that you are, in fact... A Hunter Colligne. You still have some ways to go before you gain the title of Montagne." icon_state = "rouma_colligne_hat" + supports_variations = KEPORI_VARIATION /obj/item/clothing/head/cowboy/sec/roumain/montagne name = "montagne's hat" desc = "A very fancy hat with a large feather plume to signal that you are, in fact, a Hunter Montagne. The exotic fur lining is impeccably soft." icon_state = "rouma_montagne_hat" + supports_variations = KEPORI_VARIATION /////////////// //Accessories// diff --git a/code/modules/clothing/factions/suns.dm b/code/modules/clothing/factions/suns.dm index df6d831e479b..bce8586c9139 100644 --- a/code/modules/clothing/factions/suns.dm +++ b/code/modules/clothing/factions/suns.dm @@ -162,7 +162,7 @@ ///////////////// -/obj/item/clothing/suit/armor/vest/bulletproof/suns +/obj/item/clothing/suit/armor/vest/suns name = "peacekeeper plating" desc = "A standard issue set of plate assigned to peacekeepers, both durable and stylish." icon_state = "suns_pkarmor" @@ -171,21 +171,22 @@ mob_overlay_icon = 'icons/mob/clothing/faction/suns/suits.dmi' lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' - body_parts_covered = CHEST|GROIN|ARMS|LEGS cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS -/obj/item/clothing/suit/armor/vest/bulletproof/suns/hos +/obj/item/clothing/suit/armor/vest/suns/hos name = "gilded peacekeeper plating" desc = "A set of plate assigned to peacekeepers, both durable and stylish. This one has a gold lining to indicate rank." icon_state = "suns_lpkarmor" item_state = "suns_pkarmor" + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) -/obj/item/clothing/suit/armor/vest/bulletproof/suns/ehos //remind me to make this something to buy +/obj/item/clothing/suit/armor/vest/suns/ehos //remind me to make this something to buy name = "peacekeeper greatcoat" desc = "A funky armored coat worn by eccentric peacekeepers. Closing the coat is socially improper." icon_state = "suns_greatcoat" item_state = "suns_greatcoat" + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) /obj/item/clothing/suit/toggle/suns/pkcoat name = "peacekeeper coat" @@ -195,23 +196,23 @@ armor = list("melee" = 15, "bullet" = 30, "laser" = 10, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 25) lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi' righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi' - body_parts_covered = CHEST|GROIN|ARMS|LEGS + body_parts_covered = CHEST|GROIN cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS -/obj/item/clothing/suit/armor/vest/bulletproof/suns/captain +/obj/item/clothing/suit/armor/vest/suns/captain name = "decorated academic coat" desc = "An armored coat intended for SUNS captains on the frontier. Go forth, and spread the message of the academy." icon_state = "suns_captaincoat" item_state = "suns_overblack" + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) -/obj/item/clothing/suit/armor/vest/bulletproof/suns/xo +/obj/item/clothing/suit/armor/vest/suns/xo name = "academic staff coat" desc = "A white coat used by SUNS academic staff. It designates the second in command on the ship." icon_state = "suns_xojacket" item_state = "suns_overwhite" - /////////////// //Spacesuits// ////////////// @@ -343,7 +344,7 @@ icon_state = "sunsvisor" item_state = "suns_pkhelmet" tint = 0 - armor = list("melee" = 15, "bullet" = 60, "laser" = 10, "energy" = 10, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) // identical stats to bulletproof helmet, as chest matches bulletproof vest + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) // identical stats to vest clothing_flags = BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS //Why? Because I'm not giving PK's sec masks nor hud sunglasses. icon = 'icons/obj/clothing/faction/suns/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/suns/head.dmi' @@ -465,10 +466,10 @@ /obj/item/clothing/gloves/suns/captain name = "\improper SUNS captain's gloves" - desc = "Fancy black gloves for trusted SUNS members. Sports a complex lining that prevents the wearer from being shocked." + desc = "Fancy black gloves for trusted SUNS members." icon_state = "suns_captaingloves" item_state = "suns_blackgloves" - siemens_coefficient = 0 + siemens_coefficient = 0.5 permeability_coefficient = 0.05 cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index f33a789156e9..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,47 +230,13 @@ 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." + icon_state = "ballistic_goggles" + item_state = "ballistic_goggles" + supports_variations = KEPORI_VARIATION | VOX_VARIATION + glass_colour_type = /datum/client_colour/glass_colour/lightblue /obj/item/clothing/glasses/welding name = "welding goggles" @@ -314,7 +247,7 @@ flash_protect = FLASH_PROTECTION_WELDER custom_materials = list(/datum/material/iron = 250) tint = 2 - visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT + visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | SEALS_EYES flags_cover = GLASSESCOVERSEYES glass_colour_type = /datum/client_colour/glass_colour/gray supports_variations = VOX_VARIATION @@ -322,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." @@ -378,10 +300,10 @@ colored_before = TRUE /obj/item/clothing/glasses/blindfold/white/worn_overlays(isinhands = FALSE, file2use) - . = list() + . = ..() 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 @@ -447,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." @@ -485,12 +393,14 @@ desc = "A pair of goggles meant for low temperatures." icon_state = "cold" item_state = "cold" + flags_cover = GLASSESCOVERSEYES | SEALS_EYES /obj/item/clothing/glasses/heat name = "heat goggles" desc = "A pair of goggles meant for high temperatures." icon_state = "heat" item_state = "heat" + flags_cover = GLASSESCOVERSEYES | SEALS_EYES /obj/item/clothing/glasses/orange name = "orange glasses" @@ -506,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 @@ -572,7 +453,7 @@ desc = "Medical, security and diagnostic hud. Alt click to toggle xray." icon_state = "nvgmeson" item_state = "nvgmeson" - flags_cover = GLASSESCOVERSEYES + flags_cover = GLASSESCOVERSEYES | SEALS_EYES darkness_view = 8 flash_protect = FLASH_PROTECTION_WELDER lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE 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/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index 61c06125d8f8..a6e9f22ea3e7 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -25,7 +25,7 @@ return TRUE /obj/item/clothing/gloves/worn_overlays(isinhands = FALSE) - . = list() + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedgloves") diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index cbac3e0e8901..0447f62aab9e 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -177,10 +177,10 @@ icon_state = "brown" /obj/item/clothing/gloves/color/captain - desc = "Regal white gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier, and armoured bracers. Swanky." + desc = "Regal white gloves, with a nice gold trim, an integrated thermal barrier, and armoured bracers. Swanky." name = "captain's gloves" icon_state = "captain" - siemens_coefficient = 0 + siemens_coefficient = 0.5 permeability_coefficient = 0.05 cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT @@ -190,7 +190,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 50) /obj/item/clothing/gloves/color/captain/nt - desc = "Regal blue gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier, and armoured bracers. Swanky." + desc = "Regal blue gloves with gold trim and a fire and acid-resistant coating. Swanky." name = "captain's gloves" icon_state = "captainnt" @@ -231,7 +231,7 @@ name = "infiltrator gloves" desc = "Specialized combat gloves for carrying people around. Transfers tactical kidnapping knowledge into the user via nanochips." icon_state = "infiltrator" - siemens_coefficient = 0 + siemens_coefficient = 0.5 permeability_coefficient = 0.3 resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 9d8db3c035d8..e326b55f58f3 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -23,13 +23,14 @@ heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT resistance_flags = NONE + clothing_traits = list(TRAIT_PLANT_SAFE) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 30) /obj/item/clothing/gloves/combat name = "combat gloves" - desc = "These tactical gloves are fireproof and electrically insulated." + desc = "These tactical gloves are extra-durable, offering some fire and acid protection." icon_state = "combat" - siemens_coefficient = 0 + siemens_coefficient = 0.5 permeability_coefficient = 0.05 strip_delay = 80 cold_protection = HANDS @@ -42,12 +43,12 @@ /obj/item/clothing/gloves/combat/maid name = "combat maid sleeves" - desc = "These 'tactical' gloves and sleeves are fireproof and electrically insulated. Warm to boot." + desc = "These 'tactical' gloves and sleeves are fireproof and acid-resistant. Warm to boot." icon_state = "syndimaid_arms" /obj/item/clothing/gloves/combat/maid/inteq name = "inteq combat maid sleeves" - desc = "Tacticute and comfy, along with being both fireproof and electrically insulated." + desc = "Tacticute and comfy, along with being both fireproof and acid-resistant." icon_state = "inteqmaid_arms" /obj/item/clothing/gloves/bracer @@ -125,7 +126,7 @@ name = "explorer envirogloves" icon_state = "explorerplasma" -/obj/item/clothing/gloves/color/botanic_leather/plasmaman +/obj/item/clothing/gloves/botanic_leather/plasmaman name = "botany envirogloves" desc = "Covers up those scandalous boney hands." icon_state = "botanyplasma" @@ -142,5 +143,5 @@ /obj/item/clothing/gloves/combat/wizard name = "enchanted gloves" - desc = "These gloves have been enchanted with a spell that makes them electrically insulated and fireproof." + desc = "These gloves have been enchanted with a spell that makes them fireproof and acid-resistant." icon_state = "wizard" diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index 0ae7f48089e9..2667297dc358 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -67,7 +67,7 @@ name = "guerrilla gloves" desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks." icon_state = "combat" - siemens_coefficient = 0 + siemens_coefficient = 0.5 permeability_coefficient = 0.05 /obj/item/clothing/gloves/tackler/rocket diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index 4039402588fd..aa1114e6b182 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -60,7 +60,7 @@ /obj/item/clothing/head/worn_overlays(isinhands = FALSE) - . = list() + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet") 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/hardhat.dm b/code/modules/clothing/head/hardhat.dm index dba4c2f80406..9b28c58d03cf 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -116,7 +116,7 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES /obj/item/clothing/head/hardhat/mining name = "mining helmet" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index a6de8769642a..cefff9c4c76f 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -6,7 +6,7 @@ icon_state = "helmet" item_state = "helmet" var/flashlight_state = "helmet_flight_overlay" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30,"energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35,"energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) cold_protection = HEAD min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT heat_protection = HEAD @@ -219,6 +219,7 @@ can_flashlight = TRUE dog_fashion = null allow_post_reskins = TRUE + supports_variations = KEPORI_VARIATION unique_reskin = list( "None" = "helmetalt", "Desert" = "helmetalt_desert", @@ -286,7 +287,7 @@ visor_flags_inv = HIDEFACE toggle_cooldown = 0 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF - visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES dog_fashion = null /obj/item/clothing/head/helmet/justice @@ -327,7 +328,7 @@ desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern." icon_state = "swatsyndie" item_state = "swatsyndie" - armor = list("melee" = 40, "bullet" = 30, "laser" = 30,"energy" = 40, "bomb" = 50, "bio" = 90, "rad" = 20, "fire" = 100, "acid" = 100) + armor = list("melee" = 40, "bullet" = 35, "laser" = 35,"energy" = 40, "bomb" = 50, "bio" = 90, "rad" = 20, "fire" = 100, "acid" = 100) cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD @@ -492,7 +493,7 @@ resistance_flags = FIRE_PROOF | ACID_PROOF flash_protect = FLASH_PROTECTION_WELDER flags_inv = HIDEHAIR|HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES strip_delay = 80 /obj/item/clothing/head/helmet/swat/inteq @@ -567,6 +568,7 @@ icon_state = "m10helm" can_flashlight = TRUE dog_fashion = null + supports_variations = null unique_reskin = list( "None" = "m10helm", "Desert" = "m10helm_desert", @@ -582,6 +584,7 @@ can_flashlight = TRUE dog_fashion = null allow_post_reskins = TRUE + supports_variations = null unique_reskin = list( "None" = "x11helm", "Desert" = "x11helm_desert", 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 Though they lack the physical protection of more expensive hardsuits, this type of suit is extremely common wherever construction and salvage work must be done in open space." + siemens_coefficient = 0 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 20, "bomb" = 0, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75) pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo/large resistance_flags = FIRE_PROOF @@ -1106,7 +1088,7 @@ name = "pilot space suit" icon_state = "space-pilot" item_state = "space-pilot" - desc = "A lightweight, unarmored space suit designed for mech and fighter pilots. Special attachment points make mounting and dismounting from mechs much easier." + desc = "A lightweight, unarmored space suit designed for exosuit and shuttle pilots. Special attachment points make mounting and dismounting from exosuits much easier." clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | FAST_EMBARK pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo/large @@ -1114,7 +1096,7 @@ name = "pilot helmet" icon_state = "space-pilot-plain0" item_state = "space-pilot-plain" - desc = "A specialized space helmet designed for mech and fighter pilots. Offers limited impact protection." + desc = "A specialized space helmet designed for exosuit and shuttle pilots. Offers limited impact protection." var/skin = "plain" var/blurb = " Its simple design is quite ancient." up = FALSE @@ -1147,7 +1129,7 @@ if("corvid") blurb = " It is sloppily painted with thin teal and red paint. There are some dark stains on the lining..." - desc = "A specialized space helmet designed for mech and fighter pilots. Offers limited impact protection.[blurb]" + desc = "A specialized space helmet designed for exosuit and shuttle pilots. Offers limited impact protection.[blurb]" update_icon_state() /obj/item/clothing/head/helmet/space/pilot/random/New() @@ -1218,7 +1200,7 @@ armor = list("melee" = 50, "bullet" = 45, "laser" = 40, "energy" = 30, "bomb" = 60, "bio" = 100, "rad" = 60, "fire" = 90, "acid" = 75) //intentionally the fucking strong, this is master chief-tier armor //is this really what you call the strong?? is this the best solgov has to offer?????? helmettype = /obj/item/clothing/head/helmet/space/hardsuit/solgov allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) - slowdown = 0 + slowdown = 0.5 supports_variations = DIGITIGRADE_VARIATION /obj/item/clothing/head/helmet/space/hardsuit/quixote @@ -1242,7 +1224,7 @@ actions_types = list(/datum/action/item_action/toggle_helmet) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/quixote jetpack = /obj/item/tank/jetpack/suit - slowdown = 0 + slowdown = 0.3 max_heat_protection_temperature = 20000 var/datum/action/innate/quixotejump/jump diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 67dc7ce529b3..6e825e48ea4b 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -36,7 +36,7 @@ Contains: desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back." icon_state = "deathsquad" item_state = "swat_suit" - allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat) + allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/melee/knife/combat) armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 60, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -50,7 +50,7 @@ Contains: desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!" icon_state = "heavy" item_state = "swat_suit" - allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat) + allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/melee/knife/combat) armor = list("melee" = 40, "bullet" = 30, "laser" = 30,"energy" = 40, "bomb" = 50, "bio" = 90, "rad" = 20, "fire" = 100, "acid" = 100) strip_delay = 120 resistance_flags = FIRE_PROOF | ACID_PROOF @@ -363,7 +363,7 @@ Contains: armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 20, "bomb" = 10, "bio" = 100, "rad" = 10, "fire" = 100, "acid" = 100) max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife, /obj/item/kinetic_crusher, /obj/item/resonator, /obj/item/melee/transforming/cleaving_saw) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/melee/spear, /obj/item/organ/regenerative_core/legion, /obj/item/kinetic_crusher, /obj/item/resonator, /obj/item/melee/transforming/cleaving_saw) /obj/item/clothing/suit/space/hardsuit/berserker/RemoveHelmet() var/obj/item/clothing/head/helmet/space/hardsuit/berserker/helm = helmet @@ -489,7 +489,7 @@ Contains: desc = "A custom version of the MK.II SWAT suit, modified to look rugged and tough. Works as a space suit, if you can find a helmet." icon_state = "hunter" item_state = "swat_suit" - allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat) + allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/melee/knife/combat) armor = list("melee" = 60, "bullet" = 40, "laser" = 40, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 43dc5a5dd8d0..895dea5156aa 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -58,7 +58,7 @@ actions_types = list(/datum/action/item_action/toggle_helmet_light) visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF + flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF | SEALS_EYES visor_flags_inv = HIDEEYES|HIDEFACE // WS Begin - plasmeme command helmets buff - used for RD bomb scanner diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index e5a98c7215e5..e2a405176c21 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -164,6 +164,7 @@ icon_state = "syndicate-black-engie" item_state = "syndicate-black" desc = "A space suit made of high-grade ballistic fabric with thermal and radiation shielding. More compact than a normal space suit while amost matching powered hardsuits for protection. Almost." + siemens_coefficient = 0 armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 40, "bomb" = 20, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75) allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser) resistance_flags = FIRE_PROOF diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 0e7edb63f068..30d3c3c3c9ba 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -19,7 +19,7 @@ mob_overlay_icon = 'icons/mob/clothing/suit.dmi' /obj/item/clothing/suit/worn_overlays(isinhands = FALSE) - . = list() + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 9dfd23210d9c..b9eb2b6d7c53 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -2,7 +2,7 @@ icon = 'icons/obj/clothing/suits/armor.dmi' mob_overlay_icon = 'icons/mob/clothing/suits/armor.dmi' allowed = null - body_parts_covered = CHEST + body_parts_covered = CHEST|GROIN cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT heat_protection = CHEST|GROIN @@ -11,7 +11,7 @@ equip_delay_other = 40 max_integrity = 250 resistance_flags = NONE - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) greyscale_colors = list(list(18, 19), list(13, 18), list(20, 15)) greyscale_icon_state = "armor" @@ -81,7 +81,6 @@ desc = "A long, intimidating black coat. This one is reinforced and ideal for protecting its wearer from rain, sun, dust, and bullets." icon_state = "armor_duster" item_state = "duster_sec" - body_parts_covered = CHEST|GROIN|ARMS|LEGS cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS @@ -90,8 +89,7 @@ desc = "A greatcoat enhanced with a special alloy for some extra protection and style for those with a commanding presence." icon_state = "armor_hos" item_state = "greatcoat" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS strip_delay = 80 @@ -108,7 +106,6 @@ desc = "A black armored jacket with silver shoulder designations and '/Warden/' stitched into one of the chest pockets." icon_state = "armor_warden" item_state = "armor" - body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS|HANDS heat_protection = CHEST|GROIN|ARMS|HANDS strip_delay = 70 @@ -135,7 +132,6 @@ desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of Nanotrasen Security." icon_state = "armor_leathercoat-sec" item_state = "hostrench" - body_parts_covered = CHEST|GROIN|ARMS|LEGS cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS dog_fashion = null @@ -145,7 +141,6 @@ desc = "A fireproof armored chestpiece reinforced with ceramic plates and plasteel pauldrons to provide additional protection whilst still offering maximum mobility and flexibility. Issued only to NT's finest, although it does chafe your nipples." icon_state = "carapace_nt" item_state = "armor" - body_parts_covered = CHEST|GROIN armor = list("melee" = 50, "bullet" = 40, "laser" = 50, "energy" = 50, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) dog_fashion = null resistance_flags = FIRE_PROOF @@ -209,7 +204,6 @@ icon_state = "laserproof" item_state = "armor_reflec" blood_overlay_type = "armor" - body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS heat_protection = CHEST|GROIN|ARMS armor = list("melee" = 10, "bullet" = 10, "laser" = 60, "energy" = 60, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) @@ -283,7 +277,7 @@ desc = "A classic suit of plate armour, highly effective at stopping melee attacks." icon_state = "riot_knight_green" item_state = "riot_knight_green" - allowed = list(/obj/item/nullrod, /obj/item/claymore, /obj/item/banner, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/plasmaman) + allowed = list(/obj/item/melee/sword/claymore, /obj/item/banner, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/plasmaman) /obj/item/clothing/suit/armor/riot/knight/yellow icon_state = "riot_knight_yellow" @@ -330,7 +324,7 @@ icon_state = "armor_inteq_honorable_battlecoat" item_state = "inteq_honorable_battlecoat" armor = list("melee" = 40, "bullet" = 50, "laser" = 50, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90) - supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION /obj/item/clothing/suit/armor/inteq/corpsman name = "inteq corpsman vest" @@ -360,28 +354,37 @@ /obj/item/melee/baton, ) -/obj/item/clothing/suit/armor/vest/bulletproof/solgov +/obj/item/clothing/suit/armor/vest/solgov name = "\improper Sonnensoldner gambison" desc = "A standard armor vest fielded for SolGov's Sonnensoldners." icon_state = "solgov_gambison" item_state = "solgov_gambison" supports_variations = DIGITIGRADE_VARIATION + body_parts_covered = CHEST|GROIN + cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS -/obj/item/clothing/suit/armor/vest/bulletproof/solgov/overseer +/obj/item/clothing/suit/armor/vest/solgov/overseer name = "\improper SolGov Overseer robe" desc = "An elaborately designed robe utilized by SolGov overseers." icon_state = "solgov_overseer_robe" item_state = "solgov_overseer_robe" supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS -/obj/item/clothing/suit/armor/vest/bulletproof/solgov/captain +/obj/item/clothing/suit/armor/vest/solgov/captain name = "\improper SolGov Captain coat" desc = "An armored coat typically used by SolGov captains." icon_state = "solgov_coat" item_state = "solgov_coat" supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS -/obj/item/clothing/suit/armor/vest/bulletproof/solgov/Initialize() +/obj/item/clothing/suit/armor/vest/solgov/Initialize() . = ..() allowed |= list(/obj/item/gun/ballistic/automatic/assault/swiss_cheese, /obj/item/tank) @@ -397,13 +400,6 @@ icon_state = "armor_syndie" item_state = "syndiearmor" -/obj/item/clothing/suit/armor/vest/scrap_armor - name = "scrap armor" - desc = "An 'armor' vest consisting of sheet metal held together with cable. Who thought this was a good idea?" - icon_state = "scraparmor" - item_state = "scraparmor" - armor = list("melee" = 5) - /obj/item/clothing/suit/armor/curator name = "treasure hunter's coat" desc = "Both fashionable and lightly armoured, this jacket is favoured by treasure hunters the galaxy over." @@ -421,7 +417,6 @@ desc = "A solgov official's trenchcoat. Has a lot of pockets." icon_state = "armor_solgov_trenchcoat" item_state = "trenchcoat_solgov" - body_parts_covered = CHEST|LEGS|ARMS armor = list("melee" = 25, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) cold_protection = CHEST|LEGS|ARMS heat_protection = CHEST|LEGS|ARMS @@ -430,7 +425,6 @@ //JACKETS /obj/item/clothing/suit/armor/vest/security item_state = "armor" - body_parts_covered = CHEST|ARMS cold_protection = CHEST|GROIN|ARMS|HANDS heat_protection = CHEST|GROIN|ARMS|HANDS strip_delay = 70 @@ -441,32 +435,27 @@ name = "security officer's jacket" desc = "This jacket is for those special occasions when a security officer isn't required to wear their armor." icon_state = "armor_officerjacket" - body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/armor/vest/security/warden name = "warden's jacket" desc = "Perfectly suited for the warden that wants to leave an impression of style on those who visit the brig." icon_state = "armor_warden" - body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/armor/vest/security/hos name = "head of security's jacket" desc = "This piece of clothing was specifically designed for asserting superior authority." icon_state = "armor_hosjacket" - body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/armor/vest/security/brig_phys name = "brig physician's jacket" desc = "A black jacket with dark blue and silver accents, for the brig physician to prove they're a real member of security in style." icon_state = "armor_brigphysjacket" - body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/toggle/armor/vest/centcom_formal name = "\improper CentCom formal coat" desc = "A stylish coat given to CentCom Commanders. Perfect for sending ERTs to suicide missions with style!" icon_state = "centcom_formal" item_state = "centcom" - body_parts_covered = CHEST|GROIN|ARMS armor = list("melee" = 35, "bullet" = 40, "laser" = 40, "energy" = 50, "bomb" = 35, "bio" = 10, "rad" = 10, "fire" = 10, "acid" = 60) togglename = "buttons" diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 1131c4e9166c..c62d0e92b8c0 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -8,7 +8,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 20, "fire" = 30, "acid" = 100) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE resistance_flags = ACID_PROOF - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES /obj/item/clothing/suit/bio_suit name = "bio suit" @@ -98,4 +98,4 @@ /obj/item/clothing/suit/bio_suit/plaguedoctorsuit/Initialize() . = ..() - allowed += list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/cane) + allowed += list(/obj/item/storage/book/bible, /obj/item/cane) diff --git a/code/modules/clothing/suits/chaplainsuits.dm b/code/modules/clothing/suits/chaplainsuits.dm index 58802e01b8a1..30436045da2f 100644 --- a/code/modules/clothing/suits/chaplainsuits.dm +++ b/code/modules/clothing/suits/chaplainsuits.dm @@ -1,73 +1,7 @@ //Chaplain Suit Subtypes //If any new staple chaplain items get added, put them in these lists /obj/item/clothing/suit/chaplainsuit - allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /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) + 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) /obj/item/clothing/suit/hooded/chaplainsuit - allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /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) + 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) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 4e3f6d5e3a9c..982b3804f586 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -76,7 +76,7 @@ name = "goliath cloak" icon_state = "goliath_cloak" desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits." - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/melee/spear, /obj/item/organ/regenerative_core/legion, /obj/item/melee/knife/bone, /obj/item/melee/knife/survival) armor = list("melee" = 35, "bullet" = 10, "laser" = 25, "energy" = 35, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath body_parts_covered = CHEST|GROIN|ARMS @@ -94,7 +94,7 @@ name = "drake armour" icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake." - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/melee/spear) armor = list("melee" = 50, "bullet" = 10, "laser" = 40, "energy" = 50, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 100, "acid" = 100) hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -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 56018c288b6a..2b06e695851c 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -114,6 +114,8 @@ item_state = "highvis" blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS + cold_protection = CHEST|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT togglename = "zipper" allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/radio) resistance_flags = NONE @@ -194,7 +196,7 @@ //Mime /obj/item/clothing/suit/toggle/suspenders name = "suspenders" - desc = "They suspend the illusion of the mime's play." + desc = "The symbol of hard labor and dirty jobs." icon = 'icons/obj/clothing/belts.dmi' icon_state = "suspenders" blood_overlay_type = "armor" //it's the less thing that I can put here @@ -268,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/nullrod, /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 f8e8c3f69909..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/nullrod, /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/utility.dm b/code/modules/clothing/suits/utility.dm index ac91351c2324..88661d6b835c 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -67,7 +67,7 @@ max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT strip_delay = 70 equip_delay_other = 70 - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES resistance_flags = NONE @@ -126,7 +126,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 60, "rad" = 100, "fire" = 30, "acid" = 30) strip_delay = 60 equip_delay_other = 60 - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES resistance_flags = NONE flags_1 = RAD_PROTECT_CONTENTS_1 supports_variations = VOX_VARIATION 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/clothing/towels.dm b/code/modules/clothing/towels.dm index 22c1b29976fc..f35c608a042a 100644 --- a/code/modules/clothing/towels.dm +++ b/code/modules/clothing/towels.dm @@ -32,7 +32,7 @@ item_flags = NOBLUDGEON resistance_flags = FLAMMABLE flags_inv = HIDEHAIR // Only relevant when in head shape, but useful to keep around regardless. - supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION /// The shape we're currently in. var/shape = TOWEL_FOLDED diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index a28d6d323a83..bc8cb512906b 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -27,7 +27,7 @@ supports_variations = VOX_VARIATION /obj/item/clothing/under/worn_overlays(isinhands = FALSE) - . = list() + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index f7710d52a12d..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 @@ -393,7 +394,6 @@ desc = "A legion skull fitted to a codpiece, intended to protect the important things in life." icon_state = "skull" above_suit = TRUE - armor = list("melee" = 10, "bullet" = 10, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 40, "acid" = 40) attachment_slot = GROIN /obj/item/clothing/accessory/skilt @@ -402,7 +402,6 @@ icon_state = "skilt" above_suit = TRUE minimize_when_attached = FALSE - armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) attachment_slot = GROIN /obj/item/clothing/accessory/holster @@ -411,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" @@ -479,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 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/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index bfc7524149cb..ac7eeea5dc23 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -167,7 +167,7 @@ can_adjust = FALSE resistance_flags = NONE -/obj/item/clothing/under/costume/mech_suit +/obj/item/clothing/under/costume/mech_suit //these still have "mech" in the name because they're costumes, not serious utility wear name = "red mech pilot's suit" desc = "A red mech pilot's suit. Might make your butt look big." icon_state = "red_mech_suit" diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 2283e6a45b07..82b4b663a66b 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -206,10 +206,10 @@ head = /obj/item/clothing/head/helmet/space/syndicate/surplus mask = /obj/item/clothing/mask/breath shoes = /obj/item/clothing/shoes/laceup - r_hand = /obj/item/gun/ballistic/automatic/marksman/ebr + r_hand = /obj/item/gun/ballistic/automatic/assault/hydra/dmr gloves = null l_pocket = /obj/item/pinpointer/nuke/syndicate - r_pocket = /obj/item/ammo_box/magazine/ebr + r_pocket = /obj/item/ammo_box/magazine/m556_42_hydra/small belt = null back = /obj/item/tank/jetpack/oxygen/harness backpack_contents = null diff --git a/code/modules/emoji/emoji_parse.dm b/code/modules/emoji/emoji_parse.dm index 185341d294c2..16e1eeef6c95 100644 --- a/code/modules/emoji/emoji_parse.dm +++ b/code/modules/emoji/emoji_parse.dm @@ -2,7 +2,7 @@ . = text if(!CONFIG_GET(flag/emojis)) return - var/static/list/emojis = icon_states(icon('icons/emoji.dmi')) + var/static/list/emojis = icon_states(icon(EMOJI_SET)) var/parsed = "" var/pos = 1 var/search = 0 @@ -34,7 +34,7 @@ . = text if(!CONFIG_GET(flag/emojis)) return - var/static/list/emojis = icon_states(icon('icons/emoji.dmi')) + var/static/list/emojis = icon_states(icon(EMOJI_SET)) var/final = "" //only tags are added to this var/pos = 1 var/search = 0 diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm deleted file mode 100644 index 18131e6ed9ce..000000000000 --- a/code/modules/events/blob.dm +++ /dev/null @@ -1,30 +0,0 @@ -/datum/round_event_control/blob - name = "Blob" - typepath = /datum/round_event/ghost_role/blob - weight = 10 - max_occurrences = 1 - - min_players = 20 - - gamemode_blacklist = list("blob") //Just in case a blob survives that long - -/datum/round_event/ghost_role/blob - announceChance = 0 - role_name = "blob overmind" - fakeable = TRUE - -/datum/round_event/ghost_role/blob/announce(fake) - priority_announce("Confirmed outbreak of level 5 biohazard in the vicinity of [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/ai/outbreak5.ogg') - -/datum/round_event/ghost_role/blob/spawn_role() - if(!GLOB.blobstart.len) - return MAP_ERROR - var/list/candidates = get_candidates(ROLE_BLOB, null, ROLE_BLOB) - if(!candidates.len) - return NOT_ENOUGH_PLAYERS - var/mob/dead/observer/new_blob = pick(candidates) - var/mob/camera/blob/BC = new_blob.become_overmind() - spawned_mobs += BC - message_admins("[ADMIN_LOOKUPFLW(BC)] has been made into a blob overmind by an event.") - log_game("[key_name(BC)] was spawned as a blob overmind by an event.") - return SUCCESSFUL_SPAWN 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/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm index f38d21b868c4..43e60c3137c3 100644 --- a/code/modules/events/holiday/xmas.dm +++ b/code/modules/events/holiday/xmas.dm @@ -74,13 +74,3 @@ /datum/round_event/santa/announce(fake) priority_announce("Santa is coming to town!", "Unknown Transmission") - -/datum/round_event/santa/start() - var/list/candidates = pollGhostCandidates("Santa is coming to town! Do you want to be Santa?", poll_time=150) - if(LAZYLEN(candidates)) - var/mob/dead/observer/C = pick(candidates) - santa = new /mob/living/carbon/human(pick(GLOB.blobstart)) - santa.key = C.key - - var/datum/antagonist/santa/A = new - santa.mind.add_antag_datum(A) 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/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/events/wizard/blobies.dm b/code/modules/events/wizard/blobies.dm deleted file mode 100644 index 7438b462f60c..000000000000 --- a/code/modules/events/wizard/blobies.dm +++ /dev/null @@ -1,10 +0,0 @@ -/datum/round_event_control/wizard/blobies //avast! - name = "Zombie Outbreak" - weight = 3 - typepath = /datum/round_event/wizard/blobies - max_occurrences = 3 - -/datum/round_event/wizard/blobies/start() - - for(var/mob/living/carbon/human/H in GLOB.dead_mob_list) - new /mob/living/simple_animal/hostile/blob/blobspore(H.loc) diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm deleted file mode 100644 index e99b0d754910..000000000000 --- a/code/modules/events/wizard/curseditems.dm +++ /dev/null @@ -1,60 +0,0 @@ -/datum/round_event_control/wizard/cursed_items //fashion disasters - name = "Cursed Items" - weight = 3 - typepath = /datum/round_event/wizard/cursed_items - max_occurrences = 3 - earliest_start = 0 MINUTES - -//Note about adding items to this: Because of how NODROP_1 works if an item spawned to the hands can also be equiped to a slot -//it will be able to be put into that slot from the hand, but then get stuck there. To avoid this make a new subtype of any -//item you want to equip to the hand, and set its slots_flags = null. Only items equiped to hands need do this. - -/datum/round_event/wizard/cursed_items/start() - var/item_set = pick("wizardmimic", "swords", "bigfatdoobie", "boxing", "voicemodulators", "catgirls2015") - var/list/loadout[SLOTS_AMT] - var/ruins_spaceworthiness - var/ruins_wizard_loadout - - switch(item_set) - if("wizardmimic") - loadout[ITEM_SLOT_OCLOTHING] = /obj/item/clothing/suit/wizrobe - loadout[ITEM_SLOT_FEET] = /obj/item/clothing/shoes/sandal/magic - loadout[ITEM_SLOT_HEAD] = /obj/item/clothing/head/wizard - ruins_spaceworthiness = 1 - if("swords") - loadout[ITEM_SLOT_HANDS] = /obj/item/katana/cursed - if("bigfatdoobie") - loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy - ruins_spaceworthiness = 1 - if("boxing") - loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/luchador - loadout[ITEM_SLOT_GLOVES] = /obj/item/clothing/gloves/boxing - ruins_spaceworthiness = 1 - if("voicemodulators") - loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/chameleon - if("catgirls2015") - loadout[ITEM_SLOT_HEAD] = /obj/item/clothing/head/kitty - ruins_spaceworthiness = 1 - ruins_wizard_loadout = 1 - - for(var/mob/living/carbon/human/H as anything in GLOB.human_list) - if(ruins_spaceworthiness && isspaceturf(H.loc) || isplasmaman(H)) - continue //#savetheminers - if(ruins_wizard_loadout && iswizard(H)) - continue - if(item_set == "catgirls2015") //Wizard code means never having to say you're sorry - H.gender = FEMALE - for(var/i in 1 to loadout.len) - if(loadout[i]) - var/obj/item/J = loadout[i] - var/obj/item/I = new J //dumb but required because of byond throwing a fit anytime new gets too close to a list - H.dropItemToGround(H.get_item_by_slot(i), TRUE) - H.equip_to_slot_or_del(I, i) - ADD_TRAIT(I, TRAIT_NODROP, CURSED_ITEM_TRAIT) - I.item_flags |= DROPDEL - I.name = "cursed " + I.name - - for(var/mob/living/carbon/human/H as anything in GLOB.human_list) - var/datum/effect_system/smoke_spread/smoke = new - smoke.set_up(0, H.loc) - smoke.start() 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/faction/faction_datum.dm b/code/modules/faction/faction_datum.dm new file mode 100644 index 000000000000..450ee9688953 --- /dev/null +++ b/code/modules/faction/faction_datum.dm @@ -0,0 +1,62 @@ +/datum/faction + var/name + var/parent_faction + var/list/prefixes + +/datum/faction/syndicate + name = FACTION_SYNDICATE + parent_faction = /datum/faction/syndicate + prefixes = list("SEV", "SSV") + +/datum/faction/syndicate/ngr + name = FACTION_NGR + prefixes = list("NGRV") + +/datum/faction/syndicate/cybersun + name = FACTION_CYBERSUN + prefixes = list("CSSV") + +/datum/faction/syndicate/suns + name = FACTION_SUNS + prefixes = list("SUNS") + +/datum/faction/solgov + name = FACTION_SOLGOV + prefixes = list("SCSV") + +/datum/faction/srm + name = FACTION_SRM + prefixes = list("SRSV") + +/datum/faction/inteq + name = FACTION_INTEQ + prefixes = list("IRMV") + +/datum/faction/clip + name = FACTION_CLIP + prefixes = list("CMSV", "CMGSV") + +/datum/faction/nt + name = FACTION_NT + parent_faction = /datum/faction/nt + prefixes = list("NTSV") + +/datum/faction/nt/ns_logi + name = FACTION_NS_LOGI + prefixes = list("NSSV") + +/datum/faction/nt/vigilitas + name = FACTION_VIGILITAS + prefixes = list("VISV") + +/datum/faction/frontier + name = FACTION_FRONTIER + prefixes = list("FFV") + +/datum/faction/pgf + name = FACTION_PGF + prefixes = list("PGF", "PGFMC", "PGFN") + +/datum/faction/independent + name = FACTION_INDEPENDENT + prefixes = list("SV", "IMV", "ISV") diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index f474018739d0..4f2c3cd1343a 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -1,6 +1,6 @@ // Fish path used for autogenerated fish /obj/item/fish - name = "generic looking aquarium fish" + name = "generic fish" desc = "very bland" icon = 'icons/obj/aquarium.dmi' icon_state = "trout" //Replace this with "bugfish" from tg please diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 4774ea852424..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 @@ -1023,11 +1023,11 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(prob(25)) target.halitem.icon_state = "plasticx40" if(3) //sword - target.halitem.icon = 'icons/obj/transforming_energy.dmi' + target.halitem.icon = 'icons/obj/weapon/energy.dmi' target.halitem.icon_state = "sword0" target.halitem.name = "Energy Sword" if(4) //stun baton - target.halitem.icon = 'icons/obj/items_and_weapons.dmi' + target.halitem.icon = 'icons/obj/items.dmi' target.halitem.icon_state = "stunbaton" target.halitem.name = "Stun Baton" if(5) //emag diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 32c4b1a9a09f..ec10f7dfb0f2 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -373,7 +373,7 @@ desc = "A popular Gezenan drink made of fermented honey and spices, known as Gezenan Dark Mead, or GDM for short." icon_state = "beer" list_reagents = list(/datum/reagent/consumable/ethanol/beer = 30) - foodtype = GRAIN | ALCOHOL + foodtype = SUGAR | ALCOHOL custom_price = 60 /obj/item/reagent_containers/food/drinks/beer/light @@ -762,7 +762,7 @@ desc = "If you ever wondered where air came from..." list_reagents = list(/datum/reagent/oxygen = 6, /datum/reagent/nitrogen = 24) icon = 'icons/obj/food/ration.dmi' - icon_state = "ration_package" + icon_state = "ration_drink" drop_sound = 'sound/items/handling/cardboardbox_drop.ogg' pickup_sound = 'sound/items/handling/cardboardbox_pickup.ogg' in_container = TRUE @@ -773,7 +773,7 @@ /obj/item/reagent_containers/food/drinks/ration/proc/open_ration(mob/user) to_chat(user, "You tear open \the [src].") - playsound(user.loc, 'sound/effects/rip3.ogg', 50) + playsound(user.loc, 'sound/items/glass_cap.ogg', 50) reagents.flags |= OPENCONTAINER spillable = TRUE diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 57d84ee22397..0aa4ac7fad38 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -202,10 +202,10 @@ /obj/item/reagent_containers/food/drinks/bottle/kahlua name = "Keh'Lu'Tex Liqueur" - desc = "An adapted recipe of a caffeine-mixed liqueur originating from Reh'himl, which replaces it's original ingredient with coffee from Terra." + desc = "An adapted recipe of a caffeine-mixed liqueur originating from Reh'himl, which replaces its original ingredient with coffee from Terra." icon_state = "kahluabottle" list_reagents = list(/datum/reagent/consumable/ethanol/kahlua = 100) - foodtype = VEGETABLES + foodtype = SUGAR | ALCOHOL //it's coffee and rum . /obj/item/reagent_containers/food/drinks/bottle/goldschlager name = "Student-Union's Gold Standard" @@ -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) @@ -602,7 +608,7 @@ desc = "Legend says something amazing happens when you collect enough of these." custom_price = 100 custom_premium_price = 110 - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' icon_state = "sandstar" w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/gold = 200) @@ -618,6 +624,10 @@ custom_materials = list(/datum/material/wood = 800) w_class = WEIGHT_CLASS_BULKY var/sealed = FALSE + var/max_bottles = 6 + var/list/valid_bottles = list(/obj/item/reagent_containers/food/drinks/beer, + /obj/item/reagent_containers/food/drinks/ale, + /obj/item/reagent_containers/food/drinks/bottle) /obj/item/storage/bottles/Initialize() . = ..() @@ -628,12 +638,8 @@ var/datum/component/storage/S = GetComponent(/datum/component/storage) S.max_w_class = WEIGHT_CLASS_NORMAL S.max_combined_w_class = 16 - S.max_items = 6 - S.set_holdable(list( - /obj/item/reagent_containers/food/drinks/beer, - /obj/item/reagent_containers/food/drinks/ale, - /obj/item/reagent_containers/food/drinks/bottle - )) + S.max_items = max_bottles + S.set_holdable(valid_bottles) S.locked = sealed /obj/item/storage/bottles/update_icon_state() @@ -668,3 +674,17 @@ /obj/item/storage/bottles/sandblast/PopulateContents() for(var/i in 1 to 6) new /obj/item/reagent_containers/food/drinks/bottle/sarsaparilla(src) + +/obj/item/storage/bottles/moonshine + name = "moonshine bottle crate" + desc = "Holds four bottles of the strongest hooch this side of the Frontier." + icon_state = "hoochcrate" + max_bottles = 4 + valid_bottles = list(/obj/item/reagent_containers/food/drinks/bottle/moonshine) + +/obj/item/storage/bottles/moonshine/PopulateContents() + for(var/i in 1 to 4) + new /obj/item/reagent_containers/food/drinks/bottle/moonshine(src) + +/obj/item/storage/bottles/moonshine/sealed + sealed = TRUE 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/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm index fc3df2f74713..3147ee9a5de4 100644 --- a/code/modules/food_and_drinks/food/customizables.dm +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -45,7 +45,7 @@ to_chat(user, "The ingredient is too big for [src]!") else if((ingredients.len >= ingMax) || (reagents.total_volume >= volume)) to_chat(user, "You can't add more ingredients to [src]!") - else if(istype(I, /obj/item/reagent_containers/food/snacks/pizzaslice/custom) || istype(I, /obj/item/reagent_containers/food/snacks/cakeslice/custom)) + else if(istype(I, /obj/item/reagent_containers/food/snacks/pizzaslice/custom)) to_chat(user, "Adding [I.name] to [src] would make a mess.") else if(!user.transferItemToLoc(I, src)) @@ -170,26 +170,6 @@ foodtype = GRAIN -/obj/item/reagent_containers/food/snacks/customizable/bread - name = "bread" - ingMax = 6 - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/custom - slices_num = 5 - icon = 'icons/obj/food/burgerbread.dmi' - icon_state = "tofubread" - foodtype = GRAIN - - -/obj/item/reagent_containers/food/snacks/customizable/cake - name = "cake" - ingMax = 6 - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/custom - slices_num = 5 - icon = 'icons/obj/food/piecake.dmi' - icon_state = "plaincake" - foodtype = GRAIN | DAIRY - - /obj/item/reagent_containers/food/snacks/customizable/kebab name = "kebab" desc = "Delicious food on a stick." @@ -199,15 +179,6 @@ ingMax = 6 icon_state = "rod" -/obj/item/reagent_containers/food/snacks/customizable/pasta - name = "spaghetti" - desc = "Noodles. With stuff. Delicious." - ingredients_placement = INGREDIENTS_SCATTER - ingMax = 6 - icon = 'icons/obj/food/pizzaspaghetti.dmi' - icon_state = "spaghettiboiled" - foodtype = GRAIN - /obj/item/reagent_containers/food/snacks/customizable/pie name = "pie" @@ -238,43 +209,6 @@ icon_state = "bowl" -/obj/item/reagent_containers/food/snacks/customizable/sandwich - name = "toast" - desc = "A timeless classic." - ingredients_placement = INGREDIENTS_STACK - icon = 'icons/obj/food/burgerbread.dmi' - icon_state = "breadslice" - var/finished = 0 - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/customizable/sandwich/initialize_custom_food(obj/item/reagent_containers/BASE, obj/item/I, mob/user) - icon_state = BASE.icon_state - ..() - -/obj/item/reagent_containers/food/snacks/customizable/sandwich/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/reagent_containers/food/snacks/breadslice)) //we're finishing the custom food. - var/obj/item/reagent_containers/food/snacks/breadslice/BS = I - if(finished) - return - to_chat(user, "You finish the [src.name].") - finished = 1 - name = "[customname] sandwich" - BS.reagents.trans_to(src, BS.reagents.total_volume, transfered_by = user) - ingMax = ingredients.len //can't add more ingredients after that - var/mutable_appearance/TOP = mutable_appearance(icon, "[BS.icon_state]") - TOP.pixel_y = 2 * ingredients.len + 3 - add_overlay(TOP) - if(istype(BS, /obj/item/reagent_containers/food/snacks/breadslice/custom)) - var/mutable_appearance/filling = new(icon, "[initial(BS.icon_state)]_filling") - filling.color = BS.filling_color - filling.pixel_y = 2 * ingredients.len + 3 - add_overlay(filling) - qdel(BS) - return - else - ..() - - /obj/item/reagent_containers/food/snacks/customizable/soup name = "soup" desc = "A bowl with liquid and... stuff in it." diff --git a/code/modules/food_and_drinks/food/ration.dm b/code/modules/food_and_drinks/food/ration.dm index 261fe707ed7f..6766a6aedbda 100644 --- a/code/modules/food_and_drinks/food/ration.dm +++ b/code/modules/food_and_drinks/food/ration.dm @@ -83,7 +83,7 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 4) /obj/item/reagent_containers/food/snacks/ration/snack - icon_state = "ration_side" + icon_state = "ration_snack" list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 3) /obj/item/reagent_containers/food/snacks/ration/bar @@ -92,7 +92,7 @@ /obj/item/reagent_containers/food/snacks/ration/condiment name = "condiment pack" - desc = "Just your average condiment pacl." + desc = "Just your average condiment pack." icon_state = "ration_condi" volume = 10 amount_per_transfer_from_this = 10 @@ -126,7 +126,7 @@ /obj/item/reagent_containers/food/snacks/ration/pack name = "powder pack" desc = "Mix into a bottle of water and shake." - icon_state = "ration_condi" + icon_state = "ration_pack" volume = 10 amount_per_transfer_from_this = 10 possible_transfer_amounts = list() @@ -742,84 +742,105 @@ /obj/item/reagent_containers/food/snacks/ration/condiment/cheese_spread name = "cheese spread pack" + filling_color = "#ffcc00" list_reagents = list(/datum/reagent/consumable/cheese_spread = 8) /obj/item/reagent_containers/food/snacks/ration/condiment/hot_cheese_spread name = "jalapeno cheddar cheese spread pack" + filling_color = "#ffaa00" list_reagents = list(/datum/reagent/consumable/cheese_spread = 5 , /datum/reagent/consumable/capsaicin = 3) /obj/item/reagent_containers/food/snacks/ration/condiment/garlic_cheese_spread name = "garlic parmesan cheese spread pack" + filling_color = "#ffff00" list_reagents = list(/datum/reagent/consumable/cheese_spread = 8) /obj/item/reagent_containers/food/snacks/ration/condiment/bacon_cheddar_cheese_spread name = "bacon cheddar cheese spread pack" + filling_color = "#ff9900" list_reagents = list(/datum/reagent/consumable/cheese_spread = 8) /obj/item/reagent_containers/food/snacks/ration/condiment/peanut_butter name = "peanut butter pack" + filling_color = "#664400" list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/peanut_butter = 5) /obj/item/reagent_containers/food/snacks/ration/condiment/chunky_peanut_butter name = "chunky peanut butter pack" + filling_color = "#663300" list_reagents = list(/datum/reagent/consumable/peanut_butter = 10) /obj/item/reagent_containers/food/snacks/ration/condiment/maple_syrup name = "maple syrup pack" + filling_color = "#661100" list_reagents = list(/datum/reagent/consumable/sugar = 10) /obj/item/reagent_containers/food/snacks/ration/pack/chocolate_protein_beverage name = "chocolate hazelnut protein drink powder pack" + filling_color = "#664400" list_reagents = list(/datum/reagent/consumable/coco = 5, /datum/reagent/consumable/eggyolk = 5) /obj/item/reagent_containers/food/snacks/ration/pack/fruit_beverage name = "fruit punch beverage powder, carb-electrolyte pack" + filling_color = "#ff4400" list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/applejuice = 2, /datum/reagent/consumable/orangejuice = 2) /obj/item/reagent_containers/food/snacks/ration/pack/fruit_smoothie_beverage name = "tropical blend fruit and vegetable smoothie powder pack" + filling_color = "#ffaa00" list_reagents = list(/datum/reagent/consumable/pineapplejuice = 3, /datum/reagent/consumable/orangejuice = 3, /datum/reagent/consumable/eggyolk = 3) /obj/item/reagent_containers/food/snacks/ration/pack/grape_beverage name = "grape beverage powder, carb-fortified pack" + filling_color = "#9900ff" list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/grapejuice = 5) /obj/item/reagent_containers/food/snacks/ration/pack/grape_beverage_sugar_free name = "sugar-free grape beverage base powder" + filling_color = "#9900ff" list_reagents = list(/datum/reagent/consumable/grapejuice = 10) /obj/item/reagent_containers/food/snacks/ration/pack/lemonade_beverage name = "lemonade drink powder pack" + filling_color = "#ffff80" list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/lemonjuice = 5) /obj/item/reagent_containers/food/snacks/ration/pack/lemonade_beverage_suger_free name = "lemonade sugar-free beverage base pack" + filling_color = "#ffff00" list_reagents = list(/datum/reagent/consumable/lemonjuice = 10) /obj/item/reagent_containers/food/snacks/ration/pack/orange_beverage name = "orange beverage powder, carb-fortified pack" + filling_color = "#ffbb00" list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/orangejuice = 5) /obj/item/reagent_containers/food/snacks/ration/pack/orange_beverage_sugar_free name = "orange beverage base, sugar-free pack" + filling_color = "#ff9900" list_reagents = list(/datum/reagent/consumable/orangejuice = 10) /obj/item/reagent_containers/food/snacks/ration/pack/cherry_beverage name = "cherry high-energy beverage powder pack" + filling_color = "#ff5555" list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/cherryjelly = 5) /obj/item/reagent_containers/food/snacks/ration/pack/pineapple_beverage name = "pinapple fruit beverage base pack" + filling_color = "#fff111" list_reagents = list(/datum/reagent/consumable/pineapplejuice = 10) /obj/item/reagent_containers/food/snacks/ration/pack/freeze_dried_coffee_orange name = "freeze-dried coffee flavored with orange pack" + filling_color = "#cc7400" list_reagents = list(/datum/reagent/consumable/coffee = 5, /datum/reagent/consumable/orangejuice = 3) /obj/item/reagent_containers/food/snacks/ration/pack/freeze_dried_coffee_chocolate name = "freeze-dried coffee flavored with chocolate pack" + filling_color = "#803300" list_reagents = list(/datum/reagent/consumable/coffee = 5, /datum/reagent/consumable/coco = 3) /obj/item/reagent_containers/food/snacks/ration/pack/freeze_dried_coffee_hazelnut name = "freeze-dried coffee flavored with hazelnut pack" + filling_color = "#553300" list_reagents = list(/datum/reagent/consumable/coffee = 5, /datum/reagent/consumable/coco = 3) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 61121a3ca950..9e84c272dbb6 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -56,6 +56,16 @@ All foods are distributed among various categories. Use common sense. //Placeholder for effect that trigger on eating that aren't tied to reagents. +/obj/item/reagent_containers/food/snacks/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_ITEM_FRIED, PROC_REF(on_fried)) + + +/obj/item/reagent_containers/food/snacks/proc/on_fried(fry_object) + reagents.trans_to(fry_object, reagents.total_volume) + qdel() + return COMSIG_FRYING_HANDLED + /obj/item/reagent_containers/food/snacks/add_initial_reagents() if(tastes && tastes.len) if(list_reagents) @@ -175,7 +185,7 @@ All foods are distributed among various categories. Use common sense. if(W.w_class > WEIGHT_CLASS_SMALL) to_chat(user, span_warning("[S] is too big for [src]!")) return FALSE - if(istype(S) && (!S.customfoodfilling || istype(W, /obj/item/reagent_containers/food/snacks/customizable) || istype(W, /obj/item/reagent_containers/food/snacks/pizzaslice/custom) || istype(W, /obj/item/reagent_containers/food/snacks/cakeslice/custom))) + if(!S.customfoodfilling || istype(W, /obj/item/reagent_containers/food/snacks/customizable) || istype(W, /obj/item/reagent_containers/food/snacks/pizzaslice/custom)) to_chat(user, span_warning("[src] can't be filled with [S]!")) return FALSE if(contents.len >= 20) @@ -337,26 +347,10 @@ All foods are distributed among various categories. Use common sense. /// All the food items that can store an item inside itself, like bread or cake. /obj/item/reagent_containers/food/snacks/store w_class = WEIGHT_CLASS_NORMAL - var/stored_item = 0 -/obj/item/reagent_containers/food/snacks/store/attackby(obj/item/W, mob/user, params) - ..() - if(W.w_class <= WEIGHT_CLASS_SMALL & !istype(W, /obj/item/reagent_containers/food/snacks)) //can't slip snacks inside, they're used for custom foods. - if(W.get_sharpness()) - return 0 - if(stored_item) - return 0 - if(!iscarbon(user)) - return 0 - if(contents.len >= 20) - to_chat(user, "[src] is full.") - return 0 - to_chat(user, "You slip [W] inside [src].") - user.transferItemToLoc(W, src) - add_fingerprint(user) - contents += W - stored_item = 1 - return 1 // no afterattack here +/obj/item/reagent_containers/food/snacks/store/Initialize() + . = ..() + AddComponent(/datum/component/food_storage) /obj/item/reagent_containers/food/snacks/MouseDrop(atom/over) var/turf/T = get_turf(src) diff --git a/code/modules/food_and_drinks/food/snacks/dough.dm b/code/modules/food_and_drinks/food/snacks/dough.dm index 9567690dc71c..4f5f06379927 100644 --- a/code/modules/food_and_drinks/food/snacks/dough.dm +++ b/code/modules/food_and_drinks/food/snacks/dough.dm @@ -7,7 +7,7 @@ desc = "A piece of dough." icon = 'icons/obj/food/food_ingredients.dmi' icon_state = "dough" - cooked_type = /obj/item/reagent_containers/food/snacks/store/bread/plain + cooked_type = /obj/item/food/bread/plain list_reagents = list(/datum/reagent/consumable/nutriment = 6) w_class = WEIGHT_CLASS_NORMAL tastes = list("dough" = 1) @@ -82,7 +82,7 @@ desc = "Cook it to get a cake." icon = 'icons/obj/food/food_ingredients.dmi' icon_state = "cakebatter" - cooked_type = /obj/item/reagent_containers/food/snacks/store/cake/plain + cooked_type = /obj/item/food/cake/plain list_reagents = list(/datum/reagent/consumable/nutriment = 9) w_class = WEIGHT_CLASS_NORMAL tastes = list("batter" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm deleted file mode 100644 index 13342a968900..000000000000 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ /dev/null @@ -1,302 +0,0 @@ - -/obj/item/reagent_containers/food/snacks/store/bread - icon = 'icons/obj/food/burgerbread.dmi' - volume = 80 - slices_num = 5 - tastes = list("bread" = 10) - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/store/bread/Initialize() - . = ..() - AddElement(/datum/element/dunkable, 10) - -/obj/item/reagent_containers/food/snacks/breadslice - icon = 'icons/obj/food/burgerbread.dmi' - bitesize = 2 - custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/sandwich - filling_color = "#FFA500" - list_reagents = list(/datum/reagent/consumable/nutriment = 2) - slot_flags = ITEM_SLOT_HEAD - customfoodfilling = 0 //to avoid infinite bread-ception - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/breadslice/Initialize() - . = ..() - AddElement(/datum/element/dunkable, 10) - -/obj/item/reagent_containers/food/snacks/store/bread/plain - name = "bread" - desc = "Some plain old earthen bread." - icon_state = "bread" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 7) - list_reagents = list(/datum/reagent/consumable/nutriment = 10) - custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/bread - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/plain - tastes = list("bread" = 10) - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/breadslice/plain - name = "bread slice" - desc = "A slice of home." - icon_state = "breadslice" - customfoodfilling = 1 - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/breadslice/moldy - name = "moldy bread slice" - desc = "Entire stations have been ripped apart over arguing whether this is still good to eat." - icon_state = "moldybreadslice" - customfoodfilling = 0 - bonus_reagents = list(/datum/reagent/consumable/mold = 10) - tastes = list("decaying fungus" = 1) - foodtype = GROSS - -/obj/item/reagent_containers/food/snacks/store/bread/meat - name = "meatbread loaf" - desc = "The culinary base of every self-respecting eloquen/tg/entleman." - icon_state = "meatbread" - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/meat - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10) - list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("bread" = 10, "meat" = 10) - foodtype = GRAIN | MEAT - -/obj/item/reagent_containers/food/snacks/breadslice/meat - name = "meatbread slice" - desc = "A slice of delicious meatbread." - icon_state = "meatbreadslice" - foodtype = GRAIN | MEAT - -/obj/item/reagent_containers/food/snacks/store/bread/xenomeat - name = "xenomeatbread loaf" - desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical." - icon_state = "xenomeatbread" - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/xenomeat - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10) - list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("bread" = 10, "acid" = 10) - foodtype = GRAIN | MEAT - -/obj/item/reagent_containers/food/snacks/breadslice/xenomeat - name = "xenomeatbread slice" - desc = "A slice of delicious meatbread. Extra Heretical." - icon_state = "xenobreadslice" - filling_color = "#32CD32" - list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) - foodtype = GRAIN | MEAT - -/obj/item/reagent_containers/food/snacks/store/bread/spidermeat - name = "spider meat loaf" - desc = "Reassuringly green meatloaf made from spider meat." - icon_state = "spidermeatbread" - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/spidermeat - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10) - list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/toxin = 15, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("bread" = 10, "cobwebs" = 5) - foodtype = GRAIN | MEAT | TOXIC - -/obj/item/reagent_containers/food/snacks/breadslice/spidermeat - name = "spider meat bread slice" - desc = "A slice of meatloaf made from an animal that most likely still wants you dead." - icon_state = "spiderbreadslice" - filling_color = "#7CFC00" - list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/vitamin = 1) - foodtype = GRAIN | MEAT | TOXIC - -/obj/item/reagent_containers/food/snacks/store/bread/banana - name = "banana-nut bread" - desc = "A heavenly and filling treat." - icon_state = "bananabread" - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/banana - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/banana = 20) - list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/banana = 20) - tastes = list("bread" = 10) // bananjuice will also flavour - foodtype = GRAIN | FRUIT - - -/obj/item/reagent_containers/food/snacks/breadslice/banana - name = "banana-nut bread slice" - desc = "A slice of delicious banana bread." - icon_state = "bananabreadslice" - filling_color = "#FFD700" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/banana = 4) - foodtype = GRAIN | FRUIT - -/obj/item/reagent_containers/food/snacks/store/bread/tofu - name = "Tofubread" - desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers." - icon_state = "tofubread" - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/tofu - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10) - list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("bread" = 10, "tofu" = 10) - foodtype = GRAIN | VEGETABLES - -/obj/item/reagent_containers/food/snacks/breadslice/tofu - name = "tofubread slice" - desc = "A slice of delicious tofubread." - icon_state = "tofubreadslice" - filling_color = "#FF8C00" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) - foodtype = GRAIN | VEGETABLES - -/obj/item/reagent_containers/food/snacks/store/bread/creamcheese - name = "cream cheese bread" - desc = "Yum yum yum!" - icon_state = "creamcheesebread" - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/creamcheese - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) - list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("bread" = 10, "cheese" = 10) - foodtype = GRAIN | DAIRY - -/obj/item/reagent_containers/food/snacks/breadslice/creamcheese - name = "cream cheese bread slice" - desc = "A slice of yum!" - icon_state = "creamcheesebreadslice" - filling_color = "#FF8C00" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) - foodtype = GRAIN | DAIRY - -/obj/item/reagent_containers/food/snacks/store/bread/mimana - name = "mimana bread" - desc = "Best eaten in silence." - icon_state = "mimanabread" - slice_path = /obj/item/reagent_containers/food/snacks/breadslice/mimana - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) - list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/toxin/mutetoxin = 5, /datum/reagent/consumable/nothing = 5, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("bread" = 10, "silence" = 10) - foodtype = GRAIN | FRUIT - -/obj/item/reagent_containers/food/snacks/breadslice/mimana - name = "mimana bread slice" - desc = "A slice of silence!" - icon_state = "mimanabreadslice" - filling_color = "#C0C0C0" - list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/mutetoxin = 1, /datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - foodtype = GRAIN | FRUIT - -/obj/item/reagent_containers/food/snacks/breadslice/custom - name = "bread slice" - icon_state = "tofubreadslice" - filling_color = "#FFFFFF" - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/baguette - name = "baguette" - desc = "Bon appetit!" - icon = 'icons/obj/food/burgerbread.dmi' - icon_state = "baguette" - item_state = "baguette" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) - list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) - bitesize = 3 - w_class = WEIGHT_CLASS_NORMAL - slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT - attack_verb = list("touche'd") - tastes = list("bread" = 1) - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/garlicbread - name = "garlic bread" - desc = "Alas, it is limited." - icon = 'icons/obj/food/burgerbread.dmi' - icon_state = "garlicbread" - item_state = "garlicbread" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2) - list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 4, /datum/reagent/consumable/garlic = 2) - bitesize = 3 - tastes = list("bread" = 1, "garlic" = 1, "butter" = 1) - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/deepfryholder - name = "Deep Fried Foods Holder Obj" - desc = "If you can see this description the code for the deep fryer fucked up." - icon = 'icons/obj/food/food.dmi' - icon_state = "" - bitesize = 2 - -/obj/item/reagent_containers/food/snacks/deepfryholder/Initialize(mapload, obj/item/fried) - . = ..() - name = fried.name //We'll determine the other stuff when it's actually removed - appearance = fried.appearance - layer = initial(layer) - plane = initial(plane) - lefthand_file = fried.lefthand_file - righthand_file = fried.righthand_file - item_state = fried.item_state - desc = fried.desc - w_class = fried.w_class - slowdown = fried.slowdown - equip_delay_self = fried.equip_delay_self - equip_delay_other = fried.equip_delay_other - strip_delay = fried.strip_delay - species_exception = fried.species_exception - item_flags = fried.item_flags - obj_flags = fried.obj_flags - inhand_x_dimension = fried.inhand_x_dimension - inhand_y_dimension = fried.inhand_y_dimension - - if(istype(fried, /obj/item/reagent_containers/food/snacks)) - fried.reagents.trans_to(src, fried.reagents.total_volume) - qdel(fried) - else - fried.forceMove(src) - -/obj/item/reagent_containers/food/snacks/deepfryholder/Destroy() - if(contents) - QDEL_LIST(contents) - . = ..() - -/obj/item/reagent_containers/food/snacks/deepfryholder/On_Consume(mob/living/eater) - if(contents) - QDEL_LIST(contents) - ..() - -/obj/item/reagent_containers/food/snacks/deepfryholder/proc/fry(cook_time = 30) - switch(cook_time) - if(0 to 15) - add_atom_colour(rgb(166,103,54), FIXED_COLOUR_PRIORITY) - name = "lightly-fried [name]" - desc = "[desc] It's been lightly fried in a deep fryer." - if(16 to 49) - add_atom_colour(rgb(103,63,24), FIXED_COLOUR_PRIORITY) - name = "fried [name]" - desc = "[desc] It's been fried, increasing its tastiness value by [rand(1, 75)]%." - if(50 to 59) - add_atom_colour(rgb(63,23,4), FIXED_COLOUR_PRIORITY) - name = "deep-fried [name]" - desc = "[desc] Deep-fried to perfection." - if(60 to INFINITY) - add_atom_colour(rgb(33,19,9), FIXED_COLOUR_PRIORITY) - name = "\proper the physical manifestation of the very concept of fried foods" - desc = "A heavily-fried...something. Who can tell anymore?" - filling_color = color - foodtype |= FRIED - -/obj/item/reagent_containers/food/snacks/butterbiscuit - name = "butter biscuit" - desc = "Well butter my biscuit!" - icon = 'icons/obj/food/food.dmi' - icon_state = "butterbiscuit" - filling_color = "#F0E68C" - list_reagents = list(/datum/reagent/consumable/nutriment = 5) - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("butter" = 1, "biscuit" = 1) - foodtype = GRAIN | BREAKFAST - -/obj/item/reagent_containers/food/snacks/butterdog - name = "butterdog" - desc = "Made from exotic butters." - icon = 'icons/obj/food/food.dmi' - icon_state = "butterdog" - bitesize = 1 - filling_color = "#F1F49A" - list_reagents = list(/datum/reagent/consumable/nutriment = 5) - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("butter", "exotic butter") - foodtype = GRAIN | DAIRY - -/obj/item/reagent_containers/food/snacks/butterdog/ComponentInitialize() - . = ..() - AddComponent(/datum/component/slippery, 80) diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm deleted file mode 100644 index d6f6151d47ac..000000000000 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ /dev/null @@ -1,431 +0,0 @@ -/obj/item/reagent_containers/food/snacks/store/cake - icon = 'icons/obj/food/piecake.dmi' - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/plain - slices_num = 5 - bitesize = 3 - volume = 80 - list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("cake" = 1) - foodtype = GRAIN | DAIRY - -/obj/item/reagent_containers/food/snacks/cakeslice - icon = 'icons/obj/food/piecake.dmi' - trash = /obj/item/trash/plate - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) - customfoodfilling = 0 //to avoid infinite cake-ception - tastes = list("cake" = 1) - foodtype = GRAIN | DAIRY - -/obj/item/reagent_containers/food/snacks/store/cake/plain - name = "plain cake" - desc = "A plain cake, not a lie." - icon_state = "plaincake" - custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/cake - bonus_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) - tastes = list("sweetness" = 2,"cake" = 5) - foodtype = GRAIN | DAIRY | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/plain - name = "plain cake slice" - desc = "Just a slice of cake, it is enough for everyone." - icon_state = "plaincake_slice" - filling_color = "#FFD700" - customfoodfilling = 1 - tastes = list("sweetness" = 2,"cake" = 5) - foodtype = GRAIN | DAIRY | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/carrot - name = "carrot cake" - desc = "A favorite desert of a certain wascally wabbit. Not a lie." - icon_state = "carrotcake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/carrot - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/medicine/oculine = 5, /datum/reagent/consumable/nutriment/vitamin = 10) - list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/medicine/oculine = 10, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1) - foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/carrot - name = "carrot cake slice" - desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie." - icon_state = "carrotcake_slice" - filling_color = "#FFA500" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/oculine = 2, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1) - foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/brain - name = "brain cake" - desc = "A squishy cake-thing." - icon_state = "braincake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brain - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/medicine/mannitol = 10, /datum/reagent/consumable/nutriment/vitamin = 10) - list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/medicine/mannitol = 10, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1) - foodtype = GRAIN | DAIRY | MEAT | GROSS | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/brain - name = "brain cake slice" - desc = "Lemme tell you something about prions. THEY'RE DELICIOUS." - icon_state = "braincakeslice" - filling_color = "#FF69B4" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/mannitol = 2, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1) - foodtype = GRAIN | DAIRY | MEAT | GROSS | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/cheese - name = "cheese cake" - desc = "DANGEROUSLY cheesy." - icon_state = "cheesecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/cheese - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 10) - tastes = list("cake" = 4, "cream cheese" = 3) - foodtype = GRAIN | DAIRY - -/obj/item/reagent_containers/food/snacks/cakeslice/cheese - name = "cheese cake slice" - desc = "Slice of pure cheestisfaction." - icon_state = "cheesecake_slice" - filling_color = "#FFFACD" - tastes = list("cake" = 4, "cream cheese" = 3) - foodtype = GRAIN | DAIRY - -/obj/item/reagent_containers/food/snacks/store/cake/orange - name = "orange cake" - desc = "A cake with added orange." - icon_state = "orangecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/orange - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) - tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/orange - name = "orange cake slice" - desc = "Just a slice of cake, it is enough for everyone." - icon_state = "orangecake_slice" - filling_color = "#FFA500" - tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/lime - name = "lime cake" - desc = "A cake with added lime." - icon_state = "limecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/lime - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) - tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/lime - name = "lime cake slice" - desc = "Just a slice of cake, it is enough for everyone." - icon_state = "limecake_slice" - filling_color = "#00FF00" - tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/lemon - name = "lemon cake" - desc = "A cake with added lemon." - icon_state = "lemoncake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/lemon - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) - tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/lemon - name = "lemon cake slice" - desc = "Just a slice of cake, it is enough for everyone." - icon_state = "lemoncake_slice" - filling_color = "#FFEE00" - tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/chocolate - name = "chocolate cake" - desc = "A cake with added chocolate." - icon_state = "chocolatecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/chocolate - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) - tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4) - foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/chocolate - name = "chocolate cake slice" - desc = "Just a slice of cake, it is enough for everyone." - icon_state = "chocolatecake_slice" - filling_color = "#A0522D" - tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4) - foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/birthday - name = "birthday cake" - desc = "Happy Birthday little clown..." - icon_state = "birthdaycake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/birthday - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/sprinkles = 10, /datum/reagent/consumable/nutriment/vitamin = 5) - list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/sprinkles = 10, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("cake" = 5, "sweetness" = 1) - foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR - -/obj/item/reagent_containers/food/snacks/store/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/reagent_containers/food/snacks/cakeslice/birthday - name = "birthday cake slice" - desc = "A slice of your birthday." - icon_state = "birthdaycakeslice" - filling_color = "#DC143C" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sprinkles = 2, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("cake" = 5, "sweetness" = 1) - foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/birthday/energy - name = "energy cake" - desc = "Just enough calories for a whole nuclear operative squad." - icon_state = "energycake" - force = 5 - hitsound = 'sound/weapons/blade1.ogg' - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/birthday/energy - list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/sprinkles = 10, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/pacfuel = 10, /datum/reagent/consumable/liquidelectricity = 10) - tastes = list("cake" = 3, "a Vlad's Salad" = 1) - -/obj/item/reagent_containers/food/snacks/store/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,BRUTE,BODY_ZONE_HEAD) - playsound(user, 'sound/weapons/blade1.ogg', 5, TRUE) - -/obj/item/reagent_containers/food/snacks/store/cake/birthday/energy/attack(mob/living/M, mob/living/user) - . = ..() - if(HAS_TRAIT(user, TRAIT_PACIFISM) && M != user) //Prevents pacifists from attacking others directly - return - energy_bite(M, user) - -/obj/item/reagent_containers/food/snacks/store/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/reagent_containers/food/snacks/cakeslice/birthday/energy - name = "energy cake slice" - desc = "For the traitor on the go." - icon_state = "energycakeslice" - force = 2 - hitsound = 'sound/weapons/blade1.ogg' - filling_color = "#00FF00" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sprinkles = 2, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/pacfuel = 2, /datum/reagent/consumable/liquidelectricity = 2) - tastes = list("cake" = 3, "a Vlad's Salad" = 1) - -/obj/item/reagent_containers/food/snacks/cakeslice/birthday/energy/proc/energy_bite(mob/living/user) - to_chat(user, "As you eat the cake slice, you accidentally hurt yourself on the embedded energy dagger!") - user.apply_damage(18,BRUTE,BODY_ZONE_HEAD) - playsound(user, 'sound/weapons/blade1.ogg', 5, TRUE) - -/obj/item/reagent_containers/food/snacks/cakeslice/birthday/energy/attack(mob/living/M, mob/living/user) - . = ..() - if(HAS_TRAIT(user, TRAIT_PACIFISM) && M != user) //Prevents pacifists from attacking others directly - return - energy_bite(M, user) - -/obj/item/reagent_containers/food/snacks/store/cake/apple - name = "apple cake" - desc = "A cake centred with Apple." - icon_state = "applecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/apple - slices_num = 5 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) - tastes = list("cake" = 5, "sweetness" = 1, "apple" = 1) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/apple - name = "apple cake slice" - desc = "A slice of heavenly cake." - icon_state = "applecakeslice" - filling_color = "#FF4500" - tastes = list("cake" = 5, "sweetness" = 1, "apple" = 1) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/custom - name = "cake slice" - icon_state = "plaincake_slice" - filling_color = "#FFFFFF" - foodtype = GRAIN | DAIRY - -/obj/item/reagent_containers/food/snacks/store/cake/slimecake - name = "Slime cake" - desc = "A cake made of slimes. Probably not electrified." - icon_state = "slimecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/slimecake - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) - tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1) - foodtype = GRAIN | DAIRY | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/slimecake - name = "slime cake slice" - desc = "A slice of slime cake." - icon_state = "slimecake_slice" - filling_color = "#00FFFF" - tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1) - foodtype = GRAIN | DAIRY | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/pumpkinspice - name = "pumpkin spice cake" - desc = "A hollow cake with real pumpkin." - icon_state = "pumpkinspicecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pumpkinspice - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1) - foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/pumpkinspice - name = "pumpkin spice cake slice" - desc = "A spicy slice of pumpkin goodness." - icon_state = "pumpkinspicecakeslice" - filling_color = "#FFD700" - tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1) - foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/bsvc // blackberry strawberries vanilla cake - name = "blackberry and strawberry vanilla cake" - desc = "A plain cake, filled with assortment of blackberries and strawberries!" - icon_state = "blackbarry_strawberries_cake_vanilla_cake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bsvc - bonus_reagents = list(/datum/reagent/consumable/nutriment = 14, /datum/reagent/consumable/nutriment/vitamin = 4) - tastes = list("blackberry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2, "cake" = 3) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/bsvc - name = "blackberry and strawberry vanilla cake slice" - desc = "Just a slice of cake filled with assortment of blackberries and strawberries!" - icon_state = "blackbarry_strawberries_cake_vanilla_slice" - filling_color = "#FFD700" - tastes = list("blackberry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2,"cake" = 3) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/bscc // blackbarry strawberries chocolate cake - name = "blackberry and strawberry chocolate cake" - desc = "A chocolate cake, filled with assortment of blackberries and strawberries!" - icon_state = "blackbarry_strawberries_cake_coco_cake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bscc - bonus_reagents = list(/datum/reagent/consumable/nutriment = 14, /datum/reagent/consumable/nutriment/vitamin = 4, /datum/reagent/consumable/coco = 5) - tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/bscc - name = "blackberry and strawberry chocolate cake slice" - desc = "Just a slice of cake filled with assortment of blackberries and strawberries!" - icon_state = "blackbarry_strawberries_cake_coco_slice" - filling_color = "#FFD700" - tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/holy_cake - name = "angel food cake" - desc = "A cake made for angels and chaplains alike! Contains holy water." - icon_state = "holy_cake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/water/holywater = 10) - tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1) - foodtype = GRAIN | DAIRY | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice - name = "angel food cake slice" - desc = "A slice of heavenly cake." - icon_state = "holy_cake_slice" - filling_color = "#00FFFF" - tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1) - foodtype = GRAIN | DAIRY | SUGAR - -/obj/item/reagent_containers/food/snacks/store/cake/pound_cake - name = "pound cake" - desc = "A condensed cake made for filling people up quickly." - icon_state = "pound_cake" - slices_num = 7 //Its ment to feed the party - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice - bonus_reagents = list(/datum/reagent/consumable/nutriment = 60) - tastes = list("cake" = 5, "sweetness" = 1, "batter" = 1) - foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD - -/obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice - name = "pound cake slice" - desc = "A slice of condensed cake made for filling people up quickly." - icon_state = "pound_cake_slice" - filling_color = "#00FFFF" - tastes = list("cake" = 5, "sweetness" = 5, "batter" = 1) - foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD - -/obj/item/reagent_containers/food/snacks/store/cake/hardware_cake - name = "hardware cake" - desc = "A quote on quote cake that is made with electronic boards and leaks acid..." - icon_state = "hardware_cake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice - bonus_reagents = list(/datum/reagent/toxin/acid = 15, /datum/reagent/fuel/oil = 15) - tastes = list("acid" = 3, "metal" = 4, "glass" = 5) - foodtype = GRAIN | GROSS - -/obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice - name = "hardware cake slice" - desc = "A slice of electronic boards and some acid." - icon_state = "hardware_cake_slice" - filling_color = "#00FFFF" - tastes = list("acid" = 3, "metal" = 4, "glass" = 5) - foodtype = GRAIN | GROSS - -/obj/item/reagent_containers/food/snacks/store/cake/vanilla_cake - name = "vanilla cake" - desc = "A vanilla frosted cake." - icon_state = "vanillacake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/vanilla_slice - bonus_reagents = list(/datum/reagent/consumable/sugar = 15, /datum/reagent/consumable/vanilla = 15) - tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) - foodtype = GRAIN | SUGAR | DAIRY - -/obj/item/reagent_containers/food/snacks/cakeslice/vanilla_slice - name = "vanilla cake slice" - desc = "A slice of vanilla frosted cake." - icon_state = "vanillacake_slice" - filling_color = "#00FFFF" - tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) - foodtype = GRAIN | SUGAR | DAIRY - -/obj/item/reagent_containers/food/snacks/store/cake/clown_cake - name = "clown cake" - desc = "A funny cake with a clown face on it." - icon_state = "clowncake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/clown_slice - bonus_reagents = list(/datum/reagent/consumable/sugar = 15) - tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) - foodtype = GRAIN | SUGAR | DAIRY - -/obj/item/reagent_containers/food/snacks/cakeslice/clown_slice - name = "clown cake slice" - desc = "A slice of bad jokes, and silly props." - icon_state = "clowncake_slice" - filling_color = "#00FFFF" - tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) - foodtype = GRAIN | SUGAR | DAIRY - -/obj/item/reagent_containers/food/snacks/store/cake/trumpet - name = "spaceman's cake" - desc = "A spaceman's trumpet frosted cake." - icon_state = "trumpetcake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/trumpet - bonus_reagents = list(/datum/reagent/medicine/polypyr = 15, /datum/reagent/consumable/cream = 5, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/berryjuice = 5) - filling_color = "#7A3D80" - tastes = list("cake" = 4, "violets" = 2, "jam" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR - -/obj/item/reagent_containers/food/snacks/cakeslice/trumpet - name = "spaceman's cake" - desc = "A spaceman's trumpet frosted cake." - icon_state = "trumpetcakeslice" - filling_color = "#7A3D80" - tastes = list("cake" = 4, "violets" = 2, "jam" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm index 360053c28ca4..665d94e1fa9b 100644 --- a/code/modules/food_and_drinks/food/snacks_egg.dm +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -10,6 +10,8 @@ filling_color = "#A0522D" tastes = list("chocolate" = 4, "sweetness" = 1) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/egg name = "egg" @@ -18,7 +20,8 @@ list_reagents = list(/datum/reagent/consumable/eggyolk = 5) cooked_type = /obj/item/reagent_containers/food/snacks/boiledegg filling_color = "#F0E68C" - foodtype = MEAT + foodtype = MEAT | RAW + w_class = WEIGHT_CLASS_TINY grind_results = list() var/static/chick_count = 0 //I copied this from the chicken_count (note the "en" in there) variable from chicken code. @@ -106,6 +109,8 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("egg" = 1) foodtype = MEAT | BREAKFAST + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/omelette //FUCK THIS name = "omelette du fromage" diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index e35cb7eeb5fe..d79b91507c1b 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -8,20 +8,24 @@ desc = "Portable Ice-cream in its own packaging." icon = 'icons/obj/food/frozen_treats.dmi' icon_state = "icecreamsandwich" + w_class = WEIGHT_CLASS_TINY bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/ice = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/ice = 2) tastes = list("ice cream" = 1) foodtype = GRAIN | DAIRY | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ /obj/item/reagent_containers/food/snacks/strawberryicecreamsandwich name = "strawberry ice cream sandwich" desc = "Portable ice-cream in its own packaging of the strawberry variety." icon = 'icons/obj/food/frozen_treats.dmi' icon_state = "strawberryicecreamsandwich" + w_class = WEIGHT_CLASS_TINY bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/ice = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/ice = 2) tastes = list("ice cream" = 2, "berry" = 2) foodtype = FRUIT | DAIRY | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ /obj/item/reagent_containers/food/snacks/spacefreezy @@ -29,6 +33,7 @@ desc = "The best icecream in space." icon = 'icons/obj/food/frozen_treats.dmi' icon_state = "spacefreezy" + w_class = WEIGHT_CLASS_TINY bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/bluecherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#87CEFA" @@ -40,6 +45,7 @@ desc = "A classic dessert." icon = 'icons/obj/food/frozen_treats.dmi' icon_state = "sundae" + w_class = WEIGHT_CLASS_SMALL bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FFFACD" @@ -66,12 +72,14 @@ desc = "It's just shaved ice. Still fun to chew on." icon = 'icons/obj/food/frozen_treats.dmi' icon_state = "flavorless_sc" + w_class = WEIGHT_CLASS_SMALL trash = /obj/item/reagent_containers/food/drinks/sillycup //We dont eat paper cups bonus_reagents = list(/datum/reagent/water = 10) //Base line will allways give water list_reagents = list(/datum/reagent/water = 1) // We dont get food for water/juices filling_color = "#FFFFFF" //Ice is white tastes = list("ice" = 1, "water" = 1) foodtype = SUGAR //We use SUGAR as a base line to act in as junkfood, other wise we use fruit + /*food_flags = FOOD_FINGER_FOOD*/ /obj/item/reagent_containers/food/snacks/snowcones/lime name = "lime snowcone" diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 510130ce08be..c088b2259610 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -211,6 +211,8 @@ filling_color = "#800000" tastes = list("meat" = 1) foodtype = MEAT + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/sausage name = "sausage" @@ -223,6 +225,7 @@ slices_num = 6 slice_path = /obj/item/reagent_containers/food/snacks/salami foodtype = MEAT | BREAKFAST + /*food_flags = FOOD_FINGER_FOOD*/ var/roasted = FALSE /obj/item/reagent_containers/food/snacks/sausage/Initialize() @@ -266,6 +269,8 @@ filling_color = "#CD853F" tastes = list("the jungle" = 1, "bananas" = 1) foodtype = MEAT | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY var/faction var/spawned_mob = /mob/living/carbon/monkey custom_price = 300 @@ -359,6 +364,8 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 2) tastes = list("\"chicken\"" = 1) foodtype = MEAT + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/nugget/Initialize() . = ..() diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index 361e36ae9544..0e55d21b3505 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -37,7 +37,9 @@ filling_color = "#FF1493" tastes = list("watermelon" = 1) foodtype = FRUIT + /*food_flags = FOOD_FINGER_FOOD*/ juice_results = list(/datum/reagent/consumable/watermelonjuice = 5) + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/candy_corn name = "candy corn" @@ -47,6 +49,8 @@ filling_color = "#FF8C00" tastes = list("candy corn" = 1) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/candy_corn/prison name = "desiccated candy corn" @@ -64,6 +68,8 @@ filling_color = "#A0522D" tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/hugemushroomslice name = "huge mushroom slice" @@ -179,6 +185,8 @@ list_reagents = list(/datum/reagent/toxin/minttoxin = 2) filling_color = "#800000" foodtype = TOXIC | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/eggwrap name = "egg wrap" @@ -216,6 +224,8 @@ filling_color = "#00800" tastes = list("cobwebs" = 1, "sugar" = 2) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/chococoin name = "chocolate coin" @@ -226,6 +236,8 @@ filling_color = "#A0522D" tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/fudgedice name = "fudge dice" @@ -237,6 +249,8 @@ trash = /obj/item/dice/fudge tastes = list("fudge" = 1) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/chocoorange name = "chocolate orange" @@ -247,6 +261,8 @@ filling_color = "#A0522D" tastes = list("chocolate" = 3, "oranges" = 1) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/eggplantparm name = "eggplant parmigiana" @@ -391,6 +407,8 @@ filling_color = "#F2CE91" tastes = list("oats" = 3, "nuts" = 2, "honey" = 1) foodtype = GRAIN | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/stuffedlegion name = "stuffed legion" @@ -471,6 +489,8 @@ next_succ = 0 tastes = list("candy" = 1) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/chewable/lollipop/Initialize() . = ..() @@ -562,6 +582,8 @@ list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/bicaridine = 2, /datum/reagent/medicine/kelotane = 2) //Kek tastes = list("candy") foodtype = JUNKFOOD + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/gumball/Initialize() . = ..() @@ -642,6 +664,7 @@ desc = "delicious, golden, fatty goodness on a stick." icon_state = "butteronastick" trash = /obj/item/stack/rods + /*food_flags = FOOD_FINGER_FOOD*/ /obj/item/reagent_containers/food/snacks/onionrings name = "onion rings" @@ -652,6 +675,7 @@ gender = PLURAL tastes = list("batter" = 3, "onion" = 1) foodtype = VEGETABLES + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/pineappleslice name = "pineapple slice" @@ -661,6 +685,7 @@ juice_results = list(/datum/reagent/consumable/pineapplejuice = 3) tastes = list("pineapple" = 1) foodtype = FRUIT | PINEAPPLE + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/tinychocolate name = "chocolate" diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index ee0dd7ab58de..7cb9f05900ba 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -13,6 +13,8 @@ filling_color = "#D2691E" tastes = list("donut" = 1) foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR | BREAKFAST + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL var/decorated_icon = "donut_homer" var/is_decorated = FALSE var/extra_reagent = null @@ -336,6 +338,8 @@ filling_color = "#F4A460" tastes = list("muffin" = 1) foodtype = GRAIN | SUGAR | BREAKFAST + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/muffin/berry name = "berry muffin" @@ -420,6 +424,8 @@ filling_color = "#CD853F" tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) foodtype = GRAIN + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/donkpocket/warm name = "warm Donk-pocket" @@ -565,6 +571,8 @@ filling_color = "#F0E68C" tastes = list("cookie" = 1) foodtype = GRAIN | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/cookie/Initialize() . = ..() @@ -583,6 +591,8 @@ filling_color = "#F4A460" tastes = list("cookie" = 1) foodtype = GRAIN | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/fortunecookie/proc/get_fortune() var/atom/drop_location = drop_location() @@ -613,6 +623,8 @@ filling_color = "#F0E68C" tastes = list("pretzel" = 1) foodtype = GRAIN | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/plumphelmetbiscuit name = "plump helmet biscuit" @@ -623,6 +635,8 @@ filling_color = "#F0E68C" tastes = list("mushroom" = 1, "biscuit" = 1) foodtype = GRAIN | VEGETABLES + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/plumphelmetbiscuit/Initialize() var/fey = prob(10) @@ -644,6 +658,8 @@ filling_color = "#F0E68C" tastes = list("cracker" = 1) foodtype = GRAIN + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/hotdog name = "hotdog" @@ -732,21 +748,19 @@ name = "cherry cupcake" desc = "A sweet cupcake with cherry bits." icon_state = "cherrycupcake" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#F0E68C" tastes = list("cake" = 3, "cherry" = 1) foodtype = GRAIN | FRUIT | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL -/obj/item/reagent_containers/food/snacks/bluecherrycupcake +/obj/item/reagent_containers/food/snacks/cherrycupcake/blue name = "blue cherry cupcake" desc = "Blue cherries inside a delicious cupcake." icon_state = "bluecherrycupcake" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) - list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) - filling_color = "#F0E68C" tastes = list("cake" = 3, "blue cherry" = 1) - foodtype = GRAIN | FRUIT | SUGAR /obj/item/reagent_containers/food/snacks/honeybun name = "honey bun" diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm index 9b8e949b06e6..5129911cd311 100644 --- a/code/modules/food_and_drinks/food/snacks_pizza.dm +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -215,14 +215,3 @@ icon_state = "pizzamargheritaslice" filling_color = "#FFFFFF" foodtype = GRAIN | VEGETABLES - -/obj/item/reagent_containers/food/snacks/pizzaslice/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/kitchen/rollingpin)) - if(!isturf(loc)) - to_chat(user, "You need to put [src] on a surface to roll it out!") - return - new /obj/item/stack/sheet/pizza(loc) - to_chat(user, "You smoosh [src] into a cheesy sheet.") - qdel(src) - return - return ..() diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm index c15a6606be97..169d208bf30d 100644 --- a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm +++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm @@ -9,6 +9,8 @@ cooked_type = /obj/item/reagent_containers/food/snacks/toastedsandwich tastes = list("meat" = 2, "cheese" = 1, "bread" = 2, "lettuce" = 1) foodtype = GRAIN | VEGETABLES + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/toastedsandwich name = "toasted sandwich" @@ -31,6 +33,8 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("toast" = 1, "cheese" = 1) foodtype = GRAIN | DAIRY + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/jellysandwich name = "jelly sandwich" diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm index c7bcf963faf2..5ec9408dc414 100644 --- a/code/modules/food_and_drinks/food/snacks_soup.dm +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -159,12 +159,12 @@ tastes = list("tomato" = 1, "squirming" = 1) foodtype = MEAT | GORE -/obj/item/reagent_containers/food/snacks/soup/milo - name = "milosoup" +/obj/item/reagent_containers/food/snacks/soup/miso + name = "miso soup" desc = "The universes best soup! Yum!!!" - icon_state = "milosoup" + icon_state = "misosoup" bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) - tastes = list("milo" = 1) // wtf is milo + tastes = list("miso" = 1) // wtf is milo foodtype = VEGETABLES /obj/item/reagent_containers/food/snacks/soup/mushroom diff --git a/code/modules/food_and_drinks/food/snacks_spaghetti.dm b/code/modules/food_and_drinks/food/snacks_spaghetti.dm deleted file mode 100644 index 88c1188f1dee..000000000000 --- a/code/modules/food_and_drinks/food/snacks_spaghetti.dm +++ /dev/null @@ -1,106 +0,0 @@ - -/obj/item/reagent_containers/food/snacks/spaghetti - name = "spaghetti" - desc = "Now that's a nic'e pasta!" - icon = 'icons/obj/food/pizzaspaghetti.dmi' - icon_state = "spaghetti" - list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - cooked_type = /obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti - filling_color = "#F0E68C" - tastes = list("pasta" = 1) - foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/spaghetti/Initialize() - . = ..() - if(!cooked_type) // This isn't cooked, why would you put uncooked spaghetti in your pocket? - var/list/display_message = list( - "Something wet falls out of their pocket and hits the ground. Is that... [name]?", - "Oh shit! All your pocket [name] fell out!") - AddComponent(/datum/component/spill, display_message, 'sound/effects/splat.ogg') - -/obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti - name = "boiled spaghetti" - desc = "A plain dish of noodles, this needs more ingredients." - icon_state = "spaghettiboiled" - trash = /obj/item/trash/plate - bonus_reagents = list(/datum/reagent/consumable/nutriment = 2) - list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) - cooked_type = null - custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/pasta - -/obj/item/reagent_containers/food/snacks/spaghetti/pastatomato - name = "spaghetti" - desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!" - icon_state = "pastatomato" - trash = /obj/item/trash/plate - bitesize = 4 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 4) - list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 4) - cooked_type = null - filling_color = "#DC143C" - tastes = list("pasta" = 1, "tomato" = 1) - foodtype = GRAIN | VEGETABLES - -/obj/item/reagent_containers/food/snacks/spaghetti/copypasta - name = "copypasta" - desc = "You probably shouldn't try this, you always hear people talking about how bad it is..." - icon_state = "copypasta" - trash = /obj/item/trash/plate - bitesize = 4 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) - list_reagents = list(/datum/reagent/consumable/nutriment = 12, /datum/reagent/consumable/tomatojuice = 20, /datum/reagent/consumable/nutriment/vitamin = 8) - cooked_type = null - filling_color = "#DC143C" - tastes = list("pasta" = 1, "tomato" = 1) - foodtype = GRAIN | VEGETABLES - -/obj/item/reagent_containers/food/snacks/spaghetti/meatballspaghetti - name = "spaghetti and meatballs" - desc = "Now that's a nic'e meatball!" - icon_state = "meatballspaghetti" - trash = /obj/item/trash/plate - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) - list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 4) - cooked_type = null - tastes = list("pasta" = 1, "tomato" = 1, "meat" = 1) - foodtype = GRAIN | MEAT - -/obj/item/reagent_containers/food/snacks/spaghetti/spesslaw - name = "spesslaw" - desc = "A lawyers favourite." - icon_state = "spesslaw" - trash = /obj/item/trash/plate - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 6) - list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 6) - cooked_type = null - tastes = list("pasta" = 1, "tomato" = 1, "meat" = 1) - -/obj/item/reagent_containers/food/snacks/spaghetti/chowmein - name = "chow mein" - desc = "A nice mix of noodles and fried vegetables." - icon_state = "chowmein" - trash = /obj/item/trash/plate - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 4) - list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 6) - cooked_type = null - tastes = list("noodle" = 1, "tomato" = 1) - -/obj/item/reagent_containers/food/snacks/spaghetti/beefnoodle - name = "beef noodle" - desc = "Nutritious, beefy and noodly." - icon_state = "beefnoodle" - trash = /obj/item/reagent_containers/glass/bowl - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/liquidgibs = 3) - cooked_type = null - tastes = list("noodle" = 1, "meat" = 1) - foodtype = GRAIN | MEAT - -/obj/item/reagent_containers/food/snacks/spaghetti/butternoodles - name = "butter noodles" - desc = "Noodles covered in savory butter. Simple and slippery, but delicious." - icon_state = "butternoodles" - trash = /obj/item/trash/plate - bonus_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) - cooked_type = null - tastes = list("noodle" = 1, "butter" = 1) - foodtype = GRAIN | DAIRY diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm index 94477d1932aa..b071add1027a 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -12,6 +12,8 @@ filling_color = "#D2691E" tastes = list("candy" = 1) foodtype = JUNKFOOD | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_TINY /obj/item/reagent_containers/food/snacks/candy/bronx name = "South Bronx Paradise bar" @@ -82,7 +84,9 @@ filling_color = "#8B0000" tastes = list("dried raisins" = 1) foodtype = JUNKFOOD | FRUIT | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ custom_price = 90 + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/no_raisin/healthy name = "homemade raisins" @@ -99,7 +103,9 @@ junkiness = 25 filling_color = "#FFD700" foodtype = JUNKFOOD | GRAIN | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ custom_price = 30 + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/candy_trash name = "candy cigarette butt" @@ -136,6 +142,7 @@ filling_color = "#F5F5DC" tastes = list("sweetness" = 3, "cake" = 1) foodtype = GRAIN | FRUIT | VEGETABLES + w_class = WEIGHT_CLASS_SMALL /obj/item/reagent_containers/food/snacks/energybar name = "High-power energy bars" @@ -146,3 +153,5 @@ filling_color = "#97ee63" tastes = list("pure electricity" = 3, "fitness" = 2) foodtype = TOXIC + /*food_flags = FOOD_FINGER_FOOD*/ + w_class = WEIGHT_CLASS_SMALL 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 8eccd04c8404..bcee075e0dcd 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -18,6 +18,8 @@ // _- _ // - +//God bless These Deepfried States o7 -2024 + /obj/machinery/deepfryer name = "deep fryer" desc = "Deep fried everything." @@ -27,7 +29,7 @@ use_power = IDLE_POWER_USE idle_power_usage = IDLE_DRAW_LOW layer = BELOW_OBJ_LAYER - var/obj/item/reagent_containers/food/snacks/deepfryholder/frying //What's being fried RIGHT NOW? + var/obj/item/food/deepfryholder/frying //What's being fried RIGHT NOW? var/cook_time = 0 var/oil_use = 0.05 //How much cooking oil is used per tick var/fry_speed = 1 //How quickly we fry food @@ -42,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, ) @@ -93,7 +95,7 @@ if(I.resistance_flags & INDESTRUCTIBLE) to_chat(user, "You don't feel it would be wise to fry [I]...") return - if(istype(I, /obj/item/reagent_containers/food/snacks/deepfryholder)) + if(istype(I, /obj/item/food/deepfryholder)) to_chat(user, "Your cooking skills are not up to the legendary Doublefry technique.") return if(default_unfasten_wrench(user, I)) @@ -105,7 +107,7 @@ return ..() else if(!frying && user.transferItemToLoc(I, src)) to_chat(user, "You put [I] into [src].") - frying = new/obj/item/reagent_containers/food/snacks/deepfryholder(src, I) + frying = new/obj/item/food/deepfryholder(src, I) icon_state = "fryer_on" fry_loop.start() diff --git a/code/modules/food_and_drinks/kitchen_machinery/grill.dm b/code/modules/food_and_drinks/kitchen_machinery/grill.dm index c349c7511752..c150fe94498d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/grill.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/grill.dm @@ -9,7 +9,7 @@ layer = BELOW_OBJ_LAYER use_power = NO_POWER_USE var/grill_fuel = 0 - var/obj/item/reagent_containers/food/grilled_item + var/obj/item/reagent_containers/food/snacks/grilled_item var/grill_time = 0 var/datum/looping_sound/grill/grill_loop @@ -27,68 +27,74 @@ else icon_state = "grill_open" return ..() + +/obj/machinery/grill/examine(mob/user) + . = ..() + if(grill_fuel) + . += span_notice("\The [src] has [grill_fuel] units of fuel left.") + else + . += span_warning("\The [src] is out of fuel! Add some wood or coal!") + /obj/machinery/grill/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/stack/sheet/mineral/coal) || istype(I, /obj/item/stack/sheet/mineral/wood)) var/obj/item/stack/S = I var/stackamount = S.get_amount() - to_chat(user, "You put [stackamount] [I]s in [src].") + to_chat(user, span_notice("You put [stackamount] [I]s in [src].")) if(istype(I, /obj/item/stack/sheet/mineral/coal)) - grill_fuel += (500 * stackamount) - else grill_fuel += (50 * stackamount) + else + grill_fuel += (5 * stackamount) S.use(stackamount) update_appearance() return if(I.resistance_flags & INDESTRUCTIBLE) - to_chat(user, "You don't feel it would be wise to grill [I]...") + to_chat(user, span_warning("You don't feel it would be wise to grill [I]...")) return ..() - if(istype(I, /obj/item/reagent_containers)) - if(istype(I, /obj/item/reagent_containers/food) && !istype(I, /obj/item/reagent_containers/food/drinks)) - var/obj/item/reagent_containers/food/food_item = I - if(HAS_TRAIT(food_item, TRAIT_NODROP) || (food_item.item_flags & (ABSTRACT | DROPDEL))) - return ..() - else if(food_item.foodtype & GRILLED) - to_chat(user, "[food_item] has already been grilled!") - return - else if(!grill_fuel) - to_chat(user, "There is not enough fuel!") - return - else if(!grilled_item && user.transferItemToLoc(food_item, src)) - grilled_item = food_item - grilled_item.foodtype |= GRILLED - to_chat(user, "You put the [grilled_item] on [src].") - update_appearance() - grill_loop.start() - return - else - if(I.reagents.has_reagent(/datum/reagent/consumable/xeno_energy)) - grill_fuel += (20 * (I.reagents.get_reagent_amount(/datum/reagent/consumable/xeno_energy))) - to_chat(user, "You pour the Monkey Energy in [src].") - I.reagents.remove_reagent(/datum/reagent/consumable/xeno_energy, I.reagents.get_reagent_amount(/datum/reagent/consumable/xeno_energy)) - update_appearance() - return + + if(istype(I, /obj/item/reagent_containers/food/snacks)) + var/obj/item/reagent_containers/food/snacks/food_item = I + if(HAS_TRAIT(food_item, TRAIT_NODROP) || (food_item.item_flags & (ABSTRACT | DROPDEL))) + return ..() + else if(food_item.foodtype & GRILLED) + to_chat(user, span_notice("[food_item] has already been grilled!")) + return + else if(grill_fuel <= 0) + to_chat(user, span_warning("There is not enough fuel!")) + return + else if(grilled_item) + to_chat(user,span_warning("\The [src] is already grilling something, take it out first!")) + return + else if(user.transferItemToLoc(food_item, src)) + START_PROCESSING(SSmachines, src) + grilled_item = food_item + to_chat(user, span_notice("You put the [grilled_item] on [src].")) + update_appearance() + grill_loop.start() + return ..() /obj/machinery/grill/process() ..() + if(!grilled_item) + return PROCESS_KILL update_appearance() - if(!grill_fuel) + if(grill_fuel <= 0) + grill_fuel = 0 + visible_message(span_warning("\The [src] is out of fuel!")) + if(grilled_item) + grilled_item.forceMove(loc) + finish_grill() return - else - grill_fuel -= 1 - if(prob(1)) - var/datum/effect_system/smoke_spread/bad/smoke = new - smoke.set_up(1, loc) - smoke.start() - if(grilled_item) - grill_time += 1 - grill_fuel -= 10 - grilled_item.AddComponent(/datum/component/sizzle) + grill_time += 1 + grill_fuel -= 1 + if(prob(1)) + var/datum/effect_system/smoke_spread/bad/smoke = new + smoke.set_up(1, loc) + smoke.start() /obj/machinery/grill/Exited(atom/movable/AM) if(AM == grilled_item) finish_grill() - grilled_item = null . = ..() /obj/machinery/grill/Destroy() @@ -118,13 +124,15 @@ /obj/machinery/grill/attack_hand(mob/user) if(grilled_item) - to_chat(user, "You take out [grilled_item] from [src].") + to_chat(user, span_notice("You take out [grilled_item] from [src].")) grilled_item.forceMove(drop_location()) update_appearance() return return ..() /obj/machinery/grill/proc/finish_grill() + if(grill_time >= 10 && grilled_item.cooked_type) + grilled_item = grilled_item.microwave_act() switch(grill_time) //no 0-9 to prevent spam if(10 to 15) grilled_item.name = "lightly-grilled [grilled_item.name]" @@ -141,8 +149,12 @@ grilled_item.name = "Powerfully Grilled [grilled_item.name]" grilled_item.desc = "A [grilled_item.name]. Reminds you of your wife, wait, no, it's prettier!" grilled_item.foodtype |= FRIED + grilled_item.AddComponent(/datum/component/sizzle, (grill_time * 7.5)) + grilled_item.foodtype |= GRILLED grill_time = 0 grill_loop.stop() + grilled_item = null + update_appearance() /obj/machinery/grill/unwrenched anchored = FALSE diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 1d4e366ad6d9..de4d844aa3ac 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -210,7 +210,7 @@ return /obj/item/reagent_containers/food/snacks/icecream - name = "ice cream cone" + name = "waffle cone" desc = "Delicious waffle cone, but no ice cream." icon = 'icons/obj/kitchen.dmi' icon_state = "icecream_cone_waffle" //default for admin-spawned cones, href_list["cone"] should overwrite this all the time @@ -220,6 +220,7 @@ var/cone_type bitesize = 4 foodtype = DAIRY | SUGAR + /*food_flags = FOOD_FINGER_FOOD*/ /obj/item/reagent_containers/food/snacks/icecream/Initialize() . = ..() diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 2762892110f8..db88c5d0cc15 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -362,9 +362,10 @@ name = "flameless ration heater" desc = "A magnisium based ration heater. It can be used to heat up entrees and other food items. reaches the same temperature as a microwave with half the volume." icon = 'icons/obj/food/ration.dmi' - icon_state = "ration_package" + 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 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/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index 772893e3ff16..b5c4c2c42b85 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -96,7 +96,7 @@ . += tag_overlay /obj/item/pizzabox/worn_overlays(isinhands, icon_file) - . = list() + . = ..() var/current_offset = 2 if(isinhands) for(var/V in boxes) //add EXTRA BOX per box diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index 2474d1d53501..9fdacebf8900 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -29,6 +29,7 @@ results = list(/datum/reagent/consumable/ethanol/moonshine = 10) required_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sugar = 5) required_catalysts = list(/datum/reagent/consumable/enzyme = 5) + required_container = /obj/structure/fermenting_barrel /datum/chemical_reaction/wine results = list(/datum/reagent/consumable/ethanol/wine = 10) diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm index 98c5fa053c8f..c13983c6792d 100644 --- a/code/modules/food_and_drinks/recipes/processor_recipes.dm +++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm @@ -31,7 +31,7 @@ /datum/food_processor_process/spaghetti input = /obj/item/reagent_containers/food/snacks/doughslice - output = /obj/item/reagent_containers/food/snacks/spaghetti + output = /obj/item/food/spaghetti/raw /datum/food_processor_process/corn input = /obj/item/reagent_containers/food/snacks/grown/corn diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm index f29e948adf4c..751f6017eb90 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm @@ -6,83 +6,72 @@ /datum/crafting_recipe/food/meatbread name = "Meat bread" reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/food/bread/plain = 1, /obj/item/reagent_containers/food/snacks/meat/cutlet/plain = 3, /obj/item/reagent_containers/food/snacks/cheesewedge = 3 ) - result = /obj/item/reagent_containers/food/snacks/store/bread/meat + result = /obj/item/food/bread/meat subcategory = CAT_BREAD /datum/crafting_recipe/food/xenomeatbread name = "Xenomeat bread" reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/food/bread/plain = 1, /obj/item/reagent_containers/food/snacks/meat/cutlet/xeno = 3, /obj/item/reagent_containers/food/snacks/cheesewedge = 3 ) - result = /obj/item/reagent_containers/food/snacks/store/bread/xenomeat + result = /obj/item/food/bread/xenomeat subcategory = CAT_BREAD /datum/crafting_recipe/food/spidermeatbread name = "Spidermeat bread" reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/food/bread/plain = 1, /obj/item/reagent_containers/food/snacks/meat/cutlet/spider = 3, /obj/item/reagent_containers/food/snacks/cheesewedge = 3 ) - result = /obj/item/reagent_containers/food/snacks/store/bread/spidermeat + result = /obj/item/food/bread/spidermeat subcategory = CAT_BREAD /datum/crafting_recipe/food/banananutbread name = "Banana nut bread" reqs = list( /datum/reagent/consumable/milk = 5, - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/food/bread/plain = 1, /obj/item/reagent_containers/food/snacks/boiledegg = 3, /obj/item/reagent_containers/food/snacks/grown/banana = 1 ) - result = /obj/item/reagent_containers/food/snacks/store/bread/banana + result = /obj/item/food/bread/banana subcategory = CAT_BREAD /datum/crafting_recipe/food/tofubread name = "Tofu bread" reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/food/bread/plain = 1, /obj/item/reagent_containers/food/snacks/tofu = 3, /obj/item/reagent_containers/food/snacks/cheesewedge = 3 ) - result = /obj/item/reagent_containers/food/snacks/store/bread/tofu + result = /obj/item/food/bread/tofu subcategory = CAT_BREAD /datum/crafting_recipe/food/creamcheesebread name = "Cream cheese bread" reqs = list( /datum/reagent/consumable/milk = 5, - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/food/bread/plain = 1, /obj/item/reagent_containers/food/snacks/cheesewedge = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/bread/creamcheese - subcategory = CAT_BREAD - -/datum/crafting_recipe/food/mimanabread - name = "Mimana bread" - reqs = list( - /datum/reagent/consumable/soymilk = 5, - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, - /obj/item/reagent_containers/food/snacks/tofu = 3, - /obj/item/reagent_containers/food/snacks/grown/banana/mime = 1 - ) - result = /obj/item/reagent_containers/food/snacks/store/bread/mimana + result = /obj/item/food/bread/creamcheese subcategory = CAT_BREAD /datum/crafting_recipe/food/garlicbread name = "Garlic Bread" time = 40 reqs = list(/obj/item/reagent_containers/food/snacks/grown/garlic = 1, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1, + /obj/item/food/breadslice/plain = 1, /obj/item/reagent_containers/food/snacks/butter = 1 ) - result = /obj/item/reagent_containers/food/snacks/garlicbread + result = /obj/item/food/garlicbread subcategory = CAT_BREAD /datum/crafting_recipe/food/butterbiscuit @@ -91,7 +80,7 @@ /obj/item/reagent_containers/food/snacks/bun = 1, /obj/item/reagent_containers/food/snacks/butter = 1 ) - result = /obj/item/reagent_containers/food/snacks/butterbiscuit + result = /obj/item/food/butterbiscuit subcategory = CAT_BREAD /datum/crafting_recipe/food/butterdog @@ -100,14 +89,14 @@ /obj/item/reagent_containers/food/snacks/bun = 1, /obj/item/reagent_containers/food/snacks/butter = 3, ) - result = /obj/item/reagent_containers/food/snacks/butterdog + result = /obj/item/food/butterdog subcategory = CAT_BREAD /datum/crafting_recipe/food/moldybread // why would you make this? name = "Moldy Bread" reqs = list( - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1, + /obj/item/food/breadslice/plain = 1, /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 1 ) - result = /obj/item/reagent_containers/food/snacks/breadslice/moldy + result = /obj/item/food/breadslice/moldy subcategory = CAT_BREAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm index 38ea04421827..4f5838909486 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm @@ -91,34 +91,6 @@ result = /obj/item/reagent_containers/food/snacks/burger/tofu subcategory = CAT_BURGER -/datum/crafting_recipe/food/ghostburger - name = "Ghost burger" - reqs = list( - /obj/item/ectoplasm = 1, - /datum/reagent/consumable/sodiumchloride = 2, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/ghost - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/clownburger - name = "Clown burger" - reqs = list( - /obj/item/clothing/mask/gas/clown_hat = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/clown - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/mimeburger - name = "Mime burger" - reqs = list( - /obj/item/clothing/mask/gas/mime = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/mime - subcategory = CAT_BURGER - /datum/crafting_recipe/food/redburger name = "Red burger" reqs = list( @@ -199,24 +171,6 @@ result = /obj/item/reagent_containers/food/snacks/burger/white subcategory = CAT_BURGER -/datum/crafting_recipe/food/spellburger - name = "Spell burger" - reqs = list( - /obj/item/clothing/head/wizard/fake = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/spell - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/spellburger2 - name = "Spell burger" - reqs = list( - /obj/item/clothing/head/wizard = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/spell - subcategory = CAT_BURGER - /datum/crafting_recipe/food/bigbiteburger name = "Big bite burger" reqs = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index dcae05095ae8..c79d4cea8474 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -6,190 +6,170 @@ /datum/crafting_recipe/food/carrotcake name = "Carrot cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/carrot = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/carrot + result = /obj/item/food/cake/carrot subcategory = CAT_CAKE /datum/crafting_recipe/food/cheesecake name = "Cheese cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/cheesewedge = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/cheese + result = /obj/item/food/cake/cheese subcategory = CAT_CAKE /datum/crafting_recipe/food/applecake name = "Apple cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/apple = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/apple + result = /obj/item/food/cake/apple subcategory = CAT_CAKE /datum/crafting_recipe/food/orangecake name = "Orange cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/orange + result = /obj/item/food/cake/orange subcategory = CAT_CAKE /datum/crafting_recipe/food/limecake name = "Lime cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/lime + result = /obj/item/food/cake/lime subcategory = CAT_CAKE /datum/crafting_recipe/food/lemoncake name = "Lemon cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/lemon + result = /obj/item/food/cake/lemon subcategory = CAT_CAKE /datum/crafting_recipe/food/chocolatecake name = "Chocolate cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/chocolatebar = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/chocolate + result = /obj/item/food/cake/chocolate subcategory = CAT_CAKE /datum/crafting_recipe/food/birthdaycake name = "Birthday cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/candle = 1, /datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/caramel = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/birthday + result = /obj/item/food/cake/birthday subcategory = CAT_CAKE /datum/crafting_recipe/food/energycake name = "Energy cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/birthday = 1, + /obj/item/food/cake/birthday = 1, /obj/item/melee/transforming/energy/sword = 1, ) - blacklist = list(/obj/item/reagent_containers/food/snacks/store/cake/birthday/energy) - result = /obj/item/reagent_containers/food/snacks/store/cake/birthday/energy + blacklist = list(/obj/item/food/cake/birthday/energy) + result = /obj/item/food/cake/birthday/energy subcategory = CAT_CAKE /datum/crafting_recipe/food/braincake name = "Brain cake" reqs = list( /obj/item/organ/brain = 1, - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 + /obj/item/food/cake/plain = 1 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/brain - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/slimecake - name = "Slime cake" - reqs = list( - /obj/item/slime_extract = 1, - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/slimecake + result = /obj/item/food/cake/brain subcategory = CAT_CAKE /datum/crafting_recipe/food/pumpkinspicecake name = "Pumpkin spice cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/pumpkin = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/pumpkinspice + result = /obj/item/food/cake/pumpkinspice subcategory = CAT_CAKE -/datum/crafting_recipe/food/holycake +/datum/crafting_recipe/food/angelcake name = "Angel food cake" reqs = list( - /datum/reagent/water/holywater = 15, - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 + /datum/reagent/consumable/cream = 25, + /obj/item/food/cake/plain = 1 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/holy_cake + result = /obj/item/food/cake/holy_cake subcategory = CAT_CAKE /datum/crafting_recipe/food/poundcake name = "Pound cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 4 + /obj/item/food/cake/plain = 4 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/pound_cake + result = /obj/item/food/cake/pound_cake subcategory = CAT_CAKE /datum/crafting_recipe/food/hardwarecake name = "Hardware cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/circuitboard = 2, /datum/reagent/toxin/acid = 5 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/hardware_cake + result = /obj/item/food/cake/hardware_cake subcategory = CAT_CAKE /datum/crafting_recipe/food/bscccake - name = "blackberry and strawberry chocolate cake" + name = "Blackberry and Strawberry Chocolate cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/chocolatebar = 2, /obj/item/reagent_containers/food/snacks/grown/berries = 5 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/bscc + result = /obj/item/food/cake/bscc subcategory = CAT_CAKE /datum/crafting_recipe/food/bscvcake - name = "blackberry and strawberry vanilla cake" + name = "Blackberry and Strawberry Vanilla cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/berries = 5 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/bsvc - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/clowncake - name = "clown cake" - always_availible = FALSE - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/sundae = 2, - /obj/item/reagent_containers/food/snacks/grown/banana = 5 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/clown_cake + result = /obj/item/food/cake/bsvc subcategory = CAT_CAKE /datum/crafting_recipe/food/vanillacake - name = "vanilla cake" + name = "Vanilla cake" always_availible = FALSE reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/vanilla_cake + result = /obj/item/food/cake/vanilla_cake subcategory = CAT_CAKE /datum/crafting_recipe/food/trumpetcake name = "Spaceman's Cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/food/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/trumpet = 2, /datum/reagent/consumable/cream = 5, /datum/reagent/consumable/berryjuice = 5 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/trumpet + result = /obj/item/food/cake/trumpet subcategory = CAT_CAKE @@ -198,7 +178,7 @@ reqs = list( /obj/item/organ/brain = 1, /obj/item/organ/heart = 1, - /obj/item/reagent_containers/food/snacks/store/cake/birthday = 1, + /obj/item/food/cake/birthday = 1, /obj/item/reagent_containers/food/snacks/meat/slab = 3, /datum/reagent/blood = 30, /datum/reagent/consumable/sprinkles = 5, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm index 4e0ade4fa22d..2032a33bd46d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm @@ -86,28 +86,6 @@ ////////////////////// Non-alcoholic recipes /////////////////// -/datum/crafting_recipe/holybottle - name = "Holy Water Flask" - time = 30 - reqs = list( - /obj/item/reagent_containers/food/drinks/bottle = 1, - /datum/reagent/water/holywater = 100 - ) - result = /obj/item/reagent_containers/food/drinks/bottle/holywater - category = CAT_DRINK - -//flask of unholy water is a beaker for some reason, I will try making it a bottle and add it here once the antag freeze is over. t. kryson - -/datum/crafting_recipe/nothingbottle - name = "Nothing Bottle" - time = 30 - reqs = list( - /obj/item/reagent_containers/food/drinks/bottle = 1, - /datum/reagent/consumable/nothing = 100 - ) - result = /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing - category = CAT_DRINK - /datum/crafting_recipe/smallcarton name = "Small Carton" result = /obj/item/reagent_containers/food/drinks/sillycup/smallcarton @@ -139,7 +117,7 @@ time = 30 reqs = list( /obj/item/storage/bag/trash = 1, - /obj/item/reagent_containers/food/snacks/breadslice/moldy = 1, + /obj/item/food/breadslice/moldy = 1, /obj/item/reagent_containers/food/snacks/grown = 4, /obj/item/reagent_containers/food/snacks/candy_corn = 2, /datum/reagent/water = 15 diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm index 522f362e777e..a4ab818fdd6f 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -36,7 +36,7 @@ reqs = list( /obj/item/reagent_containers/food/snacks/friedegg = 1, /obj/item/reagent_containers/food/snacks/meat/steak = 1, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1, + /obj/item/food/breadslice/plain = 1, ) result = /obj/item/reagent_containers/food/snacks/benedict subcategory = CAT_EGG diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm index edca42fda076..dbe7f1149631 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm @@ -44,18 +44,6 @@ result = /obj/item/reagent_containers/food/snacks/sundae subcategory = CAT_ICE -/datum/crafting_recipe/food/honkdae - name ="Honkdae" - reqs = list( - /datum/reagent/consumable/cream = 5, - /obj/item/clothing/mask/gas/clown_hat = 1, - /obj/item/reagent_containers/food/snacks/grown/cherries = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 2, - /obj/item/reagent_containers/food/snacks/icecream = 1 - ) - result = /obj/item/reagent_containers/food/snacks/honkdae - subcategory = CAT_ICE - /datum/crafting_recipe/food/cornuto name = "Cornuto" reqs = list( @@ -182,28 +170,8 @@ result = /obj/item/reagent_containers/food/snacks/snowcones/fruitsalad subcategory = CAT_ICE -/datum/crafting_recipe/food/mime_sc - name = "Mime snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/nothing = 5 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/mime - subcategory = CAT_ICE - -/datum/crafting_recipe/food/clown_sc - name = "Clown snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/laughter = 5 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/clown - subcategory = CAT_ICE - /datum/crafting_recipe/food/soda_sc - name = "Space Cola snowcone" + name = "Master Cola snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, /datum/reagent/consumable/ice = 15, @@ -213,7 +181,7 @@ subcategory = CAT_ICE /datum/crafting_recipe/food/spacemountainwind_sc - name = "Space Mountain Wind snowcone" + name = "Comet Trail snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, /datum/reagent/consumable/ice = 15, @@ -223,7 +191,7 @@ subcategory = CAT_ICE /datum/crafting_recipe/food/pwrgame_sc - name = "Pwrgame snowcone" + name = "Pacfuel snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, /datum/reagent/consumable/ice = 15, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index 72f2046a3b84..ade14f27241e 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -242,15 +242,6 @@ result = /obj/item/reagent_containers/food/snacks/bbqribs subcategory = CAT_MEAT -/datum/crafting_recipe/food/meatclown - name = "Meat Clown" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 1 - ) - result = /obj/item/reagent_containers/food/snacks/meatclown - subcategory = CAT_MEAT - /datum/crafting_recipe/food/gumbo name = "Black eyed gumbo" reqs = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 1bb3d250a9ae..1eb1d255c340 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -102,7 +102,7 @@ /datum/reagent/consumable/blackpepper = 1, /obj/item/reagent_containers/food/snacks/pastrybase = 2 ) - result = /obj/item/reagent_containers/food/snacks/baguette + result = /obj/item/food/baguette subcategory = CAT_MISCFOOD ////////////////////////////////////////////////TOAST//////////////////////////////////////////////// @@ -111,7 +111,7 @@ name = "Slime toast" reqs = list( /datum/reagent/toxin/slimejelly = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1 + /obj/item/food/breadslice/plain = 1 ) result = /obj/item/reagent_containers/food/snacks/jelliedtoast/slime subcategory = CAT_MISCFOOD @@ -120,7 +120,7 @@ name = "Jellied toast" reqs = list( /datum/reagent/consumable/cherryjelly = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1 + /obj/item/food/breadslice/plain = 1 ) result = /obj/item/reagent_containers/food/snacks/jelliedtoast/cherry subcategory = CAT_MISCFOOD @@ -128,7 +128,7 @@ /datum/crafting_recipe/food/butteredtoast name = "Buttered Toast" reqs = list( - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1, + /obj/item/food/breadslice/plain = 1, /obj/item/reagent_containers/food/snacks/butter = 1 ) result = /obj/item/reagent_containers/food/snacks/butteredtoast @@ -138,7 +138,7 @@ name = "Two bread" reqs = list( /datum/reagent/consumable/ethanol/wine = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 2 + /obj/item/food/breadslice/plain = 2 ) result = /obj/item/reagent_containers/food/snacks/twobread subcategory = CAT_MISCFOOD @@ -265,7 +265,7 @@ /datum/reagent/consumable/milk = 1, /datum/reagent/consumable/cherryjelly = 5, /obj/item/stock_parts/cell/super =1, - /obj/item/melee/sabre = 1 + /obj/item/melee/sword/sabre = 1 ) result = /obj/item/reagent_containers/food/snacks/powercrepe subcategory = CAT_MISCFOOD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index cc61c7048fdc..3de7c3c3d75d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -370,17 +370,6 @@ result = /obj/item/reagent_containers/food/snacks/donkpocket/pizza subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donkpocket/honk - time = 15 - name = "Honk-Pocket" - reqs = list( - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 1, - /datum/reagent/consumable/sugar = 3 - ) - result = /obj/item/reagent_containers/food/snacks/donkpocket/honk - subcategory = CAT_PASTRY - /datum/crafting_recipe/food/donkpocket/berry time = 15 name = "Berry-pocket" @@ -473,7 +462,7 @@ reqs = list( /datum/reagent/consumable/eggyolk = 5, /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1 + /obj/item/food/bread/plain = 1 ) result = /obj/item/reagent_containers/food/snacks/khachapuri subcategory = CAT_PASTRY @@ -575,7 +564,7 @@ /obj/item/reagent_containers/food/snacks/pastrybase = 1, /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1 ) - result = /obj/item/reagent_containers/food/snacks/bluecherrycupcake + result = /obj/item/reagent_containers/food/snacks/cherrycupcake/blue subcategory = CAT_PASTRY /datum/crafting_recipe/food/honeybun diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm index 83e923f53fbf..5c9bcc56cc7d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm @@ -130,18 +130,6 @@ result = /obj/item/reagent_containers/food/snacks/pie/grapetart subcategory = CAT_PIE -/datum/crafting_recipe/food/mimetart - name = "Mime tart" - always_availible = FALSE - reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /datum/reagent/consumable/nothing = 5 - ) - result = /obj/item/reagent_containers/food/snacks/pie/mimetart - subcategory = CAT_PIE - /datum/crafting_recipe/food/berrytart name = "Berry tart" always_availible = FALSE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 73ccc0f37897..778c639a074e 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -34,19 +34,6 @@ result = /obj/item/reagent_containers/food/snacks/salad/validsalad subcategory = CAT_SALAD -/datum/crafting_recipe/food/monkeysdelight - name = "Monkeys delight" - reqs = list( - /datum/reagent/consumable/flour = 5, - /datum/reagent/consumable/sodiumchloride = 1, - /datum/reagent/consumable/blackpepper = 1, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/monkeycube = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 1 - ) - result = /obj/item/reagent_containers/food/snacks/soup/monkeysdelight - subcategory = CAT_SALAD - /datum/crafting_recipe/food/oatmeal name = "Oatmeal" reqs = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm index 41829e9ec2b8..121f15fa972f 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -9,7 +9,7 @@ /datum/crafting_recipe/food/sandwich name = "Sandwich" reqs = list( - /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/food/breadslice/plain = 2, /obj/item/reagent_containers/food/snacks/meat/steak = 1, /obj/item/reagent_containers/food/snacks/cheesewedge = 1 ) @@ -19,7 +19,7 @@ /datum/crafting_recipe/food/grilledcheesesandwich name = "Cheese sandwich" reqs = list( - /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/food/breadslice/plain = 2, /obj/item/reagent_containers/food/snacks/cheesewedge = 2 ) result = /obj/item/reagent_containers/food/snacks/grilledcheese @@ -29,7 +29,7 @@ name = "Jelly sandwich" reqs = list( /datum/reagent/toxin/slimejelly = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/food/breadslice/plain = 2, ) result = /obj/item/reagent_containers/food/snacks/jellysandwich/slime subcategory = CAT_SANDWICH @@ -38,7 +38,7 @@ name = "Jelly sandwich" reqs = list( /datum/reagent/consumable/cherryjelly = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/food/breadslice/plain = 2, ) result = /obj/item/reagent_containers/food/snacks/jellysandwich/cherry subcategory = CAT_SANDWICH @@ -46,7 +46,7 @@ /datum/crafting_recipe/food/notasandwich name = "Not a sandwich" reqs = list( - /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/food/breadslice/plain = 2, /obj/item/clothing/mask/fakemoustache = 1 ) result = /obj/item/reagent_containers/food/snacks/notasandwich @@ -55,11 +55,11 @@ /datum/crafting_recipe/food/blt name = "BLT" reqs = list( - /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/food/breadslice/plain = 2, /obj/item/reagent_containers/food/snacks/meat/bacon = 2, /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, /obj/item/reagent_containers/food/snacks/grown/tomato = 1 ) result = /obj/item/reagent_containers/food/snacks/blt - category = CAT_SANDWICH + subcategory = CAT_SANDWICH 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 d0558f94fdb5..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 @@ -115,15 +114,15 @@ subcategory = CAT_SOUP -/datum/crafting_recipe/food/milosoup - name = "Milo soup" +/datum/crafting_recipe/food/misosoup + name = "Miso soup" reqs = list( /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, /obj/item/reagent_containers/food/snacks/soydope = 2, /obj/item/reagent_containers/food/snacks/tofu = 2 ) - result = /obj/item/reagent_containers/food/snacks/soup/milo + result = /obj/item/reagent_containers/food/snacks/soup/miso subcategory = CAT_SOUP /datum/crafting_recipe/food/bloodsoup @@ -146,17 +145,6 @@ result = /obj/item/reagent_containers/food/snacks/soup/slime subcategory = CAT_SOUP -/datum/crafting_recipe/food/clownstears - name = "Clowns tears" - reqs = list( - /datum/reagent/water = 10, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/stack/sheet/mineral/hidden/hellstone = 1 - ) - result = /obj/item/reagent_containers/food/snacks/soup/clownstears - subcategory = CAT_SOUP - /datum/crafting_recipe/food/mysterysoup name = "Mystery soup" reqs = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm index 796c360c3448..f123ced2ffc5 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm @@ -6,65 +6,56 @@ /datum/crafting_recipe/food/tomatopasta name = "Tomato pasta" reqs = list( - /obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti = 1, + /obj/item/food/spaghetti/boiledspaghetti = 1, /obj/item/reagent_containers/food/snacks/grown/tomato = 2 ) - result = /obj/item/reagent_containers/food/snacks/spaghetti/pastatomato + result = /obj/item/food/spaghetti/pastatomato subcategory = CAT_SPAGHETTI /datum/crafting_recipe/food/copypasta name = "Copypasta" reqs = list( - /obj/item/reagent_containers/food/snacks/spaghetti/pastatomato = 2 + /obj/item/food/spaghetti/pastatomato = 2 ) - result = /obj/item/reagent_containers/food/snacks/spaghetti/copypasta + result = /obj/item/food/spaghetti/copypasta subcategory = CAT_SPAGHETTI /datum/crafting_recipe/food/spaghettimeatball name = "Spaghetti meatball" reqs = list( - /obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti = 1, + /obj/item/food/spaghetti/boiledspaghetti = 1, /obj/item/reagent_containers/food/snacks/meatball = 2 ) - result = /obj/item/reagent_containers/food/snacks/spaghetti/meatballspaghetti - subcategory = CAT_SPAGHETTI - -/datum/crafting_recipe/food/spesslaw - name = "Spesslaw" - reqs = list( - /obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti = 1, - /obj/item/reagent_containers/food/snacks/meatball = 4 - ) - result = /obj/item/reagent_containers/food/snacks/spaghetti/spesslaw + result = /obj/item/food/spaghetti/meatballspaghetti subcategory = CAT_SPAGHETTI /datum/crafting_recipe/food/beefnoodle name = "Beef noodle" reqs = list( /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti = 1, + /obj/item/food/spaghetti/boiledspaghetti = 1, /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, /obj/item/reagent_containers/food/snacks/grown/cabbage = 1 ) - result = /obj/item/reagent_containers/food/snacks/spaghetti/beefnoodle + result = /obj/item/food/spaghetti/beefnoodle subcategory = CAT_SPAGHETTI /datum/crafting_recipe/food/chowmein name = "Chowmein" reqs = list( - /obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti = 1, + /obj/item/food/spaghetti/boiledspaghetti = 1, /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, /obj/item/reagent_containers/food/snacks/grown/cabbage = 2, /obj/item/reagent_containers/food/snacks/grown/carrot = 1 ) - result = /obj/item/reagent_containers/food/snacks/spaghetti/chowmein + result = /obj/item/food/spaghetti/chowmein subcategory = CAT_SPAGHETTI /datum/crafting_recipe/food/butternoodles name = "Butter Noodles" reqs = list( - /obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti = 1, + /obj/item/food/spaghetti/boiledspaghetti = 1, /obj/item/reagent_containers/food/snacks/butter = 1 ) - result = /obj/item/reagent_containers/food/snacks/spaghetti/butternoodles + result = /obj/item/food/spaghetti/butternoodles subcategory = CAT_SPAGHETTI diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 9d88d3107551..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, @@ -143,7 +123,7 @@ /obj/item/toy/prize/durand, /obj/item/toy/prize/marauder, /obj/item/toy/prize/seraph, - /obj/item/toy/prize/mauler, + /obj/item/toy/prize/touro, /obj/item/toy/prize/odysseus, /obj/item/toy/prize/phazon, /obj/item/toy/prize/reticence, @@ -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) @@ -174,36 +153,12 @@ /datum/crafting_recipe/food/hotcrossbun name = "Hot-Cross Bun" reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/food/bread/plain = 1, /datum/reagent/consumable/sugar = 1 ) result = /obj/item/reagent_containers/food/snacks/hotcrossbun subcategory = CAT_MISCFOOD - -/obj/item/reagent_containers/food/snacks/store/cake/brioche - name = "brioche cake" - desc = "A ring of sweet, glazed buns." - icon_state = "briochecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brioche - slices_num = 6 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) - -/obj/item/reagent_containers/food/snacks/cakeslice/brioche - name = "brioche cake slice" - desc = "Delicious sweet-bread. Who needs anything else?" - icon_state = "briochecake_slice" - filling_color = "#FFD700" - -/datum/crafting_recipe/food/briochecake - name = "Brioche cake" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /datum/reagent/consumable/sugar = 2 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/brioche - subcategory = CAT_MISCFOOD - /obj/item/reagent_containers/food/snacks/scotchegg name = "scotch egg" desc = "A boiled egg wrapped in a delicious, seasoned meatball." @@ -234,7 +189,7 @@ /datum/crafting_recipe/food/mammi name = "Mammi" reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/food/bread/plain = 1, /obj/item/reagent_containers/food/snacks/chocolatebar = 1, /datum/reagent/consumable/milk = 5 ) 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/holodeck/items.dm b/code/modules/holodeck/items.dm index d56fd4f9c32c..c0d985e89d79 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -13,7 +13,7 @@ /obj/item/holo/esword name = "holographic energy sword" desc = "May the force be with you. Sorta." - icon = 'icons/obj/transforming_energy.dmi' + icon = 'icons/obj/weapon/energy.dmi' icon_state = "sword" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' @@ -69,7 +69,7 @@ /obj/item/toy/beach_ball/holoball name = "basketball" - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' icon_state = "basketball" item_state = "basketball" desc = "Here's your chance, do your dance at the Space Jam." diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index a21e9f71afc4..87e0f1a2a429 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -341,7 +341,6 @@ seed.genes += disk.gene.Copy() if(istype(disk.gene, /datum/plant_gene/reagent)) seed.reagents_from_genes() - disk.gene.apply_vars(seed) repaint_seed() diff --git a/code/modules/hydroponics/genes/attack.dm b/code/modules/hydroponics/genes/attack.dm new file mode 100644 index 000000000000..37dabf0c06a8 --- /dev/null +++ b/code/modules/hydroponics/genes/attack.dm @@ -0,0 +1,128 @@ +/// Traits that turn a plant into a weapon, giving them force and effects on attack. +/datum/plant_gene/trait/attack + name = "On Attack Trait" + description = "It is a very dangerous weapon." + icon = "hand-fist" + /// The multiplier we apply to the potency to calculate force. Set to 0 to not affect the force. + var/force_multiplier = 0 + /// If TRUE, our plant will degrade in force every hit until diappearing. + var/degrades_after_hit = FALSE + /// When we fully degrade, what degraded off of us? + var/degradation_noun = "leaves" + +/datum/plant_gene/trait/attack/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + if(force_multiplier) + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + our_plant.force = round((5 + our_seed.potency * force_multiplier), 1) + RegisterSignal(our_plant, COMSIG_ITEM_ATTACK, PROC_REF(on_plant_attack)) + RegisterSignal(our_plant, COMSIG_ITEM_AFTERATTACK, PROC_REF(after_plant_attack)) + +/// Signal proc for [COMSIG_ITEM_ATTACK] that allows for effects on attack +/datum/plant_gene/trait/attack/proc/on_plant_attack(obj/item/source, mob/living/target, mob/living/user) + SIGNAL_HANDLER + + INVOKE_ASYNC(src, PROC_REF(attack_effect), source, target, user) + +/* + * Effects done when we hit people with our plant, ON attack. + * Override on a per-plant basis. + * + * our_plant - our plant, that we're attacking with + * user - the person who is attacking with the plant + * target - the person who is attacked by the plant + */ +/datum/plant_gene/trait/attack/proc/attack_effect(obj/item/our_plant, mob/living/target, mob/living/user) + return + +/// Signal proc for [COMSIG_ITEM_AFTERATTACK] that allows for effects after an attack is done +/datum/plant_gene/trait/attack/proc/after_plant_attack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters) + SIGNAL_HANDLER + + if(!proximity_flag) + return + + if(!ismovable(target)) + return + + if(isobj(target)) + var/obj/object_target = target + if(!(object_target.obj_flags & CAN_BE_HIT)) + return . + + INVOKE_ASYNC(src, PROC_REF(after_attack_effect), source, target, user) + return . + +/* + * Effects done when we hit people with our plant, AFTER the attack is done. + * Extend on a per-plant basis. + * + * our_plant - our plant, that we're attacking with + * user - the person who is attacking with the plant + * target - the atom which is attacked by the plant + */ +/datum/plant_gene/trait/attack/proc/after_attack_effect(obj/item/our_plant, atom/target, mob/living/user) + SHOULD_CALL_PARENT(TRUE) + + if(!degrades_after_hit) + return + + // We probably hit something or someone. Reduce our force + if(our_plant.force > 0) + our_plant.force -= rand(1, (our_plant.force / 3) + 1) + return + + // When our force degrades to zero or below, we're all done + to_chat(user, span_warning("All the [degradation_noun] have fallen off [our_plant] from violent whacking!")) + qdel(our_plant) + +/// Novaflower's attack effects (sets people on fire) + degradation on attack +/datum/plant_gene/trait/attack/novaflower_attack + name = "Heated Petals" + description = "Hitting with it may cause things to combust." + force_multiplier = 0.2 + degrades_after_hit = TRUE + degradation_noun = "petals" + +/datum/plant_gene/trait/attack/novaflower_attack/attack_effect(obj/item/our_plant, mob/living/target, mob/living/user) + if(!istype(target)) + return + + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + to_chat(target, span_danger("You are lit on fire from the intense heat of [our_plant]!")) + target.adjust_fire_stacks(round(our_seed.potency / 20)) + if(target.IgniteMob()) + message_admins("[ADMIN_LOOKUPFLW(user)] set [ADMIN_LOOKUPFLW(target)] on fire with [our_plant] at [AREACOORD(user)]") + user.log_message("set [key_name(target)] on fire with [our_plant]", LOG_ATTACK) + target.log_message("was set on fire by [key_name(user)] with [our_plant].", LOG_ATTACK) + + our_plant.investigate_log("was used by [key_name(user)] to burn [key_name(target)] at [AREACOORD(user)]", INVESTIGATE_BOTANY) + +/// Sunflower's attack effect (shows cute text) +/datum/plant_gene/trait/attack/sunflower_attack + name = "Bright Petals" + description = "Makes others feel the power on hit." + +/datum/plant_gene/trait/attack/sunflower_attack/after_attack_effect(obj/item/our_plant, atom/target, mob/user, proximity_flag, click_parameters) + if(ismob(target)) + var/mob/target_mob = target + user.visible_message("[user] smacks [target_mob] with [user.p_their()] [our_plant.name]! FLOWER POWER!", ignored_mobs = list(target_mob, user)) + if(target_mob != user) + to_chat(target_mob, "[user] smacks you with [our_plant]!FLOWER POWER!") + to_chat(user, "Your [our_plant.name]'s FLOWER POWER strikes [target_mob]!") + + return ..() + +/// Normal nettle's force + degradation on attack +/datum/plant_gene/trait/attack/nettle_attack + name = "Sharpened Leaves" + force_multiplier = 0.2 + degrades_after_hit = TRUE + +/// Deathnettle force + degradation on attack +/datum/plant_gene/trait/attack/nettle_attack/death + name = "Aggressive Sharpened Leaves" + force_multiplier = 0.4 diff --git a/code/modules/hydroponics/genes/backfire.dm b/code/modules/hydroponics/genes/backfire.dm new file mode 100644 index 000000000000..338b0fb17455 --- /dev/null +++ b/code/modules/hydroponics/genes/backfire.dm @@ -0,0 +1,163 @@ +/// Traits for plants with backfire effects. These are negative effects that occur when a plant is handled without gloves/unsafely. +/datum/plant_gene/trait/backfire + name = "Backfire Trait" + icon = "mitten" + description = "Be careful when holding it without protection." + /// Whether our actions are cancelled when the backfire triggers. + var/cancel_action_on_backfire = FALSE + /// A list of extra traits to check to be considered safe. + var/list/traits_to_check + /// A list of extra genes to check to be considered safe. + var/list/genes_to_check + +/datum/plant_gene/trait/backfire/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + if(genes_to_check) + genes_to_check = string_list(genes_to_check) + if(traits_to_check) + traits_to_check = string_list(traits_to_check) + our_plant.AddElement(/datum/element/plant_backfire, cancel_action_on_backfire, traits_to_check, genes_to_check) + RegisterSignal(our_plant, COMSIG_PLANT_ON_BACKFIRE, PROC_REF(on_backfire)) + +/// Signal proc for [COMSIG_PLANT_ON_BACKFIRE] that causes the backfire effect. +/datum/plant_gene/trait/backfire/proc/on_backfire(obj/item/source, mob/living/carbon/user) + SIGNAL_HANDLER + + INVOKE_ASYNC(src, PROC_REF(backfire_effect), source, user) + +/** + * The actual backfire effect on the user. + * Override with plant-specific effects. + */ +/datum/plant_gene/trait/backfire/proc/backfire_effect(obj/item/our_plant, mob/living/carbon/user) + return + +/// Rose's prick on backfire +/datum/plant_gene/trait/backfire/rose_thorns + name = "Rose Thorns" + description = "The stem has a lot of thorns." + traits_to_check = list(TRAIT_PIERCEIMMUNE) + +/datum/plant_gene/trait/backfire/rose_thorns/backfire_effect(obj/item/our_plant, mob/living/carbon/user) + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + if(!our_seed.get_gene(/datum/plant_gene/trait/sticky) && prob(66)) + to_chat(user, span_danger("[our_plant]'s thorns nearly prick your hand. Best be careful.")) + return + + to_chat(user, span_danger("[our_plant]'s thorns prick your hand. Ouch.")) + our_plant.investigate_log("rose-pricked [key_name(user)] at [AREACOORD(user)]", INVESTIGATE_BOTANY) + var/obj/item/bodypart/affecting = user.get_active_hand() + affecting?.receive_damage(2) + +/// Novaflower's hand burn on backfire +/datum/plant_gene/trait/backfire/novaflower_heat + name = "Burning Stem" + description = "The stem may burn your hand." + cancel_action_on_backfire = TRUE + +/datum/plant_gene/trait/backfire/novaflower_heat/backfire_effect(obj/item/our_plant, mob/living/carbon/user) + to_chat(user, span_danger("[our_plant] singes your bare hand!")) + our_plant.investigate_log("self-burned [key_name(user)] for [our_plant.force] at [AREACOORD(user)]", INVESTIGATE_BOTANY) + var/obj/item/bodypart/affecting = user.get_active_hand() + return affecting?.receive_damage(0, our_plant.force) + +/// Normal Nettle hannd burn on backfire +/datum/plant_gene/trait/backfire/nettle_burn + name = "Stinging Stem" + description = "The stem may sting your hand." + +/datum/plant_gene/trait/backfire/nettle_burn/backfire_effect(obj/item/our_plant, mob/living/carbon/user) + to_chat(user, span_danger("[our_plant] burns your bare hand!")) + our_plant.investigate_log("self-burned [key_name(user)] for [our_plant.force] at [AREACOORD(user)]", INVESTIGATE_BOTANY) + var/obj/item/bodypart/affecting = user.get_active_hand() + return affecting?.receive_damage(0, our_plant.force) + +/// Deathnettle hand burn + stun on backfire +/datum/plant_gene/trait/backfire/nettle_burn/death + name = "Aggressive Stinging Stem" + cancel_action_on_backfire = TRUE + +/datum/plant_gene/trait/backfire/nettle_burn/death/backfire_effect(obj/item/our_plant, mob/living/carbon/user) + . = ..() + if(!. || prob(50)) + return + + user.Paralyze(10 SECONDS) + to_chat(user, span_userdanger("You are stunned by the powerful acids of [our_plant]!")) + +/* +/// Ghost-Chili heating up on backfire +/datum/plant_gene/trait/backfire/chili_heat + name = "Active Capsicum Glands" + description = "You may survive a cold winter with this in hand." + genes_to_check = list(/datum/plant_gene/trait/chem_heating) + /// The mob currently holding the chili. + var/datum/weakref/held_mob + /// The chili this gene is tied to, to track it for processing. + var/datum/weakref/our_chili + +/datum/plant_gene/trait/backfire/chili_heat/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + our_chili = WEAKREF(our_plant) + RegisterSignals(our_plant, list(COMSIG_QDELETING, COMSIG_ITEM_DROPPED), PROC_REF(stop_backfire_effect)) + +/* + * Begin processing the trait on backfire. + * + * our_plant - our source plant, which is backfiring + * user - the mob holding our plant + */ +/datum/plant_gene/trait/backfire/chili_heat/backfire_effect(obj/item/our_plant, mob/living/carbon/user) + held_mob = WEAKREF(user) + START_PROCESSING(SSobj, src) + +/* + * Stop processing the trait when we're dropped or deleted. + * + * our_plant - our source plant + */ +/datum/plant_gene/trait/backfire/chili_heat/proc/stop_backfire_effect(datum/source) + SIGNAL_HANDLER + + held_mob = null + STOP_PROCESSING(SSobj, src) + +/* + * The processing of our trait. Heats up the mob ([held_mob]) currently holding the source plant ([our_chili]). + * Stops processing if we're no longer being held by [held mob]. + */ +/datum/plant_gene/trait/backfire/chili_heat/process(seconds_per_tick) + var/mob/living/carbon/our_mob = held_mob?.resolve() + var/obj/item/our_plant = our_chili?.resolve() + + // If our weakrefs don't resolve, or if our mob is not holding our plant, stop processing. + if(!our_mob || !our_plant || !our_mob.is_holding(our_plant)) + stop_backfire_effect() + return + + our_mob.adjust_bodytemperature(7.5 * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick) + if(SPT_PROB(5, seconds_per_tick)) + to_chat(our_mob, span_warning("Your hand holding [our_plant] burns!")) + +/// Bluespace Tomato squashing on the user on backfire +/datum/plant_gene/trait/backfire/bluespace + name = "Bluespace Volatility" + description = "You may be spaced out if you hold this unprotected." + cancel_action_on_backfire = TRUE + genes_to_check = list(/datum/plant_gene/trait/squash) + +/datum/plant_gene/trait/backfire/bluespace/backfire_effect(obj/item/our_plant, mob/living/carbon/user) + if(prob(50)) + return + + to_chat(user, span_danger("[our_plant] slips out of your hand!")) + + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + var/datum/plant_gene/trait/squash/squash_gene = our_seed.get_gene(/datum/plant_gene/trait/squash) + squash_gene.squash_plant(our_plant, user) +*/ diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index ed58e86e16dc..4f2b2420ee55 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -44,8 +44,8 @@ dried_type = src.type if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_new(src, loc) + for(var/datum/plant_gene/trait/trait in seed.genes) + trait.on_new_plant(src, loc) seed.prepare_result(src) transform *= TRANSFORM_USING_VARIABLE(seed.potency, 100) + 0.5 //Makes the resulting produce's sprite larger or smaller based on potency! add_juice() @@ -110,15 +110,13 @@ user.visible_message("[user] starts splitting \the [src].", "You dig into \the [src] and start to split it...", "You hear the sound of a sharp object digging into some plant matter.") if(do_after(user, 20, target = src)) to_chat(user, "You split apart the [src]! Sadly you put too much force and it's remains are unusable, but hey, you got your seeds!") - seedify(src, 1, TRUE, FALSE, src, user) - squash(user) + seedify(src, 1, TRUE, TRUE, src, user) if(TOOL_WRENCH) playsound(loc, 'sound/misc/splort.ogg', 50, TRUE, -1) user.visible_message("[user] starts whacking \the [src].", "You start whacking \the [src]...", "You hear the sound of a plant being whacked violently.") if(do_after(user, 17, target = src)) to_chat(user, "You smash [src]! Sadly there's nothing left of it other than the seeds and some junk.") - seedify(src, 1, TRUE, FALSE, src, user) - squash(user) + seedify(src, 1, TRUE, TRUE, src, user) if(!slice_path) if(O.get_sharpness()) playsound(loc, 'sound/weapons/slice.ogg', 50, TRUE, -1) @@ -127,44 +125,11 @@ to_chat(user, "You slice apart the [src]! You went too far and the tiny remaining scraps are worthless!") seedify(src, 1, TRUE, TRUE, src, user) -// Various gene procs -/obj/item/reagent_containers/food/snacks/grown/attack_self(mob/user) - if(seed && seed.get_gene(/datum/plant_gene/trait/squash)) - squash(user) - ..() - /obj/item/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(!..()) //was it caught by a mob? if(seed) for(var/datum/plant_gene/trait/T in seed.genes) T.on_throw_impact(src, hit_atom) - if(seed.get_gene(/datum/plant_gene/trait/squash)) - squash(hit_atom) - -/obj/item/reagent_containers/food/snacks/grown/proc/squash(atom/target) - var/turf/T = get_turf(target) - forceMove(T) - if(ispath(splat_type, /obj/effect/decal/cleanable/food/plant_smudge)) - if(filling_color) - var/obj/O = new splat_type(T) - O.color = filling_color - O.name = "[name] smudge" - else if(splat_type) - new splat_type(T) - - if(trash) - generate_trash(T) - - visible_message("[src] is squashed.","You hear a smack.") - if(seed) - for(var/datum/plant_gene/trait/trait in seed.genes) - trait.on_squash(src, target) - - reagents.expose(T) - for(var/A in T) - reagents.expose(A) - - qdel(src) /obj/item/reagent_containers/food/snacks/grown/On_Consume() if(iscarbon(usr)) 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/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 820ecae005d8..9459a1f7a816 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -144,6 +144,7 @@ species = "sunflower" plantname = "Sunflowers" product = /obj/item/grown/sunflower + genes = list(/datum/plant_gene/trait/attack/sunflower_attack) endurance = 20 production = 2 yield = 2 @@ -169,10 +170,6 @@ throw_speed = 1 throw_range = 3 -/obj/item/grown/sunflower/attack(mob/M, mob/user) - to_chat(M, "[user] smacks you with a sunflower!FLOWER POWER!") - to_chat(user, "Your sunflower's FLOWER POWER strikes [M]!") - // Moonflower /obj/item/seeds/sunflower/moonflower name = "pack of moonflower seeds" @@ -211,11 +208,18 @@ icon_grow = "novaflower-grow" icon_dead = "sunflower-dead" product = /obj/item/grown/novaflower + genes = list(/datum/plant_gene/trait/backfire/novaflower_heat, /datum/plant_gene/trait/attack/novaflower_attack) mutatelist = list() reagents_add = list(/datum/reagent/consumable/condensedcapsaicin = 0.25, /datum/reagent/consumable/capsaicin = 0.3, /datum/reagent/consumable/nutriment = 0) rarity = 20 research = PLANT_RESEARCH_TIER_3 +/obj/item/seeds/sunflower/novaflower/Initialize(mapload,nogenes) + . = ..() + if(!nogenes) + unset_mutability(/datum/plant_gene/trait/attack/novaflower_attack, PLANT_GENE_REMOVABLE) + unset_mutability(/datum/plant_gene/trait/backfire/novaflower_heat, PLANT_GENE_REMOVABLE) + /obj/item/grown/novaflower seed = /obj/item/seeds/sunflower/novaflower name = "novaflower" @@ -232,33 +236,3 @@ throw_range = 3 attack_verb = list("roasted", "scorched", "burned") grind_results = list(/datum/reagent/consumable/capsaicin = 0, /datum/reagent/consumable/condensedcapsaicin = 0) - -/obj/item/grown/novaflower/add_juice() - ..() - force = round((5 + seed.potency / 5), 1) - -/obj/item/grown/novaflower/attack(mob/living/carbon/M, mob/user) - if(!..()) - return - if(isliving(M)) - to_chat(M, "You are lit on fire from the intense heat of the [name]!") - M.adjust_fire_stacks(seed.potency / 20) - if(M.IgniteMob()) - message_admins("[ADMIN_LOOKUPFLW(user)] set [ADMIN_LOOKUPFLW(M)] on fire with [src] at [AREACOORD(user)]") - log_game("[key_name(user)] set [key_name(M)] on fire with [src] at [AREACOORD(user)]") - -/obj/item/grown/novaflower/afterattack(atom/A as mob|obj, mob/user,proximity) - . = ..() - if(!proximity) - return - if(force > 0) - force -= rand(1, (force / 3) + 1) - else - to_chat(usr, "All the petals have fallen off the [name] from violent whacking!") - qdel(src) - -/obj/item/grown/novaflower/pickup(mob/living/carbon/human/user) - ..() - if(!user.gloves) - to_chat(user, "The [name] burns your bare hand!") - user.adjustFireLoss(rand(1, 5)) diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 73a322ce81ae..be34ef0ec425 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -163,7 +163,7 @@ name = "gatfruit" desc = "It smells like burning." icon_state = "gatfruit" - trash = /obj/item/gun/ballistic/revolver/syndicate + trash = /obj/item/gun/ballistic/revolver/viper bitesize_mod = 2 foodtype = FRUIT tastes = list("gunpowder" = 1) diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index 17d43d0a31c5..c3488c43f789 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -220,7 +220,7 @@ endurance = 8 yield = 4 growthstages = 2 - genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/reagent/liquidelectricity, /datum/plant_gene/trait/plant_type/carnivory) + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/reagent/liquidelectricity, /datum/plant_gene/trait/carnivory) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) research = PLANT_RESEARCH_TIER_3 @@ -229,7 +229,7 @@ . = ..() if(!nogenes) unset_mutability(/datum/plant_gene/reagent/liquidelectricity, PLANT_GENE_EXTRACTABLE) - unset_mutability(/datum/plant_gene/trait/plant_type/carnivory, PLANT_GENE_REMOVABLE) + unset_mutability(/datum/plant_gene/trait/carnivory, PLANT_GENE_REMOVABLE) /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup seed = /obj/item/seeds/chanter/jupitercup diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm index 277245138a54..3fa14561b8d1 100644 --- a/code/modules/hydroponics/grown/nettle.dm +++ b/code/modules/hydroponics/grown/nettle.dm @@ -9,10 +9,16 @@ endurance = 40 // tuff like a toiger yield = 4 growthstages = 5 - genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy) + genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/attack/nettle_attack, /datum/plant_gene/trait/backfire/nettle_burn) mutatelist = list(/obj/item/seeds/nettle/death) reagents_add = list(/datum/reagent/toxin/acid = 0.5) +/obj/item/seeds/nettle/Initialize(mapload,nogenes) + . = ..() + if(!nogenes) + unset_mutability(/datum/plant_gene/trait/attack/nettle_attack, PLANT_GENE_REMOVABLE) + unset_mutability(/datum/plant_gene/trait/backfire/nettle_burn, PLANT_GENE_REMOVABLE) + /obj/item/seeds/nettle/death name = "pack of death-nettle seeds" desc = "These seeds grow into death-nettles." @@ -23,17 +29,23 @@ endurance = 25 maturation = 8 yield = 2 - genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/stinging) + genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/stinging, /datum/plant_gene/trait/attack/nettle_attack/death, /datum/plant_gene/trait/backfire/nettle_burn/death) mutatelist = list() reagents_add = list(/datum/reagent/toxin/acid/fluacid = 0.5, /datum/reagent/toxin/acid = 0.5) rarity = 20 research = PLANT_RESEARCH_TIER_3 +/obj/item/seeds/nettle/death/Initialize(mapload,nogenes) + . = ..() + if(!nogenes) + unset_mutability(/datum/plant_gene/trait/attack/nettle_attack/death, PLANT_GENE_REMOVABLE) + unset_mutability(/datum/plant_gene/trait/backfire/nettle_burn/death, PLANT_GENE_REMOVABLE) + /obj/item/reagent_containers/food/snacks/grown/nettle // "snack" seed = /obj/item/seeds/nettle name = "nettle" desc = "It's probably not wise to touch it with bare hands..." - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' icon_state = "nettle" lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi' @@ -48,40 +60,6 @@ wine_power = 20 wine_flavor = "tingling itchiness" //WS edit: new wine flavors -/obj/item/reagent_containers/food/snacks/grown/nettle/pickup(mob/living/user) - ..() - if(!iscarbon(user)) - return FALSE - var/mob/living/carbon/C = user - if(C.gloves) - return FALSE - if(HAS_TRAIT(C, TRAIT_PIERCEIMMUNE)) - return FALSE - var/hit_zone = (C.held_index_to_dir(C.active_hand_index) == "l" ? "l_":"r_") + "arm" - var/obj/item/bodypart/affecting = C.get_bodypart(hit_zone) - if(affecting) - if(affecting.receive_damage(0, force)) - C.update_damage_overlays() - to_chat(C, "The nettle burns your bare hand!") - return TRUE - -/obj/item/reagent_containers/food/snacks/grown/nettle/afterattack(atom/A as mob|obj, mob/user,proximity) - . = ..() - if(!proximity) - return - if(force > 0) - force -= rand(1, (force / 3) + 1) // When you whack someone with it, leaves fall off - else - to_chat(usr, "All the leaves have fallen off the nettle from violent whacking.") - qdel(src) - -/obj/item/reagent_containers/food/snacks/grown/nettle/basic - seed = /obj/item/seeds/nettle - -/obj/item/reagent_containers/food/snacks/grown/nettle/basic/add_juice() - ..() - force = round((5 + seed.potency / 5), 1) - /obj/item/reagent_containers/food/snacks/grown/nettle/death seed = /obj/item/seeds/nettle/death name = "deathnettle" @@ -91,26 +69,3 @@ throwforce = 15 wine_power = 50 wine_flavor = "burning rage" //WS edit: new wine flavors - -/obj/item/reagent_containers/food/snacks/grown/nettle/death/add_juice() - ..() - force = round((5 + seed.potency / 2.5), 1) - -/obj/item/reagent_containers/food/snacks/grown/nettle/death/pickup(mob/living/carbon/user) - if(..()) - if(prob(50)) - user.Paralyze(100) - to_chat(user, "You are stunned by [src] as you try picking it up!") - -/obj/item/reagent_containers/food/snacks/grown/nettle/death/attack(mob/living/carbon/M, mob/user) - if(!..()) - return - if(isliving(M)) - to_chat(M, "You are stunned by the powerful acid of [src]!") - log_combat(user, M, "attacked", src) - - M.adjust_blurriness(force/7) - if(prob(20)) - M.Unconscious(force / 0.3) - M.Paralyze(force / 0.75) - M.drop_all_held_items() diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm index 97773e39f277..d3f847d7e292 100644 --- a/code/modules/hydroponics/grown/root.dm +++ b/code/modules/hydroponics/grown/root.dm @@ -28,7 +28,7 @@ /obj/item/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params) if(I.get_sharpness()) to_chat(user, "You sharpen the carrot into a shiv with [I].") - var/obj/item/kitchen/knife/shiv/carrot/Shiv = new /obj/item/kitchen/knife/shiv/carrot + var/obj/item/melee/knife/shiv/carrot/Shiv = new /obj/item/melee/knife/shiv/carrot remove_item_from_storage(user) qdel(src) user.put_in_hands(Shiv) diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index f97596c348f2..ee76f02e02c8 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -23,8 +23,9 @@ pixel_y = base_pixel_y + rand(-5, 5) if(seed) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_new(src, newloc) + // Go through all traits in their genes and call on_new_plant from them. + for(var/datum/plant_gene/trait/trait in seed.genes) + trait.on_new_plant(src, newloc) if(istype(src, seed.product)) // no adding reagents if it is just a trash item seed.prepare_result(src) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 74d004849a2a..56ad2264ce01 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -59,7 +59,7 @@ /obj/item/cultivator name = "cultivator" desc = "It's used for removing weeds or scratching your back." - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' icon_state = "cultivator" item_state = "cultivator" lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' @@ -106,7 +106,7 @@ /obj/item/hatchet name = "hatchet" desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/weapon/axe.dmi' icon_state = "hatchet" item_state = "hatchet" lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index bbfeaeeb5b5a..13faaf5f15a5 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -194,7 +194,7 @@ //Pests & Weeds////////////////////////////////////////////////////////// if(pestlevel >= 8) - if(!myseed.get_gene(/datum/plant_gene/trait/plant_type/carnivory)) + if(!myseed.get_gene(/datum/plant_gene/trait/carnivory)) adjustHealth(-2 / rating) else @@ -202,7 +202,7 @@ adjustPests(-1 / rating) else if(pestlevel >= 4) - if(!myseed.get_gene(/datum/plant_gene/trait/plant_type/carnivory)) + if(!myseed.get_gene(/datum/plant_gene/trait/carnivory)) adjustHealth(-1 / rating) else @@ -210,7 +210,7 @@ if(prob(50)) adjustPests(-1 / rating) - else if(pestlevel < 4 && myseed.get_gene(/datum/plant_gene/trait/plant_type/carnivory)) + else if(pestlevel < 4 && myseed.get_gene(/datum/plant_gene/trait/carnivory)) adjustHealth(-2 / rating) if(prob(5)) adjustPests(-1 / rating) @@ -269,10 +269,7 @@ update_appearance() if(myseed && prob(5 * (11-myseed.production))) - for(var/g in myseed.genes) - if(istype(g, /datum/plant_gene/trait)) - var/datum/plant_gene/trait/selectedtrait = g - selectedtrait.on_grow(src) + SEND_SIGNAL(myseed, COMSIG_SEED_ON_GROW, src) return /obj/machinery/hydroponics/update_appearance(updates) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index a57934dc551d..d34490d2bd24 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -1,6 +1,8 @@ /datum/plant_gene var/name var/mutability_flags = PLANT_GENE_EXTRACTABLE | PLANT_GENE_REMOVABLE ///These flags tells the genemodder if we want the gene to be extractable, only removable or neither. + /// The font awesome icon name representing the gene in the seed extractor UI (Once i port that -Fallcon) + var/icon = "dna" /datum/plant_gene/proc/get_name() // Used for manipulator display and gene disk name. var/formatted_name @@ -14,16 +16,39 @@ formatted_name += name return formatted_name -/datum/plant_gene/proc/can_add(obj/item/seeds/S) - return !istype(S, /obj/item/seeds/sample) // Samples can't accept new genes +/* + * Check if the seed can accept this plant gene. + * + * our_seed - the seed we're adding the gene to + * + * Returns TRUE if the seed can take the gene, and FALSE otherwise. + */ +/datum/plant_gene/proc/can_add(obj/item/seeds/our_seed) + SHOULD_CALL_PARENT(TRUE) + return TRUE +/// Copies over vars and information about our current gene to a new gene and returns the new instance of gene. /datum/plant_gene/proc/Copy() - var/datum/plant_gene/G = new type - G.mutability_flags = mutability_flags - return G - -/datum/plant_gene/proc/apply_vars(obj/item/seeds/S) // currently used for fire resist, can prob. be further refactored - return + var/datum/plant_gene/new_gene = new type + new_gene.mutability_flags = mutability_flags + return new_gene + +/* + * on_new_seed is called when seed genes are initialized on the /obj/seed. + * + * new_seed - the seed being created + */ +/datum/plant_gene/proc/on_new_seed(obj/item/seeds/new_seed) + return // Not implemented + +/* + * on_removed is called when the gene is removed from a seed. + * Also called when a seed is qdel'd (and all the genes are removed and deleted). + * + * old_seed - our seed, before being removed + */ +/datum/plant_gene/proc/on_removed(obj/item/seeds/old_seed) + return // Not implemented // Core plant genes store 5 main variables: lifespan, endurance, production, yield, potency /datum/plant_gene/core @@ -171,28 +196,70 @@ // Various traits affecting the product. /datum/plant_gene/trait + /// The rate at which this trait affects something. This can be anything really - why? I dunno. var/rate = 0.05 var/examine_line = "" - var/trait_id // must be set and equal for any two traits of the same type + /// Bonus lines displayed on examine. + var/description = "" + /// Flag - Traits that share an ID cannot be placed on the same plant. + var/trait_ids + /// Flag - Modifications made to the final product. + var/trait_flags + /// A blacklist of seeds that a trait cannot be attached to. + var/list/obj/item/seeds/seed_blacklist /datum/plant_gene/trait/Copy() var/datum/plant_gene/trait/G = ..() G.rate = rate return G -/datum/plant_gene/trait/can_add(obj/item/seeds/S) +/datum/plant_gene/trait/can_add(obj/item/seeds/source_seed) if(!..()) return FALSE - for(var/datum/plant_gene/trait/R in S.genes) - if(trait_id && R.trait_id == trait_id) + for(var/obj/item/seeds/found_seed as anything in seed_blacklist) + if(istype(source_seed, found_seed)) return FALSE - if(type == R.type) + + for(var/datum/plant_gene/trait/trait in source_seed.genes) + if(trait_ids & trait.trait_ids) + return FALSE + if(type == trait.type) return FALSE + return TRUE -/datum/plant_gene/trait/proc/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc) - return +/* + * on_new_plant is called for every plant trait on an /obj/item/grown or /obj/item/reagent_containers/food/snacks/grown when initialized. + * + * our_plant - the source plant being created + * newloc - the loc of the plant + */ +/datum/plant_gene/trait/proc/on_new_plant(obj/item/reagent_containers/food/snacks/grown/our_plant, newloc) + // Plants should always have seeds, but if a plant gene is somehow being instantiated on a plant with no seed, stop initializing genes + // (Plants hold their genes on their seeds, so we can't really add them to something that doesn't exist) + if(isnull(our_plant.get_plant_seed())) + stack_trace("[our_plant] ([our_plant.type]) has a nulled seed value while trying to initialize [src]!") + return FALSE + + // Add on any bonus lines on examine + if(description) + RegisterSignal(our_plant, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) + return TRUE + +/* + * on_new_seed is called when seed genes are initialized on the /obj/seed. + * + * new_seed - the seed being created + */ +/datum/plant_gene/trait/on_new_seed(obj/item/seeds/new_seed) + return TRUE + +/// Add on any unique examine text to the plant's examine text. +/datum/plant_gene/trait/proc/examine(obj/item/reagent_containers/food/snacks/grown/our_plant, mob/examiner, list/examine_list) + SIGNAL_HANDLER + + examine_list += span_info("[description]") /datum/plant_gene/trait/proc/on_consume(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) return @@ -213,84 +280,173 @@ /datum/plant_gene/trait/proc/on_grow(obj/machinery/hydroponics/H) return +/// Allows the plant to be squashed when thrown or slipped on, leaving a colored mess and trash type item behind. /datum/plant_gene/trait/squash - // Allows the plant to be squashed when thrown or slipped on, leaving a colored mess and trash type item behind. - // Also splashes everything in target turf with reagents and applies other trait effects (teleporting, etc) to the target by on_squash. - // For code, see grown.dm name = "Liquid Contents" - examine_line = "It has a lot of liquid contents inside." + icon = "droplet" + description = "It may burst open from the internal pressure on impact." + trait_ids = THROW_IMPACT_ID | REAGENT_TRANSFER_ID | ATTACK_SELF_ID + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE + +// Register a signal that our plant can be squashed on add. +/datum/plant_gene/trait/squash/on_new_plant(obj/item/reagent_containers/food/snacks/grown/our_plant, newloc) + . = ..() + if(!.) + return + + RegisterSignal(our_plant, COMSIG_PLANT_ON_SLIP, PROC_REF(squash_plant)) + RegisterSignal(our_plant, COMSIG_MOVABLE_IMPACT, PROC_REF(squash_plant)) + RegisterSignal(our_plant, COMSIG_ITEM_ATTACK_SELF, PROC_REF(squash_plant)) + +/* + * Signal proc to squash the plant this trait belongs to, causing a smudge, exposing the target to reagents, and deleting it, + * + * Arguments + * our_plant - the plant this trait belongs to. + * target - the atom being hit by this squashed plant. + */ +/datum/plant_gene/trait/squash/proc/squash_plant(obj/item/reagent_containers/food/snacks/grown/our_plant, atom/target) + SIGNAL_HANDLER + + var/turf/our_turf = get_turf(target) + our_plant.forceMove(our_turf) + if(istype(our_plant)) + if(ispath(our_plant.splat_type, /obj/effect/decal/cleanable/food/plant_smudge)) + var/obj/plant_smudge = new our_plant.splat_type(our_turf) + plant_smudge.name = "[our_plant.name] smudge" + if(our_plant.filling_color) + plant_smudge.color = our_plant.filling_color + else if(our_plant.splat_type) + new our_plant.splat_type(our_turf) + else + var/obj/effect/decal/cleanable/food/plant_smudge/misc_smudge = new(our_turf) + misc_smudge.name = "[our_plant.name] smudge" + misc_smudge.color = "#82b900" -/datum/plant_gene/trait/squash/on_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/C) - // Squash the plant on slip. - G.squash(C) + our_plant.visible_message(span_warning("[our_plant] is squashed."),span_hear("You hear a smack.")) + SEND_SIGNAL(our_plant, COMSIG_PLANT_ON_SQUASH, target) + our_plant.reagents?.expose(our_turf) + for(var/things in our_turf) + our_plant.reagents?.expose(things) + + qdel(our_plant) + +/* + * Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery. + * Applies other trait effects (teleporting, etc) to the target by signal. + */ /datum/plant_gene/trait/slip - // Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery. - // Applies other trait effects (teleporting, etc) to the target by on_slip. name = "Slippery Skin" + description = "Watch your step around this." + icon = "person-falling" rate = 1.6 - examine_line = "It has a very slippery skin." + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE -/datum/plant_gene/trait/slip/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc) - ..() - if(istype(G) && ispath(G.trash, /obj/item/grown)) +/datum/plant_gene/trait/slip/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + var/obj/item/reagent_containers/food/snacks/grown/grown_plant = our_plant + if(istype(grown_plant) && ispath(grown_plant.trash, /obj/item/grown)) return - var/obj/item/seeds/seed = G.seed - var/stun_len = seed.potency * rate - if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent(/datum/reagent/lube))) + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + var/stun_len = our_seed.potency * rate + + if(!istype(our_plant, /obj/item/grown/bananapeel) && (!our_plant.reagents || !our_plant.reagents.has_reagent(/datum/reagent/lube))) stun_len /= 3 - G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, PROC_REF(handle_slip), G)) + our_plant.AddComponent(/datum/component/slippery, min(stun_len, 140), NONE, CALLBACK(src, PROC_REF(handle_slip), our_plant)) + +/// On slip, sends a signal that our plant was slipped on out. +/datum/plant_gene/trait/slip/proc/handle_slip(obj/item/reagent_containers/food/snacks/grown/our_plant, mob/slipped_target) + SEND_SIGNAL(our_plant, COMSIG_PLANT_ON_SLIP, slipped_target) -/datum/plant_gene/trait/slip/proc/handle_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/M) - for(var/datum/plant_gene/trait/T in G.seed.genes) - T.on_slip(G, M) +/* + * Cell recharging trait. Charges all mob's power cells to (potency*rate)% mark when eaten. + * Generates sparks on squash. + * Small (potency * rate) chance to shock squish or slip target for (potency * rate) damage. + * Also affects plant batteries see capatative cell production datum + */ /datum/plant_gene/trait/cell_charge - // Cell recharging trait. Charges all mob's power cells to (potency*rate)% mark when eaten. - // Generates sparks on squash. - // Small (potency*rate*5) chance to shock squish or slip target for (potency*rate*5) damage. - // Also affects plant batteries see capatative cell production datum name = "Electrical Activity" + description = "It can electrocute on interaction or recharge batteries when eaten." + icon = "bolt" rate = 0.2 + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE -/datum/plant_gene/trait/cell_charge/on_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/C) - var/power = G.seed.potency*rate - if(prob(power)) - C.electrocute_act(round(power), G, 1, SHOCK_NOGLOVES) - -/datum/plant_gene/trait/cell_charge/on_squash(obj/item/reagent_containers/food/snacks/grown/G, atom/target) - if(iscarbon(target)) - var/mob/living/carbon/C = target - var/power = G.seed.potency*rate - if(prob(power)) - C.electrocute_act(round(power), G, 1, SHOCK_NOGLOVES) - -/datum/plant_gene/trait/cell_charge/on_consume(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) - if(!G.reagents.total_volume) - var/batteries_recharged = 0 - for(var/obj/item/stock_parts/cell/C in target.GetAllContents()) - var/newcharge = min(G.seed.potency*0.01*C.maxcharge, C.maxcharge) - if(C.charge < newcharge) - C.charge = newcharge - if(isobj(C.loc)) - var/obj/O = C.loc - O.update_appearance() //update power meters and such - C.update_appearance() - batteries_recharged = 1 - if(batteries_recharged) - to_chat(target, "Your batteries are recharged!") +/datum/plant_gene/trait/cell_charge/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + if(our_seed.get_gene(/datum/plant_gene/trait/squash)) + // If we have the squash gene, let that handle slipping + RegisterSignal(our_plant, COMSIG_PLANT_ON_SQUASH, PROC_REF(zap_target)) + else + RegisterSignal(our_plant, COMSIG_PLANT_ON_SLIP, PROC_REF(zap_target)) + RegisterSignal(our_plant, COMSIG_FOOD_EATEN, PROC_REF(recharge_cells)) +/* + * Zaps the target with a stunning shock. + * + * our_plant - our source plant, shocking the target + * target - the atom being zapped by our plant + */ +/datum/plant_gene/trait/cell_charge/proc/zap_target(obj/item/our_plant, atom/target) + SIGNAL_HANDLER + if(!iscarbon(target)) + return + + our_plant.investigate_log("zapped [key_name(target)] at [AREACOORD(target)]. Last touched by: [our_plant.fingerprintslast].", INVESTIGATE_BOTANY) + var/mob/living/carbon/target_carbon = target + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + var/power = our_seed.potency * rate + if(prob(power)) + target_carbon.electrocute_act(round(power), our_plant, 1, SHOCK_NOGLOVES) + +/* + * Recharges every cell the person is holding for a bit based on plant potency. + * + * our_plant - our source plant, that we consumed to charge the cells + * eater - the mob that bit the plant + * feeder - the mob that feed the eater the plant + */ +/datum/plant_gene/trait/cell_charge/proc/recharge_cells(obj/item/our_plant, mob/living/carbon/eater, mob/feeder) + SIGNAL_HANDLER + + to_chat(eater, span_notice("You feel energized as you bite into [our_plant].")) + var/batteries_recharged = FALSE + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + for(var/obj/item/stock_parts/cell/found_cell in eater.get_contents()) + var/newcharge = min(our_seed.potency * 0.01 * found_cell.maxcharge, found_cell.maxcharge) + if(found_cell.charge < newcharge) + found_cell.charge = newcharge + if(isobj(found_cell.loc)) + var/obj/cell_location = found_cell.loc + cell_location.update_appearance() //update power meters and such + found_cell.update_appearance() + batteries_recharged = TRUE + if(batteries_recharged) + to_chat(eater, span_notice("Your batteries are recharged!")) + +/* + * Makes the plant glow. Makes the plant in tray glow, too. + * Adds (1.4 + potency * rate) light range and (potency * (rate + 0.01)) light_power to products. + */ /datum/plant_gene/trait/glow - // Makes plant glow. Makes plant in tray glow too. - // Adds 1 + potency*rate light range and potency*(rate + 0.01) light_power to products. name = "Bioluminescence" + icon = "lightbulb" rate = 0.03 - examine_line = "It emits a soft glow." - trait_id = "glow" + description = "It emits a soft glow." + trait_ids = GLOW_ID + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE var/glow_color = "#C3E381" /datum/plant_gene/trait/glow/proc/glow_range(obj/item/seeds/S) @@ -299,15 +455,18 @@ /datum/plant_gene/trait/glow/proc/glow_power(obj/item/seeds/S) return max(S.potency*(rate + 0.01), 0.1) -/datum/plant_gene/trait/glow/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc) +/datum/plant_gene/trait/glow/on_new_plant(obj/item/reagent_containers/food/snacks/grown/G, newloc) . = ..() G.light_system = MOVABLE_LIGHT G.AddComponent(/datum/component/overlay_lighting, glow_range(G.seed), glow_power(G.seed), glow_color) +/* + * Makes plant emit darkness. (Purple-ish shadows) + * Adds - (potency * (rate * 0.2)) light power to products. + */ /datum/plant_gene/trait/glow/shadow - //makes plant emit slightly purple shadows - //adds -potency*(rate*0.2) light power to products name = "Shadow Emission" + icon = "lightbulb-o" rate = 0.04 glow_color = "#AAD84B" @@ -348,157 +507,359 @@ name = "Pink Bioluminescence" glow_color = "#FFB3DA" - - +/* + * Makes plant teleport people when squashed or slipped on. + * Teleport radius is roughly potency / 10. + */ /datum/plant_gene/trait/teleport - // Makes plant teleport people when squashed or slipped on. - // Teleport radius is calculated as max(round(potency*rate), 1) name = "Bluespace Activity" + description = "It causes people to teleport on interaction." + icon = "right-left" rate = 0.1 + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE -/datum/plant_gene/trait/teleport/on_squash(obj/item/reagent_containers/food/snacks/grown/G, atom/target) - if(isliving(target)) - var/teleport_radius = max(round(G.seed.potency / 10), 1) - var/turf/T = get_turf(target) - new /obj/effect/decal/cleanable/molten_object(T) //Leave a pile of goo behind for dramatic effect... - do_teleport(target, T, teleport_radius, channel = TELEPORT_CHANNEL_BLUESPACE) +/datum/plant_gene/trait/teleport/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + if(our_seed.get_gene(/datum/plant_gene/trait/squash)) + // If we have the squash gene, let that handle slipping + RegisterSignal(our_plant, COMSIG_PLANT_ON_SQUASH, PROC_REF(squash_teleport)) + else + RegisterSignal(our_plant, COMSIG_PLANT_ON_SLIP, PROC_REF(slip_teleport)) + +/* + * When squashed, makes the target teleport. + * + * our_plant - our plant, being squashed, and teleporting the target + * target - the atom targeted by the squash + */ +/datum/plant_gene/trait/teleport/proc/squash_teleport(obj/item/our_plant, atom/target) + SIGNAL_HANDLER + + if(!isliving(target)) + return -/datum/plant_gene/trait/teleport/on_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/C) - var/teleport_radius = max(round(G.seed.potency / 10), 1) - var/turf/T = get_turf(C) - to_chat(C, "You slip through spacetime!") - do_teleport(C, T, teleport_radius, channel = TELEPORT_CHANNEL_BLUESPACE) + our_plant.investigate_log("squash-teleported [key_name(target)] at [AREACOORD(target)]. Last touched by: [our_plant.fingerprintslast].", INVESTIGATE_BOTANY) + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + var/teleport_radius = max(round(our_seed.potency / 10), 1) + var/turf/T = get_turf(target) + new /obj/effect/decal/cleanable/molten_object(T) //Leave a pile of goo behind for dramatic effect... + do_teleport(target, T, teleport_radius, channel = TELEPORT_CHANNEL_BLUESPACE) + +/* + * When slipped on, makes the target teleport and either teleport the source again or delete it. + * + * our_plant - our plant being slipped on + * target - the carbon targeted that was slipped and was teleported + */ +/datum/plant_gene/trait/teleport/proc/slip_teleport(obj/item/our_plant, mob/living/carbon/target) + SIGNAL_HANDLER + + our_plant.investigate_log("slip-teleported [key_name(target)] at [AREACOORD(target)]. Last touched by: [our_plant.fingerprintslast].", INVESTIGATE_BOTANY) + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + var/teleport_radius = max(round(our_seed.potency / 10), 1) + var/turf/T = get_turf(target) + to_chat(target, span_warning("You slip through spacetime!")) + do_teleport(target, T, teleport_radius, channel = TELEPORT_CHANNEL_BLUESPACE) if(prob(50)) - do_teleport(G, T, teleport_radius, channel = TELEPORT_CHANNEL_BLUESPACE) + do_teleport(our_plant, T, teleport_radius, channel = TELEPORT_CHANNEL_BLUESPACE) else new /obj/effect/decal/cleanable/molten_object(T) //Leave a pile of goo behind for dramatic effect... - qdel(G) - + qdel(our_plant) +/** + * A plant trait that causes the plant's capacity to double. + * + * When harvested, the plant's individual capacity is set to double it's default. + */ /datum/plant_gene/trait/maxchem - // 2x to max reagents volume. name = "Densified Chemicals" + description = "The reagent volume is doubled." + icon = "flask-vial" rate = 2 + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE -/datum/plant_gene/trait/maxchem/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc) - ..() - G.reagents.maximum_volume *= rate +/datum/plant_gene/trait/maxchem/on_new_plant(obj/item/reagent_containers/food/snacks/grown/our_plant, newloc) + . = ..() + if(!.) + return + our_plant.reagents?.maximum_volume *= rate + +/// Allows a plant to be harvested multiple times. /datum/plant_gene/trait/repeated_harvest name = "Perennial Growth" - -/datum/plant_gene/trait/repeated_harvest/can_add(obj/item/seeds/S) - if(!..()) - return FALSE - if(istype(S, /obj/item/seeds/replicapod)) - return FALSE - return TRUE - + description = "It may be harvested multiple times from the same plant." + icon = "cubes-stacked" + /// Don't allow replica pods to be multi harvested, please. + seed_blacklist = list( + /obj/item/seeds/replicapod, + ) + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE + +/* + * Allows a plant to be turned into a battery when cabling is applied. + * 100 potency plants are made into 2 mj batteries. + * Plants with electrical activity has their capacities massively increased (up to 40 mj at 100 potency) + */ /datum/plant_gene/trait/battery name = "Capacitive Cell Production" + description = "It can work like a power cell when wired properly." + icon = "car-battery" + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE + /// The number of cables needed to make a battery. + var/cables_needed_per_battery = 5 -/datum/plant_gene/trait/battery/on_attackby(obj/item/reagent_containers/food/snacks/grown/G, obj/item/I, mob/user) - if(istype(I, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = I - if(C.use(5)) - to_chat(user, "You add some cable to [G] and slide it inside the battery encasing.") - var/obj/item/stock_parts/cell/potato/pocell = new /obj/item/stock_parts/cell/potato(user.loc) - pocell.icon_state = G.icon_state - pocell.maxcharge = G.seed.potency * 20 - - // The secret of potato supercells! - var/datum/plant_gene/trait/cell_charge/CG = G.seed.get_gene(/datum/plant_gene/trait/cell_charge) - if(CG) // Cell charge max is now 40MJ or otherwise known as 400KJ (Same as bluespace powercells) - pocell.maxcharge *= CG.rate*100 - pocell.charge = pocell.maxcharge - pocell.name = "[G.name] battery" - pocell.desc = "A rechargeable plant-based power cell. This one has a rating of [DisplayEnergy(pocell.maxcharge)], and you should not swallow it." - - if(G.reagents.has_reagent(/datum/reagent/toxin/plasma, 2)) - pocell.rigged = TRUE - - qdel(G) - else - to_chat(user, "You need five lengths of cable to make a [G] battery!") +/datum/plant_gene/trait/battery/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + RegisterSignal(our_plant, COMSIG_PARENT_ATTACKBY, PROC_REF(make_battery)) + +/* + * When a plant with this gene is hit (attackby) with cables, we turn it into a battery. + * + * our_plant - our plant being hit + * hit_item - the item we're hitting the plant with + * user - the person hitting the plant with an item + */ +/datum/plant_gene/trait/battery/proc/make_battery(obj/item/our_plant, obj/item/hit_item, mob/user) + SIGNAL_HANDLER + + if(!istype(hit_item, /obj/item/stack/cable_coil)) + return + + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + var/obj/item/stack/cable_coil/cabling = hit_item + if(!cabling.use(cables_needed_per_battery)) + to_chat(user, span_warning("You need five lengths of cable to make a [our_plant] battery!")) + return + to_chat(user, span_notice("You add some cable to [our_plant] and slide it inside the battery encasing.")) + var/obj/item/stock_parts/cell/potato/pocell = new /obj/item/stock_parts/cell/potato(user.loc) + pocell.icon = our_plant.icon // Just in case the plant icons get spread out in different files eventually, this trait won't cause error sprites (also yay downstreams) + pocell.icon_state = our_plant.icon_state + pocell.maxcharge = our_seed.potency + // The secret of potato supercells! + var/datum/plant_gene/trait/cell_charge/electrical_gene = our_seed.get_gene(/datum/plant_gene/trait/cell_charge) + if(electrical_gene) // Cell charge max is now 40MJ or otherwise known as 400KJ (Same as bluespace power cells) + pocell.maxcharge *= (electrical_gene.rate * 100) + + pocell.charge = pocell.maxcharge + pocell.name = "[our_plant.name] battery" + pocell.desc = "A rechargeable plant-based power cell. This one has a rating of [DisplayEnergy(pocell.maxcharge)], and you should not swallow it." + + if(our_plant.reagents.has_reagent(/datum/reagent/toxin/plasma, 2)) + pocell.rigged = TRUE + + qdel(our_plant) + +/* + * Injects a number of chemicals from the plant when you throw it at someone or they slip on it. + * At 0 potency it can inject 1 unit of its chemicals, while at 100 potency it can inject 20 units. + */ /datum/plant_gene/trait/stinging name = "Hypodermic Prickles" + description = "It stings, passing some reagents in the process." + icon = "syringe" + trait_ids = REAGENT_TRANSFER_ID + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE + +/datum/plant_gene/trait/stinging/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + RegisterSignal(our_plant, COMSIG_PLANT_ON_SLIP, PROC_REF(prickles_inject)) + RegisterSignal(our_plant, COMSIG_MOVABLE_IMPACT, PROC_REF(prickles_inject)) + +/* + * Injects a target with a number of reagents from our plant. + * + * our_plant - our plant that's injecting someone + * target - the atom being hit on thrown or slipping on our plant + */ +/datum/plant_gene/trait/stinging/proc/prickles_inject(obj/item/our_plant, atom/target) + SIGNAL_HANDLER -/datum/plant_gene/trait/stinging/on_slip(obj/item/reagent_containers/food/snacks/grown/G, atom/target) - on_throw_impact(G, target) + if(!isliving(target) || !our_plant.reagents?.total_volume) + return -/datum/plant_gene/trait/stinging/on_throw_impact(obj/item/reagent_containers/food/snacks/grown/G, atom/target) - if(isliving(target) && G.reagents && G.reagents.total_volume) - var/mob/living/L = target - if(L.reagents && L.can_inject(null, 0)) - var/injecting_amount = max(1, G.seed.potency*0.2) // Minimum of 1, max of 20 - G.reagents.trans_to(L, injecting_amount, method = INJECT) - to_chat(target, "You are pricked by [G]!") - log_combat(G, L, "pricked and attempted to inject reagents from [G] to [L]. Last touched by: [G.fingerprintslast].") + var/mob/living/living_target = target + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + if(living_target.reagents && living_target.can_inject()) + var/injecting_amount = max(1, our_seed.potency * 0.2) // Minimum of 1, max of 20 + our_plant.reagents.trans_to(living_target, injecting_amount, method = INJECT) + to_chat(target, span_danger("You are pricked by [our_plant]!")) + log_combat(our_plant, living_target, "pricked and attempted to inject reagents from [our_plant] to [living_target]. Last touched by: [our_plant.fingerprintslast].") + our_plant.investigate_log("pricked and injected [key_name(living_target)] and injected [injecting_amount] reagents at [AREACOORD(living_target)]. Last touched by: [our_plant.fingerprintslast].", INVESTIGATE_BOTANY) +/// Explodes into reagent-filled smoke when squashed. /datum/plant_gene/trait/smoke name = "Gaseous Decomposition" + description = "It can be smashed to turn its Liquid Contents into smoke." + icon = "cloud" + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE -/datum/plant_gene/trait/smoke/on_squash(obj/item/reagent_containers/food/snacks/grown/G, atom/target) - var/datum/effect_system/smoke_spread/chem/S = new - var/splat_location = get_turf(target) - var/smoke_amount = round(sqrt(G.seed.potency * 0.1), 1) - S.attach(splat_location) - S.set_up(G.reagents, smoke_amount, splat_location, 0) - S.start() - G.reagents.clear_reagents() +/datum/plant_gene/trait/smoke/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + RegisterSignal(our_plant, COMSIG_PLANT_ON_SQUASH, PROC_REF(make_smoke)) -/datum/plant_gene/trait/fire_resistance // Lavaland +/* + * Makes a cloud of reagent smoke. + * + * our_plant - our plant being squashed and smoked + * target - the atom the plant was squashed on + */ +/datum/plant_gene/trait/smoke/proc/make_smoke(obj/item/reagent_containers/food/snacks/grown/our_plant, atom/target) + SIGNAL_HANDLER + + our_plant.investigate_log("made smoke at [AREACOORD(target)]. Last touched by: [our_plant.fingerprintslast].", INVESTIGATE_BOTANY) + var/datum/effect_system/smoke_spread/chem/smoke = new + var/splat_location = get_turf(target) + var/smoke_amount = round(sqrt(our_plant.seed.potency * 0.1), 1) + smoke.attach(splat_location) + smoke.set_up(our_plant.reagents, smoke_amount, splat_location, 0) + smoke.start() + our_plant.reagents.clear_reagents() + +/// Makes the plant and its seeds fireproof. From lavaland plants. +/datum/plant_gene/trait/fire_resistance name = "Fire Resistance" + description = "Makes the seeds, plant and produce fireproof." + icon = "fire" + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE -/datum/plant_gene/trait/fire_resistance/apply_vars(obj/item/seeds/S) - if(!(S.resistance_flags & FIRE_PROOF)) - S.resistance_flags |= FIRE_PROOF +/datum/plant_gene/trait/fire_resistance/on_new_seed(obj/item/seeds/new_seed) + if(!(new_seed.resistance_flags & FIRE_PROOF)) + new_seed.resistance_flags |= FIRE_PROOF -/datum/plant_gene/trait/fire_resistance/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc) - if(!(G.resistance_flags & FIRE_PROOF)) - G.resistance_flags |= FIRE_PROOF +/datum/plant_gene/trait/fire_resistance/on_removed(obj/item/seeds/old_seed) + if(old_seed.resistance_flags & FIRE_PROOF) + old_seed.resistance_flags &= ~FIRE_PROOF + +/datum/plant_gene/trait/fire_resistance/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return -///Invasive spreading lets the plant jump to other trays, the spreadinhg plant won't replace plants of the same type. + if(!(our_plant.resistance_flags & FIRE_PROOF)) + our_plant.resistance_flags |= FIRE_PROOF + +/// Invasive spreading lets the plant jump to other trays, and the spreading plant won't replace plants of the same type. /datum/plant_gene/trait/invasive name = "Invasive Spreading" + description = "It attempts to spread around if not contained." + icon = "virus" + mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_EXTRACTABLE + +/datum/plant_gene/trait/invasive/on_new_seed(obj/item/seeds/new_seed) + RegisterSignal(new_seed, COMSIG_SEED_ON_GROW, PROC_REF(try_spread)) + +/datum/plant_gene/trait/invasive/on_removed(obj/item/seeds/old_seed) + UnregisterSignal(old_seed, COMSIG_SEED_ON_GROW) + +/* + * Attempt to find an adjacent tray we can spread to. + * + * our_seed - our plant's seed, what spreads to other trays + * our_tray - the hydroponics tray we're currently in + */ +/datum/plant_gene/trait/invasive/proc/try_spread(obj/item/seeds/our_seed, obj/machinery/hydroponics/our_tray) + SIGNAL_HANDLER + + if(prob(100 - (5 * (11 - our_seed.production)))) + return -/datum/plant_gene/trait/invasive/on_grow(obj/machinery/hydroponics/H) for(var/step_dir in GLOB.alldirs) - var/obj/machinery/hydroponics/HY = locate() in get_step(H, step_dir) - if(HY && prob(15)) - if(HY.myseed) // check if there is something in the tray. - if(HY.myseed.type == H.myseed.type && HY.dead != 0) - continue //It should not destroy its owm kind. - qdel(HY.myseed) - HY.myseed = null - HY.myseed = H.myseed.Copy() - HY.age = 0 - HY.dead = 0 - HY.plant_health = HY.myseed.endurance - HY.lastcycle = world.time - HY.harvest = 0 - HY.weedlevel = 0 // Reset - HY.pestlevel = 0 // Reset - HY.update_appearance() - HY.visible_message("The [H.myseed.plantname] spreads!") - -/datum/plant_gene/trait/plant_type // Parent type + var/obj/machinery/hydroponics/spread_tray = locate() in get_step(our_tray, step_dir) + if(spread_tray && prob(15)) + if(!our_tray.Adjacent(spread_tray)) + continue //Don't spread through things we can't go through. + + spread_seed(spread_tray, our_tray) + +/* + * Actually spread the plant to the tray we found in try_spread. + * + * target_tray - the tray we're spreading to + * origin_tray - the tray we're currently in + */ +/datum/plant_gene/trait/invasive/proc/spread_seed(obj/machinery/hydroponics/target_tray, obj/machinery/hydroponics/origin_tray) + if(target_tray.myseed) // Check if there's another seed in the next tray. + if(target_tray.myseed.type == origin_tray.myseed.type && target_tray.dead != FALSE) + return FALSE // It should not destroy its own kind. + target_tray.visible_message(span_warning("The [target_tray.myseed.plantname] is overtaken by [origin_tray.myseed.plantname]!")) + QDEL_NULL(target_tray.myseed) + target_tray.myseed = origin_tray.myseed.Copy() + target_tray.age = 0 + target_tray.plant_health = target_tray.myseed.endurance + target_tray.lastcycle = world.time + target_tray.weedlevel = 0 + target_tray.pestlevel = 0 + target_tray.visible_message(span_warning("The [origin_tray.myseed.plantname] spreads!")) + if(target_tray.myseed) + target_tray.name = "[initial(target_tray.name)] ([target_tray.myseed.plantname])" + else + target_tray.name = initial(target_tray.name) + + return TRUE + +/// Makes the plant embed on thrown impact. +/datum/plant_gene/trait/sticky + name = "Prickly Adhesion" + description = "It sticks to people when thrown, also passing reagents if stingy." + icon = "bandage" + trait_ids = THROW_IMPACT_ID + +/datum/plant_gene/trait/sticky/on_new_plant(obj/item/our_plant, newloc) + . = ..() + if(!.) + return + + var/obj/item/seeds/our_seed = our_plant.get_plant_seed() + if(our_seed.get_gene(/datum/plant_gene/trait/stinging)) + our_plant.embedding = EMBED_POINTY + else + our_plant.embedding = EMBED_HARMLESS + our_plant.updateEmbedding() + our_plant.throwforce = (our_seed.potency/20) + +/datum/plant_gene/trait/carnivory + name = "Obligate Carnivory" + description = "Pests have positive effect on the plant health." + icon = "spider" + +/// Plant type traits. Incompatible with one another. +/datum/plant_gene/trait/plant_type name = "you shouldn't see this" - trait_id = "plant_type" + trait_ids = PLANT_TYPE_ID + mutability_flags = PLANT_GENE_EXTRACTABLE +/// Weeds don't get annoyed by weeds in their tray. /datum/plant_gene/trait/plant_type/weed_hardy name = "Weed Adaptation" + description = "It is a weed that needs no nutrients and doesn't suffer from other weeds." + icon = "seedling" +/// Mushrooms need less light and have a minimum yield. /datum/plant_gene/trait/plant_type/fungal_metabolism name = "Fungal Vitality" + description = "It is a mushroom that needs no water, less light and can't be overtaken by weeds." + icon = "droplet-slash" -/datum/plant_gene/trait/plant_type/crystal // WS edit - Crystals - name = "Crystalline Growing Patterns" - +/// Currently unused and does nothing. Appears in strange seeds. /datum/plant_gene/trait/plant_type/alien_properties name ="?????" + icon = "reddit-alien" -/datum/plant_gene/trait/plant_type/carnivory - name = "Obligate Carnivory" +/datum/plant_gene/trait/plant_type/crystal + name = "Crystalline Growing Patterns" diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index ad24dccff43d..65f47357899a 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -40,7 +40,7 @@ var/research = 0 // Defines "discovery value", which will give a one-time point payout if a seed is given to an R&D console. Seed discovery is determined on a ship-by-ship basis. var/seed_flags = MUTATE_EARLY // Determines if a plant is allowed to mutate early at 30+ instability -/obj/item/seeds/Initialize(mapload, nogenes = 0) +/obj/item/seeds/Initialize(mapload, nogenes = FALSE) . = ..() pixel_x = base_pixel_y + rand(-8, 8) pixel_y = base_pixel_x + rand(-8, 8) @@ -66,10 +66,14 @@ genes += new /datum/plant_gene/core/potency(potency) genes += new /datum/plant_gene/core/instability(instability) - for(var/p in genes) - if(ispath(p)) - genes -= p - genes += new p + for(var/plant_gene in genes) + if(ispath(plant_gene)) + genes -= plant_gene + genes += new plant_gene + + // Go through all traits in their genes and call on_new_seed from them. + for(var/datum/plant_gene/trait/traits in genes) + traits.on_new_seed(src) for(var/reag_id in reagents_add) genes += new /datum/plant_gene/reagent(reag_id, reagents_add[reag_id]) @@ -557,3 +561,21 @@ genes += P else qdel(P) + +/* + * Both `/item/food/grown` and `/item/grown` implement a seed variable which tracks + * plant statistics, genes, traits, etc. This proc gets the seed for either grown food or + * grown inedibles and returns it, or returns null if it's not a plant. + * + * Returns an `/obj/item/seeds` ref for grown foods or grown inedibles. + * - returned seed CAN be null in weird cases but in all applications it SHOULD NOT be. + * Returns null if it is not a plant. + */ +/obj/item/proc/get_plant_seed() + return null + +/obj/item/reagent_containers/food/snacks/grown/get_plant_seed() + return seed + +/obj/item/grown/get_plant_seed() + return seed diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 39eb08749872..1d13660682f6 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -186,7 +186,7 @@ ACCESS_MECH_MINING, ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY, ACCESS_MECH_MEDICAL, ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_PHARMACY, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING, ACCESS_SOLGOV - ) //WS Edit - SolGov Rep + ) /proc/get_all_centcom_access() return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE, ACCESS_CENT_TELEPORTER, ACCESS_CENT_CAPTAIN) @@ -368,22 +368,19 @@ if(ACCESS_NETWORK) return "Network Access" if(ACCESS_MECH_MINING) - return "Mining Mech Access" + return "Mining Exosuit Access" if(ACCESS_MECH_MEDICAL) - return "Medical Mech Access" + return "Medical Exosuit Access" if(ACCESS_MECH_SECURITY) - return "Security Mech Access" + return "Security Exosuit Access" if(ACCESS_MECH_SCIENCE) - return "Science Mech Access" + return "Science Exosuit Access" if(ACCESS_MECH_ENGINE) - return "Engineering Mech Access" - -//WS Begin + return "Engineering Exosuit Access" if(ACCESS_CLONING) return "Cloning Room" if(ACCESS_SOLGOV) return "SolGov Office" -//WS End /proc/get_centcom_access_desc(A) switch(A) @@ -412,8 +409,5 @@ "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Paramedic", "Prisoner", "Psychologist", //WS Edit - Brig Phys / SolGov Rep "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer", "Brig Physician", "SolGov Representative") //WS Edit - Brig Phys / SolGov Rep -/proc/get_all_job_icons() //For all existing HUD icons - return get_all_jobs() + list("Emergency Response Team Commander", "Security Response Officer", "Engineering Response Officer", "Medical Response Officer", "Entertainment Response Officer", "Religious Response Officer", "Janitorial Response Officer", "Death Commando") - /proc/get_all_centcom_jobs() return list("Central Command","VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Research Officer","Special Ops Officer","Admiral","CentCom Commander","CentCom Bartender","Private Security Force") diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index ab4ceb6968c0..5efe0a0a00d2 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -15,20 +15,6 @@ var/obj/item/storage/book/bible/booze/B = new - if(GLOB.religion) - B.deity_name = GLOB.deity - B.name = GLOB.bible_name - B.icon_state = GLOB.bible_icon_state - B.item_state = GLOB.bible_item_state - to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the Chaplain.") - H.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK) - var/nrt = GLOB.holy_weapon_type || /obj/item/nullrod - var/obj/item/nullrod/N = new nrt(H) - H.put_in_hands(N) - if(GLOB.religious_sect) - GLOB.religious_sect.on_conversion(H) - return - var/new_religion = DEFAULT_RELIGION if(M.client && M.client.prefs.custom_names["religion"]) new_religion = M.client.prefs.custom_names["religion"] diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index d131d8ad4cd4..e2c0e24501b1 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( @@ -35,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/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/jobs/job_types/janitor.dm b/code/modules/jobs/job_types/janitor.dm index 60c8ab9672b4..1c9393a49c94 100644 --- a/code/modules/jobs/job_types/janitor.dm +++ b/code/modules/jobs/job_types/janitor.dm @@ -22,5 +22,5 @@ /datum/outfit/job/janitor/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() if(GARBAGEDAY in SSevents.holidays) - l_pocket = /obj/item/gun/ballistic/revolver/syndicate + l_pocket = /obj/item/gun/ballistic/revolver/viper r_pocket = /obj/item/ammo_box/a357 diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 1469e592b4de..341116d30c8c 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -26,7 +26,7 @@ r_pocket = /obj/item/storage/bag/ore //causes issues if spawned in backpack backpack_contents = list( /obj/item/flashlight/seclite=1,\ - /obj/item/kitchen/knife/combat/survival=1,\ + /obj/item/melee/knife/survival=1,\ /obj/item/stack/marker_beacon/ten=1,\ /obj/item/radio/weather_monitor=1) 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/library/lib_items.dm b/code/modules/library/lib_items.dm index 55d33ee80d20..9c6e90469fcc 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -319,7 +319,7 @@ scanner.computer.inventory.Add(src) to_chat(user, "[I]'s screen flashes: 'Book stored in buffer. Title added to general inventory.'") - else if(istype(I, /obj/item/kitchen/knife) || I.tool_behaviour == TOOL_WIRECUTTER) + else if(istype(I, /obj/item/melee/knife) || I.tool_behaviour == TOOL_WIRECUTTER) to_chat(user, "You begin to carve out [title]...") if(do_after(user, 30, target = src)) to_chat(user, "You carve out the pages from [title]! You didn't want to read it anyway.") diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 71de02b3ca1c..38b3728651ce 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -358,7 +358,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums return null /obj/machinery/computer/bookmanagement/proc/print_forbidden_lore(mob/user) - new /obj/item/melee/cultblade/dagger(get_turf(src)) to_chat(user, "Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a sinister dagger sitting on the desk. You don't even remember where it came from...") user.visible_message("[user] stares at the blank screen for a few moments, [user.p_their()] expression frozen in fear. When [user.p_they()] finally awaken[user.p_s()] from it, [user.p_they()] look[user.p_s()] a lot older.", 2) diff --git a/code/modules/lighting/emissive_blocker.dm b/code/modules/lighting/emissive_blocker.dm index 308ba8f2448c..84c71203dd2a 100644 --- a/code/modules/lighting/emissive_blocker.dm +++ b/code/modules/lighting/emissive_blocker.dm @@ -32,9 +32,6 @@ /atom/movable/emissive_blocker/singularity_pull() return -/atom/movable/emissive_blocker/blob_act() - return - //Prevents people from moving these after creation, because they shouldn't be. /atom/movable/emissive_blocker/forceMove(atom/destination, no_tp=FALSE, harderforce = FALSE) if(harderforce) diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm index 7b6bc79aec45..d2d95678ef04 100644 --- a/code/modules/lighting/lighting_object.dm +++ b/code/modules/lighting/lighting_object.dm @@ -130,9 +130,6 @@ /atom/movable/lighting_object/singularity_pull() return -/atom/movable/lighting_object/blob_act() - return - /atom/movable/lighting_object/wash(clean_types) return diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index e9ac7662edab..251cf46e7c5f 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -280,8 +280,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) //cake + knife to cut it! if(length(table)) var/turf/food_turf = get_turf(pick(table)) - new /obj/item/kitchen/knife(food_turf) - var/obj/item/reagent_containers/food/snacks/store/cake/birthday/iancake = new(food_turf) + new /obj/item/melee/knife/kitchen(food_turf) + var/obj/item/food/cake/birthday/iancake = new(food_turf) iancake.desc = "Happy birthday, Ian!" //some balloons! this picks an open turf and pops a few balloons in and around that turf, yay. 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/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index d86cfebf1197..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) @@ -136,7 +140,7 @@ for(var/i in 1 to 3) new /obj/item/clothing/mask/cigarette/rollie(src) if(6 to 10) - new /obj/item/melee/skateboard/pro(src) + new /obj/item/skateboard/pro(src) if(11 to 15) new /mob/living/simple_animal/bot/honkbot(src) if(16 to 20) @@ -178,7 +182,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) @@ -211,7 +214,7 @@ for(var/i in 1 to 30) new /mob/living/simple_animal/hostile/cockroach(src) if(92) - new /obj/item/katana(src) + new /obj/item/melee/sword/katana(src) if(93) new /obj/item/dnainjector/xraymut(src) if(94) @@ -220,7 +223,6 @@ if(95) new /obj/item/toy/plush/nukeplushie(src) if(96) - new /obj/item/banhammer(src) for(var/i in 1 to 3) new /obj/item/mine/pressure/sound(src) if(97) @@ -229,7 +231,7 @@ new /obj/item/gun/ballistic/shotgun/toy(src) new /obj/item/gun/ballistic/automatic/toy/pistol(src) new /obj/item/gun/ballistic/automatic/toy(src) - new /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy(src) + new /obj/item/gun/ballistic/automatic/toy(src) new /obj/item/ammo_box/foambox(src) if(98) for(var/i in 1 to 3) @@ -237,5 +239,5 @@ if(99) new /obj/item/implanter/sad_trombone(src) if(100) - new /obj/item/melee/skateboard/hoverboard(src) + new /obj/item/skateboard/hoverboard(src) spawned_loot = TRUE 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/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 46c20dd02e1b..b5e112713a82 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -11,7 +11,7 @@ heat_protection = CHEST|GROIN|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/explorer armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/pinpointer/mineral, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION @@ -65,7 +65,7 @@ resistance_flags = FIRE_PROOF | LAVA_PROOF slowdown = 0 armor = list("melee" = 70, "bullet" = 40, "laser" = 30, "energy" = 45, "bomb" = 70, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/pinpointer/mineral, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) /obj/item/clothing/suit/space/hostile_environment/Initialize() . = ..() @@ -147,10 +147,10 @@ /obj/item/clothing/gloves/explorer/old name = "prototype exploration gauntlets" - desc = "Thick-fingered gloves with a heavy layer of armor plating, meant to stop all but the most brutal of stovetop-touching accidents in the field. This premium pre-run prototype comes with an added layer of electrical insulation." + desc = "Thick-fingered gloves with a heavy layer of armor plating, meant to stop all but the most brutal of stovetop-touching accidents in the field." icon_state = "explorerold" armor = list("melee" = 25, "bullet" = 10, "laser" = 15, "energy" = 15, "bomb" = 65, "bio" = 100, "rad" = 75, "fire" = 75, "acid" = 75) - siemens_coefficient = 0 + siemens_coefficient = 0.5 permeability_coefficient = 0.05 /obj/item/clothing/suit/hooded/survivor @@ -167,7 +167,7 @@ heat_protection = CHEST|GROIN|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/survivor_hood armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/pinpointer/mineral, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION @@ -190,3 +190,37 @@ /obj/item/clothing/head/hooded/survivor_hood/Initialize() . = ..() AddComponent(/datum/component/armor_plate) + +/obj/item/clothing/suit/hooded/scrap + name = "scrap suit" + desc = "A ragged makeshift suit." + lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing_righthand.dmi' + icon_state = "survivor" + item_state = "survivor_suit" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + min_cold_protection_temperature = (FIRE_SUIT_MIN_TEMP_PROTECT * 2) + cold_protection = CHEST|GROIN|LEGS|ARMS + max_heat_protection_temperature = (FIRE_SUIT_MAX_TEMP_PROTECT / 2) + heat_protection = CHEST|GROIN|LEGS|ARMS + hoodtype = /obj/item/clothing/head/hooded/scrap + armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals) + resistance_flags = FIRE_PROOF + supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION + +/obj/item/clothing/head/hooded/scrap + name = "scrap hood" + desc = "A loose-fitting hood. It gets the job done." + icon_state = "explorerold" + suit = /obj/item/clothing/suit/hooded/scrap + body_parts_covered = HEAD + flags_inv = HIDEHAIR|HIDEEARS + armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30) + +/obj/item/clothing/suit/armor/vest/scrap + name = "scrap armor" + desc = "An 'armor' vest consisting of sheet metal held together with cable. Who thought this was a good idea?" + icon_state = "scraparmor" + item_state = "scraparmor" + armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index b6073d4c86a2..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() @@ -135,6 +121,8 @@ nodamage = TRUE damage = 0 //We're just here to mark people. This is still a melee weapon. damage_type = BRUTE + wall_damage_flags = PROJECTILE_BONUS_DAMAGE_MINERALS + wall_damage_override = MINERAL_WALL_INTEGRITY flag = "bomb" range = 6 log_override = TRUE @@ -152,7 +140,6 @@ if(ismineralturf(target_turf)) var/turf/closed/mineral/M = target_turf new /obj/effect/temp_visual/kinetic_blast(M) - M.gets_drilled(firer, TRUE) ..() //outdated Nanotrasen prototype of the crusher. Incredibly heavy, but the blade was made at a premium. //to alter this I had to duplicate some code, big moment. @@ -181,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. @@ -194,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 @@ -215,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/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm index 7c62a915f65e..4def7dbe5dde 100644 --- a/code/modules/mining/equipment/mineral_scanner.dm +++ b/code/modules/mining/equipment/mineral_scanner.dm @@ -126,6 +126,7 @@ /obj/item/pinpointer/mineral/examine(mob/user) . = ..() . += "It is currently set to [scanmode ? "scan underground" : "scan the surface"]." + . += span_notice("You can use the scanner on an vein on harm intent to mark them as sites of no interest, causing them to no longer show up on scans.") /obj/item/pinpointer/mineral/AltClick(mob/user) //switching modes ..() @@ -204,7 +205,7 @@ var/located_dist var/obj/structure/located_vein for(var/obj/structure/vein/I in GLOB.ore_veins) - if(I.z == 0 || I.virtual_z() != here.virtual_z()) + if(I.z == 0 || I.virtual_z() != here.virtual_z() || I.detectable == FALSE) continue if(located_vein) var/new_dist = get_dist(here, get_turf(I)) @@ -223,6 +224,16 @@ if(!proximity || !istype(O,/obj/structure/vein)) return playsound(src, 'sound/effects/fastbeep.ogg', 10) + if(user.a_intent == INTENT_HARM) + if(O.detectable == TRUE) + to_chat(user,span_notice("You blacklist the vein from the scanner's telemetry, and will no longer be detected as a site of interest to the scanner.")) + O.detectable = FALSE + return + else + to_chat(user,span_notice("You mark vein into the scanner's telemetry, allowing it be located by underground scans.")) + O.detectable = TRUE + return + if(O.vein_contents.len > 0) to_chat(user, "Class [O.vein_class] ore vein with [O.mining_charges] possible ore lodes found.") for(var/re in O.vein_contents) diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index d38a3ce8b55b..a0548a2cb9f1 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -17,6 +17,7 @@ toolspeed = 0.5 usesound = list('sound/effects/picaxe1.ogg', 'sound/effects/picaxe2.ogg', 'sound/effects/picaxe3.ogg') attack_verb = list("hit", "pierced", "sliced", "attacked") + wall_decon_damage = MINERAL_WALL_INTEGRITY /obj/item/pickaxe/rusted name = "rusty pickaxe" @@ -24,6 +25,7 @@ attack_verb = list("ineffectively hit") force = 1 throwforce = 1 + wall_decon_damage = 50 /obj/item/pickaxe/mini name = "compact pickaxe" diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 7ba30d327444..15f7cb2e3a69 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -5,7 +5,7 @@ dynamic_lighting = DYNAMIC_LIGHTING_FORCED requires_power = FALSE has_gravity = STANDARD_GRAVITY - area_flags = BLOBS_ALLOWED | UNIQUE_AREA + area_flags = UNIQUE_AREA flags_1 = CAN_BE_DIRTY_1 //Survival Capsule @@ -308,17 +308,16 @@ var/possible = list(/obj/item/ship_in_a_bottle, /obj/item/gun/energy/pulse, /obj/item/book/granter/martial/carp, - /obj/item/melee/supermatter_sword, + /obj/item/melee/sword/supermatter, /obj/item/shield/changeling, /obj/item/lava_staff, - /obj/item/energy_katana, + /obj/item/melee/sword/energy_katana, /obj/item/hierophant_club, /obj/item/gun/energy/minigun, - /obj/item/gun/ballistic/automatic/hmg/l6_saw, + /obj/item/gun/ballistic/automatic/assault/hydra/lmg/extended, /obj/item/stack/telecrystal/twenty, /obj/item/nuke_core, - /obj/item/phylactery, - /obj/item/banhammer) + /obj/item/phylactery) /obj/item/fakeartefact/Initialize() . = ..() diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 2af4c1b5ce4f..e44dd4b14dce 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -41,10 +41,7 @@ var/turf/targetturf = find_safe_turf() if(!targetturf) - if(GLOB.blobstart.len > 0) - targetturf = get_turf(pick(GLOB.blobstart)) - else - CRASH("Unable to find a blobstart landmark") + CRASH("Unable to find a blobstart landmark") var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), 100, null, FALSE, targetturf) log_game("[user] Has jaunted to [loc_name(targetturf)].") message_admins("[user] Has jaunted to [ADMIN_VERBOSEJMP(targetturf)].") diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index f9563cc078eb..bf6fb15c9332 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -419,7 +419,7 @@ /obj/item/seeds/lavaland/puce/attackby(obj/item/item, mob/user, params) . = ..() //anyone intending to add more garnishes using this method should componentize this - if(!istype(item, /obj/item/kitchen/knife)) + if(!istype(item, /obj/item/melee/knife)) return playsound(src, 'sound/effects/glassbr1.ogg', 50, TRUE, -1) to_chat(user, "You start breaking [src] up into shards...") diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index e48f4d5af5aa..73d18f0ab885 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -15,16 +15,12 @@ /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(4) - new /obj/item/katana/cursed(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) @@ -47,7 +43,7 @@ new /obj/item/borg/upgrade/modkit/lifesteal(src) new /obj/item/bedsheet/cult(src) if(14) - new /obj/item/nullrod/scythe/talking/necro(src) + new /obj/item/scythe(src) if(15) new /obj/item/book_of_babel(src) if(16) @@ -80,8 +76,6 @@ new /obj/item/gun/energy/spur(src) if(28) new /obj/item/clothing/suit/armor/ascetic(src) - if(29) - new /obj/item/kitchen/knife/envy(src) /obj/structure/closet/crate/necropolis/tendril/greater desc = "It's watching you wearily. It seems terribly bloated." @@ -96,10 +90,8 @@ new /obj/item/clothing/suit/space/hardsuit/cult(src) if(3) new /obj/item/necromantic_stone/lava(src) - if(4) - new /obj/item/katana/cursed(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) @@ -122,7 +114,7 @@ new /obj/item/borg/upgrade/modkit/lifesteal(src) new /obj/item/bedsheet/cult(src) if(14) - new /obj/item/nullrod/scythe/talking/necro(src) + new /obj/item/scythe(src) if(15) new /obj/item/book_of_babel(src) if(16) @@ -155,36 +147,6 @@ new /obj/item/gun/energy/spur(src) if(28) new /obj/item/clothing/suit/armor/ascetic(src) - if(29) - new /obj/item/kitchen/knife/envy(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 @@ -736,10 +698,9 @@ 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/claymore(H), TRUE) - H.equip_to_slot_or_del(new /obj/item/spear(H), ITEM_SLOT_BACK) + 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) //ice cube /obj/item/freeze_cube @@ -933,6 +894,8 @@ range = 20 damage = 30 damage_type = BRUTE + wall_damage_flags = PROJECTILE_BONUS_DAMAGE_MINERALS + wall_damage_override = MINERAL_WALL_INTEGRITY icon = 'icons/obj/projectiles.dmi' icon_state = "spur_high" var/skip = FALSE //this is the hackiest thing ive ever done but i dont know any other solution other than deparent the spur projectile @@ -994,9 +957,6 @@ spawn(15) target.overlays -= impact playsound(loc, impact_sound, 30) - if(istype(target,/turf/closed/mineral)) - var/turf/closed/mineral/M = target - M.gets_drilled() ..() /obj/item/ammo_casing/energy/spur/spur @@ -1103,7 +1063,7 @@ C.update_inv_wear_suit() /obj/item/clothing/suit/armor/ascetic/worn_overlays(isinhands) - . = list() + . = ..() if(!isinhands) . += mutable_appearance('icons/effects/effects.dmi', shield_state, MOB_LAYER - 0.01) @@ -1205,7 +1165,7 @@ var/loot = rand(1,4) switch(loot) if(1) - new /obj/item/melee/ghost_sword(src) + new /obj/item/melee/sword/claymore(src) if(2) new /obj/item/lava_staff(src) if(3) @@ -1213,91 +1173,6 @@ if(4) new /obj/item/dragons_blood(src) -/obj/item/melee/ghost_sword - name = "\improper spectral blade" - desc = "A rusted and dulled blade. It doesn't look like it'd do much damage. It glows weakly." - icon_state = "spectral" - item_state = "spectral" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - flags_1 = CONDUCT_1 - sharpness = IS_SHARP - w_class = WEIGHT_CLASS_BULKY - force = 1 - throwforce = 1 - hitsound = 'sound/effects/ghost2.ogg' - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "rended") - var/summon_cooldown = 0 - var/list/mob/dead/observer/spirits - -/obj/item/melee/ghost_sword/Initialize() - . = ..() - spirits = list() - START_PROCESSING(SSobj, src) - GLOB.poi_list |= src - AddComponent(/datum/component/butchering, 150, 90) - -/obj/item/melee/ghost_sword/Destroy() - for(var/mob/dead/observer/G in spirits) - G.invisibility = GLOB.observer_default_invisibility - spirits.Cut() - STOP_PROCESSING(SSobj, src) - GLOB.poi_list -= src - . = ..() - -/obj/item/melee/ghost_sword/attack_self(mob/user) - if(summon_cooldown > world.time) - to_chat(user, "You just recently called out for aid. You don't want to annoy the spirits!") - return - to_chat(user, "You call out for aid, attempting to summon spirits to your side.") - - notify_ghosts("[user] is raising [user.p_their()] [src], calling for your help!", - enter_link="(Click to help)", - source = user, action=NOTIFY_ORBIT, ignore_key = POLL_IGNORE_SPECTRAL_BLADE, header = "Spectral blade") - - summon_cooldown = world.time + 300 - -/obj/item/melee/ghost_sword/process() - ghost_check() - -/obj/item/melee/ghost_sword/proc/ghost_check() - var/ghost_counter = 0 - var/turf/T = get_turf(src) - var/list/contents = T.GetAllContents() - var/mob/dead/observer/current_spirits = list() - for(var/thing in contents) - var/atom/A = thing - A.transfer_observers_to(src) - - for(var/i in orbiters?.orbiters) - if(!isobserver(i)) - continue - var/mob/dead/observer/G = i - ghost_counter++ - G.invisibility = 0 - current_spirits |= G - - for(var/mob/dead/observer/G in spirits - current_spirits) - G.invisibility = GLOB.observer_default_invisibility - - spirits = current_spirits - - return ghost_counter - -/obj/item/melee/ghost_sword/attack(mob/living/target, mob/living/carbon/human/user) - force = 0 - var/ghost_counter = ghost_check() - - force = clamp((ghost_counter * 4), 0, 75) - user.visible_message("[user] strikes with the force of [ghost_counter] vengeful spirits!") - ..() - -/obj/item/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - var/ghost_counter = ghost_check() - final_block_chance += clamp((ghost_counter * 5), 0, 75) - owner.visible_message("[owner] is protected by a ring of [ghost_counter] ghosts!") - return ..() - //Blood /obj/item/dragons_blood @@ -1767,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/machine_vending.dm b/code/modules/mining/machine_vending.dm index 15cde601689e..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, @@ -121,6 +120,6 @@ new /obj/item/clothing/suit/hooded/explorer(src) new /obj/item/clothing/mask/gas/explorer(src) new /obj/item/gun/energy/kinetic_accelerator(src) - new /obj/item/kitchen/knife/combat/survival(src) + new /obj/item/melee/knife/survival(src) new /obj/item/flashlight/seclite(src) new /obj/item/clothing/gloves/explorer(src) diff --git a/code/modules/mining/ore_veins.dm b/code/modules/mining/ore_veins.dm index 32b1ffeab8d5..16f6afa8da0c 100644 --- a/code/modules/mining/ore_veins.dm +++ b/code/modules/mining/ore_veins.dm @@ -10,6 +10,8 @@ GLOBAL_LIST_EMPTY(ore_veins) move_resist = INFINITY resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + //Whether the mining scanner is able to locate this vein. + var/detectable = TRUE var/mining_charges = 6 //Classification of the quality of possible ores within a vein //Used to determine difficulty & ore amounts @@ -75,6 +77,11 @@ GLOBAL_LIST_EMPTY(ore_veins) ore_list.Remove(picked) GLOB.ore_veins += src +/obj/structure/vein/examine(mob/user) + . = ..() + if(!detectable) + . += span_notice("This vein has been marked as a site of no interest, and will not show up on deep core scans.") + /obj/structure/vein/Destroy() GLOB.ore_veins -= src return ..() @@ -105,6 +112,7 @@ GLOBAL_LIST_EMPTY(ore_veins) /obj/structure/vein/proc/toggle_spawning() spawning_started = SEND_SIGNAL(src, COMSIG_SPAWNER_TOGGLE_SPAWNING, spawning_started) + // // Planetary and Class Subtypes // The current set of subtypes are heavily subject to future balancing and reworking as the balance of them is tested more 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/camera/camera.dm b/code/modules/mob/camera/camera.dm index 7d5bd8b42860..170cb25b49cf 100644 --- a/code/modules/mob/camera/camera.dm +++ b/code/modules/mob/camera/camera.dm @@ -1,4 +1,4 @@ -// Camera mob, used by AI camera and blob. +// Camera mob, used by AI camera. /mob/camera name = "camera mob" 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/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index cc5a69dd095f..71b66ac54fb4 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -52,7 +52,9 @@ var/random_species_type = GLOB.species_list[pick(GLOB.roundstart_races)] pref_species = new random_species_type if(randomise[RANDOM_NAME]) - real_name = pref_species.random_name(gender,1) + real_name = pref_species.random_name(gender, TRUE) + if(randomise[RANDOM_AGE]) + age = rand(pref_species.species_age_min, pref_species.species_age_max) /datum/preferences/proc/update_preview_icon(show_gear = TRUE, show_loadout = FALSE) // Set up the dummy for its photoshoot diff --git a/code/modules/mob/dead/new_player/ship_select.dm b/code/modules/mob/dead/new_player/ship_select.dm index fe88abdf3399..e130f6e404ce 100644 --- a/code/modules/mob/dead/new_player/ship_select.dm +++ b/code/modules/mob/dead/new_player/ship_select.dm @@ -166,7 +166,7 @@ continue var/list/ship_data = list( "name" = T.name, - "faction" = ship_prefix_to_faction(T.prefix), + "faction" = T.faction_name, "desc" = T.description, "tags" = T.tags, "crewCount" = length(T.job_slots), 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/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 4a768fc1c501..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 @@ -495,10 +500,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(isobserver(usr)) //Make sure they're an observer! + 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 @@ -838,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 da3bc7c2dfb5..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,89 +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, only_realname = TRUE) - 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 - - serialized["fake_name"] = M.name - 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/blood.dm b/code/modules/mob/living/blood.dm index 1910347e4fdd..8e2962e70d2f 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -51,19 +51,31 @@ if(BLOOD_VOLUME_MAXIMUM to BLOOD_VOLUME_EXCESS) if(prob(10)) to_chat(src, "You feel terribly bloated.") + if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) - if(prob(5)) + + if(prob(1)) to_chat(src, "You feel [word].") - adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.01, 1)) + if(oxyloss < 20) + adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1)) + if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY) - adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1)) - if(prob(5)) - blur_eyes(6) + if(eye_blurry < 50) + adjust_blurriness(5) + if(oxyloss < 40) + adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1)) + else + adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.01, 1)) + + if(prob(15)) + Unconscious(rand(2 SECONDS,6 SECONDS)) to_chat(src, "You feel very [word].") + if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) - adjustOxyLoss(5) + adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1)) + adjustToxLoss(2) if(prob(15)) - Unconscious(rand(20,60)) + Unconscious(rand(2 SECONDS,6 SECONDS)) to_chat(src, "You feel extremely [word].") if(-INFINITY to BLOOD_VOLUME_SURVIVE) if(!HAS_TRAIT(src, TRAIT_NODEATH)) @@ -81,25 +93,76 @@ BP.adjust_bleeding(0.1, BLOOD_LOSS_DAMAGE_MAXIMUM) limb_bleed += BP.bleeding + var/message_cooldown = 5 SECONDS + var/bleeeding_wording +// var/bleed_change_wording + switch(limb_bleed) + if(0 to 0.5) + bleeeding_wording = "You hear droplets of blood drip down." + message_cooldown *= 2.5 + if(0.5 to 1) + bleeeding_wording = "You feel your blood flow quietly to the floor." + message_cooldown *= 2 + if(1 to 2) + bleeeding_wording = "The flow of blood leaving your body onto the ground is worrying..." + message_cooldown *= 1.7 + if(2 to 4) + bleeeding_wording = "You're losing blood very fast, which is freaking you out!" + message_cooldown *= 1.5 + if(4 to INFINITY) + bleeeding_wording = "Your heartbeat beats unstably fast as you lose a massive amount of blood!!" + if(limb_bleed && !bleedsuppress && !HAS_TRAIT(src, TRAIT_FAKEDEATH)) bleed(limb_bleed) + if(!blood_particle) + blood_particle = new(src, /particles/droplets/blood, PARTICLE_ATTACH_MOB) + blood_particle.particles.color = dna.blood_type.color //mouthful + blood_particle.particles.spawning = (limb_bleed/2) + blood_particle.particles.count = (round(clamp((limb_bleed * 2), 1, INFINITY))) + + if(COOLDOWN_FINISHED(src, bloodloss_message) && bleeeding_wording) + to_chat(src, span_warning("[bleeeding_wording]")) + COOLDOWN_START(src, bloodloss_message, message_cooldown) + else + if(blood_particle) + QDEL_NULL(blood_particle) + //Makes a blood drop, leaking amt units of blood from the mob /mob/living/carbon/proc/bleed(amt) if(blood_volume) blood_volume = max(blood_volume - amt, 0) if (prob(sqrt(amt)*BLOOD_DRIP_RATE_MOD)) if(isturf(src.loc) && !isgroundlessturf(src.loc)) //Blood loss still happens in locker, floor stays clean - if(amt >= 10) - add_splatter_floor(src.loc) + if(amt >= 2) + add_splatter_floor(src.loc, amt = amt) else - add_splatter_floor(src.loc, 1) + add_splatter_floor(src.loc, TRUE, amt) /mob/living/carbon/human/bleed(amt) amt *= physiology.bleed_mod if(!(NOBLOOD in dna.species.species_traits)) ..() +/** + * This proc is a helper for spraying blood for things like slashing/piercing wounds and dismemberment. + * + * The strength of the splatter in the second argument determines how much it can dirty and how far it can go + * + * Arguments: + * * splatter_direction: Which direction the blood is flying + * * splatter_strength: How many tiles it can go, and how many items it can pass over and dirty + */ +/mob/living/carbon/proc/spray_blood(splatter_direction, splatter_strength = 3) + if(!isturf(loc)) + return + var/obj/effect/decal/cleanable/blood/hitsplatter/our_splatter = new(loc) + +// our_splatter.transfer_mob_blood_dna(return_blood_DNA(src)) + our_splatter.blood_dna_info = get_blood_dna_list() + our_splatter.transfer_mob_blood_dna(src) + var/turf/targ = get_ranged_target_turf(src, splatter_direction, splatter_strength) + INVOKE_ASYNC(our_splatter, TYPE_PROC_REF(/obj/effect/decal/cleanable/blood/hitsplatter, fly_towards), targ, splatter_strength) /mob/living/proc/restore_blood() @@ -229,13 +292,14 @@ return blood_type.color //to add a splatter of blood or other mob liquid. -/mob/living/proc/add_splatter_floor(turf/T, small_drip) +/mob/living/proc/add_splatter_floor(turf/T, small_drip, amt) if(get_blood_id() != /datum/reagent/blood) return if(!T) T = get_turf(src) var/list/temp_blood_DNA + if(small_drip) // Only a certain number of drips (or one large splatter) can be on a given turf. var/obj/effect/decal/cleanable/blood/drip/drop = locate() in T @@ -248,7 +312,7 @@ else temp_blood_DNA = drop.return_blood_DNA() //we transfer the dna from the drip to the splatter qdel(drop)//the drip is replaced by a bigger splatter - else + else if (amt < 2) drop = new(T, get_static_viruses()) drop.transfer_mob_blood_dna(src) return @@ -261,7 +325,11 @@ B = candidate break if(!B) - B = new /obj/effect/decal/cleanable/blood/splatter(T, get_static_viruses()) + if(amt > 4) + B = new /obj/effect/decal/cleanable/blood(T, get_static_viruses()) + else + B = new /obj/effect/decal/cleanable/blood/splatter(T, get_static_viruses()) + if(QDELETED(B)) //Give it up return B.bloodiness = min((B.bloodiness + BLOOD_AMOUNT_PER_DECAL), BLOOD_POOL_MAX) @@ -269,11 +337,11 @@ if(temp_blood_DNA) B.add_blood_DNA(temp_blood_DNA) -/mob/living/carbon/human/add_splatter_floor(turf/T, small_drip) +/mob/living/carbon/human/add_splatter_floor(turf/T, small_drip, amt) if(!(NOBLOOD in dna.species.species_traits)) ..() -/mob/living/carbon/alien/add_splatter_floor(turf/T, small_drip) +/mob/living/carbon/alien/add_splatter_floor(turf/T, small_drip, amt) if(!T) T = get_turf(src) var/obj/effect/decal/cleanable/xenoblood/B = locate() in T.contents @@ -281,7 +349,7 @@ B = new(T) B.add_blood_DNA(list("UNKNOWN DNA" = "X*")) -/mob/living/silicon/robot/add_splatter_floor(turf/T, small_drip) +/mob/living/silicon/robot/add_splatter_floor(turf/T, small_drip, amt) if(!T) T = get_turf(src) var/obj/effect/decal/cleanable/oil/B = locate() in T.contents diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 80daa8de3e3c..fa1267bdc232 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -41,9 +41,6 @@ /mob/living/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up. return -/mob/living/brain/blob_act(obj/structure/blob/B) - return - /mob/living/brain/get_eye_protection()//no eyes return 2 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/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 43cefa251e34..62174120a60f 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -352,13 +352,6 @@ if(is_type_in_typecache(active_item, GLOB.shove_disarming_types)) visible_message("[name] regains their grip on \the [active_item]!", "You regain your grip on \the [active_item]", null, COMBAT_MESSAGE_RANGE) -/mob/living/carbon/blob_act(obj/structure/blob/B) - if (stat == DEAD) - return - else - show_message("The blob attacks!") - adjustBruteLoss(10) - /mob/living/carbon/emp_act(severity) . = ..() if(. & EMP_PROTECT_CONTENTS) @@ -653,3 +646,18 @@ ADD_TRAIT(src, TRAIT_KNOCKEDOUT, OXYLOSS_TRAIT) else if(getOxyLoss() <= 50) REMOVE_TRAIT(src, TRAIT_KNOCKEDOUT, OXYLOSS_TRAIT) + +/mob/living/carbon/bullet_act(obj/projectile/P, def_zone, piercing_hit = FALSE) + var/armor = run_armor_check(def_zone, P.flag, P.armour_penetration, silent = TRUE) + var/on_hit_state = P.on_hit(src, armor, piercing_hit) + if(!P.nodamage && on_hit_state != BULLET_ACT_BLOCK && !QDELETED(src)) //QDELETED literally just for the instagib rifle. Yeah. + apply_damage(P.damage, P.damage_type, def_zone, armor, sharpness = TRUE) + if(P.damage-armor >= 15 && P.damage_type == BRUTE && (!armor || prob(40) || P.damage-armor >= 25)) + spray_blood(get_dir(P.starting,src), (P.damage-armor)/5) + bleed((P.damage-armor)/2) + + recoil_camera(src, clamp((P.damage-armor)/4,0.5,10), clamp((P.damage-armor)/4,0.5,10), P.damage/8, P.Angle) + apply_effects(P.stun, P.knockdown, P.unconscious, P.irradiate, P.slur, P.stutter, P.eyeblur, P.drowsy, armor, P.stamina, P.jitter, P.paralyze, P.immobilize) + if(P.dismemberment) + check_projectile_dismemberment(P, def_zone) + return on_hit_state ? BULLET_ACT_HIT : BULLET_ACT_BLOCK diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 8c1a36c2061b..1804a1497187 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -31,6 +31,9 @@ if(prob(50)) step(W, pick(GLOB.alldirs)) var/atom/Tsec = drop_location() + var/amount_of_streams_to_spawn = rand(2,4) + for(var/i in 1 to amount_of_streams_to_spawn) + spray_blood(pick(GLOB.alldirs), rand(1,6)) for(var/mob/M in src) M.forceMove(Tsec) visible_message("[M] bursts out of [src]!") 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 7bbe9fb1de72..295537cfd95b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -25,7 +25,7 @@ //if we have no guestbook, we just KNOW okay? var/known_name = user.mind?.guestbook ? user.mind.guestbook.get_known_name(user, src, face_name) : face_name if(known_name) - . += "You know them as [known_name]." + . += "You know [t_him] as [known_name]." else . += "You don't recognize [t_him]. You can Ctrl-Shift click [t_him] to memorize their face." else @@ -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/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 64dfdfde91ce..7a7bc349b26c 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -473,16 +473,6 @@ if(!max_limb_loss) break - -/mob/living/carbon/human/blob_act(obj/structure/blob/B) - if(stat == DEAD) - return - show_message("The blob attacks you!") - var/dam_zone = pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone)) - apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee")) - - ///Calculates the siemens coeff based on clothing and species, can also restart hearts. /mob/living/carbon/human/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) //If it doesnt have physiology its prob still initializing. diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 567523c11d79..df006ead1f39 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -77,3 +77,7 @@ /// How many "units of blood" we have on our hands var/blood_in_hands = 0 + ///blood particle effect + var/obj/effect/abstract/particle_holder/blood_particle + + COOLDOWN_DECLARE(bloodloss_message) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 9e2cfe4f1556..b7c5b9877120 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -192,23 +192,65 @@ /mob/living/carbon/human/proc/get_age() var/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((obscured & ITEM_SLOT_ICLOTHING) && skipface || isipc(src)) + if((obscured & ITEM_SLOT_ICLOTHING) && skipface || isipc(src) || isskeleton(src)) // sorry ladies no middle aged robots return FALSE - switch(age) - if(70 to INFINITY) - return "Geriatric" - if(60 to 70) - return "Elderly" - if(50 to 60) - return "Old" - if(40 to 50) - return "Middle-Aged" - if(24 to 40) - return FALSE //not necessary because this is basically the most common age range - if(18 to 24) - return "Young" - else - return "Puzzling" + if(islizard(src)) + switch(age) + if(175 to INFINITY) + return "Ancient" + if(130 to 175) + return "Elderly" + if(100 to 130) + return "Old" + if(65 to 100) + return "Middle-Aged" + if(40 to 65) + return FALSE + if(18 to 40) + return "Young" + else if(isvox(src)) + switch(age) + if(280 to INFINITY) + return "Ancient" + if(200 to 280) + return "Elderly" + if(160 to 200) + return "Old" + if(120 to 160) + return "Middle-Aged" + if(60 to 120) + return FALSE + if(18 to 60) + return "Young" + else if(iselzuose(src)) + switch(age) + if(300 to INFINITY) + return "Ancient" + if(260 to 300) + return "Elderly" + if(160 to 260) + return "Old" + if(100 to 160) + return "Middle-Aged" + if(40 to 100) + return FALSE // most common age range + if(18 to 40) + return "Young" + else + switch(age) + if(70 to INFINITY) + return "Ancient" + if(60 to 70) + return "Elderly" + if(50 to 60) + return "Old" + if(40 to 50) + return "Middle-Aged" + if(24 to 40) + return FALSE // most common age range + if(18 to 24) + return "Young" + return "Puzzling" /mob/living/carbon/human/proc/get_generic_name(prefixed = FALSE, lowercase = FALSE) var/final_string = "" @@ -228,7 +270,7 @@ final_string += get_gender() if(prefixed) - final_string = "\A [final_string]" + final_string = "\improper [final_string]" if(lowercase) final_string = lowertext(final_string) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 77e2045e357c..aab8b681bf50 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -26,25 +26,8 @@ return 0 return ..() -/mob/living/carbon/human/experience_pressure_difference(pressure_difference) - if(pressure_difference > 100) - playsound_local(null, 'sound/effects/space_wind_big.ogg', clamp(pressure_difference / 50, 10, 100), 1) - else - playsound_local(null, 'sound/effects/space_wind.ogg', clamp(pressure_difference, 10, 100), 1) - if(shoes && istype(shoes, /obj/item/clothing)) - var/obj/item/clothing/S = shoes - if((S.clothing_flags & NOSLIP)) - return 0 - return ..() - -/mob/living/carbon/human/mob_has_gravity() - . = ..() - if(!.) - if(mob_negates_gravity()) - . = 1 - /mob/living/carbon/human/mob_negates_gravity() - return ((shoes && shoes.negates_gravity()) || (dna.species.negates_gravity(src))) + return dna.species.negates_gravity(src) || ..() /mob/living/carbon/human/Move(NewLoc, direct) . = ..() diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 756af00f1839..cbaa988aa5a8 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -40,6 +40,45 @@ return s_store return null +/mob/living/carbon/human/get_slot_by_item(obj/item/looking_for) + if(looking_for == belt) + return ITEM_SLOT_BELT + + if(looking_for == wear_id) + return ITEM_SLOT_ID + + if(looking_for == ears) + return ITEM_SLOT_EARS + + if(looking_for == glasses) + return ITEM_SLOT_EYES + + if(looking_for == gloves) + return ITEM_SLOT_GLOVES + + if(looking_for == head) + return ITEM_SLOT_HEAD + + if(looking_for == shoes) + return ITEM_SLOT_FEET + + if(looking_for == wear_suit) + return ITEM_SLOT_OCLOTHING + + if(looking_for == w_uniform) + return ITEM_SLOT_ICLOTHING + + if(looking_for == r_store) + return ITEM_SLOT_RPOCKET + + if(looking_for == l_store) + return ITEM_SLOT_LPOCKET + + if(looking_for == s_store) + return ITEM_SLOT_SUITSTORE + + return ..() + /mob/living/carbon/human/proc/get_all_slots() . = get_head_slots() | get_body_slots() @@ -334,7 +373,8 @@ if(equip_to_slot_if_possible(thing, slot_type)) update_inv_hands() return - if(!SEND_SIGNAL(equipped_item, COMSIG_CONTAINS_STORAGE)) // not a storage item + var/datum/component/storage/storage = equipped_item.GetComponent(/datum/component/storage) + if(!storage) if(!thing) equipped_item.attack_hand(src) else @@ -344,10 +384,11 @@ if(!SEND_SIGNAL(equipped_item, COMSIG_TRY_STORAGE_INSERT, thing, src)) to_chat(src, "You can't fit [thing] into your [equipped_item.name]!") return - if(!equipped_item.contents.len) // nothing to take out + var/atom/real_location = storage.real_location() + if(!real_location.contents.len) // nothing to take out to_chat(src, "There's nothing in your [equipped_item.name] to take out!") return - var/obj/item/stored = equipped_item.contents[equipped_item.contents.len] + var/obj/item/stored = real_location.contents[real_location.contents.len] if(!stored || stored.on_found(src)) return stored.attack_hand(src) // take out thing from item in storage slot diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 730001819de4..18b6cb9ba40e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -61,6 +61,21 @@ return ONE_ATMOSPHERE return pressure +/mob/living/carbon/human/proc/check_for_seal() + var/obj/item/clothing/clothing_suit = wear_suit + var/obj/item/clothing/clothing_head = head + if(istype(clothing_suit) && istype(clothing_head)) + if (clothing_suit.clothing_flags & clothing_head.clothing_flags & STOPSPRESSUREDAMAGE) + return TRUE + return FALSE + +/mob/living/carbon/human/proc/check_for_goggles() + if(head?.flags_cover & SEALS_EYES) + return head + if(wear_mask?.flags_cover & SEALS_EYES) + return wear_mask + if(glasses?.flags_cover & SEALS_EYES) + return glasses /mob/living/carbon/human/handle_traits() if (getOrganLoss(ORGAN_SLOT_BRAIN) >= 60) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index e2a01d29540c..a1560963b00b 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1,5 +1,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) +#define MINIMUM_MOLS_TO_HARM 1 + /** * # species datum * @@ -144,6 +146,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/bodytemp_normal = HUMAN_BODYTEMP_NORMAL /// Minimum amount of kelvin moved toward normal body temperature per tick. var/bodytemp_autorecovery_min = HUMAN_BODYTEMP_AUTORECOVERY_MINIMUM + /// The maximum temperature the species is comfortable at. Going above this does not apply any effects, but warns players that the temperture is hot + var/max_temp_comfortable = (HUMAN_BODYTEMP_NORMAL + 7) + /// The minimum temperature the species is comfortable at. Going below this does not apply any effects, but warns players that the temperture is chilly + var/min_temp_comfortable = (HUMAN_BODYTEMP_NORMAL - 5) /// This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. var/bodytemp_autorecovery_divisor = HUMAN_BODYTEMP_AUTORECOVERY_DIVISOR ///Similar to the autorecovery_divsor, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to lose bodytemp faster. @@ -158,6 +164,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/bodytemp_cooling_rate_max = HUMAN_BODYTEMP_COOLING_MAX /// The maximum rate at which a species can cool down per tick var/bodytemp_heating_rate_max = HUMAN_BODYTEMP_HEATING_MAX + /// How much temp is our body stabilizing naturally? + var/bodytemp_natural_stabilization = 0 + /// How much temp is the environment is causing us to charge? + var/bodytemp_environment_change = 0 ///Does our species have colors for its' damage overlays? var/use_damage_color = TRUE @@ -1788,16 +1798,113 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/areatemp = H.get_temperature(environment) if(H.stat != DEAD) // If you are dead your body does not stabilize naturally - natural_bodytemperature_stabilization(environment, H) + bodytemp_natural_stabilization = natural_bodytemperature_stabilization(environment, H) if(!H.on_fire || areatemp > H.bodytemperature) // If we are not on fire or the area is hotter - H.adjust_bodytemperature((areatemp - H.bodytemperature), use_insulation=TRUE, use_steps=TRUE, hardsuit_fix=bodytemp_normal - H.bodytemperature) + bodytemp_environment_change = H.adjust_bodytemperature((areatemp - H.bodytemperature), use_insulation=TRUE, use_steps=TRUE, hardsuit_fix=bodytemp_normal - H.bodytemperature) + + if(H.check_for_seal()) + return + + var/plasma = environment.get_moles(GAS_PLASMA) + var/tritium = environment.get_moles(GAS_TRITIUM) + var/chlorine = environment.get_moles(GAS_CHLORINE) + var/hydrogen_chloride = environment.get_moles(GAS_HYDROGEN_CHLORIDE) + if(chlorine <= MINIMUM_MOLS_TO_HARM && hydrogen_chloride <= MINIMUM_MOLS_TO_HARM && tritium <= MINIMUM_MOLS_TO_HARM && plasma <= MINIMUM_MOLS_TO_HARM) + return + + var/eyedamage = FALSE + var/irritant = FALSE + var/burndamage = 0 + var/lowerthreshold = 0 + if(HAS_TRAIT(H, TRAIT_METALLIC)) //makes certain species take more damage and start taking damage at lower air amounts + lowerthreshold = 1 + + if(plasma > (MINIMUM_MOLS_TO_HARM * 10)) + eyedamage = TRUE + irritant = TRUE + if(tritium) + burndamage += max(sqrt(tritium) - 2 + lowerthreshold, 0) + if(tritium > MINIMUM_MOLS_TO_HARM) + eyedamage = TRUE + irritant = TRUE + if(chlorine) + burndamage += max(sqrt(chlorine) - 4 + lowerthreshold, 0) + irritant = TRUE + if(chlorine > (MINIMUM_MOLS_TO_HARM * 10)) + eyedamage = TRUE + if(hydrogen_chloride) + burndamage += max(sqrt(hydrogen_chloride) - 1 + lowerthreshold, 0) + eyedamage = TRUE + irritant = TRUE + + if(!eyedamage && !burndamage && !irritant) + return + H.apply_damage(burndamage, BURN, spread_damage = TRUE) + if(prob(50) && burndamage) + if(lowerthreshold) + to_chat(H, "You're corroding!") + else + to_chat(H, "You're melting!") + playsound(H, 'sound/items/welder.ogg', 30, TRUE) + if(!H.check_for_goggles() && eyedamage) + H.adjustOrganLoss(ORGAN_SLOT_EYES, 1) + if(prob(50)) + to_chat(H, "Your eyes burn!") + if(irritant && prob(50)) + if(lowerthreshold) + to_chat(H, "Your outer shell smolders!") + else + to_chat(H, "Your skin itches.") + /// Handle the body temperature status effects for the species /// Traits for resitance to heat or cold are handled here. /datum/species/proc/handle_body_temperature(mob/living/carbon/human/H) + var/body_temp = H.bodytemperature + var/total_change = bodytemp_natural_stabilization + bodytemp_environment_change + + //tempature is no longer comfy, throw alert + if(body_temp > max_temp_comfortable && !HAS_TRAIT(H, TRAIT_RESISTHEAT)) + SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") + if(body_temp > bodytemp_heat_damage_limit) + var/burn_damage = calculate_burn_damage(H) + if(burn_damage < 2) + H.throw_alert("tempfeel", /atom/movable/screen/alert/hot, 3) + else + H.throw_alert("tempfeel", /atom/movable/screen/alert/hot, 2) + else + if(body_temp < (bodytemp_heat_damage_limit - 10)) + // you are cooling down and exiting the danger zone + if(total_change < 0) + H.throw_alert("tempfeel", /atom/movable/screen/alert/warm) + else + H.throw_alert("tempfeel", /atom/movable/screen/alert/hot, 2) + else if(total_change > 1) + H.throw_alert("tempfeel", /atom/movable/screen/alert/warm) + else + H.clear_alert("tempfeel") + else if (body_temp < min_temp_comfortable && !HAS_TRAIT(H, TRAIT_RESISTCOLD)) + SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") + if(body_temp < 200) + H.throw_alert("tempfeel", /atom/movable/screen/alert/cold, 3) + else if(body_temp < bodytemp_cold_damage_limit) + H.throw_alert("tempfeel", /atom/movable/screen/alert/cold, 2) + else if(body_temp < (bodytemp_cold_damage_limit + 10)) + // you are warming up and exiting the danger zone + if(total_change > 0) + H.throw_alert("tempfeel", /atom/movable/screen/alert/chilly) + else + H.throw_alert("tempfeel", /atom/movable/screen/alert/cold, 2) + else if(total_change < -1) + H.throw_alert("tempfeel", /atom/movable/screen/alert/chilly) + else + H.clear_alert("tempfeel") + else + H.clear_alert("tempfeel") + // Body temperature is too hot, and we do not have resist traits - if(H.bodytemperature > bodytemp_heat_damage_limit && !HAS_TRAIT(H, TRAIT_RESISTHEAT)) + if(body_temp > bodytemp_heat_damage_limit && !HAS_TRAIT(H, TRAIT_RESISTHEAT)) // Clear cold mood and apply hot mood SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot) @@ -1805,23 +1912,26 @@ GLOBAL_LIST_EMPTY(roundstart_races) //Remove any slowdown from the cold. H.remove_movespeed_modifier(/datum/movespeed_modifier/cold) - var/burn_damage = 0 - var/firemodifier = H.fire_stacks / 50 - if (!H.on_fire) // We are not on fire, reduce the modifier - firemodifier = min(firemodifier, 0) - - // this can go below 5 at log 2.5 - burn_damage = max(log(2 - firemodifier, (H.bodytemperature - H.get_body_temp_normal(apply_change=FALSE))) - 5,0) - - // Display alerts based on the amount of fire damage being taken - if (burn_damage) - switch(burn_damage) - if(1 to 2) - H.throw_alert("temp", /atom/movable/screen/alert/hot, 1) - if(2 to 4) - H.throw_alert("temp", /atom/movable/screen/alert/hot, 2) - else - H.throw_alert("temp", /atom/movable/screen/alert/hot, 3) + var/burn_damage = calculate_burn_damage(H) + + // sweats depending on burn damage, not actually a mechanic but a alternative to pinpoint when you are taking damage + if(burn_damage) + if(H.mob_biotypes & MOB_ROBOTIC) //robors have a alternative cooling fan graphic + switch(burn_damage) + if(0 to 2) + H.throw_alert("temp", /atom/movable/screen/alert/fans, 1) + if(2 to 4) + H.throw_alert("temp", /atom/movable/screen/alert/fans, 2) + else + H.throw_alert("temp", /atom/movable/screen/alert/fans, 3) + else + switch(burn_damage) + if(0 to 2) + H.throw_alert("temp", /atom/movable/screen/alert/sweat, 1) + if(2 to 4) + H.throw_alert("temp", /atom/movable/screen/alert/sweat, 2) + else + H.throw_alert("temp", /atom/movable/screen/alert/sweat, 3) // Apply species and physiology modifiers to heat damage burn_damage = burn_damage * heatmod * H.physiology.heat_mod @@ -1834,7 +1944,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.apply_damage(burn_damage, BURN, spread_damage = TRUE) // Body temperature is too cold, and we do not have resist traits - else if(H.bodytemperature < bodytemp_cold_damage_limit && !HAS_TRAIT(H, TRAIT_RESISTCOLD)) + else if(body_temp < bodytemp_cold_damage_limit && !HAS_TRAIT(H, TRAIT_RESISTCOLD)) // clear any hot moods and apply cold mood SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold) @@ -1843,17 +1953,16 @@ GLOBAL_LIST_EMPTY(roundstart_races) // Display alerts based on the amount of cold damage being taken // Apply more damage based on how cold you are - var/bodytemp = H.bodytemperature - if(bodytemp < 120) - H.throw_alert("temp", /atom/movable/screen/alert/cold, 3) + if(body_temp < 120) + H.throw_alert("temp", /atom/movable/screen/alert/shiver, 3) H.apply_damage(COLD_DAMAGE_LEVEL_3 * coldmod * H.physiology.cold_mod, BURN) - else if(bodytemp < 200) - H.throw_alert("temp", /atom/movable/screen/alert/cold, 2) + else if(body_temp < 200) + H.throw_alert("temp", /atom/movable/screen/alert/shiver, 2) H.apply_damage(COLD_DAMAGE_LEVEL_2 * coldmod * H.physiology.cold_mod, BURN) else - H.throw_alert("temp", /atom/movable/screen/alert/cold, 1) + H.throw_alert("temp", /atom/movable/screen/alert/shiver, 1) H.apply_damage(COLD_DAMAGE_LEVEL_1 * coldmod * H.physiology.cold_mod, BURN) // We are not to hot or cold, remove status and moods @@ -1863,6 +1972,16 @@ GLOBAL_LIST_EMPTY(roundstart_races) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") +/datum/species/proc/calculate_burn_damage(mob/living/carbon/human/current_human) + var/burn_damage = 0 + var/firemodifier = current_human.fire_stacks / 50 + if (!current_human.on_fire) // We are not on fire, reduce the modifier + firemodifier = min(firemodifier, 0) + + // this can go below 5 at log 2.5 + burn_damage = max(log(2 - firemodifier, (current_human.bodytemperature - current_human.get_body_temp_normal(apply_change=FALSE))) - 5,0) + return burn_damage + /// Handle the air pressure of the environment /datum/species/proc/handle_environment_pressure(datum/gas_mixture/environment, mob/living/carbon/human/H) var/pressure = environment.return_pressure() @@ -1960,6 +2079,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) // Apply the natural stabilization changes H.adjust_bodytemperature(natural_change) + return natural_change ////////// // FIRE // @@ -2264,3 +2384,5 @@ GLOBAL_LIST_EMPTY(roundstart_races) /datum/species/proc/get_harm_descriptors() return + +#undef MINIMUM_MOLS_TO_HARM diff --git a/code/modules/mob/living/carbon/human/species_types/IPC.dm b/code/modules/mob/living/carbon/human/species_types/IPC.dm index 9410111c9e4f..20d3f81aa38d 100644 --- a/code/modules/mob/living/carbon/human/species_types/IPC.dm +++ b/code/modules/mob/living/carbon/human/species_types/IPC.dm @@ -5,7 +5,7 @@ species_age_min = 0 species_age_max = 300 species_traits = list(NOTRANSSTING,NOEYESPRITES,NO_DNA_COPY,TRAIT_EASYDISMEMBER,NOZOMBIE,MUTCOLORS,REVIVESBYHEALING,NOHUSK,NOMOUTH,NO_BONES) //all of these + whatever we inherit from the real species - inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_VIRUSIMMUNE,TRAIT_NOBREATH,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_LIMBATTACHMENT) + inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_VIRUSIMMUNE,TRAIT_NOBREATH,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_LIMBATTACHMENT, TRAIT_METALLIC) inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID mutantbrain = /obj/item/organ/brain/mmi_holder/posibrain mutanteyes = /obj/item/organ/eyes/robotic diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 27362b348cab..b91559edb0ae 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -30,6 +30,9 @@ bodytemp_heat_damage_limit = FIRE_MINIMUM_TEMPERATURE_TO_SPREAD // about 150C // Cold temperatures hurt faster as it is harder to move with out the heat energy bodytemp_cold_damage_limit = (T20C - 10) // about 10c + + max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 100 + hair_color = "fixedmutcolor" hair_alpha = 140 mutant_bodyparts = list("elzu_horns", "tail_elzu") diff --git a/code/modules/mob/living/carbon/human/species_types/kepori.dm b/code/modules/mob/living/carbon/human/species_types/kepori.dm index 7e76fff79c1e..39e3cbc3d07a 100644 --- a/code/modules/mob/living/carbon/human/species_types/kepori.dm +++ b/code/modules/mob/living/carbon/human/species_types/kepori.dm @@ -24,6 +24,8 @@ bodytemp_normal = HUMAN_BODYTEMP_NORMAL + 30 bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 30 bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT + 30 + max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 40 + min_temp_comfortable = HUMAN_BODYTEMP_NORMAL - 3 mutanttongue = /obj/item/organ/tongue/kepori species_language_holder = /datum/language_holder/kepori var/datum/action/innate/keptackle/keptackle diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index c34a70b3afde..9d539007df4e 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -48,6 +48,9 @@ // Lizards are coldblooded and can stand a greater temperature range than humans bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 20 // This puts lizards 10 above lavaland max heat for ash lizards. bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT - 10 + + max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 25 + min_temp_comfortable = HUMAN_BODYTEMP_NORMAL - 3 loreblurb = "The Sarathi are a cold-blooded reptilian species originating from the planet Kalixcis, where they evolved alongside the Elzuosa. Kalixcian culture places no importance on blood-bonds, and those from it tend to consider their family anyone they are sufficiently close to, and choose their own names." ass_image = 'icons/ass/asslizard.png' @@ -91,7 +94,7 @@ /// Lizards are cold blooded and do not stabilize body temperature naturally /datum/species/lizard/natural_bodytemperature_stabilization(datum/gas_mixture/environment, mob/living/carbon/human/H) - return + return 0 /datum/species/lizard/random_name(gender,unique,lastname) if(unique) diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index 91169299afba..f8495f783e36 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -1,5 +1,5 @@ /datum/species/moth - name = "\improper Mothperson" + name = "\improper Moth" id = SPECIES_MOTH default_color = "00FF00" species_traits = list(LIPS, NOEYESPRITES, TRAIT_ANTENNAE, HAIR, EMOTE_OVERLAY) diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index daa645a662a8..d5ce34ca412f 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -4,7 +4,10 @@ id = SPECIES_POD default_color = "59CE00" species_traits = list(MUTCOLORS,EYECOLOR) - inherent_traits = list(TRAIT_ALWAYS_CLEAN) + inherent_traits = list( + TRAIT_ALWAYS_CLEAN, + TRAIT_PLANT_SAFE, + ) inherent_factions = list("plants", "vines") fixed_mut_color = "59CE00" attack_verb = "slash" 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/species_types/vox.dm b/code/modules/mob/living/carbon/human/species_types/vox.dm index b9cc8306762e..1a73860ab29f 100644 --- a/code/modules/mob/living/carbon/human/species_types/vox.dm +++ b/code/modules/mob/living/carbon/human/species_types/vox.dm @@ -3,7 +3,6 @@ name = "\improper Vox" id = SPECIES_VOX default_color = "6060FF" - species_age_min = 17 species_age_max = 280 species_traits = list(EYECOLOR, NO_UNDERWEAR) mutant_bodyparts = list("vox_head_quills", "vox_neck_quills") @@ -12,7 +11,7 @@ disliked_food = GRAIN liked_food = MEAT changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT - loreblurb = "Vox test" + loreblurb = "Vox are a big bird-like species with quills, much larger and much more long-lasting than other species. Sadly, not much else is known." attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -27,6 +26,9 @@ bodytemp_cold_divisor = VOX_BODYTEMP_COLD_DIVISOR bodytemp_autorecovery_min = VOX_BODYTEMP_AUTORECOVERY_MIN + max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 20 + min_temp_comfortable = HUMAN_BODYTEMP_NORMAL - 20 + bodytype = BODYTYPE_VOX species_chest = /obj/item/bodypart/chest/vox diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 0f3ab70e4034..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,15 +739,16 @@ 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 neither a vox or kepori neck path, we just tell it to greyscale no matter what -// if(I.supports_variations & VOX_VARIATION) -// icon_file = VOX_NECK_PATH -// if(I.vox_override_icon) -// icon_file = I.vox_override_icon -// else - handled_by_bodytype = TRUE + if(dna.species.bodytype & BODYTYPE_VOX) // there is no kepori neck path, we just tell it to greyscale no matter what + if(I.supports_variations & VOX_VARIATION) + icon_file = VOX_NECK_PATH + if(I.vox_override_icon) + icon_file = I.vox_override_icon + else + handled_by_bodytype = TRUE else if(dna.species.bodytype & BODYTYPE_KEPORI) // if(I.supports_variations & KEPORI_VARIATION) @@ -798,13 +799,15 @@ 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 = DEFAULT_BACK_PATH + icon_file = I.mob_overlay_icon ? I.mob_overlay_icon : DEFAULT_BACK_PATH handled_by_bodytype = TRUE var/use_autogen = handled_by_bodytype ? dna.species : null diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index d5b97a942da2..9525ebd6ec9b 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -14,6 +14,30 @@ return legcuffed return null +/mob/living/carbon/get_slot_by_item(obj/item/looking_for) + if(looking_for == back) + return ITEM_SLOT_BACK + + if(back && (looking_for in back)) + return ITEM_SLOT_BACKPACK + + if(looking_for == wear_mask) + return ITEM_SLOT_MASK + + if(looking_for == wear_neck) + return ITEM_SLOT_NECK + + if(looking_for == head) + return ITEM_SLOT_HEAD + + if(looking_for == handcuffed) + return ITEM_SLOT_HANDCUFFED + + if(looking_for == legcuffed) + return ITEM_SLOT_LEGCUFFED + + return ..() + /mob/living/carbon/proc/equip_in_one_of_slots(obj/item/I, list/slots, qdel_on_fail = 1) for(var/slot in slots) if(equip_to_slot_if_possible(I, slots[slot], qdel_on_fail = 0, disable_warning = TRUE)) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index c5145600bbf8..04a870684ccf 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -658,6 +658,7 @@ All effects don't start immediately, but rather get worse over time; the rate is if(bodytemperature >= min_temp && bodytemperature <= max_temp) bodytemperature = clamp(bodytemperature + amount,min_temp,max_temp) + return amount ///////// diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index c80c9a821fd0..34bd7dd8632c 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -211,6 +211,9 @@ //eg: ammo counters, primed grenade flashing, etc. //"icon_file" is used automatically for inhands etc. to make sure it gets the right inhand file /obj/item/proc/worn_overlays(isinhands = FALSE, icon_file) + SHOULD_CALL_PARENT(TRUE) + RETURN_TYPE(/list) + . = list() diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 6615edb051f0..0687d90da75b 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -1,4 +1,4 @@ -/mob/living/gib(no_brain, no_organs, no_bodyparts) +/mob/living/gib(no_brain, no_organs, no_bodyparts, safe_gib = FALSE) var/prev_lying = lying_angle if(stat != DEAD) death(TRUE) @@ -12,7 +12,8 @@ spread_bodyparts(no_brain, no_organs) spawn_gibs(no_bodyparts) - qdel(src) + if(!safe_gib) + qdel(src) /mob/living/proc/gib_animation() return diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index a25025294497..c054b7d50bf4 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -122,7 +122,7 @@ return /mob/living/proc/handle_gravity() - var/gravity = mob_has_gravity() + var/gravity = has_gravity() update_gravity(gravity) if(gravity > STANDARD_GRAVITY) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 269c74a837bd..76800ce87b1f 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() @@ -97,6 +98,7 @@ if(m_intent == MOVE_INTENT_WALK) return TRUE + SEND_SIGNAL(src, COMSIG_LIVING_MOB_BUMP, M) //Even if we don't push/swap places, we "touched" them, so spread fire spreadFire(M) @@ -831,7 +833,7 @@ return pick("trails_1", "trails_2") /mob/living/experience_pressure_difference(pressure_difference, direction, pressure_resistance_prob_delta = 0) - if(buckled) + if(buckled || mob_negates_gravity()) return if(client && client.move_delay >= world.time + world.tick_lag*2) pressure_resistance_prob_delta -= 30 @@ -1131,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/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm index d6cb89bab492..5134b8b1c79a 100644 --- a/code/modules/mob/living/silicon/ai/ai_defense.dm +++ b/code/modules/mob/living/silicon/ai/ai_defense.dm @@ -20,13 +20,6 @@ /mob/living/silicon/ai/attack_slime(mob/living/simple_animal/slime/user) return //immune to slimes -/mob/living/silicon/ai/blob_act(obj/structure/blob/B) - if (stat != DEAD) - adjustBruteLoss(60) - updatehealth() - return 1 - return 0 - /mob/living/silicon/ai/emp_act(severity) . = ..() if(. & EMP_PROTECT_SELF) diff --git a/code/modules/mob/living/silicon/damage_procs.dm b/code/modules/mob/living/silicon/damage_procs.dm index 80c643e0ceef..9813ac88d43e 100644 --- a/code/modules/mob/living/silicon/damage_procs.dm +++ b/code/modules/mob/living/silicon/damage_procs.dm @@ -1,5 +1,5 @@ -/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, break_modifier = 1, sharpness = FALSE) +/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, break_modifier = 1, sharpness = FALSE) var/hit_percent = (100-blocked)/100 if((!damage || (!forced && hit_percent <= 0))) return 0 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/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index 4a3e284addd6..ecdf3355e5aa 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -1,7 +1,3 @@ - -/mob/living/silicon/pai/blob_act(obj/structure/blob/B) - return FALSE - /mob/living/silicon/pai/emp_act(severity) . = ..() if(. & EMP_PROTECT_SELF) 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/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 376b4ddcca4b..e2eec65479da 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -391,14 +391,6 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real laws.associate(src) update_icons() - -/mob/living/silicon/robot/blob_act(obj/structure/blob/B) - if(stat != DEAD) - adjustBruteLoss(30) - else - gib() - return TRUE - /mob/living/silicon/robot/ex_act(severity, target) switch(severity) if(1) 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/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/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index aa6a0c368537..f6644bfbe6a7 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -142,10 +142,6 @@ bloss = bloss / 1.5 adjustBruteLoss(bloss) -/mob/living/simple_animal/blob_act(obj/structure/blob/B) - adjustBruteLoss(20) - return - /mob/living/simple_animal/do_attack_animation(atom/A, visual_effect_icon, used_item, no_effect) if(!no_effect && !visual_effect_icon && melee_damage_upper) if(melee_damage_upper < 10) diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 5229967f0374..665e75da9cef 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -170,7 +170,7 @@ to_chat(user, "Please close the access panel before locking it.") else to_chat(user, "\The [src] doesn't seem to respect your authority.") - else if(istype(W, /obj/item/kitchen/knife) && user.a_intent != INTENT_HARM) + else if(istype(W, /obj/item/melee/knife) && user.a_intent != INTENT_HARM) to_chat(user, "You start attaching \the [W] to \the [src]...") if(do_after(user, 25, target = src)) deputize(W, user) @@ -235,6 +235,9 @@ if(!target && trash) //Then for trash. target = scan(/obj/item/trash) + if(!target && trash) //Then for Chainsmokers. + target = scan(/obj/item/cigbutt) + if(!target && trash) //Search for dead mices. target = scan(/obj/item/reagent_containers/food/snacks/deadmouse) @@ -317,6 +320,7 @@ target_types += list( /obj/item/trash, /obj/item/reagent_containers/food/snacks/deadmouse, + /obj/item/cigbutt, ) target_types = typecacheof(target_types) @@ -340,7 +344,7 @@ else if(istype(A, /obj/item) || istype(A, /obj/effect/decal/remains)) visible_message("[src] sprays hydrofluoric acid at [A]!") playsound(src, 'sound/effects/spray2.ogg', 50, TRUE, -6) - A.acid_act(75, 10) + A.acid_act(100, 10) target = null else if(istype(A, /mob/living/simple_animal/hostile/cockroach) || istype(A, /mob/living/simple_animal/mouse)) var/mob/living/simple_animal/M = target 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/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 1916a7c52adb..646a3eb8436b 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -270,7 +270,7 @@ maxHealth = 50 gender = FEMALE harm_intent_damage = 10 - butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/reagent_containers/food/snacks/cakeslice/birthday = 3, \ + butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/food/cakeslice/birthday = 3, \ /obj/item/reagent_containers/food/snacks/meat/slab = 2) response_harm_continuous = "takes a bite out of" response_harm_simple = "take a bite out of" 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/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/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/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index d43d744e2800..b6f5c58b424e 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -115,7 +115,7 @@ name = "pile of bear armor" desc = "A scattered pile of various shaped armor pieces fitted for a bear, some duct tape, and a nail filer. Crude instructions \ are written on the back of one of the plates. This seems like an awful idea." - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' icon_state = "bear_armor_upgrade" /obj/item/bear_armor/afterattack(atom/target, mob/user, proximity_flag) diff --git a/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm index 4d38e1c5f87f..d8b4af5344ea 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm @@ -2,26 +2,53 @@ name = "Frontiersman" desc = "A frontiersman! A terrorist that would probably kill everyone without mercy." icon_state = "frontiersmanmelee" + icon = 'icons/mob/simple_frontiersman.dmi' icon_living = "frontiersmanmelee" icon_dead = "frontiersmanmelee_dead" speak_chance = 0 melee_damage_lower = 15 melee_damage_upper = 15 loot = list(/obj/effect/mob_spawn/human/corpse/frontier, - /obj/item/kitchen/knife) + /obj/item/melee/knife/survival) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) faction = list(FACTION_ANTAG_FRONTIERSMEN) + footstep_type = FOOTSTEP_MOB_SHOE + +/mob/living/simple_animal/hostile/human/frontier/internals + icon_state = "frontiersmanmelee_mask" + icon_living = "frontiersmanmelee_mask" + loot = list(/obj/effect/mob_spawn/human/corpse/frontier, + /obj/item/clothing/mask/gas/sechailer, + /obj/item/tank/internals/emergency_oxygen/engi) + 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 + /mob/living/simple_animal/hostile/human/frontier/ranged icon_state = "frontiersmanranged" icon_living = "frontiersmanranged" loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, - /obj/item/gun/ballistic/revolver/syndicate) + /obj/item/gun/ballistic/revolver/shadow) ranged = 1 retreat_distance = 5 minimum_distance = 5 - projectilesound = 'sound/weapons/gun/revolver/shot.ogg' - casingtype = /obj/item/ammo_casing/a357 + projectilesound = 'sound/weapons/gun/revolver/cattleman.ogg' + casingtype = /obj/item/ammo_casing/a44roum + +/mob/living/simple_animal/hostile/human/frontier/ranged/internals + icon_state = "frontiersmanranged_mask" + icon_living = "frontiersmanranged_mask" + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, + /obj/item/gun/ballistic/revolver/shadow, + /obj/item/clothing/mask/gas/sechailer, + /obj/item/tank/internals/emergency_oxygen/engi) + 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 + +/mob/living/simple_animal/hostile/human/frontier/ranged/internals/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, + /obj/item/clothing/mask/gas/sechailer, + /obj/item/tank/internals/emergency_oxygen/engi) /mob/living/simple_animal/hostile/human/frontier/ranged/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged) @@ -34,6 +61,21 @@ casingtype = /obj/item/ammo_casing/a8_50r projectilesound = 'sound/weapons/gun/rifle/mosin.ogg' +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/internals + icon_state = "frontiersmanrangedrifle_mask" + icon_living = "frontiersmanrangedrifle_mask" + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, + /obj/item/gun/ballistic/rifle/illestren, + /obj/item/clothing/mask/gas/sechailer, + /obj/item/tank/internals/emergency_oxygen/engi) + 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 + +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/internals/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, + /obj/item/clothing/mask/gas/sechailer, + /obj/item/tank/internals/emergency_oxygen/engi) + /mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged) @@ -47,6 +89,21 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, /obj/item/gun/ballistic/shotgun/brimstone) +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals + icon_state = "frontiersmanrangedelite_mask" + icon_living = "frontiersmanrangedelite_mask" + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, + /obj/item/gun/ballistic/shotgun/brimstone, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + 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 + +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + /mob/living/simple_animal/hostile/human/frontier/ranged/trooper/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) @@ -60,6 +117,21 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, /obj/item/gun/ballistic/automatic/assault/skm) +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals + icon_state = "frontiersmanrangedak47_mask" + icon_living = "frontiersmanrangedak47_mask" + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, + /obj/item/gun/ballistic/automatic/assault/skm, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + 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 + +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + /mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/neutured loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) @@ -72,6 +144,21 @@ casingtype = /obj/item/ammo_casing/a8_50r projectilesound = 'sound/weapons/gun/rifle/mosin.ogg' +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals + icon_state = "frontiersmanrangedmosin_mask" + icon_living = "frontiersmanrangedmosin_mask" + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, + /obj/item/gun/ballistic/rifle/illestren, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + 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 + +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + /mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) @@ -87,6 +174,21 @@ projectiletype = /obj/projectile/beam/weak/penetrator loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy) +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals + icon_state = "frontiersmanrangedminigun_mask" + icon_living = "frontiersmanrangedminigun_mask" + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + 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 + + +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + /mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless) @@ -96,15 +198,26 @@ icon_living = "frontiersmanofficer" maxHealth = 65 health = 65 - rapid = 3 + rapid = 4 + projectilesound = 'sound/weapons/gun/pistol/mauler.ogg' casingtype = /obj/item/ammo_casing/c9mm loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer, - /obj/item/gun/ballistic/automatic/pistol/APS) + /obj/item/gun/ballistic/automatic/pistol/mauler) + +/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals + icon_state = "frontiersmanofficer_mask" + icon_living = "frontiersmanofficer_mask" + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer, + /obj/item/gun/ballistic/automatic/pistol/mauler, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) + 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 + +/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer, + /obj/item/clothing/mask/gas, + /obj/item/tank/internals/emergency_oxygen/engi) /mob/living/simple_animal/hostile/human/frontier/ranged/officer/neutured loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer) - -/mob/living/simple_animal/hostile/human/frontier/ranged/officer/Aggro() - ..() - summon_backup(15) - say(pick("Help!!", "They're right here!!", "Don't let me die!!")) 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 b251dda91e48..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,8 +48,7 @@ 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/claymore/weak{name = "holy sword"}) + /obj/item/melee/sword/claymore{name = "holy sword"}) /mob/living/simple_animal/hostile/human/skeleton/ice name = "ice skeleton" diff --git a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm index f7abea96b222..ed356764271f 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm @@ -39,7 +39,7 @@ icon_state = "survivor_hunter" icon_living = "survivor_hunter" projectiletype = null - casingtype = /obj/item/ammo_casing/aac_300blk/recycled + casingtype = /obj/item/ammo_casing/a762_40 projectilesound = 'sound/weapons/gun/rifle/shot.ogg' ranged = 1 rapid_fire_delay = 6 @@ -116,7 +116,7 @@ /obj/item/stack/marker_beacon/ten = 15, /obj/item/mining_scanner = 5, /obj/item/extinguisher/mini = 10, - /obj/item/kitchen/knife/combat = 5, + /obj/item/melee/knife/combat = 5, /obj/item/flashlight/seclite = 10, /obj/item/stack/sheet/sinew = 10, /obj/item/stack/sheet/bone = 5, @@ -132,7 +132,7 @@ /obj/item/stack/marker_beacon/ten = 10, /obj/item/mining_scanner = 20, /obj/item/extinguisher/mini = 10, - /obj/item/kitchen/knife/combat/survival = 10, + /obj/item/melee/knife/survival = 10, /obj/item/flashlight/seclite = 10, /obj/item/stack/sheet/sinew = 10, /obj/item/stack/sheet/bone = 10 @@ -144,11 +144,11 @@ /obj/item/stack/marker_beacon/ten = 5, /obj/item/mining_scanner = 5, /obj/item/extinguisher/mini = 10, - /obj/item/kitchen/knife/combat/survival = 12, + /obj/item/melee/knife/survival = 12, /obj/item/flashlight/seclite = 10, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 5, - /obj/item/kitchen/knife/combat = 3, + /obj/item/melee/knife/combat = 3, /obj/item/reagent_containers/food/snacks/rationpack = 30 ) ) @@ -244,7 +244,7 @@ if(prob(20)) l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath else if(prob(60)) - l_pocket = /obj/item/ammo_box/aac_300blk_stripper + l_pocket = /obj/item/ammo_box/a762_stripper if(prob(20)) new /obj/item/gun/ballistic/rifle/polymer(loc) else diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm index 2a60b3c52fc2..e72211f66012 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -19,13 +19,13 @@ Featuring: */ /mob/living/simple_animal/hostile/human/syndicate/mecha_pilot - name = "Syndicate Mecha Pilot" + name = "Syndicate Exosuit Pilot" desc = "Death to Nanotrasen. This variant comes in MECHA DEATH flavour." wanted_objects = list() search_objects = 0 mob_biotypes = MOB_ORGANIC|MOB_HUMANOID - var/spawn_mecha_type = /obj/mecha/combat/marauder/mauler/loaded + var/spawn_mecha_type = /obj/mecha/combat/marauder/touro/loaded var/obj/mecha/mecha //Ref to pilot's mecha instance var/required_mecha_charge = 7500 //If the pilot doesn't have a mecha, what charge does a potential Grand Theft Mecha need? (Defaults to half a battery) var/mecha_charge_evacuate = 50 //Amount of charge at which the pilot tries to abandon the mecha diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm index a762a9298279..d3a50564ca75 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm @@ -58,7 +58,7 @@ speed = 5 move_to_delay = 5 speak_emote = list("verbalizes") - mob_trophy = /obj/item/nullrod/armblade/tentacle + mob_trophy = /obj/item/melee/synthetic_arm_blade loot = list(/obj/effect/spawner/clawloot) health = 2250 maxHealth = 2250 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/living/simple_animal/hostile/megafauna/cult_templar.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm index 08ef1a7b21cb..c06c78068ce9 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm @@ -23,8 +23,8 @@ ranged_cooldown_time = 20 vision_range = 10 damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 0.5) - loot = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted) - mob_trophy = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted, /obj/item/upgradescroll) + loot = list(/obj/item/melee/sword/claymore, /obj/item/clothing/suit/space/hardsuit/cult/enchanted) + mob_trophy = list(/obj/item/melee/sword/claymore, /obj/item/clothing/suit/space/hardsuit/cult/enchanted, /obj/item/upgradescroll) wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL @@ -40,7 +40,7 @@ /datum/action/innate/megafauna_attack/rapid_fire) move_force = MOVE_FORCE_NORMAL var/turf/starting - var/obj/item/claymore/cursed/mob/weapon + var/obj/item/melee/sword/claymore/weapon var/charging = FALSE var/dash_cooldown = 6 SECONDS var/runic_blast_cooldown = 14 SECONDS @@ -50,23 +50,6 @@ var/dash_num = 3 var/newcolor = rgb(149, 10, 10) -/obj/item/claymore/cursed - name = "cursed longsword" - desc = "For those who overcame a great challenge. It glows with a dim red light." - icon_state = "cultblade" - item_state = "cultblade" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - w_class = WEIGHT_CLASS_BULKY - throwforce = 25 - block_chance = 65 - armour_penetration = 50 - sharpness = IS_SHARP - -/obj/item/claymore/cursed/mob - block_chance = 0 - force = 16 - /mob/living/simple_animal/hostile/megafauna/cult_templar/Initialize() . = ..() starting = get_turf(src) @@ -421,7 +404,7 @@ /obj/item/clothing/suit/space/hardsuit/cult/enchanted name = "\improper Cursed Nar'Sien hardened armor" desc = "A heavily-armored exosuit worn by warriors of the Nar'Sien cult. This one is cursed, screaming voices into the mind of the wearer." - allowed = list(/obj/item/gun, /obj/item/nullrod, /obj/item/tank/internals) + allowed = list(/obj/item/gun, /obj/item/tank/internals) armor = list("melee" = 75, "bullet" = 50, "laser" = 30, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 80, "fire" = 100, "acid" = 100) max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | LAVA_PROOF 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/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/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index b5d539086ac7..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 @@ -208,7 +208,7 @@ attack_sound = 'sound/weapons/pierce.ogg' throw_message = "is shrugged off by" del_on_death = TRUE - stat_attack = HARD_CRIT + stat_attack = SOFT_CRIT robust_searching = 1 var/can_infest_dead = FALSE @@ -222,7 +222,7 @@ /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/staff/Initialize() . = ..() - addtimer(CALLBACK(src, PROC_REF(death)), 50) + addtimer(CALLBACK(src, PROC_REF(death)), 5 SECONDS) AddComponent(/datum/component/swarming) /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life() @@ -230,6 +230,8 @@ if(stat == DEAD || !isturf(loc)) return for(var/mob/living/carbon/human/victim in range(src, 1)) //Only for corpse right next to/on same tile + if(istype(victim.getorganslot(ORGAN_SLOT_REGENERATIVE_CORE), /obj/item/organ/legion_skull)) // no double dipping + continue switch(victim.stat) if(UNCONSCIOUS, HARD_CRIT) infest(victim) @@ -239,21 +241,89 @@ infest(victim) return //This will qdelete the legion. - /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H) - visible_message("[name] burrows into the flesh of [H]!") - var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L - if(HAS_TRAIT(H, TRAIT_DWARF)) //dwarf legions aren't just fluff! - L = new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(H.loc) + visible_message(span_warning("[name] burrows into the flesh of [H]!")) + if(H.stat != DEAD) + var/obj/item/organ/legion_skull/throwyouabone = new() + throwyouabone.Insert(H) else - L = new(H.loc) - visible_message("[L] staggers to [L.p_their()] feet!") - H.death() - H.adjustBruteLoss(1000) - L.stored_mob = H - H.forceMove(L) + var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L + if(HAS_TRAIT(H, TRAIT_DWARF)) //dwarf legions aren't just fluff! + L = new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(H.loc) + else + L = new(H.loc) + visible_message(span_warning("[L] staggers to [L.p_their()] feet!")) + H.adjustBruteLoss(1000) + L.stored_mob = H + H.forceMove(L) qdel(src) +/obj/item/organ/legion_skull + name = "legion skull" + desc = "The skull of a legion, likely torn from a soon-to-be host." + icon_state = "legion_skull" + zone = BODY_ZONE_CHEST + slot = ORGAN_SLOT_REGENERATIVE_CORE + grind_results = list(/datum/reagent/medicine/soulus = 2, /datum/reagent/blood = 5) + var/datum/disease/transformation/legionvirus/malignance + var/malignance_countdown = 5 MINUTES + var/malignance_tracker + +/obj/item/organ/legion_skull/on_find(mob/living/finder) + ..() + to_chat(finder, span_warning("You found a skull-shaped growth in [owner]'s [zone]!")) + +/obj/item/organ/legion_skull/Insert(mob/living/carbon/M, special = 0) + ..() + malignance = new() + malignance.infect(M, FALSE) //we handle all the fancy virus stuff in the organ, so we need a reference for it + malignance_tracker = addtimer(CALLBACK(src, PROC_REF(update_stage)), malignance_countdown, TIMER_STOPPABLE|TIMER_DELETE_ME) + M.heal_overall_bleeding(12) //stop dying so fast + +/obj/item/organ/legion_skull/Remove(mob/living/carbon/M, special = 0) + malignance_countdown = initial(malignance_countdown) + deltimer(malignance_tracker) + malignance_tracker = null + malignance.cure() + ..() + +/obj/item/organ/legion_skull/on_life() + . = ..() + skull_check() + +/obj/item/organ/legion_skull/on_death() + . = ..() + skull_check() + +/// track our timers and reagents +/obj/item/organ/legion_skull/proc/skull_check() + if(!owner) + return + if(!malignance) + malignance = new() + malignance.infect(owner, FALSE) + if(owner.reagents.has_reagent(/datum/reagent/medicine/synaptizine, needs_metabolizing = TRUE) || owner.reagents.has_reagent(/datum/reagent/medicine/spaceacillin, needs_metabolizing = TRUE)) + if(isnull(timeleft(malignance_tracker))) //ruhehehehehe + malignance_countdown = min(malignance_countdown + 1 SECONDS, initial(malignance_countdown)) //slightly improve our resistance to dying so we don't turn the second a treatment runs out + return + malignance_countdown = timeleft(malignance_tracker) //pause our timer if we have the reagents + deltimer(malignance_tracker) + malignance_tracker = null //you would think deltimer would do this but it actually doesn't track a direct reference! + return + if(!malignance_tracker) + malignance_tracker = addtimer(CALLBACK(src, PROC_REF(update_stage)), malignance_countdown, TIMER_STOPPABLE|TIMER_DELETE_ME) //and resume if we run out + +/// Updates the stage of our tied disease +/obj/item/organ/legion_skull/proc/update_stage() + malignance.update_stage(min(malignance.stage + 1, malignance.max_stages)) + if(malignance.stage == 5) + malignance.stage_act() //force the transformation here, then delete everything + qdel(malignance) + qdel(src) + return + malignance_countdown = initial(malignance_countdown) + malignance_tracker = addtimer(CALLBACK(src, PROC_REF(update_stage)), malignance_countdown, TIMER_STOPPABLE|TIMER_DELETE_ME) + //Advanced Legion is slightly tougher to kill and can raise corpses (revive other legions) /mob/living/simple_animal/hostile/asteroid/hivelord/legion/advanced name = "Signifer" 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 09d85a664e86..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, @@ -46,8 +45,8 @@ belt = pickweight(list( /obj/item/gun/ballistic/automatic/pistol/candor = 2, /obj/item/gun/ballistic/automatic/pistol/commander = 1, - /obj/item/gun/ballistic/automatic/pistol/syndicate = 1, - /obj/item/gun/ballistic/revolver/syndicate = 1, + /obj/item/gun/ballistic/automatic/pistol/ringneck = 1, + /obj/item/gun/ballistic/revolver/viper = 1, /obj/item/gun/ballistic/revolver/firebrand = 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)) @@ -203,14 +201,14 @@ if(prob(50)) r_pocket = pickweight(list( /obj/item/stack/marker_beacon = 20, - /obj/item/spacecash/bundle/mediumrand = 7, + /obj/item/spacecash/bundle/smallrand = 7, /obj/item/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/damage = 1 ) ) if(prob(25)) l_pocket = pickweight(list( - /obj/item/spacecash/bundle/mediumrand = 5, + /obj/item/spacecash/bundle/smallrand = 5, /obj/item/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/cooldown = 1 ) @@ -230,7 +228,7 @@ /obj/item/stack/marker_beacon/ten = 2, /obj/item/mining_scanner = 2, /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, + /obj/item/melee/knife/survival = 3, /obj/item/flashlight/seclite = 3, /obj/item/stack/sheet/sinew = 3, /obj/item/stack/sheet/bone = 3 @@ -275,7 +273,7 @@ if(prob(75)) back = pick(/obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/storage/backpack/duffelbag/engineering, /obj/item/storage/backpack/messenger/engi) if(prob(10)) - back = /obj/item/fireaxe + back = /obj/item/melee/axe/fire for(var/i = 1 to 3) if(prob(75)) backpack_contents += pickweight(list( @@ -411,7 +409,7 @@ for(var/i = 1 to 3) if(prob(75)) backpack_contents += pickweight(list( - /obj/item/spacecash/bundle/mediumrand = 5, + /obj/item/spacecash/bundle/smallrand = 5, /obj/item/ammo_box/magazine/illestren_a850r = 5, /obj/item/ammo_box/magazine/zip_ammo_9mm = 5, /obj/item/modular_computer/tablet/preset/cargo = 3, @@ -424,7 +422,7 @@ if(prob(75)) accessory = /obj/item/clothing/accessory/armband/cargo if(prob(25)) - suit = /obj/item/clothing/suit/armor/vest/scrap_armor + suit = /obj/item/clothing/suit/armor/vest/scrap suit_store = /obj/item/gun/ballistic/rifle/illestren /datum/outfit/generic/cargo 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.dm b/code/modules/mob/mob.dm index 06c7a9af52d8..a05c2e65688e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -313,6 +313,14 @@ /mob/proc/get_item_by_slot(slot_id) return null +/// Gets what slot the item on the mob is held in. +/// Returns null if the item isn't in any slots on our mob. +/// Does not check if the passed item is null, which may result in unexpected outcoms. +/mob/proc/get_slot_by_item(obj/item/looking_for) + if(looking_for in held_items) + return ITEM_SLOT_HANDS + + return null ///Is the mob incapacitated /mob/proc/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE, check_immobilized = FALSE) @@ -454,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/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index de1cb857ed4e..adb03f1962f4 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -28,6 +28,45 @@ zone = BODY_ZONE_CHEST return zone +/// Returns a generic path of the object based on the slot +/proc/get_path_by_slot(slot_id) + switch(slot_id) + if(ITEM_SLOT_BACK) + return /obj/item/storage/backpack + if(ITEM_SLOT_MASK) + return /obj/item/clothing/mask + if(ITEM_SLOT_NECK) + return /obj/item/clothing/neck + if(ITEM_SLOT_HANDCUFFED) + return /obj/item/restraints/handcuffs + if(ITEM_SLOT_LEGCUFFED) + return /obj/item/restraints/legcuffs + if(ITEM_SLOT_BELT) + return /obj/item/storage/belt + if(ITEM_SLOT_ID) + return /obj/item/card/id + if(ITEM_SLOT_EARS) + return /obj/item/clothing/ears + if(ITEM_SLOT_EYES) + return /obj/item/clothing/glasses + if(ITEM_SLOT_GLOVES) + return /obj/item/clothing/gloves + if(ITEM_SLOT_HEAD) + return /obj/item/clothing/head + if(ITEM_SLOT_FEET) + return /obj/item/clothing/shoes + if(ITEM_SLOT_OCLOTHING) + return /obj/item/clothing/suit + if(ITEM_SLOT_ICLOTHING) + return /obj/item/clothing/under + if(ITEM_SLOT_LPOCKET) + return /obj/item + if(ITEM_SLOT_RPOCKET) + return /obj/item + if(ITEM_SLOT_SUITSTORE) + return /obj/item + return null + /** * Return the zone or randomly, another valid zone * @@ -169,13 +208,9 @@ var/static/regex/nostutter = regex(@@[aeiouAEIOU "'()[\]{}.!?,:;_`~-]@) for(var/i = 1, i <= leng, i += length(rawchar)) rawchar = newletter = phrase[i] - if(prob(80) && !nostutter.Find(rawchar)) - if(prob(10)) - newletter = "[newletter]-[newletter]-[newletter]-[newletter]" - else if(prob(20)) + if(prob(70) && !nostutter.Find(rawchar)) + if(prob(25)) newletter = "[newletter]-[newletter]-[newletter]" - else if (prob(5)) - newletter = "" else newletter = "[newletter]-[newletter]" . += newletter @@ -344,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 59b64f63d139..ef21915e1fca 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -507,13 +507,6 @@ . = new_slime qdel(src) -/mob/proc/become_overmind(starting_points = 60) - var/mob/camera/blob/B = new /mob/camera/blob(get_turf(src), starting_points) - B.key = key - . = B - qdel(src) - - /mob/living/carbon/human/proc/corgize() if (notransform) return @@ -624,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 @@ -638,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/mod/mod_actions.dm b/code/modules/mod/mod_actions.dm new file mode 100644 index 000000000000..1df1f7b8894b --- /dev/null +++ b/code/modules/mod/mod_actions.dm @@ -0,0 +1,193 @@ +/datum/action/item_action/mod + background_icon_state = "bg_tech_blue" + icon_icon = 'icons/mob/actions/actions_mod.dmi' + check_flags = AB_CHECK_CONSCIOUS + /// Whether this action is intended for the AI. Stuff breaks a lot if this is done differently. + var/ai_action = FALSE + +/datum/action/item_action/mod/New(Target) + ..() + if(!istype(Target, /obj/item/mod/control)) + qdel(src) + return + if(ai_action) + background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND + +/datum/action/item_action/mod/Grant(mob/user) + var/obj/item/mod/control/mod = target + if(ai_action && user != mod.ai) + return + else if(!ai_action && user == mod.ai) + return + return ..() + +/datum/action/item_action/mod/Remove(mob/user) + var/obj/item/mod/control/mod = target + if(ai_action && user != mod.ai) + return + else if(!ai_action && user == mod.ai) + return + return ..() + +/datum/action/item_action/mod/Trigger(trigger_flags) + if(!IsAvailable()) + return FALSE + var/obj/item/mod/control/mod = target + if(mod.malfunctioning && prob(75)) + mod.balloon_alert(usr, "button malfunctions!") + return FALSE + return TRUE + +/datum/action/item_action/mod/deploy + name = "Deploy MODsuit" + desc = "LMB: Deploy/Undeploy part. Alt Click: Deploy/Undeploy full suit." + button_icon_state = "deploy" + +/datum/action/item_action/mod/deploy/Trigger(trigger_flags) + . = ..() + if(!.) + return + var/obj/item/mod/control/mod = target + if(trigger_flags & TRIGGER_SECONDARY_ACTION) + mod.quick_deploy(usr) + else + mod.choose_deploy(usr) + +/datum/action/item_action/mod/deploy/ai + ai_action = TRUE + +/datum/action/item_action/mod/activate + name = "Activate MODsuit" + desc = "LMB: Activate/Deactivate suit with prompt. Alt Click: Activate/Deactivate suit skipping prompt." + button_icon_state = "activate" + /// First time clicking this will set it to TRUE, second time will activate it. + var/ready = FALSE + +/datum/action/item_action/mod/activate/Trigger(trigger_flags) + . = ..() + if(!.) + return + if(!(trigger_flags & TRIGGER_SECONDARY_ACTION) && !ready) + ready = TRUE + button_icon_state = "activate-ready" + if(!ai_action) + background_icon_state = "bg_tech" + UpdateButtonIcon() + addtimer(CALLBACK(src, PROC_REF(reset_ready)), 3 SECONDS) + return + var/obj/item/mod/control/mod = target + reset_ready() + mod.toggle_activate(usr) + +/// Resets the state requiring to be doubleclicked again. +/datum/action/item_action/mod/activate/proc/reset_ready() + ready = FALSE + button_icon_state = initial(button_icon_state) + if(!ai_action) + background_icon_state = initial(background_icon_state) + UpdateButtonIcon() + +/datum/action/item_action/mod/activate/ai + ai_action = TRUE + +/datum/action/item_action/mod/module + name = "Toggle Module" + desc = "Toggle a MODsuit module." + button_icon_state = "module" + +/datum/action/item_action/mod/module/Trigger(trigger_flags) + . = ..() + if(!.) + return + var/obj/item/mod/control/mod = target + mod.quick_module(usr) + +/datum/action/item_action/mod/module/ai + ai_action = TRUE + +/datum/action/item_action/mod/panel + name = "MODsuit Panel" + desc = "Open the MODsuit's panel." + button_icon_state = "panel" + +/datum/action/item_action/mod/panel/Trigger(trigger_flags) + . = ..() + if(!.) + return + var/obj/item/mod/control/mod = target + mod.ui_interact(usr) + +/datum/action/item_action/mod/panel/ai + ai_action = TRUE + +/datum/action/item_action/mod/pinned_module + desc = "Activate the module." + /// Overrides the icon applications. + var/override = FALSE + /// Module we are linked to. + var/obj/item/mod/module/module + /// A ref to the mob we are pinned to. + var/pinner_ref + +/datum/action/item_action/mod/pinned_module/New(Target, obj/item/mod/module/linked_module, mob/user) + if(isAI(user)) + ai_action = TRUE + ..() + module = linked_module + name = "Activate [capitalize(linked_module.name)]" + desc = "Quickly activate [linked_module]." + icon_icon = linked_module.icon + button_icon_state = linked_module.icon_state + RegisterSignal(linked_module, COMSIG_MODULE_ACTIVATED, PROC_REF(on_module_activate)) + RegisterSignal(linked_module, COMSIG_MODULE_DEACTIVATED, PROC_REF(on_module_deactivate)) + RegisterSignal(linked_module, COMSIG_MODULE_USED, PROC_REF(on_module_use)) + +/datum/action/item_action/mod/pinned_module/Destroy() + module.pinned_to -= pinner_ref + module = null + return ..() + +/datum/action/item_action/mod/pinned_module/Grant(mob/user) + var/user_ref = REF(user) + if(!pinner_ref) + pinner_ref = user_ref + module.pinned_to[pinner_ref] = src + else if(pinner_ref != user_ref) + return + return ..() + +/datum/action/item_action/mod/pinned_module/Trigger(trigger_flags) + . = ..() + if(!.) + return + module.on_select() + +/datum/action/item_action/mod/pinned_module/ApplyIcon(atom/movable/screen/movable/action_button/current_button, force) + . = ..(current_button, force = TRUE) + if(override) + return + var/obj/item/mod/control/mod = target + if(module == mod.selected_module) + current_button.add_overlay(image(icon = 'icons/hud/radial.dmi', icon_state = "module_selected", layer = FLOAT_LAYER-0.1)) + else if(module.active) + current_button.add_overlay(image(icon = 'icons/hud/radial.dmi', icon_state = "module_active", layer = FLOAT_LAYER-0.1)) + if(!COOLDOWN_FINISHED(module, cooldown_timer)) + var/image/cooldown_image = image(icon = 'icons/hud/radial.dmi', icon_state = "module_cooldown") + current_button.add_overlay(cooldown_image) + addtimer(CALLBACK(current_button, TYPE_PROC_REF(/image, cut_overlay), cooldown_image), COOLDOWN_TIMELEFT(module, cooldown_timer)) + + +/datum/action/item_action/mod/pinned_module/proc/on_module_activate(datum/source) + SIGNAL_HANDLER + + UpdateButtonIcon() + +/datum/action/item_action/mod/pinned_module/proc/on_module_deactivate(datum/source) + SIGNAL_HANDLER + + UpdateButtonIcon() + +/datum/action/item_action/mod/pinned_module/proc/on_module_use(datum/source) + SIGNAL_HANDLER + + UpdateButtonIcon() diff --git a/code/modules/mod/mod_activation.dm b/code/modules/mod/mod_activation.dm new file mode 100644 index 000000000000..cb61728f2cbb --- /dev/null +++ b/code/modules/mod/mod_activation.dm @@ -0,0 +1,244 @@ +#define MOD_ACTIVATION_STEP_FLAGS IGNORE_USER_LOC_CHANGE|IGNORE_TARGET_LOC_CHANGE|IGNORE_HELD_ITEM|IGNORE_INCAPACITATED + +/// Creates a radial menu from which the user chooses parts of the suit to deploy/retract. Repeats until all parts are extended or retracted. +/obj/item/mod/control/proc/choose_deploy(mob/user) + if(!length(mod_parts)) + return + var/list/display_names = list() + var/list/items = list() + for(var/obj/item/part as anything in mod_parts) + display_names[part.name] = REF(part) + var/image/part_image = image(icon = part.icon, icon_state = part.icon_state) + if(part.loc != src) + part_image.underlays += image(icon = 'icons/hud/radial.dmi', icon_state = "module_active") + items += list(part.name = part_image) + var/pick = show_radial_menu(user, src, items, custom_check = FALSE, require_near = TRUE, tooltips = TRUE) + if(!pick) + return + var/part_reference = display_names[pick] + var/obj/item/part = locate(part_reference) in mod_parts + if(!istype(part) || user.incapacitated()) + return + if((active && part != helmet) || activating) + balloon_alert(user, "deactivate the suit first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + var/parts_to_check = mod_parts - part + if(part.loc == src) + deploy(user, part) + for(var/obj/item/checking_part as anything in parts_to_check) + if(checking_part.loc != src) + continue + choose_deploy(user) + break + else + retract(user, part) + for(var/obj/item/checking_part as anything in parts_to_check) + if(checking_part.loc == src) + continue + choose_deploy(user) + break + +/// Quickly deploys all parts (or retracts if all are on the wearer) +/obj/item/mod/control/proc/quick_deploy(mob/user) + if(active || activating) + balloon_alert(user, "deactivate the suit first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + var/deploy = FALSE + for(var/obj/item/part as anything in mod_parts) + if(part.loc != src) + continue + deploy = TRUE + for(var/obj/item/part as anything in mod_parts) + if(deploy && part.loc == src) + deploy(null, part) + else if(!deploy && part.loc != src) + retract(null, part) + wearer.visible_message(span_notice("[wearer]'s [src] [deploy ? "deploys" : "retracts"] its' parts with a mechanical hiss."), + span_notice("[src] [deploy ? "deploys" : "retracts"] its' parts with a mechanical hiss."), + span_hear("You hear a mechanical hiss.")) + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + return TRUE + +/// Deploys a part of the suit onto the user. +/obj/item/mod/control/proc/deploy(mob/user, obj/item/part) + if(part.loc != src) + if(!user) + return FALSE + balloon_alert(user, "[part.name] already deployed!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + if(part in overslotting_parts) + var/obj/item/overslot = wearer.get_item_by_slot(part.slot_flags) + if(overslot) + overslotting_parts[part] = overslot + wearer.transferItemToLoc(overslot, part, force = TRUE) + RegisterSignal(part, COMSIG_ATOM_EXITED, PROC_REF(on_overslot_exit)) + if(wearer.equip_to_slot_if_possible(part, part.slot_flags, qdel_on_fail = FALSE, disable_warning = TRUE)) + ADD_TRAIT(part, TRAIT_NODROP, MOD_TRAIT) + if(!user) + return TRUE + wearer.visible_message(span_notice("[wearer]'s [part.name] deploy[part.p_s()] with a mechanical hiss."), + span_notice("[part] deploy[part.p_s()] with a mechanical hiss."), + span_hear("You hear a mechanical hiss.")) + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + return TRUE + else + if(!user) + return FALSE + balloon_alert(user, "bodypart clothed!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + +/// Retract a part of the suit from the user. +/obj/item/mod/control/proc/retract(mob/user, obj/item/part) + if(part.loc == src) + if(!user) + return FALSE + balloon_alert(user, "[part.name] already retracted!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + REMOVE_TRAIT(part, TRAIT_NODROP, MOD_TRAIT) + wearer.transferItemToLoc(part, src, force = TRUE) + if(overslotting_parts[part]) + UnregisterSignal(part, COMSIG_ATOM_EXITED) + var/obj/item/overslot = overslotting_parts[part] + if(!wearer.equip_to_slot_if_possible(overslot, overslot.slot_flags, qdel_on_fail = FALSE, disable_warning = TRUE)) + wearer.dropItemToGround(overslot, force = TRUE, silent = TRUE) + overslotting_parts[part] = null + if(!user) + return + wearer.visible_message(span_notice("[wearer]'s [part.name] retract[part.p_s()] back into [src] with a mechanical hiss."), + span_notice("[part] retract[part.p_s()] back into [src] with a mechanical hiss."), + span_hear("You hear a mechanical hiss.")) + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + +/// Starts the activation sequence, where parts of the suit activate one by one until the whole suit is on +/obj/item/mod/control/proc/toggle_activate(mob/user, force_deactivate = FALSE) + if(!wearer) + if(!force_deactivate) + balloon_alert(user, "put suit on back!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(!force_deactivate && (SEND_SIGNAL(src, COMSIG_MOD_ACTIVATE, user) & MOD_CANCEL_ACTIVATE)) + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + for(var/obj/item/part as anything in mod_parts) + if(!force_deactivate && part.loc == src) + balloon_alert(user, "deploy all parts first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(locked && !active && !allowed(user) && !force_deactivate) + balloon_alert(user, "access insufficient!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(!get_charge() && !force_deactivate) + balloon_alert(user, "suit not powered!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(open && !force_deactivate) + balloon_alert(user, "close the suit panel!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(activating) + if(!force_deactivate) + balloon_alert(user, "suit already [active ? "shutting down" : "starting up"]!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + for(var/obj/item/mod/module/module as anything in modules) + if(!module.active || module.allowed_inactive) + continue + module.on_deactivation(display_message = FALSE) + activating = TRUE + to_chat(wearer, span_notice("MODsuit [active ? "shutting down" : "starting up"].")) + if(do_after(wearer, activation_step_time, wearer, MOD_ACTIVATION_STEP_FLAGS, extra_checks = CALLBACK(src, PROC_REF(has_wearer)), hidden = TRUE)) + to_chat(wearer, span_notice("[boots] [active ? "relax their grip on your legs" : "seal around your feet"].")) + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + seal_part(boots, seal = !active) + if(do_after(wearer, activation_step_time, wearer, MOD_ACTIVATION_STEP_FLAGS, extra_checks = CALLBACK(src, PROC_REF(has_wearer)), hidden = TRUE)) + to_chat(wearer, span_notice("[gauntlets] [active ? "become loose around your fingers" : "tighten around your fingers and wrists"].")) + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + seal_part(gauntlets, seal = !active) + if(do_after(wearer, activation_step_time, wearer, MOD_ACTIVATION_STEP_FLAGS, extra_checks = CALLBACK(src, PROC_REF(has_wearer)), hidden = TRUE)) + to_chat(wearer, span_notice("[chestplate] [active ? "releases your chest" : "cinches tightly against your chest"].")) + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + seal_part(chestplate, seal = !active) + if(do_after(wearer, activation_step_time, wearer, MOD_ACTIVATION_STEP_FLAGS, extra_checks = CALLBACK(src, PROC_REF(has_wearer)), hidden = TRUE)) + to_chat(wearer, span_notice("[helmet] hisses [active ? "open" : "closed"].")) + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + seal_part(helmet, seal = !active) + if(do_after(wearer, activation_step_time, wearer, MOD_ACTIVATION_STEP_FLAGS, extra_checks = CALLBACK(src, PROC_REF(has_wearer)), hidden = TRUE)) + to_chat(wearer, span_notice("Systems [active ? "shut down. Parts unsealed. Goodbye" : "started up. Parts sealed. Welcome"], [wearer].")) + if(ai) + to_chat(ai, span_notice("SYSTEMS [active ? "DEACTIVATED. GOODBYE" : "ACTIVATED. WELCOME"]: \"[ai]\"")) + finish_activation(on = !active) + if(active) + playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, frequency = 6000) + if(!malfunctioning) + wearer.playsound_local(get_turf(src), 'sound/mecha/nominal.ogg', 50) + else + playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, frequency = 6000) + activating = FALSE + return TRUE + +///Seals or unseals the given part +/obj/item/mod/control/proc/seal_part(obj/item/clothing/part, seal) + if(seal) + part.clothing_flags |= part.visor_flags + part.flags_inv |= part.visor_flags_inv + part.flags_cover |= part.visor_flags_cover + part.heat_protection = initial(part.heat_protection) + part.cold_protection = initial(part.cold_protection) + part.alternate_worn_layer = null + else + part.flags_cover &= ~part.visor_flags_cover + part.flags_inv &= ~part.visor_flags_inv + part.clothing_flags &= ~part.visor_flags + part.heat_protection = NONE + part.cold_protection = NONE + part.alternate_worn_layer = mod_parts[part] + if(part == boots) + boots.icon_state = "[skin]-boots[seal ? "-sealed" : ""]" + wearer.update_inv_shoes() + if(part == gauntlets) + gauntlets.icon_state = "[skin]-gauntlets[seal ? "-sealed" : ""]" + wearer.update_inv_gloves() + if(part == chestplate) + chestplate.icon_state = "[skin]-chestplate[seal ? "-sealed" : ""]" + wearer.update_inv_wear_suit() + wearer.update_inv_w_uniform() + if(part == helmet) + helmet.icon_state = "[skin]-helmet[seal ? "-sealed" : ""]" + wearer.update_inv_head() + wearer.update_inv_wear_mask() + wearer.update_inv_glasses() + wearer.update_hair() + +/// Finishes the suit's activation, starts processing +/obj/item/mod/control/proc/finish_activation(on) + active = on + if(active) + for(var/obj/item/mod/module/module as anything in modules) + module.on_suit_activation() + START_PROCESSING(SSobj, src) + else + for(var/obj/item/mod/module/module as anything in modules) + module.on_suit_deactivation() + STOP_PROCESSING(SSobj, src) + update_speed() + update_icon_state() + wearer.update_inv_back(slot_flags) + +/// Quickly deploys all the suit parts and if successful, seals them and turns on the suit. Intended mostly for outfits. +/obj/item/mod/control/proc/quick_activation() + var/seal = TRUE + for(var/obj/item/part as anything in mod_parts) + if(!deploy(null, part)) + seal = FALSE + if(!seal) + return + for(var/obj/item/part as anything in mod_parts) + seal_part(part, seal = TRUE) + finish_activation(on = TRUE) + +/obj/item/mod/control/proc/has_wearer() + return wearer diff --git a/code/modules/mod/mod_ai.dm b/code/modules/mod/mod_ai.dm new file mode 100644 index 000000000000..a05717970348 --- /dev/null +++ b/code/modules/mod/mod_ai.dm @@ -0,0 +1,125 @@ +/** + * Simple proc to insert the pAI into the MODsuit. + * + * user - The person trying to put the pAI into the MODsuit. + * card - The pAI card we're slotting in the MODsuit. + */ + +/obj/item/mod/control/proc/insert_pai(mob/user, obj/item/paicard/card) + if(ai) + balloon_alert(user, "ai already installed!") + return + if(!card.pai || !card.pai.mind) + balloon_alert(user, "pai unresponsive!") + return + balloon_alert(user, "transferring to suit...") + if(!do_after(user, 5 SECONDS, target = src)) + balloon_alert(user, "interrupted!") + return FALSE + if(!user.transferItemToLoc(card, src)) + return + + card.pai.canholo = FALSE + ai = card.pai + balloon_alert(user, "pAI transferred to suit") + balloon_alert(ai, "transferred to a suit") + ai.remote_control = src + for(var/datum/action/action as anything in actions) + action.Grant(ai) + return TRUE + +/** + * Simple proc to extract the pAI from the MODsuit. It's the proc to call if you want to take it out, + * remove_pai() is there so atom_destruction() doesn't have any risk of sleeping. + * + * user - The person trying to take out the pAI from the MODsuit. + * forced - Whether or not we skip the checks and just eject the pAI. Defaults to FALSE. + * feedback - Whether to give feedback via balloon alerts or not. Defaults to TRUE. + */ +/obj/item/mod/control/proc/extract_pai(mob/user, forced = FALSE, feedback = TRUE) + if(!ai) + if(user && feedback) + balloon_alert(user, "no pAI to remove!") + return + if(!ispAI(ai)) + if(user && feedback) + balloon_alert(user, "onboard AI cannot fit in this card!") + return + if(!forced) + if(!open) + if(user && feedback) + balloon_alert(user, "open the suit panel!") + return FALSE + if(!do_after(user, 5 SECONDS, target = src)) + if(user && feedback) + balloon_alert(user, "interrupted!") + return FALSE + + remove_pai(feedback) + + if(feedback && user) + balloon_alert(user, "pAI removed from the suit") + +/** + * Simple proc that handles the safe removal of the pAI from a MOD control unit. + * + * Arguments: + * * feedback - Whether or not we want to give balloon alert feedback to the ai. Defaults to FALSE. + */ +/obj/item/mod/control/proc/remove_pai(feedback = FALSE) + if(!ispAI(ai)) + return + var/mob/living/silicon/pai/pai = ai + var/turf/drop_off = get_turf(src) + if(drop_off) // In case there's no drop_off, the pAI will simply get deleted. + pai.card.forceMove(drop_off) + + for(var/datum/action/action as anything in actions) + if(action.owner == pai) + action.Remove(pai) + + if(feedback) + balloon_alert(pai, "removed from a suit") + pai.remote_control = null + pai.canholo = TRUE + pai = null + +#define MOVE_DELAY 2 +#define WEARER_DELAY 1 +#define LONE_DELAY 5 +#define CELL_PER_STEP (DEFAULT_CHARGE_DRAIN * 2.5) +#define AI_FALL_TIME (1 SECONDS) + +/*obj/item/mod/control/relaymove(mob/user, direction) + var/cell = get_cell() + if((!active && wearer) || !cell || cell.charge < CELL_PER_STEP || user != ai || !COOLDOWN_FINISHED(src, cooldown_mod_move) || (wearer?.pulledby?.grab_state > GRAB_PASSIVE)) + return FALSE + var/timemodifier = MOVE_DELAY * (ISDIAGONALDIR(direction) ? SQRT_2 : 1) * (wearer ? WEARER_DELAY : LONE_DELAY) + if(wearer && !wearer.Process_Spacemove(direction)) + return FALSE + else if(!wearer && (!has_gravity() || !isturf(loc))) + return FALSE + COOLDOWN_START(src, cooldown_mod_move, movedelay * timemodifier + slowdown) + cell.charge = max(0, cell.charge - CELL_PER_STEP) + playsound(src, 'sound/mecha/mechmove01.ogg', 25, TRUE) + if(ismovable(wearer?.loc)) + return wearer.loc.relaymove(wearer, direction) + else if(wearer) + + var/atom/movable/mover = wearer || src + return step(mover, direction) + +#undef MOVE_DELAY +#undef WEARER_DELAY +#undef LONE_DELAY +#undef CELL_PER_STEP +#undef AI_FALL_TIME + + return + REMOVE_TRAIT(wearer, TRAIT_MOBILITY_NOREST, MOD_TRAIT) + +/obj/item/mod/control/ui_state(mob/user) + if(user == ai) + return GLOB.contained_state + return ..() +*/ diff --git a/code/modules/mod/mod_clothes.dm b/code/modules/mod/mod_clothes.dm new file mode 100644 index 000000000000..7a9e710c9382 --- /dev/null +++ b/code/modules/mod/mod_clothes.dm @@ -0,0 +1,56 @@ +/obj/item/clothing/head/mod + name = "MOD helmet" + desc = "A helmet for a MODsuit." + icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' + icon_state = "standard-helmet" + base_icon_state = "helmet" + mob_overlay_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + body_parts_covered = HEAD + heat_protection = HEAD + cold_protection = HEAD + obj_flags = IMMUTABLE_SLOW + visor_flags = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|ALLOWINTERNALS + +/obj/item/clothing/suit/mod + name = "MOD chestplate" + desc = "A chestplate for a MODsuit." + icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' + icon_state = "standard-chestplate" + base_icon_state = "chestplate" + mob_overlay_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' + blood_overlay_type = "armor" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + body_parts_covered = CHEST|GROIN + heat_protection = CHEST|GROIN + cold_protection = CHEST|GROIN + obj_flags = IMMUTABLE_SLOW + +/obj/item/clothing/gloves/mod + name = "MOD gauntlets" + desc = "A pair of gauntlets for a MODsuit." + icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' + icon_state = "standard-gauntlets" + base_icon_state = "gauntlets" + mob_overlay_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + body_parts_covered = HANDS|ARMS + heat_protection = HANDS|ARMS + cold_protection = HANDS|ARMS + obj_flags = IMMUTABLE_SLOW + +/obj/item/clothing/shoes/mod + name = "MOD boots" + desc = "A pair of boots for a MODsuit." + icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' + icon_state = "standard-boots" + base_icon_state = "boots" + mob_overlay_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + body_parts_covered = FEET|LEGS + heat_protection = FEET|LEGS + cold_protection = FEET|LEGS + obj_flags = IMMUTABLE_SLOW + supports_variations = DIGITIGRADE_VARIATION + can_be_tied = FALSE + visor_flags_inv = HIDESHOES diff --git a/code/modules/mod/mod_construction.dm b/code/modules/mod/mod_construction.dm new file mode 100644 index 000000000000..0f37a4fd1f11 --- /dev/null +++ b/code/modules/mod/mod_construction.dm @@ -0,0 +1,275 @@ +/obj/item/mod/construction + desc = "A part used in MOD construction." + icon = 'icons/obj/clothing/modsuit/mod_construction.dmi' + item_state = "rack_parts" + +/obj/item/mod/construction/helmet + name = "MOD helmet" + icon_state = "helmet" + +/obj/item/mod/construction/helmet/examine(mob/user) + . = ..() + . += span_notice("You could insert these into a MOD shell...") + +/obj/item/mod/construction/chestplate + name = "MOD chestplate" + icon_state = "chestplate" + +/obj/item/mod/construction/chestplate/examine(mob/user) + . = ..() + . += span_notice("You could insert these into a MOD shell...") + +/obj/item/mod/construction/gauntlets + name = "MOD gauntlets" + icon_state = "gauntlets" + +/obj/item/mod/construction/gauntlets/examine(mob/user) + . = ..() + . += span_notice("You could insert these into a MOD shell...") + +/obj/item/mod/construction/boots + name = "MOD boots" + icon_state = "boots" + +/obj/item/mod/construction/boots/examine(mob/user) + . = ..() + . += span_notice("You could insert these into a MOD shell...") + +/obj/item/mod/construction/broken_core + name = "broken MOD core" + icon_state = "mod-core" + desc = "An internal power source for a Modular Outerwear Device. You don't seem to be able to source any power from this one, though." + +/obj/item/mod/construction/broken_core/examine(mob/user) + . = ..() + . += span_notice("You could repair it with a screwdriver...") + +/obj/item/mod/construction/broken_core/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(!tool.use_tool(src, user, 5 SECONDS, volume = 30)) + return + new /obj/item/mod/core/standard(drop_location()) + qdel(src) + +/obj/item/mod/construction/plating + name = "MOD external plating" + desc = "External plating used to finish a MOD control unit." + icon_state = "standard-plating" + var/datum/mod_theme/theme = /datum/mod_theme + +/obj/item/mod/construction/plating/Initialize(mapload) + . = ..() + var/datum/mod_theme/used_theme = GLOB.mod_themes[theme] + name = "MOD [used_theme.name] external plating" + desc = "[desc] [used_theme.desc]" + icon_state = "[used_theme.default_skin]-plating" + +/obj/item/mod/construction/plating/engineering + theme = /datum/mod_theme/engineering + +/obj/item/mod/construction/plating/atmospheric + theme = /datum/mod_theme/atmospheric + +/obj/item/mod/construction/plating/medical + theme = /datum/mod_theme/medical + +/obj/item/mod/construction/plating/security + theme = /datum/mod_theme/security + +#define START_STEP "start" +#define CORE_STEP "core" +#define SCREWED_CORE_STEP "screwed_core" +#define HELMET_STEP "helmet" +#define CHESTPLATE_STEP "chestplate" +#define GAUNTLETS_STEP "gauntlets" +#define BOOTS_STEP "boots" +#define WRENCHED_ASSEMBLY_STEP "wrenched_assembly" +#define SCREWED_ASSEMBLY_STEP "screwed_assembly" + +/obj/item/mod/construction/shell + name = "MOD shell" + icon_state = "mod-construction_start" + desc = "A MOD shell." + var/obj/item/core + var/obj/item/helmet + var/obj/item/chestplate + var/obj/item/gauntlets + var/obj/item/boots + var/step = START_STEP + +/obj/item/mod/construction/shell/examine(mob/user) + . = ..() + var/display_text + switch(step) + if(START_STEP) + display_text = "It looks like it's missing a MOD core..." + if(CORE_STEP) + display_text = "The core seems loose..." + if(SCREWED_CORE_STEP) + display_text = "It looks like it's missing a helmet..." + if(HELMET_STEP) + display_text = "It looks like it's missing a chestplate..." + if(CHESTPLATE_STEP) + display_text = "It looks like it's missing gauntlets..." + if(GAUNTLETS_STEP) + display_text = "It looks like it's missing boots..." + if(BOOTS_STEP) + display_text = "The assembly seems unsecured..." + if(WRENCHED_ASSEMBLY_STEP) + display_text = "The assembly seems loose..." + if(SCREWED_ASSEMBLY_STEP) + display_text = "All it's missing is external plating..." + . += span_notice(display_text) + +/obj/item/mod/construction/shell/attackby(obj/item/part, mob/user, params) + . = ..() + switch(step) + if(START_STEP) + if(!istype(part, /obj/item/mod/core)) + return + if(!user.transferItemToLoc(part, src)) + balloon_alert(user, "core stuck to your hand!") + return + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + balloon_alert(user, "core inserted") + core = part + step = CORE_STEP + if(CORE_STEP) + if(part.tool_behaviour == TOOL_SCREWDRIVER) //Construct + if(part.use_tool(src, user, 0, volume=30)) + balloon_alert(user, "core screwed") + step = SCREWED_CORE_STEP + else if(part.tool_behaviour == TOOL_CROWBAR) //Deconstruct + if(part.use_tool(src, user, 0, volume=30)) + core.forceMove(drop_location()) + balloon_alert(user, "core taken out") + step = START_STEP + if(SCREWED_CORE_STEP) + if(istype(part, /obj/item/mod/construction/helmet)) //Construct + if(!user.transferItemToLoc(part, src)) + balloon_alert(user, "helmet stuck to your hand!") + return + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + balloon_alert(user, "helmet added") + helmet = part + step = HELMET_STEP + else if(part.tool_behaviour == TOOL_SCREWDRIVER) //Deconstruct + if(part.use_tool(src, user, 0, volume=30)) + balloon_alert(user, "core unscrewed") + step = CORE_STEP + if(HELMET_STEP) + if(istype(part, /obj/item/mod/construction/chestplate)) //Construct + if(!user.transferItemToLoc(part, src)) + balloon_alert(user, "chestplate stuck to your hand!") + return + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + balloon_alert(user, "chestplate added") + chestplate = part + step = CHESTPLATE_STEP + else if(part.tool_behaviour == TOOL_CROWBAR) //Deconstruct + if(part.use_tool(src, user, 0, volume=30)) + helmet.forceMove(drop_location()) + balloon_alert(user, "helmet removed") + helmet = null + step = SCREWED_CORE_STEP + if(CHESTPLATE_STEP) + if(istype(part, /obj/item/mod/construction/gauntlets)) //Construct + if(!user.transferItemToLoc(part, src)) + balloon_alert(user, "gauntlets stuck to your hand!") + return + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + balloon_alert(user, "gauntlets added") + gauntlets = part + step = GAUNTLETS_STEP + else if(part.tool_behaviour == TOOL_CROWBAR) //Deconstruct + if(part.use_tool(src, user, 0, volume=30)) + chestplate.forceMove(drop_location()) + balloon_alert(user, "chestplate removed") + chestplate = null + step = HELMET_STEP + if(GAUNTLETS_STEP) + if(istype(part, /obj/item/mod/construction/boots)) //Construct + if(!user.transferItemToLoc(part, src)) + balloon_alert(user, "boots added") + return + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + balloon_alert(user, "you fit [part] onto [src].") + boots = part + step = BOOTS_STEP + else if(part.tool_behaviour == TOOL_CROWBAR) //Deconstruct + if(part.use_tool(src, user, 0, volume=30)) + gauntlets.forceMove(drop_location()) + balloon_alert(user, "gauntlets removed") + gauntlets = null + step = CHESTPLATE_STEP + if(BOOTS_STEP) + if(part.tool_behaviour == TOOL_WRENCH) //Construct + if(part.use_tool(src, user, 0, volume=30)) + balloon_alert(user, "assembly secured") + step = WRENCHED_ASSEMBLY_STEP + else if(part.tool_behaviour == TOOL_CROWBAR) //Deconstruct + if(part.use_tool(src, user, 0, volume=30)) + boots.forceMove(drop_location()) + balloon_alert(user, "boots removed") + boots = null + step = GAUNTLETS_STEP + if(WRENCHED_ASSEMBLY_STEP) + if(part.tool_behaviour == TOOL_SCREWDRIVER) //Construct + if(part.use_tool(src, user, 0, volume=30)) + balloon_alert(user, "assembly screwed") + step = SCREWED_ASSEMBLY_STEP + else if(part.tool_behaviour == TOOL_WRENCH) //Deconstruct + if(part.use_tool(src, user, 0, volume=30)) + balloon_alert(user, "assembly unsecured") + step = BOOTS_STEP + if(SCREWED_ASSEMBLY_STEP) + if(istype(part, /obj/item/mod/construction/plating)) //Construct + var/obj/item/mod/construction/plating/external_plating = part + if(!user.transferItemToLoc(part, src)) + return + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + balloon_alert(user, "suit finished") + var/obj/item/mod = new /obj/item/mod/control(drop_location(), external_plating.theme, null, core) + core = null + qdel(src) + user.put_in_hands(mod) + else if(part.tool_behaviour == TOOL_SCREWDRIVER) //Construct + if(part.use_tool(src, user, 0, volume=30)) + balloon_alert(user, "assembly unscrewed") + step = SCREWED_ASSEMBLY_STEP + update_icon_state() + +/obj/item/mod/construction/shell/update_icon_state() + . = ..() + icon_state = "mod-construction_[step]" + +/obj/item/mod/construction/shell/Destroy() + QDEL_NULL(core) + QDEL_NULL(helmet) + QDEL_NULL(chestplate) + QDEL_NULL(gauntlets) + QDEL_NULL(boots) + return ..() + +/obj/item/mod/construction/shell/handle_atom_del(atom/deleted_atom) + if(deleted_atom == core) + core = null + if(deleted_atom == helmet) + helmet = null + if(deleted_atom == chestplate) + chestplate = null + if(deleted_atom == gauntlets) + gauntlets = null + if(deleted_atom == boots) + boots = null + return ..() + +#undef START_STEP +#undef CORE_STEP +#undef SCREWED_CORE_STEP +#undef HELMET_STEP +#undef CHESTPLATE_STEP +#undef GAUNTLETS_STEP +#undef BOOTS_STEP +#undef WRENCHED_ASSEMBLY_STEP +#undef SCREWED_ASSEMBLY_STEP diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm new file mode 100644 index 000000000000..0199662862f8 --- /dev/null +++ b/code/modules/mod/mod_control.dm @@ -0,0 +1,713 @@ +/// MODsuits, trade-off between armor and utility +/obj/item/mod + name = "Base MOD" + desc = "You should not see this, yell at a coder!" + icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' + +/obj/item/mod/control + name = "MOD control unit" + desc = "The control unit of a Modular Outerwear Device, a powered, back-mounted suit that protects against various environments." + icon_state = "control" + base_icon_state = "control" + item_state = "mod_control" + mob_overlay_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + strip_delay = 10 SECONDS + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "fire" = 0, "acid" = 0) + actions_types = list( + /datum/action/item_action/mod/deploy, + /datum/action/item_action/mod/activate, + /datum/action/item_action/mod/panel, + /datum/action/item_action/mod/module, + /datum/action/item_action/mod/deploy/ai, + /datum/action/item_action/mod/activate/ai, + /datum/action/item_action/mod/panel/ai, + /datum/action/item_action/mod/module/ai, + ) + resistance_flags = NONE + max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT + min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT + siemens_coefficient = 0.5 + //alternate_worn_layer = HAND_LAYER+0.1 //we want it to go above generally everything, but not hands + /// The MOD's theme, decides on some stuff like armor and statistics. + var/datum/mod_theme/theme = /datum/mod_theme + /// Looks of the MOD. + var/skin = "standard" + /// Theme of the MOD TGUI + var/ui_theme = "ntos" + /// If the suit is deployed and turned on. + var/active = FALSE + /// If the suit wire/module hatch is open. + var/open = FALSE + /// If the suit is ID locked. + var/locked = FALSE + /// If the suit is malfunctioning. + var/malfunctioning = FALSE + /// If the suit is currently activating/deactivating. + var/activating = FALSE + /// How long the MOD is electrified for. + var/seconds_electrified = MACHINE_NOT_ELECTRIFIED + /// If the suit interface is broken. + var/interface_break = FALSE + /// How much module complexity can this MOD carry. + var/complexity_max = DEFAULT_MAX_COMPLEXITY + /// How much module complexity this MOD is carrying. + var/complexity = 0 + /// Power usage of the MOD. + var/charge_drain = DEFAULT_CHARGE_DRAIN + /// Slowdown of the MOD when not active. + var/slowdown_inactive = 1.25 + /// Slowdown of the MOD when active. + var/slowdown_active = 0.75 + /// How long this MOD takes each part to seal. + var/activation_step_time = MOD_ACTIVATION_STEP_TIME + /// Extended description of the theme. + var/extended_desc + /// MOD helmet. + var/obj/item/clothing/head/mod/helmet + /// MOD chestplate. + var/obj/item/clothing/suit/mod/chestplate + /// MOD gauntlets. + var/obj/item/clothing/gloves/mod/gauntlets + /// MOD boots. + var/obj/item/clothing/shoes/mod/boots + /// MOD core. + var/obj/item/mod/core/core + /// Associated list of parts (helmet, chestplate, gauntlets, boots) to their unsealed worn layer. + var/list/mod_parts = list() + /// Associated list of parts that can overslot to their overslot (overslot means the part can cover another layer of clothing). + var/list/overslotting_parts = list() + /// Modules the MOD should spawn with. + var/list/initial_modules = list() + /// Modules the MOD currently possesses. + var/list/modules = list() + /// Currently used module. + var/obj/item/mod/module/selected_module + /// AI mob inhabiting the MOD. + var/mob/living/silicon/ai/ai + /// Delay between moves as AI. + var/movedelay = 0 + /// Cooldown for AI moves. + COOLDOWN_DECLARE(cooldown_mod_move) + /// Person wearing the MODsuit. + var/mob/living/carbon/human/wearer + +/obj/item/mod/control/Initialize(mapload, datum/mod_theme/new_theme, new_skin, obj/item/mod/core/new_core) + . = ..() + if(new_theme) + theme = new_theme + theme = GLOB.mod_themes[theme] + slot_flags = theme.slot_flags + extended_desc = theme.extended_desc + slowdown_inactive = theme.slowdown_inactive + slowdown_active = theme.slowdown_active + complexity_max = theme.complexity_max + ui_theme = theme.ui_theme + charge_drain = theme.charge_drain + initial_modules += theme.inbuilt_modules + wires = new /datum/wires/mod(src) + if(length(req_access)) + locked = TRUE + new_core?.install(src) + helmet = new /obj/item/clothing/head/mod(src) + mod_parts += helmet + chestplate = new /obj/item/clothing/suit/mod(src) + chestplate.allowed = typecacheof(theme.allowed_suit_storage) + mod_parts += chestplate + gauntlets = new /obj/item/clothing/gloves/mod(src) + mod_parts += gauntlets + boots = new /obj/item/clothing/shoes/mod(src) + mod_parts += boots + var/list/all_parts = mod_parts + src + for(var/obj/item/part as anything in all_parts) + part.name = "[theme.name] [part.name]" + part.desc = "[part.desc] [theme.desc]" + part.armor = getArmor(arglist(theme.armor)) + part.resistance_flags = theme.resistance_flags + part.flags_1 |= theme.atom_flags //flags like initialization or admin spawning are here, so we cant set, have to add + part.heat_protection = NONE + part.cold_protection = NONE + part.max_heat_protection_temperature = theme.max_heat_protection_temperature + part.min_cold_protection_temperature = theme.min_cold_protection_temperature + part.siemens_coefficient = theme.siemens_coefficient + for(var/obj/item/part as anything in mod_parts) + RegisterSignal(part, COMSIG_OBJ_DESTRUCTION, PROC_REF(on_part_destruction)) + RegisterSignal(part, COMSIG_PARENT_QDELETING, PROC_REF(on_part_deletion)) + set_mod_skin(new_skin || theme.default_skin) + update_speed() + for(var/obj/item/mod/module/module as anything in initial_modules) + module = new module(src) + install(module) + RegisterSignal(src, COMSIG_ATOM_EXITED, PROC_REF(on_exit)) + movedelay = CONFIG_GET(number/movedelay/run_delay) + +/obj/item/mod/control/Destroy() + if(active) + STOP_PROCESSING(SSobj, src) + for(var/obj/item/mod/module/module as anything in modules) + uninstall(module, deleting = TRUE) + for(var/obj/item/part as anything in mod_parts) + overslotting_parts -= part + var/atom/deleting_atom + if(!QDELETED(helmet)) + deleting_atom = helmet + helmet = null + mod_parts -= deleting_atom + qdel(deleting_atom) + if(!QDELETED(chestplate)) + deleting_atom = chestplate + chestplate = null + mod_parts -= deleting_atom + qdel(deleting_atom) + if(!QDELETED(gauntlets)) + deleting_atom = gauntlets + gauntlets = null + mod_parts -= deleting_atom + qdel(deleting_atom) + if(!QDELETED(boots)) + deleting_atom = boots + boots = null + mod_parts -= deleting_atom + qdel(deleting_atom) + if(core) + QDEL_NULL(core) + QDEL_NULL(wires) + return ..() + +/obj/item/mod/control/obj_destruction(damage_flag) + for(var/obj/item/mod/module/module as anything in modules) + uninstall(module) + for(var/obj/item/part as anything in mod_parts) + if(!overslotting_parts[part]) + continue + var/obj/item/overslot = overslotting_parts[part] + overslot.forceMove(drop_location()) + overslotting_parts[part] = null + /*if(ai) + ai.controlled_equipment = null + ai.remote_control = null + for(var/datum/action/action as anything in actions) + if(action.owner == ai) + action.Remove(ai) + new /obj/item/mod/ai_minicard(drop_location(), ai)*/ + return ..() + +/obj/item/mod/control/examine(mob/user) + . = ..() + if(active) + . += span_notice("Charge: [core ? "[get_charge_percent()]%" : "No core"].") + . += span_notice("Selected module: [selected_module || "None"].") + if(!open && !active) + . += span_notice("You could put it on your back to turn it on.") + . += span_notice("You could open the cover with a screwdriver.") + else if(open) + . += span_notice("You could close the cover with a screwdriver.") + . += span_notice("You could use modules on it to install them.") + . += span_notice("You could remove modules with a crowbar.") + . += span_notice("You could update the access lock with an ID.") + . += span_notice("You could access the wire panel with a wire tool.") + if(core) + . += span_notice("You could remove [core] with a wrench.") + else + . += span_notice("You could use a MOD core on it to install one.") + if(ai) + . += span_notice("You could remove [ai] with an intellicard.") + else + . += span_notice("You could install an AI with an intellicard.") + +/obj/item/mod/control/examine_more(mob/user) + . = ..() + . += "[extended_desc]" + +/obj/item/mod/control/process(delta_time) + if(seconds_electrified > MACHINE_NOT_ELECTRIFIED) + seconds_electrified-- + if(!get_charge() && active && !activating) + power_off() + return PROCESS_KILL + var/malfunctioning_charge_drain = 0 + if(malfunctioning) + malfunctioning_charge_drain = rand(1,20) + subtract_charge((charge_drain + malfunctioning_charge_drain)*delta_time) + update_charge_alert() + for(var/obj/item/mod/module/module as anything in modules) + if(malfunctioning && module.active && DT_PROB(5, delta_time)) + module.on_deactivation(display_message = TRUE) + module.on_process(delta_time) + +/obj/item/mod/control/equipped(mob/user, slot) + ..() + if(slot == slot_flags) + set_wearer(user) + else if(wearer) + unset_wearer() + +/obj/item/mod/control/dropped(mob/user) + . = ..() + if(!wearer) + return + clean_up() + +/obj/item/mod/control/item_action_slot_check(slot) + if(slot & slot_flags) + return TRUE + +/obj/item/mod/control/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) + . = ..() + if(!wearer || old_loc != wearer || loc == wearer) + return + clean_up() + +/obj/item/mod/control/allow_attack_hand_drop(mob/user) + if(user != wearer) + return ..() + for(var/obj/item/part as anything in mod_parts) + if(part.loc != src) + balloon_alert(user, "retract parts first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, FALSE, SILENCED_SOUND_EXTRARANGE) + return FALSE + +/obj/item/mod/control/MouseDrop(atom/over_object) + if(usr != wearer || !istype(over_object, /atom/movable/screen/inventory/hand)) + return ..() + for(var/obj/item/part as anything in mod_parts) + if(part.loc != src) + balloon_alert(wearer, "retract parts first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, FALSE, SILENCED_SOUND_EXTRARANGE) + return + if(!wearer.incapacitated()) + var/atom/movable/screen/inventory/hand/ui_hand = over_object + if(wearer.putItemFromInventoryInHandIfPossible(src, ui_hand.held_index)) + add_fingerprint(usr) + return ..() + +/obj/item/mod/control/wrench_act(mob/living/user, obj/item/wrench) + if(..()) + return TRUE + if(seconds_electrified && get_charge() && shock(user)) + return TRUE + if(open) + if(!core) + balloon_alert(user, "no core!") + return TRUE + balloon_alert(user, "removing core...") + wrench.play_tool_sound(src, 100) + if(!wrench.use_tool(src, user, 3 SECONDS) || !open) + balloon_alert(user, "interrupted!") + return TRUE + wrench.play_tool_sound(src, 100) + balloon_alert(user, "core removed") + core.forceMove(drop_location()) + update_charge_alert() + return TRUE + return ..() + +/obj/item/mod/control/screwdriver_act(mob/living/user, obj/item/screwdriver) + if(..()) + return TRUE + if(active || activating)// || ai_controller) + balloon_alert(user, "deactivate suit first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + balloon_alert(user, "[open ? "closing" : "opening"] cover...") + screwdriver.play_tool_sound(src, 100) + if(screwdriver.use_tool(src, user, 1 SECONDS)) + if(active || activating) + balloon_alert(user, "deactivate suit first!") + screwdriver.play_tool_sound(src, 100) + balloon_alert(user, "cover [open ? "closed" : "opened"]") + open = !open + else + balloon_alert(user, "interrupted!") + return TRUE + +/obj/item/mod/control/crowbar_act(mob/living/user, obj/item/crowbar) + . = ..() + if(!open) + balloon_alert(user, "open the cover first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(!allowed(user)) + balloon_alert(user, "insufficient access!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + if(SEND_SIGNAL(src, COMSIG_MOD_MODULE_REMOVAL, user) & MOD_CANCEL_REMOVAL) + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(length(modules)) + var/list/removable_modules = list() + for(var/obj/item/mod/module/module as anything in modules) + if(!module.removable) + continue + removable_modules += module + var/obj/item/mod/module/module_to_remove = tgui_input_list(user, "Which module to remove?", "Module Removal", removable_modules) + if(!module_to_remove?.mod) + return FALSE + uninstall(module_to_remove) + module_to_remove.forceMove(drop_location()) + crowbar.play_tool_sound(src, 100) + return TRUE + balloon_alert(user, "no modules!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + +/obj/item/mod/control/attackby(obj/item/attacking_item, mob/living/user, params) + if(istype(attacking_item, /obj/item/mod/module)) + if(!open) + balloon_alert(user, "open the cover first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + install(attacking_item, user) + return TRUE + else if(istype(attacking_item, /obj/item/mod/core)) + if(!open) + balloon_alert(user, "open the cover first!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + if(core) + balloon_alert(user, "core already installed!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return FALSE + var/obj/item/mod/core/attacking_core = attacking_item + attacking_core.install(src) + balloon_alert(user, "core installed") + playsound(src, 'sound/machines/click.ogg', 50, TRUE, SILENCED_SOUND_EXTRARANGE) + update_charge_alert() + return TRUE + else if(is_wire_tool(attacking_item) && open) + wires.interact(user) + return TRUE + else if(open && attacking_item.GetID()) + update_access(user, attacking_item.GetID()) + return TRUE + else if(open && istype(attacking_item, /obj/item/stock_parts/cell) && istype(core, /obj/item/mod/core/standard)) + var/obj/item/mod/core/standard/attacked_core = core + attacked_core.on_attackby(src, attacking_item, wearer) + return TRUE + return ..() + +/obj/item/mod/control/get_cell() + if(!open) + return + var/obj/item/stock_parts/cell/cell = get_charge_source() + if(!istype(cell)) + return + return cell + +/obj/item/mod/control/GetAccess() + /*if(ai_controller) + return req_access.Copy() + else */ + return ..() + +/obj/item/mod/control/emag_act(mob/user) + locked = !locked + balloon_alert(user, "suit access [locked ? "locked" : "unlocked"]") + +/obj/item/mod/control/emp_act(severity) + . = ..() + if(!active || !wearer) + return + to_chat(wearer, span_notice("[severity > 1 ? "Light" : "Strong"] electromagnetic pulse detected!")) + if(. & EMP_PROTECT_CONTENTS) + return + selected_module?.on_deactivation(display_message = TRUE) + wearer.apply_damage(10 / severity, BURN, spread_damage=TRUE) + to_chat(wearer, span_danger("You feel [src] heat up from the EMP, burning you slightly.")) + if(wearer.stat < UNCONSCIOUS && prob(10)) + wearer.emote("scream") + +/*obj/item/mod/control/on_outfit_equip(mob/living/carbon/human/outfit_wearer, visuals_only, item_slot) + if(visuals_only) + set_wearer(outfit_wearer) //we need to set wearer manually since it doesnt call equipped + quick_activation()*/ + +/obj/item/mod/control/doStrip(mob/stripper, mob/owner) + if(active && !toggle_activate(stripper, force_deactivate = TRUE)) + return + for(var/obj/item/part as anything in mod_parts) + if(part.loc == src) + continue + retract(null, part) + return ..() + +/obj/item/mod/control/worn_overlays(isinhands = FALSE, icon_file) + . = ..() + for(var/obj/item/mod/module/module as anything in modules) + var/list/module_icons = module.generate_worn_overlay(src.layer) + if(!length(module_icons)) + continue + . += module_icons + +/obj/item/mod/control/update_icon_state() + item_state = "[skin]-control[active ? "-sealed" : ""]" + return ..() + +/obj/item/mod/control/proc/set_wearer(mob/user) + wearer = user + SEND_SIGNAL(src, COMSIG_MOD_WEARER_SET, wearer) + RegisterSignal(wearer, COMSIG_ATOM_EXITED, PROC_REF(on_exit)) + RegisterSignal(wearer, COMSIG_SPECIES_GAIN, PROC_REF(on_species_gain)) + update_charge_alert() + for(var/obj/item/mod/module/module as anything in modules) + module.on_equip() + +/obj/item/mod/control/proc/unset_wearer() + for(var/obj/item/mod/module/module as anything in modules) + module.on_unequip() + UnregisterSignal(wearer, list(COMSIG_ATOM_EXITED, COMSIG_SPECIES_GAIN)) + wearer.clear_alert("mod_charge") + SEND_SIGNAL(src, COMSIG_MOD_WEARER_UNSET, wearer) + wearer = null + +/obj/item/mod/control/proc/clean_up() + if(active || activating) + for(var/obj/item/mod/module/module as anything in modules) + if(!module.active) + continue + module.on_deactivation(display_message = FALSE) + for(var/obj/item/part as anything in mod_parts) + seal_part(part, seal = FALSE) + for(var/obj/item/part as anything in mod_parts) + retract(null, part) + if(active) + finish_activation(on = FALSE) + var/mob/old_wearer = wearer + unset_wearer() + old_wearer.temporarilyRemoveItemFromInventory(src) + +/obj/item/mod/control/proc/on_species_gain(datum/source, datum/species/new_species, datum/species/old_species) + SIGNAL_HANDLER + + var/list/all_parts = mod_parts + src + for(var/obj/item/part in all_parts) + if(!(part.slot_flags in new_species.no_equip) || is_type_in_list(new_species, part.species_exception)) + continue + forceMove(drop_location()) + return + +/obj/item/mod/control/proc/quick_module(mob/user) + if(!length(modules)) + return + var/list/display_names = list() + var/list/items = list() + for(var/obj/item/mod/module/module as anything in modules) + if(module.module_type == MODULE_PASSIVE) + continue + display_names[module.name] = REF(module) + var/image/module_image = image(icon = module.icon, icon_state = module.icon_state) + if(module == selected_module) + module_image.underlays += image(icon = 'icons/hud/radial.dmi', icon_state = "module_selected") + else if(module.active) + module_image.underlays += image(icon = 'icons/hud/radial.dmi', icon_state = "module_active") + if(!COOLDOWN_FINISHED(module, cooldown_timer)) + module_image.add_overlay(image(icon = 'icons/hud/radial.dmi', icon_state = "module_cooldown")) + items += list(module.name = module_image) + if(!length(items)) + return + var/radial_anchor = src + if(istype(user.loc, /obj/effect/dummy/phased_mob)) + radial_anchor = get_turf(user.loc) //they're phased out via some module, anchor the radial on the turf so it may still display + var/pick = show_radial_menu(user, radial_anchor, items, custom_check = FALSE, require_near = TRUE, tooltips = TRUE) + if(!pick) + return + var/module_reference = display_names[pick] + var/obj/item/mod/module/picked_module = locate(module_reference) in modules + if(!istype(picked_module)) + return + picked_module.on_select() + +/obj/item/mod/control/proc/shock(mob/living/user) + if(!istype(user) || get_charge() < 1) + return FALSE + do_sparks(5, TRUE, src) + var/check_range = TRUE + return electrocute_mob(user, get_charge_source(), src, 0.7, check_range) + +/obj/item/mod/control/proc/install(obj/item/mod/module/new_module, mob/user) + for(var/obj/item/mod/module/old_module as anything in modules) + if(is_type_in_list(new_module, old_module.incompatible_modules) || is_type_in_list(old_module, new_module.incompatible_modules)) + if(user) + balloon_alert(user, "[new_module] incompatible with [old_module]!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + if(is_type_in_list(new_module, theme.module_blacklist)) + if(user) + balloon_alert(user, "[src] doesn't accept [new_module]!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + var/complexity_with_module = complexity + complexity_with_module += new_module.complexity + if(complexity_with_module > complexity_max) + if(user) + balloon_alert(user, "[new_module] would make [src] too complex!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + new_module.forceMove(src) + modules += new_module + complexity += new_module.complexity + new_module.mod = src + new_module.on_install() + if(wearer) + new_module.on_equip() + + if(user) + balloon_alert(user, "[new_module] added") + playsound(src, 'sound/machines/click.ogg', 50, TRUE, SILENCED_SOUND_EXTRARANGE) + +/obj/item/mod/control/proc/uninstall(obj/item/mod/module/old_module, deleting = FALSE) + modules -= old_module + complexity -= old_module.complexity + if(active) + old_module.on_suit_deactivation(deleting = deleting) + if(old_module.active) + old_module.on_deactivation(display_message = !deleting, deleting = deleting) + old_module.on_uninstall(deleting = deleting) + QDEL_LIST_ASSOC_VAL(old_module.pinned_to) + old_module.mod = null + +/// Intended for callbacks, don't use normally, just get wearer by itself. +/obj/item/mod/control/proc/get_wearer() + return wearer + +/obj/item/mod/control/proc/update_access(mob/user, obj/item/card/id/card) + if(!allowed(user)) + balloon_alert(user, "insufficient access!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + req_access = card.access.Copy() + balloon_alert(user, "access updated") + +/obj/item/mod/control/proc/get_charge_source() + return core?.charge_source() + +/obj/item/mod/control/proc/get_charge() + return core?.charge_amount() || 0 + +/obj/item/mod/control/proc/get_max_charge() + return core?.max_charge_amount() || 1 //avoid dividing by 0 + +/obj/item/mod/control/proc/get_charge_percent() + return ROUND_UP((get_charge() / get_max_charge()) * 100) + +/obj/item/mod/control/proc/add_charge(amount) + return core?.add_charge(amount) || FALSE + +/obj/item/mod/control/proc/subtract_charge(amount) + return core?.subtract_charge(amount) || FALSE + +/obj/item/mod/control/proc/check_charge(amount) + return core?.check_charge(amount) || FALSE + +/obj/item/mod/control/proc/update_charge_alert() + if(!wearer) + return + if(!core) + wearer.throw_alert("mod_charge", /atom/movable/screen/alert/nocore) + return + core.update_charge_alert() + +/obj/item/mod/control/proc/update_speed() + var/list/all_parts = mod_parts + src + for(var/obj/item/part as anything in all_parts) + part.slowdown = (active ? slowdown_active : slowdown_inactive) / length(all_parts) + wearer?.update_equipment_speed_mods() + +/obj/item/mod/control/proc/power_off() + balloon_alert(wearer, "Нет энергии!") + toggle_activate(wearer, force_deactivate = TRUE) + +/obj/item/mod/control/proc/set_mod_color(new_color) + var/list/all_parts = mod_parts + src + for(var/obj/item/part as anything in all_parts) + part.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + part.add_atom_colour(new_color, FIXED_COLOUR_PRIORITY) + wearer?.regenerate_icons() + +/obj/item/mod/control/proc/set_mod_skin(new_skin) + if(active) + CRASH("[src] tried to set skin while active!") + skin = new_skin + var/list/used_skin = theme.skins[new_skin] + if(used_skin[CONTROL_LAYER]) + alternate_worn_layer = used_skin[CONTROL_LAYER] + var/list/skin_updating = mod_parts + src + for(var/obj/item/part as anything in skin_updating) + part.icon = used_skin[MOD_ICON_OVERRIDE] || 'icons/obj/clothing/modsuit/mod_clothing.dmi' + //part.mob_overlay_icon = used_skin[MOD_WORN_ICON_OVERRIDE] || 'icons/mob/clothing/modsuit/mod_clothing.dmi' + part.icon_state = "[skin]-[part.base_icon_state]" + for(var/obj/item/clothing/part as anything in mod_parts) + var/used_category + if(part == helmet) + used_category = HELMET_FLAGS + if(part == chestplate) + used_category = CHESTPLATE_FLAGS + if(part == gauntlets) + used_category = GAUNTLETS_FLAGS + if(part == boots) + used_category = BOOTS_FLAGS + var/list/category = used_skin[used_category] + part.clothing_flags = category[UNSEALED_CLOTHING] || NONE + part.visor_flags = category[SEALED_CLOTHING] || NONE + part.flags_inv = category[UNSEALED_INVISIBILITY] || NONE + part.visor_flags_inv = category[SEALED_INVISIBILITY] || NONE + part.flags_cover = category[UNSEALED_COVER] || NONE + part.visor_flags_cover = category[SEALED_COVER] || NONE + part.alternate_worn_layer = category[UNSEALED_LAYER] + mod_parts[part] = part.alternate_worn_layer + if(!category[CAN_OVERSLOT]) + if(overslotting_parts[part]) + var/obj/item/overslot = overslotting_parts[part] + overslot.forceMove(drop_location()) + overslotting_parts -= part + continue + overslotting_parts |= part + wearer?.regenerate_icons() + +/obj/item/mod/control/proc/on_exit(datum/source, atom/movable/part, direction) + SIGNAL_HANDLER + + if(part.loc == src) + return + if(part == core) + core.uninstall() + update_charge_alert() + return + if(part.loc == wearer) + return + if(part in modules) + uninstall(part) + return + if(part in mod_parts) + if(!wearer) + part.forceMove(src) + return + retract(wearer, part) + if(active) + INVOKE_ASYNC(src, PROC_REF(toggle_activate), wearer, TRUE) + +/obj/item/mod/control/proc/on_part_destruction(obj/item/part, damage_flag) + SIGNAL_HANDLER + + if(overslotting_parts[part]) + var/obj/item/overslot = overslotting_parts[part] + overslot.forceMove(drop_location()) + overslotting_parts[part] = null + if(QDELETED(src)) + return + obj_destruction(damage_flag) + +/obj/item/mod/control/proc/on_part_deletion(obj/item/part) + SIGNAL_HANDLER + + if(QDELETED(src)) + return + qdel(src) + +/obj/item/mod/control/proc/on_overslot_exit(datum/source, atom/movable/overslot, direction) + SIGNAL_HANDLER + + if(overslot != overslotting_parts[source]) + return + overslotting_parts[source] = null diff --git a/code/modules/mod/mod_core.dm b/code/modules/mod/mod_core.dm new file mode 100644 index 000000000000..4c9d16ef7b7d --- /dev/null +++ b/code/modules/mod/mod_core.dm @@ -0,0 +1,357 @@ +/obj/item/mod/core + name = "MOD core" + desc = "A non-functional MOD core. Inform the admins if you see this." + icon = 'icons/obj/clothing/modsuit/mod_construction.dmi' + icon_state = "mod-core" + item_state = "electronic" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + /// MOD unit we are powering. + var/obj/item/mod/control/mod + +/obj/item/mod/core/Destroy() + if(mod) + uninstall() + return ..() + +/obj/item/mod/core/proc/install(obj/item/mod/control/mod_unit) + mod = mod_unit + mod.core = src + forceMove(mod) + +/obj/item/mod/core/proc/uninstall() + mod.core = null + mod = null + +/obj/item/mod/core/proc/charge_source() + return + +/obj/item/mod/core/proc/charge_amount() + return 0 + +/obj/item/mod/core/proc/max_charge_amount() + return 1 + +/obj/item/mod/core/proc/add_charge(amount) + return FALSE + +/obj/item/mod/core/proc/subtract_charge(amount) + return FALSE + +/obj/item/mod/core/proc/check_charge(amount) + return FALSE + +/obj/item/mod/core/proc/update_charge_alert() + mod.wearer.clear_alert("mod_charge") + +/obj/item/mod/core/infinite + name = "MOD infinite core" + icon_state = "mod-core-infinite" + desc = "A fusion core using the rare Fixium to sustain enough energy for the lifetime of the MOD's user. \ + This might be because of the slowly killing poison inside, but those are just rumors." + +/obj/item/mod/core/infinite/charge_source() + return src + +/obj/item/mod/core/infinite/charge_amount() + return INFINITY + +/obj/item/mod/core/infinite/max_charge_amount() + return INFINITY + +/obj/item/mod/core/infinite/add_charge(amount) + return TRUE + +/obj/item/mod/core/infinite/subtract_charge(amount) + return TRUE + +/obj/item/mod/core/infinite/check_charge(amount) + return TRUE + +/obj/item/mod/core/standard + name = "MOD standard core" + icon_state = "mod-core-standard" + desc = "Growing in the most lush, fertile areas of the planet Sprout, there is a crystal known as the Heartbloom. \ + These rare, organic piezoelectric crystals are of incredible cultural significance to the artist castes of the \ + Ethereals, owing to their appearance; which is exactly similar to that of an Ethereal's heart.\n\ + Which one you have in your suit is unclear, but either way, \ + it's been repurposed to be an internal power source for a Modular Outerwear Device." + /// Installed cell. + var/obj/item/stock_parts/cell/cell + +/obj/item/mod/core/standard/Destroy() + if(cell) + QDEL_NULL(cell) + return ..() + +/obj/item/mod/core/standard/install(obj/item/mod/control/mod_unit) + . = ..() + if(cell) + install_cell(cell) + RegisterSignal(mod, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(mod, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) + RegisterSignal(mod, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) + RegisterSignal(mod, COMSIG_MOD_WEARER_SET, PROC_REF(on_wearer_set)) + if(mod.wearer) + on_wearer_set(mod, mod.wearer) + +/obj/item/mod/core/standard/uninstall() + if(!QDELETED(cell)) + cell.forceMove(drop_location()) + UnregisterSignal(mod, list(COMSIG_PARENT_EXAMINE, COMSIG_ATOM_ATTACK_HAND, COMSIG_PARENT_ATTACKBY, COMSIG_MOD_WEARER_SET)) + if(mod.wearer) + on_wearer_unset(mod, mod.wearer) + return ..() + +/obj/item/mod/core/standard/charge_source() + return cell + +/obj/item/mod/core/standard/charge_amount() + var/obj/item/stock_parts/cell/charge_source = charge_source() + return charge_source?.charge || 0 + +/obj/item/mod/core/standard/max_charge_amount(amount) + var/obj/item/stock_parts/cell/charge_source = charge_source() + return charge_source?.maxcharge || 1 + +/obj/item/mod/core/standard/add_charge(amount) + var/obj/item/stock_parts/cell/charge_source = charge_source() + if(!charge_source) + return FALSE + return charge_source.give(amount) + +/obj/item/mod/core/standard/subtract_charge(amount) + var/obj/item/stock_parts/cell/charge_source = charge_source() + if(!charge_source) + return FALSE + return charge_source.use(amount, TRUE) + +/obj/item/mod/core/standard/check_charge(amount) + return charge_amount() >= amount + +/obj/item/mod/core/standard/update_charge_alert() + var/obj/item/stock_parts/cell/charge_source = charge_source() + if(!charge_source) + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/nocell) + return + var/remaining_cell = charge_amount() / max_charge_amount() + switch(remaining_cell) + if(0.75 to INFINITY) + mod.wearer.clear_alert("mod_charge") + if(0.5 to 0.75) + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/lowcell, 1) + if(0.25 to 0.5) + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/lowcell, 2) + if(0.01 to 0.25) + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/lowcell, 3) + else + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/emptycell) + +/obj/item/mod/core/standard/proc/install_cell(new_cell) + cell = new_cell + cell.forceMove(src) + RegisterSignal(src, COMSIG_ATOM_EXITED, PROC_REF(on_exit)) + +/obj/item/mod/core/standard/proc/uninstall_cell() + if(!cell) + return + cell = null + UnregisterSignal(src, COMSIG_ATOM_EXITED) + +/obj/item/mod/core/standard/proc/on_exit(datum/source, obj/item/stock_parts/cell, direction) + SIGNAL_HANDLER + + if(!istype(cell) || cell.loc == src) + return + uninstall_cell() + +/obj/item/mod/core/standard/proc/on_examine(datum/source, mob/examiner, list/examine_text) + SIGNAL_HANDLER + + if(!mod.open) + return + examine_text += cell ? "You could remove the cell with an empty hand." : "You could use a cell on it to install one." + +/obj/item/mod/core/standard/proc/on_attack_hand(datum/source, mob/living/user) + SIGNAL_HANDLER + + if(mod.seconds_electrified && charge_amount() && mod.shock(user)) + return COMPONENT_CANCEL_ATTACK_CHAIN + if(mod.open && mod.loc == user) + INVOKE_ASYNC(src, PROC_REF(mod_uninstall_cell), user) + return COMPONENT_CANCEL_ATTACK_CHAIN + return NONE + +/obj/item/mod/core/standard/proc/mod_uninstall_cell(mob/living/user) + if(!cell) + mod.balloon_alert(user, "no cell!") + return + mod.balloon_alert(user, "removing cell...") + if(!do_after(user, 1.5 SECONDS, target = mod)) + mod.balloon_alert(user, "interrupted!") + return + mod.balloon_alert(user, "cell removed") + playsound(mod, 'sound/machines/click.ogg', 50, TRUE, SILENCED_SOUND_EXTRARANGE) + var/obj/item/cell_to_move = cell + cell_to_move.forceMove(drop_location()) + user.put_in_hands(cell_to_move) + mod.update_charge_alert() + +/obj/item/mod/core/standard/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user) + SIGNAL_HANDLER + + if(istype(attacking_item, /obj/item/stock_parts/cell)) + if(!mod.open) + mod.balloon_alert(user, "open the cover first!") + playsound(mod, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return NONE + if(cell) + mod.balloon_alert(user, "cell already installed!") + playsound(mod, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return COMPONENT_NO_AFTERATTACK + install_cell(attacking_item) + mod.balloon_alert(user, "cell installed") + playsound(mod, 'sound/machines/click.ogg', 50, TRUE, SILENCED_SOUND_EXTRARANGE) + mod.update_charge_alert() + return COMPONENT_NO_AFTERATTACK + return NONE + +/obj/item/mod/core/standard/proc/on_wearer_set(datum/source, mob/user) + SIGNAL_HANDLER + + RegisterSignal(mod.wearer, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, PROC_REF(on_borg_charge)) + RegisterSignal(mod, COMSIG_MOD_WEARER_UNSET, PROC_REF(on_wearer_unset)) + +/obj/item/mod/core/standard/proc/on_wearer_unset(datum/source, mob/user) + SIGNAL_HANDLER + + UnregisterSignal(mod.wearer, COMSIG_PROCESS_BORGCHARGER_OCCUPANT) + UnregisterSignal(mod, COMSIG_MOD_WEARER_UNSET) + +/obj/item/mod/core/standard/proc/on_borg_charge(datum/source, amount) + SIGNAL_HANDLER + + add_charge(amount) + mod.update_charge_alert() + +/obj/item/mod/core/ethereal + name = "MOD ethereal core" + icon_state = "mod-core-ethereal" + desc = "A reverse engineered core of a Modular Outerwear Device. Using natural liquid electricity from Ethereals, \ + preventing the need to use external sources to convert electric charge." + /// A modifier to all charge we use, ethereals don't need to spend as much energy as normal suits. + var/charge_modifier = 0.1 + +/obj/item/mod/core/ethereal/charge_source() + var/obj/item/organ/stomach/ethereal/ethereal_stomach = mod.wearer.getorganslot(ORGAN_SLOT_STOMACH) + if(!istype(ethereal_stomach)) + return + return ethereal_stomach + +/obj/item/mod/core/ethereal/charge_amount() + var/obj/item/organ/stomach/ethereal/charge_source = charge_source() + return charge_source?.crystal_charge || ELZUOSE_CHARGE_NONE + +/obj/item/mod/core/ethereal/max_charge_amount() + return ELZUOSE_CHARGE_FULL + +/obj/item/mod/core/ethereal/add_charge(amount) + var/obj/item/organ/stomach/ethereal/charge_source = charge_source() + if(!charge_source) + return FALSE + charge_source.adjust_charge(amount*charge_modifier) + return TRUE + +/obj/item/mod/core/ethereal/subtract_charge(amount) + var/obj/item/organ/stomach/ethereal/charge_source = charge_source() + if(!charge_source) + return FALSE + charge_source.adjust_charge(-amount*charge_modifier) + return TRUE + +/obj/item/mod/core/ethereal/check_charge(amount) + return charge_amount() >= amount*charge_modifier + +/obj/item/mod/core/ethereal/update_charge_alert() + var/obj/item/organ/stomach/ethereal/charge_source = charge_source() + if(charge_source) + mod.wearer.clear_alert("mod_charge") + return + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/nocell) + +/obj/item/mod/core/plasma + name = "MOD plasma core" + icon_state = "mod-core-plasma" + desc = "Nanotrasen's attempt at capitalizing on their plasma research. These plasma cores are refueled \ + through plasma ore, allowing for easy continued use by their mining squads." + /// How much charge we can store. + var/maxcharge = 10000 + /// How much charge we are currently storing. + var/charge = 10000 + /// Associated list of charge sources and how much they charge, only stacks allowed. + var/list/charger_list = list(/obj/item/stack/ore/plasma = 1500, /obj/item/stack/sheet/mineral/plasma = 2000) + +/obj/item/mod/core/plasma/install(obj/item/mod/control/mod_unit) + . = ..() + RegisterSignal(mod, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) + +/obj/item/mod/core/plasma/uninstall() + UnregisterSignal(mod, COMSIG_PARENT_ATTACKBY) + return ..() + +/obj/item/mod/core/plasma/attackby(obj/item/attacking_item, mob/user, params) + if(charge_plasma(attacking_item, user)) + return TRUE + return ..() + +/obj/item/mod/core/plasma/charge_source() + return src + +/obj/item/mod/core/plasma/charge_amount() + return charge + +/obj/item/mod/core/plasma/max_charge_amount() + return maxcharge + +/obj/item/mod/core/plasma/add_charge(amount) + charge = min(maxcharge, charge + amount) + return TRUE + +/obj/item/mod/core/plasma/subtract_charge(amount) + charge = max(0, charge - amount) + return TRUE + +/obj/item/mod/core/plasma/check_charge(amount) + return charge_amount() >= amount + +/obj/item/mod/core/plasma/update_charge_alert() + var/remaining_plasma = charge_amount() / max_charge_amount() + switch(remaining_plasma) + if(0.75 to INFINITY) + mod.wearer.clear_alert("mod_charge") + if(0.5 to 0.75) + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/lowcell/plasma, 1) + if(0.25 to 0.5) + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/lowcell/plasma, 2) + if(0.01 to 0.25) + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/lowcell/plasma, 3) + else + mod.wearer.throw_alert("mod_charge", /atom/movable/screen/alert/emptycell/plasma) + +/obj/item/mod/core/plasma/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user) + SIGNAL_HANDLER + + if(charge_plasma(attacking_item, user)) + return COMPONENT_NO_AFTERATTACK + return NONE + +/obj/item/mod/core/plasma/proc/charge_plasma(obj/item/stack/plasma, mob/user) + var/charge_given = is_type_in_list(plasma, charger_list, zebra = TRUE) + if(!charge_given) + return FALSE + var/uses_needed = min(plasma.amount, ROUND_UP((max_charge_amount() - charge_amount()) / charge_given)) + if(!plasma.use(uses_needed)) + return FALSE + add_charge(uses_needed * charge_given) + balloon_alert(user, "core refueled") + return TRUE diff --git a/code/modules/mod/mod_paint.dm b/code/modules/mod/mod_paint.dm new file mode 100644 index 000000000000..aead577224bc --- /dev/null +++ b/code/modules/mod/mod_paint.dm @@ -0,0 +1,192 @@ +#define MODPAINT_MAX_COLOR_VALUE 1.25 +#define MODPAINT_MIN_COLOR_VALUE 0 +#define MODPAINT_MAX_SECTION_COLORS 2 +#define MODPAINT_MIN_SECTION_COLORS 0.25 +#define MODPAINT_MAX_OVERALL_COLORS 4 +#define MODPAINT_MIN_OVERALL_COLORS 1.5 + +/obj/item/mod/paint + name = "MOD paint kit" + desc = "This kit will repaint your MODsuit to something unique." + icon = 'icons/obj/clothing/modsuit/mod_construction.dmi' + icon_state = "paintkit" + var/obj/item/mod/control/editing_mod + var/atom/movable/screen/map_view/proxy_view + var/list/current_color + +/obj/item/mod/paint/Initialize(mapload) + . = ..() + current_color = color_matrix_identity() + +/obj/item/mod/paint/examine(mob/user) + . = ..() + . += span_notice("Left-click a MODsuit to change skin.") + //. += span_notice("Right-click a MODsuit to recolor.") + +/obj/item/mod/paint/pre_attack(atom/attacked_atom, mob/living/user, params) + if(!istype(attacked_atom, /obj/item/mod/control)) + return ..() + var/obj/item/mod/control/mod = attacked_atom + if(mod.active || mod.activating) + balloon_alert(user, "suit is active!") + return TRUE + paint_skin(mod, user) + +/*obj/item/mod/paint/pre_attack_secondary(atom/attacked_atom, mob/living/user, params) + if(!istype(attacked_atom, /obj/item/mod/control)) + return .() + var/obj/item/mod/control/mod = attacked_atom + if(mod.active || mod.activating) + balloon_alert(user, "suit is active!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(editing_mod) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + editing_mod = mod + proxy_view = new() + proxy_view.generate_view("color_matrix_proxy_[REF(user.client)]") + + proxy_view.appearance = editing_mod.appearance + proxy_view.color = null + proxy_view.display_to(user) + ui_interact(user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN*/ + +/obj/item/mod/paint/ui_interact(mob/user, datum/tgui/ui) + if(!editing_mod) + return + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "MODpaint", name) + ui.open() + +/obj/item/mod/paint/ui_host() + return editing_mod + +/obj/item/mod/paint/ui_close(mob/user) + . = ..() + editing_mod = null + QDEL_NULL(proxy_view) + current_color = color_matrix_identity() + +/obj/item/mod/paint/ui_status(mob/user) + if(check_menu(editing_mod, user)) + return ..() + return UI_CLOSE + +/obj/item/mod/paint/ui_static_data(mob/user) + var/list/data = list() + data["mapRef"] = proxy_view.assigned_map + return data + +/obj/item/mod/paint/ui_data(mob/user) + var/list/data = list() + data["currentColor"] = current_color + return data + +/obj/item/mod/paint/ui_act(action, list/params) + . = ..() + if(.) + return + switch(action) + if("transition_color") + current_color = params["color"] + animate(proxy_view, time = 0.5 SECONDS, color = current_color) + if("confirm") + if(length(current_color) != 20) //20 is the length of a matrix identity list + return + for(var/color_value in current_color) + if(isnum(color_value)) + continue + return + var/total_color_value = 0 + var/list/total_colors = current_color.Copy() + total_colors.Cut(13, length(total_colors)) // 13 to 20 are just a and c, dont want to count them + var/red_value = current_color[1] + current_color[5] + current_color[9] //rr + gr + br + var/green_value = current_color[2] + current_color[6] + current_color[10] //rg + gg + bg + var/blue_value = current_color[3] + current_color[7] + current_color[11] //rb + gb + bb + if(red_value > MODPAINT_MAX_SECTION_COLORS) + balloon_alert(usr, "total red too high! ([red_value*100]%/[MODPAINT_MAX_SECTION_COLORS*100]%)") + return + else if(red_value < MODPAINT_MIN_SECTION_COLORS) + balloon_alert(usr, "total red too low! ([red_value*100]%/[MODPAINT_MIN_SECTION_COLORS*100]%)") + return + if(green_value > MODPAINT_MAX_SECTION_COLORS) + balloon_alert(usr, "total green too high! ([green_value*100]%/[MODPAINT_MAX_SECTION_COLORS*100]%)") + return + else if(green_value < MODPAINT_MIN_SECTION_COLORS) + balloon_alert(usr, "total green too low! ([green_value*100]%/[MODPAINT_MIN_SECTION_COLORS*100]%)") + return + if(blue_value > MODPAINT_MAX_SECTION_COLORS) + balloon_alert(usr, "total blue too high! ([blue_value*100]%/[MODPAINT_MAX_SECTION_COLORS*100]%)") + return + else if(blue_value < MODPAINT_MIN_SECTION_COLORS) + balloon_alert(usr, "total blue too low! ([blue_value*100]%/[MODPAINT_MIN_SECTION_COLORS*100]%)") + return + for(var/color_value in total_colors) + total_color_value += color_value + if(color_value > MODPAINT_MAX_COLOR_VALUE) + balloon_alert(usr, "one of colors too high! ([color_value*100]%/[MODPAINT_MAX_COLOR_VALUE*100]%") + return + else if(color_value < MODPAINT_MIN_COLOR_VALUE) + balloon_alert(usr, "one of colors too low! ([color_value*100]%/[MODPAINT_MIN_COLOR_VALUE*100]%") + return + if(total_color_value > MODPAINT_MAX_OVERALL_COLORS) + balloon_alert(usr, "total colors too high! ([total_color_value*100]%/[MODPAINT_MAX_OVERALL_COLORS*100]%)") + return + else if(total_color_value < MODPAINT_MIN_OVERALL_COLORS) + balloon_alert(usr, "total colors too low! ([total_color_value*100]%/[MODPAINT_MIN_OVERALL_COLORS*100]%)") + return + editing_mod.set_mod_color(current_color) + SStgui.close_uis(src) + +/obj/item/mod/paint/proc/paint_skin(obj/item/mod/control/mod, mob/user) + if(length(mod.theme.skins) <= 1) + balloon_alert(user, "no alternate skins!") + return + var/list/skins = list() + for(var/mod_skin in mod.theme.skins) + skins[mod_skin] = image(icon = mod.icon, icon_state = "[mod_skin]-control") + var/pick = show_radial_menu(user, mod, skins, custom_check = CALLBACK(src, PROC_REF(check_menu), mod, user), require_near = TRUE) + if(!pick) + balloon_alert(user, "no skin picked!") + return + mod.set_mod_skin(pick) + +/obj/item/mod/paint/proc/check_menu(obj/item/mod/control/mod, mob/user) + if(user.incapacitated() || !user.is_holding(src) || !mod || mod.active || mod.activating) + return FALSE + return TRUE + +#undef MODPAINT_MAX_COLOR_VALUE +#undef MODPAINT_MIN_COLOR_VALUE +#undef MODPAINT_MAX_SECTION_COLORS +#undef MODPAINT_MIN_SECTION_COLORS +#undef MODPAINT_MAX_OVERALL_COLORS +#undef MODPAINT_MIN_OVERALL_COLORS + +/obj/item/mod/skin_applier + name = "MOD skin applier" + desc = "This one-use skin applier will add a skin to MODsuits of a specific type." + icon = 'icons/obj/clothing/modsuit/mod_construction.dmi' + icon_state = "skinapplier" + var/skin = "civilian" + var/compatible_theme = /datum/mod_theme + +/obj/item/mod/skin_applier/Initialize(mapload) + . = ..() + name = "MOD [skin] skin applier" + +/obj/item/mod/skin_applier/pre_attack(atom/attacked_atom, mob/living/user, params) + if(!istype(attacked_atom, /obj/item/mod/control)) + return ..() + var/obj/item/mod/control/mod = attacked_atom + if(mod.active || mod.activating) + balloon_alert(user, "suit is active!") + return TRUE + if(!istype(mod.theme, compatible_theme)) + balloon_alert(user, "incompatible theme!") + return TRUE + mod.set_mod_skin(skin) + balloon_alert(user, "skin applied") + qdel(src) + return TRUE diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm new file mode 100644 index 000000000000..2e6325df919f --- /dev/null +++ b/code/modules/mod/mod_theme.dm @@ -0,0 +1,1154 @@ +/// Global proc that sets up all MOD themes as singletons in a list and returns it. +/proc/setup_mod_themes() + . = list() + for(var/path in typesof(/datum/mod_theme)) + var/datum/mod_theme/new_theme = new path() + .[path] = new_theme + +/// MODsuit theme, instanced once and then used by MODsuits to grab various statistics. +/datum/mod_theme + /// Theme name for the MOD. + var/name = "standard" + /// Description added to the MOD. + var/desc = "A MOD suit. Placeholder Desc" + /// Extended description on examine_more + var/extended_desc = "Placeholder Desc" + /// Default skin of the MOD. + var/default_skin = "standard" + /// The slot this mod theme fits on + var/slot_flags = ITEM_SLOT_BACK + /// Armor shared across the MOD parts. + var/armor = list("melee" = 10, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 0, "bio" = 100, "fire" = 25, "acid" = 25) + /// Resistance flags shared across the MOD parts. + var/resistance_flags = NONE + /// Atom flags shared across the MOD parts. + var/atom_flags = NONE + /// Max heat protection shared across the MOD parts. + var/max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT + /// Max cold protection shared across the MOD parts. + var/min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT + /// Siemens shared across the MOD parts. + var/siemens_coefficient = 0.5 + /// How much modules can the MOD carry without malfunctioning. + var/complexity_max = DEFAULT_MAX_COMPLEXITY + /// How much battery power the MOD uses by just being on + var/charge_drain = DEFAULT_CHARGE_DRAIN + /// Slowdown of the MOD when not active. + var/slowdown_inactive = 1.25 + /// Slowdown of the MOD when active. + var/slowdown_active = 0.75 + /// Theme used by the MOD TGUI. + var/ui_theme = "ntos" + /// List of inbuilt modules. These are different from the pre-equipped suits, you should mainly use these for unremovable modules with 0 complexity. + var/list/inbuilt_modules = list() + /// Modules blacklisted from the MOD. + var/list/module_blacklist = list() + /// Allowed items in the chestplate's suit storage. + var/list/allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + ) + /// List of skins with their appropriate clothing flags. + var/list/skins = list( + "standard" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + "civilian" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/engineering + name = "engineering" + default_skin = "engineering" + armor = list("melee" = 10, "bullet" = 5, "laser" = 20, "energy" = 10, "bomb" = 10, "bio" = 100, "fire" = 100, "acid" = 25) + resistance_flags = FIRE_PROOF + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + siemens_coefficient = 0 + slowdown_inactive = 1.5 + slowdown_active = 1 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/construction/rcd, + /obj/item/storage/bag/construction, + ) + skins = list( + "engineering" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/atmospheric + name = "atmospheric" + default_skin = "atmospheric" + armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 15, "bomb" = 10, "bio" = 100, "fire" = 100, "acid" = 75) + resistance_flags = FIRE_PROOF + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + slowdown_inactive = 1.5 + slowdown_active = 1 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/analyzer, + /obj/item/t_scanner, + /obj/item/pipe_dispenser, + ) + skins = list( + "atmospheric" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDESNOUT, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR, + UNSEALED_COVER = HEADCOVERSMOUTH, + SEALED_COVER = HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/advanced + name = "advanced" + default_skin = "advanced" + armor = list("melee" = 15, "bullet" = 5, "laser" = 20, "energy" = 15, "bomb" = 50, "bio" = 100, "fire" = 100, "acid" = 90) + resistance_flags = FIRE_PROOF + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + siemens_coefficient = 0 + slowdown_inactive = 1 + slowdown_active = 0.5 + inbuilt_modules = list(/obj/item/mod/module/magboot/advanced) + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/analyzer, + /obj/item/t_scanner, + /obj/item/pipe_dispenser, + /obj/item/construction/rcd, + /obj/item/storage/bag/construction, + /obj/item/melee/classic_baton/telescopic, + ) + skins = list( + "advanced" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/mining + name = "mining" + default_skin = "mining" + armor = list("melee" = 15, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 30, "bio" = 100, "fire" = 100, "acid" = 75) + resistance_flags = FIRE_PROOF|LAVA_PROOF + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + complexity_max = DEFAULT_MAX_COMPLEXITY - 5 + charge_drain = DEFAULT_CHARGE_DRAIN * 2 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/resonator, + /obj/item/mining_scanner, + /obj/item/t_scanner/adv_mining_scanner, + /obj/item/pickaxe, + /obj/item/kinetic_crusher, + /obj/item/stack/ore/plasma, + /obj/item/storage/bag/ore, + ) + inbuilt_modules = list() + skins = list( + "mining" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEEARS|HIDEHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + "asteroid" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT, + SEALED_INVISIBILITY = HIDEMASK|HIDEEYES|HIDEFACE, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/loader + name = "loader" + default_skin = "loader" + armor = list("melee" = 15, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 10, "bio" = 10, "fire" = 25, "acid" = 25) + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + siemens_coefficient = 0.25 + complexity_max = DEFAULT_MAX_COMPLEXITY - 5 + slowdown_inactive = 0.5 + slowdown_active = 0 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/paper + ) + inbuilt_modules = list(/obj/item/mod/module/clamp/loader, /obj/item/mod/module/magnet) + skins = list( + "loader" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + UNSEALED_INVISIBILITY = HIDEEARS|HIDEHAIR, + SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEYES|HIDEFACE|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + ), + GAUNTLETS_FLAGS = list( + SEALED_CLOTHING = THICKMATERIAL, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + SEALED_CLOTHING = THICKMATERIAL, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/medical + name = "medical" + default_skin = "medical" + armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 10, "bio" = 100, "fire" = 60, "acid" = 75) + charge_drain = DEFAULT_CHARGE_DRAIN * 1.5 + slowdown_inactive = 1 + slowdown_active = 0.5 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/healthanalyzer, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/glass/beaker, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/hypospray, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/syringe, + /obj/item/stack/medical, + /obj/item/sensor_device, + /obj/item/storage/pill_bottle, + /obj/item/storage/bag/chemistry, + /obj/item/storage/bag/bio, + ) + skins = list( + "medical" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + "corpsman" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/rescue + name = "rescue" + default_skin = "rescue" + armor = list("melee" = 10, "bullet" = 10, "laser" = 5, "energy" = 5, "bomb" = 10, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = FIRE_PROOF|ACID_PROOF + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + charge_drain = DEFAULT_CHARGE_DRAIN * 1.5 + slowdown_inactive = 0.75 + slowdown_active = 0.25 + inbuilt_modules = list(/obj/item/mod/module/quick_carry/advanced) + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/healthanalyzer, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/glass/beaker, + /obj/item/reagent_containers/glass/bottle, + /obj/item/reagent_containers/hypospray, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/syringe, + /obj/item/stack/medical, + /obj/item/sensor_device, + /obj/item/storage/pill_bottle, + /obj/item/storage/bag/chemistry, + /obj/item/storage/bag/bio, + /obj/item/melee/classic_baton/telescopic, + ) + skins = list( + "rescue" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/research + name = "research" + default_skin = "research" + armor = list("melee" = 20, "bullet" = 15, "laser" = 5, "energy" = 5, "bomb" = 100, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = FIRE_PROOF|ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + complexity_max = DEFAULT_MAX_COMPLEXITY + 5 + slowdown_inactive = 1.75 + slowdown_active = 1.25 + inbuilt_modules = list(/obj/item/mod/module/reagent_scanner/advanced) + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/analyzer, + /obj/item/dnainjector, + /obj/item/storage/bag/bio, + /obj/item/melee/classic_baton/telescopic, + ) + skins = list( + "research" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/security + name = "security" + default_skin = "security" + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 25, "bio" = 100, "fire" = 75, "acid" = 75) + complexity_max = DEFAULT_MAX_COMPLEXITY - 3 + slowdown_inactive = 1 + slowdown_active = 0.5 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + ) + skins = list( + "security" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT, + SEALED_INVISIBILITY = HIDEMASK|HIDEEYES|HIDEFACE, + UNSEALED_COVER = HEADCOVERSMOUTH, + SEALED_COVER = HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/safeguard + name = "safeguard" + default_skin = "safeguard" + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 40, "bio" = 100, "fire" = 100, "acid" = 95) + resistance_flags = FIRE_PROOF + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + slowdown_inactive = 0.75 + slowdown_active = 0.25 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/reagent_containers/spray/pepper, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + ) + skins = list( + "safeguard" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/magnate + name = "magnate" + default_skin = "magnate" + armor = list("melee" = 20, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 50, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = FIRE_PROOF|ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + siemens_coefficient = 0 + complexity_max = DEFAULT_MAX_COMPLEXITY + 5 + slowdown_inactive = 0.75 + slowdown_active = 0.25 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + ) + skins = list( + "magnate" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/syndicate + name = "syndicate" + default_skin = "syndicate" + armor = list("melee" = 15, "bullet" = 20, "laser" = 15, "energy" = 15, "bomb" = 35, "bio" = 100, "fire" = 50, "acid" = 90) + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + siemens_coefficient = 0 + slowdown_inactive = 1 + slowdown_active = 0.5 + ui_theme = "syndicate" + inbuilt_modules = list(/obj/item/mod/module/armor_booster) + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + /obj/item/melee/transforming/energy/sword, + /obj/item/shield/energy, + ) + skins = list( + "syndicate" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/elite + name = "elite" + default_skin = "elite" + armor = list("melee" = 35, "bullet" = 30, "laser" = 35, "energy" = 35, "bomb" = 55, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = FIRE_PROOF|ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + siemens_coefficient = 0 + slowdown_inactive = 1 + slowdown_active = 0.5 + ui_theme = "syndicate" + inbuilt_modules = list(/obj/item/mod/module/armor_booster) + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + /obj/item/melee/transforming/energy/sword, + /obj/item/shield/energy, + ) + skins = list( + "elite" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/ninja + name = "ninja" + default_skin = "ninja" + armor = list("melee" = 40, "bullet" = 30, "laser" = 20, "energy" = 30, "bomb" = 30, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = LAVA_PROOF|FIRE_PROOF|ACID_PROOF + charge_drain = DEFAULT_CHARGE_DRAIN * 0.5 + siemens_coefficient = 0 + slowdown_inactive = 0.5 + slowdown_active = 0 + ui_theme = "hackerman" + inbuilt_modules = list(/obj/item/mod/module/welding/camera_vision, /obj/item/mod/module/hacker, /obj/item/mod/module/weapon_recall, /obj/item/mod/module/adrenaline_boost, /obj/item/mod/module/energy_net) + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/gun, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/melee/baton, + /obj/item/restraints/handcuffs, + ) + skins = list( + "ninja" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEEARS|HIDEHAIR, + SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEYES|HIDEFACE|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/prototype + name = "prototype" + default_skin = "prototype" + armor = list("melee" = 20, "bullet" = 5, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "fire" = 100, "acid" = 75) + resistance_flags = FIRE_PROOF + siemens_coefficient = 0 + complexity_max = DEFAULT_MAX_COMPLEXITY + 5 + charge_drain = DEFAULT_CHARGE_DRAIN * 2 + slowdown_inactive = 2 + slowdown_active = 1.5 + ui_theme = "hackerman" + //inbuilt_modules = list(/obj/item/mod/module/anomaly_locked/kinesis/prebuilt/prototype) + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/analyzer, + /obj/item/t_scanner, + /obj/item/pipe_dispenser, + /obj/item/construction/rcd, + ) + skins = list( + "prototype" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/responsory + name = "responsory" + default_skin = "responsory" + armor = list("melee" = 50, "bullet" = 40, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 100, "fire" = 100, "acid" = 90) + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + resistance_flags = FIRE_PROOF + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + siemens_coefficient = 0 + slowdown_inactive = 0.5 + slowdown_active = 0 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + ) + skins = list( + "responsory" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + "inquisitory" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/apocryphal + name = "apocryphal" + default_skin = "apocryphal" + armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 60, "bomb" = 100, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = FIRE_PROOF|ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + siemens_coefficient = 0 + complexity_max = DEFAULT_MAX_COMPLEXITY + 10 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + /obj/item/melee/transforming/energy/sword, + /obj/item/shield/energy, + ) + skins = list( + "apocryphal" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEEARS|HIDEHAIR, + SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEYES|HIDEFACE|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/corporate + name = "corporate" + default_skin = "corporate" + armor = list("melee" = 50, "bullet" = 40, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = FIRE_PROOF|ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + siemens_coefficient = 0 + slowdown_inactive = 0.5 + slowdown_active = 0 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + ) + skins = list( + "corporate" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT, + SEALED_INVISIBILITY = HIDEMASK|HIDEEYES|HIDEFACE, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/chrono + name = "chrono" + default_skin = "chrono" + armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 60, "bomb" = 30, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = FIRE_PROOF|ACID_PROOF + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + complexity_max = DEFAULT_MAX_COMPLEXITY - 10 + slowdown_inactive = 0 + slowdown_active = 0 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/restraints/handcuffs, + ) + skins = list( + "chrono" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = NECK_LAYER, + UNSEALED_CLOTHING = SNUG_FIT, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/debug + name = "debug" + default_skin = "debug" + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = FIRE_PROOF|ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + complexity_max = 50 + siemens_coefficient = 0 + slowdown_inactive = 0.5 + slowdown_active = 0 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/gun, + ) + skins = list( + "debug" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE, + UNSEALED_COVER = HEADCOVERSMOUTH, + SEALED_COVER = HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/mod_theme/administrative + name = "administrative" + default_skin = "debug" + armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "fire" = 100, "acid" = 100) + resistance_flags = INDESTRUCTIBLE|LAVA_PROOF|FIRE_PROOF|UNACIDABLE|ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + complexity_max = 1000 + charge_drain = DEFAULT_CHARGE_DRAIN * 0 + siemens_coefficient = 0 + slowdown_inactive = 0 + slowdown_active = 0 + allowed_suit_storage = list( + /obj/item/flashlight, + /obj/item/tank/internals, + /obj/item/gun, + ) + skins = list( + "debug" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT, + SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE, + UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCKS_SHOVE_KNOCKDOWN, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm new file mode 100644 index 000000000000..6cd33197e423 --- /dev/null +++ b/code/modules/mod/mod_types.dm @@ -0,0 +1,331 @@ +/obj/item/mod/control/pre_equipped + /// The skin we apply to the suit, defaults to the default_skin of the theme. + var/applied_skin + /// The MOD core we apply to the suit. + var/applied_core = /obj/item/mod/core/standard + /// The cell we apply to the core. Only applies to standard core suits. + var/applied_cell = /obj/item/stock_parts/cell/high + +/obj/item/mod/control/pre_equipped/Initialize(mapload, new_theme, new_skin, new_core) + new_skin = applied_skin + new_core = new applied_core(src) + if(istype(new_core, /obj/item/mod/core/standard)) + var/obj/item/mod/core/standard/cell_core = new_core + cell_core.cell = new applied_cell() + return ..() + +/obj/item/mod/control/pre_equipped/standard + initial_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/welding, + /obj/item/mod/module/flashlight, + ) + +/obj/item/mod/control/pre_equipped/engineering + theme = /datum/mod_theme/engineering + initial_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/welding, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/magboot, + ) + +/obj/item/mod/control/pre_equipped/atmospheric + theme = /datum/mod_theme/atmospheric + initial_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/welding, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/t_ray, + ) + +/obj/item/mod/control/pre_equipped/advanced + theme = /datum/mod_theme/advanced + applied_cell = /obj/item/stock_parts/cell/super + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/welding, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/jetpack, + ) + +/obj/item/mod/control/pre_equipped/loader + theme = /datum/mod_theme/loader + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/paper_dispenser, + /obj/item/mod/module/stamp, + ) + +/obj/item/mod/control/pre_equipped/mining + theme = /datum/mod_theme/mining + applied_core = /obj/item/mod/core/plasma + initial_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/gps, + /obj/item/mod/module/orebag, + /obj/item/mod/module/clamp, + /obj/item/mod/module/drill, + ) + +/obj/item/mod/control/pre_equipped/medical + theme = /datum/mod_theme/medical + initial_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/health_analyzer, + /obj/item/mod/module/quick_carry, + ) + +/obj/item/mod/control/pre_equipped/rescue + theme = /datum/mod_theme/rescue + applied_cell = /obj/item/stock_parts/cell/super + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/health_analyzer, + /obj/item/mod/module/injector, + ) + +/obj/item/mod/control/pre_equipped/research + theme = /datum/mod_theme/research + applied_cell = /obj/item/stock_parts/cell/super + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/welding, + /obj/item/mod/module/flashlight, + //obj/item/mod/module/circuit, + /obj/item/mod/module/t_ray, + ) + +/obj/item/mod/control/pre_equipped/security + theme = /datum/mod_theme/security + initial_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/flashlight, + ) + +/obj/item/mod/control/pre_equipped/safeguard + theme = /datum/mod_theme/safeguard + applied_cell = /obj/item/stock_parts/cell/super + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/jetpack, + /obj/item/mod/module/megaphone, + ) + +/obj/item/mod/control/pre_equipped/magnate + theme = /datum/mod_theme/magnate + applied_cell = /obj/item/stock_parts/cell/hyper + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/hat_stabilizer, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/jetpack/advanced, + ) + +/obj/item/mod/control/pre_equipped/traitor + theme = /datum/mod_theme/syndicate + applied_cell = /obj/item/stock_parts/cell/super + initial_modules = list( + /obj/item/mod/module/storage/syndicate, + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/jetpack, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/dna_lock, + ) + +/obj/item/mod/control/pre_equipped/traitor_elite + theme = /datum/mod_theme/elite + applied_cell = /obj/item/stock_parts/cell/bluespace + initial_modules = list( + /obj/item/mod/module/storage/syndicate, + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/dna_lock, + ) + +/obj/item/mod/control/pre_equipped/nuclear + theme = /datum/mod_theme/syndicate + applied_cell = /obj/item/stock_parts/cell/hyper + req_access = list(ACCESS_SYNDICATE) + initial_modules = list( + /obj/item/mod/module/storage/syndicate, + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/flashlight, + ) + +/obj/item/mod/control/pre_equipped/elite + theme = /datum/mod_theme/elite + applied_cell = /obj/item/stock_parts/cell/bluespace + req_access = list(ACCESS_SYNDICATE) + initial_modules = list( + /obj/item/mod/module/storage/syndicate, + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/flashlight, + ) + +/obj/item/mod/control/pre_equipped/elite/flamethrower + initial_modules = list( + /obj/item/mod/module/storage/syndicate, + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/thermal_regulator, + /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/flamethrower, + ) + +/obj/item/mod/control/pre_equipped/ninja + theme = /datum/mod_theme/ninja + applied_cell = /obj/item/stock_parts/cell/super + initial_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/noslip, + /obj/item/mod/module/status_readout, + /obj/item/mod/module/stealth/ninja, + /obj/item/mod/module/dispenser/ninja, + /obj/item/mod/module/dna_lock/reinforced, + /obj/item/mod/module/emp_shield/pulse, + ) + +/obj/item/mod/control/pre_equipped/prototype + theme = /datum/mod_theme/prototype + req_access = list(ACCESS_AWAY_GENERAL) + initial_modules = list( + /obj/item/mod/module/storage, + /obj/item/mod/module/welding, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/tether, + ) + +/obj/item/mod/control/pre_equipped/responsory + theme = /datum/mod_theme/responsory + applied_cell = /obj/item/stock_parts/cell/hyper + req_access = list(ACCESS_CENT_GENERAL) + initial_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/welding, + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/flashlight, + ) + /// The insignia type, insignias show what sort of member of the ERT you're dealing with. + var/insignia_type = /obj/item/mod/module/insignia + /// Additional module we add, as a treat. + var/additional_module = /obj/item/mod/module + +/obj/item/mod/control/pre_equipped/responsory/Initialize(mapload, new_theme, new_skin, new_core) + initial_modules.Insert(1, insignia_type) + initial_modules.Add(additional_module) + return ..() + +/obj/item/mod/control/pre_equipped/responsory/commander + insignia_type = /obj/item/mod/module/insignia/commander + additional_module = /obj/item/mod/module/power_kick + +/obj/item/mod/control/pre_equipped/responsory/security + insignia_type = /obj/item/mod/module/insignia/security + additional_module = /obj/item/mod/module/megaphone + +/obj/item/mod/control/pre_equipped/responsory/engineer + insignia_type = /obj/item/mod/module/insignia/engineer + additional_module = /obj/item/mod/module/magboot + +/obj/item/mod/control/pre_equipped/responsory/medic + insignia_type = /obj/item/mod/module/insignia/medic + additional_module = /obj/item/mod/module/quick_carry + +/obj/item/mod/control/pre_equipped/responsory/janitor + insignia_type = /obj/item/mod/module/insignia/janitor + additional_module = /obj/item/mod/module/clamp + +/obj/item/mod/control/pre_equipped/responsory/chaplain + insignia_type = /obj/item/mod/module/insignia/chaplain + additional_module = /obj/item/mod/module/injector + +/obj/item/mod/control/pre_equipped/apocryphal + theme = /datum/mod_theme/apocryphal + applied_cell = /obj/item/stock_parts/cell/bluespace + req_access = list(ACCESS_CENT_SPECOPS) + initial_modules = list( + /obj/item/mod/module/storage/bluespace, + /obj/item/mod/module/welding, + /obj/item/mod/module/emp_shield/advanced, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/jetpack, + ) + +/obj/item/mod/control/pre_equipped/corporate + theme = /datum/mod_theme/corporate + applied_core = /obj/item/mod/core/infinite + req_access = list(ACCESS_CENT_SPECOPS) + initial_modules = list( + /obj/item/mod/module/storage/bluespace, + /obj/item/mod/module/hat_stabilizer, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/emp_shield/advanced, + ) + +/*obj/item/mod/control/pre_equipped/chrono + theme = /datum/mod_theme/chrono + applied_core = /obj/item/mod/core/infinite + initial_modules = list( + /obj/item/mod/module/eradication_lock, + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/timeline_jumper, + /obj/item/mod/module/timestopper, + /obj/item/mod/module/rewinder, + /obj/item/mod/module/tem, + /obj/item/mod/module/anomaly_locked/kinesis/plus, + )*/ + +/obj/item/mod/control/pre_equipped/debug + theme = /datum/mod_theme/debug + applied_core = /obj/item/mod/core/infinite + initial_modules = list( + /obj/item/mod/module/storage/bluespace, + /obj/item/mod/module/welding, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/tether, + /obj/item/mod/module/injector, + ) + +/obj/item/mod/control/pre_equipped/administrative + theme = /datum/mod_theme/administrative + applied_core = /obj/item/mod/core/infinite + initial_modules = list( + /obj/item/mod/module/storage/bluespace, + /obj/item/mod/module/emp_shield/advanced, + /obj/item/mod/module/welding, + /obj/item/mod/module/stealth/ninja, + /obj/item/mod/module/quick_carry/advanced, + /obj/item/mod/module/magboot/advanced, + /obj/item/mod/module/jetpack/advanced, + //obj/item/mod/module/anomaly_locked/kinesis/plus, + ) + +//these exist for the prefs menu +/obj/item/mod/control/pre_equipped/empty + +/obj/item/mod/control/pre_equipped/empty/syndicate + theme = /datum/mod_theme/syndicate + +/obj/item/mod/control/pre_equipped/empty/elite + theme = /datum/mod_theme/elite + +/obj/item/mod/control/pre_equipped/empty/ninja + theme = /datum/mod_theme/ninja + +INITIALIZE_IMMEDIATE(/obj/item/mod/control/pre_equipped/empty) diff --git a/code/modules/mod/mod_ui.dm b/code/modules/mod/mod_ui.dm new file mode 100644 index 000000000000..3bfa930dea7e --- /dev/null +++ b/code/modules/mod/mod_ui.dm @@ -0,0 +1,86 @@ +/obj/item/mod/control/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "MODsuit", name) + ui.open() + +/obj/item/mod/control/ui_data(mob/user) + var/data = list() + data["interface_break"] = interface_break + data["malfunctioning"] = malfunctioning + data["open"] = open + data["active"] = active + data["locked"] = locked + data["complexity"] = complexity + data["selected_module"] = selected_module?.name + data["wearer_name"] = wearer ? (wearer.get_authentification_name("Unknown") || "Unknown") : "No Occupant" + data["wearer_job"] = wearer ? wearer.get_assignment("Unknown", "Unknown", FALSE) : "No Job" + //data[JOB_AI] = ai?.name + data["core"] = core?.name + data["charge"] = get_charge_percent() + data["modules"] = list() + for(var/obj/item/mod/module/module as anything in modules) + var/list/module_data = list( + "module_name" = module.name, + "description" = module.desc, + "module_type" = module.module_type, + "module_active" = module.active, + "pinned" = module.pinned_to[user], + "idle_power" = module.idle_power_cost, + "active_power" = module.active_power_cost, + "use_power" = module.use_power_cost, + "module_complexity" = module.complexity, + "cooldown_time" = module.cooldown_time, + "cooldown" = round(COOLDOWN_TIMELEFT(module, cooldown_timer), 1 SECONDS), + "id" = module.tgui_id, + "ref" = REF(module), + "configuration_data" = module.get_configuration() + ) + module_data += module.add_ui_data() + data["modules"] += list(module_data) + return data + +/obj/item/mod/control/ui_static_data(mob/user) + var/data = list() + data["ui_theme"] = ui_theme + data["control"] = name + data["complexity_max"] = complexity_max + data["helmet"] = helmet?.name + data["chestplate"] = chestplate?.name + data["gauntlets"] = gauntlets?.name + data["boots"] = boots?.name + return data + +/obj/item/mod/control/ui_act(action, params) + . = ..() + if(.) + return + if(locked && !allowed(usr)) + balloon_alert(usr, "insufficient access!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + if(malfunctioning && prob(75)) + balloon_alert(usr, "button malfunctions!") + return + switch(action) + if("lock") + locked = !locked + balloon_alert(usr, "[locked ? "locked" : "unlocked"]!") + if("activate") + toggle_activate(usr) + if("select") + var/obj/item/mod/module/module = locate(params["ref"]) in modules + if(!module) + return + module.on_select() + if("configure") + var/obj/item/mod/module/module = locate(params["ref"]) in modules + if(!module) + return + module.configure_edit(params["key"], params["value"]) + if("pin") + var/obj/item/mod/module/module = locate(params["ref"]) in modules + if(!module) + return + module.pin(usr) + return TRUE diff --git a/code/modules/mod/modules/_module.dm b/code/modules/mod/modules/_module.dm new file mode 100644 index 000000000000..7264066e5d1a --- /dev/null +++ b/code/modules/mod/modules/_module.dm @@ -0,0 +1,399 @@ +///MOD Module - A special device installed in a MODsuit allowing the suit to do new stuff. +/obj/item/mod/module + name = "MOD module" + icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' + icon_state = "module" + /// If it can be removed + var/removable = TRUE + /// If it's passive, togglable, usable or active + var/module_type = MODULE_PASSIVE + /// Is the module active + var/active = FALSE + /// How much space it takes up in the MOD + var/complexity = 0 + /// Power use when idle + var/idle_power_cost = DEFAULT_CHARGE_DRAIN * 0 + /// Power use when active + var/active_power_cost = DEFAULT_CHARGE_DRAIN * 0 + /// Power use when used, we call it manually + var/use_power_cost = DEFAULT_CHARGE_DRAIN * 0 + /// ID used by their TGUI + var/tgui_id + /// Linked MODsuit + var/obj/item/mod/control/mod + /// If we're an active module, what item are we? + var/obj/item/device + /// Overlay given to the user when the module is inactive + var/overlay_state_inactive + /// Overlay given to the user when the module is active + var/overlay_state_active + /// Overlay given to the user when the module is used, lasts until cooldown finishes + var/overlay_state_use + /// Icon file for the overlay. + var/overlay_icon_file = 'icons/mob/clothing/modsuit/mod_modules.dmi' + /// Does the overlay use the control unit's colors? + var/use_mod_colors = FALSE + /// What modules are we incompatible with? + var/list/incompatible_modules = list() + /// Cooldown after use + var/cooldown_time = 0 + /// The mouse button needed to use this module + var/used_signal + /// List of REF()s mobs we are pinned to, linked with their action buttons + var/list/pinned_to = list() + /// If we're allowed to use this module while phased out. + var/allowed_in_phaseout = FALSE + /// If we're allowed to use this module while the suit is disabled. + var/allowed_inactive = FALSE + /// Timer for the cooldown + COOLDOWN_DECLARE(cooldown_timer) + +/obj/item/mod/module/Initialize(mapload) + . = ..() + if(module_type != MODULE_ACTIVE) + return + if(ispath(device)) + device = new device(src) + ADD_TRAIT(device, TRAIT_NODROP, MOD_TRAIT) + RegisterSignal(device, COMSIG_PARENT_QDELETING, PROC_REF(on_device_deletion)) + RegisterSignal(src, COMSIG_ATOM_EXITED, PROC_REF(on_exit)) + +/obj/item/mod/module/Destroy() + mod?.uninstall(src) + if(device) + UnregisterSignal(device, COMSIG_PARENT_QDELETING) + QDEL_NULL(device) + return ..() + +/obj/item/mod/module/examine(mob/user) + . = ..() + if(HAS_TRAIT(user, TRAIT_DIAGNOSTIC_HUD)) + . += span_notice("Complexity level: [complexity]") + + +/// Called when the module is selected from the TGUI, radial or the action button +/obj/item/mod/module/proc/on_select() + if(((!mod.active || mod.activating) && !allowed_inactive) || module_type == MODULE_PASSIVE) + if(mod.wearer) + balloon_alert(mod.wearer, "not active!") + return + if(module_type != MODULE_USABLE) + if(active) + on_deactivation() + else + on_activation() + else + on_use() + SEND_SIGNAL(mod, COMSIG_MOD_MODULE_SELECTED, src) + +/// Called when the module is activated +/obj/item/mod/module/proc/on_activation() + if(!COOLDOWN_FINISHED(src, cooldown_timer)) + balloon_alert(mod.wearer, "on cooldown!") + return FALSE + if(!mod.active || mod.activating || !mod.get_charge()) + balloon_alert(mod.wearer, "unpowered!") + return FALSE + if(!allowed_in_phaseout && istype(mod.wearer.loc, /obj/effect/dummy/phased_mob)) + //specifically a to_chat because the user is phased out. + to_chat(mod.wearer, span_warning("You cannot activate this right now.")) + return FALSE + if(SEND_SIGNAL(src, COMSIG_MODULE_TRIGGERED) & MOD_ABORT_USE) + return FALSE + if(module_type == MODULE_ACTIVE) + if(mod.selected_module && !mod.selected_module.on_deactivation(display_message = FALSE)) + return FALSE + mod.selected_module = src + if(device) + if(mod.wearer.put_in_hands(device)) + balloon_alert(mod.wearer, "[device] extended") + RegisterSignal(mod.wearer, COMSIG_ATOM_EXITED, PROC_REF(on_exit)) + RegisterSignal(mod.wearer, COMSIG_KB_MOB_DROPITEM_DOWN, PROC_REF(dropkey)) + else + balloon_alert(mod.wearer, "can't extend [device]!") + mod.wearer.transferItemToLoc(device, src, force = TRUE) + return FALSE + else + var/used_button = MIDDLE_CLICK + update_signal(used_button) + balloon_alert(mod.wearer, "[src] activated, [used_button]-click to use") + active = TRUE + COOLDOWN_START(src, cooldown_timer, cooldown_time) + mod.wearer.update_inv_back(mod.slot_flags) + SEND_SIGNAL(src, COMSIG_MODULE_ACTIVATED) + return TRUE + +/// Called when the module is deactivated +/obj/item/mod/module/proc/on_deactivation(display_message = TRUE, deleting = FALSE) + active = FALSE + if(module_type == MODULE_ACTIVE) + mod.selected_module = null + if(display_message) + balloon_alert(mod.wearer, device ? "[device] retracted" : "[src] deactivated") + if(device) + mod.wearer.transferItemToLoc(device, src, force = TRUE) + UnregisterSignal(mod.wearer, COMSIG_ATOM_EXITED) + UnregisterSignal(mod.wearer, COMSIG_KB_MOB_DROPITEM_DOWN) + else + UnregisterSignal(mod.wearer, used_signal) + used_signal = null + mod.wearer.update_inv_back(mod.slot_flags) + SEND_SIGNAL(src, COMSIG_MODULE_DEACTIVATED) + return TRUE + +/// Called when the module is used +/obj/item/mod/module/proc/on_use() + if(!COOLDOWN_FINISHED(src, cooldown_timer)) + balloon_alert(mod.wearer, "on cooldown!") + return FALSE + if(!check_power(use_power_cost)) + balloon_alert(mod.wearer, "not enough charge!") + return FALSE + if(!allowed_in_phaseout && istype(mod.wearer.loc, /obj/effect/dummy/phased_mob)) + //specifically a to_chat because the user is phased out. + to_chat(mod.wearer, span_warning("You cannot activate this right now.")) + return FALSE + if(SEND_SIGNAL(src, COMSIG_MODULE_TRIGGERED) & MOD_ABORT_USE) + return FALSE + COOLDOWN_START(src, cooldown_timer, cooldown_time) + addtimer(CALLBACK(mod.wearer, TYPE_PROC_REF(/mob, update_inv_back), mod.slot_flags), cooldown_time+1) //need to run it a bit after the cooldown starts to avoid conflicts + mod.wearer.update_inv_back(mod.slot_flags) + SEND_SIGNAL(src, COMSIG_MODULE_USED) + return TRUE + +/// Called when an activated module without a device is used +/obj/item/mod/module/proc/on_select_use(atom/target) + if(mod.wearer.incapacitated(IGNORE_GRAB)) + return FALSE + mod.wearer.face_atom(target) + if(!on_use()) + return FALSE + return TRUE + +/// Called when an activated module without a device is active and the user alt/middle-clicks +/obj/item/mod/module/proc/on_special_click(mob/source, atom/target) + SIGNAL_HANDLER + on_select_use(target) + return COMSIG_MOB_CANCEL_CLICKON + +/// Called on the MODsuit's process +/obj/item/mod/module/proc/on_process(delta_time) + if(active) + if(!drain_power(active_power_cost * delta_time)) + on_deactivation() + return FALSE + on_active_process(delta_time) + else + drain_power(idle_power_cost * delta_time) + return TRUE + +/// Called on the MODsuit's process if it is an active module +/obj/item/mod/module/proc/on_active_process(delta_time) + return + +/// Called from MODsuit's install() proc, so when the module is installed. +/obj/item/mod/module/proc/on_install() + return + +/// Called from MODsuit's uninstall() proc, so when the module is uninstalled. +/obj/item/mod/module/proc/on_uninstall(deleting = FALSE) + return + +/// Called when the MODsuit is activated +/obj/item/mod/module/proc/on_suit_activation() + return + +/// Called when the MODsuit is deactivated +/obj/item/mod/module/proc/on_suit_deactivation(deleting = FALSE) + return + +/// Called when the MODsuit is equipped +/obj/item/mod/module/proc/on_equip() + return + +/// Called when the MODsuit is unequipped +/obj/item/mod/module/proc/on_unequip() + return + +/// Drains power from the suit charge +/obj/item/mod/module/proc/drain_power(amount) + if(!check_power(amount)) + return FALSE + mod.subtract_charge(amount) + mod.update_charge_alert() + return TRUE + +/// Checks if there is enough power in the suit +/obj/item/mod/module/proc/check_power(amount) + return mod.check_charge(amount) + +/// Adds additional things to the MODsuit ui_data() +/obj/item/mod/module/proc/add_ui_data() + return list() + +/// Creates a list of configuring options for this module +/obj/item/mod/module/proc/get_configuration() + return list() + +/// Generates an element of the get_configuration list with a display name, type and value +/obj/item/mod/module/proc/add_ui_configuration(display_name, type, value, list/values) + return list("display_name" = display_name, "type" = type, "value" = value, "values" = values) + +/// Receives configure edits from the TGUI and edits the vars +/obj/item/mod/module/proc/configure_edit(key, value) + return + +/// Called when the device moves to a different place on active modules +/obj/item/mod/module/proc/on_exit(datum/source, atom/movable/part, direction) + SIGNAL_HANDLER + + if(!active) + return + if(part.loc == src) + return + if(part.loc == mod.wearer) + return + if(part == device) + on_deactivation(display_message = FALSE) + +/// Called when the device gets deleted on active modules +/obj/item/mod/module/proc/on_device_deletion(datum/source) + SIGNAL_HANDLER + + if(source == device) + device = null + qdel(src) + +/// Generates an icon to be used for the suit's worn overlays +/obj/item/mod/module/proc/generate_worn_overlay(mod_layer) + . = list() + if(!mod.active) + return + var/used_overlay + if(overlay_state_use && !COOLDOWN_FINISHED(src, cooldown_timer)) + used_overlay = overlay_state_use + else if(overlay_state_active && active) + used_overlay = overlay_state_active + else if(overlay_state_inactive) + used_overlay = overlay_state_inactive + else + return + var/mutable_appearance/module_icon = mutable_appearance(overlay_icon_file, used_overlay, layer = mod_layer + 0.1) + if(!use_mod_colors) + module_icon.appearance_flags |= RESET_COLOR + . += module_icon + +/// Updates the signal used by active modules to be activated +/obj/item/mod/module/proc/update_signal(value) + switch(value) + if(MIDDLE_CLICK) + mod.selected_module.used_signal = COMSIG_MOB_MIDDLECLICKON + if(ALT_CLICK) + mod.selected_module.used_signal = COMSIG_MOB_ALTCLICKON + RegisterSignal(mod.wearer, mod.selected_module.used_signal, TYPE_PROC_REF(/obj/item/mod/module, on_special_click)) + +/// Pins the module to the user's action buttons +/obj/item/mod/module/proc/pin(mob/user) + var/datum/action/item_action/mod/pinned_module/existing_action = pinned_to[REF(user)] + if(existing_action) + mod.remove_item_action(existing_action) + return + + var/datum/action/item_action/mod/pinned_module/new_action = new(mod, src, user) + mod.add_item_action(new_action) + +/// On drop key, concels a device item. +/obj/item/mod/module/proc/dropkey(mob/living/user) + SIGNAL_HANDLER + + if(user.get_active_held_item() != device) + return + on_deactivation() + return COMSIG_KB_ACTIVATED + +///Anomaly Locked - Causes the module to not function without an anomaly. +/obj/item/mod/module/anomaly_locked + name = "MOD anomaly locked module" + desc = "A form of a module, locked behind an anomalous core to function." + incompatible_modules = list(/obj/item/mod/module/anomaly_locked) + /// The core item the module runs off. + var/obj/item/assembly/signaler/anomaly/core + /// Accepted types of anomaly cores. + var/list/accepted_anomalies = list(/obj/item/assembly/signaler/anomaly) + /// If this one starts with a core in. + var/prebuilt = FALSE + +/obj/item/mod/module/anomaly_locked/Initialize(mapload) + . = ..() + if(!prebuilt || !length(accepted_anomalies)) + return + var/core_path = pick(accepted_anomalies) + core = new core_path(src) + update_icon_state() + +/obj/item/mod/module/anomaly_locked/Destroy() + QDEL_NULL(core) + return ..() + +/obj/item/mod/module/anomaly_locked/examine(mob/user) + . = ..() + if(!length(accepted_anomalies)) + return + if(core) + . += span_notice("There is a [core.name] installed in it. You could remove it with a screwdriver...") + else + var/list/core_list = list() + for(var/path in accepted_anomalies) + var/atom/core_path = path + core_list += initial(core_path.name) + . += span_notice("You need to insert \a [english_list(core_list, and_text = " or ")] for this module to function.") + +/obj/item/mod/module/anomaly_locked/on_select() + if(!core) + balloon_alert(mod.wearer, "no core!") + return + return ..() + +/obj/item/mod/module/anomaly_locked/on_process(delta_time) + . = ..() + if(!core) + return FALSE + +/obj/item/mod/module/anomaly_locked/on_active_process(delta_time) + if(!core) + return FALSE + return TRUE + +/obj/item/mod/module/anomaly_locked/attackby(obj/item/item, mob/living/user, params) + if(item.type in accepted_anomalies) + if(core) + balloon_alert(user, "core already in!") + return + if(!user.transferItemToLoc(item, src)) + return + core = item + balloon_alert(user, "core installed") + playsound(src, 'sound/machines/click.ogg', 30, TRUE) + update_icon_state() + else + return ..() + +/obj/item/mod/module/anomaly_locked/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(!core) + balloon_alert(user, "no core!") + return + balloon_alert(user, "removing core...") + if(!do_after(user, 3 SECONDS, target = src)) + balloon_alert(user, "interrupted!") + return + balloon_alert(user, "core removed") + core.forceMove(drop_location()) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(core) + core = null + update_icon_state() + +/obj/item/mod/module/anomaly_locked/update_icon_state() + icon_state = initial(icon_state) + (core ? "-core" : "") + return ..() diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm new file mode 100644 index 000000000000..33edd75e173f --- /dev/null +++ b/code/modules/mod/modules/modules_antag.dm @@ -0,0 +1,398 @@ +//Antag modules for MODsuits + +///Armor Booster - Grants your suit more armor and speed in exchange for EVA protection. Also acts as a welding screen. +/obj/item/mod/module/armor_booster + name = "MOD armor booster module" + desc = "A retrofitted series of retractable armor plates, allowing the suit to function as essentially power armor, \ + giving the user incredible protection against conventional firearms, or everyday attacks in close-quarters. \ + However, the additional plating cannot deploy alongside parts of the suit used for vacuum sealing, \ + so this extra armor provides zero ability for extravehicular activity while deployed." + icon_state = "armor_booster" + module_type = MODULE_TOGGLE + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + removable = TRUE + incompatible_modules = list(/obj/item/mod/module/armor_booster, /obj/item/mod/module/welding) + cooldown_time = 0.5 SECONDS + overlay_state_inactive = "module_armorbooster_off" + overlay_state_active = "module_armorbooster_on" + use_mod_colors = TRUE + /// Whether or not this module removes pressure protection. + var/remove_pressure_protection = TRUE + /// Speed added to the control unit. + var/speed_added = 0.5 + /// Speed that we actually added. + var/actual_speed_added = 0 + /// Armor values added to the suit parts. + var/list/armor_values = list("melee" = 25, "bullet" = 30, "laser" = 15, "energy" = 15) + /// List of parts of the suit that are spaceproofed, for giving them back the pressure protection. + var/list/spaceproofed = list() + +/obj/item/mod/module/armor_booster/on_suit_activation() + mod.helmet.flash_protect = FLASH_PROTECTION_WELDER + +/obj/item/mod/module/armor_booster/on_suit_deactivation(deleting = FALSE) + if(deleting) + return + mod.helmet.flash_protect = initial(mod.helmet.flash_protect) + +/obj/item/mod/module/armor_booster/on_activation() + . = ..() + if(!.) + return + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + actual_speed_added = max(0, min(mod.slowdown_active, speed_added)) + mod.slowdown -= actual_speed_added + mod.wearer.update_equipment_speed_mods() + var/list/parts = mod.mod_parts + mod + for(var/obj/item/part as anything in parts) + part.armor = part.armor.modifyRating(arglist(armor_values)) + if(!remove_pressure_protection || !isclothing(part)) + continue + var/obj/item/clothing/clothing_part = part + if(clothing_part.clothing_flags & STOPSPRESSUREDAMAGE) + clothing_part.clothing_flags &= ~STOPSPRESSUREDAMAGE + spaceproofed[clothing_part] = TRUE + +/obj/item/mod/module/armor_booster/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + if(!deleting) + playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + mod.slowdown += actual_speed_added + mod.wearer.update_equipment_speed_mods() + var/list/parts = mod.mod_parts + mod + var/list/removed_armor = armor_values.Copy() + for(var/armor_type in removed_armor) + removed_armor[armor_type] = -removed_armor[armor_type] + for(var/obj/item/part as anything in parts) + part.armor = part.armor.modifyRating(arglist(removed_armor)) + if(!remove_pressure_protection || !isclothing(part)) + continue + var/obj/item/clothing/clothing_part = part + if(spaceproofed[clothing_part]) + clothing_part.clothing_flags |= STOPSPRESSUREDAMAGE + spaceproofed = list() + +/obj/item/mod/module/armor_booster/generate_worn_overlay(mutable_appearance/standing) + overlay_state_inactive = "[initial(overlay_state_inactive)]-[mod.skin]" + overlay_state_active = "[initial(overlay_state_active)]-[mod.skin]" + return ..() + +///Energy Shield - Gives you a rechargeable energy shield that nullifies attacks. +/obj/item/mod/module/energy_shield + name = "MOD energy shield module" + desc = "A personal, protective forcefield typically seen in military applications. \ + This advanced deflector shield is essentially a scaled down version of those seen on starships, \ + and the power cost can be an easy indicator of this. However, it is capable of blocking nearly any incoming attack, \ + though with its' low amount of separate charges, the user remains mortal." + icon_state = "energy_shield" + complexity = 3 + idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 + use_power_cost = DEFAULT_CHARGE_DRAIN * 2 + incompatible_modules = list(/obj/item/mod/module/energy_shield) + /// Max charges of the shield. + var/max_charges = 3 + /// The time it takes for the first charge to recover. + var/recharge_start_delay = 20 SECONDS + /// How much time it takes for charges to recover after they started recharging. + var/charge_increment_delay = 1 SECONDS + /// How much charge is recovered per recovery. + var/charge_recovery = 1 + /// Whether or not this shield can lose multiple charges. + var/lose_multiple_charges = FALSE + /// The item path to recharge this shielkd. + var/recharge_path = null + /// The icon file of the shield. + var/shield_icon_file = 'icons/effects/effects.dmi' + /// The icon_state of the shield. + var/shield_icon = "shield-red" + /// Charges the shield should start with. + var/charges + +/obj/item/mod/module/energy_shield/Initialize(mapload) + . = ..() + charges = max_charges + +/obj/item/mod/module/energy_shield/on_suit_activation() + mod.AddComponent(/datum/component/shielded, max_charges = max_charges, recharge_start_delay = recharge_start_delay, charge_increment_delay = charge_increment_delay, \ + charge_recovery = charge_recovery, lose_multiple_charges = lose_multiple_charges, recharge_path = recharge_path, starting_charges = charges, shield_icon_file = shield_icon_file, shield_icon = shield_icon) + RegisterSignal(mod.wearer, COMSIG_HUMAN_CHECK_SHIELDS, PROC_REF(shield_reaction)) + +/obj/item/mod/module/energy_shield/on_suit_deactivation(deleting = FALSE) + var/datum/component/shielded/shield = mod.GetComponent(/datum/component/shielded) + charges = shield.current_charges + qdel(shield) + UnregisterSignal(mod.wearer, COMSIG_HUMAN_CHECK_SHIELDS) + +/obj/item/mod/module/energy_shield/proc/shield_reaction(mob/living/carbon/human/owner, atom/movable/hitby, damage = 0, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0) + if(SEND_SIGNAL(mod, COMSIG_ITEM_HIT_REACT, owner, hitby, attack_text, 0, damage, attack_type) & COMPONENT_HIT_REACTION_BLOCK) + drain_power(use_power_cost) + return SHIELD_BLOCK + return NONE + +///Insignia - Gives you a skin specific stripe. +/obj/item/mod/module/insignia + name = "MOD insignia module" + desc = "Despite the existence of IFF systems, radio communique, and modern methods of deductive reasoning involving \ + the wearer's own eyes, colorful paint jobs remain a popular way for different factions in the galaxy to display who \ + they are. This system utilizes a series of tiny moving paint sprayers to both apply and remove different \ + color patterns to and from the suit." + icon_state = "insignia" + removable = FALSE + incompatible_modules = list(/obj/item/mod/module/insignia) + overlay_state_inactive = "module_insignia" + +/obj/item/mod/module/insignia/generate_worn_overlay(mutable_appearance/standing) + overlay_state_inactive = "[initial(overlay_state_inactive)]-[mod.skin]" + . = ..() + for(var/mutable_appearance/appearance as anything in .) + appearance.color = color + +/obj/item/mod/module/insignia/commander + color = "#4980a5" + +/obj/item/mod/module/insignia/security + color = "#b30d1e" + +/obj/item/mod/module/insignia/engineer + color = "#e9c80e" + +/obj/item/mod/module/insignia/medic + color = "#ebebf5" + +/obj/item/mod/module/insignia/janitor + color = "#7925c7" + +/obj/item/mod/module/insignia/chaplain + color = "#f0a00c" + +///Anti Slip - Prevents you from slipping on water. +/obj/item/mod/module/noslip + name = "MOD anti slip module" + desc = "These are a modified variant of standard magnetic boots, utilizing piezoelectric crystals on the soles. \ + The two plates on the bottom of the boots automatically extend and magnetize as the user steps; \ + a pull that's too weak to offer them the ability to affix to a hull, but just strong enough to \ + protect against the fact that you didn't read the wet floor sign. Honk Co. has come out numerous times \ + in protest of these modules being legal." + icon_state = "noslip" + complexity = 1 + idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.1 + incompatible_modules = list(/obj/item/mod/module/noslip) + +/obj/item/mod/module/noslip/on_suit_activation() + mod.boots.clothing_flags |= NOSLIP + +/obj/item/mod/module/noslip/on_suit_deactivation(deleting = FALSE) + mod.boots.clothing_flags &= ~NOSLIP + +//Bite of 87 Springlock - Equips faster, disguised as DNA lock. +/obj/item/mod/module/springlock/bite_of_87 + +/obj/item/mod/module/springlock/bite_of_87/Initialize(mapload) + . = ..() + var/obj/item/mod/module/dna_lock/the_dna_lock_behind_the_slaughter = /obj/item/mod/module/dna_lock + name = initial(the_dna_lock_behind_the_slaughter.name) + desc = initial(the_dna_lock_behind_the_slaughter.desc) + icon_state = initial(the_dna_lock_behind_the_slaughter.icon_state) + complexity = initial(the_dna_lock_behind_the_slaughter.complexity) + use_power_cost = initial(the_dna_lock_behind_the_slaughter.use_power_cost) + +/obj/item/mod/module/springlock/bite_of_87/on_install() + mod.activation_step_time *= 0.1 + +/obj/item/mod/module/springlock/bite_of_87/on_uninstall(deleting = FALSE) + mod.activation_step_time *= 10 + +/obj/item/mod/module/springlock/bite_of_87/on_suit_activation() + ..() + if(SSevents.holidays && SSevents.holidays[APRIL_FOOLS] || prob(1)) + mod.set_mod_color("#b17f00") + mod.wearer.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) // turns purple guy purple + mod.wearer.add_atom_colour("#704b96", FIXED_COLOUR_PRIORITY) + +///Flamethrower - Launches fire across the area. +/obj/item/mod/module/flamethrower + name = "MOD flamethrower module" + desc = "A custom-manufactured flamethrower, used to burn through your path. Burn well." + icon_state = "flamethrower" + module_type = MODULE_ACTIVE + complexity = 3 + use_power_cost = DEFAULT_CHARGE_DRAIN * 3 + incompatible_modules = list(/obj/item/mod/module/flamethrower) + cooldown_time = 2.5 SECONDS + overlay_state_inactive = "module_flamethrower" + overlay_state_active = "module_flamethrower_on" + +/obj/item/mod/module/flamethrower/on_select_use(atom/target) + . = ..() + if(!.) + return + var/obj/projectile/flame = new /obj/projectile/bullet/incendiary(mod.wearer.loc) + flame.preparePixelProjectile(target, mod.wearer) + flame.firer = mod.wearer + playsound(src, 'sound/items/modsuit/flamethrower.ogg', 75, TRUE) + INVOKE_ASYNC(flame, TYPE_PROC_REF(/obj/projectile, fire)) + drain_power(use_power_cost) + +///Power kick - Lets the user launch themselves at someone to kick them. +/obj/item/mod/module/power_kick + name = "MOD power kick module" + desc = "This module uses high-power myomer to generate an incredible amount of energy, transferred into the power of a kick." + icon_state = "power_kick" + module_type = MODULE_ACTIVE + removable = FALSE + use_power_cost = DEFAULT_CHARGE_DRAIN*5 + incompatible_modules = list(/obj/item/mod/module/power_kick) + cooldown_time = 5 SECONDS + /// Damage on kick. + var/damage = 20 + /// The wound bonus of the kick. + var/wounding_power = 35 + /// How long we knockdown for on the kick. + var/knockdown_time = 2 SECONDS + +/obj/item/mod/module/power_kick/on_select_use(atom/target) + . = ..() + if(!.) + return + mod.wearer.visible_message(span_warning("[mod.wearer] starts charging a kick!"), \ + blind_message = span_hear("You hear a charging sound.")) + playsound(src, 'sound/items/modsuit/loader_charge.ogg', 75, TRUE) + balloon_alert(mod.wearer, "you start charging...") + animate(mod.wearer, 0.3 SECONDS, pixel_z = 16, flags = ANIMATION_RELATIVE, easing = SINE_EASING|EASE_OUT) + addtimer(CALLBACK(mod.wearer, TYPE_PROC_REF(/atom, SpinAnimation), 3, 2), 0.3 SECONDS) + if(!do_after(mod.wearer, 1 SECONDS, target = mod)) + animate(mod.wearer, 0.2 SECONDS, pixel_z = -16, flags = ANIMATION_RELATIVE, easing = SINE_EASING|EASE_OUT) + return + animate(mod.wearer) + drain_power(use_power_cost) + playsound(src, 'sound/items/modsuit/loader_launch.ogg', 75, TRUE) + var/angle = get_angle(mod.wearer, target) + 180 + mod.wearer.transform = mod.wearer.transform.Turn(angle) + RegisterSignal(mod.wearer, COMSIG_MOVABLE_IMPACT, PROC_REF(on_throw_impact)) + mod.wearer.throw_at(target, range = 7, speed = 2, thrower = mod.wearer, spin = FALSE, gentle = TRUE, callback = CALLBACK(src, PROC_REF(on_throw_end), mod.wearer, -angle)) + +/obj/item/mod/module/power_kick/proc/on_throw_end(mob/user, angle) + if(!user) + return + user.transform = user.transform.Turn(angle) + animate(user, 0.2 SECONDS, pixel_z = -16, flags = ANIMATION_RELATIVE, easing = SINE_EASING|EASE_OUT) + +/obj/item/mod/module/power_kick/proc/on_throw_impact(mob/living/source, obj/target, datum/thrownthing/thrownthing) + SIGNAL_HANDLER + + UnregisterSignal(source, COMSIG_MOVABLE_IMPACT) + if(!mod?.wearer) + return + if(isliving(target)) + var/mob/living/living_target = target + living_target.apply_damage(damage, BRUTE, mod.wearer.zone_selected) + living_target.Knockdown(knockdown_time) + else if(target.obj_integrity) + target.take_damage(damage, BRUTE) + else + return + mod.wearer.do_attack_animation(target, ATTACK_EFFECT_SMASH) + +///Chameleon - lets the suit disguise as any item that would fit on that slot. +/obj/item/mod/module/chameleon + name = "MOD chameleon module" + desc = "A module using chameleon technology to disguise the suit as another object." + icon_state = "chameleon" + module_type = MODULE_USABLE + complexity = 2 + incompatible_modules = list(/obj/item/mod/module/chameleon) + cooldown_time = 0.5 SECONDS + allowed_inactive = TRUE + /// A list of all the items the suit can disguise as. + var/list/possible_disguises = list() + /// The path of the item we're disguised as. + var/obj/item/current_disguise + +/obj/item/mod/module/chameleon/on_install() + var/list/all_disguises = sortList(subtypesof(get_path_by_slot(mod.slot_flags)), GLOBAL_PROC_REF(cmp_typepaths_asc)) + for(var/clothing_path in all_disguises) + var/obj/item/clothing = clothing_path + if(!initial(clothing.icon_state)) + continue + var/chameleon_item_name = "[initial(clothing.name)] ([initial(clothing.icon_state)])" + possible_disguises[chameleon_item_name] = clothing_path + +/obj/item/mod/module/chameleon/on_uninstall(deleting = FALSE) + if(current_disguise) + return_look() + possible_disguises = null + +/obj/item/mod/module/chameleon/on_use() + if(mod.active || mod.activating) + balloon_alert(mod.wearer, "suit active!") + return + . = ..() + if(!.) + return + if(current_disguise) + return_look() + return + var/picked_name = tgui_input_list(mod.wearer, "Select look to change into", "Chameleon Settings", possible_disguises) + if(!possible_disguises[picked_name] || mod.active || mod.activating) + return + current_disguise = possible_disguises[picked_name] + update_look() + +/obj/item/mod/module/chameleon/proc/update_look() + mod.name = initial(current_disguise.name) + mod.desc = initial(current_disguise.desc) + mod.icon_state = initial(current_disguise.icon_state) + mod.icon = initial(current_disguise.icon) + mod.mob_overlay_icon = initial(current_disguise.mob_overlay_icon) + mod.alternate_worn_layer = initial(current_disguise.alternate_worn_layer) + mod.lefthand_file = initial(current_disguise.lefthand_file) + mod.righthand_file = initial(current_disguise.righthand_file) + //mod.mob_overlay_state = initial(current_disguise.mob_overlay_state) + mod.item_state = initial(current_disguise.item_state) + mod.wearer.update_inv_back(mod.slot_flags) + RegisterSignal(mod, COMSIG_MOD_ACTIVATE, PROC_REF(return_look)) + +/obj/item/mod/module/chameleon/proc/return_look() + mod.name = "[mod.theme.name] [initial(mod.name)]" + mod.desc = "[initial(mod.desc)] [mod.theme.desc]" + mod.icon_state = "[mod.skin]-[initial(mod.icon_state)]" + var/list/mod_skin = mod.theme.skins[mod.skin] + mod.icon = mod_skin[MOD_ICON_OVERRIDE] || 'icons/obj/clothing/modsuit/mod_clothing.dmi' + mod.mob_overlay_icon = mod_skin[MOD_WORN_ICON_OVERRIDE] || 'icons/mob/clothing/modsuit/mod_clothing.dmi' + mod.alternate_worn_layer = mod_skin[CONTROL_LAYER] + mod.lefthand_file = initial(mod.lefthand_file) + mod.righthand_file = initial(mod.righthand_file) + //___callbacknewmod.worn_icon_state = null + mod.item_state = null + mod.wearer.update_inv_back(mod.slot_flags) + current_disguise = null + UnregisterSignal(mod, COMSIG_MOD_ACTIVATE) + +///Plate Compression - Compresses the suit to normal size +/obj/item/mod/module/plate_compression + name = "MOD plate compression module" + desc = "A module that keeps the suit in a very tightly fit state, lowering the overall size. \ + Due to the pressure on all the parts, typical storage modules do not fit." + icon_state = "plate_compression" + complexity = 2 + incompatible_modules = list(/obj/item/mod/module/plate_compression, /obj/item/mod/module/storage) + /// The size we set the suit to. + var/new_size = WEIGHT_CLASS_NORMAL + /// The suit's size before the module is installed. + var/old_size + +/obj/item/mod/module/plate_compression/on_install() + old_size = mod.w_class + mod.w_class = new_size + +/obj/item/mod/module/plate_compression/on_uninstall(deleting = FALSE) + mod.w_class = old_size + old_size = null + if(!mod.loc) + return + var/datum/component/storage/concrete/holding_storage = mod.GetComponent(/datum/component/storage/concrete) + if(!holding_storage || holding_storage.max_combined_w_class >= mod.w_class) + return + mod.forceMove(drop_location()) diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm new file mode 100644 index 000000000000..4905b3ae691f --- /dev/null +++ b/code/modules/mod/modules/modules_engineering.dm @@ -0,0 +1,169 @@ +//Engineering modules for MODsuits + +///Welding Protection - Makes the helmet protect from flashes and welding. +/obj/item/mod/module/welding + name = "MOD welding protection module" + desc = "A module installed into the visor of the suit, this projects a \ + polarized, holographic overlay in front of the user's eyes. It's rated high enough for \ + immunity against extremities such as spot and arc welding, solar eclipses, and handheld flashlights." + icon_state = "welding" + complexity = 1 + incompatible_modules = list(/obj/item/mod/module/welding, /obj/item/mod/module/armor_booster) + overlay_state_inactive = "module_welding" + +/obj/item/mod/module/welding/on_suit_activation() + mod.helmet.flash_protect = FLASH_PROTECTION_WELDER + +/obj/item/mod/module/welding/on_suit_deactivation(deleting = FALSE) + if(deleting) + return + mod.helmet.flash_protect = initial(mod.helmet.flash_protect) + +///T-Ray Scan - Scans the terrain for undertile objects. +/obj/item/mod/module/t_ray + name = "MOD t-ray scan module" + desc = "A module installed into the visor of the suit, allowing the user to use a pulse of terahertz radiation \ + to essentially echolocate things beneath the floor, mostly cables and pipes. \ + A staple of atmospherics work, and counter-smuggling work." + icon_state = "tray" + module_type = MODULE_TOGGLE + complexity = 1 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 + incompatible_modules = list(/obj/item/mod/module/t_ray) + cooldown_time = 0.5 SECONDS + /// T-ray scan range. + var/range = 4 + +/obj/item/mod/module/t_ray/on_active_process(delta_time) + t_ray_scan(mod.wearer, 0.8 SECONDS, range) + +///Magnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips. +/obj/item/mod/module/magboot + name = "MOD magnetic stability module" + desc = "These are powerful electromagnets fitted into the suit's boots, allowing users both \ + excellent traction no matter the condition indoors, and to essentially hitch a ride on the exterior of a hull. \ + However, these basic models do not feature computerized systems to automatically toggle them on and off, \ + so numerous users report a certain stickiness to their steps." + icon_state = "magnet" + module_type = MODULE_TOGGLE + complexity = 2 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 + incompatible_modules = list(/obj/item/mod/module/magboot) + cooldown_time = 0.5 SECONDS + /// Slowdown added onto the suit. + var/slowdown_active = 0.5 + +/obj/item/mod/module/magboot/on_activation() + . = ..() + if(!.) + return + ADD_TRAIT(mod.wearer, TRAIT_NOSLIPWATER, MOD_TRAIT) + mod.slowdown += slowdown_active + mod.wearer.update_gravity(mod.wearer.has_gravity()) + mod.wearer.update_equipment_speed_mods() + +/obj/item/mod/module/magboot/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + REMOVE_TRAIT(mod.wearer, TRAIT_NOSLIPWATER, MOD_TRAIT) + mod.slowdown -= slowdown_active + mod.wearer.update_gravity(mod.wearer.has_gravity()) + mod.wearer.update_equipment_speed_mods() + +/obj/item/mod/module/magboot/advanced + name = "MOD advanced magnetic stability module" + removable = FALSE + complexity = 0 + slowdown_active = 0 + +///Emergency Tether - Shoots a grappling hook projectile in 0g that throws the user towards it. +/obj/item/mod/module/tether + name = "MOD emergency tether module" + desc = "A custom-built grappling-hook powered by a winch capable of hauling the user. \ + While some older models of cargo-oriented grapples have capacities of a few tons, \ + these are only capable of working in zero-gravity environments, a blessing to some Engineers." + icon_state = "tether" + module_type = MODULE_ACTIVE + complexity = 3 + use_power_cost = DEFAULT_CHARGE_DRAIN + incompatible_modules = list(/obj/item/mod/module/tether) + cooldown_time = 1.5 SECONDS + +/obj/item/mod/module/tether/on_use() + if(mod.wearer.has_gravity(get_turf(src))) + balloon_alert(mod.wearer, "too much gravity!!") + playsound(src, 'sound/weapons/gun/general/dry_fire.ogg', 25, TRUE) + return FALSE + return ..() + +/obj/item/mod/module/tether/on_select_use(atom/target) + . = ..() + if(!.) + return + var/obj/projectile/tether = new /obj/projectile/tether(mod.wearer.loc) + tether.preparePixelProjectile(target, mod.wearer) + tether.firer = mod.wearer + playsound(src, 'sound/weapons/batonextend.ogg', 25, TRUE) + INVOKE_ASYNC(tether, TYPE_PROC_REF(/obj/projectile, fire)) + drain_power(use_power_cost) + +/obj/projectile/tether + name = "tether" + icon_state = "tether_projectile" + icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' + damage = 0 + nodamage = TRUE + range = 10 + hitsound = 'sound/weapons/batonextend.ogg' + suppressed = SUPPRESSED_VERY + //hit_threshhold = LATTICE_LAYER + /// Reference to the beam following the projectile. + var/line + +/obj/projectile/tether/fire(setAngle) + if(firer) + line = firer.Beam(src, "line", 'icons/obj/clothing/modsuit/mod_modules.dmi') + ..() + +/obj/projectile/tether/on_hit(atom/target) + . = ..() + if(firer) + firer.throw_at(target, 10, 1, firer, FALSE, FALSE, null, MOVE_FORCE_NORMAL, TRUE) + +/obj/projectile/tether/Destroy() + QDEL_NULL(line) + return ..() + +///Mister - Sprays water over an area. +/obj/item/mod/module/mister + name = "MOD water mister module" + desc = "A module containing a mister, able to spray it over areas." + icon_state = "mister" + module_type = MODULE_ACTIVE + complexity = 2 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + device = /obj/item/reagent_containers/spray/mister + incompatible_modules = list(/obj/item/mod/module/mister) + cooldown_time = 0.5 SECONDS + /// Volume of our reagent holder. + var/volume = 500 + +/obj/item/mod/module/mister/Initialize(mapload) + create_reagents(volume, OPENCONTAINER) + return ..() + +///Resin Mister - Sprays resin over an area. +/obj/item/mod/module/mister/atmos + name = "MOD resin mister module" + desc = "An atmospheric resin mister, able to fix up areas quickly." + device = /obj/item/extinguisher/mini/nozzle/mod + volume = 250 + +/obj/item/mod/module/mister/atmos/Initialize(mapload) + . = ..() + reagents.add_reagent(/datum/reagent/water, volume) + +/obj/item/extinguisher/mini/nozzle/mod + name = "MOD atmospheric mister" + desc = "An atmospheric resin mister with three modes, mounted as a module." diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm new file mode 100644 index 000000000000..17f72271b312 --- /dev/null +++ b/code/modules/mod/modules/modules_general.dm @@ -0,0 +1,441 @@ +//General modules for MODsuits + +///Ion Jetpack - Lets the user fly freely through space using battery charge. +/obj/item/mod/module/jetpack + name = "MOD ion jetpack module" + desc = "A series of electric thrusters installed across the suit, this is a module highly anticipated by trainee Engineers. \ + Rather than using gasses for combustion thrust, these jets are capable of accelerating ions using \ + charge from the suit's charge. Some say this isn't Nakamura Engineering's first foray into jet-enabled suits." + icon_state = "jetpack" + module_type = MODULE_TOGGLE + complexity = 3 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 + use_power_cost = DEFAULT_CHARGE_DRAIN + incompatible_modules = list(/obj/item/mod/module/jetpack) + cooldown_time = 0.5 SECONDS + overlay_state_inactive = "module_jetpack" + overlay_state_active = "module_jetpack_on" + /// Do we stop the wearer from gliding in space. + var/stabilizers = FALSE + /// Do we give the wearer a speed buff. + var/full_speed = FALSE + var/datum/callback/get_mover + var/datum/callback/check_on_move + +/obj/item/mod/module/jetpack/Initialize(mapload) + . = ..() + get_mover = CALLBACK(src, PROC_REF(get_user)) + check_on_move = CALLBACK(src, PROC_REF(allow_thrust)) + refresh_jetpack() + +/obj/item/mod/module/jetpack/Destroy() + get_mover = null + check_on_move = null + return ..() + +/obj/item/mod/module/jetpack/proc/refresh_jetpack() + AddComponent(/datum/component/jetpack, stabilizers, COMSIG_MODULE_TRIGGERED, COMSIG_MODULE_DEACTIVATED, MOD_ABORT_USE, get_mover, check_on_move, /datum/effect_system/trail_follow/ion/grav_allowed) + +/obj/item/mod/module/jetpack/proc/set_stabilizers(new_stabilizers) + if(stabilizers == new_stabilizers) + return + stabilizers = new_stabilizers + refresh_jetpack() + +/obj/item/mod/module/jetpack/on_activation() + . = ..() + if(!.) + return + if(full_speed) + mod.wearer.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) + +/obj/item/mod/module/jetpack/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(full_speed) + mod.wearer.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) + +/obj/item/mod/module/jetpack/get_configuration() + . = ..() + .["stabilizers"] = add_ui_configuration("Stabilizers", "bool", stabilizers) + +/obj/item/mod/module/jetpack/configure_edit(key, value) + switch(key) + if("stabilizers") + set_stabilizers(text2num(value)) + +/obj/item/mod/module/jetpack/proc/allow_thrust(use_fuel = TRUE) + if(!use_fuel) + return check_power(use_power_cost) + if(!drain_power(use_power_cost)) + return FALSE + return TRUE + +/obj/item/mod/module/jetpack/proc/get_user() + return mod.wearer + +/obj/item/mod/module/jetpack/advanced + name = "MOD advanced ion jetpack module" + desc = "An improvement on the previous model of electric thrusters. This one achieves higher speeds through \ + mounting of more jets and a red paint applied on it." + icon_state = "jetpack_advanced" + overlay_state_inactive = "module_jetpackadv" + overlay_state_active = "module_jetpackadv_on" + full_speed = TRUE + +///Eating Apparatus - Lets the user eat/drink with the suit on. +/obj/item/mod/module/mouthhole + name = "MOD eating apparatus module" + desc = "A favorite by Miners, this modification to the helmet utilizes a nanotechnology barrier infront of the mouth \ + to allow eating and drinking while retaining protection and atmosphere. However, it won't free you from masks, \ + and it will do nothing to improve the taste of a goliath steak." + icon_state = "apparatus" + complexity = 1 + incompatible_modules = list(/obj/item/mod/module/mouthhole) + overlay_state_inactive = "module_apparatus" + /// Former flags of the helmet. + var/former_flags = NONE + /// Former visor flags of the helmet. + var/former_visor_flags = NONE + +/obj/item/mod/module/mouthhole/on_install() + former_flags = mod.helmet.flags_cover + former_visor_flags = mod.helmet.visor_flags_cover + mod.helmet.flags_cover &= ~HEADCOVERSMOUTH|PEPPERPROOF + mod.helmet.visor_flags_cover &= ~HEADCOVERSMOUTH|PEPPERPROOF + +/obj/item/mod/module/mouthhole/on_uninstall(deleting = FALSE) + if(deleting) + return + mod.helmet.flags_cover |= former_flags + mod.helmet.visor_flags_cover |= former_visor_flags + +///EMP Shield - Protects the suit from EMPs. +/obj/item/mod/module/emp_shield + name = "MOD EMP shield module" + desc = "A field inhibitor installed into the suit, protecting it against feedback such as \ + electromagnetic pulses that would otherwise damage the electronic systems of the suit or devices on the wearer. \ + However, it will take from the suit's power to do so. Luckily, your PDA already has one of these." + icon_state = "empshield" + complexity = 1 + idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + incompatible_modules = list(/obj/item/mod/module/emp_shield) + +/obj/item/mod/module/emp_shield/on_install() + mod.AddElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_WIRES|EMP_PROTECT_CONTENTS) + +/obj/item/mod/module/emp_shield/on_uninstall(deleting = FALSE) + mod.RemoveElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_WIRES|EMP_PROTECT_CONTENTS) + +/obj/item/mod/module/emp_shield/advanced + name = "MOD advanced EMP shield module" + desc = "An enhnanced field inhibitor installed into the suit, protecting it against feedback such as \ + electromagnetic pulses that would otherwise damage the electronic systems of the suit or devices on the wearer \ + including augmentations. However, it will take from the suit's power to do so. Luckily, your PDA already has one of these." + complexity = 2 + +/obj/item/mod/module/emp_shield/advanced/on_suit_activation() + mod.wearer.AddElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_CONTENTS) + +/obj/item/mod/module/emp_shield/advanced/on_suit_deactivation(deleting) + mod.wearer.RemoveElement(/datum/element/empprotection, EMP_PROTECT_SELF|EMP_PROTECT_CONTENTS) + +///Flashlight - Gives the suit a customizable flashlight. +/obj/item/mod/module/flashlight + name = "MOD flashlight module" + desc = "A simple pair of flashlights installed on the left and right sides of the helmet." + icon_state = "flashlight" + module_type = MODULE_TOGGLE + complexity = 1 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + incompatible_modules = list(/obj/item/mod/module/flashlight) + cooldown_time = 0.5 SECONDS + overlay_state_inactive = "module_light" + light_system = MOVABLE_LIGHT_DIRECTIONAL + light_color = COLOR_WHITE + light_range = 4 + light_power = 1 + light_on = FALSE + /// Charge drain per range amount. + var/base_power = DEFAULT_CHARGE_DRAIN * 0.1 + +/obj/item/mod/module/flashlight/on_activation() + . = ..() + if(!.) + return + set_light_flags(light_flags | LIGHT_ATTACHED) + set_light_on(active) + active_power_cost = base_power * light_range + +/obj/item/mod/module/flashlight/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + set_light_flags(light_flags & ~LIGHT_ATTACHED) + set_light_on(active) + +/obj/item/mod/module/flashlight/on_process(delta_time) + active_power_cost = base_power * light_range + return ..() + +/obj/item/mod/module/flashlight/generate_worn_overlay(mutable_appearance/standing) + . = ..() + if(!active) + return + var/mutable_appearance/light_icon = mutable_appearance(overlay_icon_file, "module_light_on", layer = standing + 0.2) + light_icon.appearance_flags = RESET_COLOR + light_icon.color = light_color + . += light_icon + +///Dispenser - Dispenses an item after a time passes. +/obj/item/mod/module/dispenser + name = "MOD burger dispenser module" + desc = "A rare piece of technology reverse-engineered from a prototype found in a Donk Corporation vessel. \ + This can draw incredible amounts of power from the suit's charge to create edible organic matter in the \ + palm of the wearer's glove; however, research seemed to have entirely stopped at burgers. \ + Notably, all attempts to get it to dispense Earl Grey tea have failed." + icon_state = "dispenser" + module_type = MODULE_USABLE + complexity = 3 + use_power_cost = DEFAULT_CHARGE_DRAIN * 2 + incompatible_modules = list(/obj/item/mod/module/dispenser) + cooldown_time = 5 SECONDS + /// Path we dispense. + var/dispense_type = /obj/item/reagent_containers/food/snacks/burger + /// Time it takes for us to dispense. + var/dispense_time = 0 SECONDS + +/obj/item/mod/module/dispenser/on_use() + . = ..() + if(!.) + return + if(dispense_time && !do_after(mod.wearer, dispense_time, target = mod)) + balloon_alert(mod.wearer, "interrupted!") + return FALSE + var/obj/item/dispensed = new dispense_type(mod.wearer.loc) + mod.wearer.put_in_hands(dispensed) + balloon_alert(mod.wearer, "[dispensed] dispensed") + playsound(src, 'sound/machines/click.ogg', 100, TRUE) + drain_power(use_power_cost) + return dispensed + +///Thermal Regulator - Regulates the wearer's core temperature. +/obj/item/mod/module/thermal_regulator + name = "MOD thermal regulator module" + desc = "Advanced climate control, using an inner body glove interwoven with thousands of tiny, \ + flexible cooling lines. This circulates coolant at various user-controlled temperatures, \ + ensuring they're comfortable; even if they're some that like it hot." + icon_state = "regulator" + module_type = MODULE_TOGGLE + complexity = 2 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + incompatible_modules = list(/obj/item/mod/module/thermal_regulator) + cooldown_time = 0.5 SECONDS + /// The temperature we are regulating to. + var/temperature_setting = BODYTEMP_NORMAL + /// Minimum temperature we can set. + var/min_temp = 293.15 + /// Maximum temperature we can set. + var/max_temp = 318.15 + +/obj/item/mod/module/thermal_regulator/get_configuration() + . = ..() + .["temperature_setting"] = add_ui_configuration("Temperature", "number", temperature_setting - T0C) + +/obj/item/mod/module/thermal_regulator/configure_edit(key, value) + switch(key) + if("temperature_setting") + temperature_setting = clamp(value + T0C, min_temp, max_temp) + +/obj/item/mod/module/thermal_regulator/on_active_process(delta_time) + mod.wearer.adjust_bodytemperature(get_temp_change_amount((temperature_setting - mod.wearer.bodytemperature), 0.08 * delta_time)) + +///DNA Lock - Prevents people without the set DNA from activating the suit. +/obj/item/mod/module/dna_lock + name = "MOD DNA lock module" + desc = "A module which engages with the various locks and seals tied to the suit's systems, \ + enabling it to only be worn by someone corresponding with the user's exact DNA profile; \ + however, this incredibly sensitive module is shorted out by EMPs. Luckily, cloning has been outlawed." + icon_state = "dnalock" + module_type = MODULE_USABLE + complexity = 2 + use_power_cost = DEFAULT_CHARGE_DRAIN * 3 + incompatible_modules = list(/obj/item/mod/module/dna_lock/*, obj/item/mod/module/eradication_lock*/) + cooldown_time = 0.5 SECONDS + /// The DNA we lock with. + var/dna = null + +/obj/item/mod/module/dna_lock/on_install() + RegisterSignal(mod, COMSIG_MOD_ACTIVATE, PROC_REF(on_mod_activation)) + RegisterSignal(mod, COMSIG_MOD_MODULE_REMOVAL, PROC_REF(on_mod_removal)) + RegisterSignal(mod, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp)) + RegisterSignal(mod, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag)) + +/obj/item/mod/module/dna_lock/on_uninstall(deleting = FALSE) + UnregisterSignal(mod, COMSIG_MOD_ACTIVATE) + UnregisterSignal(mod, COMSIG_MOD_MODULE_REMOVAL) + UnregisterSignal(mod, COMSIG_ATOM_EMP_ACT) + UnregisterSignal(mod, COMSIG_ATOM_EMAG_ACT) + +/obj/item/mod/module/dna_lock/on_use() + . = ..() + if(!.) + return + dna = mod.wearer.dna.unique_enzymes + balloon_alert(mod.wearer, "dna updated") + drain_power(use_power_cost) + +/obj/item/mod/module/dna_lock/emp_act(severity) + . = ..() + if(. & EMP_PROTECT_SELF) + return + on_emp(src, severity) + +/obj/item/mod/module/dna_lock/emag_act(mob/user, obj/item/card/emag/emag_card) + . = ..() + on_emag(src, user, emag_card) + +/obj/item/mod/module/dna_lock/proc/dna_check(mob/user) + if(!iscarbon(user)) + return FALSE + var/mob/living/carbon/carbon_user = user + if(!dna || (carbon_user.has_dna() && carbon_user.dna.unique_enzymes == dna)) + return TRUE + balloon_alert(user, "dna locked!") + return FALSE + +/obj/item/mod/module/dna_lock/proc/on_emp(datum/source, severity) + SIGNAL_HANDLER + + dna = null + +/obj/item/mod/module/dna_lock/proc/on_emag(datum/source, mob/user, obj/item/card/emag/emag_card) + SIGNAL_HANDLER + + dna = null + +/obj/item/mod/module/dna_lock/proc/on_mod_activation(datum/source, mob/user) + SIGNAL_HANDLER + + if(!dna_check(user)) + return MOD_CANCEL_ACTIVATE + +/obj/item/mod/module/dna_lock/proc/on_mod_removal(datum/source, mob/user) + SIGNAL_HANDLER + + if(!dna_check(user)) + return MOD_CANCEL_REMOVAL + +///Plasma Stabilizer - Prevents plasmamen from igniting in the suit +/obj/item/mod/module/plasma_stabilizer + name = "MOD plasma stabilizer module" + desc = "This system essentially forms an atmosphere of its' own inside the suit, \ + safely ejecting oxygen from the inside and allowing the wearer, a plasmaman, \ + to have their internal plasma circulate around them somewhat like a sauna. \ + This prevents them from self-igniting, and leads to greater comfort overall. \ + The purple glass of the visor seems to be constructed for nostalgic purposes." + icon_state = "plasma_stabilizer" + complexity = 1 + idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + incompatible_modules = list(/obj/item/mod/module/plasma_stabilizer) + overlay_state_inactive = "module_plasma" + +/obj/item/mod/module/plasma_stabilizer/on_equip() + ADD_TRAIT(mod.wearer, TRAIT_NOSELFIGNITION_HEAD_ONLY, MOD_TRAIT) + +/obj/item/mod/module/plasma_stabilizer/on_unequip() + REMOVE_TRAIT(mod.wearer, TRAIT_NOSELFIGNITION_HEAD_ONLY, MOD_TRAIT) + + +//Finally, https://pipe.miroware.io/5b52ba1d94357d5d623f74aa/mspfa/Nuke%20Ops/Panels/0648.gif can be real: +///Hat Stabilizer - Allows displaying a hat over the MOD-helmet, à la plasmamen helmets. +/obj/item/mod/module/hat_stabilizer + name = "MOD hat stabilizer module" + desc = "A simple set of deployable stands, directly atop one's head; \ + these will deploy under a select few hats to keep them from falling off, allowing them to be worn atop the sealed helmet. \ + You still need to take the hat off your head while the helmet deploys, though. \ + This is a must-have for Nanotrasen Captains, enabling them to show off their authoritative hat even while in their MODsuit." + icon_state = "hat_holder" + incompatible_modules = list(/obj/item/mod/module/hat_stabilizer) + /*Intentionally left inheriting 0 complexity and removable = TRUE; + even though it comes inbuilt into the Magnate/Corporate MODS and spawns in maints, I like the idea of stealing them*/ + /// Currently "stored" hat. No armor or function will be inherited, ONLY the icon. + var/obj/item/clothing/head/attached_hat + /// Whitelist of attachable hats, read note in Initialize() below this line + var/static/list/attachable_hats_list + +/obj/item/mod/module/hat_stabilizer/Initialize(mapload) + . = ..() + attachable_hats_list = typecacheof( + //List of attachable hats. Make sure these and their subtypes are all tested, so they dont appear janky. + //This list should also be gimmicky, so captains can have fun. I.E. the Santahat, Pirate hat, Tophat, Chefhat... + //Yes, I said it, the captain should have fun. + list( + /obj/item/clothing/head/caphat, + /obj/item/clothing/head/crown, + /obj/item/clothing/head/centhat, + /obj/item/clothing/head/pirate, + /obj/item/clothing/head/santa, + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/festive, + /obj/item/clothing/head/that, + /obj/item/clothing/head/nursehat, + /obj/item/clothing/head/chefhat, + /obj/item/clothing/head/papersack, + )) + +/obj/item/mod/module/hat_stabilizer/on_suit_activation() + RegisterSignal(mod.helmet, COMSIG_PARENT_EXAMINE, PROC_REF(add_examine)) + RegisterSignal(mod.helmet, COMSIG_PARENT_ATTACKBY, PROC_REF(place_hat)) + RegisterSignal(mod.helmet, COMSIG_CLICK_ALT, PROC_REF(remove_hat)) + +/obj/item/mod/module/hat_stabilizer/on_suit_deactivation(deleting = FALSE) + if(deleting) + return + if(attached_hat) //knock off the helmet if its on their head. Or, technically, auto-rightclick it for them; that way it saves us code, AND gives them the bubble + remove_hat(src, mod.wearer) + UnregisterSignal(mod.helmet, COMSIG_PARENT_EXAMINE) + UnregisterSignal(mod.helmet, COMSIG_PARENT_ATTACKBY) + UnregisterSignal(mod.helmet, COMSIG_CLICK_ALT) + +/obj/item/mod/module/hat_stabilizer/proc/add_examine(datum/source, mob/user, list/base_examine) + SIGNAL_HANDLER + if(attached_hat) + base_examine += span_notice("There's \a [attached_hat] placed on the helmet. Alt-click to remove it.") + else + base_examine += span_notice("There's nothing placed on the helmet. Yet.") + +/obj/item/mod/module/hat_stabilizer/proc/place_hat(datum/source, obj/item/hitting_item, mob/user) + SIGNAL_HANDLER + if(!istype(hitting_item, /obj/item/clothing/head)) + return + if(!mod.active) + balloon_alert(user, "suit must be active!") + return + if(!is_type_in_typecache(hitting_item, attachable_hats_list)) + balloon_alert(user, "this hat won't fit!") + return + if(attached_hat) + balloon_alert(user, "hat already attached!") + return + if(mod.wearer.transferItemToLoc(hitting_item, src, force = FALSE, silent = TRUE)) + attached_hat = hitting_item + balloon_alert(user, "hat attached, alt-click to remove") + mod.wearer.update_inv_back(mod.slot_flags) + +/obj/item/mod/module/hat_stabilizer/generate_worn_overlay() + . = ..() + if(attached_hat) + . += attached_hat.build_worn_icon(default_layer = ABOVE_MOB_LAYER, default_icon_file = 'icons/mob/clothing/head.dmi') + +/obj/item/mod/module/hat_stabilizer/proc/remove_hat(datum/source, mob/user) + SIGNAL_HANDLER + . = SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(!attached_hat) + return + attached_hat.forceMove(drop_location()) + if(user.put_in_active_hand(attached_hat)) + balloon_alert(user, "hat removed") + else + balloon_alert_to_viewers("the hat falls to the floor!") + attached_hat = null + mod.wearer.update_inv_back(mod.slot_flags) diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm new file mode 100644 index 000000000000..e735654ef2c5 --- /dev/null +++ b/code/modules/mod/modules/modules_maint.dm @@ -0,0 +1,148 @@ +//Maint modules for MODsuits + +///Springlock Mechanism - allows your modsuit to activate faster, but reagents are very dangerous. +/obj/item/mod/module/springlock + name = "MOD springlock module" + desc = "A module that spans the entire size of the MOD unit, sitting under the outer shell. \ + This mechanical exoskeleton pushes out of the way when the user enters and it helps in booting \ + up, but was taken out of modern suits because of the springlock's tendency to \"snap\" back \ + into place when exposed to humidity. You know what it's like to have an entire exoskeleton enter you?" + icon_state = "springlock" + complexity = 3 // it is inside every part of your suit, so + incompatible_modules = list(/obj/item/mod/module/springlock) + +/obj/item/mod/module/springlock/on_install() + mod.activation_step_time *= 0.5 + +/obj/item/mod/module/springlock/on_uninstall(deleting = FALSE) + mod.activation_step_time *= 2 + +/obj/item/mod/module/springlock/on_suit_activation() + RegisterSignal(mod.wearer, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_wearer_exposed)) + +/obj/item/mod/module/springlock/on_suit_deactivation(deleting = FALSE) + UnregisterSignal(mod.wearer, COMSIG_ATOM_EXPOSE_REAGENTS) + +///Signal fired when wearer is exposed to reagents +/obj/item/mod/module/springlock/proc/on_wearer_exposed(atom/source, list/reagents, datum/reagents/source_reagents, methods, volume_modifier, show_message) + SIGNAL_HANDLER + + if(!(methods & (VAPOR|PATCH|TOUCH))) + return //remove non-touch reagent exposure + to_chat(mod.wearer, span_danger("[src] makes an ominous click sound...")) + playsound(src, 'sound/items/modsuit/springlock.ogg', 75, TRUE) + addtimer(CALLBACK(src, PROC_REF(snap_shut)), rand(3 SECONDS, 5 SECONDS)) + RegisterSignal(mod, COMSIG_MOD_ACTIVATE, PROC_REF(on_activate_spring_block)) + +///Signal fired when wearer attempts to activate/deactivate suits +/obj/item/mod/module/springlock/proc/on_activate_spring_block(datum/source, user) + SIGNAL_HANDLER + + balloon_alert(user, "springlocks aren't responding...?") + return MOD_CANCEL_ACTIVATE + +///Delayed death proc of the suit after the wearer is exposed to reagents +/obj/item/mod/module/springlock/proc/snap_shut() + UnregisterSignal(mod, COMSIG_MOD_ACTIVATE) + if(!mod.wearer) //while there is a guaranteed user when on_wearer_exposed() fires, that isn't the same case for this proc + return + mod.wearer.visible_message("[src] inside [mod.wearer]'s [mod.name] snaps shut, mutilating the user inside!", span_userdanger("*SNAP*")) + mod.wearer.emote("scream") + playsound(mod.wearer, 'sound/effects/snap.ogg', 75, TRUE, frequency = 0.5) + playsound(mod.wearer, 'sound/effects/splat.ogg', 50, TRUE, frequency = 0.5) + mod.wearer.apply_damage(500, BRUTE, forced = TRUE, spread_damage = TRUE) //boggers, bogchamp, etc + if(!HAS_TRAIT(mod.wearer, TRAIT_NODEATH)) + mod.wearer.death() //just in case, for some reason, they're still alive + flash_color(mod.wearer, flash_color = "#FF0000", flash_time = 10 SECONDS) + +///Balloon Blower - Blows a balloon. +/obj/item/mod/module/balloon + name = "MOD balloon blower module" + desc = "A strange module invented years ago by some ingenious mimes. It blows balloons." + icon_state = "bloon" + module_type = MODULE_USABLE + complexity = 1 + use_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 + incompatible_modules = list(/obj/item/mod/module/balloon) + cooldown_time = 15 SECONDS + +/obj/item/mod/module/balloon/on_use() + . = ..() + if(!.) + return + if(!do_after(mod.wearer, 10 SECONDS, target = mod)) + return FALSE + mod.wearer.adjustOxyLoss(20) + playsound(src, 'sound/items/modsuit/inflate_bloon.ogg', 50, TRUE) + var/obj/item/toy/balloon/balloon = new(get_turf(src)) + mod.wearer.put_in_hands(balloon) + drain_power(use_power_cost) + +///Paper Dispenser - Dispenses (sometimes burning) paper sheets. +/obj/item/mod/module/paper_dispenser + name = "MOD paper dispenser module" + desc = "A simple module designed by the bureaucrats of Torch Bay. \ + It dispenses 'warm, clean, and crisp sheets of paper' onto a nearby table. Usually." + icon_state = "paper_maker" + module_type = MODULE_USABLE + complexity = 1 + use_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 + incompatible_modules = list(/obj/item/mod/module/paper_dispenser) + cooldown_time = 5 SECONDS + /// The total number of sheets created by this MOD. The more sheets, them more likely they set on fire. + var/num_sheets_dispensed = 0 + +/obj/item/mod/module/paper_dispenser/on_use() + . = ..() + if(!.) + return + if(!do_after(mod.wearer, 1 SECONDS, target = mod)) + return FALSE + + var/obj/item/paper/crisp_paper = new(get_turf(src)) + crisp_paper.desc = "It's crisp and warm to the touch. Must be fresh." + + var/obj/structure/table/nearby_table = locate() in range(1, mod.wearer) + playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE) + balloon_alert(mod.wearer, "dispensed paper[nearby_table ? " onto table":""]") + + mod.wearer.put_in_hands(crisp_paper) + if(nearby_table) + mod.wearer.transferItemToLoc(crisp_paper, nearby_table.drop_location(), silent = FALSE) + + // Up to a 30% chance to set the sheet on fire, +2% per sheet made + if(prob(min(num_sheets_dispensed * 2, 30))) + if(crisp_paper in mod.wearer.held_items) + mod.wearer.dropItemToGround(crisp_paper, force = TRUE) + crisp_paper.balloon_alert(mod.wearer, "pc load letter!") + crisp_paper.visible_message(span_warning("[crisp_paper] bursts into flames, it's too crisp!")) + crisp_paper.fire_act(1000, 100) + + drain_power(use_power_cost) + num_sheets_dispensed++ + + +///Stamper - Extends a stamp that can switch between accept/deny modes. +/obj/item/mod/module/stamp + name = "MOD stamper module" + desc = "A module installed into the wrist of the suit, this functions as a high-power stamp, \ + able to switch between accept and deny modes." + icon_state = "stamp" + module_type = MODULE_ACTIVE + complexity = 1 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + device = /obj/item/stamp/mod + incompatible_modules = list(/obj/item/mod/module/stamp) + cooldown_time = 0.5 SECONDS + +/obj/item/stamp/mod + name = "MOD electronic stamp" + desc = "A high-power stamp, able to switch between accept and deny mode when used." + +/obj/item/stamp/mod/attack_self(mob/user, modifiers) + . = ..() + if(icon_state == "stamp-ok") + icon_state = "stamp-deny" + else + icon_state = "stamp-ok" + balloon_alert(user, "switched mode") diff --git a/code/modules/mod/modules/modules_medical.dm b/code/modules/mod/modules/modules_medical.dm new file mode 100644 index 000000000000..798f065ffe7f --- /dev/null +++ b/code/modules/mod/modules/modules_medical.dm @@ -0,0 +1,110 @@ +//Medical modules for MODsuits + +#define HEALTH_SCAN "Health" +#define WOUND_SCAN "Wound" +#define CHEM_SCAN "Chemical" + +///Health Analyzer - Gives the user a ranged health analyzer and their health status in the panel. +/obj/item/mod/module/health_analyzer + name = "MOD health analyzer module" + desc = "A module installed into the glove of the suit. This is a high-tech biological scanning suite, \ + allowing the user indepth information on the vitals and injuries of others even at a distance, \ + all with the flick of the wrist. Data is displayed in a convenient package on HUD in the helmet, \ + but it's up to you to do something with it." + icon_state = "health" + module_type = MODULE_ACTIVE + complexity = 2 + use_power_cost = DEFAULT_CHARGE_DRAIN + incompatible_modules = list(/obj/item/mod/module/health_analyzer) + cooldown_time = 0.5 SECONDS + tgui_id = "health_analyzer" + /// Scanning mode, changes how we scan something. + var/mode = HEALTH_SCAN + /// List of all scanning modes. + var/static/list/modes = list(HEALTH_SCAN, WOUND_SCAN, CHEM_SCAN) + +/obj/item/mod/module/health_analyzer/add_ui_data() + . = ..() + .["userhealth"] = mod.wearer?.health || 0 + .["usermaxhealth"] = mod.wearer?.getMaxHealth() || 0 + .["userbrute"] = mod.wearer?.getBruteLoss() || 0 + .["userburn"] = mod.wearer?.getFireLoss() || 0 + .["usertoxin"] = mod.wearer?.getToxLoss() || 0 + .["useroxy"] = mod.wearer?.getOxyLoss() || 0 + +/obj/item/mod/module/health_analyzer/on_select_use(atom/target) + . = ..() + if(!.) + return + if(!isliving(target) || !mod.wearer.can_read(src)) + return + switch(mode) + if(HEALTH_SCAN) + healthscan(mod.wearer, target) + if(CHEM_SCAN) + chemscan(mod.wearer, target) + drain_power(use_power_cost) + +/obj/item/mod/module/health_analyzer/get_configuration() + . = ..() + .["mode"] = add_ui_configuration("Scan Mode", "list", mode, modes) + +/obj/item/mod/module/health_analyzer/configure_edit(key, value) + switch(key) + if("mode") + mode = value + +#undef HEALTH_SCAN +#undef WOUND_SCAN +#undef CHEM_SCAN + +///Quick Carry - Lets the user carry bodies quicker. +/obj/item/mod/module/quick_carry + name = "MOD quick carry module" + desc = "A suite of advanced servos, redirecting power from the suit's arms to help carry the wounded; \ + or simply for fun. However, Nanotrasen has locked the module's ability to assist in hand-to-hand combat." + icon_state = "carry" + complexity = 1 + idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + incompatible_modules = list(/obj/item/mod/module/quick_carry) + +/obj/item/mod/module/quick_carry/on_suit_activation() + ADD_TRAIT(mod.wearer, TRAIT_QUICK_CARRY, MOD_TRAIT) + +/obj/item/mod/module/quick_carry/on_suit_deactivation(deleting = FALSE) + REMOVE_TRAIT(mod.wearer, TRAIT_QUICK_CARRY, MOD_TRAIT) + +/obj/item/mod/module/quick_carry/advanced + name = "MOD advanced quick carry module" + removable = FALSE + complexity = 0 + +/obj/item/mod/module/quick_carry/on_suit_activation() + ADD_TRAIT(mod.wearer, TRAIT_QUICKER_CARRY, MOD_TRAIT) + ADD_TRAIT(mod.wearer, TRAIT_FASTMED, MOD_TRAIT) + +/obj/item/mod/module/quick_carry/on_suit_deactivation(deleting = FALSE) + REMOVE_TRAIT(mod.wearer, TRAIT_QUICKER_CARRY, MOD_TRAIT) + REMOVE_TRAIT(mod.wearer, TRAIT_FASTMED, MOD_TRAIT) + +///Injector - Gives the suit an extendable large-capacity piercing syringe. +/obj/item/mod/module/injector + name = "MOD injector module" + desc = "A module installed into the wrist of the suit, this functions as a high-capacity syringe, \ + with a tip fine enough to locate the emergency injection ports on any suit of armor, \ + penetrating it with ease. Even yours." + icon_state = "injector" + module_type = MODULE_ACTIVE + complexity = 1 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + device = /obj/item/reagent_containers/syringe/mod + incompatible_modules = list(/obj/item/mod/module/injector) + cooldown_time = 0.5 SECONDS + +/obj/item/reagent_containers/syringe/mod + name = "MOD injector syringe" + desc = "A high-capacity syringe, with a tip fine enough to locate \ + the emergency injection ports on any suit of armor, penetrating it with ease. Even yours." + amount_per_transfer_from_this = 30 + possible_transfer_amounts = list(5, 10, 15, 20, 30) + volume = 30 diff --git a/code/modules/mod/modules/modules_ninja.dm b/code/modules/mod/modules/modules_ninja.dm new file mode 100644 index 000000000000..767a229d98f5 --- /dev/null +++ b/code/modules/mod/modules/modules_ninja.dm @@ -0,0 +1,446 @@ +//Ninja modules for MODsuits + +///Cloaking - Lowers the user's visibility, can be interrupted by being touched or attacked. +/obj/item/mod/module/stealth + name = "MOD prototype cloaking module" + desc = "A complete retrofitting of the suit, this is a form of visual concealment tech employing esoteric technology \ + to bend light around the user, as well as mimetic materials to make the surface of the suit match the \ + surroundings based off sensor data. For some reason, this tech is rarely seen." + icon_state = "cloak" + module_type = MODULE_TOGGLE + complexity = 4 + active_power_cost = DEFAULT_CHARGE_DRAIN * 2 + use_power_cost = DEFAULT_CHARGE_DRAIN * 10 + incompatible_modules = list(/obj/item/mod/module/stealth) + cooldown_time = 5 SECONDS + /// Whether or not the cloak turns off on bumping. + var/bumpoff = TRUE + /// The alpha applied when the cloak is on. + var/stealth_alpha = 50 + +/obj/item/mod/module/stealth/on_activation() + . = ..() + if(!.) + return + if(bumpoff) + RegisterSignal(mod.wearer, COMSIG_LIVING_MOB_BUMP, PROC_REF(unstealth)) + RegisterSignal(mod.wearer, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, PROC_REF(on_unarmed_attack)) + RegisterSignal(mod.wearer, COMSIG_ATOM_BULLET_ACT, PROC_REF(on_bullet_act)) + RegisterSignal(mod.wearer, list(COMSIG_MOB_ITEM_ATTACK, COMSIG_PARENT_ATTACKBY, COMSIG_ATOM_ATTACK_HAND/*, COMSIG_ATOM_HITBY*/, COMSIG_ATOM_HULK_ATTACK, COMSIG_ATOM_ATTACK_PAW, COMSIG_CARBON_CUFF_ATTEMPTED), PROC_REF(unstealth)) + animate(mod.wearer, alpha = stealth_alpha, time = 1.5 SECONDS) + drain_power(use_power_cost) + +/obj/item/mod/module/stealth/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + if(bumpoff) + UnregisterSignal(mod.wearer, COMSIG_LIVING_MOB_BUMP) + UnregisterSignal(mod.wearer, list(COMSIG_HUMAN_MELEE_UNARMED_ATTACK, COMSIG_MOB_ITEM_ATTACK, COMSIG_PARENT_ATTACKBY, COMSIG_ATOM_ATTACK_HAND, COMSIG_ATOM_BULLET_ACT/*, COMSIG_ATOM_HITBY*/, COMSIG_ATOM_HULK_ATTACK, COMSIG_ATOM_ATTACK_PAW, COMSIG_CARBON_CUFF_ATTEMPTED)) + animate(mod.wearer, alpha = 255, time = 1.5 SECONDS) + +/obj/item/mod/module/stealth/proc/unstealth(datum/source) + SIGNAL_HANDLER + + to_chat(mod.wearer, span_warning("[src] gets discharged from contact!")) + do_sparks(2, TRUE, src) + drain_power(use_power_cost) + on_deactivation(display_message = TRUE, deleting = FALSE) + +/obj/item/mod/module/stealth/proc/on_unarmed_attack(datum/source, atom/target) + SIGNAL_HANDLER + + if(!isliving(target)) + return + unstealth(source) + +/obj/item/mod/module/stealth/proc/on_bullet_act(datum/source, obj/projectile/projectile) + SIGNAL_HANDLER + + if(projectile.nodamage) + return + unstealth(source) + +//Advanced Cloaking - Doesn't turf off on bump, less power drain, more stealthy. +/obj/item/mod/module/stealth/ninja + name = "MOD advanced cloaking module" + desc = "The latest in stealth technology, this module is a definite upgrade over previous versions. \ + The field has been tuned to be even more responsive and fast-acting, with enough stability to \ + continue operation of the field even if the user bumps into others. \ + The power draw has been reduced drastically, making this perfect for activities like \ + standing near sentry turrets for extended periods of time." + icon_state = "cloak_ninja" + bumpoff = FALSE + stealth_alpha = 20 + active_power_cost = DEFAULT_CHARGE_DRAIN + use_power_cost = DEFAULT_CHARGE_DRAIN * 5 + cooldown_time = 3 SECONDS + +///Camera Vision - Prevents flashes, blocks tracking. +/obj/item/mod/module/welding/camera_vision + name = "MOD camera vision module" + desc = "A module installed into the suit's helmet. This specialized piece of technology is built for subterfuge, \ + replacing the standard visor with a nanotech display; capable of displaying specialized imagery at \ + just the right frequency to jam all known forms of camera tracking and facial recognition, \ + as well as automatically dimming incoming flashes of light to protect the user's eyes. Become the unseen." + icon_state = "welding_camera" + removable = FALSE + complexity = 0 + overlay_state_inactive = null + +/obj/item/mod/module/welding/camera_vision/on_suit_activation() + . = ..() + RegisterSignal(mod.wearer, COMSIG_LIVING_CAN_TRACK, PROC_REF(can_track)) + +/obj/item/mod/module/welding/camera_vision/on_suit_deactivation(deleting = FALSE) + . = ..() + UnregisterSignal(mod.wearer, COMSIG_LIVING_CAN_TRACK) + +/obj/item/mod/module/welding/camera_vision/proc/can_track(datum/source, mob/user) + SIGNAL_HANDLER + + return COMPONENT_CANT_TRACK + +//Ninja Star Dispenser - Dispenses ninja stars. +/obj/item/mod/module/dispenser/ninja + name = "MOD ninja star dispenser module" + desc = "This piece of Spider Clan technology can exploit known energy-matter equivalence principles, \ + using the nanites already hosted in the wearer's suit to transmute into monomolecular shuriken. \ + While these lack the intense bleeding edge of conventional throwing stars, \ + they have been set to electrify fleeing targets; and branded with the Spider Clan symbol." + dispense_type = /obj/item/throwing_star/stamina + cooldown_time = 0.5 SECONDS + +///Hacker - This module hooks onto your right-clicks with empty hands and causes ninja actions. +/obj/item/mod/module/hacker + name = "MOD hacker module" + desc = "Built for one purpose, electronic warfare, this module is built into the hands. \ + Using near-field communication alongside precise electro-stimulation of the wires in machines, \ + this decker's dream is normally used to pass through doors like a phantom. \ + It's also capable of non-precise electro-stimulation of an assassin-saboteur's opponents on disarming attacks." + icon_state = "hacker" + removable = FALSE + incompatible_modules = list(/obj/item/mod/module/hacker) + /// Minimum amount of power we can drain in a single drain action + var/mindrain = 200 + /// Maximum amount of power we can drain in a single drain action + var/maxdrain = 400 + /// Whether or not the communication console hack was used to summon another antagonist. + var/communication_console_hack_success = FALSE + /// How many times the module has been used to force open doors. + var/door_hack_counter = 0 + ///Used for the research objective (see antagonist file) + var/datum/techweb/stored_research + +/obj/item/mod/module/hacker/on_suit_activation() + RegisterSignal(mod.wearer, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(hack)) + +/obj/item/mod/module/hacker/on_suit_deactivation(deleting = FALSE) + UnregisterSignal(mod.wearer, COMSIG_HUMAN_EARLY_UNARMED_ATTACK) + +/obj/item/mod/module/hacker/proc/hack(mob/living/carbon/human/source, atom/target, proximity, modifiers) + SIGNAL_HANDLER + + if(!LAZYACCESS(modifiers, RIGHT_CLICK) || !proximity) + return NONE + target.add_fingerprint(mod.wearer) + return target.ninjadrain_act(mod.wearer, src) + +/obj/item/mod/module/hacker/proc/charge_message(atom/drained_atom, drain_amount) + if(drain_amount) + to_chat(mod.wearer, span_notice("Получено [drain_amount] единиц энергии с [drained_atom].")) + else + to_chat(mod.wearer, span_warning("[drained_atom] истощен, необходимо найти другой источник питания!")) + +///Weapon Recall - Teleports your katana to you, prevents gun use. +/obj/item/mod/module/weapon_recall + name = "MOD weapon recall module" + desc = "The cornerstone of a clanmember's life as a blademaster, and a module symbolizing their eternal bond with their weapon. \ + This hooks to the micro bluespace drive inside an energy katana's handle, capable of recalling it to the user's \ + skilled hands wherever they are. However, those that make such a bond with their weapon are cursed to \ + fusing their existence with acts of combat, with a singular purpose; Cutting Down Their Opponent. \ + Their hand a hand that is cutting, their body a body that is cutting, their mind, a mind that is cutting. \ + Ranged weapons are forbidden." + icon_state = "recall" + removable = FALSE + module_type = MODULE_USABLE + use_power_cost = DEFAULT_CHARGE_DRAIN * 2 + incompatible_modules = list(/obj/item/mod/module/weapon_recall) + cooldown_time = 0.5 SECONDS + /// The item linked to the module that will get recalled. + var/obj/item/linked_weapon + /// The accepted typepath we can link to. + var/accepted_type = /obj/item/melee/sword/energy_katana + +/obj/item/mod/module/weapon_recall/on_suit_activation() + ADD_TRAIT(mod.wearer, TRAIT_NOGUNS, MOD_TRAIT) + +/obj/item/mod/module/weapon_recall/on_suit_deactivation(deleting = FALSE) + REMOVE_TRAIT(mod.wearer, TRAIT_NOGUNS, MOD_TRAIT) + +/obj/item/mod/module/weapon_recall/on_use() + . = ..() + if(!.) + return + if(!linked_weapon) + var/obj/item/weapon_to_link = mod.wearer.is_holding_item_of_type(accepted_type) + if(!weapon_to_link) + balloon_alert(mod.wearer, "can't locate weapon!") + return + set_weapon(weapon_to_link) + balloon_alert(mod.wearer, "[linked_weapon.name] linked") + return + if(linked_weapon in mod.wearer.get_all_contents()) + balloon_alert(mod.wearer, "already on self!") + return + var/distance = get_dist(mod.wearer, linked_weapon) + var/in_view = (linked_weapon in view(mod.wearer)) + if(!in_view && !drain_power(use_power_cost * distance)) + balloon_alert(mod.wearer, "not enough charge!") + return + linked_weapon.forceMove(linked_weapon.drop_location()) + if(in_view) + do_sparks(5, FALSE, linked_weapon) + mod.wearer.visible_message(span_danger("[linked_weapon] flies towards [mod.wearer]!"),span_warning("You hold out your hand and [linked_weapon] flies towards you!")) + linked_weapon.throw_at(mod.wearer, distance+1, linked_weapon.throw_speed, mod.wearer) + else + recall_weapon() + +/obj/item/mod/module/weapon_recall/proc/set_weapon(obj/item/weapon) + linked_weapon = weapon + RegisterSignal(linked_weapon, COMSIG_MOVABLE_IMPACT, PROC_REF(catch_weapon)) + RegisterSignal(linked_weapon, COMSIG_PARENT_QDELETING, PROC_REF(deleted_weapon)) + +/obj/item/mod/module/weapon_recall/proc/recall_weapon(caught = FALSE) + linked_weapon.forceMove(get_turf(src)) + var/alert = "" + if(mod.wearer.put_in_hands(linked_weapon)) + alert = "[linked_weapon.name] teleports to your hand" + else if(mod.wearer.equip_to_slot_if_possible(linked_weapon, ITEM_SLOT_BELT, disable_warning = TRUE)) + alert = "[linked_weapon.name] sheathes itself in your belt" + else + alert = "[linked_weapon.name] teleports under you" + if(caught) + if(mod.wearer.is_holding(linked_weapon)) + alert = "you catch [linked_weapon.name]" + else + alert = "[linked_weapon.name] lands under you" + else + do_sparks(5, FALSE, linked_weapon) + if(alert) + balloon_alert(mod.wearer, alert) + +/obj/item/mod/module/weapon_recall/proc/catch_weapon(obj/item/source, atom/hit_atom, datum/thrownthing/thrownthing) + SIGNAL_HANDLER + + if(!mod) + return + if(hit_atom != mod.wearer) + return + INVOKE_ASYNC(src, PROC_REF(recall_weapon), TRUE) + return COMPONENT_MOVABLE_IMPACT_NEVERMIND + +/obj/item/mod/module/weapon_recall/proc/deleted_weapon(obj/item/source) + SIGNAL_HANDLER + + linked_weapon = null + +//Reinforced DNA Lock - Gibs if wrong DNA, emp-proof. +/obj/item/mod/module/dna_lock/reinforced + name = "MOD reinforced DNA lock module" + desc = "A module which engages with the various locks and seals tied to the suit's systems, \ + enabling it to only be worn by someone corresponding with the user's exact DNA profile. \ + Due to utilizing a skintight dampening shield, this one is entirely sealed against electromagnetic interference; \ + it also dutifully protects the secrets of the Spider Clan from unknowing outsiders." + icon_state = "dnalock_ninja" + use_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 + +/obj/item/mod/module/dna_lock/reinforced/on_mod_activation(datum/source, mob/user) + . = ..() + if(. != MOD_CANCEL_ACTIVATE || !isliving(user)) + return + var/mob/living/living_user = user + to_chat(living_user, span_danger("fATaL EERRoR: 382200-*#00CODE RED\nUNAUTHORIZED USE DETECteD\nCoMMENCING SUB-R0UTIN3 13...\nTERMInATING U-U-USER...")) + living_user.gib() + +/obj/item/mod/module/dna_lock/reinforced/on_emp(datum/source, severity) + return + +//EMP Pulse - In addition to normal shielding, can also launch an EMP itself. +/obj/item/mod/module/emp_shield/pulse + name = "MOD EMP pulse module" + desc = "This module is normally set to activate on dramatic gestures, inverting and expanding the suit's \ + EMP dampening shield to cause an electromagnetic pulse of its own. While this won't interfere with the wearer, \ + it will piss off everyone around them." + icon_state = "emp_pulse" + module_type = MODULE_USABLE + use_power_cost = DEFAULT_CHARGE_DRAIN * 10 + cooldown_time = 8 SECONDS + +/obj/item/mod/module/emp_shield/pulse/on_use() + . = ..() + if(!.) + return + playsound(src, 'sound/effects/empulse.ogg', 60, TRUE) + empulse(src, heavy_range = 4, light_range = 6) + drain_power(use_power_cost) + +///Status Readout - Puts a lot of information including health, nutrition, fingerprints, temperature to the suit TGUI. +/obj/item/mod/module/status_readout + name = "MOD status readout module" + desc = "A once-common module, this technology went unfortunately out of fashion; \ + and right into the arachnid grip of the Spider Clan. This hooks into the suit's spine, \ + capable of capturing and displaying all possible biometric data of the wearer; sleep, nutrition, fitness, fingerprints, \ + and even useful information such as their overall health and wellness." + icon_state = "status" + complexity = 1 + use_power_cost = DEFAULT_CHARGE_DRAIN * 0.1 + incompatible_modules = list(/obj/item/mod/module/status_readout) + tgui_id = "status_readout" + +/obj/item/mod/module/status_readout/add_ui_data() + . = ..() + .["statustime"] = station_time_timestamp() + .["statusid"] = GLOB.round_id + .["statushealth"] = mod.wearer?.health || 0 + .["statusmaxhealth"] = mod.wearer?.getMaxHealth() || 0 + .["statusbrute"] = mod.wearer?.getBruteLoss() || 0 + .["statusburn"] = mod.wearer?.getFireLoss() || 0 + .["statustoxin"] = mod.wearer?.getToxLoss() || 0 + .["statusoxy"] = mod.wearer?.getOxyLoss() || 0 + .["statustemp"] = mod.wearer?.bodytemperature || 0 + .["statusnutrition"] = mod.wearer?.nutrition || 0 + //.["statusfingerprints"] = mod.wearer ? md5(mod.wearer.dna.unique_identity) : null + .["statusdna"] = mod.wearer?.dna.unique_enzymes + .["statusviruses"] = null + if(!length(mod.wearer?.diseases)) + return + var/list/viruses = list() + for(var/datum/disease/virus as anything in mod.wearer.diseases) + var/list/virus_data = list() + virus_data["name"] = virus.name + virus_data["type"] = virus.spread_text + virus_data["stage"] = virus.stage + virus_data["maxstage"] = virus.max_stages + virus_data["cure"] = virus.cure_text + viruses += list(virus_data) + .["statusviruses"] = viruses + +///Energy Net - Ensnares enemies in a net that prevents movement. +/obj/item/mod/module/energy_net + name = "MOD energy net module" + desc = "A custom-built net-thrower. While conventional implementations of this capturing device \ + tilize monomolecular fibers or cutting razorwire, this uses hardlight technology to deploy a \ + trapping field capable of immobilizing even the strongest opponents." + icon_state = "energy_net" + removable = FALSE + module_type = MODULE_ACTIVE + use_power_cost = DEFAULT_CHARGE_DRAIN * 6 + incompatible_modules = list(/obj/item/mod/module/energy_net) + cooldown_time = 1.5 SECONDS + +/obj/item/mod/module/energy_net/on_select_use(atom/target) + . = ..() + if(!.) + return + if(!isliving(target)) + balloon_alert(mod.wearer, "invalid target!") + return + var/mob/living/living_target = target + if(locate(/obj/structure/energy_net) in get_turf(living_target)) + balloon_alert(mod.wearer, "already trapped!") + return + for(var/turf/between_turf as anything in get_line(get_turf(mod.wearer), get_turf(living_target))) + if(between_turf.density) + balloon_alert(mod.wearer, "not through obstacles!") + return + //if(IS_SPACE_NINJA(mod.wearer)) + // mod.wearer.say("Get over here!", forced = type) + mod.wearer.Beam(living_target, "n_beam", time = 1.5 SECONDS) + var/obj/structure/energy_net/net = new /obj/structure/energy_net(living_target.drop_location()) + net.affecting = living_target + mod.wearer.visible_message(span_danger("[mod.wearer] caught [living_target] with an energy net!"), span_notice("You caught [living_target] with an energy net!")) + if(living_target.buckled) + living_target.buckled.unbuckle_mob(living_target, force = TRUE) + net.buckle_mob(living_target, force = TRUE) + drain_power(use_power_cost) + +///Adrenaline Boost - Stops all stuns the ninja is affected with, increases his speed. +/obj/item/mod/module/adrenaline_boost + name = "MOD adrenaline boost module" + desc = "The secrets of the Spider Clan are many. The exact specifications of their suits, \ + the techniques they use to make every singular cut make their enemies weep with admiration, \ + but one of their greatest mysteries is the chemical compound their assassin-saboteurs use in times of need. \ + It's capable of clearing any fatigue whatsoever from the user, any immobilizing effect, and can even \ + cure total paralysis. All that's known is that the fluid requires radiation to properly 'cook,' \ + so this module demands radium to be refilled with." + icon_state = "adrenaline_boost" + removable = FALSE + module_type = MODULE_USABLE + incompatible_modules = list(/obj/item/mod/module/adrenaline_boost) + cooldown_time = 12 SECONDS + /// What reagent we need to refill? + var/reagent_required = /datum/reagent/uranium/radium + /// How much of a reagent we need to refill the boost. + var/reagent_required_amount = 20 + +/obj/item/mod/module/adrenaline_boost/Initialize(mapload) + . = ..() + create_reagents(reagent_required_amount) + reagents.add_reagent(reagent_required, reagent_required_amount) + +/obj/item/mod/module/adrenaline_boost/on_use() + if(!reagents.has_reagent(reagent_required, reagent_required_amount)) + balloon_alert(mod.wearer, "no charge!") + return + . = ..() + if(!.) + return + //if(IS_SPACE_NINJA(mod.wearer)) + // mod.wearer.say(pick_list_replacements(NINJA_FILE, "lines"), forced = type) + to_chat(mod.wearer, span_notice("You have used the adrenaline boost.")) + mod.wearer.SetUnconscious(0) + mod.wearer.SetStun(0) + mod.wearer.SetKnockdown(0) + mod.wearer.SetImmobilized(0) + mod.wearer.SetParalyzed(0) + mod.wearer.adjustStaminaLoss(-200) + mod.wearer.stuttering = 0 + mod.wearer.reagents.add_reagent(/datum/reagent/medicine/stimulants, 5) + reagents.remove_reagent(reagent_required, reagents.total_volume * 0.75) + addtimer(CALLBACK(src, PROC_REF(boost_aftereffects), mod.wearer), 7 SECONDS) + +/obj/item/mod/module/adrenaline_boost/on_install() + RegisterSignal(mod, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) + +/obj/item/mod/module/adrenaline_boost/on_uninstall(deleting) + UnregisterSignal(mod, COMSIG_PARENT_ATTACKBY) + +/obj/item/mod/module/adrenaline_boost/attackby(obj/item/attacking_item, mob/user, params) + if(charge_boost(attacking_item, user)) + return TRUE + return ..() + +/obj/item/mod/module/adrenaline_boost/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user) + SIGNAL_HANDLER + + if(charge_boost(attacking_item, user)) + return COMPONENT_NO_AFTERATTACK + return NONE + +/obj/item/mod/module/adrenaline_boost/proc/charge_boost(obj/item/attacking_item, mob/user) + if(!attacking_item.is_open_container()) + return FALSE + if(reagents.has_reagent(reagent_required, reagent_required_amount)) + balloon_alert(mod.wearer, "already charged!") + return FALSE + if(!attacking_item.reagents.trans_id_to(src, reagent_required, reagent_required_amount)) + return FALSE + balloon_alert(mod.wearer, "charge [reagents.has_reagent(reagent_required, reagent_required_amount) ? "fully" : "partially"] reloaded") + return TRUE + +/obj/item/mod/module/adrenaline_boost/proc/boost_aftereffects(mob/affected_mob) + if(!affected_mob) + return + reagents.trans_to(affected_mob, reagents.total_volume) + to_chat(affected_mob, span_danger("You are beginning to feel the after-effect of the injection.")) diff --git a/code/modules/mod/modules/modules_science.dm b/code/modules/mod/modules/modules_science.dm new file mode 100644 index 000000000000..02025ea1b420 --- /dev/null +++ b/code/modules/mod/modules/modules_science.dm @@ -0,0 +1,132 @@ +//Science modules for MODsuits + +///Reagent Scanner - Lets the user scan reagents. +/obj/item/mod/module/reagent_scanner + name = "MOD reagent scanner module" + desc = "A module based off research-oriented Nanotrasen HUDs, this is capable of scanning the contents of \ + containers and projecting the information in an easy-to-read format on the wearer's display. \ + It cannot detect flavors, so that's up to you." + icon_state = "scanner" + module_type = MODULE_TOGGLE + complexity = 1 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.2 + incompatible_modules = list(/obj/item/mod/module/reagent_scanner) + cooldown_time = 0.5 SECONDS + +/obj/item/mod/module/reagent_scanner/on_activation() + . = ..() + if(!.) + return + mod.helmet.clothing_flags |= SCAN_REAGENTS + +/obj/item/mod/module/reagent_scanner/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + mod.helmet.clothing_flags &= ~SCAN_REAGENTS + +/obj/item/mod/module/reagent_scanner/advanced + name = "MOD advanced reagent scanner module" + complexity = 0 + removable = FALSE + var/explosion_detection_dist = 21 + +/obj/item/mod/module/reagent_scanner/advanced/on_activation() + . = ..() + if(!.) + return + mod.helmet.clothing_flags |= SCAN_REAGENTS + RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, PROC_REF(sense_explosion)) + +/obj/item/mod/module/reagent_scanner/advanced/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + mod.helmet.clothing_flags |= SCAN_REAGENTS + UnregisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION) + +/obj/item/mod/module/reagent_scanner/advanced/proc/sense_explosion(datum/source, turf/epicenter, + devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) + SIGNAL_HANDLER + var/turf/wearer_turf = get_turf(mod.wearer) + if(wearer_turf.z != epicenter.z) + return + if(get_dist(epicenter, wearer_turf) > explosion_detection_dist) + return + to_chat(mod.wearer, span_notice("Explosion detected! Epicenter: [devastation_range], Outer: [heavy_impact_range], Shock: [light_impact_range]")) + +///Anti-Gravity - Makes the user weightless. +/obj/item/mod/module/anomaly_locked/antigrav + name = "MOD anti-gravity module" + desc = "A module that uses a gravitational core to make the user completely weightless." + icon_state = "antigrav" + module_type = MODULE_TOGGLE + complexity = 3 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.7 + incompatible_modules = list(/obj/item/mod/module/anomaly_locked) + cooldown_time = 0.5 SECONDS + accepted_anomalies = list(/obj/item/assembly/signaler/anomaly/grav) + +/obj/item/mod/module/anomaly_locked/antigrav/on_activation() + . = ..() + if(!.) + return + if(mod.wearer.has_gravity()) + new /obj/effect/temp_visual/mook_dust(get_turf(src)) + mod.wearer.AddElement(/datum/element/forced_gravity, 0) + mod.wearer.update_gravity(mod.wearer.has_gravity()) + playsound(src, 'sound/effects/gravhit.ogg', 50) + +/obj/item/mod/module/anomaly_locked/antigrav/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + mod.wearer.RemoveElement(/datum/element/forced_gravity, 0) + mod.wearer.update_gravity(mod.wearer.has_gravity()) + if(deleting) + return + if(mod.wearer.has_gravity()) + new /obj/effect/temp_visual/mook_dust(get_turf(src)) + playsound(src, 'sound/effects/gravhit.ogg', 50) + +/obj/item/mod/module/anomaly_locked/antigrav/prebuilt + prebuilt = TRUE + +///Teleporter - Lets the user teleport to a nearby location. +/obj/item/mod/module/anomaly_locked/teleporter + name = "MOD teleporter module" + desc = "A module that uses a bluespace core to let the user transport their particles elsewhere." + icon_state = "teleporter" + module_type = MODULE_ACTIVE + complexity = 3 + use_power_cost = DEFAULT_CHARGE_DRAIN * 5 + cooldown_time = 5 SECONDS + accepted_anomalies = list(/obj/item/assembly/signaler/anomaly/bluespace) + /// Time it takes to teleport + var/teleport_time = 3 SECONDS + +/obj/item/mod/module/anomaly_locked/teleporter/on_select_use(atom/target) + . = ..() + if(!.) + return + var/turf/open/target_turf = get_turf(target) + if(!istype(target_turf) || target_turf.is_blocked_turf() || !(target_turf in view(mod.wearer))) + balloon_alert(mod.wearer, "invalid target!") + return + balloon_alert(mod.wearer, "teleporting...") + var/matrix/pre_matrix = matrix() + pre_matrix.Scale(4, 0.25) + var/matrix/post_matrix = matrix() + post_matrix.Scale(0.25, 4) + animate(mod.wearer, teleport_time, color = COLOR_CYAN, transform = pre_matrix.Multiply(mod.wearer.transform), easing = SINE_EASING|EASE_OUT) + if(!do_after(mod.wearer, teleport_time, target = mod)) + balloon_alert(mod.wearer, "interrupted!") + animate(mod.wearer, teleport_time*0.1, color = null, transform = post_matrix.Multiply(mod.wearer.transform), easing = SINE_EASING|EASE_OUT) + return + animate(mod.wearer, teleport_time*0.1, color = null, transform = post_matrix.Multiply(mod.wearer.transform), easing = SINE_EASING|EASE_OUT) + if(!do_teleport(mod.wearer, target_turf, asoundin = 'sound/effects/phasein.ogg')) + return + drain_power(use_power_cost) + +/obj/item/mod/module/anomaly_locked/teleporter/prebuilt + prebuilt = TRUE diff --git a/code/modules/mod/modules/modules_security.dm b/code/modules/mod/modules/modules_security.dm new file mode 100644 index 000000000000..d3ac53846461 --- /dev/null +++ b/code/modules/mod/modules/modules_security.dm @@ -0,0 +1,136 @@ +//Security modules for MODsuits + +///Magnetic Harness - Automatically puts guns in your suit storage when you drop them. +/obj/item/mod/module/magnetic_harness + name = "MOD magnetic harness module" + desc = "Based off old TerraGov harness kits, this magnetic harness automatically attaches dropped guns back to the wearer." + icon_state = "mag_harness" + complexity = 2 + use_power_cost = DEFAULT_CHARGE_DRAIN + incompatible_modules = list(/obj/item/mod/module/magnetic_harness) + /// Time before we activate the magnet. + var/magnet_delay = 0.8 SECONDS + /// The typecache of all guns we allow. + var/static/list/guns_typecache + /// The guns already allowed by the modsuit chestplate. + var/list/already_allowed_guns = list() + +/obj/item/mod/module/magnetic_harness/Initialize(mapload) + . = ..() + if(!guns_typecache) + guns_typecache = typecacheof(list(/obj/item/gun/ballistic, /obj/item/gun/energy, /obj/item/gun/grenadelauncher, /obj/item/gun/chem, /obj/item/gun/syringe)) + +/obj/item/mod/module/magnetic_harness/on_install() + already_allowed_guns = guns_typecache & mod.chestplate.allowed + mod.chestplate.allowed |= guns_typecache + +/obj/item/mod/module/magnetic_harness/on_uninstall(deleting = FALSE) + if(deleting) + return + mod.chestplate.allowed -= (guns_typecache - already_allowed_guns) + +/obj/item/mod/module/magnetic_harness/on_suit_activation() + RegisterSignal(mod.wearer, COMSIG_MOB_UNEQUIPPED_ITEM, PROC_REF(check_dropped_item)) + +/obj/item/mod/module/magnetic_harness/on_suit_deactivation(deleting = FALSE) + UnregisterSignal(mod.wearer, COMSIG_MOB_UNEQUIPPED_ITEM) + +/obj/item/mod/module/magnetic_harness/proc/check_dropped_item(datum/source, obj/item/dropped_item, force, new_location) + SIGNAL_HANDLER + + if(!is_type_in_typecache(dropped_item, guns_typecache)) + return + if(new_location != get_turf(src)) + return + addtimer(CALLBACK(src, PROC_REF(pick_up_item), dropped_item), magnet_delay) + +/obj/item/mod/module/magnetic_harness/proc/pick_up_item(obj/item/item) + if(!isturf(item.loc) || !item.Adjacent(mod.wearer)) + return + if(!mod.wearer.equip_to_slot_if_possible(item, ITEM_SLOT_SUITSTORE, qdel_on_fail = FALSE, disable_warning = TRUE)) + return + playsound(src, 'sound/items/modsuit/magnetic_harness.ogg', 50, TRUE) + balloon_alert(mod.wearer, "[item] reattached") + drain_power(use_power_cost) + +///Holster - Instantly holsters any not huge gun. +/obj/item/mod/module/holster + name = "MOD holster module" + desc = "Based off typical storage compartments, this system allows the suit to holster a \ + standard firearm across its surface and allow for extremely quick retrieval. \ + While some users prefer the chest, others the forearm for quick deployment, \ + some law enforcement prefer the holster to extend from the thigh." + icon_state = "holster" + module_type = MODULE_USABLE + complexity = 2 + incompatible_modules = list(/obj/item/mod/module/holster) + cooldown_time = 0.5 SECONDS + allowed_inactive = TRUE + /// Gun we have holstered. + var/obj/item/gun/holstered + +/obj/item/mod/module/holster/on_use() + . = ..() + if(!.) + return + if(!holstered) + var/obj/item/gun/holding = mod.wearer.get_active_held_item() + if(!holding) + balloon_alert(mod.wearer, "nothing to holster!") + return + if(!istype(holding) || holding.w_class > WEIGHT_CLASS_BULKY) + balloon_alert(mod.wearer, "it doesn't fit!") + return + if(mod.wearer.transferItemToLoc(holding, src, force = FALSE, silent = TRUE)) + holstered = holding + balloon_alert(mod.wearer, "weapon holstered") + playsound(src, 'sound/weapons/gun/revolver/empty.ogg', 100, TRUE) + else if(mod.wearer.put_in_active_hand(holstered, forced = FALSE, ignore_animation = TRUE)) + balloon_alert(mod.wearer, "weapon drawn") + playsound(src, 'sound/weapons/gun/revolver/empty.ogg', 100, TRUE) + else + balloon_alert(mod.wearer, "holster full!") + +/obj/item/mod/module/holster/on_uninstall(deleting = FALSE) + if(holstered) + holstered.forceMove(drop_location()) + +/obj/item/mod/module/holster/Exited(atom/movable/gone, direction) + . = ..() + if(gone == holstered) + holstered = null + +/obj/item/mod/module/holster/Destroy() + QDEL_NULL(holstered) + return ..() + +///Megaphone - Lets you speak loud. +/obj/item/mod/module/megaphone + name = "MOD megaphone module" + desc = "A microchip megaphone linked to a MODsuit, for very important purposes, like: loudness." + icon_state = "megaphone" + module_type = MODULE_TOGGLE + complexity = 1 + use_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 + incompatible_modules = list(/obj/item/mod/module/megaphone) + cooldown_time = 0.5 SECONDS + /// List of spans we add to the speaker. + var/list/voicespan = list(SPAN_COMMAND) + +/obj/item/mod/module/megaphone/on_activation() + . = ..() + if(!.) + return + RegisterSignal(mod.wearer, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/obj/item/mod/module/megaphone/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + UnregisterSignal(mod.wearer, COMSIG_MOB_SAY) + +/obj/item/mod/module/megaphone/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + + speech_args[SPEECH_SPANS] |= voicespan + drain_power(use_power_cost) diff --git a/code/modules/mod/modules/modules_service.dm b/code/modules/mod/modules/modules_service.dm new file mode 100644 index 000000000000..e983bbc3dbc0 --- /dev/null +++ b/code/modules/mod/modules/modules_service.dm @@ -0,0 +1,56 @@ +//Service modules for MODsuits + +///Bike Horn - Plays a bike horn sound. +/obj/item/mod/module/bikehorn + name = "MOD bike horn module" + desc = "A shoulder-mounted piece of heavy sonic artillery, this module uses the finest femto-manipulator technology to \ + precisely deliver an almost lethal squeeze to... a bike horn, producing a significantly memorable sound." + icon_state = "bikehorn" + module_type = MODULE_USABLE + complexity = 1 + use_power_cost = DEFAULT_CHARGE_DRAIN + incompatible_modules = list(/obj/item/mod/module/bikehorn) + cooldown_time = 1 SECONDS + +/obj/item/mod/module/bikehorn/on_use() + . = ..() + if(!.) + return + playsound(src, 'sound/items/bikehorn.ogg', 100, FALSE) + drain_power(use_power_cost) + +///Microwave Beam - Microwaves items instantly. +/obj/item/mod/module/microwave_beam + name = "MOD microwave beam module" + desc = "An oddly domestic device, this module is installed into the user's palm, \ + hooking up with culinary scanners located in the helmet to blast food with precise microwave radiation, \ + allowing them to cook food from a distance, with the greatest of ease. Not recommended for use against grapes." + icon_state = "microwave_beam" + module_type = MODULE_ACTIVE + complexity = 2 + use_power_cost = DEFAULT_CHARGE_DRAIN * 5 + incompatible_modules = list(/obj/item/mod/module/microwave_beam) + cooldown_time = 10 SECONDS + +/obj/item/mod/module/microwave_beam/on_select_use(atom/target) + . = ..() + if(!.) + return + if(!istype(target, /obj/item)) + return + if(!isturf(target.loc)) + balloon_alert(mod.wearer, "must be on the floor!") + return + var/obj/item/microwave_target = target + var/datum/effect_system/spark_spread/spark_effect = new() + spark_effect.set_up(2, 1, mod.wearer) + spark_effect.start() + mod.wearer.Beam(target,icon_state="lightning[rand(1,12)]", time = 5) + if(microwave_target.microwave_act()) + playsound(src, 'sound/machines/microwave/microwave-end.ogg', 50, FALSE) + else + balloon_alert(mod.wearer, "can't be microwaved!") + var/datum/effect_system/spark_spread/spark_effect_two = new() + spark_effect_two.set_up(2, 1, microwave_target) + spark_effect_two.start() + drain_power(use_power_cost) diff --git a/code/modules/mod/modules/modules_storage.dm b/code/modules/mod/modules/modules_storage.dm new file mode 100644 index 000000000000..25caad6806f7 --- /dev/null +++ b/code/modules/mod/modules/modules_storage.dm @@ -0,0 +1,60 @@ +/obj/item/mod/module/storage + name = "MOD storage module" + desc = "What amounts to a series of integrated storage compartments and specialized pockets installed across \ + the surface of the suit, useful for storing various bits, and or bobs." + icon_state = "storage" + complexity = 3 + incompatible_modules = list(/obj/item/mod/module/storage) + var/datum/component/storage/concrete/storage + var/max_w_class = WEIGHT_CLASS_NORMAL + var/max_combined_w_class = 15 + var/max_items = 7 + +/obj/item/mod/module/storage/Initialize(mapload) + . = ..() + storage = AddComponent(/datum/component/storage/concrete) + storage.max_w_class = max_w_class + storage.max_combined_w_class = max_combined_w_class + storage.max_items = max_items + storage.allow_big_nesting = TRUE + SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SET_LOCKSTATE, TRUE) + +/obj/item/mod/module/storage/on_install() + var/datum/component/storage/modstorage = mod.AddComponent(/datum/component/storage, storage) + modstorage.max_w_class = max_w_class + modstorage.max_combined_w_class = max_combined_w_class + modstorage.max_items = max_items + SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SET_LOCKSTATE, FALSE) + +/obj/item/mod/module/storage/on_uninstall(deleting = FALSE) + var/datum/component/storage/modstorage = mod.GetComponent(/datum/component/storage) + storage.slaves -= modstorage + qdel(modstorage) + SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SET_LOCKSTATE, TRUE) + +/obj/item/mod/module/storage/large_capacity + name = "MOD expanded storage module" + desc = "Reverse engineered by Nakamura Engineering from Donk Corporation designs, this system of hidden compartments \ + is entirely within the suit, distributing items and weight evenly to ensure a comfortable experience for the user; \ + whether smuggling, or simply hauling." + icon_state = "storage_large" + max_combined_w_class = 21 + max_items = 14 + +/obj/item/mod/module/storage/syndicate + name = "MOD syndicate storage module" + desc = "A storage system using nanotechnology developed by Cybersun Industries, these compartments use \ + esoteric technology to compress the physical matter of items put inside of them, \ + essentially shrinking items for much easier and more portable storage." + icon_state = "storage_syndi" + max_combined_w_class = 30 + max_items = 21 + +/obj/item/mod/module/storage/bluespace + name = "MOD bluespace storage module" + desc = "A storage system developed by Nanotrasen, these compartments employ \ + miniaturized bluespace pockets for the ultimate in storage technology; regardless of the weight of objects put inside." + icon_state = "storage_large" + max_w_class = WEIGHT_CLASS_GIGANTIC + max_combined_w_class = 60 + max_items = 21 diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm new file mode 100644 index 000000000000..04f0aaf73ad1 --- /dev/null +++ b/code/modules/mod/modules/modules_supply.dm @@ -0,0 +1,306 @@ +//Supply modules for MODsuits + +///Internal GPS - Extends a GPS you can use. +/obj/item/mod/module/gps + name = "MOD internal GPS module" + desc = "This module uses common Nanotrasen technology to calculate the user's position anywhere in space, \ + down to the exact coordinates. This information is fed to a central database viewable from the device itself, \ + though using it to help people is up to you." + icon_state = "gps" + module_type = MODULE_USABLE + complexity = 1 + use_power_cost = DEFAULT_CHARGE_DRAIN * 0.2 + incompatible_modules = list(/obj/item/mod/module/gps) + cooldown_time = 0.5 SECONDS + allowed_inactive = TRUE + +/obj/item/mod/module/gps/Initialize(mapload) + . = ..() + AddComponent(/datum/component/gps/item, "MOD0") + +/obj/item/mod/module/gps/on_use() + . = ..() + if(!.) + return + attack_self(mod.wearer) + +///Hydraulic Clamp - Lets you pick up and drop crates. +/obj/item/mod/module/clamp + name = "MOD hydraulic clamp module" + desc = "A series of actuators installed into both arms of the suit, boasting a lifting capacity of almost a ton. \ + However, this design has been locked by Nanotrasen to be primarily utilized for lifting various crates. \ + A lot of people would say that loading cargo is a dull job, but you could not disagree more." + icon_state = "clamp" + module_type = MODULE_ACTIVE + complexity = 3 + use_power_cost = DEFAULT_CHARGE_DRAIN + incompatible_modules = list(/obj/item/mod/module/clamp) + cooldown_time = 0.5 SECONDS + overlay_state_inactive = "module_clamp" + overlay_state_active = "module_clamp_on" + /// Time it takes to load a crate. + var/load_time = 3 SECONDS + /// The max amount of crates you can carry. + var/max_crates = 3 + /// The crates stored in the module. + var/list/stored_crates = list() + +/obj/item/mod/module/clamp/on_select_use(atom/target) + . = ..() + if(!.) + return + if(!mod.wearer.Adjacent(target)) + return + if(istype(target, /obj/structure/closet/crate))// || istype(target, /obj/item/delivery/big)) + var/atom/movable/picked_crate = target + if(!check_crate_pickup(picked_crate)) + return + playsound(src, 'sound/mecha/hydraulic.ogg', 25, TRUE) + if(!do_after(mod.wearer, load_time, target = target)) + balloon_alert(mod.wearer, "interrupted!") + return + if(!check_crate_pickup(picked_crate)) + return + stored_crates += picked_crate + picked_crate.forceMove(src) + balloon_alert(mod.wearer, "picked up [picked_crate]") + drain_power(use_power_cost) + mod.wearer.update_inv_back() + else if(length(stored_crates)) + var/turf/target_turf = get_turf(target) + if(target_turf.is_blocked_turf()) + return + playsound(src, 'sound/mecha/hydraulic.ogg', 25, TRUE) + if(!do_after(mod.wearer, load_time, target = target)) + balloon_alert(mod.wearer, "interrupted!") + return + if(target_turf.is_blocked_turf()) + return + var/atom/movable/dropped_crate = pop(stored_crates) + dropped_crate.forceMove(target_turf) + balloon_alert(mod.wearer, "dropped [dropped_crate]") + drain_power(use_power_cost) + mod.wearer.update_inv_back() + else + balloon_alert(mod.wearer, "invalid target!") + +/obj/item/mod/module/clamp/on_suit_deactivation(deleting = FALSE) + if(deleting) + return + for(var/atom/movable/crate as anything in stored_crates) + crate.forceMove(drop_location()) + stored_crates -= crate + +/obj/item/mod/module/clamp/proc/check_crate_pickup(atom/movable/target) + if(length(stored_crates) >= max_crates) + balloon_alert(mod.wearer, "too many crates!") + return FALSE + for(var/mob/living/mob in target.get_all_contents()) + if(mob.mob_size < MOB_SIZE_HUMAN) + continue + balloon_alert(mod.wearer, "crate too heavy!") + return FALSE + return TRUE + +/obj/item/mod/module/clamp/loader + name = "MOD loader hydraulic clamp module" + icon_state = "clamp_loader" + complexity = 0 + removable = FALSE + overlay_state_inactive = null + overlay_state_active = "module_clamp_loader" + load_time = 1 SECONDS + max_crates = 5 + use_mod_colors = TRUE + +///Drill - Lets you dig through rock and basalt. +/obj/item/mod/module/drill + name = "MOD drill module" + desc = "An integrated drill, typically extending over the user's hand. While useful for drilling through rock, \ + your drill is surely the one that both pierces and creates the heavens." + icon_state = "drill" + module_type = MODULE_ACTIVE + complexity = 2 + use_power_cost = DEFAULT_CHARGE_DRAIN + incompatible_modules = list(/obj/item/mod/module/drill) + cooldown_time = 0.5 SECONDS + overlay_state_active = "module_drill" + +/obj/item/mod/module/drill/on_activation() + . = ..() + if(!.) + return + RegisterSignal(mod.wearer, COMSIG_MOVABLE_BUMP, PROC_REF(bump_mine)) + +/obj/item/mod/module/drill/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + UnregisterSignal(mod.wearer, COMSIG_MOVABLE_BUMP) + +/obj/item/mod/module/drill/on_select_use(atom/target) + . = ..() + if(!.) + return + if(!mod.wearer.Adjacent(target)) + return + if(istype(target, /turf/closed/mineral)) + var/turf/closed/mineral/mineral_turf = target + mineral_turf.gets_drilled(mod.wearer) + drain_power(use_power_cost) + else if(istype(target, /turf/open/floor/plating/asteroid)) + var/turf/open/floor/plating/asteroid/sand_turf = target + if(!sand_turf.can_dig(mod.wearer)) + return + sand_turf.getDug() + drain_power(use_power_cost) + +/obj/item/mod/module/drill/proc/bump_mine(mob/living/carbon/human/bumper, atom/bumped_into, proximity) + SIGNAL_HANDLER + if(!istype(bumped_into, /turf/closed/mineral) || !drain_power(use_power_cost)) + return + var/turf/closed/mineral/mineral_turf = bumped_into + mineral_turf.gets_drilled(mod.wearer) + return COMPONENT_CANCEL_ATTACK_CHAIN + +///Ore Bag - Lets you pick up ores and drop them from the suit. +/obj/item/mod/module/orebag + name = "MOD ore bag module" + desc = "An integrated ore storage system installed into the suit, \ + this utilizes precise electromagnets and storage compartments to automatically collect and deposit ore. \ + It's recommended by Nakamura Engineering to actually deposit that ore at local refineries." + icon_state = "ore" + module_type = MODULE_USABLE + complexity = 1 + use_power_cost = DEFAULT_CHARGE_DRAIN * 0.2 + incompatible_modules = list(/obj/item/mod/module/orebag) + cooldown_time = 0.5 SECONDS + allowed_inactive = TRUE + /// The ores stored in the bag. + var/list/ores = list() + +/obj/item/mod/module/orebag/on_equip() + RegisterSignal(mod.wearer, COMSIG_MOVABLE_MOVED, PROC_REF(ore_pickup)) + +/obj/item/mod/module/orebag/on_unequip() + UnregisterSignal(mod.wearer, COMSIG_MOVABLE_MOVED) + +/obj/item/mod/module/orebag/proc/ore_pickup(atom/movable/source, atom/old_loc, dir, forced) + SIGNAL_HANDLER + + for(var/obj/item/stack/ore/ore in get_turf(mod.wearer)) + INVOKE_ASYNC(src, PROC_REF(move_ore), ore) + playsound(src, SFX_RUSTLE, 50, TRUE) + +/obj/item/mod/module/orebag/proc/move_ore(obj/item/stack/ore) + for(var/obj/item/stack/stored_ore as anything in ores) + if(!ore.can_merge(stored_ore)) + continue + ore.merge(stored_ore) + if(QDELETED(ore)) + return + break + ore.forceMove(src) + ores += ore + +/obj/item/mod/module/orebag/on_use() + . = ..() + if(!.) + return + for(var/obj/item/ore as anything in ores) + ore.forceMove(drop_location()) + ores -= ore + drain_power(use_power_cost) + +/obj/item/mod/module/disposal_connector + name = "MOD disposal selector module" + desc = "A module that connects to the disposal pipeline, causing the user to go into their config selected disposal. \ + Only seems to work when the suit is on." + icon_state = "disposal" + complexity = 2 + idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + incompatible_modules = list(/obj/item/mod/module/disposal_connector) + var/disposal_tag = NONE + +/obj/item/mod/module/disposal_connector/Initialize(mapload) + . = ..() + disposal_tag = pick(GLOB.TAGGERLOCATIONS) + +/obj/item/mod/module/disposal_connector/on_suit_activation() + RegisterSignal(mod.wearer, COMSIG_MOVABLE_DISPOSING, PROC_REF(disposal_handling)) + +/obj/item/mod/module/disposal_connector/on_suit_deactivation(deleting = FALSE) + UnregisterSignal(mod.wearer, COMSIG_MOVABLE_DISPOSING) + +/obj/item/mod/module/disposal_connector/get_configuration() + . = ..() + .["disposal_tag"] = add_ui_configuration("Disposal Tag", "list", GLOB.TAGGERLOCATIONS[disposal_tag], GLOB.TAGGERLOCATIONS) + +/obj/item/mod/module/disposal_connector/configure_edit(key, value) + switch(key) + if("disposal_tag") + for(var/tag in 1 to length(GLOB.TAGGERLOCATIONS)) + if(GLOB.TAGGERLOCATIONS[tag] == value) + disposal_tag = tag + break + +/obj/item/mod/module/disposal_connector/proc/disposal_handling(datum/disposal_source, obj/structure/disposalholder/disposal_holder, obj/machinery/disposal/disposal_machine, hasmob) + SIGNAL_HANDLER + + disposal_holder.destinationTag = disposal_tag + +/obj/item/mod/module/magnet + name = "MOD loader hydraulic magnet module" + desc = "A powerful hydraulic electromagnet able to launch crates and lockers towards the user, and keep 'em attached." + icon_state = "magnet_loader" + module_type = MODULE_ACTIVE + removable = FALSE + use_power_cost = DEFAULT_CHARGE_DRAIN*3 + incompatible_modules = list(/obj/item/mod/module/magnet) + cooldown_time = 1.5 SECONDS + overlay_state_active = "module_magnet" + use_mod_colors = TRUE + +/obj/item/mod/module/magnet/on_select_use(atom/target) + . = ..() + if(!.) + return + if(istype(mod.wearer.pulling, /obj/structure/closet)) + var/obj/structure/closet/locker = mod.wearer.pulling + playsound(locker, 'sound/effects/gravhit.ogg', 75, TRUE) + locker.forceMove(mod.wearer.loc) + locker.throw_at(target, range = 7, speed = 4, thrower = mod.wearer) + return + if(!istype(target, /obj/structure/closet) || !(target in view(mod.wearer))) + balloon_alert(mod.wearer, "invalid target!") + return + var/obj/structure/closet/locker = target + if(locker.anchored || locker.move_resist >= MOVE_FORCE_OVERPOWERING) + balloon_alert(mod.wearer, "target anchored!") + return + new /obj/effect/temp_visual/mook_dust(get_turf(locker)) + playsound(locker, 'sound/effects/gravhit.ogg', 75, TRUE) + locker.throw_at(mod.wearer, range = 7, speed = 3, force = MOVE_FORCE_WEAK, \ + callback = CALLBACK(src, PROC_REF(check_locker), locker)) + +/obj/item/mod/module/magnet/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + if(istype(mod.wearer.pulling, /obj/structure/closet)) + mod.wearer.stop_pulling() + +/obj/item/mod/module/magnet/proc/check_locker(obj/structure/closet/locker) + if(!mod?.wearer) + return + if(!locker.Adjacent(mod.wearer) || !isturf(locker.loc) || !isturf(mod.wearer.loc)) + return + mod.wearer.start_pulling(locker) + //locker.strong_grab = TRUE + RegisterSignal(locker, COMSIG_ATOM_NO_LONGER_PULLED, PROC_REF(on_stop_pull)) + +/obj/item/mod/module/magnet/proc/on_stop_pull(obj/structure/closet/locker, atom/movable/last_puller) + SIGNAL_HANDLER + + //locker.strong_grab = FALSE + UnregisterSignal(locker, COMSIG_ATOM_NO_LONGER_PULLED) diff --git a/code/modules/mod/modules/modules_visor.dm b/code/modules/mod/modules/modules_visor.dm new file mode 100644 index 000000000000..e1516c2aa0a1 --- /dev/null +++ b/code/modules/mod/modules/modules_visor.dm @@ -0,0 +1,85 @@ +//Visor modules for MODsuits + +///Base Visor - Adds a specific HUD and traits to you. +/obj/item/mod/module/visor + name = "MOD visor module" + desc = "A heads-up display installed into the visor of the suit. They say these also let you see behind you." + module_type = MODULE_TOGGLE + complexity = 2 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + incompatible_modules = list(/obj/item/mod/module/visor) + cooldown_time = 0.5 SECONDS + /// The HUD type given by the visor. + var/hud_type + /// The traits given by the visor. + var/list/visor_traits = list() + +/obj/item/mod/module/visor/on_activation() + . = ..() + if(!.) + return + if(hud_type) + var/datum/atom_hud/hud = GLOB.huds[hud_type] + hud.add_hud_to(mod.wearer) + for(var/trait in visor_traits) + ADD_TRAIT(mod.wearer, trait, MOD_TRAIT) + mod.wearer.update_sight() + +/obj/item/mod/module/visor/on_deactivation(display_message = TRUE, deleting = FALSE) + . = ..() + if(!.) + return + if(hud_type) + var/datum/atom_hud/hud = GLOB.huds[hud_type] + hud.remove_hud_from(mod.wearer) + for(var/trait in visor_traits) + REMOVE_TRAIT(mod.wearer, trait, MOD_TRAIT) + mod.wearer.update_sight() + +//Medical Visor - Gives you a medical HUD. +/obj/item/mod/module/visor/medhud + name = "MOD medical visor module" + desc = "A heads-up display installed into the visor of the suit. This cross-references suit sensor data with a modern \ + biological scanning suite, allowing the user to visualize the current health of organic lifeforms, as well as \ + access data such as patient files in a convenient readout. They say these also let you see behind you." + icon_state = "medhud_visor" + hud_type = DATA_HUD_MEDICAL_ADVANCED + visor_traits = list(TRAIT_MEDICAL_HUD) + +//Diagnostic Visor - Gives you a diagnostic HUD. +/obj/item/mod/module/visor/diaghud + name = "MOD diagnostic visor module" + desc = "A heads-up display installed into the visor of the suit. This uses a series of advanced sensors to access data \ + from advanced machinery, exosuits, and other devices, allowing the user to visualize current power levels \ + and integrity of such. They say these also let you see behind you." + icon_state = "diaghud_visor" + hud_type = DATA_HUD_DIAGNOSTIC_ADVANCED + visor_traits = list(TRAIT_DIAGNOSTIC_HUD) + +//Security Visor - Gives you a security HUD. +/obj/item/mod/module/visor/sechud + name = "MOD security visor module" + desc = "A heads-up display installed into the visor of the suit. This module is a heavily-retrofitted targeting system, \ + plugged into various criminal databases to be able to view arrest records, command simple security-oriented robots, \ + and generally know who to shoot. They say these also let you see behind you." + icon_state = "sechud_visor" + hud_type = DATA_HUD_SECURITY_ADVANCED + visor_traits = list(TRAIT_SECURITY_HUD) + +//Meson Visor - Gives you meson vision. +/obj/item/mod/module/visor/meson + name = "MOD meson visor module" + desc = "A heads-up display installed into the visor of the suit. This module is based off well-loved meson scanner \ + technology, used by construction workers and miners across the galaxy to see basic structural and terrain layouts \ + through walls, regardless of lighting conditions. They say these also let you see behind you." + icon_state = "meson_visor" + visor_traits = list(SEE_TURFS) + +//Thermal Visor - Gives you thermal vision. +/obj/item/mod/module/visor/thermal + name = "MOD thermal visor module" + desc = "A heads-up display installed into the visor of the suit. This uses a small IR scanner to detect and identify \ + the thermal radiation output of objects near the user. While it can detect the heat output of even something as \ + small as a rodent, it still produces irritating red overlay. They say these also let you see behind you." + icon_state = "thermal_visor" + visor_traits = list(SEE_MOBS) 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/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm index c858582af6a3..4c967a58a7ec 100644 --- a/code/modules/movespeed/modifiers/items.dm +++ b/code/modules/movespeed/modifiers/items.dm @@ -18,3 +18,5 @@ /datum/movespeed_modifier/berserk multiplicative_slowdown = -0.2 +/datum/movespeed_modifier/sphere + multiplicative_slowdown = -0.5 diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index c00d32d25809..14392e1c0874 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -1,37 +1,30 @@ -/obj/item/energy_katana +/obj/item/melee/sword/energy_katana name = "energy katana" desc = "A katana infused with strong energy." icon_state = "energy_katana" item_state = "energy_katana" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' force = 40 throwforce = 20 block_chance = 50 armour_penetration = 50 - w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT - sharpness = IS_SHARP max_integrity = 200 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/datum/effect_system/spark_spread/spark_system var/datum/action/innate/dash/ninja/jaunt var/dash_toggled = TRUE -/obj/item/energy_katana/Initialize() +/obj/item/melee/sword/energy_katana/Initialize() . = ..() jaunt = new(src) spark_system = new /datum/effect_system/spark_spread() spark_system.set_up(5, 0, src) spark_system.attach(src) -/obj/item/energy_katana/attack_self(mob/user) +/obj/item/melee/sword/energy_katana/attack_self(mob/user) dash_toggled = !dash_toggled to_chat(user, "You [dash_toggled ? "enable" : "disable"] the dash function on [src].") -/obj/item/energy_katana/afterattack(atom/target, mob/user, proximity_flag, click_parameters) +/obj/item/melee/sword/energy_katana/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() if(dash_toggled) jaunt.Teleport(user, target) @@ -41,13 +34,13 @@ playsound(user, 'sound/weapons/blade1.ogg', 50, TRUE) target.emag_act(user) -/obj/item/energy_katana/pickup(mob/living/user) +/obj/item/melee/sword/energy_katana/pickup(mob/living/user) . = ..() jaunt.Grant(user, src) user.update_icons() playsound(src, 'sound/items/unsheath.ogg', 25, TRUE) -/obj/item/energy_katana/dropped(mob/user) +/obj/item/melee/sword/energy_katana/dropped(mob/user) . = ..() jaunt?.Remove(user) user.update_icons() @@ -55,7 +48,7 @@ //If we hit the Ninja who owns this Katana, they catch it. //Works for if the Ninja throws it or it throws itself or someone tries //To throw it at the ninja -/obj/item/energy_katana/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) +/obj/item/melee/sword/energy_katana/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(ishuman(hit_atom)) var/mob/living/carbon/human/H = hit_atom if(istype(H.wear_suit, /obj/item/clothing/suit/space/space_ninja)) @@ -66,7 +59,7 @@ ..() -/obj/item/energy_katana/proc/returnToOwner(mob/living/carbon/human/user, doSpark = 1, caught = 0) +/obj/item/melee/sword/energy_katana/proc/returnToOwner(mob/living/carbon/human/user, doSpark = 1, caught = 0) if(!istype(user)) return forceMove(get_turf(user)) @@ -94,7 +87,7 @@ to_chat(user, "[msg]") -/obj/item/energy_katana/Destroy() +/obj/item/melee/sword/energy_katana/Destroy() QDEL_NULL(spark_system) QDEL_NULL(jaunt) return ..() diff --git a/code/modules/ninja/outfit.dm b/code/modules/ninja/outfit.dm index 2b5976db4d59..1c3c24927bfd 100644 --- a/code/modules/ninja/outfit.dm +++ b/code/modules/ninja/outfit.dm @@ -12,7 +12,7 @@ l_pocket = /obj/item/grenade/c4/x4 r_pocket = /obj/item/tank/internals/emergency_oxygen internals_slot = ITEM_SLOT_RPOCKET - belt = /obj/item/energy_katana + belt = /obj/item/melee/sword/energy_katana implants = list(/obj/item/implant/explosive) diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index cb355014d4e7..4f368b630496 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -26,7 +26,7 @@ Contents: var/datum/effect_system/spark_spread/spark_system var/datum/techweb/stored_research var/obj/item/disk/tech_disk/t_disk//To copy design onto disk. - var/obj/item/energy_katana/energyKatana //For teleporting the katana back to the ninja (It's an ability) + var/obj/item/melee/sword/energy_katana/energyKatana //For teleporting the katana back to the ninja (It's an ability) //Other articles of ninja gear worn together, used to easily reference them after initializing. var/obj/item/clothing/head/helmet/space/space_ninja/n_hood 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/overmap/missions/acquire_mission.dm b/code/modules/overmap/missions/acquire_mission.dm index 1c9b9974ed1b..ea55beb00120 100644 --- a/code/modules/overmap/missions/acquire_mission.dm +++ b/code/modules/overmap/missions/acquire_mission.dm @@ -14,6 +14,7 @@ /datum/mission/acquire/accept(datum/overmap/ship/controlled/acceptor, turf/accept_loc) . = ..() container = spawn_bound(container_type, accept_loc, VARSET_CALLBACK(src, container, null)) + container.name += " ([capitalize(objective_type.name)])" /datum/mission/acquire/Destroy() container = null @@ -179,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 \ diff --git a/code/modules/overmap/missions/drill_mission.dm b/code/modules/overmap/missions/drill_mission.dm index 06859e8327d2..307d73d59592 100644 --- a/code/modules/overmap/missions/drill_mission.dm +++ b/code/modules/overmap/missions/drill_mission.dm @@ -21,7 +21,7 @@ sampler = spawn_bound(/obj/machinery/drill/mission, accept_loc, VARSET_CALLBACK(src, sampler, null)) sampler.mission_class = class_wanted sampler.num_wanted = num_wanted - + sampler.name += " (Class [class_wanted])" //Gives players a little extra money for going past the mission goal /datum/mission/drill/turn_in() value += (sampler.num_current - num_wanted)*50 diff --git a/code/modules/overmap/objects/dynamic_datum.dm b/code/modules/overmap/objects/dynamic_datum.dm index dcc62aad7424..1ca28df922aa 100644 --- a/code/modules/overmap/objects/dynamic_datum.dm +++ b/code/modules/overmap/objects/dynamic_datum.dm @@ -27,6 +27,8 @@ var/ruin_type /// list of ruins and their target turf, indexed by name var/list/ruin_turfs + /// list of ruin templates currently spawned on the planet. + var/list/spawned_ruins /// Whether or not the level is currently loading. var/loading = FALSE @@ -198,6 +200,7 @@ mapzone = dynamic_encounter_values[1] reserve_docks = dynamic_encounter_values[2] ruin_turfs = dynamic_encounter_values[3] + spawned_ruins = dynamic_encounter_values[4] loading = FALSE return TRUE diff --git a/code/modules/overmap/objects/event_datum.dm b/code/modules/overmap/objects/event_datum.dm index bfed840a1acd..d798fd74778a 100644 --- a/code/modules/overmap/objects/event_datum.dm +++ b/code/modules/overmap/objects/event_datum.dm @@ -194,55 +194,25 @@ chance_to_affect = 100 ///The currently linked wormhole var/datum/overmap/event/wormhole/other_wormhole - ///Amount of times a ship can pass through before it collapses - var/stability /datum/overmap/event/wormhole/Initialize(position, _other_wormhole, ...) . = ..() - stability = rand(1, 5) if(_other_wormhole) other_wormhole = _other_wormhole if(!other_wormhole) other_wormhole = new(null, src) //Create a new wormhole at a random location - token.color = adjust_colors() - token.light_color = adjust_colors() + token.color = "#6d80c7" + token.light_color = "#6d80c7" token.update_appearance() /datum/overmap/event/wormhole/affect_ship(datum/overmap/ship/controlled/S) if(!other_wormhole) qdel(src) - if(--stability <= 0) - var/list/results = SSovermap.get_unused_overmap_square() - S.overmap_move(results["x"], results["y"]) - QDEL_NULL(other_wormhole) - for(var/MN in GLOB.player_list) - var/mob/M = MN - if(S.shuttle_port.is_in_shuttle_bounds(M)) - M.playsound_local(S.shuttle_port, 'sound/effects/explosionfar.ogg', 100) - shake_camera(M, 10, 10) - - return qdel(src) - other_wormhole.stability = stability + return S.overmap_move(other_wormhole.x, other_wormhole.y) S.overmap_step(S.get_heading()) - token.color = adjust_colors() - token.light_color = adjust_colors() - -/datum/overmap/event/wormhole/proc/adjust_colors() - switch(stability) - if(1) - return "#753214" - if(2) - return "#642f19" - if(3) - return"#654650" - if(4) - return"#5c5d8b" - if(5) - return"#6d80c7" - //Carp "meteors" - throws carp at the ship /datum/overmap/event/meteor/carp diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index ec4b78629027..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 @@ -70,6 +70,8 @@ ///Stations the ship has been blacklisted from landing at, associative station = reason var/list/blacklisted = list() + var/datum/faction/faction_datum + /datum/overmap/ship/controlled/Rename(new_name, force = FALSE) var/oldname = name if(!..() || (!COOLDOWN_FINISHED(src, rename_cooldown) && !force)) @@ -110,6 +112,7 @@ refresh_engines() ship_account = new(name, source_template.starting_funds) + faction_datum = source_template.faction_datum #ifdef UNIT_TESTS Rename("[source_template]", TRUE) 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 = " 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 = " 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 = " 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 = " 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 = " 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 = " 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 = " 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 = " 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 = " 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/fax.dm b/code/modules/paperwork/fax.dm index bce7a3f322c5..0bf0a3eb51d3 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -36,7 +36,7 @@ /// List of types which should be allowed to be faxed if hacked var/static/list/exotic_types = list( /obj/item/reagent_containers/food/snacks/pizzaslice, - /obj/item/reagent_containers/food/snacks/breadslice, + /obj/item/food/breadslice, /obj/item/reagent_containers/food/snacks/donkpocket, /obj/item/reagent_containers/food/snacks/cookie, /obj/item/reagent_containers/food/snacks/salami, 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/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/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/code/modules/photography/_pictures.dm b/code/modules/photography/_pictures.dm index 511d75ac6c3f..6570cd00bb04 100644 --- a/code/modules/photography/_pictures.dm +++ b/code/modules/photography/_pictures.dm @@ -45,7 +45,7 @@ if(!picture_image) return var/icon/small_img = icon(picture_image) - var/icon/ic = icon('icons/obj/items_and_weapons.dmi', iconstate ? iconstate :"photo") + var/icon/ic = icon('icons/obj/items.dmi', iconstate ? iconstate :"photo") small_img.Scale(8, 8) ic.Blend(small_img,ICON_OVERLAY, 13, 13) picture_icon = ic diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 93b8319dbed7..c2096983fb03 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -4,7 +4,6 @@ /obj/item/camera name = "camera" - icon = 'icons/obj/items_and_weapons.dmi' desc = "A polaroid camera." icon_state = "camera" item_state = "camera" @@ -20,6 +19,7 @@ slot_flags = ITEM_SLOT_NECK custom_materials = list(/datum/material/iron = 50, /datum/material/glass = 150) custom_price = 120 + supports_variations = VOX_VARIATION var/flash_enabled = TRUE var/state_on = "camera" var/state_off = "camera_off" diff --git a/code/modules/photography/camera/film.dm b/code/modules/photography/camera/film.dm index b44b93361083..a6001011eb29 100644 --- a/code/modules/photography/camera/film.dm +++ b/code/modules/photography/camera/film.dm @@ -3,7 +3,6 @@ */ /obj/item/camera_film name = "film cartridge" - icon = 'icons/obj/items_and_weapons.dmi' desc = "A camera film cartridge. Insert it into a camera to reload it." icon_state = "film" item_state = "electropack" diff --git a/code/modules/photography/photos/album.dm b/code/modules/photography/photos/album.dm index 2ba5f5499307..19c2c1297f6b 100644 --- a/code/modules/photography/photos/album.dm +++ b/code/modules/photography/photos/album.dm @@ -4,7 +4,7 @@ /obj/item/storage/photo_album name = "photo album" desc = "A big book used to store photos and mementos." - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' icon_state = "album" item_state = "album" lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index 7274d477babb..ea3b4ff6a99d 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -3,7 +3,7 @@ */ /obj/item/photo name = "photo" - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' icon_state = "photo" item_state = "paper" w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f21f95692234..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) @@ -1492,9 +1492,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) update() addtimer(CALLBACK(src, PROC_REF(reset), APC_RESET_EMP), 600) -/obj/machinery/power/apc/blob_act(obj/structure/blob/B) - set_broken() - /obj/machinery/power/apc/disconnect_terminal() if(terminal) terminal.master = null diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 1a2f87c70dd9..b1847513a941 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -19,7 +19,8 @@ var/maxcharge = 1000 custom_materials = list(/datum/material/iron=700, /datum/material/glass=50) grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) - var/rigged = FALSE // true if rigged to explode + var/rigged = FALSE // true if rigged to + var/show_rigged = TRUE // whether if the cell shows it's fauly on examine. var/chargerate = 100 //how much power is given every tick in a recharger var/self_recharge = 0 //does it self recharge, over time, or not? var/ratingdesc = TRUE @@ -97,7 +98,7 @@ /obj/item/stock_parts/cell/examine(mob/user) . = ..() - if(rigged) + if(rigged && show_rigged) . += "This power cell seems to be faulty!" else . += "The charge meter reads [round(src.percent())]%." @@ -148,7 +149,6 @@ if(prob(25)) corrupt() -//WS Begin -- Ethereal Charge Scaling /obj/item/stock_parts/cell/attack_self(mob/user) if(iselzuose(user)) var/mob/living/carbon/human/H = user @@ -175,10 +175,6 @@ else to_chat(H, "You can't receive charge from [src]!") return -//WS End - -/obj/item/stock_parts/cell/blob_act(obj/structure/blob/B) - SSexplosions.highobj += src /obj/item/stock_parts/cell/proc/get_electrocute_damage() if(charge >= 1000) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 8d711ad804fa..c9367ceecfbe 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -13,6 +13,7 @@ var/lastgen = 0 var/lastgenlev = -1 + var/max_efficiency = 0.45 /obj/machinery/power/generator/Initialize(mapload) . = ..() @@ -75,12 +76,13 @@ if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) - var/efficiency = 0.45 //WS Edit - Nerfed down to Cit's efficiency + var/efficiency = LOGISTIC_FUNCTION(max_efficiency,0.0009,delta_temperature,10000) + //2nd (0.0009) effects how 'steep' the curve is, and 4th (10000) effects where the 'middle' is. var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) + lastgen += energy_transfer * efficiency var/heat = energy_transfer*(1-efficiency) - lastgen += LOGISTIC_FUNCTION(500000,0.0009,delta_temperature,10000) //WS Edit - Buries the 3x3 freezer heater TEG into the ground hot_air.set_temperature(hot_air.return_temperature() - energy_transfer/hot_air_heat_capacity) cold_air.set_temperature(cold_air.return_temperature() + heat/cold_air_heat_capacity) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 3ed7e262a53d..b9044a4690cb 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -32,10 +32,6 @@ if(severity == 1) // Very sturdy. set_broken() -/obj/machinery/gravity_generator/blob_act(obj/structure/blob/B) - if(prob(20)) - set_broken() - /obj/machinery/gravity_generator/zap_act(power, zap_flags) ..() if(zap_flags & ZAP_MACHINE_EXPLOSIVE) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index e92efb779d67..662bdbecc572 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -190,11 +190,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/light_construct, 32) return return ..() -/obj/structure/light_construct/blob_act(obj/structure/blob/B) - if(B && B.loc == loc) - qdel(src) - - /obj/structure/light_construct/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) new /obj/item/stack/sheet/metal(loc, sheets_refunded) @@ -942,6 +937,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) layer = 2.5 light_type = /obj/item/light/bulb fitting = "bulb" + no_emergency = TRUE #undef LIGHT_DRAIN_TIME //WS Edit -- Ethereal Charge Scaling #undef LIGHT_POWER_GAIN //WS Edit -- Ethereal Charge Scaling 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/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 1645afe9832b..07b1b0af3637 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -84,9 +84,6 @@ log_bomber(Proj.firer, "triggered a", src, "explosion via projectile") overload() -/obj/machinery/power/rtg/abductor/blob_act(obj/structure/blob/B) - overload() - /obj/machinery/power/rtg/abductor/ex_act() if(going_kaboom) qdel(src) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 77c400ae2b07..a6bebc3c1b88 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -56,9 +56,6 @@ if(BRUTE) playsound(loc, 'sound/effects/empulse.ogg', 75, TRUE) -/obj/machinery/field/containment/blob_act(obj/structure/blob/B) - return FALSE - /obj/machinery/field/containment/ex_act(severity, target) return FALSE diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 2dcaa224a71e..73920780bef3 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -357,16 +357,6 @@ if(user) user.visible_message("[user.name] emags [src].", "You short out the lock.") -/obj/machinery/power/emitter/ctf - name = "Energy Cannon" - active = TRUE - active_power_usage = FALSE - idle_power_usage = FALSE - locked = TRUE - req_access_txt = "100" - welded = TRUE - use_power = FALSE - /obj/machinery/power/emitter/welded/Initialize() welded = TRUE return ..() diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index d3e7a31d4cb9..9a965e4f85e3 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -165,12 +165,6 @@ field_generator power level display if(!anchored) step(src, get_dir(M, src)) -/obj/machinery/field/generator/blob_act(obj/structure/blob/B) - if(active) - return 0 - else - ..() - /obj/machinery/field/generator/bullet_act(obj/projectile/Proj) if(Proj.flag != "bullet") power = min(power + Proj.damage, field_generator_max_power) 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/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index b593d3f546bb..ac0e59d7080b 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -41,10 +41,6 @@ else if(istype(A, /obj/singularity)) var/obj/singularity/S = A S.energy += energy - else if(istype(A, /obj/structure/blob)) - var/obj/structure/blob/B = A - B.take_damage(energy*0.6) - movement_range = 0 /obj/effect/accelerated_particle/proc/on_entered(datum/source, atom/A) SIGNAL_HANDLER diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index ddcaf026a40e..0130297c87da 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -261,10 +261,6 @@ return ..() -/obj/machinery/particle_accelerator/control_box/blob_act(obj/structure/blob/B) - if(prob(50)) - qdel(src) - /obj/machinery/particle_accelerator/control_box/interact(mob/user) if(construction_state == PA_CONSTRUCTION_PANEL_OPEN) wires.interact(user) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 875f9cd441f2..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 ..() @@ -96,9 +96,6 @@ /obj/singularity/Process_Spacemove() //The singularity stops drifting for no man! return 0 -/obj/singularity/blob_act(obj/structure/blob/B) - return - /obj/singularity/attack_tk(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user diff --git a/code/modules/power/supermatter/cascade.dm b/code/modules/power/supermatter/cascade.dm index 52c36bf13c3d..9d388d8f0e04 100644 --- a/code/modules/power/supermatter/cascade.dm +++ b/code/modules/power/supermatter/cascade.dm @@ -69,14 +69,6 @@ qdel(rip_u) return -/turf/open/indestructible/supermatter_cascade/blob_act(obj/structure/blob/blob) - if(!blob || isspaceturf(loc)) //does nothing in space - return - playsound(src, 'sound/effects/supermatter.ogg', 50, TRUE) - blob.visible_message("\The [blob] strikes at \the [src] and rapidly flashes to ash.", - "You hear a loud crack as you are washed with a wave of heat.") - Consume(blob) - /turf/open/indestructible/supermatter_cascade/attack_paw(mob/user, list/modifiers) dust_mob(user, cause = "monkey attack") diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 5593744219d0..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 @@ -748,19 +748,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) qdel(src) return gain -/obj/machinery/power/supermatter_crystal/blob_act(obj/structure/blob/B) - if(B && !isspaceturf(loc)) //does nothing in space - playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, TRUE) - damage += B.obj_integrity * 0.5 //take damage equal to 50% of remaining blob health before it tried to eat us - if(B.obj_integrity > 100) - B.visible_message("\The [B] strikes at \the [src] and flinches away!",\ - "You hear a loud crack as you are washed with a wave of heat.") - B.take_damage(100, BURN) - else - B.visible_message("\The [B] strikes at \the [src] and rapidly flashes to ash.",\ - "You hear a loud crack as you are washed with a wave of heat.") - Consume(B) - /obj/machinery/power/supermatter_crystal/attack_tk(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user @@ -817,7 +804,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) /obj/machinery/power/supermatter_crystal/attackby(obj/item/W, mob/living/user, params) if(!istype(W) || (W.item_flags & ABSTRACT) || !istype(user)) return - if(istype(W, /obj/item/melee/roastingstick)) + if(istype(W, /obj/item/roastingstick)) return ..() if(istype(W, /obj/item/clothing/mask/cigarette)) var/obj/item/clothing/mask/cigarette/cig = W diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index fbece73764a4..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 . = ..() @@ -280,12 +280,6 @@ else if(closest_type >= BLOB) continue - else if(istype(A, /obj/structure/blob)) - var/obj/structure/blob/B = A - if(!(B.obj_flags & BEING_SHOCKED)) - closest_type = BLOB - closest_atom = A - else if(closest_type >= STRUCTURE) continue diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm index 93fa4208d571..bdc5254f13c9 100644 --- a/code/modules/projectiles/ammunition/_firing.dm +++ b/code/modules/projectiles/ammunition/_firing.dm @@ -1,7 +1,7 @@ -/obj/item/ammo_casing/proc/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from) +/obj/item/ammo_casing/proc/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from, misfire = FALSE) distro += variance var/targloc = get_turf(target) - ready_proj(target, user, quiet, zone_override, fired_from) + ready_proj(target, user, quiet, zone_override, fired_from, misfire) if(pellets == 1) if(distro) //We have to spread a pixel-precision bullet. throw_proj was called before so angles should exist by now... if(randomspread) @@ -15,19 +15,20 @@ return FALSE AddComponent(/datum/component/pellet_cloud, projectile_type, pellets) SEND_SIGNAL(src, COMSIG_PELLET_CLOUD_INIT, target, user, fired_from, randomspread, spread, zone_override, params, distro) + if(user) + if(click_cooldown_override) + user.changeNext_move(click_cooldown_override) - if(click_cooldown_override) - user.changeNext_move(click_cooldown_override) - - user.newtonian_move(get_dir(target, user)) + user.newtonian_move(get_dir(target, user)) update_appearance() return TRUE -/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "", atom/fired_from) +/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "", atom/fired_from, misfire = FALSE) if (!BB) return BB.original = target BB.firer = user + BB.misfire = misfire BB.fired_from = fired_from if (zone_override) BB.def_zone = zone_override @@ -45,7 +46,11 @@ qdel(reagents) /obj/item/ammo_casing/proc/throw_proj(atom/target, turf/targloc, mob/living/user, params, spread) - var/turf/curloc = get_turf(user) + var/turf/curloc + if(user) + curloc = get_turf(user) + else + curloc = get_turf(src) if (!istype(targloc) || !istype(curloc) || !BB) return FALSE @@ -60,7 +65,10 @@ if(target) //if the target is right on our location we'll skip the travelling code in the proj's fire() direct_target = target if(!direct_target) - BB.preparePixelProjectile(target, user, params, spread) + if(user) + BB.preparePixelProjectile(target, user, params, spread) + else + BB.preparePixelProjectile(target, curloc, params, spread) BB.fire(null, direct_target) BB = null return TRUE diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 0f37b5426d2d..e8cb64a673d2 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -1,4 +1,4 @@ -// 10mm (Stechkin) +// 10mm (Ringneck) /obj/item/ammo_casing/c10mm name = "10mm bullet casing" 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/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index b3875292fba2..9f71e2973848 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -36,14 +36,14 @@ projectile_type = /obj/projectile/bullet/a300 bullet_per_box = 20 -// 5.56x39mm (M-90gl Carbine & P-16) +// 5.56x42mm CLIP (CM82, Hydra variants) -/obj/item/ammo_casing/a556_39 - name = "5.56x39mm bullet casing" - desc = "A 5.56x39mm bullet casing." +/obj/item/ammo_casing/a556_42 + name = "5.56x42mm CLIP bullet casing" + desc = "A 5.56x42mm CLIP bullet casing." icon_state = "rifle-brass" - caliber = "5.56x45mm" - projectile_type = /obj/projectile/bullet/a556_45 + caliber = "5.56x42mm" + projectile_type = /obj/projectile/bullet/a556_42 bullet_per_box = 80 // 5.45x39mm (SKM-24v) @@ -74,22 +74,6 @@ projectile_type = /obj/projectile/bullet/a762_40 bullet_per_box = 80 -// .300 Blackout (Polymer Survivor Rifle) - -/obj/item/ammo_casing/aac_300blk - name = ".300 BLK bullet casing" - desc = "A .300 Blackout bullet casing." - icon_state = "rifle-steel" - caliber = ".300 BLK" - projectile_type = /obj/projectile/bullet/aac_300blk - bullet_per_box = 20 - -/obj/item/ammo_casing/aac_300blk/recycled - name = "recycled .300 BLK bullet casing" - desc = "A recycled .300 Blackout bullet casing." - caliber = ".300 BLK" - projectile_type = /obj/projectile/bullet/aac_300blk - //.308 (M514 EBR & CM-GAL-S) /obj/item/ammo_casing/a308 @@ -101,9 +85,16 @@ bullet_per_box = 20 /obj/item/ammo_casing/caseless/c299 - name = ".229 Eoehoma caseless bullet casing" - desc = "A .229 Eoehoma caseless bullet casing." + name = ".299 Eoehoma caseless bullet casing" + desc = "A .299 Eoehoma caseless bullet casing." icon_state = "caseless" caliber = ".299 caseless" projectile_type = /obj/projectile/bullet/c299 bullet_per_box = 100 + +/obj/item/ammo_casing/a65clip + name = "6.5x57mm CLIP bullet casing" + desc = "A 6.5x57mm CLIP bullet casing." + icon_state = "big-brass" + caliber = "6.5CLIP" + projectile_type = /obj/projectile/bullet/a65clip 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/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index 74bb35b1ec2e..39086b8cc66f 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -1,3 +1,13 @@ +// 5.7x39mm (Asp and Sidewinder) + +/obj/item/ammo_casing/c57x39mm + name = "5.7x39mm bullet casing" + desc = "A 5.7x39mm bullet casing." + icon_state = "rifle-steel" + caliber = "5.7x39mm" + projectile_type = /obj/projectile/bullet/c57x39mm + bullet_per_box = 50 + // 4.6x30mm (WT-550 Automatic Rifle & SKM-24v) /obj/item/ammo_casing/c46x30mm diff --git a/code/modules/projectiles/ammunition/caseless/rocket.dm b/code/modules/projectiles/ammunition/caseless/rocket.dm index 9ebb6d88f2d7..3eccf800defe 100644 --- a/code/modules/projectiles/ammunition/caseless/rocket.dm +++ b/code/modules/projectiles/ammunition/caseless/rocket.dm @@ -8,7 +8,7 @@ /obj/item/ammo_casing/caseless/rocket/hedp name = "\improper PM-9HEDP" - desc = "An 84mm High Explosive Dual Purpose rocket. Pointy end toward mechs." + desc = "An 84mm High Explosive Dual Purpose rocket. Pointy end toward armor." caliber = "84mm" icon_state = "84mm-hedp" projectile_type = /obj/projectile/bullet/a84mm diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index d0334e8d8acc..674d1e4514d8 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -169,6 +169,11 @@ impact_light_range = 2.5 impact_light_color_override = COLOR_CYAN +/obj/projectile/beam/hitscan/disabler/heavy + damage = 30 + armour_penetration = -10 + + /obj/item/ammo_casing/energy/laser/minigun select_name = "kill" projectile_type = /obj/projectile/beam/weak/penetrator diff --git a/code/modules/projectiles/ammunition/energy/lmg.dm b/code/modules/projectiles/ammunition/energy/lmg.dm index 434b29a1d3f2..632fb35785cd 100644 --- a/code/modules/projectiles/ammunition/energy/lmg.dm +++ b/code/modules/projectiles/ammunition/energy/lmg.dm @@ -15,13 +15,13 @@ /obj/item/ammo_casing/energy/csour projectile_type = /obj/projectile/bullet/csour select_name = "sour" - fire_sound = 'sound/weapons/gun/shotgun/shot_old.ogg' + fire_sound = 'sound/weapons/gun/shotgun/shot.ogg' e_cost = 50 firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect /obj/item/ammo_casing/energy/csweet projectile_type = /obj/projectile/bullet/csweet select_name = "sweet" - fire_sound = 'sound/weapons/gun/sniper/shot_old.ogg' + fire_sound = 'sound/weapons/gun/sniper/shot.ogg' e_cost = 70 firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect 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/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 3b1bdbc6eb1c..7f92dfad16a6 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -125,6 +125,26 @@ to_chat(user, "You load [num_loaded] cartridge\s into \the [src]!") return num_loaded +/obj/item/ammo_box/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + var/num_loaded = 0 + var/obj/item/storage/belt/bandolier/to_load + if(istype(target,/obj/item/storage/belt/bandolier)) + to_load = target + var/datum/component/storage/storage_to_load = to_load.GetComponent(/datum/component/storage) + for(var/obj/item/ammo_casing/casing_to_insert in stored_ammo) + if(!((to_load.contents.len >= storage_to_load.get_max_volume()) || do_after(user, 0.5 SECONDS, src))) + break + if(!storage_to_load.can_be_inserted(casing_to_insert,TRUE,user)) + break + storage_to_load.handle_item_insertion(casing_to_insert,TRUE,user) + stored_ammo -= casing_to_insert + playsound(get_turf(src), 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) + num_loaded++ + update_ammo_count() + if(num_loaded) + to_chat(user, "You load [num_loaded] cartridge\s into \the [to_load]!") + return /obj/item/ammo_box/attack_self(mob/user) var/obj/item/ammo_casing/A = get_round() if(!A) diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 955856704ac6..5b78f1fc93a1 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -2,12 +2,12 @@ /obj/item/ammo_box/a357 name = "speed loader (.357)" - desc = "A 7-round speed loader for quickly reloading .357 revolvers. These rounds do good damage with average performance against armor." - icon_state = "speedloader_357-7" + desc = "A 6-round speed loader for quickly reloading .357 revolvers. These rounds do good damage with average performance against armor." + icon_state = "speedloader_357-6" base_icon_state = "speedloader_357" ammo_type = /obj/item/ammo_casing/a357 caliber = ".357" - max_ammo = 7 + max_ammo = 6 multiple_sprites = AMMO_BOX_PER_BULLET item_flags = NO_MAT_REDEMPTION w_class = WEIGHT_CLASS_TINY @@ -18,12 +18,12 @@ /obj/item/ammo_box/a357/match name = "speed loader (.357 match)" - desc = "A 7-round speed loader for quickly reloading .357 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets." + desc = "A 6-round speed loader for quickly reloading .357 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets." ammo_type = /obj/item/ammo_casing/a357/match /obj/item/ammo_box/a357/hp name = "speed loader (.357 hollow point)" - desc = "A 7-round speed loader for quickly reloading .357 revolvers. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones." + desc = "A 6-round speed loader for quickly reloading .357 revolvers. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones." ammo_type = /obj/item/ammo_casing/a357/hp /obj/item/ammo_box/a357_box @@ -55,24 +55,24 @@ desc = "A box of top grade .45-70 ammo. These rounds do significant damage with average performance against armor." icon_state = "4570" ammo_type = /obj/item/ammo_casing/a4570 - max_ammo = 12 + max_ammo = 18 /obj/item/ammo_box/a4570/match name = "ammo box (.45-70 match)" - desc = "A 12-round ammo box for .45-70 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets." + desc = "A 18-round ammo box for .45-70 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets." icon_state = "4570-match" ammo_type = /obj/item/ammo_casing/a4570/match /obj/item/ammo_box/a4570/hp name = "ammo box (.45-70 hollow point)" - desc = "A 12-round ammo box for .45-70 revolvers. These hollow point rounds do legendary damage against soft targets, but are nearly ineffective against armored ones." + desc = "A 18-round ammo box for .45-70 revolvers. These hollow point rounds do legendary damage against soft targets, but are nearly ineffective against armored ones." icon_state = "4570-hp" ammo_type = /obj/item/ammo_casing/a4570/hp /obj/item/ammo_box/a4570/explosive name = "ammo box (.45-70 explosive)" - desc = "A 12-round ammo box for .45-70 revolvers. These explosive rounds contain a small explosive charge that detonates on impact, creating large wounds and potentially removing limbs." + desc = "A 18-round ammo box for .45-70 revolvers. These explosive rounds contain a small explosive charge that detonates on impact, creating large wounds and potentially removing limbs." icon_state = "4570-explosive" ammo_type = /obj/item/ammo_casing/a4570/explosive @@ -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 @@ -136,6 +136,9 @@ multiple_sprites = AMMO_BOX_PER_BULLET instant_load = TRUE +/obj/item/ammo_box/a858/empty + start_empty = TRUE + // .308 Stripper Clip (Vickland) /obj/item/ammo_box/vickland_a308 @@ -149,6 +152,8 @@ w_class = WEIGHT_CLASS_TINY instant_load = TRUE +/obj/item/ammo_box/vickland_a308/empty + start_empty = TRUE // .300 Magnum Stripper Clip (Scout) @@ -164,19 +169,22 @@ /obj/item/ammo_box/a300/empty start_empty = TRUE -// .300 Blackout Stripper Clip (Polymer Survivor Rifle) +// 7.62 Stripper Clip (Polymer Survivor Rifle) -/obj/item/ammo_box/aac_300blk_stripper - name = "stripper clip (.300 BLK)" +/obj/item/ammo_box/a762_stripper + name = "stripper clip (7.62)" desc = "A 5-round stripper clip for makeshift bolt-action rifles. These rounds do good damage with good armor penetration." - icon_state = "300m" - ammo_type = /obj/item/ammo_casing/aac_300blk - caliber = ".300 BLK" + icon_state = "stripper_308-5" + base_icon_state = "stripper_308" + ammo_type = /obj/item/ammo_casing/a762_40 + caliber = "7.62x40mm" max_ammo = 5 multiple_sprites = AMMO_BOX_PER_BULLET w_class = WEIGHT_CLASS_TINY instant_load = TRUE +/obj/item/ammo_box/a762_stripper/empty + start_empty = TRUE // Ferromagnetic Pellet Speed Loader (Claris) /obj/item/ammo_box/amagpellet_claris @@ -205,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." @@ -230,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." @@ -284,7 +310,7 @@ name = "ammo box (10mm rubbershot)" desc = "A box of 10mm rubbershot ammo, designed to disable targets without causing serious damage." icon_state = "10mmbox-rubbershot" - ammo_type = /obj/item/ammo_casing/c9mm/rubber + ammo_type = /obj/item/ammo_casing/c10mm/rubber /obj/item/ammo_box/c10mm/ap name = "ammo box (10mm armor-piercing)" @@ -390,6 +416,13 @@ /obj/item/ammo_box/a762_40/inteq icon_state = "a762_40box_big_inteq" +/obj/item/ammo_box/a556_42 + name = "ammo box (5.56x42mm CLIP)" + icon_state = "a556_42box_big" + ammo_type = /obj/item/ammo_casing/a556_42 + max_ammo = 120 + w_class = WEIGHT_CLASS_NORMAL + /obj/item/ammo_box/a308 name = "ammo box (.308)" icon_state = "a308box" @@ -435,6 +468,14 @@ /obj/item/ammo_box/a44roum_speedloader/empty start_empty = TRUE +/obj/item/ammo_box/c57x39mm_box + name = "ammo box (5.7x39mm)" + desc = "A box of standard 5.7x39mm ammo." + icon_state = "57x39mmbox" + ammo_type = /obj/item/ammo_casing/c57x39mm + max_ammo = 50 + + /obj/item/ammo_box/c46x30mm_box name = "ammo box (4.6x30mm)" desc = "A box of standard 4.6x30mm ammo." @@ -447,7 +488,7 @@ desc = "A box of standard 8x50mm ammo." icon_state = "8x50mmbox" ammo_type = /obj/item/ammo_casing/a8_50r - max_ammo = 20 + max_ammo = 25 /obj/item/ammo_box/ferropelletbox name = "ammo box (ferromagnetic pellets)" @@ -484,6 +525,16 @@ ammo_type = /obj/item/ammo_casing/a300 max_ammo = 20 +/obj/item/ammo_box/a65clip_box + name = "ammo box (6.5x57mm CLIP)" + desc = "A box of standard 6.5x57mm CLIP ammo." + icon_state = "65box" + ammo_type = /obj/item/ammo_casing/a65clip + max_ammo = 20 + +/obj/item/ammo_box/a65clip_box/syndicate + icon_state = "65box_sa" + /obj/item/ammo_box/a44roum name = "ammo box (.44 roumain)" desc = "A box of standard .44 roumain ammo." @@ -504,3 +555,11 @@ icon_state = "a44roum-hp" ammo_type = /obj/item/ammo_casing/a44roum/hp max_ammo = 50 + +/obj/item/ammo_box/c299 + name = "ammo box (.299 Eoehoma caseless)" + desc = "A box of .299 Eoehoma caseless, for use with the E-40 hybrid assault rifle." + icon_state = "299box" + ammo_type = /obj/item/ammo_casing/caseless/c299 + max_ammo = 120 + w_class = WEIGHT_CLASS_NORMAL // This is a lot of ammo diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index fdf1b7985b29..e69de29bb2d1 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -1,33 +0,0 @@ -/obj/item/ammo_box/magazine/mm712x82 - name = "box magazine (7.12x82mm)" - desc = "A 50-round box magazine for the L6 SAW machine gun. These rounds do moderate damage with significant armor penetration." - icon_state = "a762-100" - base_icon_state = "a762" - ammo_type = /obj/item/ammo_casing/mm712x82 - caliber = "7.12x82mm" - max_ammo = 100 - w_class = WEIGHT_CLASS_NORMAL - -/obj/item/ammo_box/magazine/mm712x82/hollow - name = "box magazine (7.12x82mm HP)" - desc = "A 50-round box magazine for the L6 SAW machine gun. These hollow point rounds do incredible damage against soft targets, but struggle against armored ones." - ammo_type = /obj/item/ammo_casing/mm712x82/hp - -/obj/item/ammo_box/magazine/mm712x82/ap - name = "box magazine (7.12x82mm AP)" - desc = "A 50-round box magazine for the L6 SAW machine gun. These armor-piercing rounds are nearly perfect at piercing protective equipment." - ammo_type = /obj/item/ammo_casing/mm712x82/ap - -/obj/item/ammo_box/magazine/mm712x82/inc - name = "box magazine (7.12x82mm incendiary)" - desc = "A 50-round box magazine for the L6 SAW machine gun. These incendiary rounds deal mediocre damage, but leave flaming trails which set targets ablaze." - ammo_type = /obj/item/ammo_casing/mm712x82/inc - -/obj/item/ammo_box/magazine/mm712x82/match - name = "box magazine (7.12x82mm match)" - desc = "A 50-round box magazine for the L6 SAW machine gun. These match rounds travel quicker with incredible armor penetration. Can also ricochet off targets." - ammo_type = /obj/item/ammo_casing/mm712x82/match - -/obj/item/ammo_box/magazine/mm712x82/update_icon_state() - . = ..() - icon_state = "[base_icon_state]-[round(ammo_count(), 20)]" diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index 8a1792485715..90d2c7e4546e 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -1,36 +1,3 @@ -/obj/item/ammo_box/magazine/m10mm - name = "pistol magazine (10mm)" - desc = "An 8-round single-stack magazine for the stechkin pistol. These rounds do moderate damage, but struggle against armor." - icon_state = "stechkin_mag-1" - base_icon_state = "stechkin_mag" - ammo_type = /obj/item/ammo_casing/c10mm - caliber = "10mm" - max_ammo = 8 - multiple_sprites = AMMO_BOX_FULL_EMPTY - -/obj/item/ammo_box/magazine/m10mm/empty - start_empty = TRUE - -/obj/item/ammo_box/magazine/m10mm/inc - name = "pistol magazine (10mm incendiary)" - desc = "An 8-round single-stack magazine for the stechkin pistol. These incendiary rounds deal mediocre damage, but leave flaming trails which set targets ablaze." - ammo_type = /obj/item/ammo_casing/c10mm/inc - -/obj/item/ammo_box/magazine/m10mm/hp - name = "pistol magazine (10mm HP)" - desc = "An 8-round single-stack magazine for the stechkin pistol. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones." - ammo_type = /obj/item/ammo_casing/c10mm/hp - -/obj/item/ammo_box/magazine/m10mm/ap - name = "pistol magazine (10mm AP)" - desc = "An 8-round single-stack magazine for the stechkin pistol. These armor-piercing rounds are okay at piercing protective equipment, but lose some stopping power." - ammo_type = /obj/item/ammo_casing/c10mm/ap - -/obj/item/ammo_box/magazine/m10mm/rubber - name = "pistol magazine (10mm rubber)" - desc = "An 8-round handgun magazine for the stechkin pistol. These rubber rounds trade lethality for a heavy impact which can incapacitate targets. Performs even worse against armor." - ammo_type = /obj/item/ammo_casing/c10mm/rubber - /obj/item/ammo_box/magazine/m45 name = "pistol magazine (.45)" desc = "An 8-round single-stack magazine for the Candor pistol. These rounds do moderate damage, but struggle against armor." @@ -127,16 +94,6 @@ . = ..() icon_state = "[base_icon_state]-[ammo_count() == 1 ? 1 : round(ammo_count(),2)]" -/obj/item/ammo_box/magazine/pistolm9mm - name = "large pistol magazine (9mm)" - desc = "A long, 15-round double-stack magazine designed for the stechkin APS pistol. These rounds do okay damage, but struggle against armor." - icon_state = "stechkin_mag-1" - base_icon_state = "stechkin_mag" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" - max_ammo = 15 - multiple_sprites = AMMO_BOX_FULL_EMPTY - /obj/item/ammo_box/magazine/m50 name = "handgun magazine (.50 AE)" desc = "An oversized, 7-round handgun magazine for the Desert Eagle handgun. These rounds do significant damage with average performance against armor." @@ -165,14 +122,3 @@ caliber = "9mm" max_ammo = 4 custom_materials = list(/datum/material/iron = 20000) - -/obj/item/ammo_box/magazine/m22lr - name = "pistol magazine (.22 LR)" - desc = "A single-stack handgun magazine designed to chamber .22 LR. It's rather tiny, all things considered." - icon_state = "himehabu_mag-10" - base_icon_state = "himehabu_mag" - ammo_type = /obj/item/ammo_casing/c22lr - caliber = "22lr" - max_ammo = 10 - w_class = WEIGHT_CLASS_TINY - multiple_sprites = AMMO_BOX_PER_BULLET diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index 9224c0db84af..ad15e7ecea2a 100644 --- a/code/modules/projectiles/boxes_magazines/external/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm @@ -1,4 +1,4 @@ -/obj/item/ammo_box/magazine/m10mm/rifle +/obj/item/ammo_box/magazine/m10mm_ringneck/rifle name = "rifle magazine (10mm)" desc = "A well-worn, 10-round magazine for the surplus rifle. These rounds do moderate damage, but struggle against armor." icon_state = "75-8" @@ -7,17 +7,17 @@ caliber = "10mm" max_ammo = 10 -/obj/item/ammo_box/magazine/m10mm/rifle/update_icon_state() +/obj/item/ammo_box/magazine/m10mm_ringneck/rifle/update_icon_state() . = ..() icon_state = "[base_icon_state]-[ammo_count() ? "8" : "0"]" -/obj/item/ammo_box/magazine/m556 - name = "toploader magazine (5.56x45mm)" +/obj/item/ammo_box/magazine/m556_42_hydra + name = "toploader magazine (5.56x42mm)" desc = "An advanced, 30-round toploading magazine for the M-90gl Carbine. These rounds do moderate damage with good armor penetration." icon_state = "5.56m-1" base_icon_state = "5.56m" - ammo_type = /obj/item/ammo_casing/a556_39 - caliber = "5.56x45mm" + ammo_type = /obj/item/ammo_casing/a556_42 + caliber = "5.56x42mm" max_ammo = 30 multiple_sprites = AMMO_BOX_FULL_EMPTY @@ -73,21 +73,9 @@ max_ammo = 75 w_class = WEIGHT_CLASS_NORMAL -/obj/item/ammo_box/magazine/ebr - name = "battle rifle magazine (.308)" - desc = "A small, 10-round steel magazine for the M514 EBR. These rounds do good damage with significant armor penetration." - icon_state = "ebr_mag" - ammo_type = /obj/item/ammo_casing/a308 - caliber = ".308" - max_ammo = 10 - -/obj/item/ammo_box/magazine/ebr/update_icon_state() - . = ..() - icon_state = "ebr_mag-[!!ammo_count()]" - -/obj/item/ammo_box/magazine/gal - name = "\improper GAL Magazine (.308)" - desc = "A standard 10-round magazine for GAL platform DMRs. These rounds do good damage with significant armor penetration." +/obj/item/ammo_box/magazine/f4_308 + name = "\improper F4 Magazine (.308)" + desc = "A standard 10-round magazine for F4 platform DMRs. These rounds do good damage with significant armor penetration." icon_state = "gal_mag-1" base_icon_state = "gal_mag" ammo_type = /obj/item/ammo_casing/a308 @@ -95,13 +83,13 @@ max_ammo = 10 multiple_sprites = AMMO_BOX_FULL_EMPTY -/obj/item/ammo_box/magazine/p16 - name = "assault rifle magazine (5.56x45mm)" - desc = "A simple, 30-round magazine for 5.56x45mm assault rifles. These rounds do moderate damage with good armor penetration." +/obj/item/ammo_box/magazine/p16 //repath to /obj/item/ammo_box/magazine/generic_556 sometime + name = "assault rifle magazine (5.56x42mm CLIP)" + desc = "A simple, 30-round magazine for 5.56x42mm CLIP assault rifles. These rounds do moderate damage with good armor penetration." icon_state = "p16_mag-1" base_icon_state = "p16_mag" - ammo_type = /obj/item/ammo_casing/a556_39 - caliber = "5.56x45mm" + ammo_type = /obj/item/ammo_casing/a556_42 + caliber = "5.56x42mm" max_ammo = 30 multiple_sprites = AMMO_BOX_FULL_EMPTY @@ -109,17 +97,17 @@ start_empty = TRUE /obj/item/ammo_box/magazine/swiss - name = "\improper Swiss Cheese Magazine (5.56x45mm)" + name = "\improper Swiss Cheese Magazine (5.56x42mm CLIP)" desc = "A deft, 30-round magazine for the Swiss Cheese assault rifle. These rounds do moderate damage with good armor penetration." icon_state = "swissmag-1" base_icon_state = "swissmag" - ammo_type = /obj/item/ammo_casing/a556_39 - caliber = "5.56x45mm" + ammo_type = /obj/item/ammo_casing/a556_42 + caliber = "5.56x42mm" max_ammo = 30 multiple_sprites = AMMO_BOX_FULL_EMPTY /obj/item/ammo_box/magazine/e40 - name = "E-40 magazine (.229 Eoehoma caseless)" + name = "E-40 magazine (.299 Eoehoma caseless)" icon_state = "e40_mag-1" base_icon_state = "e40_mag" ammo_type = /obj/item/ammo_casing/caseless/c299 diff --git a/code/modules/projectiles/boxes_magazines/external/shotgun.dm b/code/modules/projectiles/boxes_magazines/external/shotgun.dm index 3c9aaad1f6f6..9803b0feb084 100644 --- a/code/modules/projectiles/boxes_magazines/external/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/external/shotgun.dm @@ -1,43 +1,4 @@ -/obj/item/ammo_box/magazine/m12g - name = "shotgun drum magazine (12g buckshot)" - desc = "A bulky 8-round drum designed for the Bulldog shotgun and it's derivatives." - icon_state = "bulldog_drum-1" - base_icon_state = "bulldog_drum" - ammo_type = /obj/item/ammo_casing/shotgun/buckshot - caliber = "12ga" - max_ammo = 8 - w_class = WEIGHT_CLASS_NORMAL - multiple_sprites = AMMO_BOX_FULL_EMPTY - -/obj/item/ammo_box/magazine/m12g/stun - name = "shotgun drum magazine (12g taser slugs)" - ammo_type = /obj/item/ammo_casing/shotgun/stunslug - -/obj/item/ammo_box/magazine/m12g/slug - name = "shotgun drum magazine (12g slugs)" - ammo_type = /obj/item/ammo_casing/shotgun - -/obj/item/ammo_box/magazine/m12g/dragon - name = "shotgun drum magazine (12g dragon's breath)" - ammo_type = /obj/item/ammo_casing/shotgun/dragonsbreath - -/obj/item/ammo_box/magazine/m12g/bioterror - name = "shotgun drum magazine (12g bioterror)" - ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror - -/obj/item/ammo_box/magazine/m12g/meteor - name = "shotgun drum magazine (12g meteor slugs)" - ammo_type = /obj/item/ammo_casing/shotgun/meteorslug - -/obj/item/ammo_box/magazine/m12g/small //shouldnt this be the parrent intsead of the drum - name = "shotgun box magazine (12g buckshot)" - desc = "A single-stack, 6-round box magazine for the Bulldog shotgun and it's derivatives." - icon_state = "bulldog_mag-1" - base_icon_state = "bulldog_mag" - max_ammo = 6 - w_class = WEIGHT_CLASS_SMALL //Smaller, holds less - -/obj/item/ammo_box/magazine/cm15_mag +/obj/item/ammo_box/magazine/cm15_12g name = "CM-15 magazine (12g buckshot)" desc = "An almost straight, 8-round magazine designed for the CM-15 shotgun." icon_state = "cm15_mag-1" diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index 4c464c0433d0..fdd4ab2d2b45 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -28,19 +28,6 @@ base_icon_state = "46x30mmtI" ammo_type = /obj/item/ammo_casing/c46x30mm/inc -/obj/item/ammo_box/magazine/uzim9mm - name = "long SMG magazine (9mm)" - desc = "A thin, 32-round magazine for the Uzi SMG. These rounds do okay damage, but struggle against armor." - icon_state = "uzi9mm-32" - base_icon_state = "uzi9mm" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" - max_ammo = 32 - -/obj/item/ammo_box/magazine/uzim9mm/update_icon_state() - . = ..() - icon_state = "[base_icon_state]-[round(ammo_count(),4)]" - /obj/item/ammo_box/magazine/smgm9mm name = "SMG magazine (9mm)" desc = "A 30-round magazine for 9mm submachine guns. These rounds do okay damage, but struggle against armor." @@ -87,7 +74,7 @@ desc = "A 24-round magazine for the SkM-44(k). These rubber rounds trade lethality for a heavy impact which can incapacitate targets. Performs even worse against armor." ammo_type = /obj/item/ammo_casing/c10mm/rubber -/obj/item/ammo_box/magazine/smgm45 +/obj/item/ammo_box/magazine/m45_cobra name = "SMG magazine (.45)" desc = "A 24-round magazine for .45 submachine guns. These rounds do moderate damage, but struggle against armor." icon_state = "c20r45-24" @@ -96,17 +83,17 @@ caliber = ".45" max_ammo = 24 -/obj/item/ammo_box/magazine/smgm45/update_icon_state() //This is stupid (whenever ammo is spent, it updates the icon path) +/obj/item/ammo_box/magazine/m45_cobra/update_icon_state() //This is stupid (whenever ammo is spent, it updates the icon path) . = ..() icon_state = "c20r45-[round(ammo_count(),2)]" -/obj/item/ammo_box/magazine/smgm45/empty +/obj/item/ammo_box/magazine/m45_cobra/empty start_empty = TRUE /obj/item/ammo_box/magazine/c45_firestorm_mag name = "stick magazine (.45)" desc = "A 28-round stick magazine for the toploading Firestorm submachine gun. These rounds do moderate damage, but struggle against armor." - icon_state = "firestorm_mag" + icon_state = "firestorm_mag-1" base_icon_state = "firestorm_mag" ammo_type = /obj/item/ammo_casing/c45 caliber = ".45" @@ -120,17 +107,10 @@ name = "pan magazine (.45)" desc = "A bulky, 50-round pan magazine for the toploading Firestorm submachine gun. These rounds struggle against armor, but with this many you could cut anyone down regardless." icon_state = "firestorm_pan" + base_icon_state = "firestorm_pan" max_ammo = 50 w_class = WEIGHT_CLASS_NORMAL /obj/item/ammo_box/magazine/c45_firestorm_mag/pan/update_icon_state() //Causes the mag to NOT inherit the parent's update_icon oooh the misery . = ..() icon_state = "firestorm_pan" - -/obj/item/ammo_box/magazine/tec9 - name = "machine pistol magazine (9mm AP)" - desc = "A sizable 20-round magazine for the TEC-9 machine pistol. These armor-piercing rounds are okay at piercing protective equipment, but lose some stopping power.." - icon_state = "tec_mag" - ammo_type = /obj/item/ammo_casing/c9mm/ap - caliber = "9mm" - max_ammo = 20 diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm index 608faa67a974..c3cbecfcc48c 100644 --- a/code/modules/projectiles/boxes_magazines/external/toy.dm +++ b/code/modules/projectiles/boxes_magazines/external/toy.dm @@ -21,46 +21,10 @@ /obj/item/ammo_box/magazine/toy/pistol name = "foam force pistol magazine" desc = "A toy pistol magazine designed to fit harmless foam darts." - icon_state = "stechkin_mag-1" - base_icon_state = "stechkin_mag" + icon_state = "toy_magazine-1" + base_icon_state = "toy_magazine" max_ammo = 8 multiple_sprites = AMMO_BOX_FULL_EMPTY /obj/item/ammo_box/magazine/toy/pistol/riot ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - -/obj/item/ammo_box/magazine/toy/smgm45 - name = "donksoft SMG magazine" - desc = "A toy submachine gun magazine designed to fit harmless foam darts." - icon_state = "c20r45-toy" - base_icon_state = "c20r45" - caliber = "foam_force" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - max_ammo = 20 - -/obj/item/ammo_box/magazine/toy/smgm45/update_icon_state() - . = ..() - icon_state = "[base_icon_state]-[round(ammo_count(), 2)]" - -/obj/item/ammo_box/magazine/toy/smgm45/riot - icon_state = "c20r45-riot" - desc = "A toy submachine gun magazine designed to fit legally-harmless riot control darts." - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - -/obj/item/ammo_box/magazine/toy/m762 - name = "donksoft box magazine" - desc = "A huge toy LMG magazine designed to fit vast quantities of harmless foam darts." - icon_state = "a762-100" - base_icon_state = "a762" - caliber = "foam_force" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart - max_ammo = 50 - w_class = WEIGHT_CLASS_NORMAL - -/obj/item/ammo_box/magazine/toy/m762/update_icon_state() - . = ..() - icon_state = "[base_icon_state]-[round(ammo_count(), 10)]" - -/obj/item/ammo_box/magazine/toy/m762/riot - desc = "A huge toy LMG magazine designed to fit vast quantities of legally-harmless riot control darts." - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot diff --git a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm index 658eef2d781c..a4282a40a9e2 100644 --- a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm +++ b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm @@ -2,7 +2,7 @@ name = "revolver cylinder" ammo_type = /obj/item/ammo_casing/a357 caliber = ".357" - max_ammo = 7 + max_ammo = 6 instant_load = TRUE /obj/item/ammo_box/magazine/internal/cylinder/get_round(keep = FALSE, counter_clockwise = FALSE) diff --git a/code/modules/projectiles/boxes_magazines/internal/rifle.dm b/code/modules/projectiles/boxes_magazines/internal/rifle.dm index 4f2f8c537958..e179fbfa903c 100644 --- a/code/modules/projectiles/boxes_magazines/internal/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/internal/rifle.dm @@ -22,8 +22,8 @@ /obj/item/ammo_box/magazine/internal/boltaction/polymer name = "polymer bolt action rifle internal magazine" - ammo_type = /obj/item/ammo_casing/aac_300blk - caliber = ".300 BLK" + ammo_type = /obj/item/ammo_casing/a762_40 + caliber = "7.62x40mm" max_ammo = 5 /obj/item/ammo_box/magazine/internal/vickland diff --git a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm index 29717fd9408b..7485c591809d 100644 --- a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm @@ -52,6 +52,18 @@ caliber = ".38" max_ammo = 12 +/obj/item/ammo_box/magazine/internal/shot/winchester/absolution + name = "absolution internal magazine" + ammo_type = /obj/item/ammo_casing/a357 + caliber = ".357" + max_ammo = 8 + +/obj/item/ammo_box/magazine/internal/shot/winchester/conflagration + name = "conflagration internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + caliber = "12ga" + max_ammo = 5 + /obj/item/ammo_box/magazine/internal/shot/beacon name = "beacon internal magazine" ammo_type = /obj/item/ammo_casing/a4570 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 707f4805afe3..f848018a6115 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -56,7 +56,7 @@ //BALLISTIC ///Compatible magazines with the gun - var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info + var/mag_type = /obj/item/ammo_box/magazine/m10mm_ringneck //Removes the need for max_ammo and caliber info ///Whether the gun alarms when empty or not. var/empty_alarm = FALSE ///Do we eject the magazine upon runing out of ammo? @@ -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" @@ -207,6 +210,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 @@ -232,6 +241,8 @@ var/empty_indicator = FALSE ///Whether the sprite has a visible magazine or not var/show_magazine_on_sprite = FALSE + ///Do we show how much ammo is left on the sprite? In increments of 20. + var/show_ammo_capacity_on_magazine_sprite = FALSE ///Whether the sprite has a visible ammo display or not var/show_magazine_on_sprite_ammo = FALSE ///Whether the gun supports multiple special mag types @@ -323,6 +334,8 @@ muzzle_flash = new(src, muzzleflash_iconstate) build_zooming() build_firemodes() + if(sawn_off) + sawoff(forced = TRUE) /obj/item/gun/ComponentInitialize() . = ..() @@ -354,9 +367,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 @@ -364,6 +374,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) @@ -686,8 +699,8 @@ . = ..() if(!has_safety) return - - if(src != user.get_active_held_item()) + // only checks for first level storage e.g pockets, hands, suit storage, belts, nothing in containers + if(!in_contents_of(user)) return if(isliving(user) && in_range(src, user)) @@ -723,6 +736,11 @@ if(zoomed) zoom(user, user.dir) +/obj/item/gun/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + . = ..() + if(prob(GUN_NO_SAFETY_MALFUNCTION_CHANCE_HIGH)) + discharge("hits the ground hard") + /obj/item/gun/update_overlays() . = ..() if(ismob(loc) && has_safety) @@ -773,7 +791,7 @@ if(chambered && chambered.BB && can_trigger_gun(user)) chambered.BB.damage *= 3 //Check is here for safeties and such, brain will be removed after - if(!pre_fire(target, user, TRUE, params, BODY_ZONE_HEAD)) + if(!pre_fire(target, user, TRUE, FALSE, params, BODY_ZONE_HEAD)) // We're already in handle_suicide, hence the 4th parameter needs to be FALSE to avoid circular logic. Also, BODY_ZONE_HEAD because we want to damage the head as a whole. return var/obj/item/organ/brain/brain_to_blast = target.getorganslot(ORGAN_SLOT_BRAIN) @@ -802,61 +820,42 @@ /obj/item/gun/proc/before_firing(atom/target,mob/user) return -// We do it like this in case theres some specific gun behavior for adjusting recoil, like bipods or folded stocks /obj/item/gun/proc/calculate_recoil(mob/user, recoil_bonus = 0) - return recoil_bonus + if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) + recoil_bonus += gunslinger_recoil_bonus + return clamp(recoil_bonus, min_recoil , INFINITY) -// We do it like this in case theres some specific gun behavior for adjusting spread, like bipods or folded stocks /obj/item/gun/proc/calculate_spread(mob/user, bonus_spread) - ///our final spread value - var/sprd = 0 - ///our randomized value after checking if we are wielded or not + var/final_spread = 0 var/randomized_gun_spread = 0 - ///bonus - var/randomized_bonus_spread - // do we have poor aim - var/poor_aim = FALSE + var/randomized_bonus_spread = 0 - //do we have bonus_spread ? If so, set sprd to it because it means a subtype's proc messed with it - sprd += bonus_spread + final_spread += bonus_spread - //reset bonus_spread for poor aim... - bonus_spread = 0 + if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) + randomized_bonus_spread += rand(0, gunslinger_spread_bonus) - // if we have poor aim, we fuck the shooter over if(HAS_TRAIT(user, TRAIT_POOR_AIM)) - bonus_spread += 25 - poor_aim = TRUE - // then we randomize the bonus spread - randomized_bonus_spread = rand(poor_aim ? 10 : 0, bonus_spread) //poor aim is no longer just a nusiance - - //then, we mutiply previous bonus spread as it means dual wielding usually, it also means poor aim is also even more severe - randomized_bonus_spread *= DUALWIELD_PENALTY_EXTRA_MULTIPLIER + randomized_bonus_spread += rand(0, 25) - // we will then calculate gun spread depending on if we are fully wielding (after do_after) the gun or not + //We will then calculate gun spread depending on if we are fully wielding (after do_after) the gun or not randomized_gun_spread = rand(0, wielded_fully ? spread : spread_unwielded) - //finally, we put it all together including if sprd has a value - sprd += randomized_gun_spread + randomized_bonus_spread + final_spread += randomized_gun_spread + randomized_bonus_spread - //clamp it down to avoid guns with negative spread to have worse recoil... - sprd = clamp(sprd, 0, INFINITY) + //Clamp it down to avoid guns with negative spread to have worse recoil... + final_spread = clamp(final_spread, 0, INFINITY) - // im not sure what this does, i beleive its meant to make it so bullet spread goes in the opposite direction? get back to me on this - update,i have commented it out, however it appears be dapening spread. weird. - //sprd *= (rand() - 0.5) - - //coin flip if we mutiply output by -1 so spread isn't JUST to the right + //So spread isn't JUST to the right if(prob(50)) - sprd *= -1 + final_spread *= -1 - // then we round it up and send it! - sprd = round(sprd) + final_spread = round(final_spread) - return sprd + return final_spread /obj/item/gun/proc/simulate_recoil(mob/living/user, recoil_bonus = 0, firing_angle) var/total_recoil = calculate_recoil(user, recoil_bonus) - total_recoil = clamp(total_recoil, 0 , INFINITY) var/actual_angle = firing_angle + rand(-recoil_deviation, recoil_deviation) + 180 if(actual_angle > 360) @@ -961,6 +960,48 @@ flash_loc.vis_contents -= muzzle_flash muzzle_flash.applied = FALSE +// for guns firing on their own without a user +/obj/item/gun/proc/discharge(cause, seek_chance = 10) + var/target + if(!safety) + // someone is very unlucky and about to be shot + if(prob(seek_chance)) + for(var/mob/living/target_mob in range(6, get_turf(src))) + if(!isInSight(src, target_mob)) + continue + target = target_mob + break + if(!target) + var/fire_dir = pick(GLOB.alldirs) + target = get_ranged_target_turf(get_turf(src),fire_dir,6) + if(!chambered || !chambered.BB) + visible_message(span_danger("\The [src] [cause ? "[cause], suddenly going off" : "suddenly goes off"] without its safteies on! Luckily it wasn't live.")) + playsound(src, dry_fire_sound, 30, TRUE) + else + visible_message(span_danger("\The [src] [cause ? "[cause], suddenly going off" : "suddenly goes off"] without its safeties on!")) + unsafe_shot(target) + +/obj/item/gun/proc/unsafe_shot(target) + if(chambered) + chambered.fire_casing(target,null, null, null, suppressed, ran_zone(BODY_ZONE_CHEST, 50), 0, src,TRUE) + playsound(src, fire_sound, 100, TRUE) + +/mob/living/proc/trip_with_gun(cause) + var/mob/living/carbon/human/human_holder + if(ishuman(src)) + human_holder = src + for(var/obj/item/gun/at_risk in get_all_contents()) + var/chance_to_fire = GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM + if(human_holder) + // gun is less likely to go off in a holster + if(at_risk == human_holder.s_store) + chance_to_fire = GUN_NO_SAFETY_MALFUNCTION_CHANCE_LOW + if(at_risk.safety == FALSE && prob(chance_to_fire)) + if(at_risk.process_fire(src,src,FALSE, null, pick(BODY_ZONE_L_LEG,BODY_ZONE_R_LEG)) == TRUE) + log_combat(src,src,"misfired",at_risk,"caused by [cause]") + visible_message(span_danger("\The [at_risk.name]'s trigger gets caught as [src] falls, suddenly going off into [src]'s leg without its safties on!"), span_danger("\The [at_risk.name]'s trigger gets caught on something as you fall, suddenly going off into your leg without its safeties on!")) + emote("scream") + //I need to refactor this into an attachment /datum/action/toggle_scope_zoom name = "Toggle Scope" @@ -1073,3 +1114,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 7c75d8fe9f56..f64586871ccf 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, @@ -59,13 +61,14 @@ . += "[icon_state]_bolt[bolt_locked ? "_locked" : ""]" if (bolt_type == BOLT_TYPE_OPEN && bolt_locked) . += "[icon_state]_bolt" - if (magazine) + if (show_magazine_on_sprite && magazine) if (unique_mag_sprites_for_variants) . += "[icon_state]_mag_[magazine.base_icon_state]" if (!magazine.ammo_count()) - . += "[icon_state]_mag_empty" + . += "[icon_state]_mag_[magazine.base_icon_state]_empty" else . += "[icon_state]_mag" + if(show_ammo_capacity_on_magazine_sprite) var/capacity_number = 0 switch(get_ammo() / magazine.max_ammo) if(0.2 to 0.39) @@ -76,12 +79,16 @@ capacity_number = 60 if(0.8 to 0.99) capacity_number = 80 - if(1.0) + if(1.0 to 2.0) //to catch the chambered round capacity_number = 100 - if (capacity_number) + if (capacity_number && unique_mag_sprites_for_variants) + . += "[icon_state]_mag_[magazine.base_icon_state]_[capacity_number]" + else if (capacity_number) . += "[icon_state]_mag_[capacity_number]" if(!chambered && empty_indicator) . += "[icon_state]_empty" + if(chambered && mag_display_ammo) + . += "[icon_state]_chambered" /obj/item/gun/ballistic/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter) if(!semi_auto && from_firing) @@ -107,7 +114,7 @@ chambered.forceMove(src) ///updates a bunch of racking related stuff and also handles the sound effects and the like -/obj/item/gun/ballistic/proc/rack(mob/user = null) +/obj/item/gun/ballistic/proc/rack(mob/user = null, chamber_new_round = TRUE) if (bolt_type == BOLT_TYPE_NO_BOLT) //If there's no bolt, nothing to rack return if (bolt_type == BOLT_TYPE_OPEN) @@ -118,21 +125,22 @@ bolt_locked = FALSE if (user) to_chat(user, "You rack the [bolt_wording] of \the [src].") - process_chamber(!chambered, FALSE, shooter = user) - if (bolt_type == BOLT_TYPE_LOCKING && !chambered) + process_chamber(!chambered, FALSE, chamber_new_round, user) + if ((bolt_type == BOLT_TYPE_LOCKING && !chambered) || bolt_type == BOLT_TYPE_CLIP) bolt_locked = TRUE playsound(src, lock_back_sound, lock_back_sound_volume, lock_back_sound_vary) else playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) - update_appearance() + SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD) ///Drops the bolt from a locked position -/obj/item/gun/ballistic/proc/drop_bolt(mob/user = null) +/obj/item/gun/ballistic/proc/drop_bolt(mob/user = null, chamber_new_round = TRUE) playsound(src, bolt_drop_sound, bolt_drop_sound_volume, FALSE) if (user) to_chat(user, "You drop the [bolt_wording] of \the [src].") - chamber_round() + if(chamber_new_round) + chamber_round() bolt_locked = FALSE update_appearance() @@ -197,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) @@ -222,7 +233,7 @@ update_appearance() return if (can_be_sawn_off) - if (sawoff(user, A)) + if (try_sawoff(user, A)) return return FALSE @@ -246,6 +257,8 @@ if (last_shot_succeeded && bolt_type == BOLT_TYPE_LOCKING) bolt_locked = TRUE update_appearance() + if (last_shot_succeeded && bolt_type == BOLT_TYPE_CLIP) + update_appearance() /obj/item/gun/ballistic/pre_fire(atom/target, mob/living/user, message = TRUE, flag, params = null, zone_override = "", bonus_spread = 0, dual_wielded_gun = FALSE) prefire_empty_checks() @@ -281,13 +294,19 @@ else to_chat(user, "[src] is empty!") return - if(bolt_type == BOLT_TYPE_LOCKING && bolt_locked) + if((bolt_type == BOLT_TYPE_LOCKING || bolt_type == BOLT_TYPE_CLIP) && bolt_locked) drop_bolt(user) return + if (recent_rack > world.time) return recent_rack = world.time + rack_delay + if(bolt_type == BOLT_TYPE_CLIP) + rack(user, FALSE) + update_appearance() + return rack(user) + update_appearance() return @@ -299,7 +318,7 @@ . += "It does not seem to have a round chambered." if (bolt_locked) . += "The [bolt_wording] is locked back and needs to be released before firing." - . += "You can [bolt_wording] [src] by pressing the unqiue action key. By default, this is space" + . += "You can [bolt_wording] [src] by pressing the unique action key. By default, this is space" ///Gets the number of bullets in the gun /obj/item/gun/ballistic/proc/get_ammo(countchambered = TRUE) @@ -320,45 +339,14 @@ 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) process_fire(user, user, FALSE) . = TRUE + +/obj/item/gun/ballistic/unsafe_shot(target, empty_chamber = TRUE) + . = ..() + process_chamber(empty_chamber,TRUE) + diff --git a/code/modules/projectiles/guns/ballistic/assault.dm b/code/modules/projectiles/guns/ballistic/assault.dm index ce500cda930b..42cb637a557f 100644 --- a/code/modules/projectiles/guns/ballistic/assault.dm +++ b/code/modules/projectiles/guns/ballistic/assault.dm @@ -1,4 +1,6 @@ /obj/item/gun/ballistic/automatic/assault + show_magazine_on_sprite = TRUE + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO) default_firemode = FIREMODE_SEMIAUTO wield_delay = 0.8 SECONDS @@ -14,23 +16,8 @@ rack_sound = 'sound/weapons/gun/rifle/ar_cock.ogg' spread_unwielded = 20 -/obj/item/gun/ballistic/automatic/assault/calculate_recoil(mob/user, recoil_bonus = 0) - var/gunslinger_bonus = 2 - var/total_recoil = recoil_bonus - - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger penalty - total_recoil += gunslinger_bonus - - return ..(user, total_recoil) - -/obj/item/gun/ballistic/automatic/assault/calculate_spread(mob/user, bonus_spread) - var/gunslinger_bonus = 16 - var/total_spread = bonus_spread - - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger penalty - total_spread += gunslinger_bonus - - return ..(user, total_spread) + gunslinger_recoil_bonus = 2 + gunslinger_spread_bonus = 16 /obj/item/gun/ballistic/automatic/assault/skm name = "\improper SKM-24" @@ -112,7 +99,7 @@ /obj/item/gun/ballistic/automatic/assault/p16/no_mag spawnwithmagazine = FALSE -/obj/item/gun/ballistic/automatic/assault/p16/minutemen +/obj/item/gun/ballistic/automatic/assault/cm82 name = "\improper CM-16" desc = "The standard-issue rifle of CLIP and an extensively modified reproduction of the P-16. Chambered in 5.56mm." icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' @@ -156,7 +143,7 @@ /obj/item/gun/ballistic/automatic/assault/e40 name = "\improper E-40 Hybrid Rifle" - desc = "A Hybrid Assault Rifle, best known for being having a dual ballistic/laser system along with an advanced ammo counter. Once an icon for bounty hunters, age has broken most down, so these end up in collector's hands or as shoddy Frontiersmen laser SMG conversions when in their inheritted stockpiles. But if one were to find one in working condition, it would be just as formidable as back then. Chambered in .229 Eoehoma caseless, and uses energy for lasers." + desc = "A Hybrid Assault Rifle, best known for being having a dual ballistic/laser system along with an advanced ammo counter. Once an icon for bounty hunters, age has broken most down, so these end up in collector's hands or as shoddy Frontiersmen laser SMG conversions when in their inheritted stockpiles. But if one were to find one in working condition, it would be just as formidable as back then. Chambered in .299 Eoehoma caseless, and uses energy for lasers." icon = 'icons/obj/guns/manufacturer/eoehoma/48x32.dmi' lefthand_file = 'icons/obj/guns/manufacturer/eoehoma/lefthand.dmi' righthand_file = 'icons/obj/guns/manufacturer/eoehoma/righthand.dmi' @@ -262,8 +249,8 @@ secondary.pre_fire(target, user, message, flag, params, zone_override, bonus_spread) -/obj/item/gun/ballistic/automatic/powered/get_cell() - return cell +/obj/item/gun/ballistic/automatic/assault/e40/get_cell() + return secondary.get_cell() /obj/item/gun/ballistic/automatic/assault/e40/update_overlays() . = ..() diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 769ea9e7f57e..6b1e30296d57 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -29,7 +29,7 @@ icon_state = "surplus" item_state = "moistnugget" weapon_weight = WEAPON_HEAVY - mag_type = /obj/item/ammo_box/magazine/m10mm/rifle + mag_type = /obj/item/ammo_box/magazine/m10mm_ringneck/rifle fire_delay = 0.5 SECONDS burst_size = 1 w_class = WEIGHT_CLASS_HUGE diff --git a/code/modules/projectiles/guns/ballistic/hmg.dm b/code/modules/projectiles/guns/ballistic/hmg.dm index 8a3e68b9a6ec..780b24dc80fb 100644 --- a/code/modules/projectiles/guns/ballistic/hmg.dm +++ b/code/modules/projectiles/guns/ballistic/hmg.dm @@ -18,6 +18,9 @@ recoil_unwielded = 4 wield_slowdown = 3 + gunslinger_recoil_bonus = 2 + gunslinger_spread_bonus = 20 + ///does this have a bipod? var/has_bipod = FALSE ///is the bipod deployed? @@ -41,7 +44,7 @@ /obj/item/gun/ballistic/automatic/hmg/Initialize() . = ..() - for(var/datum/action/item_action/deploy_bipod/action as anything in actions_types) + for(var/datum/action/item_action/deploy_bipod/action as anything in actions) if(!has_bipod) qdel(action) @@ -116,29 +119,6 @@ . = ..() retract_bipod(user=user) -/obj/item/gun/ballistic/automatic/hmg/calculate_recoil(mob/user, recoil_bonus = 0) - var/gunslinger_bonus = 2 - var/total_recoil = recoil_bonus - - if(bipod_deployed) - total_recoil += deploy_recoil_bonus - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger penalty - total_recoil += gunslinger_bonus - - return ..(user, total_recoil) - -/obj/item/gun/ballistic/automatic/hmg/calculate_spread(mob/user, bonus_spread) - var/gunslinger_bonus = 20 - var/total_spread = bonus_spread - - if(bipod_deployed) - total_spread += deploy_spread_bonus - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger penalty - total_spread += gunslinger_bonus - - return ..(user, total_spread) - - /obj/item/gun/ballistic/automatic/hmg/update_icon_state() . = ..() item_state = "[initial(item_state)][bipod_deployed ? "_deployed" : ""]" @@ -148,75 +128,6 @@ if(has_bipod) . += "[base_icon_state || initial(icon_state)][bipod_deployed ? "_deployed" : "_undeployed"]" - -// L6 SAW // - -/obj/item/gun/ballistic/automatic/hmg/l6_saw - name = "\improper L6 SAW" - desc = "A heavy machine gun, designated 'L6 SAW'. Chambered in 7.12x82mm." - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - icon_state = "l6" - item_state = "l6closedmag" - base_icon_state = "l6" - - mag_type = /obj/item/ammo_box/magazine/mm712x82 - spread = 7 - - fire_delay = 0.1 SECONDS - - bolt_type = BOLT_TYPE_OPEN - show_magazine_on_sprite = TRUE - show_magazine_on_sprite_ammo = TRUE - tac_reloads = FALSE - fire_sound = 'sound/weapons/gun/l6/shot.ogg' - rack_sound = 'sound/weapons/gun/l6/l6_rack.ogg' - suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' - manufacturer = MANUFACTURER_SCARBOROUGH - var/cover_open = FALSE - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/examine(mob/user) - . = ..() - . += "alt + click to [cover_open ? "close" : "open"] the dust cover." - if(cover_open && magazine) - . += "It seems like you could use an empty hand to remove the magazine." - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/AltClick(mob/user) - cover_open = !cover_open - to_chat(user, "You [cover_open ? "open" : "close"] [src]'s cover.") - playsound(user, 'sound/weapons/gun/l6/l6_door.ogg', 60, TRUE) - update_appearance() - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/update_overlays() - . = ..() - . += "l6_door_[cover_open ? "open" : "closed"]" - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) - if(cover_open) - to_chat(user, "[src]'s cover is open! Close it before firing!") - return - else - . = ..() - update_appearance() - -//ATTACK HAND IGNORING PARENT RETURN VALUE -/obj/item/gun/ballistic/automatic/hmg/l6_saw/attack_hand(mob/user) - if (loc != user) - ..() - return - if (!cover_open) - to_chat(user, "[src]'s cover is closed! Open it before trying to remove the magazine!") - return - ..() - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/attackby(obj/item/A, mob/user, params) - if(!cover_open && istype(A, mag_type)) - to_chat(user, "[src]'s dust cover prevents a magazine from being fit.") - return - ..() - /obj/item/gun/ballistic/automatic/hmg/solar //This thing fires a 5.56 equivalent, that's an LMG, not an HMG, get out name = "\improper Solar" desc = "A TerraGov LMG-169 designed in 169 FS, nicknamed 'Solar.' A inscription reads: 'PROPERTY OF TERRAGOV', with 'TERRAGOV' poorly scribbled out, and replaced by 'SOLAR ARMORIES'. Chambered in 4.73×33mm caseless ammunition." diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index f18f97cd0f4f..2044fae60ee2 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -40,32 +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." - - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + 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 @@ -82,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/ballistic/marksman.dm b/code/modules/projectiles/guns/ballistic/marksman.dm index 46a9e2466290..9d63e66bcab7 100644 --- a/code/modules/projectiles/guns/ballistic/marksman.dm +++ b/code/modules/projectiles/guns/ballistic/marksman.dm @@ -1,102 +1,8 @@ /obj/item/gun/ballistic/automatic/marksman + show_magazine_on_sprite = TRUE + burst_size = 1 zoomable = TRUE //this var as true without setting anything else produces a 2x zoom wield_slowdown = 2 wield_delay = 1 SECONDS - -// SNIPER // - -/obj/item/gun/ballistic/automatic/marksman/sniper_rifle - name = "sniper rifle" - desc = "An anti-material rifle chambered in .50 BMG with a scope mounted on it. Its prodigious bulk requires both hands to use." - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - icon_state = "sniper" - item_state = "sniper" - fire_sound = 'sound/weapons/gun/sniper/shot.ogg' - fire_sound_volume = 90 - vary_fire_sound = FALSE - load_sound = 'sound/weapons/gun/sniper/mag_insert.ogg' - rack_sound = 'sound/weapons/gun/sniper/rack.ogg' - suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' - weapon_weight = WEAPON_HEAVY - mag_type = /obj/item/ammo_box/magazine/sniper_rounds - w_class = WEIGHT_CLASS_BULKY - zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you. - zoom_out_amt = 5 - slot_flags = ITEM_SLOT_BACK - actions_types = list() - show_magazine_on_sprite = TRUE - manufacturer = MANUFACTURER_SCARBOROUGH - - spread = -5 - spread_unwielded = 40 - recoil = 5 - recoil_unwielded = 50 - - wield_delay = 1.3 SECONDS - -EMPTY_GUN_HELPER(automatic/marksman/sniper_rifle) - -/obj/item/gun/ballistic/automatic/marksman/ebr //fuck this gun, its getting wiped soon enough - name = "\improper M514 EBR" - desc = "A reliable, high-powered battle rifle often found in the hands of Syndicate personnel and remnants, chambered in .308. Effective against personnel and armor alike." - - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - - icon_state = "ebr" - item_state = "ebr" - zoomable = TRUE - show_magazine_on_sprite = TRUE - weapon_weight = WEAPON_MEDIUM - w_class = WEIGHT_CLASS_BULKY - mag_type = /obj/item/ammo_box/magazine/ebr - fire_sound = 'sound/weapons/gun/rifle/shot_alt2.ogg' - manufacturer = MANUFACTURER_SCARBOROUGH - - wield_slowdown = 2 - spread = -4 - -EMPTY_GUN_HELPER(automatic/marksman/ebr) - -/obj/item/gun/ballistic/automatic/marksman/gal - name = "\improper CM-GAL-S" - desc = "The standard issue DMR of CLIP. Dates back to the Xenofauna War, this particular model is in a carbine configuration, and, as such, is shorter than the standard model. Chambered in .308." - - icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' - 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 = "gal" - item_state = "gal" - show_magazine_on_sprite = TRUE - weapon_weight = WEAPON_MEDIUM - w_class = WEIGHT_CLASS_BULKY - mag_type = /obj/item/ammo_box/magazine/gal - fire_sound = 'sound/weapons/gun/rifle/gal.ogg' - burst_size = 0 - actions_types = list() - manufacturer = MANUFACTURER_MINUTEMAN - - wield_slowdown = 2 - spread = -4 - fire_select_icon_state_prefix = "clip_" - adjust_fire_select_icon_state_on_safety = TRUE - -/obj/item/gun/ballistic/automatic/marksman/gal/inteq - name = "\improper SsG-04" - desc = "A marksman rifle purchased from CLIP and modified to suit IRMG's needs. Chambered in .308." - icon = 'icons/obj/guns/manufacturer/inteq/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/inteq/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/inteq/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/inteq/onmob.dmi' - icon_state = "gal-inteq" - item_state = "gal-inteq" diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index b2416462da39..e81b57d43f37 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -7,7 +7,7 @@ weapon_weight = WEAPON_LIGHT pickup_sound = 'sound/items/handling/gun_pickup.ogg' - recoil = 0.5 // apogee wants bloom, this is a placeholder until then to simulate the same concept. + //recoil = 0.5 // apogee wants bloom, this is a placeholder until then to simulate the same concept. //UPDATE ive changed my mind on this, however i would recoil_unwielded = 3 recoil_backtime_multiplier = 1 @@ -19,42 +19,6 @@ muzzleflash_iconstate = "muzzle_flash_light" -/obj/item/gun/ballistic/automatic/pistol/syndicate - name = "Stechkin" - desc = "A small, easily concealable 10mm handgun that bears Scarborough Arms stamps. Has a threaded barrel for suppressors." - icon_state = "pistol" - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - - w_class = WEIGHT_CLASS_SMALL - mag_type = /obj/item/ammo_box/magazine/m10mm - fire_sound = 'sound/weapons/gun/pistol/shot.ogg' - dry_fire_sound = 'sound/weapons/gun/pistol/dry_fire.ogg' - suppressed_sound = 'sound/weapons/gun/pistol/shot_suppressed.ogg' - - load_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' - load_empty_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' - eject_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' - eject_empty_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' - - rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' - lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' - bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg' - - manufacturer = MANUFACTURER_SCARBOROUGH - - spread = 6 //becuase its compact, spread is slightly worse - spread_unwielded = 9 - recoil_unwielded = 2 - -EMPTY_GUN_HELPER(automatic/pistol/syndicate) - -/obj/item/gun/ballistic/automatic/pistol/syndicate/suns - desc = "A small, easily concealable 10mm handgun that bears Scarborough Arms stamps. It is painted in the colors of SUNS." - icon_state = "pistol_suns" - /obj/item/gun/ballistic/automatic/pistol/candor name = "\improper Candor" desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of Hunter's Pride. Chambered in .45." @@ -69,7 +33,7 @@ EMPTY_GUN_HELPER(automatic/pistol/syndicate) fire_sound = 'sound/weapons/gun/pistol/candor.ogg' rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg' lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' - bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg' manufacturer = MANUFACTURER_HUNTERSPRIDE load_sound = 'sound/weapons/gun/pistol/candor_reload.ogg' load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg' @@ -109,7 +73,7 @@ EMPTY_GUN_HELPER(automatic/pistol/candor/factory) fire_sound = 'sound/weapons/gun/pistol/deagle.ogg' rack_sound = 'sound/weapons/gun/pistol/rack.ogg' lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' - bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/rack.ogg' manufacturer = MANUFACTURER_NONE load_sound = 'sound/weapons/gun/pistol/deagle_reload.ogg' load_empty_sound = 'sound/weapons/gun/pistol/deagle_reload.ogg' @@ -133,37 +97,6 @@ EMPTY_GUN_HELPER(automatic/pistol/candor/factory) icon_state = "deaglecamo" item_state = "deagleg" -/obj/item/gun/ballistic/automatic/pistol/APS - name = "stechkin APS pistol" - desc = "A burst-fire machine pistol based on the stechkin model. Utilizes specialized 9mm magazines." - icon_state = "aps" - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - - - mag_type = /obj/item/ammo_box/magazine/pistolm9mm - - fire_sound = 'sound/weapons/gun/pistol/shot.ogg' - dry_fire_sound = 'sound/weapons/gun/pistol/dry_fire.ogg' - suppressed_sound = 'sound/weapons/gun/pistol/shot_suppressed.ogg' - - load_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' - load_empty_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' - eject_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' - eject_empty_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' - - rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' - lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' - bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg' - - burst_size = 3 - burst_delay = 0.1 SECONDS - fire_delay = 0.4 SECONDS - gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST) - default_firemode = FIREMODE_SEMIAUTO - /obj/item/gun/ballistic/automatic/pistol/commander name = "\improper Commander" desc = "A classic handgun in a tasteful black and stainless steel color scheme. An enamel Nanotrasen logo is set into the grips. Chambered in 9mm." @@ -176,7 +109,7 @@ EMPTY_GUN_HELPER(automatic/pistol/candor/factory) w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/co9mm manufacturer = MANUFACTURER_NANOTRASEN - fire_sound = 'sound/weapons/gun/pistol/commander.ogg' + fire_sound = 'sound/weapons/gun/pistol/rattlesnake.ogg' load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' @@ -274,7 +207,6 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi' weapon_weight = WEAPON_LIGHT - w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/pistol556mm fire_sound = 'sound/weapons/gun/pistol/pistolec.ogg' manufacturer = MANUFACTURER_SOLARARMORIES @@ -292,28 +224,6 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) /obj/item/gun/ballistic/automatic/pistol/solgov/old icon_state = "pistole-c-old" -/obj/item/gun/ballistic/automatic/pistol/tec9 //fucking kill this gun already my god - name = "\improper TEC-9 machine pistol" - desc = "A crude machine pistol designed to vomit 9mm ammunition at a truly eye-watering rate of fire." - icon_state = "tec9" - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - - fire_delay = 0.15 SECONDS - weapon_weight = WEAPON_LIGHT - w_class = WEIGHT_CLASS_NORMAL - mag_type = /obj/item/ammo_box/magazine/tec9 - show_magazine_on_sprite = TRUE - load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' - load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' - eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' - eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' - - gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO) - default_firemode = FIREMODE_SEMIAUTO - /obj/item/gun/ballistic/automatic/pistol/disposable name = "disposable gun" desc = "An exceedingly flimsy plastic gun that is extremely cheap to produce. You get what you pay for." @@ -393,31 +303,3 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) /obj/item/gun/ballistic/derringer/no_mag spawnwithmagazine = FALSE -/obj/item/gun/ballistic/automatic/pistol/himehabu - name = "\improper Himehabu" - desc = "A very small .22 LR pistol. The long awaited successor to the Stechkin; It has become a favorite among syndicate spies. Chambered in .22 LR." - icon_state = "himehabu" - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - - - w_class = WEIGHT_CLASS_TINY - mag_type = /obj/item/ammo_box/magazine/m22lr - fire_sound = 'sound/weapons/gun/pistol/himehabu.ogg' - - load_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' - load_empty_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' - eject_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' - eject_empty_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' - - rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' - lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' - bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg' - - recoil = -2 - recoil_unwielded = -2 - spread_unwielded = 0 - wield_slowdown = 0 - diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 545cbf8bf117..e0e389ce7f4a 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -25,6 +25,9 @@ var/spin_delay = 10 var/recent_spin = 0 manufacturer = MANUFACTURER_SCARBOROUGH + + valid_attachments = list() + slot_available = list() fire_delay = 0.4 SECONDS spread_unwielded = 15 recoil = 0.5 @@ -40,6 +43,9 @@ safety_wording = "hammer" + gunslinger_recoil_bonus = -1 + gunslinger_spread_bonus = -8 + var/gate_loaded = FALSE //for stupid wild west shit var/gate_offset = 5 //for wild west shit 2: instead of ejecting the chambered round, eject the next round if 1 var/gate_load_direction = REVOLVER_AUTO_ROTATE_RIGHT_LOADING //when we load ammo with a box, which direction do we rotate the cylinder? unused with normal revolvers @@ -418,7 +424,7 @@ fire_delay = src::fire_delay if(fan) rack() - to_chat(user, "You fan the [bolt_wording] of \the [src]!") + to_chat(user, span_notice("You fan the [bolt_wording] of \the [src]!")) balloon_alert_to_viewers("fans revolver!") fire_delay = 0 SECONDS @@ -436,25 +442,6 @@ return to_chat(user, "The hammer is up on [src]! Pull it down to fire!") -/obj/item/gun/ballistic/revolver/calculate_recoil(mob/user, recoil_bonus = 0) - var/gunslinger_bonus = -1 - var/total_recoil = recoil_bonus - - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger bonus - total_recoil += gunslinger_bonus - total_recoil = clamp(total_recoil,0,INFINITY) - - return ..(user, total_recoil) - -/obj/item/gun/ballistic/revolver/calculate_spread(mob/user, bonus_spread) - var/gunslinger_bonus = -8 - var/total_spread = bonus_spread - - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger bonus - total_spread += gunslinger_bonus - - return ..(user, total_spread) - /obj/item/gun/ballistic/revolver/pickup(mob/user) . = ..() tryflip(user) @@ -468,15 +455,6 @@ playsound(src, 'sound/items/handling/ammobox_pickup.ogg', 20, FALSE) return -/obj/item/gun/ballistic/revolver/syndicate //mystery tool that we can use later - name = "\improper syndicate revolver" - desc = "A weighty revolver with a Scarborough Arms logo engraved on the barrel. Uses .357 ammo." //usually used by syndicates - icon_state = "revolver" - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - /obj/item/gun/ballistic/revolver/detective name = "\improper HP Detective Special" desc = "A small law enforcement firearm. Originally commissioned by Nanotrasen for their Private Investigation division, it has become extremely popular among independent civilians as a cheap, compact sidearm. Uses .38 Special rounds." @@ -557,7 +535,7 @@ EMPTY_GUN_HELPER(revolver/detective) /obj/item/gun/ballistic/revolver/detective/no_mag spawnwithmagazine = FALSE -/obj/item/gun/ballistic/revolver/syndicate/no_mag +/obj/item/gun/ballistic/revolver/viper/no_mag spawnwithmagazine = FALSE /obj/item/gun/ballistic/revolver/no_mag diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 1e7724c5c9fa..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,20 +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 - slot_flags = ITEM_SLOT_BELT /obj/item/gun/ballistic/rifle/solgov name = "SSG-669C" @@ -184,12 +179,12 @@ /obj/item/gun/ballistic/rifle/polymer name = "polymer survivor rifle" - desc = "A bolt-action rifle made of scrap, desperation, and luck. Likely to shatter at any moment. Chambered in .300 Blackout." + desc = "A bolt-action rifle made of scrap, desperation, and luck. Likely to shatter at any moment. Chambered in 7.62x40mm." icon = 'icons/obj/guns/projectile.dmi' icon_state = "crackhead_rifle" item_state = "crackhead_rifle" - weapon_weight = WEAPON_MEDIUM - w_class = WEIGHT_CLASS_NORMAL + weapon_weight = WEAPON_HEAVY + w_class = WEIGHT_CLASS_BULKY mag_type = /obj/item/ammo_box/magazine/internal/boltaction/polymer can_be_sawn_off = FALSE manufacturer = MANUFACTURER_NONE diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 1f15f8d01689..ab85fb9a01c4 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -35,6 +35,8 @@ recoil = 1 recoil_unwielded = 4 + gunslinger_recoil_bonus = -1 + /obj/item/gun/ballistic/shotgun/blow_up(mob/user) if(chambered && chambered.BB) process_fire(user, user, FALSE) @@ -46,15 +48,6 @@ return TRUE return FALSE -/obj/item/gun/ballistic/shotgun/calculate_recoil(mob/user, recoil_bonus = 0) - var/gunslinger_bonus = -1 - var/total_recoil = recoil_bonus - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger bonus - total_recoil += gunslinger_bonus - total_recoil = clamp(total_recoil,0,INFINITY) - - return ..(user, total_recoil) - // BRIMSTONE SHOTGUN // /obj/item/gun/ballistic/shotgun/brimstone @@ -81,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 @@ -115,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 @@ -142,10 +135,7 @@ recoil_unwielded = 4 wield_delay = 0.65 SECONDS manufacturer = MANUFACTURER_NANOTRASEN - -/obj/item/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user) - ..() - rack() + semi_auto = TRUE //im not sure what to do with the combat shotgun, as it's functionally the same as the semi auto shotguns except it automattically racks instead of being semi-auto @@ -216,83 +206,16 @@ return rack() -// Bulldog shotgun // - -/obj/item/gun/ballistic/shotgun/bulldog //TODO: REPATH TO LIKE /obj/item/gun/ballistic/shotgun/automatic/bulldog - name = "\improper Bulldog Shotgun" - desc = "A semi-automatic, magazine-fed shotgun designed for combat in tight quarters, manufactured by Scarborough Arms. A historical favorite of various Syndicate factions, especially the Gorlex Marauders." - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - icon_state = "bulldog" - item_state = "bulldog" - - weapon_weight = WEAPON_MEDIUM - mag_type = /obj/item/ammo_box/magazine/m12g - burst_size = 1 - fire_delay = 0.4 SECONDS // this NEEDS the old delay. - fire_sound = 'sound/weapons/gun/shotgun/bulldog.ogg' - show_magazine_on_sprite = TRUE - empty_indicator = TRUE - empty_alarm = TRUE - unique_mag_sprites_for_variants = TRUE - semi_auto = TRUE - internal_magazine = FALSE - casing_ejector = TRUE - tac_reloads = TRUE - pickup_sound = 'sound/items/handling/rifle_pickup.ogg' - manufacturer = MANUFACTURER_SCARBOROUGH - - load_sound = 'sound/weapons/gun/rifle/ar_reload.ogg' - load_empty_sound = 'sound/weapons/gun/rifle/ar_reload.ogg' - eject_sound = 'sound/weapons/gun/rifle/ar_unload.ogg' - eject_empty_sound = 'sound/weapons/gun/rifle/ar_unload.ogg' - - rack_sound = 'sound/weapons/gun/rifle/ar_cock.ogg' - - spread = 4 - spread_unwielded = 16 - recoil = 1 - recoil_unwielded = 4 - wield_slowdown = 0.6 - wield_delay = 0.65 SECONDS - -EMPTY_GUN_HELPER(shotgun/bulldog) - -/obj/item/gun/ballistic/shotgun/bulldog/inteq +/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq name = "\improper Mastiff Shotgun" desc = "A variation of the Bulldog, seized from Syndicate armories by deserting troopers then modified to IRMG's standards." - icon_state = "bulldog-inteq" - item_state = "bulldog-inteq" - mag_type = /obj/item/ammo_box/magazine/m12g + icon_state = "bulldog_inteq" + item_state = "bulldog_inteq" + mag_type = /obj/item/ammo_box/magazine/m12g_bulldog manufacturer = MANUFACTURER_INTEQ -EMPTY_GUN_HELPER(shotgun/bulldog/inteq) - -/obj/item/gun/ballistic/shotgun/bulldog/suns - name = "\improper Bulldog-C Shotgun" - desc = "A variation of the Bulldog manufactured by Scarborough Arms for SUNS. Its shorter barrel is intended to provide additional maneuverability in personal defense scenarios." - icon_state = "bulldog_suns" - item_state = "bulldog_suns" - -/obj/item/gun/ballistic/shotgun/bulldog/minutemen //TODO: REPATH - name = "\improper CM-15" - desc = "A standard-issue shotgun of CLIP, most often used by boarding crews. Only compatible with specialized 8-round magazines." - icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' - - mag_type = /obj/item/ammo_box/magazine/cm15_mag - icon_state = "cm15" - item_state = "cm15" - empty_alarm = FALSE - empty_indicator = FALSE - unique_mag_sprites_for_variants = FALSE - manufacturer = MANUFACTURER_MINUTEMAN - fire_select_icon_state_prefix = "clip_" - adjust_fire_select_icon_state_on_safety = TRUE +EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) + ///////////////////////////// // DOUBLE BARRELED SHOTGUN // @@ -393,7 +316,7 @@ EMPTY_GUN_HELPER(shotgun/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 @@ -438,7 +361,7 @@ EMPTY_GUN_HELPER(shotgun/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" @@ -493,7 +416,7 @@ EMPTY_GUN_HELPER(shotgun/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) @@ -501,13 +424,7 @@ EMPTY_GUN_HELPER(shotgun/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 /obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact name = "compact compact combat shotgun" @@ -673,7 +590,7 @@ EMPTY_GUN_HELPER(shotgun/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 @@ -698,7 +615,7 @@ EMPTY_GUN_HELPER(shotgun/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" @@ -711,12 +628,76 @@ EMPTY_GUN_HELPER(shotgun/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" mob_overlay_state = item_state +/obj/item/gun/ballistic/shotgun/flamingarrow/absolution + name = "HP Absolution" + base_icon_state = "absolution" + icon_state = "absolution" + item_state = "absolution" + fire_sound = 'sound/weapons/gun/revolver/shot.ogg' + desc = "A large lever-action rifle with hand-stamped Hunter's Pride marks on the receiver and an 8 round ammunition capacity. More powerful than the Flaming Arrow, the Absolution is a popular pick for hunting larger fauna like bears and goliaths, especially when a bolt action's slower rate of fire would be a liability. Chambered in .357." + 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(forced = FALSE) + . = ..() + if(.) + var/obj/item/ammo_box/magazine/internal/tube = magazine + tube.max_ammo = 8 + + item_state = "illestren_sawn" + mob_overlay_state = item_state + weapon_weight = WEAPON_MEDIUM + + wield_slowdown = 0.25 + wield_delay = 0.2 SECONDS + + spread = 4 + spread_unwielded = 12 + + recoil = 0 + recoil_unwielded = 3 + +/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/no_mag + spawnwithmagazine = FALSE + +/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration + name = "HP Conflagration" + base_icon_state = "conflagration" + icon_state = "conflagration" + item_state = "conflagration" + fire_sound = 'sound/weapons/gun/shotgun/shot.ogg' + desc = "A lightweight lever-action shotgun with a 5 round ammunition capacity. The lever action allows it to be cycled quickly and acurrately. In theory, you could ever operate it one-handed. Chambered in 12g." + 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(forced = FALSE) + . = ..() + if(.) + var/obj/item/ammo_box/magazine/internal/tube = magazine + tube.max_ammo = 5 + + item_state = "beacon_factory_sawn" + mob_overlay_state = item_state + weapon_weight = WEAPON_MEDIUM + + wield_slowdown = 0.25 + wield_delay = 0.2 SECONDS + + spread = 4 + spread_unwielded = 12 + + recoil = 0 + recoil_unwielded = 3 + +/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/no_mag + spawnwithmagazine = FALSE + //Elephant Gun /obj/item/gun/ballistic/shotgun/doublebarrel/twobore name = "HP Huntsman" @@ -778,7 +759,7 @@ EMPTY_GUN_HELPER(shotgun/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" @@ -801,7 +782,7 @@ EMPTY_GUN_HELPER(shotgun/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" diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index 2cb68fc09176..6f52daaf2292 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -1,4 +1,6 @@ /obj/item/gun/ballistic/automatic/smg + show_magazine_on_sprite = TRUE + burst_size = 2 actions_types = list() fire_delay = 0.13 SECONDS @@ -19,61 +21,8 @@ eject_sound = 'sound/weapons/gun/smg/smg_unload.ogg' eject_empty_sound = 'sound/weapons/gun/smg/smg_unload.ogg' -/obj/item/gun/ballistic/automatic/smg/calculate_recoil(mob/user, recoil_bonus = 0) - var/gunslinger_bonus = 2 - var/total_recoil - if(.) - total_recoil += . - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger penalty - total_recoil += gunslinger_bonus - . = total_recoil - return ..() - -/obj/item/gun/ballistic/automatic/smg/calculate_spread(mob/user, bonus_spread) - var/gunslinger_bonus = 16 - var/total_spread = bonus_spread - if(.) - total_spread += . - if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) //gunslinger penalty - total_spread += gunslinger_bonus - . = total_spread - return ..() - -/obj/item/gun/ballistic/automatic/smg/c20r - name = "\improper C-20r SMG" - desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.'" - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - icon_state = "c20r" - item_state = "c20r" - - mag_type = /obj/item/ammo_box/magazine/smgm45 - show_magazine_on_sprite = TRUE - show_magazine_on_sprite_ammo = TRUE - empty_indicator = TRUE - manufacturer = MANUFACTURER_SCARBOROUGH - -EMPTY_GUN_HELPER(automatic/smg/c20r) - -/obj/item/gun/ballistic/automatic/smg/c20r/Initialize() - . = ..() - update_appearance() - -/obj/item/gun/ballistic/automatic/smg/c20r/cobra - name = "\improper Cobra 20" - desc = "An older model of SMG manufactured by Scarborough Arms, a predecessor to the military C-20 series. Chambered in .45. " - icon_state = "cobra20" - item_state = "cobra20" - -/obj/item/gun/ballistic/automatic/smg/c20r/cobra/no_mag - spawnwithmagazine = FALSE - -/obj/item/gun/ballistic/automatic/smg/c20r/suns - desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.' This one is painted in SUNS' colors." - icon_state = "c20r_suns" - item_state = "c20r_suns" + gunslinger_recoil_bonus = 2 + gunslinger_spread_bonus = 16 /obj/item/gun/ballistic/automatic/smg/wt550 name = "\improper WT-550 Automatic Rifle" @@ -95,34 +44,6 @@ EMPTY_GUN_HELPER(automatic/smg/c20r) /obj/item/gun/ballistic/automatic/smg/wt550/no_mag spawnwithmagazine = FALSE -/obj/item/gun/ballistic/automatic/smg/mini_uzi - name = "\improper Type U3 Uzi" - desc = "A lightweight submachine gun, for when you really want someone dead. Uses 9mm rounds." - - 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' - icon_state = "uzi" - - mag_type = /obj/item/ammo_box/magazine/uzim9mm - bolt_type = BOLT_TYPE_OPEN - show_magazine_on_sprite = TRUE - - fire_sound = 'sound/weapons/gun/smg/uzi.ogg' - rack_sound = 'sound/weapons/gun/smg/uzi_cocked.ogg' - - load_sound = 'sound/weapons/gun/smg/uzi_reload.ogg' - load_empty_sound = 'sound/weapons/gun/smg/uzi_reload.ogg' - eject_sound = 'sound/weapons/gun/smg/uzi_unload.ogg' - eject_empty_sound = 'sound/weapons/gun/smg/uzi_unload.ogg' - - spread = 4 - spread_unwielded = 8 - wield_slowdown = 0.25 - wield_delay = 0.2 SECONDS - fire_delay = 0.1 SECONDS - /obj/item/gun/ballistic/automatic/smg/vector name = "\improper Vector carbine" desc = "A police carbine based on a pre-Night of Fire SMG design. Most of the complex workings have been removed for reliability. Chambered in 9mm." @@ -138,87 +59,6 @@ EMPTY_GUN_HELPER(automatic/smg/c20r) weapon_weight = WEAPON_LIGHT fire_sound = 'sound/weapons/gun/smg/vector_fire.ogg' -/obj/item/gun/ballistic/automatic/smg/m90 - name = "\improper M-90gl Carbine" - desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - icon_state = "m90" - item_state = "m90" - - mag_type = /obj/item/ammo_box/magazine/m556 - gun_firenames = list(FIREMODE_SEMIAUTO = "single", FIREMODE_BURST = "burst fire", FIREMODE_FULLAUTO = "full auto", FIREMODE_OTHER = "underbarrel grenade launcher") - gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST, FIREMODE_OTHER) - default_firemode = FIREMODE_SEMIAUTO - var/obj/item/gun/ballistic/revolver/grenadelauncher/secondary - show_magazine_on_sprite = TRUE - empty_indicator = TRUE - fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg' - manufacturer = MANUFACTURER_SCARBOROUGH - - burst_size = 3 - burst_delay = 0.1 SECONDS - fire_delay = 0.2 SECONDS - spread = 1 - spread_unwielded = 8 - wield_slowdown = 0.4 - -/obj/item/gun/ballistic/automatic/smg/m90/Initialize() - . = ..() - secondary = new /obj/item/gun/ballistic/revolver/grenadelauncher(src) - RegisterSignal(secondary, COMSIG_ATOM_UPDATE_ICON, PROC_REF(secondary_update_icon)) - update_appearance() - -/obj/item/gun/ballistic/automatic/smg/m90/process_other(atom/target, mob/living/user, message = TRUE, flag, params = null, zone_override = "", bonus_spread = 0) - return secondary.pre_fire(target, user, message, params, zone_override, bonus_spread) - -/obj/item/gun/ballistic/automatic/smg/m90/can_shoot() - var/current_firemode = gun_firemodes[firemode_index] - if(current_firemode != FIREMODE_OTHER) - return ..() - return secondary.can_shoot() - -/obj/item/gun/ballistic/automatic/smg/m90/afterattack(atom/target, mob/living/user, flag, params) - var/current_firemode = gun_firemodes[firemode_index] - if(current_firemode != FIREMODE_OTHER) - return ..() - return secondary.afterattack(target, user, flag, params) - -/obj/item/gun/ballistic/automatic/smg/m90/attackby(obj/item/attack_obj, mob/user, params) - if(istype(attack_obj, secondary.magazine.ammo_type)) - secondary.unique_action() - return secondary.attackby(attack_obj, user, params) - return ..() - - -/obj/item/gun/ballistic/automatic/smg/m90/can_shoot() - var/current_firemode = gun_firemodes[firemode_index] - if(current_firemode != FIREMODE_OTHER) - return ..() - return secondary.can_shoot() - -/obj/item/gun/ballistic/automatic/smg/m90/on_wield(obj/item/source, mob/user) - wielded = TRUE - secondary.wielded = TRUE - INVOKE_ASYNC(src, .proc.do_wield, user) - -/obj/item/gun/ballistic/automatic/smg/m90/do_wield(mob/user) - . = ..() - secondary.wielded_fully = wielded_fully - -/// triggered on unwield of two handed item -/obj/item/gun/ballistic/automatic/smg/m90/on_unwield(obj/item/source, mob/user) - . = ..() - secondary.wielded_fully = FALSE - secondary.wielded = FALSE - - -/obj/item/gun/ballistic/automatic/smg/m90/proc/secondary_update_icon() - update_appearance() - SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD) - /obj/item/gun/ballistic/automatic/smg/firestorm //weapon designed by Apogee-dev name = "HP Firestorm" @@ -251,41 +91,6 @@ EMPTY_GUN_HELPER(automatic/smg/c20r) magazine = new /obj/item/ammo_box/magazine/c45_firestorm_mag/pan(src) chamber_round() -/obj/item/gun/ballistic/automatic/smg/cm5 - name = "\improper CM-5" - desc = "The standard issue SMG of CLIP. One of the few firearm designs that were left mostly intact from the designs found on the UNSV Lichtenstein. Chambered in 9mm." - icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' - - icon_state = "cm5" - item_state = "cm5" - - mag_type = /obj/item/ammo_box/magazine/smgm9mm - weapon_weight = WEAPON_LIGHT - fire_sound = 'sound/weapons/gun/smg/smg_heavy.ogg' - manufacturer = MANUFACTURER_MINUTEMAN - - fire_select_icon_state_prefix = "clip_" - adjust_fire_select_icon_state_on_safety = TRUE - -EMPTY_GUN_HELPER(automatic/smg/cm5) - -/obj/item/gun/ballistic/automatic/smg/cm5/compact - name = "\improper CM-5c" - desc = "The compact conversion of the CM-5. While not exactly restricted, it is looked down upon due to CLIP's doctrine on medium-longrange combat, however it excels at close range and is very lightweight. You feel like this gun is mildly unfinished. Chambered in 9mm." - w_class = WEIGHT_CLASS_NORMAL - spread = 25 - spread_unwielded = 40 - - fire_delay = 0.08 SECONDS - - recoil = 1 - recoil_unwielded = 2 - wield_delay = 0.2 SECONDS - wield_slowdown = 0.15 - /obj/item/gun/ballistic/automatic/smg/skm_carbine name = "\improper SKM-24v" desc = "The SKM-24v was a carbine modification of the SKM-24 during the Frontiersmen War. This, however, is just a shoddy imitation of that carbine, effectively an SKM-24 with a sawed down barrel and a folding wire stock. Can be fired with the stock folded, though accuracy suffers. Chambered in 4.6x30mm." @@ -367,7 +172,7 @@ EMPTY_GUN_HELPER(automatic/smg/cm5) eject_empty_sound = 'sound/weapons/gun/smg/smg_unload.ogg' spread = 7 - recoil_unwielded = 10 + spread_unwielded = 10 recoil = 0 recoil_unwielded = 4 @@ -387,6 +192,7 @@ EMPTY_GUN_HELPER(automatic/smg/cm5) 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 diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 135a1b2d06b0..43a9415671d6 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -1,8 +1,14 @@ /obj/item/gun/ballistic/automatic/toy name = "foam force SMG" desc = "A prototype three-round burst toy submachine gun. Ages 8 and up." - icon_state = "saber" - item_state = "gun" + + icon = 'icons/obj/guns/manufacturer/toys/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/toys/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/toys/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/toys/onmob.dmi' + + icon_state = "toysmg" + item_state = "toysmg" mag_type = /obj/item/ammo_box/magazine/toy/smg fire_sound = 'sound/items/syringeproj.ogg' force = 0 @@ -14,18 +20,13 @@ recoil = -10 //its a toy... recoil_unwielded = -10 -/obj/item/gun/ballistic/automatic/toy/update_overlays() - . = ..() - . += "[icon_state]_toy" /obj/item/gun/ballistic/automatic/toy/pistol name = "foam force pistol" desc = "A small, easily concealable toy handgun. Ages 8 and up." - icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' - lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' - righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' - mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' - icon_state = "pistol" // WS edit - Fix various startup runtimes + + icon_state = "toypistol" + item_state = "toypistol" bolt_type = BOLT_TYPE_LOCKING w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/toy/pistol @@ -46,7 +47,15 @@ /obj/item/gun/ballistic/shotgun/toy name = "foam force shotgun" desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up." - icon_state = "shotgun" + + icon = 'icons/obj/guns/manufacturer/toys/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/toys/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/toys/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/toys/onmob.dmi' + + icon_state = "toyshotgun" + item_state = "toyshotgun" + force = 0 throwforce = 0 mag_type = /obj/item/ammo_box/magazine/internal/shot/toy @@ -57,10 +66,6 @@ recoil = -10 //its a toy... recoil_unwielded = -10 -/obj/item/gun/ballistic/shotgun/toy/update_overlays() - . = ..() - . += "[icon_state]_toy" - /obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter) . = ..() if(chambered && !chambered.BB) @@ -69,7 +74,6 @@ /obj/item/gun/ballistic/shotgun/toy/crossbow name = "foam force crossbow" desc = "A weapon favored by many overactive children. Ages 8 and up." - icon = 'icons/obj/toy.dmi' icon_state = "foamcrossbow" item_state = "crossbow" mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow @@ -79,39 +83,3 @@ manufacturer = MANUFACTURER_DONKCO recoil = -10 //its a toy... recoil_unwielded = -10 - -/obj/item/gun/ballistic/automatic/smg/c20r/toy - name = "donksoft SMG" - desc = "A bullpup two-round burst toy SMG, designated 'C-20r'. Ages 8 and up." - item_flags = NONE - mag_type = /obj/item/ammo_box/magazine/toy/smgm45 - fire_sound = 'sound/items/syringeproj.ogg' - casing_ejector = FALSE - manufacturer = MANUFACTURER_DONKCO - recoil = -10 //its a toy... - recoil_unwielded = -10 - -/obj/item/gun/ballistic/automatic/smg/c20r/toy/riot - mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot - -/obj/item/gun/ballistic/automatic/smg/c20r/toy/update_overlays() - . = ..() - . += "[icon_state]_toy" - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy - name = "donksoft LMG" - desc = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up." - fire_sound = 'sound/items/syringeproj.ogg' - item_flags = NONE - mag_type = /obj/item/ammo_box/magazine/toy/m762 - casing_ejector = FALSE - manufacturer = MANUFACTURER_DONKCO - recoil = -10 //its a toy... - recoil_unwielded = -10 - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/riot - mag_type = /obj/item/ammo_box/magazine/toy/m762/riot - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/update_overlays() - . = ..() - . += "[icon_state]_toy" diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index abe3e3fd7b43..aaf37d4c9556 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -39,6 +39,8 @@ /obj/item/gun/energy/emp_act(severity) . = ..() if(!(. & EMP_PROTECT_CONTENTS)) + if(prob(GUN_NO_SAFETY_MALFUNCTION_CHANCE_HIGH)) + discharge("malfunctions from the EMP") cell.use(round(cell.charge / severity)) chambered = null //we empty the chamber recharge_newshot() //and try to charge a new shot @@ -323,3 +325,7 @@ . += "\The [name] has [round(cell.charge/shot.e_cost)] shots remaining on [shot.select_name] mode." else . += span_notice("\The [name] doesn't seem to have a cell!") + +/obj/item/gun/energy/unsafe_shot(target) + . = ..() + process_chamber() diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 2ca71649a6f7..5d0e8d54e4e2 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -192,6 +192,8 @@ icon_state = null damage = 20 damage_type = BRUTE + wall_damage_flags = PROJECTILE_BONUS_DAMAGE_MINERALS + wall_damage_override = MINERAL_WALL_INTEGRITY flag = "bomb" range = 3 log_override = TRUE @@ -235,8 +237,6 @@ for(var/obj/item/borg/upgrade/modkit/M in mods) M.projectile_strike(src, target_turf, target, kinetic_gun) if(ismineralturf(target_turf)) - var/turf/closed/mineral/M = target_turf - M.gets_drilled(firer, TRUE) if(iscarbon(firer)) var/mob/living/carbon/C = firer var/skill_modifier = C?.mind.get_skill_modifier(/datum/skill/mining, SKILL_SPEED_MODIFIER) 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/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 09de7690b5ea..067a4bbc5d97 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -110,7 +110,7 @@ /obj/item/gun/energy/plasmacutter name = "plasma cutter" - desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off xenos! Or, you know, mine stuff." + desc = "An engineering tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off xenos! Or, you know, cut through walls." icon_state = "plasmacutter" item_state = "plasmacutter" ammo_type = list(/obj/item/ammo_casing/energy/plasma) @@ -122,10 +122,12 @@ heat = 3800 usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') - tool_behaviour = TOOL_WELDER - toolspeed = 0.7 //plasmacutters can be used as welders, and are faster than standard welders + tool_behaviour = TOOL_DECONSTRUCT + wall_decon_damage = 200 + 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() . = ..() @@ -154,29 +156,50 @@ 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 return TRUE +/obj/item/gun/energy/plasmacutter/attack(mob/living/carbon/human/target, mob/user) + if(!istype(target)) + return ..() + var/obj/item/bodypart/attackedLimb = target.get_bodypart(check_zone(user.zone_selected)) + if(!attackedLimb || IS_ORGANIC_LIMB(attackedLimb) || (user.a_intent == INTENT_HARM)) + return ..() + if(!tool_start_check(user, amount = 1)) + return TRUE + user.visible_message("[user] starts to fix some of the dents on [target]'s [parse_zone(attackedLimb.body_zone)].", + "You start fixing some of the dents on [target == user ? "your" : "[target]'s"] [parse_zone(attackedLimb.body_zone)].") + if(!use_tool(target, user, delay = (target == user ? 5 SECONDS : 0.5 SECONDS), amount = 1, volume = 25)) + return TRUE + item_heal_robotic(target, user, brute_heal = 15, burn_heal = 0) + 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) @@ -185,6 +208,7 @@ icon_state = "adv_plasmacutter" item_state = "adv_plasmacutter" force = 15 + wall_decon_damage = 300 ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv) /obj/item/gun/energy/wormhole_projector diff --git a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm new file mode 100644 index 000000000000..a244b188863a --- /dev/null +++ b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm @@ -0,0 +1,477 @@ +//########### PISTOLS ###########// +/obj/item/gun/ballistic/automatic/pistol/cm23 + name = "\improper CM-23" + desc = "CLIP's standard service pistol. 10 rounds of 10mm ammunition make the CM-23 deadlier than many other service pistols, but its weight and bulk have made it unpopular as a sidearm. It has largely been phased out outside of specialized units and patrols on the fringes of CLIP space. Chambered in 10mm." + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "cm23" + item_state = "clip_generic" + w_class = WEIGHT_CLASS_NORMAL + mag_type = /obj/item/ammo_box/magazine/cm23 +// can_suppress = FALSE + fire_sound = 'sound/weapons/gun/pistol/cm23.ogg' + rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg' + lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' + manufacturer = MANUFACTURER_MINUTEMAN + load_sound = 'sound/weapons/gun/pistol/candor_reload.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg' + eject_sound = 'sound/weapons/gun/pistol/candor_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg' + recoil_unwielded = 3 + +/obj/item/ammo_box/magazine/cm23 + name = "CM-23 pistol magazine (10mm)" + desc = "An 10-round magazine magazine designed for the CM-70 pistol. These rounds do moderate damage, but struggle against armor." + icon_state = "cm23_mag-1" + base_icon_state = "cm23_mag" + ammo_type = /obj/item/ammo_casing/c10mm + caliber = "10mm" + max_ammo = 10 + +/obj/item/ammo_box/magazine/cm23/update_icon_state() + . = ..() + icon_state = "[base_icon_state]-[!!ammo_count()]" + +/obj/item/gun/ballistic/automatic/pistol/cm70 + name = "CM-70 machine pistol" + desc = "A compact machine pistol designed to rapidly fire 3-round bursts. Popular with officers and certain special units, the CM-70 is incredibly dangerous at close range. Chambered in 9mm." + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "cm70" + item_state = "clip_generic" + mag_type = /obj/item/ammo_box/magazine/m9mm_cm70 +// can_suppress = FALSE + burst_size = 3 + burst_delay = 0.1 SECONDS + fire_delay = 0.4 SECONDS + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST) + default_firemode = FIREMODE_SEMIAUTO + manufacturer = MANUFACTURER_MINUTEMAN + + fire_select_icon_state_prefix = "clip_" + adjust_fire_select_icon_state_on_safety = TRUE + + fire_sound = 'sound/weapons/gun/pistol/cm70.ogg' + + spread = 8 + spread_unwielded = 20 + +/obj/item/ammo_box/magazine/m9mm_cm70 + name = "CM-70 machine pistol magazine (9mm)" + desc = "A 18-round magazine designed for the CM-70 machine pistol. These rounds do okay damage, but struggle against armor." + icon_state = "cm70_mag_18" + base_icon_state = "cm70_mag" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 18 + + +/obj/item/ammo_box/magazine/m9mm_cm70/update_icon_state() + . = ..() + icon_state = "[base_icon_state]_[ammo_count() == 1 ? 1 : round(ammo_count(),3)]" + +//########### SMGS ###########// +/obj/item/gun/ballistic/automatic/smg/cm5 + name = "\improper CM-5" + desc = "CLIP's standard-issue submachine gun. Well-liked for its accuracy, stability, and ease of use compared to other submachineguns. Chambered in 9mm." + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "cm5" + item_state = "cm5" + + mag_type = /obj/item/ammo_box/magazine/cm5_9mm + bolt_type = BOLT_TYPE_CLIP + weapon_weight = WEAPON_LIGHT + fire_sound = 'sound/weapons/gun/smg/cm5.ogg' + manufacturer = MANUFACTURER_MINUTEMAN + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 37, + "y" = 20, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 27, + "y" = 17, + ) + ) + + fire_select_icon_state_prefix = "clip_" + adjust_fire_select_icon_state_on_safety = TRUE + +EMPTY_GUN_HELPER(automatic/smg/cm5) + +/obj/item/ammo_box/magazine/cm5_9mm + name = "CM-5 magazine (9mm)" + desc = "A 30-round magazine for 9mm submachine guns. These rounds do okay damage, but struggle against armor." + icon_state = "cm5_mag-1" + base_icon_state = "cm5_mag" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 30 + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/gun/ballistic/automatic/smg/cm5/compact + name = "\improper CM-5c" + desc = "A modification of the CM-5 featuring a dramatically shortened barrel and removed stock. Designed for CLIP-GOLD covert enforcement agents to maximize portability without sacrificing firepower, though accuracy at range is abysmal at best. Chambered in 9mm." + icon_state = "cm5c" + item_state = "cm5c" + + w_class = WEIGHT_CLASS_NORMAL + spread = 10 + spread_unwielded = 20 + + fire_delay = 0.1 SECONDS + + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 30, + "y" = 20, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 22, + "y" = 17, + ) + ) + + + recoil = 1 + recoil_unwielded = 2 + wield_delay = 0.2 SECONDS + wield_slowdown = 0.15 + + var/obj/item/storage/briefcase/current_case + +/obj/item/gun/ballistic/automatic/smg/cm5/compact/attackby(obj/item/attacking_item, mob/user, params) + . = ..() + if(current_case) + return + if(!istype(attacking_item, /obj/item/storage/briefcase)) + return + if(attacking_item.contents.len != 0) + return + to_chat(user, span_notice("...? You rig [src] to fire from within [attacking_item].")) + current_case = attacking_item + attacking_item.forceMove(src) + icon = attacking_item.icon + base_icon_state = attacking_item.icon_state + item_state = attacking_item.item_state + name = attacking_item.name + lefthand_file = attacking_item.lefthand_file + righthand_file = attacking_item.righthand_file + pickup_sound = attacking_item.pickup_sound + drop_sound = attacking_item.drop_sound + w_class = WEIGHT_CLASS_BULKY + +//how are you even supposed to hold it like this...? + spread += 10 + spread_unwielded +=10 + + cut_overlays() + update_appearance() + +/obj/item/gun/ballistic/automatic/smg/cm5/compact/AltClick(mob/user) + if(!current_case) + return ..() + current_case.forceMove(get_turf(src)) + icon = src::icon + base_icon_state = src::icon_state + item_state = src::item_state + name = src::name + lefthand_file = src::lefthand_file + righthand_file = src::righthand_file + pickup_sound = src::pickup_sound + drop_sound = src::drop_sound + w_class = WEIGHT_CLASS_NORMAL + + spread = src::spread + spread_unwielded = src::spread_unwielded + to_chat(user, span_notice("You remove the [current_case] from [src]")) + current_case = null + + cut_overlays() + update_appearance() + + +//########### MARKSMAN ###########// +/obj/item/gun/ballistic/automatic/marksman/f4 + name = "CM-F4" + desc = "CLIP's marksman rifle, used by both military and law enforcement units. Designed not long after the CM-24, the venerable F4 has adapted well to continued upgrades. Chambered in .308." + + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "f4" + item_state = "f4" + show_magazine_on_sprite = TRUE + weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_BULKY + bolt_type = BOLT_TYPE_CLIP + mag_type = /obj/item/ammo_box/magazine/f4_308 + fire_sound = 'sound/weapons/gun/rifle/f4.ogg' + burst_size = 0 + actions_types = list() + manufacturer = MANUFACTURER_MINUTEMAN + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 48, + "y" = 17, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 35, + "y" = 16, + ) + ) + + wield_slowdown = 2 + spread = -4 + fire_select_icon_state_prefix = "clip_" + adjust_fire_select_icon_state_on_safety = TRUE + +/obj/item/gun/ballistic/automatic/marksman/f4/inteq + name = "\improper SsG-04" + desc = "An F4 rifle purchased from CLIP and modified to suit IRMG's needs. Chambered in .308." + icon = 'icons/obj/guns/manufacturer/inteq/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/inteq/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/inteq/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/inteq/onmob.dmi' + icon_state = "f4_inteq" + item_state = "f4_inteq" + +/obj/item/gun/ballistic/automatic/marksman/f90 + name = "CM-F90" + desc = "A powerful sniper rifle used by vanishingly rare CLIP specialists, capable of impressive range and penetrating power. Chambered in 6.5mm CLIP." + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "f90" + item_state = "f90" + + fire_sound = 'sound/weapons/gun/sniper/cmf90.ogg' + + mag_type = /obj/item/ammo_box/magazine/f90 + bolt_type = BOLT_TYPE_CLIP + + fire_delay = 1 SECONDS + + manufacturer = MANUFACTURER_MINUTEMAN + spread = -5 + spread_unwielded = 35 + recoil = 4 + recoil_unwielded = 10 + wield_slowdown = 1 + wield_delay = 1.3 SECONDS + + zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you. + zoom_out_amt = 5 + +/obj/item/ammo_box/magazine/f90 + name = "\improper CM-F90 Magazine (6.5x57mm CLIP)" + desc = "A large 5-round box magazine for the CM-F90 sniper rifles. These rounds deal amazing damage and bypass half of their protective equipment, though it isn't a high enough caliber to pierce armored vehicles." + base_icon_state = "f90_mag" + icon_state = "f90_mag-1" + ammo_type = /obj/item/ammo_casing/a65clip + caliber = "6.5CLIP" + max_ammo = 5 + +/obj/item/ammo_box/magazine/f90/update_icon_state() + . = ..() + icon_state = "[base_icon_state]-[!!ammo_count()]" + +//########### RIFLES ###########// +/obj/item/gun/ballistic/automatic/assault/cm82 + name = "\improper CM-82" + desc = "CLIP's standard assault rifle, still relatively new in service. Accurate, reliable, and easy to use, the CM-82 replaced the CM-24 as CLIP's assault rifle almost overnight, and has proven immensely popular since. Chambered in 5.56mm." + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + 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/cm82.ogg' + icon_state = "cm82" + item_state = "cm82" + show_magazine_on_sprite = TRUE + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + bolt_type = BOLT_TYPE_CLIP + mag_type = /obj/item/ammo_box/magazine/p16 + spread = 2 + wield_delay = 0.5 SECONDS + + fire_delay = 0.18 SECONDS + + load_sound = 'sound/weapons/gun/rifle/cm82_reload.ogg' + load_empty_sound = 'sound/weapons/gun/rifle/cm82_reload.ogg' + eject_sound = 'sound/weapons/gun/rifle/cm82_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/rifle/cm82_unload.ogg' + + fire_select_icon_state_prefix = "clip_" + adjust_fire_select_icon_state_on_safety = TRUE + +/obj/item/gun/ballistic/automatic/assault/skm/cm24 + name = "\improper CM-24" + desc = "An obsolete and very rugged assault rifle with a heavy projectile and slow action for its class. Once CLIP's standard assault rifle produced in phenomenal numbers for the First Frontiersman War, it now serves as an acceptable, if rare, battle rifle. Chambered in 7.62mm CLIP." + + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "cm24" + item_state = "cm24" + manufacturer = MANUFACTURER_NONE + + fire_select_icon_state_prefix = "clip_" + adjust_fire_select_icon_state_on_safety = TRUE + +/obj/item/gun/ballistic/automatic/hmg/cm40 + name = "\improper CM-40" + desc = "A light machine gun used by CLIP heavy weapons teams, capable of withering suppressive fire. The weight and recoil make it nearly impossible to use without deploying the bipod against appropriate cover, such as a table, or bracing against solid cover. Chambered in 7.62x40mm CLIP." + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "cm40" + item_state = "cm40" + + fire_delay = 0 + + fire_sound = 'sound/weapons/gun/hmg/cm40.ogg' + rack_sound = 'sound/weapons/gun/hmg/cm40_cocked.ogg' + + rack_sound_vary = FALSE + + load_sound_vary = FALSE + eject_sound_vary = FALSE + + load_sound = 'sound/weapons/gun/hmg/cm40_reload.ogg' + load_empty_sound = 'sound/weapons/gun/hmg/cm40_reload.ogg' + eject_sound = 'sound/weapons/gun/hmg/cm40_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/hmg/cm40_unload.ogg' + + fire_delay = 0.1 SECONDS + + show_magazine_on_sprite = TRUE + weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + manufacturer = MANUFACTURER_MINUTEMAN + mag_type = /obj/item/ammo_box/magazine/cm40_762_40_box + + spread = 10 + spread_unwielded = 35 + + recoil = 2 //identical to other LMGS + recoil_unwielded = 7 //same as skm + + wield_slowdown = 1 //not as severe as other lmgs, but worse than the normal skm + wield_delay = 0.9 SECONDS //faster than normal lmgs, slower than stock skm + + has_bipod = TRUE + + deploy_recoil_bonus = -2 + deploy_spread_bonus = -6 + +/obj/item/gun/ballistic/automatic/hmg/cm40/ComponentInitialize() + . = ..() + AddComponent(/datum/component/automatic_fire, 0.1 SECONDS) + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/ammo_box/magazine/cm40_762_40_box + name = "CM-40 box magazine (7.62x40mm CLIP)" + desc = "An 80 round box magazine for CM-40 light machine gun. These rounds do good damage with good armor penetration." + base_icon_state = "cm40_mag" + icon_state = "cm40_mag-1" + ammo_type = /obj/item/ammo_casing/a762_40 + max_ammo = 80 + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/ammo_box/magazine/cm40_762_40_box/update_icon_state() + . = ..() + icon_state = "[base_icon_state]-[!!ammo_count()]" + +//########### MISC ###########// + +/obj/item/gun/ballistic/shotgun/cm15 + name = "\improper CM-15" + desc = "A large automatic shotgun used by CLIP. Generally employed by law enforcement and breaching specialists, and rarely by CLIP-BARD (typically with incendiary ammunition). Chambered in 12 gauge." + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + + + icon_state = "cm15" + item_state = "cm15" + + fire_select_icon_state_prefix = "clip_" + adjust_fire_select_icon_state_on_safety = TRUE + + manufacturer = MANUFACTURER_MINUTEMAN + + weapon_weight = WEAPON_MEDIUM +// can_suppress = FALSE + mag_type = /obj/item/ammo_box/magazine/cm15_12g + + empty_indicator = FALSE + unique_mag_sprites_for_variants = FALSE + + semi_auto = TRUE + internal_magazine = FALSE + casing_ejector = TRUE + tac_reloads = TRUE + pickup_sound = 'sound/items/handling/rifle_pickup.ogg' + + fire_sound = 'sound/weapons/gun/shotgun/bulldog.ogg' + + load_sound = 'sound/weapons/gun/rifle/ar_reload.ogg' + load_empty_sound = 'sound/weapons/gun/rifle/ar_reload.ogg' + eject_sound = 'sound/weapons/gun/rifle/ar_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/rifle/ar_unload.ogg' + + rack_sound = 'sound/weapons/gun/rifle/ar_cock.ogg' + + spread = 4 + spread_unwielded = 16 + recoil = 1 + recoil_unwielded = 4 + wield_slowdown = 0.6 + wield_delay = 0.65 SECONDS + diff --git a/code/modules/projectiles/guns/manufacturer/clip_lanchester/lasers.dm b/code/modules/projectiles/guns/manufacturer/clip_lanchester/lasers.dm new file mode 100644 index 000000000000..2fbe0009a563 --- /dev/null +++ b/code/modules/projectiles/guns/manufacturer/clip_lanchester/lasers.dm @@ -0,0 +1,43 @@ +/obj/item/gun/energy/kalix/clip + name = "CM-1" + desc = "CLIP's first standard-issue weapon, a near-copy of colonial-era weapons left behind by Free Zohil forces in CLIP's founding years. Outdated and difficult to source replacement parts for, but nevertheless still very common among BARD personnel and for ceremonal use." + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "cm1" + item_state = "cm1" + + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO) + default_firemode = FIREMODE_SEMIAUTO + + cell_type = /obj/item/stock_parts/cell/gun + ammo_type = list(/obj/item/ammo_casing/energy/kalix, /obj/item/ammo_casing/energy/disabler/hitscan) + + manufacturer = MANUFACTURER_MINUTEMAN_LASER + +/obj/item/gun/energy/laser/e50/clip + name = "ECM-50" + desc = "An extensive modification of the Eoehoma E-50 Emitter, customized specifically for CLIP-BARD. Sacrifices some of the E-50's raw power for vastly improved energy efficiency, while preserving its incendiary side-effects." + + icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' + + icon_state = "cm50" + item_state = "cm50" + shaded_charge = TRUE + charge_sections = 4 + + ammo_type = list(/obj/item/ammo_casing/energy/laser/eoehoma/e50/clip) + +/obj/item/ammo_casing/energy/laser/eoehoma/e50/clip + projectile_type = /obj/projectile/beam/emitter/hitscan/clip + fire_sound = 'sound/weapons/gun/laser/heavy_laser.ogg' + e_cost = 6250 + delay = 0.6 SECONDS + +/obj/projectile/beam/emitter/hitscan/clip + damage = 35 diff --git a/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm b/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm index 4053b5f4d8a6..4e16d2d03512 100644 --- a/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm +++ b/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm @@ -50,10 +50,12 @@ desc = "The BG-16 is the military-grade beam gun designed and manufactured by Etherbor Industries as the standard-issue close-range weapon of the PGF." icon_state = "pgfgun" item_state = "pgfgun" - w_class = WEIGHT_CLASS_NORMAL + + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO) + default_firemode = FIREMODE_SEMIAUTO cell_type = /obj/item/stock_parts/cell/gun/pgf - ammo_type = list(/obj/item/ammo_casing/energy/pgf , /obj/item/ammo_casing/energy/disabler/hitscan) + ammo_type = list(/obj/item/ammo_casing/energy/kalix/pgf , /obj/item/ammo_casing/energy/disabler/hitscan) /obj/projectile/beam/hitscan/kalix/pgf name = "concentrated energy" @@ -64,9 +66,10 @@ muzzle_flash_color_override = LIGHT_COLOR_ELECTRIC_GREEN impact_light_color_override = LIGHT_COLOR_ELECTRIC_GREEN -/obj/item/ammo_casing/energy/pgf +/obj/item/ammo_casing/energy/kalix/pgf projectile_type = /obj/projectile/beam/hitscan/kalix/pgf fire_sound = 'sound/weapons/gun/energy/kalixsmg.ogg' + e_cost = 666 //30 shots per cell delay = 1 /obj/item/gun/energy/kalix/pistol //blue diff --git a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm new file mode 100644 index 000000000000..224712438b90 --- /dev/null +++ b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm @@ -0,0 +1,271 @@ +/obj/item/gun/ballistic/automatic/pistol/mauler + name = "Mauler machine pistol" + desc = "An automatic machine pistol originating from the Shoal. Impressive volume of fire with abysmal accuracy, lackluster armor penetration, and limited magazine size render it mostly useless outside of very close quarters. Chambered in 9mm." + icon = 'icons/obj/guns/manufacturer/frontier_import/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/frontier_import/onmob.dmi' + + icon_state = "mauler" + item_state = "hp_generic" + w_class = WEIGHT_CLASS_NORMAL + mag_type = /obj/item/ammo_box/magazine/m9mm_mauler + fire_delay = 0.06 SECONDS + + gun_firemodes = list(FIREMODE_FULLAUTO) + default_firemode = FIREMODE_FULLAUTO + + spread = 25 + spread_unwielded = 50 + recoil = 1 + recoil_unwielded = 4 + fire_sound = 'sound/weapons/gun/pistol/mauler.ogg' + + rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg' + + lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg' + + load_sound = 'sound/weapons/gun/pistol/candor_reload.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg' + eject_sound = 'sound/weapons/gun/pistol/candor_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg' + +/obj/item/gun/ballistic/automatic/pistol/mauler/ComponentInitialize() + . = ..() + AddComponent(/datum/component/automatic_fire, 0.06 SECONDS) + +/obj/item/ammo_box/magazine/m9mm_mauler + name = "mauler machine pistol magazine (9mm)" + desc = "A 12-round magazine designed for the Mauler machine pistol." + icon_state = "mauler_mag-1" + base_icon_state = "mauler_mag" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 12 + +/obj/item/ammo_box/magazine/m9mm_mauler/update_icon_state() + . = ..() + icon_state = "[base_icon_state]-[!!ammo_count()]" + +/obj/item/gun/ballistic/automatic/pistol/spitter + name = "\improper Spitter" + desc = "An open-bolt submachine gun favored by the Frontiersmen. This design's origins are unclear, but its simple, robust design has been widely copied throughout the Frontier, and it is stereotypically used by pirates and various criminal groups that value low price and ease of concealment. Chambered in 9mm." + 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' + + icon_state = "spitter" + item_state = "spitter" + mag_type = /obj/item/ammo_box/magazine/spitter_9mm + bolt_type = BOLT_TYPE_OPEN + weapon_weight = WEAPON_LIGHT + show_magazine_on_sprite = TRUE + manufacturer = MANUFACTURER_IMPORT + + spread = 20 + spread_unwielded = 35 + dual_wield_spread = 35 + wield_slowdown = 0.25 + wield_delay = 0.2 SECONDS + fire_delay = 0.09 SECONDS + + fire_sound = 'sound/weapons/gun/smg/spitter.ogg' + rack_sound = 'sound/weapons/gun/smg/spitter_cocked.ogg' + rack_sound_vary = FALSE + + load_sound_vary = FALSE + eject_sound_vary = FALSE + load_sound = 'sound/weapons/gun/smg/spitter_reload.ogg' + load_empty_sound = 'sound/weapons/gun/smg/spitter_reload.ogg' + eject_sound = 'sound/weapons/gun/smg/spitter_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/smg/spitter_unload.ogg' + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/foldable_stock/spitter + ) + + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_STOCK = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 32, + "y" = 23, + ), + ATTACHMENT_SLOT_STOCK = list( + "x" = -5, + "y" = 18, + ) + ) + + default_attachments = list(/obj/item/attachment/foldable_stock/spitter) + + gun_firemodes = list(FIREMODE_FULLAUTO) + default_firemode = FIREMODE_FULLAUTO + + + +/obj/item/ammo_box/magazine/spitter_9mm + name = "spitter pistol magazine (9mm)" + desc = "A thin 30-round magazine for the Spitter submachine gun." + icon_state = "spitter_mag-1" + base_icon_state = "spitter_mag" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 30 + +/obj/item/ammo_box/magazine/spitter_9mm/update_icon_state() + . = ..() + icon_state = "[base_icon_state]-[!!ammo_count()]" + + +/obj/item/gun/ballistic/automatic/smg/pounder + name = "Pounder" + desc = "An unusual submachine gun of Frontiersman make. A miniscule cartridge lacking both stopping power and armor penetration is compensated for with best-in-class ammunition capacity and cycle rate. Chambered in .22 LR." + 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' + + icon_state = "pounder" + item_state = "pounder" + mag_type = /obj/item/ammo_box/magazine/c22lr_pounder_pan + burst_size = 1 + fire_delay = 0.05 SECONDS + spread = 25 + spread_unwielded = 50 + + fire_sound = 'sound/weapons/gun/smg/pounder.ogg' + rack_sound = 'sound/weapons/gun/smg/pounder_cocked.ogg' + rack_sound_vary = FALSE + + load_sound_vary = FALSE + eject_sound_vary = FALSE + load_sound = 'sound/weapons/gun/smg/pounder_reload.ogg' + load_empty_sound = 'sound/weapons/gun/smg/pounder_reload.ogg' + eject_sound = 'sound/weapons/gun/smg/pounder_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/smg/pounder_unload.ogg' + + gun_firemodes = list(FIREMODE_FULLAUTO) + default_firemode = FIREMODE_FULLAUTO + + manufacturer = MANUFACTURER_IMPORT + wield_slowdown = 0.5 + +/obj/item/ammo_box/magazine/c22lr_pounder_pan + name = "pan magazine (.22 LR)" + desc = "A 50-round pan magazine for the Pounder submachine gun." + icon_state = "firestorm_pan" + base_icon_state = "firestorm_pan" + ammo_type = /obj/item/ammo_casing/c22lr + caliber = "22lr" + max_ammo = 50 + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/ammo_box/magazine/c22lr_pounder_pan/update_icon_state() + . = ..() + icon_state = "firestorm_pan" + +/obj/item/gun/ballistic/automatic/hmg/shredder + name = "\improper Shredder" + desc = "A vastly atypical heavy machine gun, extensively modified by the Frontiersmen. Additional grips have been added to enable firing from the hip, and it has been modified to fire belts of shotgun shells. Chambered in 12g." + 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' + + icon_state = "shredder" + item_state = "shredder" + mag_type = /obj/item/ammo_box/magazine/m12_shredder + spread = 15 + recoil = 2 + recoil_unwielded = 7 + fire_delay = 0.16 SECONDS + mag_display_ammo = TRUE + + bolt_type = BOLT_TYPE_STANDARD + show_magazine_on_sprite = TRUE + show_magazine_on_sprite_ammo = TRUE + tac_reloads = FALSE + fire_sound = 'sound/weapons/gun/hmg/shredder.ogg' + rack_sound = 'sound/weapons/gun/hmg/shredder_cocked_alt.ogg' + + load_sound_vary = FALSE + eject_sound_vary = FALSE + load_sound = 'sound/weapons/gun/hmg/shredder_reload.ogg' + load_empty_sound = 'sound/weapons/gun/hmg/shredder_reload.ogg' + eject_sound = 'sound/weapons/gun/hmg/shredder_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/hmg/shredder_unload.ogg' + + manufacturer = MANUFACTURER_IMPORT + has_bipod = FALSE + +/obj/item/ammo_box/magazine/m12_shredder + name = "belt box (12g)" + desc = "A 40-round belt box for the Shredder heavy machine gun." + icon_state = "shredder_mag-1" + base_icon_state = "shredder_mag" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + caliber = "12ga" + max_ammo = 40 + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/ammo_box/magazine/m12_shredder/update_icon_state() + . = ..() + icon_state = "[base_icon_state]-[!!ammo_count()]" + +/obj/item/ammo_box/magazine/m12_shredder/slug + name = "belt box (12g slug)" + desc = "A 40-round belt box for the Shredder heavy machine gun." + icon_state = "shredder_mag_slug-1" + base_icon_state = "shredder_mag_slug" + ammo_type = /obj/item/ammo_casing/shotgun + 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/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm b/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm new file mode 100644 index 000000000000..18239e94dd7e --- /dev/null +++ b/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm @@ -0,0 +1,1084 @@ +//########### PISTOLS ###########// +/obj/item/gun/ballistic/automatic/pistol/ringneck + name = "PC-76 \"Ringneck\"" + desc = "A compact handgun used by most Syndicate-affiliated groups. Small enough to conceal in most pockets, making it popular for covert elements and simply as a compact defensive weapon. Chambered in 10mm." + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + icon_state = "ringneck" + item_state = "sa_generic" + + w_class = WEIGHT_CLASS_SMALL + mag_type = /obj/item/ammo_box/magazine/m10mm_ringneck + + fire_sound = 'sound/weapons/gun/pistol/shot.ogg' + dry_fire_sound = 'sound/weapons/gun/pistol/dry_fire.ogg' + suppressed_sound = 'sound/weapons/gun/pistol/shot_suppressed.ogg' + + load_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' + + rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' + lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg' + + manufacturer = MANUFACTURER_SCARBOROUGH + show_magazine_on_sprite = TRUE + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_SCOPE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 27, + "y" = 23, + ), + ATTACHMENT_SLOT_SCOPE = list( + "x" = 16, + "y" = 25, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 21, + "y" = 19, + ) + ) + + + spread = 6 //becuase its compact, spread is slightly worse + spread_unwielded = 9 + recoil_unwielded = 2 + +EMPTY_GUN_HELPER(automatic/pistol/ringneck) + +/obj/item/gun/ballistic/automatic/pistol/ringneck/indie + name = "Ringneck-76" + desc = "A service handgun popular among law enforcement, mercenaries, and independent spacers with discerning tastes. Chambered in 10mm." + + icon_state = "ringneck76" + item_state = "sa_indie" + + w_class = WEIGHT_CLASS_NORMAL + + spread = 5 //this one is normal sized, thus in theory its better, in theory at least + spread_unwielded = 7 + recoil_unwielded = 3 + +EMPTY_GUN_HELPER(automatic/pistol/ringneck/indie) + + +/obj/item/ammo_box/magazine/m10mm_ringneck + name = "Ringneck pistol magazine (10mm)" + desc = "An 10-round magazine for the Ringneck pistol. These rounds do moderate damage, but struggle against armor." + icon_state = "ringneck_mag-1" + base_icon_state = "ringneck_mag" + ammo_type = /obj/item/ammo_casing/c10mm + caliber = "10mm" + max_ammo = 10 + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/ammo_box/magazine/m10mm_ringneck/empty + start_empty = TRUE + +/obj/item/gun/ballistic/automatic/pistol/asp + name = "BC-81 \"Asp\"" + desc = "An armor-piercing combat handgun once used by Syndicate strike teams, now primarily used by descendants of the Gorlex Marauders. Chambered in 5.7mm." + + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + icon_state = "asp" + item_state = "sa_generic" + + mag_type = /obj/item/ammo_box/magazine/m57_39_asp + + fire_sound = 'sound/weapons/gun/pistol/asp.ogg' + + load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' + + rack_sound = 'sound/weapons/gun/pistol/rack.ogg' + lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg' + + manufacturer = MANUFACTURER_SCARBOROUGH + show_magazine_on_sprite = TRUE + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_SCOPE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 32, + "y" = 23, + ), + ATTACHMENT_SLOT_SCOPE = list( + "x" = 15, + "y" = 26, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 23, + "y" = 19, + ) + ) + +EMPTY_GUN_HELPER(automatic/pistol/asp) + +/obj/item/ammo_box/magazine/m57_39_asp + name = "Asp magazine (5.7x39mm)" + desc = "A 12-round, double-stack magazine for the Asp pistol. These rounds do okay damage with average performance against armor." + icon_state = "asp_mag-12" + base_icon_state = "asp_mag" + ammo_type = /obj/item/ammo_casing/c57x39mm + caliber = "5.7x39mm" + max_ammo = 12 + +/obj/item/ammo_box/magazine/m57_39_asp/update_icon_state() + . = ..() + if(ammo_count() == 12) + icon_state = "[base_icon_state]-12" + else if(ammo_count() >= 10) + icon_state = "[base_icon_state]-10" + else if(ammo_count() >= 5) + icon_state = "[base_icon_state]-5" + else if(ammo_count() >= 1) + icon_state = "[base_icon_state]-1" + else + icon_state = "[base_icon_state]-0" + + +/obj/item/gun/ballistic/revolver/viper + name = "R-23 \"Viper\"" + desc = "An imposing revolver used by officers and certain agents of Syndicate member factions during the ICW, still favored by captains and high-ranking officers of the former Syndicate. Chambered in .357 Magnum." + + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + + icon_state = "viper" + item_state = "sa_generic" + + fire_sound = 'sound/weapons/gun/revolver/viper.ogg' + rack_sound = 'sound/weapons/gun/revolver/viper_prime.ogg' + load_sound = 'sound/weapons/gun/revolver/load_bullet.ogg' + eject_sound = 'sound/weapons/gun/revolver/empty.ogg' + + dry_fire_sound = 'sound/weapons/gun/revolver/dry_fire.ogg' + + fire_delay = 0.5 SECONDS + + semi_auto = TRUE //double action + safety_wording = "safety" + +EMPTY_GUN_HELPER(revolver/viper) + +/obj/item/gun/ballistic/revolver/viper/indie + name = "Viper-23" + desc = "A powerful bull-barrel revolver. Very popular among mercenaries and the occasional well-to-do spacer or pirate for its flashy appearance and powerful cartridge. Chambered in .357 Magnum." + + icon_state = "viper23" + item_state = "viper23" + + semi_auto = FALSE //not double action + safety_wording = "hammer" + +/obj/item/gun/ballistic/revolver/viper/ComponentInitialize() + . = ..() + AddComponent(/datum/component/ammo_hud/revolver) + +EMPTY_GUN_HELPER(revolver/viper/indie) + +/obj/item/gun/ballistic/automatic/pistol/rattlesnake + name = "MP-84 \"Rattlesnake\"" + desc = "A machine pistol, once used by Syndicate infiltrators and special forces during the ICW. Still used by specialists in former Syndicate factions. Chambered in 9mm." + + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + + icon_state = "rattlesnake" + item_state = "rattlesnake" + + mag_type = /obj/item/ammo_box/magazine/m9mm_rattlesnake + + fire_sound = 'sound/weapons/gun/pistol/rattlesnake.ogg' + dry_fire_sound = 'sound/weapons/gun/pistol/dry_fire.ogg' + suppressed_sound = 'sound/weapons/gun/pistol/shot_suppressed.ogg' + + load_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' + + rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' + lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg' + + show_magazine_on_sprite = TRUE + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_SCOPE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 40, + "y" = 26, + ), + ATTACHMENT_SLOT_SCOPE = list( + "x" = 14, + "y" = 29, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 22, + "y" = 21, + ) + ) + + burst_size = 3 + burst_delay = 0.1 SECONDS + fire_delay = 0.4 SECONDS + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST) + default_firemode = FIREMODE_SEMIAUTO + +EMPTY_GUN_HELPER(automatic/pistol/rattlesnake) + +/obj/item/gun/ballistic/automatic/pistol/rattlesnake/inteq + name = "MP-84m Kingsnake" + desc = "A machine pistol obtained from Syndicate stockpiles and lightly modified to Inteq standards. Generally issued only to specialists. Chambered in 9mm." + + icon_state = "rattlesnake_inteq" + item_state = "rattlesnake_inteq" + +/obj/item/ammo_box/magazine/m9mm_rattlesnake + name = "Rattlesnake magazine (9mm)" + desc = "A long, 18-round double-stack magazine designed for the Rattlesnake machine pistol. These rounds do okay damage, but struggle against armor." + icon_state = "rattlesnake_mag_18" + base_icon_state = "rattlesnake_mag" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + max_ammo = 18 + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/ammo_box/magazine/m9mm_rattlesnake/update_icon_state() + . = ..() + icon_state = "[base_icon_state]_[ammo_count() == 1 ? 1 : round(ammo_count(),3)]" + +/obj/item/gun/ballistic/automatic/pistol/himehabu + name = "PC-81 \"Himehabu\"" + desc = "An astonishingly compact machine pistol firing ultra-light projectiles, designed to be as small and concealable as possible while remaining a credible threat at very close range. Armor penetration is practically non-existent. Chambered in .22." + + icon_state = "himehabu" + item_state = "sa_generic" + + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + + + w_class = WEIGHT_CLASS_TINY + mag_type = /obj/item/ammo_box/magazine/m22lr_himehabu + fire_sound = 'sound/weapons/gun/pistol/himehabu.ogg' + + load_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' + + rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' + lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg' + + show_magazine_on_sprite = TRUE + + valid_attachments = list( + /obj/item/attachment/silencer, + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_SCOPE = 1, + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 28, + "y" = 22, + ), + ATTACHMENT_SLOT_SCOPE = list( + "x" = 12, + "y" = 25, + ) + ) + + recoil = -2 + recoil_unwielded = -2 + spread_unwielded = 0 + wield_slowdown = 0 + +EMPTY_GUN_HELPER(automatic/pistol/himehabu) + +/obj/item/ammo_box/magazine/m22lr_himehabu + name = "pistol magazine (.22 LR)" + desc = "A single-stack handgun magazine designed to chamber .22 LR. It's rather tiny, all things considered." + icon_state = "himehabu_mag-10" + base_icon_state = "himehabu_mag" + ammo_type = /obj/item/ammo_casing/c22lr + caliber = "22lr" + max_ammo = 10 + w_class = WEIGHT_CLASS_TINY + multiple_sprites = AMMO_BOX_PER_BULLET + +//########### SMGS ###########// + + +/obj/item/gun/ballistic/automatic/smg/cobra + name = "C-20r \"Cobra\"" + desc = "A bullpup submachine gun, heavily used by Syndicate strike teams during the ICW. Still sees widespread use by the descendants of the Gorlex Marauders. Chambered in .45." + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + icon_state = "cobra" + item_state = "cobra" + + mag_type = /obj/item/ammo_box/magazine/m45_cobra + + fire_sound = 'sound/weapons/gun/smg/cobra.ogg' + + load_sound = 'sound/weapons/gun/smg/cm5_reload.ogg' + load_empty_sound = 'sound/weapons/gun/smg/cm5_reload.ogg' + eject_sound = 'sound/weapons/gun/smg/cm5_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/smg/cm5_unload.ogg' + + show_magazine_on_sprite = TRUE + show_magazine_on_sprite_ammo = TRUE + show_ammo_capacity_on_magazine_sprite = TRUE + manufacturer = MANUFACTURER_SCARBOROUGH + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 27, + "y" = 23, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 38, + "y" = 18, + ) + ) + +EMPTY_GUN_HELPER(automatic/smg/cobra) + +/obj/item/gun/ballistic/automatic/smg/cobra/indie + name = "Cobra-20" + desc = "An older model of submachine gun manufactured by Scarborough Arms and marketed to mercenaries, law enforcement, and independent militia. Only became popular after the end of the ICW. Chambered in .45." + icon_state = "cobra20" + item_state = "cobra20" + +EMPTY_GUN_HELPER(automatic/smg/cobra/indie) + + +/obj/item/ammo_box/magazine/m45_cobra + +/obj/item/ammo_box/magazine/m45_cobra + name = "Cobra magazine (.45)" + desc = "A 28-round magazine for the Cobra submachine gun. These rounds do moderate damage, but struggle against armor." + icon_state = "cobra_mag-28" + base_icon_state = "cobra_mag" + ammo_type = /obj/item/ammo_casing/c45 + caliber = ".45" + max_ammo = 28 + +/obj/item/ammo_box/magazine/m45_cobra/update_icon_state() + . = ..() + icon_state = "[base_icon_state]-[round(ammo_count(),2)]" + +/obj/item/ammo_box/magazine/m45_cobra/empty + start_empty = TRUE + +/obj/item/gun/ballistic/automatic/smg/sidewinder + name = "CDW-81 \"Sidewinder\"" + desc = "An armor-piercing, compact personal defense weapon, introduced late into the Inter-Corporate War as an improvement over the C-20r when fighting armored personnel. Issued only in small numbers, and used today by specialists of former Syndicate factions. Chambered in 5.7mm." + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + icon_state = "sidewinder" + item_state = "sidewinder" + + mag_type = /obj/item/ammo_box/magazine/m57_39_sidewinder + + fire_sound = 'sound/weapons/gun/smg/sidewinder.ogg' + + load_sound = 'sound/weapons/gun/smg/sidewinder_reload.ogg' + load_empty_sound = 'sound/weapons/gun/smg/sidewinder_reload.ogg' + eject_sound = 'sound/weapons/gun/smg/sidewinder_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/smg/sidewinder_unload.ogg' + + rack_sound = 'sound/weapons/gun/smg/sidewinder_cocked.ogg' + + weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_NORMAL + + show_magazine_on_sprite = TRUE + show_magazine_on_sprite_ammo = TRUE + show_ammo_capacity_on_magazine_sprite = TRUE + manufacturer = MANUFACTURER_SCARBOROUGH + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/foldable_stock/sidewinder + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_RAIL = 1, + ATTACHMENT_SLOT_STOCK = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 44, + "y" = 18, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 35, + "y" = 17, + ), + ATTACHMENT_SLOT_STOCK = list( + "x" = 17, + "y" = 18, + ) + ) + + spread = 7 + spread_unwielded = 10 + + recoil = 0 + recoil_unwielded = 4 + + default_attachments = list(/obj/item/attachment/foldable_stock/sidewinder) + + +EMPTY_GUN_HELPER(automatic/smg/sidewinder) + +/obj/item/ammo_box/magazine/m57_39_sidewinder + name = "Sidewinder magazine (5.7x39mm)" + desc = "A 30-round magazine for the Cobra submachine gun. These rounds do okay damage with average performance against armor." + icon_state = "sidewinder_mag-1" + base_icon_state = "sidewinder_mag" + ammo_type = /obj/item/ammo_casing/c57x39mm + caliber = "5.7x39mm" + max_ammo = 30 + multiple_sprites = AMMO_BOX_FULL_EMPTY + +//########### MARKSMAN ###########// +/obj/item/gun/ballistic/automatic/marksman/boomslang + name = "MSR-90 \"Boomslang\"" + desc = "A bullpup semi-automatic sniper rifle with a high-magnification scope. Compact and capable of rapid follow-up fire without sacrificing power. Used by Syndicate support units and infiltrators during the ICW. Chambered in 6.5mm CLIP." + + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + + icon_state = "boomslang" + item_state = "boomslang" + + fire_sound = 'sound/weapons/gun/sniper/cmf90.ogg' + + mag_type = /obj/item/ammo_box/magazine/boomslang + w_class = WEIGHT_CLASS_BULKY + + fire_delay = 1 SECONDS + + show_magazine_on_sprite = TRUE + unique_mag_sprites_for_variants = TRUE + show_ammo_capacity_on_magazine_sprite = TRUE + manufacturer = MANUFACTURER_SCARBOROUGH + spread = -5 + spread_unwielded = 35 + recoil = 4 + recoil_unwielded = 10 + wield_slowdown = 1 + wield_delay = 1.3 SECONDS + + zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you. + zoom_out_amt = 5 + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 48, + "y" = 19, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 28, + "y" = 10, + ) + ) + +EMPTY_GUN_HELPER(automatic/marksman/boomslang) + +/obj/item/gun/ballistic/automatic/marksman/boomslang/indie + name = "Boomslang-90" + desc = "A modern semi-automatic hunting rifle. Its relative portability and fast follow-up potential compared to other weapons in its class have made it very popular with well-to-do hunters and the occasional law enforcement agency or mercenary. Chambered in 6.5mm CLIP." + + icon_state = "boomslang90" + item_state = "boomslang90" + + zoom_amt = 3 //Long range, enough to see in front of you, but no tiles behind you. + zoom_out_amt = 0 + +EMPTY_GUN_HELPER(automatic/marksman/boomslang/indie) + +/obj/item/ammo_box/magazine/boomslang + name = "\improper Boomslang Magazine (6.5x57mm CLIP)" + desc = "A large 10-round box magazine for Boomslang sniper rifles. These rounds deal amazing damage and bypass half of their protective equipment, though it isn't a high enough caliber to pierce armored vehicles." + base_icon_state = "boomslang" + icon_state = "boomslang-10" + ammo_type = /obj/item/ammo_casing/a65clip + caliber = "6.5CLIP" + max_ammo = 10 + multiple_sprites = AMMO_BOX_PER_BULLET + +/obj/item/ammo_box/magazine/boomslang/short + name = "\improper Boomslang Magazine (6.5x57mm CLIP)" + desc = "A 5-round box magazine for Boomslang sniper rifles. These rounds deal amazing damage and bypass half of their protective equipment, though it isn't a high enough caliber to pierce armored vehicles." + base_icon_state = "boomslang_short" + icon_state = "boomslang_short-5" + ammo_type = /obj/item/ammo_casing/a65clip + caliber = "6.5CLIP" + max_ammo = 5 + multiple_sprites = AMMO_BOX_PER_BULLET + +/obj/item/ammo_box/magazine/boomslang/short/empty + start_empty = TRUE + +/obj/item/gun/ballistic/automatic/marksman/taipan + name = "AMR-83 \"Taipan\"" + desc = "A monstrous semi-automatic anti-materiel rifle, surprisingly short for its class. Designed to destroy mechs, light vehicles, and equipment, but more than capable of obliterating regular personnel. Chambered in .50 BMG." + + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + + icon_state = "taipan" + item_state = "taipan" + fire_sound = 'sound/weapons/gun/sniper/shot.ogg' + fire_sound_volume = 90 + vary_fire_sound = FALSE + load_sound = 'sound/weapons/gun/sniper/mag_insert.ogg' + rack_sound = 'sound/weapons/gun/sniper/rack.ogg' + suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' + weapon_weight = WEAPON_HEAVY + mag_type = /obj/item/ammo_box/magazine/sniper_rounds + w_class = WEIGHT_CLASS_BULKY + zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you. + zoom_out_amt = 5 + slot_flags = ITEM_SLOT_BACK + actions_types = list() + show_magazine_on_sprite = TRUE + manufacturer = MANUFACTURER_SCARBOROUGH + + show_ammo_capacity_on_magazine_sprite = TRUE + + spread = -5 + spread_unwielded = 40 + recoil = 5 + recoil_unwielded = 50 + + wield_delay = 1.3 SECONDS + + valid_attachments = list() + slot_available = list() + +EMPTY_GUN_HELPER(automatic/marksman/taipan) + + +//########### RIFLES ###########// +/obj/item/gun/ballistic/automatic/assault/hydra + name = "SMR-80 \"Hydra\"" + desc = "Scarborough Arms' premier modular assault rifle platform. This is the basic configuration, optimized for light weight and handiness. A very well-regarded, if expensive and rare, assault rifle. Chambered in 5.56mm CLIP." + + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + icon_state = "hydra" + item_state = "hydra" + + mag_type = /obj/item/ammo_box/magazine/m556_42_hydra + gun_firenames = list(FIREMODE_SEMIAUTO = "single", FIREMODE_BURST = "burst fire", FIREMODE_FULLAUTO = "full auto", FIREMODE_OTHER = "underbarrel grenade launcher") + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO) + //gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST, FIREMODE_OTHER) + default_firemode = FIREMODE_SEMIAUTO + show_magazine_on_sprite = FALSE //we do this to avoid making the same of every sprite, see below + + load_sound = 'sound/weapons/gun/rifle/m16_reload.ogg' + load_empty_sound = 'sound/weapons/gun/rifle/m16_reload.ogg' + eject_sound = 'sound/weapons/gun/rifle/m16_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/rifle/m16_unload.ogg' + + fire_sound = 'sound/weapons/gun/rifle/hydra.ogg' + manufacturer = MANUFACTURER_SCARBOROUGH + + weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + + burst_size = 2 + burst_delay = 0.1 SECONDS + fire_delay = 0.18 SECONDS + spread = 1 + spread_unwielded = 8 + wield_slowdown = 0.4 + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_SCOPE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 42, + "y" = 17, + ), + ATTACHMENT_SLOT_SCOPE = list( + "x" = 21, + "y" = 24, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 30, + "y" = 15, + ) + ) + +EMPTY_GUN_HELPER(automatic/assault/hydra) + +//we hard code "hydra", why? because if not, i would need to duplicate the extended/short magazine sprites like 3 fucking times for every variant with a different icon state. this eases the spriting burden +/obj/item/gun/ballistic/automatic/assault/hydra/update_overlays() + . = ..() + if (magazine) + . += "hydra_mag_[magazine.base_icon_state]" + var/capacity_number = 0 + switch(get_ammo() / magazine.max_ammo) + if(0.2 to 0.39) + capacity_number = 20 + if(0.4 to 0.59) + capacity_number = 40 + if(0.6 to 0.79) + capacity_number = 60 + if(0.8 to 0.99) + capacity_number = 80 + if(1.0 to 2.0) //to catch the chambered round + capacity_number = 100 + if (capacity_number) + . += "hydra_mag_[magazine.base_icon_state]_[capacity_number]" + + +/obj/item/gun/ballistic/automatic/assault/hydra/lmg + name = "SAW-80 \"Hydra\"" + desc = "Scarborough Arms' premier modular assault rifle platform. This example is configured as a support weapon, with heavier components for sustained firing and a large muzzle brake. Chambered in 5.56mm CLIP." + + icon_state = "hydra_lmg" + item_state = "hydra_lmg" + + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO) + default_firemode = FIREMODE_FULLAUTO + + burst_delay = 0.08 SECONDS + fire_delay = 0.08 SECONDS + spread = 6 + spread_unwielded = 20 + wield_slowdown = 0.85 //better than the lmgs since it doesnt have a bipod, still not ideal + wield_delay = 0.9 SECONDS //ditto + + valid_attachments = list( + /obj/item/attachment/silencer, + /obj/item/attachment/laser_sight, + /obj/item/attachment/rail_light, + /obj/item/attachment/bayonet + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_SCOPE = 1, + ATTACHMENT_SLOT_RAIL = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 48, + "y" = 19, + ), + ATTACHMENT_SLOT_SCOPE = list( + "x" = 21, + "y" = 24, + ), + ATTACHMENT_SLOT_RAIL = list( + "x" = 30, + "y" = 15, + ) + ) + +/obj/item/gun/ballistic/automatic/assault/hydra/lmg/extended + spawnwithmagazine = FALSE //so we spawn with the short magaine + +/obj/item/gun/ballistic/automatic/assault/hydra/lmg/extended/Initialize() + . = ..() + magazine = new /obj/item/ammo_box/magazine/m556_42_hydra/extended(src) + chamber_round() + +/obj/item/gun/ballistic/automatic/assault/hydra/lmg/casket_mag + spawnwithmagazine = FALSE //so we spawn with the short magaine + +/obj/item/gun/ballistic/automatic/assault/hydra/lmg/casket_mag/Initialize() + . = ..() + magazine = new /obj/item/ammo_box/magazine/m556_42_hydra/casket(src) + chamber_round() + +/obj/item/gun/ballistic/automatic/assault/hydra/dmr + name = "SBR-80 \"Hydra\"" + desc = "Scarborough Arms' premier modular assault rifle platform. This example is configured as a marksman rifle, with an extended barrel and medium-zoom scope. Its lightweight cartridge is compensated for with a 2-round burst action. Chambered in 5.56mm CLIP." + + icon_state = "hydra_dmr" + item_state = "hydra_dmr" + + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST) + default_firemode = FIREMODE_SEMIAUTO + + spread = 0 + spread_unwielded = 12 + wield_slowdown = 0.8 //dmrrrr + wield_delay = 0.85 SECONDS //above + spawnwithmagazine = FALSE //so we spawn with the short magaine + zoomable = TRUE + +EMPTY_GUN_HELPER(automatic/assault/hydra/dmr) + +/obj/item/gun/ballistic/automatic/assault/hydra/dmr/Initialize() + . = ..() + magazine = new /obj/item/ammo_box/magazine/m556_42_hydra/small(src) + chamber_round() + + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl + name = "SMR-80 \"Hydra\"" + desc = "Scarborough Arms' premier modular assault rifle platform. This is the basic configuration, optimized for light weight and handiness. A very well-regarded, if expensive and rare, assault rifle. This one has an underslung grenade launcher attached. Chambered in 5.56x42mm CLIP." + + icon_state = "hydra_gl" + item_state = "hydra_gl" + + gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO, FIREMODE_OTHER) + + var/obj/item/gun/ballistic/revolver/grenadelauncher/secondary + + slot_available = list( //no rail slot + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_SCOPE = 1, + ) + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/Initialize() + . = ..() + secondary = new /obj/item/gun/ballistic/revolver/grenadelauncher(src) + RegisterSignal(secondary, COMSIG_ATOM_UPDATE_ICON, PROC_REF(secondary_update_icon)) + update_appearance() + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/process_other(atom/target, mob/living/user, message = TRUE, flag, params = null, zone_override = "", bonus_spread = 0) + return secondary.pre_fire(target, user, message, params, zone_override, bonus_spread) + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/can_shoot() + var/current_firemode = gun_firemodes[firemode_index] + if(current_firemode != FIREMODE_OTHER) + return ..() + return secondary.can_shoot() + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/afterattack(atom/target, mob/living/user, flag, params) + var/current_firemode = gun_firemodes[firemode_index] + if(current_firemode != FIREMODE_OTHER) + return ..() + return secondary.afterattack(target, user, flag, params) + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/attackby(obj/item/attack_obj, mob/user, params) + if(istype(attack_obj, secondary.magazine.ammo_type)) + secondary.unique_action() + return secondary.attackby(attack_obj, user, params) + return ..() + + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/can_shoot() + var/current_firemode = gun_firemodes[firemode_index] + if(current_firemode != FIREMODE_OTHER) + return ..() + return secondary.can_shoot() + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/on_wield(obj/item/source, mob/user) + wielded = TRUE + secondary.wielded = TRUE + INVOKE_ASYNC(src, .proc.do_wield, user) + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/do_wield(mob/user) + . = ..() + secondary.wielded_fully = wielded_fully + +/// triggered on unwield of two handed item +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/on_unwield(obj/item/source, mob/user) + . = ..() + secondary.wielded_fully = FALSE + secondary.wielded = FALSE + + +/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/proc/secondary_update_icon() + update_appearance() + SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD) + + +/obj/item/ammo_box/magazine/m556_42_hydra + name = "Hydra assault rifle magazine (5.56x42mm CLIP)" + desc = "A simple, 30-round magazine for the Hydra platform of 5.56x42mm CLIP assault rifles. These rounds do moderate damage with good armor penetration." + icon_state = "hydra_mag-30" + base_icon_state = "hydra_mag" + ammo_type = /obj/item/ammo_casing/a556_42 + caliber = "5.56x42mm" + max_ammo = 30 + +/obj/item/ammo_box/magazine/m556_42_hydra/update_icon_state() + . = ..() + if(multiple_sprites == AMMO_BOX_FULL_EMPTY) + return + icon_state = "[base_icon_state]-[ammo_count() == 1 ? 1 : round(ammo_count(),5)]" + +/obj/item/ammo_box/magazine/m556_42_hydra/small + name = "Short Hydra assault rifle magazine (5.56x42mm CLIP)" + desc = "A short, 20-round magazine for the Hydra platform of 5.56x42mm CLIP assault rifles; intended for the DMR variant. These rounds do moderate damage with good armor penetration." + icon_state = "hydra_small_mag-20" + base_icon_state = "hydra_small_mag" + max_ammo = 20 + +/obj/item/ammo_box/magazine/m556_42_hydra/extended + name = "extended Hydra assault rifle magazine (5.56x42mm CLIP)" + desc = "A bulkier, 60-round magazine for the Hydra platform of 5.56x42mm CLIP assault rifles. These rounds do moderate damage with good armor penetration." + icon_state = "hydra_extended_mag-1" + base_icon_state = "hydra_extended_mag" + max_ammo = 60 + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/ammo_box/magazine/m556_42_hydra/casket + name = "casket Hydra assault rifle magazine (5.56x42mm CLIP)" + desc = "A very long and bulky 100-round magazine for the Hydra platform of 5.56x42mm CLIP assault rifles. These rounds do moderate damage with good armor penetration." + icon_state = "hydra_casket_mag-1" + base_icon_state = "hydra_casket_mag" + max_ammo = 100 + multiple_sprites = AMMO_BOX_FULL_EMPTY + w_class = WEIGHT_CLASS_NORMAL + +//########### MISC ###########// +// Bulldog shotgun // + +/obj/item/gun/ballistic/shotgun/automatic/bulldog + name = "SG-60r \"Bulldog\"" + desc = "A bullpup combat shotgun usually seen with a characteristic drum magazine. Wildly popular among Syndicate strike teams during the ICW, although it proved less useful against military-grade equipment. Still popular among former Syndicate factions, especially the Ramzi Clique pirates. Chambered in 12g." + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + icon_state = "bulldog" + item_state = "bulldog" + + weapon_weight = WEAPON_MEDIUM + mag_type = /obj/item/ammo_box/magazine/m12g_bulldog + fire_delay = 0.4 SECONDS // this NEEDS the old delay. + fire_sound = 'sound/weapons/gun/shotgun/bulldog.ogg' + show_magazine_on_sprite = TRUE +// empty_indicator = TRUE + empty_alarm = TRUE + unique_mag_sprites_for_variants = TRUE + show_ammo_capacity_on_magazine_sprite = TRUE + internal_magazine = FALSE + casing_ejector = TRUE + tac_reloads = TRUE + pickup_sound = 'sound/items/handling/rifle_pickup.ogg' + manufacturer = MANUFACTURER_SCARBOROUGH + + load_sound = 'sound/weapons/gun/rifle/ar_reload.ogg' + load_empty_sound = 'sound/weapons/gun/rifle/ar_reload.ogg' + eject_sound = 'sound/weapons/gun/rifle/ar_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/rifle/ar_unload.ogg' + + rack_sound = 'sound/weapons/gun/rifle/ar_cock.ogg' + + spread = 4 + spread_unwielded = 16 + recoil = 1 + recoil_unwielded = 4 + wield_slowdown = 0.6 + wield_delay = 0.65 SECONDS + + valid_attachments = list( + /obj/item/attachment/silencer, + ) + slot_available = list( + ATTACHMENT_SLOT_MUZZLE = 1, + ATTACHMENT_SLOT_SCOPE = 1 + ) + slot_offsets = list( + ATTACHMENT_SLOT_MUZZLE = list( + "x" = 44, + "y" = 19, + ), + ATTACHMENT_SLOT_SCOPE = list( + "x" = 25, + "y" = 24, + ) + ) + +EMPTY_GUN_HELPER(shotgun/automatic/bulldog) + +/obj/item/ammo_box/magazine/m12g_bulldog + name = "shotgun box magazine (12g buckshot)" + desc = "A single-stack, 8-round box magazine for the Bulldog shotgun and it's derivatives." + icon_state = "bulldog_mag-1" + base_icon_state = "bulldog_mag" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + caliber = "12ga" + max_ammo = 8 + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/ammo_box/magazine/m12g_bulldog/drum + name = "shotgun drum magazine (12g buckshot)" + desc = "A bulky 12-round drum designed for the Bulldog shotgun and it's derivatives." + icon_state = "bulldog_drum-1" + base_icon_state = "bulldog_drum" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + caliber = "12ga" + max_ammo = 12 + w_class = WEIGHT_CLASS_NORMAL + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/ammo_box/magazine/m12g_bulldog/drum/stun + name = "shotgun drum magazine (12g taser slugs)" + ammo_type = /obj/item/ammo_casing/shotgun/stunslug + +/obj/item/ammo_box/magazine/m12g_bulldog/drum/slug + name = "shotgun drum magazine (12g slugs)" + ammo_type = /obj/item/ammo_casing/shotgun + +/obj/item/ammo_box/magazine/m12g_bulldog/drum/dragon + name = "shotgun drum magazine (12g dragon's breath)" + ammo_type = /obj/item/ammo_casing/shotgun/dragonsbreath + +/obj/item/ammo_box/magazine/m12g_bulldog/drum/bioterror + name = "shotgun drum magazine (12g bioterror)" + ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror + +/obj/item/ammo_box/magazine/m12g_bulldog/drum/meteor + name = "shotgun drum magazine (12g meteor slugs)" + ammo_type = /obj/item/ammo_casing/shotgun/meteorslug + + +EMPTY_GUN_HELPER(shotgun/bulldog) + + +/obj/item/gun/ballistic/rocketlauncher/mako + name = "RR-86 \"Mako\"" + desc = "A large, four-tube rocket launcher, the Mako fires (relatively) small rockets filled with incendiary compound, designed to cause fires and deny enemy movement. Capable of causing significant damage to exosuits on impact, as well." + + icon = 'icons/obj/guns/manufacturer/scarborough/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/scarborough/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/scarborough/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi' + + icon_state = "mako" + item_state = "mako" + mag_type = /obj/item/ammo_box/magazine/internal/mako + 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, FIREMODE_FULLAUTO) + default_firemode = FIREMODE_SEMIAUTO + burst_size = 1 + fire_delay = 0.4 SECONDS + casing_ejector = FALSE + weapon_weight = WEAPON_HEAVY + bolt_type = BOLT_TYPE_NO_BOLT + internal_magazine = TRUE + cartridge_wording = "rocket" + empty_indicator = TRUE + tac_reloads = FALSE + manufacturer = MANUFACTURER_SCARBOROUGH + + +/obj/item/ammo_box/magazine/internal/mako + name = "mako internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/rocket/a70mm + caliber = "70mm" + max_ammo = 4 + +/obj/item/ammo_casing/caseless/rocket/a70mm + name = "\improper M-KO-9HE" + desc = "An 70mm High Explosive rocket. Fire at mech and pray." + icon_state = "srm-8" + caliber = "70mm" + projectile_type = /obj/projectile/bullet/a84mm_he + auto_rotate = FALSE + +/obj/item/ammo_casing/caseless/rocket/a70mm/hedp + name = "\improper M-KO-9HEDP" + desc = "An 84mm High Explosive Dual Purpose rocket. Pointy end toward armor." + caliber = "70mm" + icon_state = "84mm-hedp" + projectile_type = /obj/projectile/bullet/a84mm diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 66adeb53ac59..2cccb02224ed 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -24,6 +24,8 @@ resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/def_zone = "" //Aiming at var/atom/movable/firer = null//Who shot it + // if the projectile was the result of a misfire. For logging. + var/misfire = FALSE var/atom/fired_from = null // the atom that the projectile was fired from (gun, turret) var/suppressed = FALSE //Attack message var/yo = null @@ -156,6 +158,10 @@ var/impact_effect_type //what type of impact effect to show when hitting something var/log_override = FALSE //is this type spammed enough to not log? (KAs) + // if the projectile has the matching flags when hitting a wall, it deals it's override damage instead + var/wall_damage_flags = PROJECTILE_BONUS_DAMAGE_NONE + var/wall_damage_override = 0 + ///If defined, on hit we create an item of this type then call hitby() on the hit target with this, mainly used for embedding items (bullets) in targets var/shrapnel_type ///If TRUE, hit mobs even if they're on the floor and not our target @@ -280,7 +286,9 @@ for(var/datum/reagent/R in reagents.reagent_list) reagent_note += "[R.name] ([num2text(R.volume)])" - if(ismob(firer)) + if(misfire) + L.log_message("has been hit by a misfired [src] from \a [fired_from] last touched by [fired_from.fingerprintslast]", LOG_ATTACK, color = "orange") + else if(ismob(firer)) log_combat(firer, L, "shot", src, reagent_note) else L.log_message("has been shot by [firer] with [src]", LOG_ATTACK, color="orange") diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 3aada5ddcb41..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 @@ -133,6 +151,8 @@ name = "pulse" icon_state = "u_laser" damage = 40 + wall_damage_flags = PROJECTILE_BONUS_DAMAGE_MINERALS | PROJECTILE_BONUS_DAMAGE_WALLS | PROJECTILE_BONUS_DAMAGE_WALLS + wall_damage_override = 200 impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_BLUE tracer_type = /obj/effect/projectile/tracer/pulse @@ -146,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 diff --git a/code/modules/projectiles/projectile/bullets/lmg.dm b/code/modules/projectiles/projectile/bullets/lmg.dm index 79a9b2feb07c..71da70475dde 100644 --- a/code/modules/projectiles/projectile/bullets/lmg.dm +++ b/code/modules/projectiles/projectile/bullets/lmg.dm @@ -67,7 +67,7 @@ /obj/projectile/bullet/mm712x82/hp name = "7.12x82mm hollow point bullet" - damage = 45 + damage = 40 armour_penetration = -20 /obj/projectile/bullet/incendiary/mm712x82 diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index a04fc2995c26..37af59c1de57 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -16,7 +16,7 @@ /obj/projectile/bullet/c9mm/hp name = "9mm hollow point bullet" - damage = 40 + damage = 35 armour_penetration = -50 /obj/projectile/bullet/incendiary/c9mm @@ -31,7 +31,7 @@ armour_penetration = -40 stamina = 30 -// 10mm (Stechkin & SkM-44(k)) +// 10mm (Ringneck & SkM-44(k)) /obj/projectile/bullet/c10mm name = "10mm bullet" @@ -49,7 +49,7 @@ /obj/projectile/bullet/c10mm/hp name = "10mm hollow point bullet" - damage = 45 + damage = 40 armour_penetration = -50 /obj/projectile/bullet/incendiary/c10mm @@ -82,7 +82,7 @@ /obj/projectile/bullet/c45/hp name = ".45 hollow point bullet" - damage = 45 + damage = 40 armour_penetration = -50 /obj/projectile/bullet/incendiary/c45 diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index 0c62fe5b3d4f..340aa692f5b2 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -6,7 +6,7 @@ /obj/projectile/bullet/a50AE/hp name = ".50 AE hollow point bullet" - damage = 60 + damage = 55 armour_penetration = -50 // .38 (Colt Detective Special & Winchester) @@ -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 @@ -110,7 +110,7 @@ /obj/projectile/bullet/a357/hp name = ".357 hollow point bullet" - damage = 50 + damage = 45 armour_penetration = -50 ricochet_chance = 0 //mushroom on impact, no bounces @@ -133,7 +133,7 @@ /obj/projectile/bullet/a4570/hp name = ".45-70 hollow point bullet" - damage = 60 //it's the pre-nerf .357 with less armor pen + damage = 55 //it's ALMOST the pre-nerf .357 with less armor pen armour_penetration = -50 /obj/projectile/bullet/a4570/explosive //for extra oof @@ -167,5 +167,5 @@ /obj/projectile/bullet/a44roum/hp name = ".44 roumain bullet" - damage = 45 + damage = 40 armour_penetration = -20 diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index f7b963cff94b..1d5d48c9b826 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -1,7 +1,7 @@ -// 5.56mm (M-90gl Carbine & P-16) +// 5.56x42mm CLIP (CM82, Hydra variants) -/obj/projectile/bullet/a556_45 - name = "5.56x45mm bullet" +/obj/projectile/bullet/a556_42 + name = "5.56x42mm CLIP bullet" damage = 25 armour_penetration = 20 @@ -16,7 +16,7 @@ /obj/projectile/bullet/a8_50rhp name = "8x50mmR bullet" speed = 0.3 - damage = 55 + damage = 49 armour_penetration = 0 // .300 Magnum (Smile Rifle) @@ -42,13 +42,6 @@ damage = 25 armour_penetration = 20 -//.300 BLK (Polymer Survivor Rifle) - -/obj/projectile/bullet/aac_300blk - name = ".300 Blackout bullet" - damage = 30 - armour_penetration = 20 - //7.62x40mm CLIP (SKM Rifles) /obj/projectile/bullet/a762_40 @@ -56,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 @@ -64,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 @@ -76,6 +83,20 @@ // .299 Eoehoma Caseless (E-40) /obj/projectile/bullet/c299 - name = ".229 Eoehoma caseless bullet" + name = ".299 Eoehoma caseless bullet" damage = 20 armour_penetration = 10 + +//6.5x57mm CLIP (F90) + +/obj/projectile/bullet/a65clip + name = "6.5x57mm CLIP bullet" + speed = 0.3 + stamina = 10 + damage = 40 + armour_penetration = 50 + + icon_state = "redtrac" + light_system = MOVABLE_LIGHT + light_color = COLOR_SOFT_RED + light_range = 2 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/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index fb5e2a53ce65..9b11c74e4c1d 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -1,3 +1,9 @@ +// 5.7x39mm (Asp and Sidewinder) + +/obj/projectile/bullet/c57x39mm + name = "5.7x39mm bullet" + damage = 20 + // 4.6x30mm (WT-550 Automatic Rifle & NT-SVG) /obj/projectile/bullet/c46x30mm diff --git a/code/modules/projectiles/projectile/special/plasma.dm b/code/modules/projectiles/projectile/special/plasma.dm index b398731cfd6c..68071bd2c557 100644 --- a/code/modules/projectiles/projectile/special/plasma.dm +++ b/code/modules/projectiles/projectile/special/plasma.dm @@ -1,36 +1,25 @@ /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 - var/mine_range = 3 //mines this many additional tiles of rock tracer_type = /obj/effect/projectile/tracer/plasma_cutter muzzle_type = /obj/effect/projectile/muzzle/plasma_cutter impact_type = /obj/effect/projectile/impact/plasma_cutter -/obj/projectile/plasma/on_hit(atom/target) - . = ..() - if(ismineralturf(target)) - var/turf/closed/mineral/M = target - M.gets_drilled(firer, FALSE) - if(mine_range) - mine_range-- - range++ - if(range > 0) - return BULLET_ACT_FORCE_PIERCE - /obj/projectile/plasma/adv damage = 7 range = 5 - mine_range = 5 + slag_chance = 20 /obj/projectile/plasma/adv/mech damage = 10 range = 9 - mine_range = 3 /obj/projectile/plasma/turret //Between normal and advanced for damage, made a beam so not the turret does not destroy glass diff --git a/code/modules/projectiles/projectile/special/rocket.dm b/code/modules/projectiles/projectile/special/rocket.dm index 0680c62279fd..ede0e69b3ea9 100644 --- a/code/modules/projectiles/projectile/special/rocket.dm +++ b/code/modules/projectiles/projectile/special/rocket.dm @@ -38,10 +38,7 @@ /obj/projectile/bullet/a84mm_he/on_hit(atom/target, blocked=0) ..() - if(!isliving(target)) //if the target isn't alive, so is a wall or something - explosion(target, 0, 1, 2, 4) - else - explosion(target, 0, 0, 2, 4) + explosion(target, 0, 1, 2, 4) return BULLET_ACT_HIT /obj/projectile/bullet/a84mm_br diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 86f4e05226e4..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 @@ -512,7 +512,7 @@ matching_container = 1 else - if(cached_my_atom.type == C.required_container) + if(cached_my_atom.type in typesof(C.required_container)) matching_container = 1 if (isliving(cached_my_atom) && !C.mob_react) //Makes it so certain chemical reactions don't occur in mobs return @@ -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 c9791666b54f..8e6935766346 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -86,10 +86,6 @@ if(machine_stat & BROKEN) . += "waitlight" -/obj/machinery/chem_master/blob_act(obj/structure/blob/B) - if (prob(50)) - qdel(src) - /obj/machinery/chem_master/attackby(obj/item/I, mob/user, params) if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0", I)) return @@ -341,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/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 10519c75c434..ad27b15207a8 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -125,6 +125,7 @@ All effects don't start immediately, but rather get worse over time; the rate is description = "A widely known coffee-flavoured liqueur. Still labeled under an old name from Earth, despite the loss of history." color = "#664300" // rgb: 102, 67, 0 boozepwr = 45 + taste_description = "a bitter combination" glass_icon_state = "kahluaglass" glass_name = "glass of coffee liquor" glass_desc = "Bitter from the coffee and alcohol alike!" @@ -1373,26 +1374,18 @@ All effects don't start immediately, but rather get worse over time; the rate is if(1 to 5) M.Dizzy(10) M.set_drugginess(30) - if(prob(10)) - M.emote(pick("twitch","giggle")) if(5 to 10) M.Jitter(20) M.Dizzy(20) M.set_drugginess(45) - if(prob(20)) - M.emote(pick("twitch","giggle")) if (10 to 200) M.Jitter(40) M.Dizzy(40) M.set_drugginess(60) - if(prob(30)) - M.emote(pick("twitch","giggle")) if(200 to INFINITY) M.Jitter(60) M.Dizzy(60) M.set_drugginess(75) - if(prob(40)) - M.emote(pick("twitch","giggle")) if(prob(30)) M.adjustToxLoss(2, 0) . = 1 diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index bf13904972bf..d37048250e62 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -316,17 +316,21 @@ description = "Coffee and ice, refreshing and cool." color = "#112a3b" // rgb: 16, 40, 56 nutriment_factor = 0 + overdose_threshold = 80 taste_description = "bitter coldness" glass_icon_state = "icedcoffeeglass" glass_name = "iced coffee" glass_desc = "Iced black coffee. It's still going to be pretty bitter on it's own, though!" +/datum/reagent/consumable/icecoffee/overdose_process(mob/living/M) + M.Jitter(5) + ..() + /datum/reagent/consumable/icecoffee/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) M.AdjustSleeping(-40) M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal()) - M.Jitter(5) ..() . = 1 @@ -335,18 +339,22 @@ description = "Coffee with pulsing ice shards" color = "#132043" // rgb: 16, 40, 56 nutriment_factor = 0 + overdose_threshold = 80 quality = DRINK_FANTASTIC taste_description = "bitter coldness and a hint of smoke" glass_icon_state = "hoticecoffee" glass_name = "hot ice coffee" glass_desc = "The wonders of fusion mixed into a cup of coffee, resulting in an extremely hot-cold drink." +/datum/reagent/consumable/hot_ice_coffee/overdose_process(mob/living/M) + M.Jitter(5) + ..() + /datum/reagent/consumable/hot_ice_coffee/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) M.AdjustSleeping(-60) M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal()) - M.Jitter(5) M.adjustToxLoss(1*REM, 0) ..() . = TRUE @@ -617,17 +625,21 @@ description = "A hot beverage for those who can't handle the lactose." color = "#664300" // rgb: 102, 67, 0 quality = DRINK_NICE + overdose_threshold = 80 taste_description = "creamy coffee" glass_icon_state = "soy_latte" glass_name = "soy latte" glass_desc = "A nice and refreshing beverage. It goes well with a book, if you have the time to read." +/datum/reagent/consumable/soy_latte/overdose_process(mob/living/M) + M.Jitter(5) + ..() + /datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) M.SetSleeping(0) M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal()) - M.Jitter(5) if(M.getBruteLoss() && prob(20)) M.heal_bodypart_damage(1,0, 0) ..() @@ -638,17 +650,21 @@ description = "A nice, strong and tasty beverage while you are reading." color = "#664300" // rgb: 102, 67, 0 quality = DRINK_NICE + overdose_threshold = 80 taste_description = "bitter cream" glass_icon_state = "cafe_latte" glass_name = "cafe latte" glass_desc = "A nice, strong and refreshing beverage. It goes well with a book, if you have the time to read." +/datum/reagent/consumable/cafe_latte/overdose_process(mob/living/M) + M.Jitter(5) + ..() + /datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) M.drowsyness = max(0,M.drowsyness-3) M.SetSleeping(0) M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal()) - M.Jitter(5) if(M.getBruteLoss() && prob(20)) M.heal_bodypart_damage(1,0, 0) ..() diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index b776a285b346..a62dfc53b63b 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -21,8 +21,6 @@ if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED)) if(prob(10)) step(M, pick(GLOB.cardinals)) - if(prob(7)) - M.emote(pick("twitch","drool","moan","giggle")) ..() /datum/reagent/drug/space_drugs/overdose_start(mob/living/M) @@ -166,7 +164,7 @@ /datum/reagent/drug/methamphetamine name = "Methamphetamine" - description = "Reduces stun times by about 300%, speeds the user up, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, laugh randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will constantly jitter and drool, before becoming dizzy and losing motor control and eventually suffer heavy toxin damage." + description = "Reduces stun times by about 300%, speeds the user up, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will become dizzy, lose motor control and eventually suffer heavy toxin damage." reagent_state = LIQUID color = "#FAFAFA" overdose_threshold = 20 @@ -194,8 +192,6 @@ M.adjustStaminaLoss(-2, 0) M.Jitter(2) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1,4)) - if(prob(5)) - M.emote(pick("twitch", "shiver")) ..() . = 1 @@ -203,8 +199,6 @@ if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc)) for(var/i in 1 to 4) step(M, pick(GLOB.cardinals)) - if(prob(20)) - M.emote("laugh") if(prob(33)) M.visible_message("[M]'s hands flip out and flail everywhere!") M.drop_all_held_items() @@ -215,15 +209,11 @@ /datum/reagent/drug/methamphetamine/addiction_act_stage1(mob/living/M) M.Jitter(5) - if(prob(20)) - M.emote(pick("twitch","drool","moan")) ..() /datum/reagent/drug/methamphetamine/addiction_act_stage2(mob/living/M) M.Jitter(10) M.Dizzy(10) - if(prob(30)) - M.emote(pick("twitch","drool","moan")) ..() /datum/reagent/drug/methamphetamine/addiction_act_stage3(mob/living/M) @@ -232,8 +222,6 @@ step(M, pick(GLOB.cardinals)) M.Jitter(15) M.Dizzy(15) - if(prob(40)) - M.emote(pick("twitch","drool","moan")) ..() /datum/reagent/drug/methamphetamine/addiction_act_stage4(mob/living/carbon/human/M) @@ -243,8 +231,6 @@ M.Jitter(20) M.Dizzy(20) M.adjustToxLoss(5, 0) - if(prob(50)) - M.emote(pick("twitch","drool","moan")) ..() . = 1 @@ -293,8 +279,6 @@ if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc)) for(var/i in 1 to 8) step(M, pick(GLOB.cardinals)) - if(prob(20)) - M.emote(pick("twitch","drool","moan")) if(prob(33)) M.drop_all_held_items() ..() @@ -306,8 +290,6 @@ step(M, pick(GLOB.cardinals)) M.Jitter(5) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10) - if(prob(20)) - M.emote(pick("twitch","drool","moan")) ..() /datum/reagent/drug/bath_salts/addiction_act_stage2(mob/living/M) @@ -318,8 +300,6 @@ M.Jitter(10) M.Dizzy(10) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10) - if(prob(30)) - M.emote(pick("twitch","drool","moan")) ..() /datum/reagent/drug/bath_salts/addiction_act_stage3(mob/living/M) @@ -330,8 +310,6 @@ M.Jitter(15) M.Dizzy(15) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10) - if(prob(40)) - M.emote(pick("twitch","drool","moan")) ..() /datum/reagent/drug/bath_salts/addiction_act_stage4(mob/living/carbon/human/M) @@ -343,8 +321,6 @@ M.Dizzy(50) M.adjustToxLoss(5, 0) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10) - if(prob(50)) - M.emote(pick("twitch","drool","moan")) ..() . = 1 @@ -398,13 +374,10 @@ var/reaction = rand(1,3) switch(reaction) if(1) - M.emote("laugh") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "happiness_drug", /datum/mood_event/happiness_drug_good_od) if(2) - M.emote("sway") M.Dizzy(25) if(3) - M.emote("frown") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "happiness_drug", /datum/mood_event/happiness_drug_bad_od) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5) ..() @@ -414,32 +387,24 @@ var/datum/component/mood/mood = M.GetComponent(/datum/component/mood) mood.setSanity(min(mood.sanity, SANITY_DISTURBED)) M.Jitter(5) - if(prob(20)) - M.emote(pick("twitch","laugh","frown")) ..() /datum/reagent/drug/happiness/addiction_act_stage2(mob/living/M) var/datum/component/mood/mood = M.GetComponent(/datum/component/mood) mood.setSanity(min(mood.sanity, SANITY_UNSTABLE)) M.Jitter(10) - if(prob(30)) - M.emote(pick("twitch","laugh","frown")) ..() /datum/reagent/drug/happiness/addiction_act_stage3(mob/living/M) var/datum/component/mood/mood = M.GetComponent(/datum/component/mood) mood.setSanity(min(mood.sanity, SANITY_CRAZY)) M.Jitter(15) - if(prob(40)) - M.emote(pick("twitch","laugh","frown")) ..() /datum/reagent/drug/happiness/addiction_act_stage4(mob/living/carbon/human/M) var/datum/component/mood/mood = M.GetComponent(/datum/component/mood) mood.setSanity(SANITY_INSANE) M.Jitter(20) - if(prob(50)) - M.emote(pick("twitch","laugh","frown")) ..() . = 1 @@ -477,8 +442,6 @@ M.Jitter(5) if(prob(5)) M.drop_all_held_items() - if(prob(15)) - M.emote(pick("twitch","drool")) if(prob(20)) M.losebreath++ M.adjustStaminaLoss(4, 0) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 7c2b3f62099f..abdaf511691d 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -113,9 +113,9 @@ /datum/reagent/consumable/cooking_oil/expose_obj(obj/O, reac_volume) if(holder && holder.chem_temp >= fry_temperature) - if(isitem(O) && !istype(O, /obj/item/reagent_containers/food/snacks/deepfryholder)) + if(isitem(O) && !istype(O, /obj/item/food/deepfryholder)) O.loc.visible_message("[O] rapidly fries as it's splashed with hot oil! Somehow.") - var/obj/item/reagent_containers/food/snacks/deepfryholder/F = new(O.drop_location(), O) + var/obj/item/food/deepfryholder/F = new(O.drop_location(), O) F.fry(volume) F.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume) @@ -339,20 +339,14 @@ if(1 to 5) M.Dizzy(5) M.set_drugginess(30) - if(prob(10)) - M.emote(pick("twitch","giggle")) if(5 to 10) M.Jitter(10) M.Dizzy(10) M.set_drugginess(35) - if(prob(20)) - M.emote(pick("twitch","giggle")) if (10 to INFINITY) M.Jitter(20) M.Dizzy(20) M.set_drugginess(40) - if(prob(30)) - M.emote(pick("twitch","giggle")) ..() /datum/reagent/consumable/garlic //NOTE: having garlic in your blood stops vampires from biting you. diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 11a930efda30..6460cd423f78 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -259,7 +259,6 @@ M.adjustFireLoss(-reac_volume) if(show_message) to_chat(M, "You feel your burns healing! It stings like hell!") - M.emote("scream") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) ..() @@ -313,7 +312,6 @@ M.adjustBruteLoss(-reac_volume) if(show_message) to_chat(M, "You feel your bruises healing! It stings like hell!") - M.emote("scream") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) ..() @@ -1539,7 +1537,6 @@ M.losebreath++ if(prob(20)) to_chat(M, "You have a sudden fit!") - M.emote("moan") M.Paralyze(20) // you should be in a bad spot at this point unless epipen has been used if(81) to_chat(M, "You feel too exhausted to continue!") // at this point you will eventually die unless you get charcoal @@ -1751,7 +1748,6 @@ M.adjustFireLoss(reac_volume) if(show_message) to_chat(M, "You feel your skin bubble and burn as your flesh knits itself together!") - M.emote("scream") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) ..() @@ -1786,7 +1782,6 @@ M.adjustBruteLoss(reac_volume) if(show_message) to_chat(M, "You feel your flesh tear as your skin rapidly regenerates!") - M.emote("scream") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) ..() @@ -1961,7 +1956,10 @@ ..() /datum/reagent/medicine/soulus/overdose_process(mob/living/M) - M.ForceContractDisease(new /datum/disease/transformation/legionvirus(), FALSE, TRUE) + var/mob/living/carbon/C = M + if(!istype(C.getorganslot(ORGAN_SLOT_REGENERATIVE_CORE), /obj/item/organ/legion_skull)) + var/obj/item/organ/legion_skull/spare_ribs = new() + spare_ribs.Insert(M) ..() /datum/reagent/medicine/soulus/on_mob_end_metabolize(mob/living/M) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 24db5dd524d8..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 @@ -516,12 +467,6 @@ metabolization_rate = 0.25 * REAGENTS_METABOLISM taste_description = "bitterness" -/datum/reagent/serotrotium/on_mob_life(mob/living/carbon/M) - if(ishuman(M)) - if(prob(7)) - M.emote(pick("twitch","drool","moan","gasp")) - ..() - /datum/reagent/oxygen name = "Oxygen" description = "A colorless, odorless gas. Grows on trees but is still pretty valuable." @@ -597,8 +542,6 @@ /datum/reagent/mercury/on_mob_life(mob/living/carbon/M) if(!HAS_TRAIT(src, TRAIT_IMMOBILIZED) && !isspaceturf(M.loc)) step(M, pick(GLOB.cardinals)) - if(prob(5)) - M.emote(pick("twitch","drool","moan")) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1) ..() @@ -626,11 +569,14 @@ name = "Chlorine" description = "A pale yellow gas that's well known as an oxidizer. While it forms many harmless molecules in its elemental form it is far from harmless." reagent_state = GAS + metabolization_rate = REAGENTS_METABOLISM * 0.5 color = "#FFFB89" //pale yellow? let's make it light gray - taste_description = "chlorine" + taste_description = "caustic" /datum/reagent/chlorine/on_mob_life(mob/living/carbon/M) - M.take_bodypart_damage(1*REM, 0, 0, 0) + M.take_bodypart_damage(0, 1*REM, 0, 0) + if(prob(25)) + M.adjustOrganLoss(ORGAN_SLOT_LUNGS,2*REM) . = 1 ..() @@ -649,6 +595,45 @@ mytray.adjustWater(-round(chems.get_reagent_amount(type) * 0.5)) mytray.adjustWeeds(-rand(1,3)) +/datum/reagent/chlorine/expose_obj(obj/exposed_object, reac_volume) + if((!exposed_object) || (!reac_volume)) + return 0 + var/temp = holder ? holder.chem_temp : T20C + exposed_object.atmos_spawn_air("cl2=[reac_volume/2];TEMP=[temp]") + +/datum/reagent/chlorine/expose_turf(turf/open/exposed_turf, reac_volume) + if(istype(exposed_turf)) + var/temp = holder ? holder.chem_temp : T20C + exposed_turf.atmos_spawn_air("cl2=[reac_volume/2];TEMP=[temp]") + return + +/datum/reagent/hydrogen_chloride + name = "Hydrogen Chloride" + description = "A colorless gas that turns into hydrochloric acid in the presence of water." + reagent_state = GAS + metabolization_rate = REAGENTS_METABOLISM * 0.5 + color = "#f4ffe0" + taste_description = "acid" + +/datum/reagent/hydrogen_chloride/on_mob_life(mob/living/carbon/exposed_mob) + exposed_mob.take_bodypart_damage(0, 2*REM, 0, 0) + exposed_mob.adjustOrganLoss(ORGAN_SLOT_LUNGS,1*REM) + exposed_mob.adjustOrganLoss(ORGAN_SLOT_STOMACH,1*REM) + . = 1 + ..() + +/datum/reagent/hydrogen_chloride/expose_obj(obj/exposed_object, reac_volume) + if((!exposed_object) || (!reac_volume)) + return 0 + var/temp = holder ? holder.chem_temp : T20C + exposed_object.atmos_spawn_air("hcl=[reac_volume/2];TEMP=[temp]") + +/datum/reagent/hydrogen_chloride/expose_turf(turf/open/exposed_turf, reac_volume) + if(istype(exposed_turf)) + var/temp = holder ? holder.chem_temp : T20C + exposed_turf.atmos_spawn_air("hcl=[reac_volume/2];TEMP=[temp]") + return + /datum/reagent/fluorine name = "Fluorine" description = "A comically-reactive chemical element. The universe does not want this stuff to exist in this form in the slightest." @@ -720,8 +705,6 @@ /datum/reagent/lithium/on_mob_life(mob/living/carbon/M) if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !isspaceturf(M.loc)) step(M, pick(GLOB.cardinals)) - if(prob(5)) - M.emote(pick("twitch","drool","moan")) ..() /datum/reagent/lithium/dip_object(obj/item/I, mob/user, obj/item/reagent_containers/H) @@ -994,8 +977,6 @@ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM) if(prob(50)) M.drowsyness = max(M.drowsyness, 3) - if(prob(10)) - M.emote("drool") ..() /datum/reagent/nanomachines @@ -1762,12 +1743,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 @@ -2328,6 +2303,14 @@ else addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, gib)), 5 SECONDS) +/datum/reagent/concrete_mix + name = "Concrete Mix" + description = "Pre-made concrete mix, ideal for lazy engineers." + color = "#c4c0bc" + taste_description = "chalky concrete" + harmful = TRUE + reagent_state = SOLID + /datum/reagent/cement name = "Cement" description = "A sophisticated binding agent used to produce concrete." @@ -2488,3 +2471,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/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index be5e2ce35f9a..ff82cd185fb2 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -35,7 +35,6 @@ M.Jitter(3 * reac_volume) M.Dizzy(2 * reac_volume) M.set_drugginess(3 * reac_volume) - M.emote(pick("twitch","giggle")) return ..() /datum/reagent/consumable/ethanol/trickwine/ice_wine @@ -127,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) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index e7494191d1df..d9b6b782115e 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -620,6 +620,10 @@ required_temp = 400 mix_message = "The mixture boils off a grey vapor..."//The water boils off, leaving the cement +/datum/chemical_reaction/quick_concrete + results = list(/datum/reagent/concrete = 5) + required_reagents = list(/datum/reagent/concrete_mix = 5, /datum/reagent/water = 5) + /datum/chemical_reaction/hexement results = list(/datum/reagent/cement/hexement = 1) required_reagents = list(/datum/reagent/cement = 6, /datum/reagent/phenol = 1) 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/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index d3bf1e211290..7429db4c1dec 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -139,7 +139,7 @@ var/chosen = getbork() var/obj/B = new chosen(T) if(prob(5))//Fry it! - var/obj/item/reagent_containers/food/snacks/deepfryholder/fried + var/obj/item/food/deepfryholder/fried fried = new(T, B) fried.fry() // actually set the name and colour it B = fried diff --git a/code/modules/reagents/reagent_containers/concrete_bags.dm b/code/modules/reagents/reagent_containers/concrete_bags.dm new file mode 100644 index 000000000000..eaceb1c85631 --- /dev/null +++ b/code/modules/reagents/reagent_containers/concrete_bags.dm @@ -0,0 +1,58 @@ +/* In a better world, the logic for transfering reagents out of containers wouldn't be in /glass */ + +/obj/item/reagent_containers/glass/concrete_bag + name = "\improper concrete mix bag" + desc = "A bag of concrete mixture from the F.O.O.D corportation. Just add water!" + w_class = WEIGHT_CLASS_HUGE //25+ kg + throw_range = 1 + + amount_per_transfer_from_this = 25 + possible_transfer_amounts = list(25,50,75,100) + list_reagents = list(/datum/reagent/concrete_mix = 200) + reagent_flags = OPENCONTAINER + volume = 200 + + icon = 'icons/obj/chemical/concrete.dmi' + icon_state = "concrete_bag" + item_state = "concrete_bag" + lefthand_file = 'icons/mob/inhands/misc/concrete_bag_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/concrete_bag_righthand.dmi' + fill_icon_thresholds = null + + var/opened = FALSE + var/opened_icon_state = "concrete_bag_open" + + drop_sound = 'sound/items/handling/cloth_drop.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + +/obj/item/reagent_containers/glass/concrete_bag/examine(mob/user) + . = ..() + if(!opened) + . += span_notice("[src] is unopened") + else + . += span_notice("[src] has been opened") + +/obj/item/reagent_containers/glass/concrete_bag/AltClick(mob/user) + if(!can_interact(user)) + return + if(!opened) + if(do_after(user, 3 SECONDS)) + visible_message(span_notice("[user] tears the top of [src] off!"), span_notice("You tear the top off [src]!")) + playsound(src, 'sound/items/poster_ripped.ogg', 50, 1) + new /obj/effect/decal/cleanable/generic(get_turf(src)) + icon_state = opened_icon_state + spillable = TRUE + opened = TRUE + return + return + return + +/obj/item/reagent_containers/glass/concrete_bag/attack_self(mob/user) + if(!opened) + return + ..() + +/obj/item/reagent_containers/glass/concrete_bag/attack(mob/user) + if(!opened) + return + ..() diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 62661594c06e..999b576ea08c 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -87,7 +87,7 @@ else if(reagents.total_volume && is_drainable()) switch(user.a_intent) - if(INTENT_HELP) + if(INTENT_DISARM) attempt_pour(target, user) if(INTENT_HARM) user.visible_message("[user] splashes the contents of [src] onto [target]!", \ diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm index 80ebcbb4d5b3..de1570a9ef5c 100644 --- a/code/modules/reagents/reagent_containers/jug.dm +++ b/code/modules/reagents/reagent_containers/jug.dm @@ -143,3 +143,7 @@ /obj/item/reagent_containers/glass/chem_jug/thermite name = "chemical jug (thermite)" list_reagents = list(/datum/reagent/thermite = 150) + +/obj/item/reagent_containers/glass/chem_jug/hexacrete + name = "chemical jug (hexacrete)" + list_reagents = list(/datum/reagent/concrete/hexacrete = 150) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index b4f46e6e4c19..1fe7a307353d 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -180,7 +180,7 @@ /obj/item/reagent_containers/spray/pepper name = "pepperspray" desc = "Manufactured by UhangInc, used to blind and down an opponent quickly." - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' icon_state = "pepperspray" item_state = "pepperspray" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 84a8292f7263..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." @@ -68,9 +74,6 @@ explosion(get_turf(src), 0, 1, 5, flame_range = 5) qdel(src) -/obj/structure/reagent_dispensers/fueltank/blob_act(obj/structure/blob/B) - boom() - /obj/structure/reagent_dispensers/fueltank/ex_act() boom() @@ -161,12 +164,6 @@ icon_state = "beer" reagent_id = /datum/reagent/consumable/ethanol/beer -/obj/structure/reagent_dispensers/beerkeg/blob_act(obj/structure/blob/B) - explosion(src.loc,0,3,5,7,10) - if(!QDELETED(src)) - qdel(src) - - /obj/structure/reagent_dispensers/virusfood name = "virus food dispenser" desc = "A dispenser of low-potency virus mutagenic." 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/research/bepis.dm b/code/modules/research/bepis.dm deleted file mode 100644 index bb56a69adf2b..000000000000 --- a/code/modules/research/bepis.dm +++ /dev/null @@ -1,275 +0,0 @@ -//This system is designed to act as an in-between for cargo and science, and the first major money sink in the game outside of just buying things from cargo (As of 10/9/19, anyway). - -//economics defined values, subject to change should anything be too high or low in practice. - -#define MACHINE_OPERATION 100000 -#define MACHINE_OVERLOAD 500000 -#define MAJOR_THRESHOLD 5500 -#define MINOR_THRESHOLD 3500 -#define STANDARD_DEVIATION 1000 - -/obj/machinery/rnd/bepis - name = "\improper B.E.P.I.S. Chamber" - desc = "A high fidelity testing device which unlocks the secrets of the known universe using the two most powerful substances available to man: excessive amounts of electricity and capital." - icon = 'icons/obj/machines/bepis.dmi' - icon_state = "chamber" - base_icon_state = "chamber" - density = TRUE - layer = ABOVE_MOB_LAYER - use_power = IDLE_POWER_USE - active_power_usage = ACTIVE_DRAW_HIGH - circuit = /obj/item/circuitboard/machine/bepis - - var/banking_amount = 100 - var/banked_cash = 0 //stored player cash - var/datum/bank_account/account //payer's account. - var/account_name //name of the payer's account. - var/error_cause = null - //Vars related to probability and chance of success for testing - var/major_threshold = MAJOR_THRESHOLD - var/minor_threshold = MINOR_THRESHOLD - var/std = STANDARD_DEVIATION //That's Standard Deviation, what did you think it was? - //Stock part variables - var/power_saver = 1 - var/inaccuracy_percentage = 1.5 - var/positive_cash_offset = 0 - var/negative_cash_offset = 0 - var/minor_rewards = list( - //To add a new minor reward, add it here. - /obj/item/stack/circuit_stack/full, - /obj/item/pen/survival, - /obj/item/toy/sprayoncan, - ) - var/static/list/item_list = list() - -/obj/machinery/rnd/bepis/attackby(obj/item/O, mob/user, params) - if(default_deconstruction_screwdriver(user, "chamber_open", "chamber", O)) - update_icon_state() - return - if(default_deconstruction_crowbar(O)) - return - if(!is_operational) - to_chat(user, "[src] can't accept money when it's not functioning.") - return - if(istype(O, /obj/item/holochip) || istype(O, /obj/item/spacecash/bundle)) - var/deposit_value = O.get_item_credit_value() - banked_cash += deposit_value - qdel(O) - say("Deposited [deposit_value] credits into storage.") - update_icon_state() - return - if(istype(O, /obj/item/card/bank)) - var/obj/item/card/bank/bank_card = O - if(bank_card.registered_account) - account = bank_card.registered_account - account_name = bank_card.registered_name - say("New account detected. Console Updated.") - else - say("No account detected on card. Aborting.") - return - return ..() - -/obj/machinery/rnd/bepis/RefreshParts() - var/C = 0 - var/M = 0 - var/L = 0 - var/S = 0 - for(var/obj/item/stock_parts/capacitor/Cap in component_parts) - C += ((Cap.rating - 1) * 0.1) - power_saver = 1 - C - for(var/obj/item/stock_parts/manipulator/Manip in component_parts) - M += ((Manip.rating - 1) * 250) - positive_cash_offset = M - for(var/obj/item/stock_parts/micro_laser/Laser in component_parts) - L += ((Laser.rating - 1) * 250) - negative_cash_offset = L - for(var/obj/item/stock_parts/scanning_module/Scan in component_parts) - S += ((Scan.rating - 1) * 0.25) - inaccuracy_percentage = (1.5 - S) - -/obj/machinery/rnd/bepis/proc/depositcash() - var/deposit_value = 0 - deposit_value = banking_amount - if(deposit_value == 0) - update_icon_state() - say("Attempting to deposit 0 credits. Aborting.") - return - deposit_value = clamp(round(deposit_value, 1), 1, 15000) - if(!account) - say("Cannot find user account. Please swipe a valid ID.") - return - if(!account.has_money(deposit_value)) - say("You do not possess enough credits.") - return - account.adjust_money(-deposit_value, "bepis") //The money vanishes, not paid to any accounts. - SSblackbox.record_feedback("amount", "BEPIS_credits_spent", deposit_value) - log_econ("[deposit_value] credits were inserted into [src] by [account.account_holder]") - banked_cash += deposit_value - use_power(1000 * power_saver) - say("Cash deposit successful. There is [banked_cash] in the chamber.") - update_icon_state() - return - -/obj/machinery/rnd/bepis/proc/withdrawcash() - var/withdraw_value = 0 - withdraw_value = banking_amount - if(withdraw_value > banked_cash) - say("Cannot withdraw more than stored funds. Aborting.") - else - banked_cash -= withdraw_value - new /obj/item/spacecash/bundle(src.loc, withdraw_value) - say("Withdrawing [withdraw_value] credits from the chamber.") - update_icon_state() - return - -/obj/machinery/rnd/bepis/proc/calcsuccess() - var/turf/dropturf = null - var/gauss_major = 0 - var/gauss_minor = 0 - var/gauss_real = 0 - var/list/turfs = block(locate(x-1,y-1,z),locate(x+1,y+1,z)) //NO MORE DISCS IN WINDOWS - while(length(turfs)) - var/turf/T = pick_n_take(turfs) - if(T.is_blocked_turf(TRUE)) - continue - else - dropturf = T - break - if (!dropturf) - dropturf = drop_location() - gauss_major = (gaussian(major_threshold, std) - negative_cash_offset) //This is the randomized profit value that this experiment has to surpass to unlock a tech. - gauss_minor = (gaussian(minor_threshold, std) - negative_cash_offset) //And this is the threshold to instead get a minor prize. - gauss_real = (gaussian(banked_cash, std*inaccuracy_percentage) + positive_cash_offset) //this is the randomized profit value that your experiment expects to give. - say("Real: [gauss_real]. Minor: [gauss_minor]. Major: [gauss_major].") - flick("chamber_flash",src) - update_icon_state() - banked_cash = 0 - if((gauss_real >= gauss_major) && (SSresearch.techweb_nodes_experimental.len > 0)) //Major Success. - say("Experiment concluded with major success. New technology node discovered on technology disc.") - new /obj/item/disk/tech_disk/major(dropturf,1) - if(SSresearch.techweb_nodes_experimental.len == 0) - say("Expended all available experimental technology nodes. Resorting to minor rewards.") - return - if(gauss_real >= gauss_minor) //Minor Success. - var/reward = pick(minor_rewards) - new reward(dropturf) - say("Experiment concluded with partial success. Dispensing compiled research efforts.") - return - if(gauss_real <= -1) //Critical Failure - say("ERROR: CRITICAL MACHIME MALFUNCTI- ON. CURRENCY IS NOT CRASH. CANNOT COMPUTE COMMAND: 'make bucks'") //not a typo, for once. - new /mob/living/simple_animal/deer(dropturf, 1) - use_power(MACHINE_OVERLOAD * power_saver) //To prevent gambling at low cost and also prevent spamming for infinite deer. - return - //Minor Failure - error_cause = pick("attempted to sell grey products to American dominated market.","attempted to sell gray products to British dominated market.","placed wild assumption that PDAs would go out of style.","simulated product #76 damaged brand reputation mortally.","simulated business model resembled 'pyramid scheme' by 98.7%.","product accidently granted override access to all vessel doors.") - say("Experiment concluded with zero product viability. Cause of error: [error_cause]") - return - -/obj/machinery/rnd/bepis/update_icon_state() - if(panel_open == TRUE) - icon_state = "[base_icon_state]_open" - return ..() - if((use_power == ACTIVE_POWER_USE) && (banked_cash > 0) && (is_operational)) - icon_state = "[base_icon_state]_active_loaded" - return ..() - if (((use_power == IDLE_POWER_USE) && (banked_cash > 0)) || (banked_cash > 0) && (!is_operational)) - icon_state = "[base_icon_state]_loaded" - return ..() - if(use_power == ACTIVE_POWER_USE && is_operational) - icon_state = "[base_icon_state]_active" - return ..() - if(((use_power == IDLE_POWER_USE) && (banked_cash == 0)) || (!is_operational)) - icon_state = base_icon_state - return ..() - return ..() - -/obj/machinery/rnd/bepis/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "Bepis", name) - ui.open() - RefreshParts() - -/obj/machinery/rnd/bepis/ui_data(mob/user) - var/list/data = list() - var/powered = FALSE - var/zvalue = (banked_cash - (major_threshold - positive_cash_offset - negative_cash_offset))/(std) - var/std_success = 0 - var/prob_success = 0 - //Admittedly this is messy, but not nearly as messy as the alternative, which is jury-rigging an entire Z-table into the code, or making an adaptive z-table. - var/z = abs(zvalue) - if(z > 0 && z <= 0.5) - std_success = 19.1 - else if(z > 0.5 && z <= 1.0) - std_success = 34.1 - else if(z > 1.0 && z <= 1.5) - std_success = 43.3 - else if(z > 1.5 && z <= 2.0) - std_success = 47.7 - else if(z > 2.0 && z <= 2.5) - std_success = 49.4 - else - std_success = 50 - if(zvalue > 0) - prob_success = 50 + std_success - else if(zvalue == 0) - prob_success = 50 - else - prob_success = 50 - std_success - - if(use_power == ACTIVE_POWER_USE) - powered = TRUE - data["account_owner"] = account_name - data["amount"] = banking_amount - data["stored_cash"] = banked_cash - data["mean_value"] = (major_threshold - positive_cash_offset - negative_cash_offset) - data["error_name"] = error_cause - data["power_saver"] = power_saver - data["accuracy_percentage"] = inaccuracy_percentage * 100 - data["positive_cash_offset"] = positive_cash_offset - data["negative_cash_offset"] = negative_cash_offset - data["manual_power"] = powered ? FALSE : TRUE - data["silicon_check"] = issilicon(user) - data["success_estimate"] = prob_success - return data - -/obj/machinery/rnd/bepis/ui_act(action,params) - . = ..() - if(.) - return - switch(action) - if("deposit_cash") - if(use_power == IDLE_POWER_USE) - return - depositcash() - if("withdraw_cash") - if(use_power == IDLE_POWER_USE) - return - withdrawcash() - if("begin_experiment") - if(use_power == IDLE_POWER_USE) - return - if(banked_cash == 0) - say("Please deposit funds to begin testing.") - return - calcsuccess() - use_power(MACHINE_OPERATION * power_saver) //This thing should eat your APC battery if you're not careful. - set_idle_power() //Machine shuts off after use to prevent spam and look better visually. - update_icon_state() - if("amount") - var/input = text2num(params["amount"]) - if(input) - banking_amount = input - if("toggle_power") - if(use_power == ACTIVE_POWER_USE) - set_idle_power() - else - set_active_power() - update_icon_state() - if("account_reset") - if(use_power == IDLE_POWER_USE) - return - account_name = "" - account = null - say("Account settings reset.") - . = TRUE diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 5e45c756c881..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 mecha modifications" - desc = "A design disk containing specifications for CLIP-custom mecha conversions." + 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 517c8691c92d..0b679dfcc4bf 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -286,7 +286,7 @@ build_type = AUTOLATHE | PROTOLATHE materials = list(/datum/material/iron = 750) build_path = /obj/item/tank/internals/emergency_oxygen/engi/empty - category = list("hacked","Misc","Equipment") + category = list("initial", "Misc","Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO /datum/design/plasmaman_tank_belt @@ -295,7 +295,7 @@ build_type = AUTOLATHE | PROTOLATHE materials = list(/datum/material/iron = 800) build_path = /obj/item/tank/internals/plasmaman/belt/empty - category = list("hacked","Misc","Equipment") + category = list("initial", "Misc","Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO /datum/design/generic_gas_tank @@ -356,7 +356,7 @@ id = "kitchen_knife" build_type = AUTOLATHE materials = list(/datum/material/iron = 12000) - build_path = /obj/item/kitchen/knife + build_path = /obj/item/melee/knife/kitchen category = list("initial","Dinnerware") /datum/design/plastic_knife @@ -364,7 +364,7 @@ id = "plastic_knife" build_type = AUTOLATHE | PROTOLATHE materials = list(/datum/material/plastic = 100) - build_path = /obj/item/kitchen/knife/plastic + build_path = /obj/item/melee/knife/plastic category = list("initial", "Tool Designs","Dinnerware") /datum/design/fork @@ -516,14 +516,6 @@ category = list("initial","Misc", "Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SERVICE -/datum/design/foilhat - name = "Tinfoil Hat" - id = "tinfoil_hat" - build_type = AUTOLATHE - materials = list(/datum/material/iron = 5500) - build_path = /obj/item/clothing/head/foilhat - category = list("hacked", "Misc") - /datum/design/scalpel name = "Scalpel" id = "scalpel" @@ -772,31 +764,13 @@ build_path = /obj/item/ammo_box/foambox category = list("initial", "Misc") -//hacked autolathe recipes -//WS - emagged recipies -/datum/design/flamethrower - name = "Flamethrower" - id = "flamethrower" - build_type = AUTOLATHE - materials = list(/datum/material/iron = 500) - build_path = /obj/item/flamethrower/full - category = list("hacked", "Security") - -/datum/design/electropack - name = "Electropack" - id = "electropack" - build_type = AUTOLATHE - materials = list(/datum/material/iron = 10000, /datum/material/glass = 2500) - build_path = /obj/item/electropack - category = list("hacked", "Tools") - /datum/design/handcuffs name = "Handcuffs" id = "handcuffs" build_type = AUTOLATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/restraints/handcuffs - category = list("hacked", "Security") + category = list("initial", "Security") /datum/design/receiver name = "Modular Receiver" @@ -804,7 +778,7 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 15000) build_path = /obj/item/weaponcrafting/receiver - category = list("hacked", "Security") + category = list("initial", "Security") /datum/design/c38_surplus name = "Ammo Box (.38 surplus)" @@ -822,13 +796,21 @@ 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" build_type = AUTOLATHE materials = list(/datum/material/iron = 1000) //Discount for making individually - no box = less metal! build_path = /obj/item/ammo_casing/caseless/foam_dart/riot - category = list("hacked", "Security") + category = list("initial", "Security") /datum/design/riot_darts name = "Foam Riot Dart Box" @@ -836,15 +818,7 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 50000) //Comes with 40 darts build_path = /obj/item/ammo_box/foambox/riot - category = list("hacked", "Security") - -/datum/design/a357 - name = ".357 Casing" - id = "a357" - build_type = AUTOLATHE - materials = list(/datum/material/iron = 4000) - build_path = /obj/item/ammo_casing/a357 - category = list("emagged", "Security") + category = list("initial", "Security") /datum/design/c10mm_surplus name = "Ammo Box (10mm surplus)" @@ -899,8 +873,8 @@ id = "cleaver" build_type = AUTOLATHE materials = list(/datum/material/iron = 18000) - build_path = /obj/item/kitchen/knife/butcher - category = list("hacked", "Dinnerware") + build_path = /obj/item/melee/knife/butcher + category = list("initial", "Dinnerware") /datum/design/spraycan name = "Spraycan" @@ -985,14 +959,6 @@ build_path = /obj/item/modular_computer/tablet category = list("initial","Misc") -/datum/design/slime_scanner - name = "Slime Scanner" - id = "slime_scanner" - build_type = AUTOLATHE - materials = list(/datum/material/iron = 300, /datum/material/glass = 200) - build_path = /obj/item/slime_scanner - category = list("initial", "Misc") - /datum/design/pet_carrier name = "Pet Carrier" id = "pet_carrier" @@ -1084,7 +1050,7 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 50) build_path = /obj/item/toy/gun - category = list("hacked", "Misc") + category = list("initial", "Misc") /datum/design/capbox name = "Box of Cap Gun Shots" @@ -1092,7 +1058,7 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 20, /datum/material/glass = 5) build_path = /obj/item/toy/ammo/gun - category = list("hacked", "Misc") + category = list("initial", "Misc") /datum/design/toy_balloon name = "Plastic Balloon" @@ -1100,7 +1066,7 @@ build_type = AUTOLATHE materials = list(/datum/material/plastic = 1200) build_path = /obj/item/toy/balloon - category = list("hacked", "Misc") + category = list("initial", "Misc") /datum/design/toy_meteor name = "Plastic Toy Meteor" @@ -1108,15 +1074,7 @@ build_type = AUTOLATHE materials = list(/datum/material/plastic = 1000) build_path = /obj/item/toy/minimeteor - category = list("hacked", "Misc") - -/datum/design/toy_armblade - name = "Plastic Armblade" - id = "toy_armblade" - build_type = AUTOLATHE - materials = list(/datum/material/plastic = 2000) - build_path = /obj/item/toy/foamblade - category = list("hacked", "Misc") + category = list("initial", "Misc") /datum/design/plastic_tree name = "Plastic Potted Plant" @@ -1181,7 +1139,7 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 20000) build_path = /obj/item/ammo_box/magazine/zip_ammo_9mm - category = list("hacked", "Security") + category = list("initial", "Security") /datum/design/pipedispenser name = "Pipe Dispenser (Machine Board)" @@ -1191,6 +1149,46 @@ build_path = /obj/item/circuitboard/machine/pipedispenser category = list("initial", "Machinery") +/datum/design/illestren_a850rclip + name = "8x50 Stripper Clip" + id = "IllestrenStripClip" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 10000) + build_path = /obj/item/ammo_box/magazine/illestren_a850r/empty + category = list("initial", "Security", "Ammo") + +/datum/design/a300clip + name = ".300 Scout Stripper Clip" + id = "ScoutStripClip" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 10000) + build_path = /obj/item/ammo_box/a300/empty + category = list("initial", "Security", "Ammo") + +/datum/design/a762_40clip + name = "7.62 Stripper Clip" + id = "PolymerStripClip" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 10000) + build_path = /obj/item/ammo_box/a762_stripper/empty + category = list("initial", "Security", "Ammo") + +/datum/design/vickland_a308clip + name = ".308 Stripper Clip" + id = "VicklandStripClip" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 10000) + build_path = /obj/item/ammo_box/vickland_a308/empty + category = list("initial", "Security", "Ammo") + +/datum/design/a858clip + name = "8x58 Stripper Clip" + id = "SSGStripClip" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 10000) + build_path = /obj/item/ammo_box/a858/empty + category = list("initial", "Security", "Ammo") + /datum/design/control name = "Blast Door Controller" id = "blast" @@ -1247,3 +1245,12 @@ materials = list(/datum/material/plastic = 30) build_path = /obj/item/folder/biscuit/unsealed/confidental category = list("initial", "Tools", "Misc") + +/datum/design/marker_beacon + name = "Marker Beacon" + id = "marker_beacon" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 50, /datum/material/glass = 20) + build_path = /obj/item/stack/marker_beacon + category = list("initial","Misc") + diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 9b167598d026..2ba8ef1e2d7a 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -183,8 +183,8 @@ departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO /datum/design/board/mechapower - name = "Computer Design (Mech Bay Power Control Console)" - desc = "Allows for the construction of circuit boards used to build a mech bay power control console." + name = "Computer Design (Exosuit) Bay Power Control Console)" + desc = "Allows for the construction of circuit boards used to build an exosuit bay power control console." id = "mechapower" build_path = /obj/item/circuitboard/computer/mech_bay_power_console category = list("Computer Boards") diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 5f79bbbf12e5..bbc83dd1e705 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -238,14 +238,6 @@ category = list("Research Machinery") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE -/datum/design/board/bepis - name = "Machine Design (B.E.P.I.S. Board)" - desc = "The circuit board for a B.E.P.I.S." - id = "bepis" - build_path = /obj/item/circuitboard/machine/bepis - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO - /datum/design/board/rdserver name = "Machine Design (R&D Server Board)" desc = "The circuit board for an R&D Server." @@ -604,13 +596,6 @@ category = list ("Medical Machinery") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL -/datum/design/board/sheetifier - name = "Sheetifier" - desc = "This machine turns weird things into sheets." - id = "sheetifier" - build_path = /obj/item/circuitboard/machine/sheetifier - category = list ("Misc. Machinery") - /datum/design/board/shieldwallgen name = "Machine Design (Shield Wall Generator)" desc = "A shield generator commonly used in xenobiology research." diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index 61fb07e77502..965a164e35d6 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -133,8 +133,8 @@ //////////////////////////////////////// /datum/design/mech_scattershot - name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" - desc = "Allows for the construction of LBX AC 10." + name = "Exosuit Weapon (LBX-10 \"Scattershot\")" + desc = "Allows for the construction of LBX-10." id = "mech_scattershot" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot @@ -143,8 +143,8 @@ category = list("Exosuit Equipment") /datum/design/mech_scattershot_ammo - name = "LBX AC 10 Scattershot Ammunition" - desc = "Ammunition for the LBX AC 10 exosuit weapon." + name = "LBX-10 Scattershot Ammunition" + desc = "Ammunition for the LBX-10 exosuit weapon." id = "mech_scattershot_ammo" build_type = PROTOLATHE | MECHFAB build_path = /obj/item/mecha_ammo/scattershot @@ -153,7 +153,7 @@ category = list("Exosuit Ammunition", "Ammo") /datum/design/mech_carbine - name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" + name = "Exosuit Weapon (FNX-99 \"Phoenix\" Carbine)" desc = "Allows for the construction of FNX-99 \"Hades\" Carbine." id = "mech_carbine" build_type = MECHFAB @@ -164,7 +164,7 @@ /datum/design/mech_carbine_ammo name = "FNX-99 Carbine Ammunition" - desc = "Ammunition for the FNX-99 \"Hades\" Carbine." + desc = "Ammunition for the FNX-99 \"Phoenix\" Carbine." id = "mech_carbine_ammo" build_type = PROTOLATHE | MECHFAB build_path = /obj/item/mecha_ammo/incendiary @@ -403,7 +403,7 @@ category = list("Exosuit Equipment") /datum/design/mech_lmg - name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" + name = "Exosuit Weapon (\"UMG-2\" LMG)" desc = "A weapon for combat exosuits. Shoots a rapid, three shot burst." id = "mech_lmg" build_type = MECHFAB @@ -413,8 +413,8 @@ category = list("Exosuit Equipment") /datum/design/mech_lmg_ammo - name = "Ultra AC 2 Ammunition" - desc = "Ammunition for the Ultra AC 2 LMG" + name = "UMG-2 Ammunition" + desc = "Ammunition for the UMG-2 LMG" id = "mech_lmg_ammo" build_type = PROTOLATHE | MECHFAB build_path = /obj/item/mecha_ammo/lmg diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 816cd4f9fdbf..98a088756d81 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -229,7 +229,7 @@ id = "roastingstick" build_type = PROTOLATHE materials = list(/datum/material/iron=1000, /datum/material/glass = 500, /datum/material/bluespace = 250) - build_path = /obj/item/melee/roastingstick + build_path = /obj/item/roastingstick category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index c444336adde5..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 @@ -258,13 +258,13 @@ category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/datum/design/stechkinammo - name = "Stechkin magazine (10mm)" - desc = "A single stack Stechkin magazine, designed to chamber 10mm and fit into the Syndicate's Stechkin sidearms." - id = "stechkinammo" +/datum/design/ringneckammo + name = "Ringneck magazine (10mm)" + desc = "A single stack Ringneck magazine, designed to chamber 10mm and fit into Scarborough Arm's Ringneck series of sidearms." + id = "ringneckammo" build_type = PROTOLATHE materials = list(/datum/material/iron = 15000) - build_path = /obj/item/ammo_box/magazine/m10mm + build_path = /obj/item/ammo_box/magazine/m10mm_ringneck category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/code/modules/research/research_disk.dm b/code/modules/research/research_disk.dm index 5f4fce5fd457..0354fddd50de 100644 --- a/code/modules/research/research_disk.dm +++ b/code/modules/research/research_disk.dm @@ -23,17 +23,6 @@ . = ..() stored_research = new /datum/techweb/admin -/obj/item/disk/tech_disk/major - name = "Reformatted technology disk" - desc = "A disk containing a new, completed tech from the B.E.P.I.S. Upload the disk to an R&D Console to redeem the tech." - color = "#FFBAFF" - illustration = "bepis" - custom_materials = list(/datum/material/iron=300, /datum/material/glass=100) - -/obj/item/disk/tech_disk/major/Initialize() - . = ..() - stored_research = new /datum/techweb/bepis - /obj/item/research_notes name = "research notes" desc = "Valuable scientific data. Use it in a research console to scan it." diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index 339edcfaa9a3..4aae75fbeab2 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -53,19 +53,6 @@ organization = ship_name return ..() -/datum/techweb/bepis //Should contain only 1 BEPIS tech selected at random. - id = "EXPERIMENTAL" - organization = "Nanotrasen R&D" - -/datum/techweb/bepis/New() - . = ..() - var/bepis_id = pick(SSresearch.techweb_nodes_experimental) //To add a new tech to the BEPIS, add the ID to this pick list. - var/datum/techweb_node/BN = (SSresearch.techweb_node_by_id(bepis_id)) - hidden_nodes -= BN.id //Has to be removed from hidden nodes - research_node(BN, TRUE, FALSE) - update_node_status(BN) - SSresearch.techweb_nodes_experimental -= bepis_id - /datum/techweb/Destroy() researched_nodes = null researched_designs = null diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index 73d732e28a1f..ff2b93791a77 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -7,7 +7,6 @@ var/display_name = "Errored Node" var/description = "Why are you seeing this?" var/hidden = FALSE //Whether it starts off hidden. - var/experimental = FALSE //If the tech can be randomly granted by the BEPIS as a reward. Meant to be fully given in tech disks, not researched. var/starting_node = FALSE //Whether it's available without any research. var/list/prereq_ids = list() var/list/design_ids = list() diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index dbca44b757b9..12dee3405a8c 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -13,13 +13,13 @@ // Cargo Stuff "c-reader", "desttagger", "salestagger", "handlabel", "packagewrap", // Research Stuff - "destructive_analyzer", "experimentor", "rdconsole", "bepis", "rdserver", "design_disk", "tech_disk", "mechfab", + "destructive_analyzer", "experimentor", "rdconsole", "rdserver", "design_disk", "tech_disk", "mechfab", // Miscellaneous Stufff "paystand", "space_heater", "bucket", "plastic_knife", "plastic_fork", "plastic_spoon", "fax", // Security Stuff "sec_rshot", "sec_beanbag_slug", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "buckshot_shell", "beanbag_slug", "rubber_shot", //Handgun Ammo (Security) - "commanderammo", "stechkinammo", "candorammo", "m9cammo", "c9mm", "c10mm", "c45", "c556mmHITP", "rubbershot9mm", "rubbershot10mm", "rubbershot45", "rubbershot556mmHITP", + "commanderammo", "ringneckammo", "candorammo", "m9cammo", "c9mm", "c10mm", "c45", "c556mmHITP", "rubbershot9mm", "rubbershot10mm", "rubbershot45", "rubbershot556mmHITP", // Construction Materials "rglass", "plasteel", "plastitanium", "plasmaglass", "plasmareinforcedglass", "titaniumglass", "plastitaniumglass", // You People Are Animals @@ -53,7 +53,7 @@ id = "mech_tools" starting_node = TRUE display_name = "Basic Exosuit Equipment" - description = "Various tools fit for basic mech units" + description = "Various tools fit for basic exosuit units" design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") //WS Edit - Reverted Smartwire /datum/techweb_node/basic_tools @@ -193,7 +193,7 @@ display_name = "Advanced Engineering" description = "Pushing the boundaries of physics, one chainsaw-fist at a time." prereq_ids = list("engineering", "emp_basic") - design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask", "rcd_loaded", "rpd_loaded", "sheetifier") + design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask", "rcd_loaded", "rpd_loaded") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -295,7 +295,7 @@ display_name = "Basic Plasma Research" description = "Research into the mysterious and dangerous substance, plasma." prereq_ids = list("engineering") - design_ids = list("mech_generator") + design_ids = list("mech_generator", "plasmacutter") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -304,7 +304,7 @@ display_name = "Advanced Plasma Research" description = "Research on how to fully exploit the power of plasma." prereq_ids = list("basic_plasma") - design_ids = list("mech_plasma_cutter") + design_ids = list("mech_plasma_cutter","plasmacutter_adv") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -550,7 +550,7 @@ display_name = "Mining Technology" description = "Better than Efficiency V." prereq_ids = list("engineering", "basic_plasma") - design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress", "plasmacutter", "mecha_kineticgun", "weatherradio")//e a r l y g a m e) + design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress", "mecha_kineticgun", "weatherradio")//e a r l y g a m e) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -559,7 +559,7 @@ display_name = "Advanced Mining Technology" description = "Efficiency Level 127" //dumb mc references prereq_ids = list("basic_mining", "adv_engi", "adv_power", "adv_plasma") - design_ids = list("drill_diamond", "jackhammer", "hypermod", "plasmacutter_adv") + design_ids = list("drill_diamond", "jackhammer", "hypermod") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 // WS Edit Start - Yeet The BSM @@ -814,7 +814,7 @@ /datum/techweb_node/adv_mecha_tools id = "adv_mecha_tools" display_name = "Advanced Exosuit Equipment" - description = "Tools for high level mech suits" + description = "Tools for high level exosuits" prereq_ids = list("adv_mecha") design_ids = list("mech_rcd", "mech_thrusters") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -823,7 +823,7 @@ /datum/techweb_node/med_mech_tools id = "med_mech_tools" display_name = "Medical Exosuit Equipment" - description = "Tools for high level mech suits" + description = "Tools for high level exosuits" prereq_ids = list("adv_biotech") design_ids = list("mech_sleeper", "mech_syringe_gun", "mech_medi_beam") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -832,7 +832,7 @@ /datum/techweb_node/mech_modules id = "adv_mecha_modules" display_name = "Simple Exosuit Modules" - description = "An advanced piece of mech weaponry" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("adv_mecha", "bluespace_power") design_ids = list("mech_energy_relay", "mech_ccw_armor", "mech_proj_armor", "mech_generator_nuclear") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -840,8 +840,8 @@ /datum/techweb_node/mech_scattershot id = "mecha_tools" - display_name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" - description = "An advanced piece of mech weaponry" + display_name = "Exosuit Weapon (LBX-10 \"Scattershot\")" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("ballistic_weapons") design_ids = list("mech_scattershot", "mech_scattershot_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -849,8 +849,8 @@ /datum/techweb_node/mech_carbine id = "mech_carbine" - display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" - description = "An advanced piece of mech weaponry" + display_name = "Exosuit Weapon (FNX-99 \"Phoenix\" Carbine)" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("ballistic_weapons") design_ids = list("mech_carbine", "mech_carbine_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -859,7 +859,7 @@ /datum/techweb_node/mech_ion id = "mmech_ion" display_name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" - description = "An advanced piece of mech weaponry" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("electronic_weapons", "emp_adv") design_ids = list("mech_ion") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -868,7 +868,7 @@ /datum/techweb_node/mech_tesla id = "mech_tesla" display_name = "Exosuit Weapon (MKI Tesla Cannon)" - description = "An advanced piece of mech weaponry" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("electronic_weapons", "adv_power") design_ids = list("mech_tesla") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -877,7 +877,7 @@ /datum/techweb_node/mech_laser id = "mech_laser" display_name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)" - description = "A basic piece of mech weaponry" + description = "A basic piece of exosuit weaponry" prereq_ids = list("beam_weapons") design_ids = list("mech_laser") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -886,7 +886,7 @@ /datum/techweb_node/mech_laser_heavy id = "mech_laser_heavy" display_name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)" - description = "An advanced piece of mech weaponry" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("adv_beam_weapons") design_ids = list("mech_laser_heavy") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -895,7 +895,7 @@ /datum/techweb_node/mech_disabler id = "mech_disabler" display_name = "Exosuit Weapon (CH-DS \"Peacemaker\" Mounted Disabler)" - description = "A basic piece of mech weaponry" + description = "A basic piece of exosuit weaponry" prereq_ids = list("beam_weapons") design_ids = list("mech_disabler") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -904,7 +904,7 @@ /datum/techweb_node/mech_grenade_launcher id = "mech_grenade_launcher" display_name = "Exosuit Weapon (SGL-6 Grenade Launcher)" - description = "An advanced piece of mech weaponry" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("explosive_weapons") design_ids = list("mech_grenade_launcher", "mech_grenade_launcher_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -913,7 +913,7 @@ /datum/techweb_node/mech_missile_rack id = "mech_missile_rack" display_name = "Exosuit Weapon (BRM-6 Missile Rack)" - description = "An advanced piece of mech weaponry" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("explosive_weapons") design_ids = list("mech_missile_rack", "mech_missile_rack_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -922,7 +922,7 @@ /datum/techweb_node/clusterbang_launcher id = "clusterbang_launcher" display_name = "Exosuit Module (SOB-3 Clusterbang Launcher)" - description = "An advanced piece of mech weaponry" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("explosive_weapons") design_ids = list("clusterbang_launcher", "clusterbang_launcher_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -931,7 +931,7 @@ /datum/techweb_node/mech_teleporter id = "mech_teleporter" display_name = "Exosuit Module (Teleporter Module)" - description = "An advanced piece of mech Equipment" + description = "An advanced piece of exosuit equipment" prereq_ids = list("micro_bluespace") design_ids = list("mech_teleporter") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -940,7 +940,7 @@ /datum/techweb_node/mech_wormhole_gen id = "mech_wormhole_gen" display_name = "Exosuit Module (Localized Wormhole Generator)" - description = "An advanced piece of mech weaponry" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("bluespace_travel") design_ids = list("mech_wormhole_gen") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -948,8 +948,8 @@ /datum/techweb_node/mech_lmg id = "mech_lmg" - display_name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" - description = "An advanced piece of mech weaponry" + display_name = "Exosuit Weapon (\"UMG-2\" LMG)" + description = "An advanced piece of exosuit weaponry" prereq_ids = list("ballistic_weapons") design_ids = list("mech_lmg", "mech_lmg_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -966,7 +966,7 @@ /////////////////////////Nanites///////////////////////// -//Disabled pending nanite rework --Apogee-dev +//Disabled FOREVER /* /datum/techweb_node/nanite_base id = "nanite_base" @@ -1159,110 +1159,6 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) export_price = 5000 -////////////////////////B.E.P.I.S. Locked Techs//////////////////////// -/datum/techweb_node/light_apps - id = "light_apps" - display_name = "Illumination Applications" - description = "Applications of lighting and vision technology not originally thought to be commercially viable." - prereq_ids = list("base") - design_ids = list("bright_helmet", "rld_mini") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/rolling_table - id = "rolling_table" - display_name = "Advanced Wheel Applications" - description = "Adding wheels to things can lead to extremely beneficial outcomes." - prereq_ids = list("base") - design_ids = list("rolling_table") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/Mauna_Mug - id = "mauna_mug" - display_name = "Mauna Mug" - description = "A bored scientist was thinking to himself for very long...and then realized his coffee got cold! He made this invention to solve this extreme problem." - prereq_ids = list("base") - design_ids = list("mauna_mug") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/spec_eng - id = "spec_eng" - display_name = "Specialized Engineering" - description = "Conventional wisdom has deemed these engineering products 'technically' safe, but far too dangerous to traditionally condone." - prereq_ids = list("base") - design_ids = list("lava_rods", "eng_gloves") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/aus_security - id = "aus_security" - display_name = "Australicus Security Protocols" - description = "It is said that security in the Australicus sector is tight, so we took some pointers from their equipment. Thankfully, our sector lacks any signs of these, 'dropbears'." - prereq_ids = list("base") - design_ids = list("stun_boomerang") - - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/interrogation - id = "interrogation" - display_name = "Enhanced Interrogation Technology" - description = "By cross-referencing several declassified documents from past dictatorial regimes, we were able to develop an incredibly effective interrogation device. \ - Ethical concerns about loss of free will do not apply to criminals, according to galactic law." - prereq_ids = list("base") - design_ids = list("hypnochair") - - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) - export_price = 3500 - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/sticky_advanced - id = "sticky_advanced" - display_name = "Advanced Tapenology" - description = "The absolute pinnacle of engineering!" - design_ids = list("electric_tape", "super_tape") - - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/tackle_advanced - id = "tackle_advanced" - display_name = "Advanced Grapple Technology" - description = "Nanotrasen would like to remind its researching staff that it is never acceptable to \"glomp\" your coworkers, and further \"scientific trials\" on the subject \ - will no longer be accepted in its academic journals." - design_ids = list("tackle_dolphin", "tackle_rocket") - - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - hidden = TRUE - experimental = TRUE - -/datum/techweb_node/fishing - id = "fishing" - display_name = "Fishing Technology" - description = "Cutting edge fishing advancements." - prereq_ids = list("base") - design_ids = list("fishing_rod_tech") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 2500 - hidden = TRUE - experimental = TRUE - //Helpers for debugging/balancing the techweb in its entirety! /proc/total_techweb_exports() var/list/datum/techweb_node/processing = list() 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/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm index ac663059d0c0..3f80f17e8a32 100644 --- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm +++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm @@ -16,35 +16,6 @@ Slimecrossing Weapons if(prob(20)) user.emote("scream") -//Rainbow knife - Burning Rainbow -/obj/item/kitchen/knife/rainbowknife - name = "rainbow knife" - desc = "A strange, transparent knife which constantly shifts color. It hums slightly when moved." - icon = 'icons/obj/slimecrossing.dmi' - icon_state = "rainbowknife" - item_state = "rainbowknife" - force = 18 - throwforce = 15 - damtype = BRUTE - -/obj/item/kitchen/knife/rainbowknife/afterattack(atom/O, mob/user, proximity) - if(proximity && istype(O, /mob/living)) - damtype = pick(BRUTE, BURN, TOX, OXY) - switch(damtype) - if(BRUTE) - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("slashed","sliced","cut") - if(BURN) - hitsound = 'sound/weapons/sear.ogg' - attack_verb = list("burned","singed","heated") - if(TOX) - hitsound = 'sound/weapons/pierce.ogg' - attack_verb = list("poisoned","dosed","toxified") - if(OXY) - hitsound = 'sound/effects/space_wind.ogg' - attack_verb = list("suffocated","winded","vacuumed") - return ..() - //Adamantine shield - Chilling Adamantine /obj/item/shield/adamantineshield name = "adamantine shield" diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index e9fd98232e2c..26c151e42316 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -305,11 +305,3 @@ Burning extracts: new /obj/item/shield/adamantineshield(get_turf(user)) ..() -/obj/item/slimecross/burning/rainbow - colour = "rainbow" - effect_desc = "Creates the Rainbow Knife, a kitchen knife that deals random types of damage." - -/obj/item/slimecross/burning/rainbow/do_effect(mob/user) - user.visible_message("[src] flattens into a glowing rainbow blade.") - new /obj/item/kitchen/knife/rainbowknife(get_turf(user)) - ..() diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index 25aa79302918..f01b148d4d5e 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -107,7 +107,7 @@ Charged extracts: effect_desc = "Creates a slime cake and some drinks." /obj/item/slimecross/charged/silver/do_effect(mob/user) - new /obj/item/reagent_containers/food/snacks/store/cake/slimecake(get_turf(user)) + new /obj/item/food/cake/slimecake(get_turf(user)) for(var/i in 1 to 10) var/drink_type = get_random_drink() new drink_type(get_turf(user)) 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/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm deleted file mode 100644 index 7a26946f0ddc..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 = /obj/item/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(istype(S,cutting_tool) && S.tool_behaviour == TOOL_SHOVEL) - 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(istype(S,cutting_tool) && S.tool_behaviour == TOOL_SHOVEL) - 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/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm index 7b5bd27a8ada..0747fb746ddd 100644 --- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm +++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm @@ -102,34 +102,3 @@ var/turf/open/chasm/C = T C.set_target(dest) C.drop(user) - -//can't be bothered to do sloth right now, will make later - -/obj/item/kitchen/knife/envy //Envy's knife: Found in the Envy ruin. Attackers take on the appearance of whoever they strike. - name = "envy's knife" - desc = "Their success will be yours." - icon = 'icons/obj/wizard.dmi' - icon_state = "render" - item_state = "knife" - lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' - force = 18 - throwforce = 10 - w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/kitchen/knife/envy/afterattack(atom/movable/AM, mob/living/carbon/human/user, proximity) - . = ..() - if(!proximity) - return - if(!istype(user)) - return - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - if(user.real_name != H.dna.real_name) - user.real_name = H.dna.real_name - H.dna.transfer_identity(user, transfer_SE=1) - user.updateappearance(mutcolor_update=1) - user.domutcheck() - user.visible_message("[user]'s appearance shifts into [H]'s!", \ - "[H.p_they(TRUE)] think[H.p_s()] [H.p_theyre()] sooo much better than you. Not anymore, [H.p_they()] won't.") diff --git a/code/modules/ruins/rockplanet_ruin_code.dm b/code/modules/ruins/rockplanet_ruin_code.dm index 57a6d6fd4657..5eea45c24c6c 100644 --- a/code/modules/ruins/rockplanet_ruin_code.dm +++ b/code/modules/ruins/rockplanet_ruin_code.dm @@ -100,7 +100,7 @@ /obj/item/strange_crystal/attackby(obj/item/item, mob/user, params) . = ..() - if(!istype(item, /obj/item/kitchen/knife)) + if(!istype(item, /obj/item/melee/knife)) return playsound(src, 'sound/effects/glassbr1.ogg', 50, TRUE, -1) to_chat(user, "You start breaking [src] up into shards...") @@ -112,3 +112,8 @@ if(give_to_user) user.put_in_hands(result) to_chat(user, "You finish breaking [src]") + +/obj/item/paper/crumpled/muddy/fluff/distillery + name = "distillery instructions" + desc = "A crumpled note soaked in alcohol." + default_raw_text = " Moonshine InstructionsAlright, I know some of y'all ain't literate enough for this, but if I'm ever found dead or missing, read this note. Gotta keep the craft alive. 1. Fill the still with around 5 units of enzyme. We keep the whole supply in the green crate in the storeroom. 2. Grind a cob of corn into bits, and add the mash to the still. 3. Pour an equal amount of sugar into the still, and stir. 4. Now, you'll have to scoop the product out and filter it by hand. We used to have a better still that'd filter the product itself, until last year's incident. This has to do for now. 5. Evaluate your product. Good 'shine is clear like water, and burns blue. If it ain't good, dump it. PS: If you've got some leftover sugar, mix it into bicaridine. Equal parts sugar, carbon, and oxygen makes a potent salve for your wounds." 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/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 0c535f58ae23..756d889f5bc5 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -91,7 +91,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/storage/overmap_ship, 28) new /obj/item/tank/internals/oxygen/red(src) new /obj/item/tank/internals/oxygen/red(src) new /obj/item/pickaxe/emergency(src) - new /obj/item/kitchen/knife/hunting(src) + new /obj/item/melee/knife/hunting(src) new /obj/item/survivalcapsule(src) /obj/item/storage/overmap_ship/fueled/PopulateContents() diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index f4d68520c879..6cb9f7304585 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -291,6 +291,7 @@ All ShuttleMove procs go here /************************************Item move procs************************************/ + /obj/item/storage/pod/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() // If the pod was launched, the storage will always open. The reserved_level check @@ -299,6 +300,11 @@ All ShuttleMove procs go here if (oldT && !is_reserved_level(oldT)) unlocked = TRUE +/obj/item/gun/lateShuttleMove(turf/oldT, list/movement_force, move_dir) + . = ..() + if(prob(GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM)) + discharge("is thrown around by the force of the take off") + /************************************Mob move procs************************************/ /mob/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock, list/obj/docking_port/mobile/towed_shuttles) diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 14a7497728a9..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() @@ -321,6 +321,9 @@ ///A list of all gravity generators currently linked to the shuttle. var/list/gravgen_list = list() + ///A list of all turrets currently linked to the shuttle. + var/list/turret_list = list() + ///if this shuttle can move docking ports other than the one it is docked at var/can_move_docking_ports = TRUE @@ -406,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 @@ -428,6 +431,7 @@ for(var/each in place) var/atom/atom = each atom.connect_to_shuttle(src, dock) + SEND_SIGNAL(src, COMSIG_SHIP_DONE_CONNECTING, dock) //this is a hook for custom behaviour. Maybe at some point we could add checks to see if engines are intact /obj/docking_port/mobile/proc/can_move() @@ -647,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 @@ -718,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 42888130b542..5bf2107a998b 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -1,12 +1,9 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /mob/living, - /obj/structure/blob, - /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, @@ -30,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 45d7f96b7df4..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/magusred) && !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)) - 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/conjure.dm b/code/modules/spells/spell_types/conjure.dm index c34d5cf7c985..d2e3cc957ad9 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -63,7 +63,7 @@ range = -1 clothes_req = FALSE var/obj/item/item - var/item_type = /obj/item/banhammer + var/item_type = /obj/item school = "conjuration" charge_max = 150 cooldown_min = 10 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 421b7f40f11c..000000000000 --- a/code/modules/spells/spell_types/devil.dm +++ /dev/null @@ -1,258 +0,0 @@ -/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork - name = "Summon Pitchfork" - desc = "A devil's weapon of choice. Use this to summon/unsummon your pitchfork." - invocation_type = "none" - include_user = TRUE - range = -1 - clothes_req = FALSE - item_type = /obj/item/pitchfork/demonic - - school = "conjuration" - charge_max = 150 - cooldown_min = 10 - action_icon = 'icons/mob/actions/actions_minor_antag.dmi' - action_icon_state = "pitchfork" - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater - item_type = /obj/item/pitchfork/demonic/greater - -/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended - item_type = /obj/item/pitchfork/demonic/ascended - -/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/godhand.dm b/code/modules/spells/spell_types/godhand.dm index 5cf7e7e1e509..94f0c8a4fcad 100644 --- a/code/modules/spells/spell_types/godhand.dm +++ b/code/modules/spells/spell_types/godhand.dm @@ -4,7 +4,7 @@ var/catchphrase = "High Five!" var/on_use_sound = null var/obj/effect/proc_holder/spell/targeted/touch/attached_spell - icon = 'icons/obj/items_and_weapons.dmi' + 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 = "latexballon" diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 720670e3fc21..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. @@ -99,7 +97,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 +105,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) . = ..() @@ -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/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/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index 55138a36c367..633aa8dc4f25 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -9,12 +9,12 @@ GLOBAL_LIST_INIT(summoned_guns, list( /obj/item/gun/energy/e_gun, /obj/item/gun/energy/e_gun/advtaser, /obj/item/gun/energy/laser, - /obj/item/gun/ballistic/revolver/syndicate, + /obj/item/gun/ballistic/revolver/viper, /obj/item/gun/ballistic/revolver/detective, /obj/item/gun/ballistic/automatic/pistol/deagle/camo, /obj/item/gun/ballistic/automatic/gyropistol, /obj/item/gun/energy/pulse, - /obj/item/gun/ballistic/automatic/pistol/syndicate, + /obj/item/gun/ballistic/automatic/pistol/ringneck, /obj/item/gun/ballistic/shotgun/doublebarrel, /obj/item/gun/ballistic/shotgun, /obj/item/gun/ballistic/shotgun/automatic/combat, @@ -22,14 +22,13 @@ GLOBAL_LIST_INIT(summoned_guns, list( /obj/item/gun/ballistic/revolver/mateba, /obj/item/gun/ballistic/rifle/illestren, /obj/item/pneumatic_cannon/speargun, - /obj/item/gun/ballistic/automatic/smg/mini_uzi, /obj/item/gun/energy/lasercannon, /obj/item/gun/energy/kinetic_accelerator/crossbow/large, /obj/item/gun/energy/e_gun/nuclear, /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto, - /obj/item/gun/ballistic/automatic/smg/c20r, - /obj/item/gun/ballistic/automatic/hmg/l6_saw, - /obj/item/gun/ballistic/automatic/smg/m90, + /obj/item/gun/ballistic/automatic/smg/cobra, + /obj/item/gun/ballistic/automatic/assault/hydra/lmg/extended, + /obj/item/gun/ballistic/automatic/assault/hydra, /obj/item/gun/energy/alien, /obj/item/gun/energy/e_gun/dragnet, /obj/item/gun/energy/e_gun/turret, @@ -40,10 +39,10 @@ GLOBAL_LIST_INIT(summoned_guns, list( /obj/item/gun/energy/plasmacutter/adv, /obj/item/gun/energy/wormhole_projector, /obj/item/gun/ballistic/automatic/smg/wt550, - /obj/item/gun/ballistic/shotgun/bulldog, + /obj/item/gun/ballistic/shotgun/automatic/bulldog, /obj/item/gun/ballistic/revolver/grenadelauncher, /obj/item/gun/ballistic/revolver/golden, - /obj/item/gun/ballistic/automatic/marksman/sniper_rifle, + /obj/item/gun/ballistic/automatic/marksman/taipan, /obj/item/gun/ballistic/rocketlauncher, /obj/item/gun/medbeam, /obj/item/gun/energy/laser/scatter, 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/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index d1c882f96620..0807e1e5c8cc 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -26,7 +26,7 @@ implements = list( TOOL_SCALPEL = 85, // there is no way this should be reasonable to do basically at all without a real surgery. ghetto lobotomy, for real? /obj/item/melee/transforming/energy/sword = 25, - /obj/item/kitchen/knife = 15, + /obj/item/melee/knife = 15, /obj/item/shard = 10, /obj/item = 5) time = 10 SECONDS diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm index 91cd1dce07e4..e737acbb78d7 100644 --- a/code/modules/surgery/amputation.dm +++ b/code/modules/surgery/amputation.dm @@ -14,9 +14,9 @@ TOOL_SCALPEL = 100, TOOL_SAW = 100, /obj/item/melee/arm_blade = 80, - /obj/item/fireaxe = 50, + /obj/item/melee/axe/fire = 50, /obj/item/hatchet = 40, - /obj/item/kitchen/knife/butcher = 25) + /obj/item/melee/knife/butcher = 25) time = 6.4 SECONDS preop_sound = 'sound/surgery/scalpel1.ogg' success_sound = 'sound/surgery/organ2.ogg' diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index f8d8a9a49384..53e155210310 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -153,11 +153,6 @@ if(burn_dam > DAMAGE_PRECISION) . += "This limb has [burn_dam > 30 ? "severe" : "minor"] burns." - -/obj/item/bodypart/blob_act() - take_damage(max_damage) - - /obj/item/bodypart/attack(mob/living/carbon/C, mob/user) if(ishuman(C)) var/mob/living/carbon/human/H = C @@ -777,7 +772,11 @@ if (bone_status == BONE_FLAG_NORMAL && body_part & LEGS) // Because arms are not legs owner.set_broken_legs(owner.broken_legs + 1) bone_status = BONE_FLAG_BROKEN - addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, visible_message), "You hear a cracking sound coming from [owner]'s [name].", "You feel something crack in your [name]!", "You hear an awful cracking sound."), 1 SECONDS) +// addtimer(CALLBACK(src, PROC_REF(break_bone_feedback), 1 SECONDS)) testing sommething + +///obj/item/bodypart/proc/break_bone_feedback() + owner.visible_message("You hear a cracking sound coming from [owner]'s [name].", "You feel something crack in your [name]!", "You hear an awful cracking sound.") + playsound(owner, list('sound/health/bone/bone_break1.ogg','sound/health/bone/bone_break2.ogg','sound/health/bone/bone_break3.ogg','sound/health/bone/bone_break4.ogg','sound/health/bone/bone_break5.ogg','sound/health/bone/bone_break6.ogg'), 100, FALSE, -1) /obj/item/bodypart/proc/fix_bone() // owner.update_inv_splints() breaks 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/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index a4628d19efff..ceb376f3587c 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -22,7 +22,7 @@ name = "incise heart" implements = list( TOOL_SCALPEL = 90, - /obj/item/kitchen/knife = 40, + /obj/item/melee/knife = 40, /obj/item/shard = 33) time = 1.6 SECONDS preop_sound = 'sound/surgery/scalpel1.ogg' diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm index 70dbac246e4e..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 @@ -34,7 +34,7 @@ /obj/item/scalpel/augment = 75, /obj/item/scalpel/advanced = 60, TOOL_SCALPEL = 45, - /obj/item/kitchen/knife = 30, + /obj/item/melee/knife = 30, /obj/item/shard = 10)// special tools not only cut down time but also improve probability time = 125 silicons_obey_prob = TRUE diff --git a/code/modules/surgery/gastrectomy.dm b/code/modules/surgery/gastrectomy.dm index f4bd48c4729d..6d00f5ae7588 100644 --- a/code/modules/surgery/gastrectomy.dm +++ b/code/modules/surgery/gastrectomy.dm @@ -25,7 +25,7 @@ implements = list( TOOL_SCALPEL = 95, /obj/item/melee/transforming/energy/sword = 33, - /obj/item/kitchen/knife = 40, + /obj/item/melee/knife = 40, /obj/item/shard = 10) time = 52 experience_given = (MEDICAL_SKILL_ORGAN_FIX*0.8) //for consistency across organ surgeries diff --git a/code/modules/surgery/hepatectomy.dm b/code/modules/surgery/hepatectomy.dm index e612b6fa18c5..0571cf9b2397 100644 --- a/code/modules/surgery/hepatectomy.dm +++ b/code/modules/surgery/hepatectomy.dm @@ -24,7 +24,7 @@ implements = list( TOOL_SCALPEL = 95, /obj/item/melee/transforming/energy/sword = 33, - /obj/item/kitchen/knife = 40, + /obj/item/melee/knife = 40, /obj/item/shard = 25) time = 52 experience_given = (MEDICAL_SKILL_ORGAN_FIX*0.8) //repeatable so not as much xp diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index 09ef68f03e18..79d3d79bcee5 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -23,7 +23,7 @@ implements = list( TOOL_SCALPEL = 95, /obj/item/melee/transforming/energy/sword = 33, - /obj/item/kitchen/knife = 40, + /obj/item/melee/knife = 40, /obj/item/shard = 25) time = 4.2 SECONDS preop_sound = 'sound/surgery/scalpel1.ogg' diff --git a/code/modules/surgery/mechanic_steps.dm b/code/modules/surgery/mechanic_steps.dm index 3730f7cf1302..694081f7af78 100644 --- a/code/modules/surgery/mechanic_steps.dm +++ b/code/modules/surgery/mechanic_steps.dm @@ -4,7 +4,7 @@ implements = list( TOOL_SCREWDRIVER = 100, TOOL_SCALPEL = 75, // med borgs could try to unscrew shell with scalpel - /obj/item/kitchen/knife = 50, + /obj/item/melee/knife/kitchen = 50, /obj/item = 10) time = 2.4 SECONDS preop_sound = 'sound/items/screwdriver.ogg' @@ -28,7 +28,7 @@ implements = list( TOOL_SCREWDRIVER = 100, TOOL_SCALPEL = 75, - /obj/item/kitchen/knife = 50, + /obj/item/melee/knife/kitchen = 50, /obj/item = 10) time = 2.4 SECONDS preop_sound = 'sound/items/screwdriver.ogg' diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index 42018e6c1d87..39fb1d71b258 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -5,7 +5,7 @@ implements = list( TOOL_SCALPEL = 100, /obj/item/melee/transforming/energy/sword = 40, - /obj/item/kitchen/knife = 40, + /obj/item/melee/knife = 40, /obj/item/shard = 25, /obj/item = 15) //any sharp item time = 1.6 SECONDS @@ -151,18 +151,22 @@ name = "saw bone" implements = list( TOOL_SAW = 100, - /obj/item/fireaxe = 50, + /obj/item/melee/axe/fire = 50, + /obj/item/gear_handle/anglegrinder = 50, /obj/item/melee/arm_blade = 40, /obj/item/hatchet = 40, - /obj/item/kitchen/knife/butcher = 33, + /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/fireaxe = 'sound/surgery/scalpel1.ogg', + /obj/item/melee/axe/fire = 'sound/surgery/scalpel1.ogg', /obj/item/hatchet = 'sound/surgery/scalpel1.ogg', - /obj/item/kitchen/knife/butcher = 'sound/surgery/scalpel1.ogg', + /obj/item/melee/knife/butcher = 'sound/surgery/scalpel1.ogg', /obj/item = 'sound/surgery/scalpel1.ogg', ) success_sound = 'sound/surgery/bone3.ogg' diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 5d6fac852d51..665086d1981d 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -232,11 +232,11 @@ /obj/item/organ/cyberimp/arm/toolset/emag_act(mob/user) for(var/datum/weakref/created_item in items_list) var/obj/potential_knife = created_item.resolve() - if(istype(/obj/item/kitchen/knife/combat/cyborg, potential_knife)) + if(istype(/obj/item/melee/knife/combat/cyborg, potential_knife)) return FALSE to_chat(user, "You unlock [src]'s integrated knife!") - items_list += WEAKREF(new /obj/item/kitchen/knife/combat/cyborg(src)) + items_list += WEAKREF(new /obj/item/melee/knife/combat/cyborg(src)) return TRUE /obj/item/organ/cyberimp/arm/esword diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 26b93d2c4642..6ba9ce69d700 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -55,7 +55,7 @@ update_appearance() return 1 -/obj/item/organ/heart/OnEatFrom(eater, feeder) +/obj/item/organ/heart/on_eat_from(eater, feeder) . = ..() beating = FALSE update_appearance() diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 05ca5131e0f9..f6af39b201c0 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -284,6 +284,38 @@ breath.adjust_moles(GAS_FREON, -gas_breathed) + // Chlorine + var/chlorine_pp = PP(breath,GAS_CHLORINE) + if (prob(chlorine_pp)) + to_chat(H, "Your lungs feel awful!") + if (chlorine_pp >40) + H.emote("gasp") + H.adjustFireLoss(5) + if (prob(chlorine_pp/2)) + to_chat(H, "Your throat closes up!") + H.silent = max(H.silent, 3) + else + H.adjustFireLoss(round(chlorine_pp/8)) + gas_breathed = breath.get_moles(GAS_CHLORINE) + if (gas_breathed > gas_stimulation_min) + H.reagents.add_reagent(/datum/reagent/chlorine,1) + + breath.adjust_moles(GAS_CHLORINE, -gas_breathed) + // Hydrogen Chloride + var/hydrogen_chloride_pp = PP(breath,GAS_HYDROGEN_CHLORIDE) + if (prob(hydrogen_chloride_pp)) + to_chat(H, "Your lungs feel terrible!") + if (hydrogen_chloride_pp >20) + H.emote("gasp") + H.adjustFireLoss(10) + if (prob(hydrogen_chloride_pp/2)) + to_chat(H, "Your throat closes up!") + H.silent = max(H.silent, 3) + else + H.adjustFireLoss(round(hydrogen_chloride_pp/4)) + if (gas_breathed > gas_stimulation_min) + H.reagents.add_reagent(/datum/reagent/hydrogen_chloride) + // Stimulum gas_breathed = PP(breath,GAS_STIMULUM) if (gas_breathed > gas_stimulation_min) diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index b8871b21524e..72b7fba9d2da 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -38,7 +38,14 @@ /obj/item/organ/Initialize() . = ..() if(organ_flags & ORGAN_EDIBLE) - AddComponent(/datum/component/edible, food_reagents, null, RAW | MEAT | GORE, null, 10, null, null, null, COLOR_PINK, CALLBACK(src, PROC_REF(OnEatFrom))) + AddComponent(/datum/component/edible,\ + initial_reagents = food_reagents,\ + foodtypes = RAW | MEAT | GORE,\ + volume = 10,\ + filling_color = COLOR_PINK,\ + pre_eat = CALLBACK(src, PROC_REF(pre_eat)),\ + on_compost = CALLBACK(src, PROC_REF(pre_compost)),\ + after_eat = CALLBACK(src, PROC_REF(on_eat_from))) ///When you take a bite you cant jam it in for surgery anymore. /obj/item/organ/proc/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) @@ -133,8 +140,21 @@ STOP_PROCESSING(SSobj, src) return ..() -/obj/item/organ/proc/OnEatFrom(eater, feeder) - useable = FALSE //You can't use it anymore after eating it you spaztic +// Put any "can we eat this" checks for edible organs here +/obj/item/organ/proc/pre_eat(eater, feeder) + if(iscarbon(eater)) + var/mob/living/carbon/target = eater + for(var/S in target.surgeries) + var/datum/surgery/surgery = S + if(surgery.location == zone) + return FALSE + return TRUE + +/obj/item/organ/proc/pre_compost(user) + return TRUE + +/obj/item/organ/proc/on_eat_from(eater, feeder) + useable = FALSE //You bit it, no more using it /obj/item/organ/item_action_slot_check(slot,mob/user) return //so we don't grant the organ's action to mobs who pick up the organ. 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/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index 9c87a5b5a93f..ed54575bb1bf 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -8,7 +8,7 @@ name = "reshape face" implements = list( TOOL_SCALPEL = 100, - /obj/item/kitchen/knife = 40, + /obj/item/melee/knife = 40, TOOL_WIRECUTTER = 33) time = 64 experience_given = MEDICAL_SKILL_MEDIUM 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)) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 317297c4fe8d..5da5f497bda4 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -171,7 +171,7 @@ //spases 4 legibilititie icon_state = "swa" - icon = 'icons/obj/items_and_weapons.dmi' + icon = 'icons/obj/items.dmi' lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index 44fbffd917ce..1a6fcb37e429 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -49,6 +49,7 @@ get_asset_datum(/datum/asset/simple/tgui_panel), )) window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/fontawesome)) + window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/tgfont)) window.send_asset(get_asset_datum(/datum/asset/spritesheet/chat)) request_telemetry() addtimer(CALLBACK(src, PROC_REF(on_initialize_timed_out)), 5 SECONDS) diff --git a/code/modules/unit_tests/create_and_destroy.dm b/code/modules/unit_tests/create_and_destroy.dm index 017356d9152a..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 @@ -72,7 +70,7 @@ ignore += typesof(/obj/effect/pod_landingzone_effect) ignore += typesof(/obj/effect/pod_landingzone) //These want fried food to take on the shape of, we can't pass that in - ignore += typesof(/obj/item/reagent_containers/food/snacks/deepfryholder) + ignore += typesof(/obj/item/food/deepfryholder) //Can't pass in a thing to glow ignore += typesof(/obj/effect/abstract/eye_lighting) //It wants a lot more context then we have 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/unit_tests/serving_tray.dm b/code/modules/unit_tests/serving_tray.dm index 9bd487ba68a8..b4dc1f77a520 100644 --- a/code/modules/unit_tests/serving_tray.dm +++ b/code/modules/unit_tests/serving_tray.dm @@ -6,7 +6,7 @@ var/obj/structure/table/the_table = allocate(/obj/structure/table) var/obj/item/storage/bag/tray/test_tray = allocate(/obj/item/storage/bag/tray) var/obj/item/reagent_containers/food/banana = allocate(/obj/item/reagent_containers/food/snacks/grown/banana) - var/obj/item/reagent_containers/food/the_bread = allocate(/obj/item/reagent_containers/food/snacks/breadslice) + var/obj/item/reagent_containers/food/the_bread = allocate(/obj/item/food/breadslice) var/obj/item/reagent_containers/food/sugarcookie = allocate(/obj/item/reagent_containers/food/snacks/sugarcookie) var/obj/item/clothing/under/jumpsuit = allocate(/obj/item/clothing/under/color/black) diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index 7240adb33855..00e7c6e756ac 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -111,7 +111,7 @@ GLOBAL_VAR(test_log) log_world("::error file=[file],line=[line],title=[test_path]::[text]") // Normal log message - log_entry += "\tREASON #[reasonID]: [text] at [file]:[line]" + log_entry += "\tFAILURE #[reasonID]: [text] at [file]:[line]" var/message = log_entry.Join("\n") log_test(message) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 9e935611e15f..0923ba1cc70e 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -325,7 +325,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "84mm Rocket Propelled Grenade Launcher" desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ Guaranteed to send your target out with a bang or your money back!" - item = /obj/item/gun/ballistic/rocketlauncher + item = /obj/item/gun/ballistic/rocketlauncher/mako cost = 8 surplus = 30 include_modes = list(/datum/game_mode/nuclear) @@ -387,7 +387,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Bulldog Shotgun" desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ quarter anti-personnel engagements." - item = /obj/item/gun/ballistic/shotgun/bulldog + item = /obj/item/gun/ballistic/shotgun/automatic/bulldog cost = 8 surplus = 40 include_modes = list(/datum/game_mode/nuclear) @@ -396,7 +396,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "C-20r Submachine Gun" desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ 24-round magazine and is compatible with suppressors." - item = /obj/item/gun/ballistic/automatic/smg/c20r + item = /obj/item/gun/ballistic/automatic/smg/cobra cost = 10 surplus = 40 include_modes = list(/datum/game_mode/nuclear) @@ -459,7 +459,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "L6 Squad Automatic Weapon" desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." - item = /obj/item/gun/ballistic/automatic/hmg/l6_saw + item = /obj/item/gun/ballistic/automatic/assault/hydra/lmg/extended cost = 18 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -468,7 +468,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "M-90gl Carbine" desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ with a toggleable 40mm underbarrel grenade launcher." - item = /obj/item/gun/ballistic/automatic/smg/m90 + item = /obj/item/gun/ballistic/automatic/assault/hydra cost = 18 surplus = 50 include_modes = list(/datum/game_mode/nuclear) @@ -485,7 +485,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" - item = /obj/item/gun/ballistic/automatic/marksman/sniper_rifle + item = /obj/item/gun/ballistic/automatic/marksman/taipan cost = 16 surplus = 25 include_modes = list(/datum/game_mode/nuclear) @@ -494,7 +494,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Stechkin Pistol" desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ with suppressors." - item = /obj/item/gun/ballistic/automatic/pistol/syndicate + item = /obj/item/gun/ballistic/automatic/pistol/ringneck cost = 7 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) @@ -508,7 +508,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/revolver name = "Syndicate Revolver" desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/gun/ballistic/revolver/syndicate + item = /obj/item/gun/ballistic/revolver/viper cost = 13 surplus = 50 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) @@ -516,7 +516,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/foamsmg name = "Toy Submachine Gun" desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." - item = /obj/item/gun/ballistic/automatic/smg/c20r/toy/riot + item = /obj/item/gun/ballistic/automatic/toy cost = 5 surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -525,7 +525,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Toy Machine Gun" desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/riot + item = /obj/item/gun/ballistic/automatic/toy cost = 10 surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -565,28 +565,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 5 limited_stock = 1 -/datum/uplink_item/dangerous/tec9 - name = "TEC9 Machine Pistol" - desc = "A powerful machine pistol sporting a high rate of fire and armor-piercing rounds." - item = /obj/item/gun/ballistic/automatic/pistol/tec9 - cost = 12 - surplus = 20 - -/datum/uplink_item/dangerous/ebr - name = "M514 EBR" - desc = "A cheap rifle with high stopping power and low capacity." - item = /obj/item/gun/ballistic/automatic/marksman/ebr - cost = 8 - surplus = 20 - include_modes = list(/datum/game_mode/nuclear) - // Stealthy Weapons /datum/uplink_item/stealthy_weapons category = "Stealthy Weapons" /datum/uplink_item/stealthy_weapons/combatglovesplus name = "Combat Gloves Plus" - desc = "A pair of gloves that are fireproof and electrically insulated, however unlike the regular Combat Gloves these use nanotechnology \ + desc = "A pair of gloves that are fireproof and acid-resistant, however unlike the regular Combat Gloves these use nanotechnology \ to teach the martial art of krav maga to the wearer." item = /obj/item/clothing/gloves/krav_maga/combatglovesplus cost = 5 @@ -726,7 +711,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/ammo/pistol name = "10mm Handgun Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol." - item = /obj/item/ammo_box/magazine/m10mm + item = /obj/item/ammo_box/magazine/m10mm_ringneck cost = 1 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) @@ -734,7 +719,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "10mm Armour Piercing Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/m10mm/ap + item = /obj/item/ammo_box/magazine/m10mm_ringneck cost = 2 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) @@ -742,7 +727,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "10mm Hollow Point Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ These rounds are more damaging but ineffective against armour." - item = /obj/item/ammo_box/magazine/m10mm/hp + item = /obj/item/ammo_box/magazine/m10mm_ringneck cost = 3 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) @@ -750,7 +735,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "10mm Incendiary Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/m10mm/inc + item = /obj/item/ammo_box/magazine/m10mm_ringneck cost = 2 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) @@ -767,13 +752,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/ammo/shotgun/buck name = "12g Buckshot Drum" desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." - item = /obj/item/ammo_box/magazine/m12g + item = /obj/item/ammo_box/magazine/m12g_bulldog/drum /datum/uplink_item/ammo/shotgun/dragon name = "12g Dragon's Breath Drum" desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ 'I'm a fire starter, twisted fire starter!'" - item = /obj/item/ammo_box/magazine/m12g/dragon + item = /obj/item/ammo_box/magazine/m12g_bulldog/drum/dragon include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/shotgun/meteor @@ -782,7 +767,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. Great for blasting airlocks off their frames and knocking down enemies. "} - item = /obj/item/ammo_box/magazine/m12g/meteor + item = /obj/item/ammo_box/magazine/m12g_bulldog/drum/meteor include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/shotgun/slug @@ -790,7 +775,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ Now 8 times less likely to shoot your pals." cost = 3 - item = /obj/item/ammo_box/magazine/m12g/slug + item = /obj/item/ammo_box/magazine/m12g_bulldog/drum/slug /datum/uplink_item/ammo/revolver name = ".357 Speed Loader" @@ -819,7 +804,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/ammo/smg name = ".45 SMG Magazine" desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." - item = /obj/item/ammo_box/magazine/smgm45 + item = /obj/item/ammo_box/magazine/m45_cobra cost = 3 include_modes = list(/datum/game_mode/nuclear) @@ -849,7 +834,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "5.56mm Toploader Magazine" desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo." - item = /obj/item/ammo_box/magazine/m556 + item = /obj/item/ammo_box/magazine/m556_42_hydra cost = 4 include_modes = list(/datum/game_mode/nuclear) @@ -858,38 +843,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 0 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/ammo/machinegun/basic - name = "7.12x82mm Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use with the L6 SAW. \ - By the time you need to use this, you'll already be standing on a pile of corpses." - item = /obj/item/ammo_box/magazine/mm712x82 - -/datum/uplink_item/ammo/machinegun/ap - name = "7.12x82mm (Armor Penetrating) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with special properties \ - to puncture even the most durable armor." - item = /obj/item/ammo_box/magazine/mm712x82/ap - cost = 9 - -/datum/uplink_item/ammo/machinegun/hollow - name = "7.12x82mm (hollow point) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow point tips to help \ - with the unarmored masses of crew." - item = /obj/item/ammo_box/magazine/mm712x82/hollow - -/datum/uplink_item/ammo/machinegun/incen - name = "7.12x82mm (Incendiary) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; tipped with a special flammable \ - mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." - item = /obj/item/ammo_box/magazine/mm712x82/inc - -/datum/uplink_item/ammo/machinegun/match - name = "7.12x82mm (Match) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; you didn't know there was a demand for match grade \ - precision bullet hose ammo, but these rounds are finely tuned and perfect for ricocheting off walls all fancy-like." - item = /obj/item/ammo_box/magazine/mm712x82/match - cost = 10 - /datum/uplink_item/ammo/rocket include_modes = list(/datum/game_mode/nuclear) @@ -909,7 +862,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/ammo/pistolaps name = "9mm Handgun Magazine" desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." - item = /obj/item/ammo_box/magazine/pistolm9mm + item = /obj/item/ammo_box/magazine/m9mm_rattlesnake cost = 2 include_modes = list(/datum/game_mode/nuclear) @@ -937,30 +890,30 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/mech/bag - name = "Mech Support Kit Bag" - desc = "A duffel bag containing ammo for four full reloads of the scattershotm which is equipped on standard Dark Gygax and Mauler exosuits. Also comes with some support equipment for maintaining the mech, including tools and an inducer." + name = "Exosuit Support Kit Bag" + desc = "A duffel bag containing ammo for four full reloads of the scattershot which is equipped on standard Dark Gygax and Touro exosuits. Also comes with some support equipment for maintaining the exosuit, including tools and an inducer." item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mech cost = 4 include_modes = list(/datum/game_mode/nuclear) -/datum/uplink_item/ammo/mauler/bag - name = "Mauler Ammo Bag" - desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile laucher that are equipped on a standard Mauler exosuit." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler +/datum/uplink_item/ammo/touro/bag + name = "Touro Ammo Bag" + desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile laucher that are equipped on a standard Touro exosuit." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/touro cost = 6 include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/tec9 name = "TEC9 Magazine" desc = "An additional 20 round 9mm magazine for the TEC9." - item = /obj/item/ammo_box/magazine/tec9 + item = /obj/item/ammo_box/magazine/m9mm_rattlesnake cost = 3 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) /datum/uplink_item/ammo/ebr name = "M2514 EBR Magazine" desc = "An additional 10 round .308 magazine for the EBR." - item = /obj/item/ammo_box/magazine/ebr + item = /obj/item/ammo_box/magazine/m556_42_hydra/small cost = 2 include_modes = list(/datum/game_mode/nuclear) @@ -1195,11 +1148,11 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 80 include_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/support/mauler - name = "Mauler Exosuit" - desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ +/datum/uplink_item/support/touro + name = "Touro Exosuit" + desc = "A well-armored and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." - item = /obj/mecha/combat/marauder/mauler/loaded + item = /obj/mecha/combat/marauder/touro/loaded cost = 140 // Stealth Items @@ -1247,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. \ @@ -1832,9 +1775,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/role_restricted/concealed_weapon_bay name = "Concealed Weapon Bay" - desc = "A modification for non-combat mechas that allows them to equip one piece of equipment designed for combat mechs. \ + desc = "A modification for civilian exosuits that allows them to equip one piece of equipment designed for combat exosuits. \ It also hides the equipped weapon from plain sight. \ - Only one can fit on a mecha." + Only one can fit on an exosuit." item = /obj/item/mecha_parts/concealed_weapon_bay cost = 3 restricted_roles = list("Roboticist", "Research Director") @@ -1848,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" @@ -1920,15 +1856,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." @@ -1939,7 +1866,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/role_restricted/greykingsword name = "Blade of The Grey Tide" desc = "A weapon of legend, forged by the greatest crackheads of our generation." - item = /obj/item/melee/greykingsword + item = /obj/item/melee/sword/greyking cost = 2 restricted_roles = list("Assistant", "Chemist") 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/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 8d6acea28452..ebef11cd2630 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -57,7 +57,7 @@ ///Stores the default icon state var/board_icon = "skateboard" ///The handheld item counterpart for the board - var/board_item_type = /obj/item/melee/skateboard + var/board_item_type = /obj/item/skateboard ///Stamina drain multiplier var/instability = 10 @@ -165,13 +165,13 @@ desc = "A RaDSTORMz brand professional skateboard. Looks a lot more stable than the average board." icon_state = "skateboard2" board_icon = "skateboard2" - board_item_type = /obj/item/melee/skateboard/pro + board_item_type = /obj/item/skateboard/pro instability = 6 /obj/vehicle/ridden/scooter/skateboard/hoverboard/ name = "hoverboard" desc = "A blast from the past, so retro!" - board_item_type = /obj/item/melee/skateboard/hoverboard + board_item_type = /obj/item/skateboard/hoverboard instability = 3 icon_state = "hoverboard_red" board_icon = "hoverboard_red" @@ -188,7 +188,7 @@ /obj/vehicle/ridden/scooter/skateboard/hoverboard/admin name = "\improper Board Of Directors" desc = "The engineering complexity of a spaceship concentrated inside of a board. Just as expensive, too." - board_item_type = /obj/item/melee/skateboard/hoverboard/admin + board_item_type = /obj/item/skateboard/hoverboard/admin instability = 0 icon_state = "hoverboard_nt" board_icon = "hoverboard_nt" 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/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/cigarette.dm b/code/modules/vending/cigarette.dm index 1c377c309464..65437f3bb4ec 100644 --- a/code/modules/vending/cigarette.dm +++ b/code/modules/vending/cigarette.dm @@ -41,7 +41,7 @@ /obj/item/lighter/greyscale = 4, /obj/item/storage/fancy/rollingpapers = 5) -/obj/machinery/vending/cigarette/beach //Used in the lavaland_biodome_beach.dmm ruin +/obj/machinery/vending/cigarette/beach //Used in the old lavaland biodome ruin name = "\improper ShadyCigs Ultra" desc = "Now with extra premium products!" product_ads = "Probably not bad for you!;Dope will get you through times of no money better than money will get you through times of no dope!;It's good for you!" 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/drinnerware.dm b/code/modules/vending/drinnerware.dm index 3e51271093ad..0dc0102c91ef 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/drinnerware.dm @@ -8,17 +8,17 @@ /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/kitchen/knife = 2, - /obj/item/kitchen/knife/pizza_cutter = 2, + /obj/item/melee/knife/kitchen = 2, + /obj/item/melee/knife/pizza_cutter = 2, /obj/item/book/granter/crafting_recipe/cooking_sweets_101 = 2, - /obj/item/kitchen/knife/butcher = 1) + /obj/item/melee/knife/butcher = 1) refill_canister = /obj/item/vending_refill/dinnerware default_price = 50 extra_price = 250 diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index c803fa347e9f..e54479cd55ca 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -15,8 +15,8 @@ /obj/item/camera = 3, /obj/item/dyespray = 3) premium = list( - /obj/item/melee/skateboard/pro = 3, - /obj/item/melee/skateboard/hoverboard = 1) + /obj/item/skateboard/pro = 3, + /obj/item/skateboard/hoverboard = 1) refill_canister = /obj/item/vending_refill/games default_price = 50 extra_price = 250 diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm index 911a190703f4..06069e4db764 100644 --- a/code/modules/vending/liberation_toy.dm +++ b/code/modules/vending/liberation_toy.dm @@ -17,8 +17,6 @@ /obj/item/clothing/head/syndicatefake = 5) //OPS IN DORMS oh wait it's just an assistant contraband = list( /obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting! - /obj/item/gun/ballistic/automatic/smg/c20r/toy = 10, - /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy = 10, /obj/item/ammo_box/foambox/riot = 20, /obj/item/toy/katana = 10, /obj/item/dualsaber/toy = 5, diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 911eaed20652..37a51b27bb89 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -98,7 +98,7 @@ /obj/item/storage/box/lethalshot = 6, /obj/item/stock_parts/cell/gun = 5, - /obj/item/ammo_box/magazine/uzim9mm = 5, + /obj/item/ammo_box/magazine/spitter_9mm = 5, /obj/item/grenade/c4 = 5, /obj/item/grenade/frag = 5, @@ -107,8 +107,7 @@ premium = list() voucher_items = list( "Tactical Energy Gun" = /obj/item/gun/energy/e_gun/hades, - "Combat Shotgun" = /obj/item/gun/ballistic/shotgun/automatic/combat, - "Type U3 Uzi" = /obj/item/gun/ballistic/automatic/smg/mini_uzi) + "Combat Shotgun" = /obj/item/gun/ballistic/shotgun/automatic/combat) /obj/machinery/vending/security/marine/syndicate icon_state = "syndicate-marine" @@ -120,20 +119,20 @@ /obj/item/restraints/handcuffs = 3, /obj/item/assembly/flash/handheld = 2, /obj/item/flashlight/seclite = 2, - /obj/item/ammo_box/magazine/m10mm = 3, - /obj/item/ammo_box/magazine/smgm45 = 3, + /obj/item/ammo_box/magazine/m10mm_ringneck = 3, + /obj/item/ammo_box/magazine/m45_cobra = 3, /obj/item/ammo_box/magazine/sniper_rounds = 3, - /obj/item/ammo_box/magazine/m556 = 2, - /obj/item/ammo_box/magazine/m12g = 3, - /obj/item/ammo_box/magazine/ebr = 5, + /obj/item/ammo_box/magazine/m556_42_hydra = 2, + /obj/item/ammo_box/magazine/m12g_bulldog/drum = 3, + /obj/item/ammo_box/magazine/m556_42_hydra/small = 5, /obj/item/grenade/c4 = 1, /obj/item/grenade/frag = 1, ) voucher_items = list( - "M-90gl Carbine" = /obj/item/gun/ballistic/automatic/smg/m90, - "sniper rifle" = /obj/item/gun/ballistic/automatic/marksman/sniper_rifle, - "C-20r SMG" = /obj/item/gun/ballistic/automatic/smg/c20r, - "Bulldog Shotgun" = /obj/item/gun/ballistic/shotgun/bulldog) + "M-90gl Carbine" = /obj/item/gun/ballistic/automatic/assault/hydra, + "sniper rifle" = /obj/item/gun/ballistic/automatic/marksman/taipan, + "C-20r SMG" = /obj/item/gun/ballistic/automatic/smg/cobra, + "Bulldog Shotgun" = /obj/item/gun/ballistic/shotgun/automatic/bulldog) /obj/machinery/vending/security/marine/nanotrasen icon_state = "nt-marine" diff --git a/code/modules/vending/sustenance.dm b/code/modules/vending/sustenance.dm index 0519285d26a5..02a95555468f 100644 --- a/code/modules/vending/sustenance.dm +++ b/code/modules/vending/sustenance.dm @@ -7,11 +7,11 @@ icon_state = "sustenance" products = list( /obj/item/reagent_containers/food/snacks/tofu/prison = 24, - /obj/item/reagent_containers/food/snacks/breadslice/moldy = 15, + /obj/item/food/breadslice/moldy = 15, /obj/item/reagent_containers/food/drinks/ice/prison = 12, /obj/item/reagent_containers/food/snacks/candy_corn/prison = 6) contraband = list( - /obj/item/kitchen/knife = 6, + /obj/item/melee/knife/kitchen = 6, /obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/tank/internals/emergency_oxygen = 6, /obj/item/clothing/mask/breath = 6) diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm index a5092cf7373f..08af917aa86a 100644 --- a/code/modules/vending/toys.dm +++ b/code/modules/vending/toys.dm @@ -18,8 +18,6 @@ /obj/item/clothing/suit/syndicatefake = 5, /obj/item/clothing/head/syndicatefake = 5, /obj/item/gun/ballistic/shotgun/toy/crossbow = 10, - /obj/item/gun/ballistic/automatic/smg/c20r/toy = 5, - /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy = 5, /obj/item/toy/katana = 10, /obj/item/dualsaber/toy = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index da3fdb134010..2bef026cebff 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) @@ -375,29 +372,16 @@ icon_state = "chapdrobe" product_ads = "Are you being bothered by cultists or pesky revenants? Then come and dress like the holy man!;Clothes for men of the cloth!" vend_reply = "Thank you for using the ChapDrobe!" - products = list(/obj/item/storage/box/holy = 1, - /obj/item/storage/backpack/cultpack = 1, + products = list(/obj/item/storage/backpack/cultpack = 1, /obj/item/clothing/head/beret/service = 1, //WS edit - berets /obj/item/clothing/accessory/pocketprotector/cosmetology = 1, /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" @@ -433,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" @@ -455,7 +438,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/config/admins.txt b/config/admins.txt index b695c94f084b..24f777f26b19 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -5,5 +5,6 @@ #If SQL-based admin loading is enabled, admins listed here will always be loaded first and will override any duplicate entries in the database. MarkSuckerberg = Development Head +rkz = Development Head #just use the database, this is deprecated diff --git a/html/changelogs/AutoChangeLog-pr-3395.yml b/html/changelogs/AutoChangeLog-pr-3395.yml new file mode 100644 index 000000000000..e7146487ce7f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3395.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon, Mothblocks, Cyberboss +changes: + - {rscadd: retry failed unit tests.} +delete-after: true 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 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 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 diff --git a/html/changelogs/AutoChangeLog-pr-3475.yml b/html/changelogs/AutoChangeLog-pr-3475.yml new file mode 100644 index 000000000000..fb28b86b493c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3475.yml @@ -0,0 +1,5 @@ +author: DrCrawler +changes: + - {rscadd: Gives IPCs a little more adjectives to work with.} + - {rscdel: Removed some duplicate adjectives from the raw file.} +delete-after: true 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 diff --git a/html/changelogs/AutoChangeLog-pr-3488.yml b/html/changelogs/AutoChangeLog-pr-3488.yml new file mode 100644 index 000000000000..99d5cdb6d1e7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3488.yml @@ -0,0 +1,4 @@ +author: rye-rice, Imaginos16 +changes: + - {rscadd: Resprites Wisp} +delete-after: true diff --git a/html/changelogs/archive/2024-07.yml b/html/changelogs/archive/2024-07.yml index 6eca9f799e42..9f9679a752b3 100644 --- a/html/changelogs/archive/2024-07.yml +++ b/html/changelogs/archive/2024-07.yml @@ -127,3 +127,41 @@ Fest1v3: - rscadd: adds a few vox sprites - bugfix: fixes a few vox sprites +2024-07-24: + DIB-DOG: + - bugfix: fixed the foodtype of two Gezenan drinks to match their descriptions + - rscadd: added a taste description to Keh'Lu'Tex Liqueur + Gristlebee: + - rscadd: Acquire Mission containers and Mission drills display their objective + type. + - rscadd: Changed name of base fish type to generic fish + SomeguyManperson: + - bugfix: the BG-16 is now as ammo efficient as the BG-12 + - bugfix: the BG-16 has automatic fire again + generalthrax: + - balance: Undoubles the price on every automatic gun and removed 250 from the price + of every semi-auto pistol. +2024-07-26: + Cloudbreak: + - rscadd: A new ruin, the Abandoned Listening Post. + - rscadd: Areas associated with the listening post. + - bugfix: Single line in maps catalogue. +2024-07-27: + Gristlebee: + - rscadd: Marker beacons can now be printed at the autolathe from the Misc tab +2024-07-31: + rkz, benbot(benjamin), Time-Green, SteelSlayer, floyd, Qustinuus, ArcaneDefence, FlowerCuco: + - rscadd: Food storage! Hide some glass in the captains cake! Begone digestive tract! + - rscadd: Bread, Cake and Spaghetti to Newfood + - rscadd: some smaller foods can now be eaten whilst on the run! (This ONLY applies + to newfood items thus far!) + - rscadd: converted edible component to work with newfood + - rscdel: oldfood for Bread, Cake and Spaghetti + - rscdel: Temporarily removes customfood bread, cake, pasta, and sandwiches + - tweak: edited a few messed up values + - tweak: food trash is sensible now. Finishing stuff like cake will actually spawn + a plate rubbish. Instead of you eating the plate, biggun, perhaps properly dispose + of it! + - bugfix: Wildly STUPID item weights. Candycorn and cakes are no longer the SAME + size + - code_imp: provides some semblance of sorting for signal defines diff --git a/html/changelogs/archive/2024-08.yml b/html/changelogs/archive/2024-08.yml new file mode 100644 index 000000000000..722a57377629 --- /dev/null +++ b/html/changelogs/archive/2024-08.yml @@ -0,0 +1,234 @@ +2024-08-02: + FalloutFalcon: + - rscadd: New admin button to launch a distress announcement quicker. + Sadhorizon: + - tweak: Cafe latte, iced coffee, hot ice coffee and soy latte now only make your + character jitter on OD. + - tweak: Reduced the prices of first aid kits. + - tweak: Remapped the Kilo-class Mining Ship + SomeguyManperson: + - rscadd: legion attacks will now inject an organ which eventually causes a transformation, + rather than instantly killing and transforming people. +2024-08-03: + Anticept: + - bugfix: Executing someone with a gun is back, you psychos. Paint the floor red! + Martinpachu: + - balance: 8x50 boxes now come with 25 ammo as opposed to 20. + Sadhorizon: + - tweak: Internals Crate now costs 100 credits and contains full oxygen tanks. + - tweak: Plasmaman Tank Kit renamed to Plasmaman Internals Crate. It now costs 100 + credits and contains full plasma tanks. + SomeguyManperson: + - bugfix: mini/energy gun cases no longer spawn with the wrong weapon in them + - balance: gun attachments are now small instead of normal sized + Yata9ar4su: + - bugfix: Cash bundle value will now be correct in chat, cash will not drop upon + stacking + firebudgy: + - rscadd: New sprites for Vox! Vanguard and Honorable Vanguard Battlecoat sprite + changes, NGR hard hats, and hazard vests! + generalthrax: + - rscadd: Industrial jacket now keeps you warm + - bugfix: Contender is now called the Beacon in cargo + zimon9: + - rscadd: an anesthetics crate +2024-08-04: + Apogee-dev: + - bugfix: Changed almost every player facing instance of the word "mech" to "exosuit" + - balance: Replaced syndie survival boxes in outfit datums with normal job-equivalent + boxes + FalloutFalcon: + - balance: nerfed legion money drops. + Gristlebee: + - rscadd: Sandbags can be deconed by click dragging them onto your mob. + - rscadd: Sandbags to the outpost for 150 credits. + Martinpachu: + - rscadd: Clips of all kinds (not magazines!) can now be produced on the autolathe. + - rscdel: Clip cargo packs, as they are now redundant. + PositiveEntropy: + - imageadd: Resprites muzzle flashes! + Sadhorizon: + - imageadd: Added directionals for mining processing consoles. + Thera-Pissed: + - bugfix: hydrogen and combustion bugs + Zevotech: + - balance: the Quirk Social Anxiety no longer silences you randomly + - bugfix: Stuttering is now far less extreme and will not delete characters + - bugfix: Psicodine now actually suppresses the effects of social anxiety + firebudgy: + - bugfix: Fixed three typos in the code. + phoaly: + - balance: Buffed LP hardsuits +2024-08-07: + Sadhorizon: + - tweak: Remapped the Dwayne-class Long Range Mining Transport. + - rscadd: Added a random plushie spawner and a random moth plushie spawner. + Thera-Pissed: + - rscadd: Chlorine and Hydrogen Chloride gases! Wear your goggles! +2024-08-10: + generalthrax: + - rscadd: Cleanbots now destroy cigarette butts, and dispense enough acid to do + so. + rye-rice: + - bugfix: indie sec hardsuit now shows up +2024-08-11: + firebudgy: + - rscadd: Sprites for several different kinds of scarves for Vox! + - rscadd: Additional sprites for several other items for Vox, such as chest-high + towels and hazard jackets. + - rscadd: Created onmob_neck_vox.dmi file, plus enabled support for it. + generalthrax: + - bugfix: Fixes the Industrial Jacket to be warm (For Real) + phoaly: + - balance: Talos Corpsman has been readded with a different medkit loadout. +2024-08-16: + OrionTheFox: + - rscadd: Suit Storage Units now provide feedback when Decontamination fails to + activate + - imageadd: Suit Storage Units now have a visible red light when Locked - when hacked, + Decontamination now has a red-yellow flashing light to distinguish from the + Locked light. +2024-08-18: + Cloudbreak: + - rscadd: Frontiersman sprites for the Vox! + Gristlebee: + - bugfix: water turfs reagent scooping + - code_imp: span classes to span macros + - refactor: acid turfs repathed under water + - refactor: Pouring out a reagent container is now bound to disarm intent instead + of help intent. + - rscadd: Examine hints for flipped tables + - bugfix: You can no longer phase through a flipped table. + meemofcourse: + - bugfix: Hardliner troopers should no longer spawn as Hardliner pilots +2024-08-20: + Aquidu: + - bugfix: Fixed a bug relating to literal spaghetti code. + zimon9: + - bugfix: fixed a short on the Shetland +2024-08-21: + FalloutFalcon: + - rscadd: Added var to let admins bypass do_teleport vlevel restriction + Sadhorizon: + - bugfix: Ranged frontersman with internals now drops the correct revolver type. +2024-08-22: + rye-rice, Imaginos16: + - rscadd: Adds new belt sprites +2024-08-23: + retlaw34, rye-rice, Apogee-dev: + - rscadd: Adds CLIPs weapons + - rscadd: Adds the New Frontiersmen weapons + - rscadd: 556 ammo box to cargo + - rscadd: inteq sprites should look better +2024-08-24: + generalthrax: + - rscdel: Removed a bunch of random items from fitting in wallets (notably screwdrivers, + cigarettes, suture / mesh / gauze) + - rscadd: Ship keys and derringers can now fit in wallets +2024-08-26: + Aquidu: + - rscadd: Rations now have icons that help show the contents. + - rscadd: Condiments and drink mixes now have colors when full to help show the + contents. + - rscadd: Unique sprites for the ration heater, drink packs ration drinks, and "side" + category rations. + - code_imp: Changes the sound effect for opening the drink ration to the bottle + cap sound to line up with the icon. + DIB-DOG: + - rscadd: Added a standard vest to the armory office locker + - rscadd: Added a Security camera console to the bridge + - balance: Silkenweave jackets and Betzu hats now provide cold protection but no + armor + - balance: Crying Sun now has 4 combustion/2 ion engines instead of 2/4 + - bugfix: Fixes turrets on the Crying Sun and its subshuttle, the Nail. + FalloutFalcon, MrSamu99, Fikou: + - rscadd: a few shipments of MOD control units have found there way to the frontier, + premium versions of existing hard suits with the latest tech! + - rscadd: Ported modsuits from tg, no mapped stuff yet + Gristlebee: + - balance: Durand shield consumes less charge on being hit, passive drain increased. + - bugfix: Mechs consume the correct amount of power on movement. + - refactor: normal_step_energy_drain is now base_step_energy_drain + - rscadd: Grills can now cook food. + - rscdel: Xeno-energy working as grill fuel. + - balance: Outpost food costs + - bugfix: Grills + Ms-Mee: + - bugfix: fixed handle_quirk_conflict behavior + Sadhorizon: + - bugfix: Gloves now show up in the loadout preview. + - rscadd: Brown gloves were added to the loadout. + - tweak: Moved everything out of autolathe contraband - you no longer have to hack + it, ever. + - rscdel: Removed foilhat, flamethrower, electropack, .357 casing and slime scanner + from the autolathe. + - rscadd: Added a bunch of new items to the loadout. + - tweak: Changed the description of red suspenders. + - rscadd: Ihejirka space outpost now has player-accessible cryogenics. + SomeguyManperson: + - balance: wormholes on the overmap no longer decay when used + Thera-Pissed: + - code_imp: TEG efficiency now depends on temperature delta. + Vekter: + - bugfix: Removed an extra fire extinguisher from the crew quarters on the IRMV + Talos. +2024-08-27: + Baystation12, Kapu1178, rye-rice: + - rscadd: Particles! + - rscadd: Bleeding has better feedback + - rscadd: Bone breaking now has sound effects + - rscadd: Getting shot now throws blood squirts! Live through the somme for REAL + this time! + - balance: gibbing no longer destroys your chest, no more legion transfers! + - bugfix: Lava particles should no longer destroy your FPS + FalloutFalcon: + - balance: Ballistic weapons now have a minimum camera shake. + - bugfix: Gunslinger now functions as intended. +2024-08-28: + Anticept: + - bugfix: Adjusted the Box Hospital Ship's engineering layout so that it's less + jank, and the power system doesn't loop on itself anymore. + FalloutFalcon: + - rscdel: Removed blob and alot of stuff close to blob + Gristlebee: + - rscadd: Weapon cells can be inserted directly into weapon chargers to charge them. + - bugfix: e40s not charging in weapons rechargers. + firebudgy: + - bugfix: Medical Examinations via Flashlight is now an option again. Check eye + health or see what's in someone's mouth! + meemofcourse: + - rscadd: Vox lore blurb + - bugfix: Inconsistent capitalization when speaking due to guestbook + - code_imp: Changed how the game recognizes Vox and Sarathi age + thgvr: + - imageadd: Kepori hardsuits now have a fallback icon +2024-08-29: + Apogee-dev: + - balance: SUNS and SolCon armor now uses standard armor rather than bulletproof + - balance: Normalized armor values between various faction helmets, coats, and vests + - balance: Armored coats now provide armor protection for the chest and groin only; + environmental protection unchanged + - bugfix: removed armor from some overlooked berets and soft hats + - refactor: Renamed the Mauler exosuit and several exosuit weapons to avoid confusion + Gristlebee: + - rscadd: Black Market Stock Cycling and item weighting + - rscadd: New black market stock + - rscadd: Tech and Ammo tab + - rscadd: Dead Drops + - rscadd: LTRSBT moved to the Black Market Catalogue + - rscadd: LTSRBT Crafting Recipe, 2 BS crystals, a bank card, 5 duct tape, a circuit + board and a network card + - rscadd: Reflavours the disco grenade + - rscadd: variable for powercells to show if they're rigged + - rscdel: Some old blackmarket stock + - balance: LTRSBT shipping cost up to 100 credits + - balance: Launch delivery more reliable + - bugfix: Powerfist works again + - spellcheck: fixed a few typos in the black market + - code_imp: Dynamic Overmap encounters store what ruins were spawned + - code_imp: get_block_portion and get_position_in_margin methods in mapzones.dm + - code_imp: Pair items now handled by a list + - refactor: Black Market item stocking +2024-08-30: + meemofcourse: + - rscadd: Character slots have been raised to 40. BYOND members get 50. diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml new file mode 100644 index 000000000000..52b3cbfbf679 --- /dev/null +++ b/html/changelogs/archive/2024-09.yml @@ -0,0 +1,220 @@ +2024-09-04: + generalthrax: + - balance: E-40 is now slightly less expensive +2024-09-05: + Apogee-dev: + - balance: Removed electrical insulation from all gloves except insulated gloves + - balance: Removed siemens coefficient from hardsuits, except for engi atmos and + CE + - balance: Added siemens coefficient to engineer space suits + - balance: Replaced combat gloves with insulated gloves for some factions' engineer + lockers + Zevotech: + - bugfix: winter biodome and buried shrine ruins no longer have an egregious amount + of creature burrows + zimon9: + - bugfix: fixed typepath for 10mm rubber rounds +2024-09-07: + Martinpachu: + - rscadd: To-do once i get the proper names and all + Zevotech: + - bugfix: The "pulse carbine" in the sandplanet saloon has a sprite again + - tweak: Added some extra mobs to the sandplanet saloon to balance out the money + in it + meemofcourse: + - spellcheck: Human generic names (the ones that show up when you examine someone) + will be prefixed consistently +2024-09-09: + Gristlebee: + - rscadd: Adds the Mauler, Spitter, and Pounder to the black market + ZephyrTFA: + - server: CDN fully operational again after noticing an incorrectly absolute relative + path +2024-09-10: + Apogee-dev: + - balance: Made security hardsuits faster and blood-red hardsuits slower + - balance: Normalized some weird hardsuit speed outliers + - bugfix: NT captain gloves no longer lie about shockproofing + - balance: Reduced hollowpoint damage by 5 (and 8mm Hollowpoint by 6) + FalloutFalcon, MrMelbert, Coiax: + - code_imp: ported alot tg botany code along with gene desc and icons to be used + more soon + - refactor: moves most plant effects into genetics stuff + Gristlebee: + - rscadd: Bandolier auto-loading and examine hint + - rscadd: Welders/Plasmacutters now deal damage to wall integrity to decon + - rscadd: Plasmacutters are now engineering tools and fit in toolbelts. They can + damage ores into slag if used to mine. They are now researched with plasma technology + and advanced plasma technology. + - rscadd: Plasmacutters to cargo for 1250 + - rscadd: Adds plasmacutters to the Mudskipper, Riggs, Talos, Gecko, Heron, Osprey, + Ranger, Hyena, Komodo, Shetland and Twinkleshine + - rscdel: Plasmacutters extra mining range + - bugfix: Plasmacutters can repair prosthetic limbs like welders + - code_imp: Moves damage behavior of concrete walls to closed turfs. Basic walls + are now repaired with a welder. + - code_imp: R-walls d-state tied to their integrity. R-walls can be deconstructed + with plasmacutters. + - code_imp: Crate decon checks for tool behavior rather than a istype check + - rscadd: Gun safeties can be toggled from 1st level storage slots. + zimon9: + - rscadd: Adds a rubbershot box to the outpost market +2024-09-11: + FalloutFalcon: + - rscdel: Removed sheetz. Feel free to send me threats for this crime! + - rscadd: Added faction datums, this will be cool soon! + Sadhorizon: + - rscdel: Removed a lot of cruft from the loadout. + - rscdel: Removed flamethrower slapcrafting. + - rscdel: Removed the Tribal crafting tab (some items were moved to other tabs). + - rscdel: Removed bone club, skull helmet and bone armor from the bone construction + menu. +2024-09-13: + retlaw34, rye-rice, Apogee-dev, generalthrax, Tamamitsune, Nitha(emotional support): + - rscadd: Scarborough Arms for every syndicate faction + - rscadd: New sounds for the commander + - balance: scout's price has been reduced slightly + - rscdel: Donksoft toy guns + - bugfix: You can no longer attach shit to revolvers +2024-09-14: + FalloutFalcon: + - bugfix: no emergency for floor lights untill someone adds a sprite for them! + Gristlebee: + - rscadd: Adds binocs, lavaproof rods, gps, deep core mining scanner, anomaly neutralizer + to exploration cargo + - rscadd: You can hit veins with a deep core scanner on harm intent to stop it tracking, + and hit it again to readd it. + - rscadd: Deep core scanner fits in explorer webbing and explorer suits. + - balance: Outpost Cargo exploration tab + MemeSnorfer: + - rscdel: Removed forced emotes from most reagents. + ToasterBiome: + - bugfix: Centcom Ban DB is now accessible again through PP +2024-09-15: + FalloutFalcon: + - rscdel: Removed useless vars + Gristlebee: + - rscadd: Unsaftied guns can go off on their own. + - code_imp: Changes ammo casing firing code so it's able to work without a user. + Zevotech: + - bugfix: Certain Subshuttle engine prechargers have now been correctly rotated. +2024-09-16: + Gristlebee: + - bugfix: Misfires no longer have 100% chance +2024-09-18: + Bjarl: + - rscadd: You can now purchase concrete mix at the outpost. For concrete making. +2024-09-19: + FalloutFalcon: + - code_imp: ctf machines now only process while ctf is running + Rye-Rice, Gristlebee: + - rscadd: Comfortable Temperature ranges + - imageadd: Temperature HUD alerts +2024-09-21: + Bjarl: + - rscadd: The PGF now has it's own turret offerings. They come in light, normal, + and heavy flavor. + FalloutFalcon: + - code_imp: added ruin tags to ruin map templates to be used soon for stuff. + Gristlebee: + - rscadd: Inteq wintercoats and hoodies in the Talos, Colossus, Vaquero and Valor + uniform lockers + PositiveEntropy: + - rscadd: A new and refurbished Elite Syndicate suit has just been unveiled! + Sadhorizon: + - rscadd: Added "ballistic goggles" - new indie security clothing item. + - imageadd: Added Kepori bulletproof helmet sprites. +2024-09-22: + Bjarl: + - code_imp: Ship Turrets can now be attached to control consoles outside the area + they are in. please look at ship maps for examples on how. + - rscadd: Every single ship with turrets now does the above + PositiveEntropy: + - rscadd: Gorlex Splinters now have winter coats! + Sadhorizon: + - bugfix: Panacea-class is no longer an independent ship. +2024-09-23: + 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 +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 +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 +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. +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 +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! diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml new file mode 100644 index 000000000000..5b95989e7c16 --- /dev/null +++ b/html/changelogs/archive/2024-10.yml @@ -0,0 +1,78 @@ +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 +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. +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 +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 +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 diff --git a/html/font-awesome/README.MD b/html/font-awesome/README.MD index 7d693c36f031..ba9121311d40 100644 --- a/html/font-awesome/README.MD +++ b/html/font-awesome/README.MD @@ -1,6 +1,6 @@ Due to the fact browse_rsc can't create subdirectories, every time you update font-awesome you'll need to change relative webfont references in all.min.css eg ../webfonts/fa-regular-400.ttf => fa-regular-400.ttf (or whatever you call it in asset datum) -Second change is ripping out file types other than woff and eot(ie8) from the css +Second change is ripping out file types other than ~~ woff and eot(ie8)~~ ttf from the css -Finally, removing brand related css. \ No newline at end of file +Finally, removing brand related css. diff --git a/html/font-awesome/css/all.min.css b/html/font-awesome/css/all.min.css index 5c4407984031..7a283f087ca9 100644 --- a/html/font-awesome/css/all.min.css +++ b/html/font-awesome/css/all.min.css @@ -1,4377 +1,6 @@ /*! - * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com + * Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. */ -.fa, -.fab, -.fal, -.far, -.fas { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; -} -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -0.0667em; -} -.fa-xs { - font-size: 0.75em; -} -.fa-sm { - font-size: 0.875em; -} -.fa-1x { - font-size: 1em; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} -.fa-6x { - font-size: 6em; -} -.fa-7x { - font-size: 7em; -} -.fa-8x { - font-size: 8em; -} -.fa-9x { - font-size: 9em; -} -.fa-10x { - font-size: 10em; -} -.fa-fw { - text-align: center; - width: 1.25em; -} -.fa-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0; -} -.fa-ul > li { - position: relative; -} -.fa-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit; -} -.fa-border { - border: 0.08em solid #eee; - border-radius: 0.1em; - padding: 0.2em 0.25em 0.15em; -} -.fa-pull-left { - float: left; -} -.fa-pull-right { - float: right; -} -.fa.fa-pull-left, -.fab.fa-pull-left, -.fal.fa-pull-left, -.far.fa-pull-left, -.fas.fa-pull-left { - margin-right: 0.3em; -} -.fa.fa-pull-right, -.fab.fa-pull-right, -.fal.fa-pull-right, -.far.fa-pull-right, -.fas.fa-pull-right { - margin-left: 0.3em; -} -.fa-spin { - animation: fa-spin 2s infinite linear; -} -.fa-pulse { - animation: fa-spin 1s infinite steps(8); -} -@keyframes fa-spin { - 0% { - transform: rotate(0deg); - } - to { - transform: rotate(1turn); - } -} -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - transform: rotate(90deg); -} -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - transform: rotate(180deg); -} -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - transform: rotate(270deg); -} -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - transform: scaleX(-1); -} -.fa-flip-vertical { - transform: scaleY(-1); -} -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical, -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -} -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1); -} -:root .fa-flip-both, -:root .fa-flip-horizontal, -:root .fa-flip-vertical, -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270 { - filter: none; -} -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; -} -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; -} -.fa-stack-1x { - line-height: inherit; -} -.fa-stack-2x { - font-size: 2em; -} -.fa-inverse { - color: #fff; -} -.fa-500px:before { - content: "\f26e"; -} -.fa-accessible-icon:before { - content: "\f368"; -} -.fa-accusoft:before { - content: "\f369"; -} -.fa-acquisitions-incorporated:before { - content: "\f6af"; -} -.fa-ad:before { - content: "\f641"; -} -.fa-address-book:before { - content: "\f2b9"; -} -.fa-address-card:before { - content: "\f2bb"; -} -.fa-adjust:before { - content: "\f042"; -} -.fa-adn:before { - content: "\f170"; -} -.fa-adobe:before { - content: "\f778"; -} -.fa-adversal:before { - content: "\f36a"; -} -.fa-affiliatetheme:before { - content: "\f36b"; -} -.fa-air-freshener:before { - content: "\f5d0"; -} -.fa-airbnb:before { - content: "\f834"; -} -.fa-algolia:before { - content: "\f36c"; -} -.fa-align-center:before { - content: "\f037"; -} -.fa-align-justify:before { - content: "\f039"; -} -.fa-align-left:before { - content: "\f036"; -} -.fa-align-right:before { - content: "\f038"; -} -.fa-alipay:before { - content: "\f642"; -} -.fa-allergies:before { - content: "\f461"; -} -.fa-amazon:before { - content: "\f270"; -} -.fa-amazon-pay:before { - content: "\f42c"; -} -.fa-ambulance:before { - content: "\f0f9"; -} -.fa-american-sign-language-interpreting:before { - content: "\f2a3"; -} -.fa-amilia:before { - content: "\f36d"; -} -.fa-anchor:before { - content: "\f13d"; -} -.fa-android:before { - content: "\f17b"; -} -.fa-angellist:before { - content: "\f209"; -} -.fa-angle-double-down:before { - content: "\f103"; -} -.fa-angle-double-left:before { - content: "\f100"; -} -.fa-angle-double-right:before { - content: "\f101"; -} -.fa-angle-double-up:before { - content: "\f102"; -} -.fa-angle-down:before { - content: "\f107"; -} -.fa-angle-left:before { - content: "\f104"; -} -.fa-angle-right:before { - content: "\f105"; -} -.fa-angle-up:before { - content: "\f106"; -} -.fa-angry:before { - content: "\f556"; -} -.fa-angrycreative:before { - content: "\f36e"; -} -.fa-angular:before { - content: "\f420"; -} -.fa-ankh:before { - content: "\f644"; -} -.fa-app-store:before { - content: "\f36f"; -} -.fa-app-store-ios:before { - content: "\f370"; -} -.fa-apper:before { - content: "\f371"; -} -.fa-apple:before { - content: "\f179"; -} -.fa-apple-alt:before { - content: "\f5d1"; -} -.fa-apple-pay:before { - content: "\f415"; -} -.fa-archive:before { - content: "\f187"; -} -.fa-archway:before { - content: "\f557"; -} -.fa-arrow-alt-circle-down:before { - content: "\f358"; -} -.fa-arrow-alt-circle-left:before { - content: "\f359"; -} -.fa-arrow-alt-circle-right:before { - content: "\f35a"; -} -.fa-arrow-alt-circle-up:before { - content: "\f35b"; -} -.fa-arrow-circle-down:before { - content: "\f0ab"; -} -.fa-arrow-circle-left:before { - content: "\f0a8"; -} -.fa-arrow-circle-right:before { - content: "\f0a9"; -} -.fa-arrow-circle-up:before { - content: "\f0aa"; -} -.fa-arrow-down:before { - content: "\f063"; -} -.fa-arrow-left:before { - content: "\f060"; -} -.fa-arrow-right:before { - content: "\f061"; -} -.fa-arrow-up:before { - content: "\f062"; -} -.fa-arrows-alt:before { - content: "\f0b2"; -} -.fa-arrows-alt-h:before { - content: "\f337"; -} -.fa-arrows-alt-v:before { - content: "\f338"; -} -.fa-artstation:before { - content: "\f77a"; -} -.fa-assistive-listening-systems:before { - content: "\f2a2"; -} -.fa-asterisk:before { - content: "\f069"; -} -.fa-asymmetrik:before { - content: "\f372"; -} -.fa-at:before { - content: "\f1fa"; -} -.fa-atlas:before { - content: "\f558"; -} -.fa-atlassian:before { - content: "\f77b"; -} -.fa-atom:before { - content: "\f5d2"; -} -.fa-audible:before { - content: "\f373"; -} -.fa-audio-description:before { - content: "\f29e"; -} -.fa-autoprefixer:before { - content: "\f41c"; -} -.fa-avianex:before { - content: "\f374"; -} -.fa-aviato:before { - content: "\f421"; -} -.fa-award:before { - content: "\f559"; -} -.fa-aws:before { - content: "\f375"; -} -.fa-baby:before { - content: "\f77c"; -} -.fa-baby-carriage:before { - content: "\f77d"; -} -.fa-backspace:before { - content: "\f55a"; -} -.fa-backward:before { - content: "\f04a"; -} -.fa-bacon:before { - content: "\f7e5"; -} -.fa-balance-scale:before { - content: "\f24e"; -} -.fa-balance-scale-left:before { - content: "\f515"; -} -.fa-balance-scale-right:before { - content: "\f516"; -} -.fa-ban:before { - content: "\f05e"; -} -.fa-band-aid:before { - content: "\f462"; -} -.fa-bandcamp:before { - content: "\f2d5"; -} -.fa-barcode:before { - content: "\f02a"; -} -.fa-bars:before { - content: "\f0c9"; -} -.fa-baseball-ball:before { - content: "\f433"; -} -.fa-basketball-ball:before { - content: "\f434"; -} -.fa-bath:before { - content: "\f2cd"; -} -.fa-battery-empty:before { - content: "\f244"; -} -.fa-battery-full:before { - content: "\f240"; -} -.fa-battery-half:before { - content: "\f242"; -} -.fa-battery-quarter:before { - content: "\f243"; -} -.fa-battery-three-quarters:before { - content: "\f241"; -} -.fa-battle-net:before { - content: "\f835"; -} -.fa-bed:before { - content: "\f236"; -} -.fa-beer:before { - content: "\f0fc"; -} -.fa-behance:before { - content: "\f1b4"; -} -.fa-behance-square:before { - content: "\f1b5"; -} -.fa-bell:before { - content: "\f0f3"; -} -.fa-bell-slash:before { - content: "\f1f6"; -} -.fa-bezier-curve:before { - content: "\f55b"; -} -.fa-bible:before { - content: "\f647"; -} -.fa-bicycle:before { - content: "\f206"; -} -.fa-biking:before { - content: "\f84a"; -} -.fa-bimobject:before { - content: "\f378"; -} -.fa-binoculars:before { - content: "\f1e5"; -} -.fa-biohazard:before { - content: "\f780"; -} -.fa-birthday-cake:before { - content: "\f1fd"; -} -.fa-bitbucket:before { - content: "\f171"; -} -.fa-bitcoin:before { - content: "\f379"; -} -.fa-bity:before { - content: "\f37a"; -} -.fa-black-tie:before { - content: "\f27e"; -} -.fa-blackberry:before { - content: "\f37b"; -} -.fa-blender:before { - content: "\f517"; -} -.fa-blender-phone:before { - content: "\f6b6"; -} -.fa-blind:before { - content: "\f29d"; -} -.fa-blog:before { - content: "\f781"; -} -.fa-blogger:before { - content: "\f37c"; -} -.fa-blogger-b:before { - content: "\f37d"; -} -.fa-bluetooth:before { - content: "\f293"; -} -.fa-bluetooth-b:before { - content: "\f294"; -} -.fa-bold:before { - content: "\f032"; -} -.fa-bolt:before { - content: "\f0e7"; -} -.fa-bomb:before { - content: "\f1e2"; -} -.fa-bone:before { - content: "\f5d7"; -} -.fa-bong:before { - content: "\f55c"; -} -.fa-book:before { - content: "\f02d"; -} -.fa-book-dead:before { - content: "\f6b7"; -} -.fa-book-medical:before { - content: "\f7e6"; -} -.fa-book-open:before { - content: "\f518"; -} -.fa-book-reader:before { - content: "\f5da"; -} -.fa-bookmark:before { - content: "\f02e"; -} -.fa-bootstrap:before { - content: "\f836"; -} -.fa-border-all:before { - content: "\f84c"; -} -.fa-border-none:before { - content: "\f850"; -} -.fa-border-style:before { - content: "\f853"; -} -.fa-bowling-ball:before { - content: "\f436"; -} -.fa-box:before { - content: "\f466"; -} -.fa-box-open:before { - content: "\f49e"; -} -.fa-boxes:before { - content: "\f468"; -} -.fa-braille:before { - content: "\f2a1"; -} -.fa-brain:before { - content: "\f5dc"; -} -.fa-bread-slice:before { - content: "\f7ec"; -} -.fa-briefcase:before { - content: "\f0b1"; -} -.fa-briefcase-medical:before { - content: "\f469"; -} -.fa-broadcast-tower:before { - content: "\f519"; -} -.fa-broom:before { - content: "\f51a"; -} -.fa-brush:before { - content: "\f55d"; -} -.fa-btc:before { - content: "\f15a"; -} -.fa-buffer:before { - content: "\f837"; -} -.fa-bug:before { - content: "\f188"; -} -.fa-building:before { - content: "\f1ad"; -} -.fa-bullhorn:before { - content: "\f0a1"; -} -.fa-bullseye:before { - content: "\f140"; -} -.fa-burn:before { - content: "\f46a"; -} -.fa-buromobelexperte:before { - content: "\f37f"; -} -.fa-bus:before { - content: "\f207"; -} -.fa-bus-alt:before { - content: "\f55e"; -} -.fa-business-time:before { - content: "\f64a"; -} -.fa-buysellads:before { - content: "\f20d"; -} -.fa-calculator:before { - content: "\f1ec"; -} -.fa-calendar:before { - content: "\f133"; -} -.fa-calendar-alt:before { - content: "\f073"; -} -.fa-calendar-check:before { - content: "\f274"; -} -.fa-calendar-day:before { - content: "\f783"; -} -.fa-calendar-minus:before { - content: "\f272"; -} -.fa-calendar-plus:before { - content: "\f271"; -} -.fa-calendar-times:before { - content: "\f273"; -} -.fa-calendar-week:before { - content: "\f784"; -} -.fa-camera:before { - content: "\f030"; -} -.fa-camera-retro:before { - content: "\f083"; -} -.fa-campground:before { - content: "\f6bb"; -} -.fa-canadian-maple-leaf:before { - content: "\f785"; -} -.fa-candy-cane:before { - content: "\f786"; -} -.fa-cannabis:before { - content: "\f55f"; -} -.fa-capsules:before { - content: "\f46b"; -} -.fa-car:before { - content: "\f1b9"; -} -.fa-car-alt:before { - content: "\f5de"; -} -.fa-car-battery:before { - content: "\f5df"; -} -.fa-car-crash:before { - content: "\f5e1"; -} -.fa-car-side:before { - content: "\f5e4"; -} -.fa-caret-down:before { - content: "\f0d7"; -} -.fa-caret-left:before { - content: "\f0d9"; -} -.fa-caret-right:before { - content: "\f0da"; -} -.fa-caret-square-down:before { - content: "\f150"; -} -.fa-caret-square-left:before { - content: "\f191"; -} -.fa-caret-square-right:before { - content: "\f152"; -} -.fa-caret-square-up:before { - content: "\f151"; -} -.fa-caret-up:before { - content: "\f0d8"; -} -.fa-carrot:before { - content: "\f787"; -} -.fa-cart-arrow-down:before { - content: "\f218"; -} -.fa-cart-plus:before { - content: "\f217"; -} -.fa-cash-register:before { - content: "\f788"; -} -.fa-cat:before { - content: "\f6be"; -} -.fa-cc-amazon-pay:before { - content: "\f42d"; -} -.fa-cc-amex:before { - content: "\f1f3"; -} -.fa-cc-apple-pay:before { - content: "\f416"; -} -.fa-cc-diners-club:before { - content: "\f24c"; -} -.fa-cc-discover:before { - content: "\f1f2"; -} -.fa-cc-jcb:before { - content: "\f24b"; -} -.fa-cc-mastercard:before { - content: "\f1f1"; -} -.fa-cc-paypal:before { - content: "\f1f4"; -} -.fa-cc-stripe:before { - content: "\f1f5"; -} -.fa-cc-visa:before { - content: "\f1f0"; -} -.fa-centercode:before { - content: "\f380"; -} -.fa-centos:before { - content: "\f789"; -} -.fa-certificate:before { - content: "\f0a3"; -} -.fa-chair:before { - content: "\f6c0"; -} -.fa-chalkboard:before { - content: "\f51b"; -} -.fa-chalkboard-teacher:before { - content: "\f51c"; -} -.fa-charging-station:before { - content: "\f5e7"; -} -.fa-chart-area:before { - content: "\f1fe"; -} -.fa-chart-bar:before { - content: "\f080"; -} -.fa-chart-line:before { - content: "\f201"; -} -.fa-chart-pie:before { - content: "\f200"; -} -.fa-check:before { - content: "\f00c"; -} -.fa-check-circle:before { - content: "\f058"; -} -.fa-check-double:before { - content: "\f560"; -} -.fa-check-square:before { - content: "\f14a"; -} -.fa-cheese:before { - content: "\f7ef"; -} -.fa-chess:before { - content: "\f439"; -} -.fa-chess-bishop:before { - content: "\f43a"; -} -.fa-chess-board:before { - content: "\f43c"; -} -.fa-chess-king:before { - content: "\f43f"; -} -.fa-chess-knight:before { - content: "\f441"; -} -.fa-chess-pawn:before { - content: "\f443"; -} -.fa-chess-queen:before { - content: "\f445"; -} -.fa-chess-rook:before { - content: "\f447"; -} -.fa-chevron-circle-down:before { - content: "\f13a"; -} -.fa-chevron-circle-left:before { - content: "\f137"; -} -.fa-chevron-circle-right:before { - content: "\f138"; -} -.fa-chevron-circle-up:before { - content: "\f139"; -} -.fa-chevron-down:before { - content: "\f078"; -} -.fa-chevron-left:before { - content: "\f053"; -} -.fa-chevron-right:before { - content: "\f054"; -} -.fa-chevron-up:before { - content: "\f077"; -} -.fa-child:before { - content: "\f1ae"; -} -.fa-chrome:before { - content: "\f268"; -} -.fa-chromecast:before { - content: "\f838"; -} -.fa-church:before { - content: "\f51d"; -} -.fa-circle:before { - content: "\f111"; -} -.fa-circle-notch:before { - content: "\f1ce"; -} -.fa-city:before { - content: "\f64f"; -} -.fa-clinic-medical:before { - content: "\f7f2"; -} -.fa-clipboard:before { - content: "\f328"; -} -.fa-clipboard-check:before { - content: "\f46c"; -} -.fa-clipboard-list:before { - content: "\f46d"; -} -.fa-clock:before { - content: "\f017"; -} -.fa-clone:before { - content: "\f24d"; -} -.fa-closed-captioning:before { - content: "\f20a"; -} -.fa-cloud:before { - content: "\f0c2"; -} -.fa-cloud-download-alt:before { - content: "\f381"; -} -.fa-cloud-meatball:before { - content: "\f73b"; -} -.fa-cloud-moon:before { - content: "\f6c3"; -} -.fa-cloud-moon-rain:before { - content: "\f73c"; -} -.fa-cloud-rain:before { - content: "\f73d"; -} -.fa-cloud-showers-heavy:before { - content: "\f740"; -} -.fa-cloud-sun:before { - content: "\f6c4"; -} -.fa-cloud-sun-rain:before { - content: "\f743"; -} -.fa-cloud-upload-alt:before { - content: "\f382"; -} -.fa-cloudscale:before { - content: "\f383"; -} -.fa-cloudsmith:before { - content: "\f384"; -} -.fa-cloudversify:before { - content: "\f385"; -} -.fa-cocktail:before { - content: "\f561"; -} -.fa-code:before { - content: "\f121"; -} -.fa-code-branch:before { - content: "\f126"; -} -.fa-codepen:before { - content: "\f1cb"; -} -.fa-codiepie:before { - content: "\f284"; -} -.fa-coffee:before { - content: "\f0f4"; -} -.fa-cog:before { - content: "\f013"; -} -.fa-cogs:before { - content: "\f085"; -} -.fa-coins:before { - content: "\f51e"; -} -.fa-columns:before { - content: "\f0db"; -} -.fa-comment:before { - content: "\f075"; -} -.fa-comment-alt:before { - content: "\f27a"; -} -.fa-comment-dollar:before { - content: "\f651"; -} -.fa-comment-dots:before { - content: "\f4ad"; -} -.fa-comment-medical:before { - content: "\f7f5"; -} -.fa-comment-slash:before { - content: "\f4b3"; -} -.fa-comments:before { - content: "\f086"; -} -.fa-comments-dollar:before { - content: "\f653"; -} -.fa-compact-disc:before { - content: "\f51f"; -} -.fa-compass:before { - content: "\f14e"; -} -.fa-compress:before { - content: "\f066"; -} -.fa-compress-arrows-alt:before { - content: "\f78c"; -} -.fa-concierge-bell:before { - content: "\f562"; -} -.fa-confluence:before { - content: "\f78d"; -} -.fa-connectdevelop:before { - content: "\f20e"; -} -.fa-contao:before { - content: "\f26d"; -} -.fa-cookie:before { - content: "\f563"; -} -.fa-cookie-bite:before { - content: "\f564"; -} -.fa-copy:before { - content: "\f0c5"; -} -.fa-copyright:before { - content: "\f1f9"; -} -.fa-couch:before { - content: "\f4b8"; -} -.fa-cpanel:before { - content: "\f388"; -} -.fa-creative-commons:before { - content: "\f25e"; -} -.fa-creative-commons-by:before { - content: "\f4e7"; -} -.fa-creative-commons-nc:before { - content: "\f4e8"; -} -.fa-creative-commons-nc-eu:before { - content: "\f4e9"; -} -.fa-creative-commons-nc-jp:before { - content: "\f4ea"; -} -.fa-creative-commons-nd:before { - content: "\f4eb"; -} -.fa-creative-commons-pd:before { - content: "\f4ec"; -} -.fa-creative-commons-pd-alt:before { - content: "\f4ed"; -} -.fa-creative-commons-remix:before { - content: "\f4ee"; -} -.fa-creative-commons-sa:before { - content: "\f4ef"; -} -.fa-creative-commons-sampling:before { - content: "\f4f0"; -} -.fa-creative-commons-sampling-plus:before { - content: "\f4f1"; -} -.fa-creative-commons-share:before { - content: "\f4f2"; -} -.fa-creative-commons-zero:before { - content: "\f4f3"; -} -.fa-credit-card:before { - content: "\f09d"; -} -.fa-critical-role:before { - content: "\f6c9"; -} -.fa-crop:before { - content: "\f125"; -} -.fa-crop-alt:before { - content: "\f565"; -} -.fa-cross:before { - content: "\f654"; -} -.fa-crosshairs:before { - content: "\f05b"; -} -.fa-crow:before { - content: "\f520"; -} -.fa-crown:before { - content: "\f521"; -} -.fa-crutch:before { - content: "\f7f7"; -} -.fa-css3:before { - content: "\f13c"; -} -.fa-css3-alt:before { - content: "\f38b"; -} -.fa-cube:before { - content: "\f1b2"; -} -.fa-cubes:before { - content: "\f1b3"; -} -.fa-cut:before { - content: "\f0c4"; -} -.fa-cuttlefish:before { - content: "\f38c"; -} -.fa-d-and-d:before { - content: "\f38d"; -} -.fa-d-and-d-beyond:before { - content: "\f6ca"; -} -.fa-dashcube:before { - content: "\f210"; -} -.fa-database:before { - content: "\f1c0"; -} -.fa-deaf:before { - content: "\f2a4"; -} -.fa-delicious:before { - content: "\f1a5"; -} -.fa-democrat:before { - content: "\f747"; -} -.fa-deploydog:before { - content: "\f38e"; -} -.fa-deskpro:before { - content: "\f38f"; -} -.fa-desktop:before { - content: "\f108"; -} -.fa-dev:before { - content: "\f6cc"; -} -.fa-deviantart:before { - content: "\f1bd"; -} -.fa-dharmachakra:before { - content: "\f655"; -} -.fa-dhl:before { - content: "\f790"; -} -.fa-diagnoses:before { - content: "\f470"; -} -.fa-diaspora:before { - content: "\f791"; -} -.fa-dice:before { - content: "\f522"; -} -.fa-dice-d20:before { - content: "\f6cf"; -} -.fa-dice-d6:before { - content: "\f6d1"; -} -.fa-dice-five:before { - content: "\f523"; -} -.fa-dice-four:before { - content: "\f524"; -} -.fa-dice-one:before { - content: "\f525"; -} -.fa-dice-six:before { - content: "\f526"; -} -.fa-dice-three:before { - content: "\f527"; -} -.fa-dice-two:before { - content: "\f528"; -} -.fa-digg:before { - content: "\f1a6"; -} -.fa-digital-ocean:before { - content: "\f391"; -} -.fa-digital-tachograph:before { - content: "\f566"; -} -.fa-directions:before { - content: "\f5eb"; -} -.fa-discord:before { - content: "\f392"; -} -.fa-discourse:before { - content: "\f393"; -} -.fa-divide:before { - content: "\f529"; -} -.fa-dizzy:before { - content: "\f567"; -} -.fa-dna:before { - content: "\f471"; -} -.fa-dochub:before { - content: "\f394"; -} -.fa-docker:before { - content: "\f395"; -} -.fa-dog:before { - content: "\f6d3"; -} -.fa-dollar-sign:before { - content: "\f155"; -} -.fa-dolly:before { - content: "\f472"; -} -.fa-dolly-flatbed:before { - content: "\f474"; -} -.fa-donate:before { - content: "\f4b9"; -} -.fa-door-closed:before { - content: "\f52a"; -} -.fa-door-open:before { - content: "\f52b"; -} -.fa-dot-circle:before { - content: "\f192"; -} -.fa-dove:before { - content: "\f4ba"; -} -.fa-download:before { - content: "\f019"; -} -.fa-draft2digital:before { - content: "\f396"; -} -.fa-drafting-compass:before { - content: "\f568"; -} -.fa-dragon:before { - content: "\f6d5"; -} -.fa-draw-polygon:before { - content: "\f5ee"; -} -.fa-dribbble:before { - content: "\f17d"; -} -.fa-dribbble-square:before { - content: "\f397"; -} -.fa-dropbox:before { - content: "\f16b"; -} -.fa-drum:before { - content: "\f569"; -} -.fa-drum-steelpan:before { - content: "\f56a"; -} -.fa-drumstick-bite:before { - content: "\f6d7"; -} -.fa-drupal:before { - content: "\f1a9"; -} -.fa-dumbbell:before { - content: "\f44b"; -} -.fa-dumpster:before { - content: "\f793"; -} -.fa-dumpster-fire:before { - content: "\f794"; -} -.fa-dungeon:before { - content: "\f6d9"; -} -.fa-dyalog:before { - content: "\f399"; -} -.fa-earlybirds:before { - content: "\f39a"; -} -.fa-ebay:before { - content: "\f4f4"; -} -.fa-edge:before { - content: "\f282"; -} -.fa-edit:before { - content: "\f044"; -} -.fa-egg:before { - content: "\f7fb"; -} -.fa-eject:before { - content: "\f052"; -} -.fa-elementor:before { - content: "\f430"; -} -.fa-ellipsis-h:before { - content: "\f141"; -} -.fa-ellipsis-v:before { - content: "\f142"; -} -.fa-ello:before { - content: "\f5f1"; -} -.fa-ember:before { - content: "\f423"; -} -.fa-empire:before { - content: "\f1d1"; -} -.fa-envelope:before { - content: "\f0e0"; -} -.fa-envelope-open:before { - content: "\f2b6"; -} -.fa-envelope-open-text:before { - content: "\f658"; -} -.fa-envelope-square:before { - content: "\f199"; -} -.fa-envira:before { - content: "\f299"; -} -.fa-equals:before { - content: "\f52c"; -} -.fa-eraser:before { - content: "\f12d"; -} -.fa-erlang:before { - content: "\f39d"; -} -.fa-ethereum:before { - content: "\f42e"; -} -.fa-ethernet:before { - content: "\f796"; -} -.fa-etsy:before { - content: "\f2d7"; -} -.fa-euro-sign:before { - content: "\f153"; -} -.fa-evernote:before { - content: "\f839"; -} -.fa-exchange-alt:before { - content: "\f362"; -} -.fa-exclamation:before { - content: "\f12a"; -} -.fa-exclamation-circle:before { - content: "\f06a"; -} -.fa-exclamation-triangle:before { - content: "\f071"; -} -.fa-expand:before { - content: "\f065"; -} -.fa-expand-arrows-alt:before { - content: "\f31e"; -} -.fa-expeditedssl:before { - content: "\f23e"; -} -.fa-external-link-alt:before { - content: "\f35d"; -} -.fa-external-link-square-alt:before { - content: "\f360"; -} -.fa-eye:before { - content: "\f06e"; -} -.fa-eye-dropper:before { - content: "\f1fb"; -} -.fa-eye-slash:before { - content: "\f070"; -} -.fa-facebook:before { - content: "\f09a"; -} -.fa-facebook-f:before { - content: "\f39e"; -} -.fa-facebook-messenger:before { - content: "\f39f"; -} -.fa-facebook-square:before { - content: "\f082"; -} -.fa-fan:before { - content: "\f863"; -} -.fa-fantasy-flight-games:before { - content: "\f6dc"; -} -.fa-fast-backward:before { - content: "\f049"; -} -.fa-fast-forward:before { - content: "\f050"; -} -.fa-fax:before { - content: "\f1ac"; -} -.fa-feather:before { - content: "\f52d"; -} -.fa-feather-alt:before { - content: "\f56b"; -} -.fa-fedex:before { - content: "\f797"; -} -.fa-fedora:before { - content: "\f798"; -} -.fa-female:before { - content: "\f182"; -} -.fa-fighter-jet:before { - content: "\f0fb"; -} -.fa-figma:before { - content: "\f799"; -} -.fa-file:before { - content: "\f15b"; -} -.fa-file-alt:before { - content: "\f15c"; -} -.fa-file-archive:before { - content: "\f1c6"; -} -.fa-file-audio:before { - content: "\f1c7"; -} -.fa-file-code:before { - content: "\f1c9"; -} -.fa-file-contract:before { - content: "\f56c"; -} -.fa-file-csv:before { - content: "\f6dd"; -} -.fa-file-download:before { - content: "\f56d"; -} -.fa-file-excel:before { - content: "\f1c3"; -} -.fa-file-export:before { - content: "\f56e"; -} -.fa-file-image:before { - content: "\f1c5"; -} -.fa-file-import:before { - content: "\f56f"; -} -.fa-file-invoice:before { - content: "\f570"; -} -.fa-file-invoice-dollar:before { - content: "\f571"; -} -.fa-file-medical:before { - content: "\f477"; -} -.fa-file-medical-alt:before { - content: "\f478"; -} -.fa-file-pdf:before { - content: "\f1c1"; -} -.fa-file-powerpoint:before { - content: "\f1c4"; -} -.fa-file-prescription:before { - content: "\f572"; -} -.fa-file-signature:before { - content: "\f573"; -} -.fa-file-upload:before { - content: "\f574"; -} -.fa-file-video:before { - content: "\f1c8"; -} -.fa-file-word:before { - content: "\f1c2"; -} -.fa-fill:before { - content: "\f575"; -} -.fa-fill-drip:before { - content: "\f576"; -} -.fa-film:before { - content: "\f008"; -} -.fa-filter:before { - content: "\f0b0"; -} -.fa-fingerprint:before { - content: "\f577"; -} -.fa-fire:before { - content: "\f06d"; -} -.fa-fire-alt:before { - content: "\f7e4"; -} -.fa-fire-extinguisher:before { - content: "\f134"; -} -.fa-firefox:before { - content: "\f269"; -} -.fa-first-aid:before { - content: "\f479"; -} -.fa-first-order:before { - content: "\f2b0"; -} -.fa-first-order-alt:before { - content: "\f50a"; -} -.fa-firstdraft:before { - content: "\f3a1"; -} -.fa-fish:before { - content: "\f578"; -} -.fa-fist-raised:before { - content: "\f6de"; -} -.fa-flag:before { - content: "\f024"; -} -.fa-flag-checkered:before { - content: "\f11e"; -} -.fa-flag-usa:before { - content: "\f74d"; -} -.fa-flask:before { - content: "\f0c3"; -} -.fa-flickr:before { - content: "\f16e"; -} -.fa-flipboard:before { - content: "\f44d"; -} -.fa-flushed:before { - content: "\f579"; -} -.fa-fly:before { - content: "\f417"; -} -.fa-folder:before { - content: "\f07b"; -} -.fa-folder-minus:before { - content: "\f65d"; -} -.fa-folder-open:before { - content: "\f07c"; -} -.fa-folder-plus:before { - content: "\f65e"; -} -.fa-font:before { - content: "\f031"; -} -.fa-font-awesome:before { - content: "\f2b4"; -} -.fa-font-awesome-alt:before { - content: "\f35c"; -} -.fa-font-awesome-flag:before { - content: "\f425"; -} -.fa-font-awesome-logo-full:before { - content: "\f4e6"; -} -.fa-fonticons:before { - content: "\f280"; -} -.fa-fonticons-fi:before { - content: "\f3a2"; -} -.fa-football-ball:before { - content: "\f44e"; -} -.fa-fort-awesome:before { - content: "\f286"; -} -.fa-fort-awesome-alt:before { - content: "\f3a3"; -} -.fa-forumbee:before { - content: "\f211"; -} -.fa-forward:before { - content: "\f04e"; -} -.fa-foursquare:before { - content: "\f180"; -} -.fa-free-code-camp:before { - content: "\f2c5"; -} -.fa-freebsd:before { - content: "\f3a4"; -} -.fa-frog:before { - content: "\f52e"; -} -.fa-frown:before { - content: "\f119"; -} -.fa-frown-open:before { - content: "\f57a"; -} -.fa-fulcrum:before { - content: "\f50b"; -} -.fa-funnel-dollar:before { - content: "\f662"; -} -.fa-futbol:before { - content: "\f1e3"; -} -.fa-galactic-republic:before { - content: "\f50c"; -} -.fa-galactic-senate:before { - content: "\f50d"; -} -.fa-gamepad:before { - content: "\f11b"; -} -.fa-gas-pump:before { - content: "\f52f"; -} -.fa-gavel:before { - content: "\f0e3"; -} -.fa-gem:before { - content: "\f3a5"; -} -.fa-genderless:before { - content: "\f22d"; -} -.fa-get-pocket:before { - content: "\f265"; -} -.fa-gg:before { - content: "\f260"; -} -.fa-gg-circle:before { - content: "\f261"; -} -.fa-ghost:before { - content: "\f6e2"; -} -.fa-gift:before { - content: "\f06b"; -} -.fa-gifts:before { - content: "\f79c"; -} -.fa-git:before { - content: "\f1d3"; -} -.fa-git-alt:before { - content: "\f841"; -} -.fa-git-square:before { - content: "\f1d2"; -} -.fa-github:before { - content: "\f09b"; -} -.fa-github-alt:before { - content: "\f113"; -} -.fa-github-square:before { - content: "\f092"; -} -.fa-gitkraken:before { - content: "\f3a6"; -} -.fa-gitlab:before { - content: "\f296"; -} -.fa-gitter:before { - content: "\f426"; -} -.fa-glass-cheers:before { - content: "\f79f"; -} -.fa-glass-martini:before { - content: "\f000"; -} -.fa-glass-martini-alt:before { - content: "\f57b"; -} -.fa-glass-whiskey:before { - content: "\f7a0"; -} -.fa-glasses:before { - content: "\f530"; -} -.fa-glide:before { - content: "\f2a5"; -} -.fa-glide-g:before { - content: "\f2a6"; -} -.fa-globe:before { - content: "\f0ac"; -} -.fa-globe-africa:before { - content: "\f57c"; -} -.fa-globe-americas:before { - content: "\f57d"; -} -.fa-globe-asia:before { - content: "\f57e"; -} -.fa-globe-europe:before { - content: "\f7a2"; -} -.fa-gofore:before { - content: "\f3a7"; -} -.fa-golf-ball:before { - content: "\f450"; -} -.fa-goodreads:before { - content: "\f3a8"; -} -.fa-goodreads-g:before { - content: "\f3a9"; -} -.fa-google:before { - content: "\f1a0"; -} -.fa-google-drive:before { - content: "\f3aa"; -} -.fa-google-play:before { - content: "\f3ab"; -} -.fa-google-plus:before { - content: "\f2b3"; -} -.fa-google-plus-g:before { - content: "\f0d5"; -} -.fa-google-plus-square:before { - content: "\f0d4"; -} -.fa-google-wallet:before { - content: "\f1ee"; -} -.fa-gopuram:before { - content: "\f664"; -} -.fa-graduation-cap:before { - content: "\f19d"; -} -.fa-gratipay:before { - content: "\f184"; -} -.fa-grav:before { - content: "\f2d6"; -} -.fa-greater-than:before { - content: "\f531"; -} -.fa-greater-than-equal:before { - content: "\f532"; -} -.fa-grimace:before { - content: "\f57f"; -} -.fa-grin:before { - content: "\f580"; -} -.fa-grin-alt:before { - content: "\f581"; -} -.fa-grin-beam:before { - content: "\f582"; -} -.fa-grin-beam-sweat:before { - content: "\f583"; -} -.fa-grin-hearts:before { - content: "\f584"; -} -.fa-grin-squint:before { - content: "\f585"; -} -.fa-grin-squint-tears:before { - content: "\f586"; -} -.fa-grin-stars:before { - content: "\f587"; -} -.fa-grin-tears:before { - content: "\f588"; -} -.fa-grin-tongue:before { - content: "\f589"; -} -.fa-grin-tongue-squint:before { - content: "\f58a"; -} -.fa-grin-tongue-wink:before { - content: "\f58b"; -} -.fa-grin-wink:before { - content: "\f58c"; -} -.fa-grip-horizontal:before { - content: "\f58d"; -} -.fa-grip-lines:before { - content: "\f7a4"; -} -.fa-grip-lines-vertical:before { - content: "\f7a5"; -} -.fa-grip-vertical:before { - content: "\f58e"; -} -.fa-gripfire:before { - content: "\f3ac"; -} -.fa-grunt:before { - content: "\f3ad"; -} -.fa-guitar:before { - content: "\f7a6"; -} -.fa-gulp:before { - content: "\f3ae"; -} -.fa-h-square:before { - content: "\f0fd"; -} -.fa-hacker-news:before { - content: "\f1d4"; -} -.fa-hacker-news-square:before { - content: "\f3af"; -} -.fa-hackerrank:before { - content: "\f5f7"; -} -.fa-hamburger:before { - content: "\f805"; -} -.fa-hammer:before { - content: "\f6e3"; -} -.fa-hamsa:before { - content: "\f665"; -} -.fa-hand-holding:before { - content: "\f4bd"; -} -.fa-hand-holding-heart:before { - content: "\f4be"; -} -.fa-hand-holding-usd:before { - content: "\f4c0"; -} -.fa-hand-lizard:before { - content: "\f258"; -} -.fa-hand-middle-finger:before { - content: "\f806"; -} -.fa-hand-paper:before { - content: "\f256"; -} -.fa-hand-peace:before { - content: "\f25b"; -} -.fa-hand-point-down:before { - content: "\f0a7"; -} -.fa-hand-point-left:before { - content: "\f0a5"; -} -.fa-hand-point-right:before { - content: "\f0a4"; -} -.fa-hand-point-up:before { - content: "\f0a6"; -} -.fa-hand-pointer:before { - content: "\f25a"; -} -.fa-hand-rock:before { - content: "\f255"; -} -.fa-hand-scissors:before { - content: "\f257"; -} -.fa-hand-spock:before { - content: "\f259"; -} -.fa-hands:before { - content: "\f4c2"; -} -.fa-hands-helping:before { - content: "\f4c4"; -} -.fa-handshake:before { - content: "\f2b5"; -} -.fa-hanukiah:before { - content: "\f6e6"; -} -.fa-hard-hat:before { - content: "\f807"; -} -.fa-hashtag:before { - content: "\f292"; -} -.fa-hat-wizard:before { - content: "\f6e8"; -} -.fa-haykal:before { - content: "\f666"; -} -.fa-hdd:before { - content: "\f0a0"; -} -.fa-heading:before { - content: "\f1dc"; -} -.fa-headphones:before { - content: "\f025"; -} -.fa-headphones-alt:before { - content: "\f58f"; -} -.fa-headset:before { - content: "\f590"; -} -.fa-heart:before { - content: "\f004"; -} -.fa-heart-broken:before { - content: "\f7a9"; -} -.fa-heartbeat:before { - content: "\f21e"; -} -.fa-helicopter:before { - content: "\f533"; -} -.fa-highlighter:before { - content: "\f591"; -} -.fa-hiking:before { - content: "\f6ec"; -} -.fa-hippo:before { - content: "\f6ed"; -} -.fa-hips:before { - content: "\f452"; -} -.fa-hire-a-helper:before { - content: "\f3b0"; -} -.fa-history:before { - content: "\f1da"; -} -.fa-hockey-puck:before { - content: "\f453"; -} -.fa-holly-berry:before { - content: "\f7aa"; -} -.fa-home:before { - content: "\f015"; -} -.fa-hooli:before { - content: "\f427"; -} -.fa-hornbill:before { - content: "\f592"; -} -.fa-horse:before { - content: "\f6f0"; -} -.fa-horse-head:before { - content: "\f7ab"; -} -.fa-hospital:before { - content: "\f0f8"; -} -.fa-hospital-alt:before { - content: "\f47d"; -} -.fa-hospital-symbol:before { - content: "\f47e"; -} -.fa-hot-tub:before { - content: "\f593"; -} -.fa-hotdog:before { - content: "\f80f"; -} -.fa-hotel:before { - content: "\f594"; -} -.fa-hotjar:before { - content: "\f3b1"; -} -.fa-hourglass:before { - content: "\f254"; -} -.fa-hourglass-end:before { - content: "\f253"; -} -.fa-hourglass-half:before { - content: "\f252"; -} -.fa-hourglass-start:before { - content: "\f251"; -} -.fa-house-damage:before { - content: "\f6f1"; -} -.fa-houzz:before { - content: "\f27c"; -} -.fa-hryvnia:before { - content: "\f6f2"; -} -.fa-html5:before { - content: "\f13b"; -} -.fa-hubspot:before { - content: "\f3b2"; -} -.fa-i-cursor:before { - content: "\f246"; -} -.fa-ice-cream:before { - content: "\f810"; -} -.fa-icicles:before { - content: "\f7ad"; -} -.fa-icons:before { - content: "\f86d"; -} -.fa-id-badge:before { - content: "\f2c1"; -} -.fa-id-card:before { - content: "\f2c2"; -} -.fa-id-card-alt:before { - content: "\f47f"; -} -.fa-igloo:before { - content: "\f7ae"; -} -.fa-image:before { - content: "\f03e"; -} -.fa-images:before { - content: "\f302"; -} -.fa-imdb:before { - content: "\f2d8"; -} -.fa-inbox:before { - content: "\f01c"; -} -.fa-indent:before { - content: "\f03c"; -} -.fa-industry:before { - content: "\f275"; -} -.fa-infinity:before { - content: "\f534"; -} -.fa-info:before { - content: "\f129"; -} -.fa-info-circle:before { - content: "\f05a"; -} -.fa-instagram:before { - content: "\f16d"; -} -.fa-intercom:before { - content: "\f7af"; -} -.fa-internet-explorer:before { - content: "\f26b"; -} -.fa-invision:before { - content: "\f7b0"; -} -.fa-ioxhost:before { - content: "\f208"; -} -.fa-italic:before { - content: "\f033"; -} -.fa-itch-io:before { - content: "\f83a"; -} -.fa-itunes:before { - content: "\f3b4"; -} -.fa-itunes-note:before { - content: "\f3b5"; -} -.fa-java:before { - content: "\f4e4"; -} -.fa-jedi:before { - content: "\f669"; -} -.fa-jedi-order:before { - content: "\f50e"; -} -.fa-jenkins:before { - content: "\f3b6"; -} -.fa-jira:before { - content: "\f7b1"; -} -.fa-joget:before { - content: "\f3b7"; -} -.fa-joint:before { - content: "\f595"; -} -.fa-joomla:before { - content: "\f1aa"; -} -.fa-journal-whills:before { - content: "\f66a"; -} -.fa-js:before { - content: "\f3b8"; -} -.fa-js-square:before { - content: "\f3b9"; -} -.fa-jsfiddle:before { - content: "\f1cc"; -} -.fa-kaaba:before { - content: "\f66b"; -} -.fa-kaggle:before { - content: "\f5fa"; -} -.fa-key:before { - content: "\f084"; -} -.fa-keybase:before { - content: "\f4f5"; -} -.fa-keyboard:before { - content: "\f11c"; -} -.fa-keycdn:before { - content: "\f3ba"; -} -.fa-khanda:before { - content: "\f66d"; -} -.fa-kickstarter:before { - content: "\f3bb"; -} -.fa-kickstarter-k:before { - content: "\f3bc"; -} -.fa-kiss:before { - content: "\f596"; -} -.fa-kiss-beam:before { - content: "\f597"; -} -.fa-kiss-wink-heart:before { - content: "\f598"; -} -.fa-kiwi-bird:before { - content: "\f535"; -} -.fa-korvue:before { - content: "\f42f"; -} -.fa-landmark:before { - content: "\f66f"; -} -.fa-language:before { - content: "\f1ab"; -} -.fa-laptop:before { - content: "\f109"; -} -.fa-laptop-code:before { - content: "\f5fc"; -} -.fa-laptop-medical:before { - content: "\f812"; -} -.fa-laravel:before { - content: "\f3bd"; -} -.fa-lastfm:before { - content: "\f202"; -} -.fa-lastfm-square:before { - content: "\f203"; -} -.fa-laugh:before { - content: "\f599"; -} -.fa-laugh-beam:before { - content: "\f59a"; -} -.fa-laugh-squint:before { - content: "\f59b"; -} -.fa-laugh-wink:before { - content: "\f59c"; -} -.fa-layer-group:before { - content: "\f5fd"; -} -.fa-leaf:before { - content: "\f06c"; -} -.fa-leanpub:before { - content: "\f212"; -} -.fa-lemon:before { - content: "\f094"; -} -.fa-less:before { - content: "\f41d"; -} -.fa-less-than:before { - content: "\f536"; -} -.fa-less-than-equal:before { - content: "\f537"; -} -.fa-level-down-alt:before { - content: "\f3be"; -} -.fa-level-up-alt:before { - content: "\f3bf"; -} -.fa-life-ring:before { - content: "\f1cd"; -} -.fa-lightbulb:before { - content: "\f0eb"; -} -.fa-line:before { - content: "\f3c0"; -} -.fa-link:before { - content: "\f0c1"; -} -.fa-linkedin:before { - content: "\f08c"; -} -.fa-linkedin-in:before { - content: "\f0e1"; -} -.fa-linode:before { - content: "\f2b8"; -} -.fa-linux:before { - content: "\f17c"; -} -.fa-lira-sign:before { - content: "\f195"; -} -.fa-list:before { - content: "\f03a"; -} -.fa-list-alt:before { - content: "\f022"; -} -.fa-list-ol:before { - content: "\f0cb"; -} -.fa-list-ul:before { - content: "\f0ca"; -} -.fa-location-arrow:before { - content: "\f124"; -} -.fa-lock:before { - content: "\f023"; -} -.fa-lock-open:before { - content: "\f3c1"; -} -.fa-long-arrow-alt-down:before { - content: "\f309"; -} -.fa-long-arrow-alt-left:before { - content: "\f30a"; -} -.fa-long-arrow-alt-right:before { - content: "\f30b"; -} -.fa-long-arrow-alt-up:before { - content: "\f30c"; -} -.fa-low-vision:before { - content: "\f2a8"; -} -.fa-luggage-cart:before { - content: "\f59d"; -} -.fa-lyft:before { - content: "\f3c3"; -} -.fa-magento:before { - content: "\f3c4"; -} -.fa-magic:before { - content: "\f0d0"; -} -.fa-magnet:before { - content: "\f076"; -} -.fa-mail-bulk:before { - content: "\f674"; -} -.fa-mailchimp:before { - content: "\f59e"; -} -.fa-male:before { - content: "\f183"; -} -.fa-mandalorian:before { - content: "\f50f"; -} -.fa-map:before { - content: "\f279"; -} -.fa-map-marked:before { - content: "\f59f"; -} -.fa-map-marked-alt:before { - content: "\f5a0"; -} -.fa-map-marker:before { - content: "\f041"; -} -.fa-map-marker-alt:before { - content: "\f3c5"; -} -.fa-map-pin:before { - content: "\f276"; -} -.fa-map-signs:before { - content: "\f277"; -} -.fa-markdown:before { - content: "\f60f"; -} -.fa-marker:before { - content: "\f5a1"; -} -.fa-mars:before { - content: "\f222"; -} -.fa-mars-double:before { - content: "\f227"; -} -.fa-mars-stroke:before { - content: "\f229"; -} -.fa-mars-stroke-h:before { - content: "\f22b"; -} -.fa-mars-stroke-v:before { - content: "\f22a"; -} -.fa-mask:before { - content: "\f6fa"; -} -.fa-mastodon:before { - content: "\f4f6"; -} -.fa-maxcdn:before { - content: "\f136"; -} -.fa-medal:before { - content: "\f5a2"; -} -.fa-medapps:before { - content: "\f3c6"; -} -.fa-medium:before { - content: "\f23a"; -} -.fa-medium-m:before { - content: "\f3c7"; -} -.fa-medkit:before { - content: "\f0fa"; -} -.fa-medrt:before { - content: "\f3c8"; -} -.fa-meetup:before { - content: "\f2e0"; -} -.fa-megaport:before { - content: "\f5a3"; -} -.fa-meh:before { - content: "\f11a"; -} -.fa-meh-blank:before { - content: "\f5a4"; -} -.fa-meh-rolling-eyes:before { - content: "\f5a5"; -} -.fa-memory:before { - content: "\f538"; -} -.fa-mendeley:before { - content: "\f7b3"; -} -.fa-menorah:before { - content: "\f676"; -} -.fa-mercury:before { - content: "\f223"; -} -.fa-meteor:before { - content: "\f753"; -} -.fa-microchip:before { - content: "\f2db"; -} -.fa-microphone:before { - content: "\f130"; -} -.fa-microphone-alt:before { - content: "\f3c9"; -} -.fa-microphone-alt-slash:before { - content: "\f539"; -} -.fa-microphone-slash:before { - content: "\f131"; -} -.fa-microscope:before { - content: "\f610"; -} -.fa-microsoft:before { - content: "\f3ca"; -} -.fa-minus:before { - content: "\f068"; -} -.fa-minus-circle:before { - content: "\f056"; -} -.fa-minus-square:before { - content: "\f146"; -} -.fa-mitten:before { - content: "\f7b5"; -} -.fa-mix:before { - content: "\f3cb"; -} -.fa-mixcloud:before { - content: "\f289"; -} -.fa-mizuni:before { - content: "\f3cc"; -} -.fa-mobile:before { - content: "\f10b"; -} -.fa-mobile-alt:before { - content: "\f3cd"; -} -.fa-modx:before { - content: "\f285"; -} -.fa-monero:before { - content: "\f3d0"; -} -.fa-money-bill:before { - content: "\f0d6"; -} -.fa-money-bill-alt:before { - content: "\f3d1"; -} -.fa-money-bill-wave:before { - content: "\f53a"; -} -.fa-money-bill-wave-alt:before { - content: "\f53b"; -} -.fa-money-check:before { - content: "\f53c"; -} -.fa-money-check-alt:before { - content: "\f53d"; -} -.fa-monument:before { - content: "\f5a6"; -} -.fa-moon:before { - content: "\f186"; -} -.fa-mortar-pestle:before { - content: "\f5a7"; -} -.fa-mosque:before { - content: "\f678"; -} -.fa-motorcycle:before { - content: "\f21c"; -} -.fa-mountain:before { - content: "\f6fc"; -} -.fa-mouse-pointer:before { - content: "\f245"; -} -.fa-mug-hot:before { - content: "\f7b6"; -} -.fa-music:before { - content: "\f001"; -} -.fa-napster:before { - content: "\f3d2"; -} -.fa-neos:before { - content: "\f612"; -} -.fa-network-wired:before { - content: "\f6ff"; -} -.fa-neuter:before { - content: "\f22c"; -} -.fa-newspaper:before { - content: "\f1ea"; -} -.fa-nimblr:before { - content: "\f5a8"; -} -.fa-node:before { - content: "\f419"; -} -.fa-node-js:before { - content: "\f3d3"; -} -.fa-not-equal:before { - content: "\f53e"; -} -.fa-notes-medical:before { - content: "\f481"; -} -.fa-npm:before { - content: "\f3d4"; -} -.fa-ns8:before { - content: "\f3d5"; -} -.fa-nutritionix:before { - content: "\f3d6"; -} -.fa-object-group:before { - content: "\f247"; -} -.fa-object-ungroup:before { - content: "\f248"; -} -.fa-odnoklassniki:before { - content: "\f263"; -} -.fa-odnoklassniki-square:before { - content: "\f264"; -} -.fa-oil-can:before { - content: "\f613"; -} -.fa-old-republic:before { - content: "\f510"; -} -.fa-om:before { - content: "\f679"; -} -.fa-opencart:before { - content: "\f23d"; -} -.fa-openid:before { - content: "\f19b"; -} -.fa-opera:before { - content: "\f26a"; -} -.fa-optin-monster:before { - content: "\f23c"; -} -.fa-osi:before { - content: "\f41a"; -} -.fa-otter:before { - content: "\f700"; -} -.fa-outdent:before { - content: "\f03b"; -} -.fa-page4:before { - content: "\f3d7"; -} -.fa-pagelines:before { - content: "\f18c"; -} -.fa-pager:before { - content: "\f815"; -} -.fa-paint-brush:before { - content: "\f1fc"; -} -.fa-paint-roller:before { - content: "\f5aa"; -} -.fa-palette:before { - content: "\f53f"; -} -.fa-palfed:before { - content: "\f3d8"; -} -.fa-pallet:before { - content: "\f482"; -} -.fa-paper-plane:before { - content: "\f1d8"; -} -.fa-paperclip:before { - content: "\f0c6"; -} -.fa-parachute-box:before { - content: "\f4cd"; -} -.fa-paragraph:before { - content: "\f1dd"; -} -.fa-parking:before { - content: "\f540"; -} -.fa-passport:before { - content: "\f5ab"; -} -.fa-pastafarianism:before { - content: "\f67b"; -} -.fa-paste:before { - content: "\f0ea"; -} -.fa-patreon:before { - content: "\f3d9"; -} -.fa-pause:before { - content: "\f04c"; -} -.fa-pause-circle:before { - content: "\f28b"; -} -.fa-paw:before { - content: "\f1b0"; -} -.fa-paypal:before { - content: "\f1ed"; -} -.fa-peace:before { - content: "\f67c"; -} -.fa-pen:before { - content: "\f304"; -} -.fa-pen-alt:before { - content: "\f305"; -} -.fa-pen-fancy:before { - content: "\f5ac"; -} -.fa-pen-nib:before { - content: "\f5ad"; -} -.fa-pen-square:before { - content: "\f14b"; -} -.fa-pencil-alt:before { - content: "\f303"; -} -.fa-pencil-ruler:before { - content: "\f5ae"; -} -.fa-penny-arcade:before { - content: "\f704"; -} -.fa-people-carry:before { - content: "\f4ce"; -} -.fa-pepper-hot:before { - content: "\f816"; -} -.fa-percent:before { - content: "\f295"; -} -.fa-percentage:before { - content: "\f541"; -} -.fa-periscope:before { - content: "\f3da"; -} -.fa-person-booth:before { - content: "\f756"; -} -.fa-phabricator:before { - content: "\f3db"; -} -.fa-phoenix-framework:before { - content: "\f3dc"; -} -.fa-phoenix-squadron:before { - content: "\f511"; -} -.fa-phone:before { - content: "\f095"; -} -.fa-phone-alt:before { - content: "\f879"; -} -.fa-phone-slash:before { - content: "\f3dd"; -} -.fa-phone-square:before { - content: "\f098"; -} -.fa-phone-square-alt:before { - content: "\f87b"; -} -.fa-phone-volume:before { - content: "\f2a0"; -} -.fa-photo-video:before { - content: "\f87c"; -} -.fa-php:before { - content: "\f457"; -} -.fa-pied-piper:before { - content: "\f2ae"; -} -.fa-pied-piper-alt:before { - content: "\f1a8"; -} -.fa-pied-piper-hat:before { - content: "\f4e5"; -} -.fa-pied-piper-pp:before { - content: "\f1a7"; -} -.fa-piggy-bank:before { - content: "\f4d3"; -} -.fa-pills:before { - content: "\f484"; -} -.fa-pinterest:before { - content: "\f0d2"; -} -.fa-pinterest-p:before { - content: "\f231"; -} -.fa-pinterest-square:before { - content: "\f0d3"; -} -.fa-pizza-slice:before { - content: "\f818"; -} -.fa-place-of-worship:before { - content: "\f67f"; -} -.fa-plane:before { - content: "\f072"; -} -.fa-plane-arrival:before { - content: "\f5af"; -} -.fa-plane-departure:before { - content: "\f5b0"; -} -.fa-play:before { - content: "\f04b"; -} -.fa-play-circle:before { - content: "\f144"; -} -.fa-playstation:before { - content: "\f3df"; -} -.fa-plug:before { - content: "\f1e6"; -} -.fa-plus:before { - content: "\f067"; -} -.fa-plus-circle:before { - content: "\f055"; -} -.fa-plus-square:before { - content: "\f0fe"; -} -.fa-podcast:before { - content: "\f2ce"; -} -.fa-poll:before { - content: "\f681"; -} -.fa-poll-h:before { - content: "\f682"; -} -.fa-poo:before { - content: "\f2fe"; -} -.fa-poo-storm:before { - content: "\f75a"; -} -.fa-poop:before { - content: "\f619"; -} -.fa-portrait:before { - content: "\f3e0"; -} -.fa-pound-sign:before { - content: "\f154"; -} -.fa-power-off:before { - content: "\f011"; -} -.fa-pray:before { - content: "\f683"; -} -.fa-praying-hands:before { - content: "\f684"; -} -.fa-prescription:before { - content: "\f5b1"; -} -.fa-prescription-bottle:before { - content: "\f485"; -} -.fa-prescription-bottle-alt:before { - content: "\f486"; -} -.fa-print:before { - content: "\f02f"; -} -.fa-procedures:before { - content: "\f487"; -} -.fa-product-hunt:before { - content: "\f288"; -} -.fa-project-diagram:before { - content: "\f542"; -} -.fa-pushed:before { - content: "\f3e1"; -} -.fa-puzzle-piece:before { - content: "\f12e"; -} -.fa-python:before { - content: "\f3e2"; -} -.fa-qq:before { - content: "\f1d6"; -} -.fa-qrcode:before { - content: "\f029"; -} -.fa-question:before { - content: "\f128"; -} -.fa-question-circle:before { - content: "\f059"; -} -.fa-quidditch:before { - content: "\f458"; -} -.fa-quinscape:before { - content: "\f459"; -} -.fa-quora:before { - content: "\f2c4"; -} -.fa-quote-left:before { - content: "\f10d"; -} -.fa-quote-right:before { - content: "\f10e"; -} -.fa-quran:before { - content: "\f687"; -} -.fa-r-project:before { - content: "\f4f7"; -} -.fa-radiation:before { - content: "\f7b9"; -} -.fa-radiation-alt:before { - content: "\f7ba"; -} -.fa-rainbow:before { - content: "\f75b"; -} -.fa-random:before { - content: "\f074"; -} -.fa-raspberry-pi:before { - content: "\f7bb"; -} -.fa-ravelry:before { - content: "\f2d9"; -} -.fa-react:before { - content: "\f41b"; -} -.fa-reacteurope:before { - content: "\f75d"; -} -.fa-readme:before { - content: "\f4d5"; -} -.fa-rebel:before { - content: "\f1d0"; -} -.fa-receipt:before { - content: "\f543"; -} -.fa-recycle:before { - content: "\f1b8"; -} -.fa-red-river:before { - content: "\f3e3"; -} -.fa-reddit:before { - content: "\f1a1"; -} -.fa-reddit-alien:before { - content: "\f281"; -} -.fa-reddit-square:before { - content: "\f1a2"; -} -.fa-redhat:before { - content: "\f7bc"; -} -.fa-redo:before { - content: "\f01e"; -} -.fa-redo-alt:before { - content: "\f2f9"; -} -.fa-registered:before { - content: "\f25d"; -} -.fa-remove-format:before { - content: "\f87d"; -} -.fa-renren:before { - content: "\f18b"; -} -.fa-reply:before { - content: "\f3e5"; -} -.fa-reply-all:before { - content: "\f122"; -} -.fa-replyd:before { - content: "\f3e6"; -} -.fa-republican:before { - content: "\f75e"; -} -.fa-researchgate:before { - content: "\f4f8"; -} -.fa-resolving:before { - content: "\f3e7"; -} -.fa-restroom:before { - content: "\f7bd"; -} -.fa-retweet:before { - content: "\f079"; -} -.fa-rev:before { - content: "\f5b2"; -} -.fa-ribbon:before { - content: "\f4d6"; -} -.fa-ring:before { - content: "\f70b"; -} -.fa-road:before { - content: "\f018"; -} -.fa-robot:before { - content: "\f544"; -} -.fa-rocket:before { - content: "\f135"; -} -.fa-rocketchat:before { - content: "\f3e8"; -} -.fa-rockrms:before { - content: "\f3e9"; -} -.fa-route:before { - content: "\f4d7"; -} -.fa-rss:before { - content: "\f09e"; -} -.fa-rss-square:before { - content: "\f143"; -} -.fa-ruble-sign:before { - content: "\f158"; -} -.fa-ruler:before { - content: "\f545"; -} -.fa-ruler-combined:before { - content: "\f546"; -} -.fa-ruler-horizontal:before { - content: "\f547"; -} -.fa-ruler-vertical:before { - content: "\f548"; -} -.fa-running:before { - content: "\f70c"; -} -.fa-rupee-sign:before { - content: "\f156"; -} -.fa-sad-cry:before { - content: "\f5b3"; -} -.fa-sad-tear:before { - content: "\f5b4"; -} -.fa-safari:before { - content: "\f267"; -} -.fa-salesforce:before { - content: "\f83b"; -} -.fa-sass:before { - content: "\f41e"; -} -.fa-satellite:before { - content: "\f7bf"; -} -.fa-satellite-dish:before { - content: "\f7c0"; -} -.fa-save:before { - content: "\f0c7"; -} -.fa-schlix:before { - content: "\f3ea"; -} -.fa-school:before { - content: "\f549"; -} -.fa-screwdriver:before { - content: "\f54a"; -} -.fa-scribd:before { - content: "\f28a"; -} -.fa-scroll:before { - content: "\f70e"; -} -.fa-sd-card:before { - content: "\f7c2"; -} -.fa-search:before { - content: "\f002"; -} -.fa-search-dollar:before { - content: "\f688"; -} -.fa-search-location:before { - content: "\f689"; -} -.fa-search-minus:before { - content: "\f010"; -} -.fa-search-plus:before { - content: "\f00e"; -} -.fa-searchengin:before { - content: "\f3eb"; -} -.fa-seedling:before { - content: "\f4d8"; -} -.fa-sellcast:before { - content: "\f2da"; -} -.fa-sellsy:before { - content: "\f213"; -} -.fa-server:before { - content: "\f233"; -} -.fa-servicestack:before { - content: "\f3ec"; -} -.fa-shapes:before { - content: "\f61f"; -} -.fa-share:before { - content: "\f064"; -} -.fa-share-alt:before { - content: "\f1e0"; -} -.fa-share-alt-square:before { - content: "\f1e1"; -} -.fa-share-square:before { - content: "\f14d"; -} -.fa-shekel-sign:before { - content: "\f20b"; -} -.fa-shield-alt:before { - content: "\f3ed"; -} -.fa-ship:before { - content: "\f21a"; -} -.fa-shipping-fast:before { - content: "\f48b"; -} -.fa-shirtsinbulk:before { - content: "\f214"; -} -.fa-shoe-prints:before { - content: "\f54b"; -} -.fa-shopping-bag:before { - content: "\f290"; -} -.fa-shopping-basket:before { - content: "\f291"; -} -.fa-shopping-cart:before { - content: "\f07a"; -} -.fa-shopware:before { - content: "\f5b5"; -} -.fa-shower:before { - content: "\f2cc"; -} -.fa-shuttle-van:before { - content: "\f5b6"; -} -.fa-sign:before { - content: "\f4d9"; -} -.fa-sign-in-alt:before { - content: "\f2f6"; -} -.fa-sign-language:before { - content: "\f2a7"; -} -.fa-sign-out-alt:before { - content: "\f2f5"; -} -.fa-signal:before { - content: "\f012"; -} -.fa-signature:before { - content: "\f5b7"; -} -.fa-sim-card:before { - content: "\f7c4"; -} -.fa-simplybuilt:before { - content: "\f215"; -} -.fa-sistrix:before { - content: "\f3ee"; -} -.fa-sitemap:before { - content: "\f0e8"; -} -.fa-sith:before { - content: "\f512"; -} -.fa-skating:before { - content: "\f7c5"; -} -.fa-sketch:before { - content: "\f7c6"; -} -.fa-skiing:before { - content: "\f7c9"; -} -.fa-skiing-nordic:before { - content: "\f7ca"; -} -.fa-skull:before { - content: "\f54c"; -} -.fa-skull-crossbones:before { - content: "\f714"; -} -.fa-skyatlas:before { - content: "\f216"; -} -.fa-skype:before { - content: "\f17e"; -} -.fa-slack:before { - content: "\f198"; -} -.fa-slack-hash:before { - content: "\f3ef"; -} -.fa-slash:before { - content: "\f715"; -} -.fa-sleigh:before { - content: "\f7cc"; -} -.fa-sliders-h:before { - content: "\f1de"; -} -.fa-slideshare:before { - content: "\f1e7"; -} -.fa-smile:before { - content: "\f118"; -} -.fa-smile-beam:before { - content: "\f5b8"; -} -.fa-smile-wink:before { - content: "\f4da"; -} -.fa-smog:before { - content: "\f75f"; -} -.fa-smoking:before { - content: "\f48d"; -} -.fa-smoking-ban:before { - content: "\f54d"; -} -.fa-sms:before { - content: "\f7cd"; -} -.fa-snapchat:before { - content: "\f2ab"; -} -.fa-snapchat-ghost:before { - content: "\f2ac"; -} -.fa-snapchat-square:before { - content: "\f2ad"; -} -.fa-snowboarding:before { - content: "\f7ce"; -} -.fa-snowflake:before { - content: "\f2dc"; -} -.fa-snowman:before { - content: "\f7d0"; -} -.fa-snowplow:before { - content: "\f7d2"; -} -.fa-socks:before { - content: "\f696"; -} -.fa-solar-panel:before { - content: "\f5ba"; -} -.fa-sort:before { - content: "\f0dc"; -} -.fa-sort-alpha-down:before { - content: "\f15d"; -} -.fa-sort-alpha-down-alt:before { - content: "\f881"; -} -.fa-sort-alpha-up:before { - content: "\f15e"; -} -.fa-sort-alpha-up-alt:before { - content: "\f882"; -} -.fa-sort-amount-down:before { - content: "\f160"; -} -.fa-sort-amount-down-alt:before { - content: "\f884"; -} -.fa-sort-amount-up:before { - content: "\f161"; -} -.fa-sort-amount-up-alt:before { - content: "\f885"; -} -.fa-sort-down:before { - content: "\f0dd"; -} -.fa-sort-numeric-down:before { - content: "\f162"; -} -.fa-sort-numeric-down-alt:before { - content: "\f886"; -} -.fa-sort-numeric-up:before { - content: "\f163"; -} -.fa-sort-numeric-up-alt:before { - content: "\f887"; -} -.fa-sort-up:before { - content: "\f0de"; -} -.fa-soundcloud:before { - content: "\f1be"; -} -.fa-sourcetree:before { - content: "\f7d3"; -} -.fa-spa:before { - content: "\f5bb"; -} -.fa-space-shuttle:before { - content: "\f197"; -} -.fa-speakap:before { - content: "\f3f3"; -} -.fa-speaker-deck:before { - content: "\f83c"; -} -.fa-spell-check:before { - content: "\f891"; -} -.fa-spider:before { - content: "\f717"; -} -.fa-spinner:before { - content: "\f110"; -} -.fa-splotch:before { - content: "\f5bc"; -} -.fa-spotify:before { - content: "\f1bc"; -} -.fa-spray-can:before { - content: "\f5bd"; -} -.fa-square:before { - content: "\f0c8"; -} -.fa-square-full:before { - content: "\f45c"; -} -.fa-square-root-alt:before { - content: "\f698"; -} -.fa-squarespace:before { - content: "\f5be"; -} -.fa-stack-exchange:before { - content: "\f18d"; -} -.fa-stack-overflow:before { - content: "\f16c"; -} -.fa-stackpath:before { - content: "\f842"; -} -.fa-stamp:before { - content: "\f5bf"; -} -.fa-star:before { - content: "\f005"; -} -.fa-star-and-crescent:before { - content: "\f699"; -} -.fa-star-half:before { - content: "\f089"; -} -.fa-star-half-alt:before { - content: "\f5c0"; -} -.fa-star-of-david:before { - content: "\f69a"; -} -.fa-star-of-life:before { - content: "\f621"; -} -.fa-staylinked:before { - content: "\f3f5"; -} -.fa-steam:before { - content: "\f1b6"; -} -.fa-steam-square:before { - content: "\f1b7"; -} -.fa-steam-symbol:before { - content: "\f3f6"; -} -.fa-step-backward:before { - content: "\f048"; -} -.fa-step-forward:before { - content: "\f051"; -} -.fa-stethoscope:before { - content: "\f0f1"; -} -.fa-sticker-mule:before { - content: "\f3f7"; -} -.fa-sticky-note:before { - content: "\f249"; -} -.fa-stop:before { - content: "\f04d"; -} -.fa-stop-circle:before { - content: "\f28d"; -} -.fa-stopwatch:before { - content: "\f2f2"; -} -.fa-store:before { - content: "\f54e"; -} -.fa-store-alt:before { - content: "\f54f"; -} -.fa-strava:before { - content: "\f428"; -} -.fa-stream:before { - content: "\f550"; -} -.fa-street-view:before { - content: "\f21d"; -} -.fa-strikethrough:before { - content: "\f0cc"; -} -.fa-stripe:before { - content: "\f429"; -} -.fa-stripe-s:before { - content: "\f42a"; -} -.fa-stroopwafel:before { - content: "\f551"; -} -.fa-studiovinari:before { - content: "\f3f8"; -} -.fa-stumbleupon:before { - content: "\f1a4"; -} -.fa-stumbleupon-circle:before { - content: "\f1a3"; -} -.fa-subscript:before { - content: "\f12c"; -} -.fa-subway:before { - content: "\f239"; -} -.fa-suitcase:before { - content: "\f0f2"; -} -.fa-suitcase-rolling:before { - content: "\f5c1"; -} -.fa-sun:before { - content: "\f185"; -} -.fa-superpowers:before { - content: "\f2dd"; -} -.fa-superscript:before { - content: "\f12b"; -} -.fa-supple:before { - content: "\f3f9"; -} -.fa-surprise:before { - content: "\f5c2"; -} -.fa-suse:before { - content: "\f7d6"; -} -.fa-swatchbook:before { - content: "\f5c3"; -} -.fa-swimmer:before { - content: "\f5c4"; -} -.fa-swimming-pool:before { - content: "\f5c5"; -} -.fa-symfony:before { - content: "\f83d"; -} -.fa-synagogue:before { - content: "\f69b"; -} -.fa-sync:before { - content: "\f021"; -} -.fa-sync-alt:before { - content: "\f2f1"; -} -.fa-syringe:before { - content: "\f48e"; -} -.fa-table:before { - content: "\f0ce"; -} -.fa-table-tennis:before { - content: "\f45d"; -} -.fa-tablet:before { - content: "\f10a"; -} -.fa-tablet-alt:before { - content: "\f3fa"; -} -.fa-tablets:before { - content: "\f490"; -} -.fa-tachometer-alt:before { - content: "\f3fd"; -} -.fa-tag:before { - content: "\f02b"; -} -.fa-tags:before { - content: "\f02c"; -} -.fa-tape:before { - content: "\f4db"; -} -.fa-tasks:before { - content: "\f0ae"; -} -.fa-taxi:before { - content: "\f1ba"; -} -.fa-teamspeak:before { - content: "\f4f9"; -} -.fa-teeth:before { - content: "\f62e"; -} -.fa-teeth-open:before { - content: "\f62f"; -} -.fa-telegram:before { - content: "\f2c6"; -} -.fa-telegram-plane:before { - content: "\f3fe"; -} -.fa-temperature-high:before { - content: "\f769"; -} -.fa-temperature-low:before { - content: "\f76b"; -} -.fa-tencent-weibo:before { - content: "\f1d5"; -} -.fa-tenge:before { - content: "\f7d7"; -} -.fa-terminal:before { - content: "\f120"; -} -.fa-text-height:before { - content: "\f034"; -} -.fa-text-width:before { - content: "\f035"; -} -.fa-th:before { - content: "\f00a"; -} -.fa-th-large:before { - content: "\f009"; -} -.fa-th-list:before { - content: "\f00b"; -} -.fa-the-red-yeti:before { - content: "\f69d"; -} -.fa-theater-masks:before { - content: "\f630"; -} -.fa-themeco:before { - content: "\f5c6"; -} -.fa-themeisle:before { - content: "\f2b2"; -} -.fa-thermometer:before { - content: "\f491"; -} -.fa-thermometer-empty:before { - content: "\f2cb"; -} -.fa-thermometer-full:before { - content: "\f2c7"; -} -.fa-thermometer-half:before { - content: "\f2c9"; -} -.fa-thermometer-quarter:before { - content: "\f2ca"; -} -.fa-thermometer-three-quarters:before { - content: "\f2c8"; -} -.fa-think-peaks:before { - content: "\f731"; -} -.fa-thumbs-down:before { - content: "\f165"; -} -.fa-thumbs-up:before { - content: "\f164"; -} -.fa-thumbtack:before { - content: "\f08d"; -} -.fa-ticket-alt:before { - content: "\f3ff"; -} -.fa-times:before { - content: "\f00d"; -} -.fa-times-circle:before { - content: "\f057"; -} -.fa-tint:before { - content: "\f043"; -} -.fa-tint-slash:before { - content: "\f5c7"; -} -.fa-tired:before { - content: "\f5c8"; -} -.fa-toggle-off:before { - content: "\f204"; -} -.fa-toggle-on:before { - content: "\f205"; -} -.fa-toilet:before { - content: "\f7d8"; -} -.fa-toilet-paper:before { - content: "\f71e"; -} -.fa-toolbox:before { - content: "\f552"; -} -.fa-tools:before { - content: "\f7d9"; -} -.fa-tooth:before { - content: "\f5c9"; -} -.fa-torah:before { - content: "\f6a0"; -} -.fa-torii-gate:before { - content: "\f6a1"; -} -.fa-tractor:before { - content: "\f722"; -} -.fa-trade-federation:before { - content: "\f513"; -} -.fa-trademark:before { - content: "\f25c"; -} -.fa-traffic-light:before { - content: "\f637"; -} -.fa-train:before { - content: "\f238"; -} -.fa-tram:before { - content: "\f7da"; -} -.fa-transgender:before { - content: "\f224"; -} -.fa-transgender-alt:before { - content: "\f225"; -} -.fa-trash:before { - content: "\f1f8"; -} -.fa-trash-alt:before { - content: "\f2ed"; -} -.fa-trash-restore:before { - content: "\f829"; -} -.fa-trash-restore-alt:before { - content: "\f82a"; -} -.fa-tree:before { - content: "\f1bb"; -} -.fa-trello:before { - content: "\f181"; -} -.fa-tripadvisor:before { - content: "\f262"; -} -.fa-trophy:before { - content: "\f091"; -} -.fa-truck:before { - content: "\f0d1"; -} -.fa-truck-loading:before { - content: "\f4de"; -} -.fa-truck-monster:before { - content: "\f63b"; -} -.fa-truck-moving:before { - content: "\f4df"; -} -.fa-truck-pickup:before { - content: "\f63c"; -} -.fa-tshirt:before { - content: "\f553"; -} -.fa-tty:before { - content: "\f1e4"; -} -.fa-tumblr:before { - content: "\f173"; -} -.fa-tumblr-square:before { - content: "\f174"; -} -.fa-tv:before { - content: "\f26c"; -} -.fa-twitch:before { - content: "\f1e8"; -} -.fa-twitter:before { - content: "\f099"; -} -.fa-twitter-square:before { - content: "\f081"; -} -.fa-typo3:before { - content: "\f42b"; -} -.fa-uber:before { - content: "\f402"; -} -.fa-ubuntu:before { - content: "\f7df"; -} -.fa-uikit:before { - content: "\f403"; -} -.fa-umbrella:before { - content: "\f0e9"; -} -.fa-umbrella-beach:before { - content: "\f5ca"; -} -.fa-underline:before { - content: "\f0cd"; -} -.fa-undo:before { - content: "\f0e2"; -} -.fa-undo-alt:before { - content: "\f2ea"; -} -.fa-uniregistry:before { - content: "\f404"; -} -.fa-universal-access:before { - content: "\f29a"; -} -.fa-university:before { - content: "\f19c"; -} -.fa-unlink:before { - content: "\f127"; -} -.fa-unlock:before { - content: "\f09c"; -} -.fa-unlock-alt:before { - content: "\f13e"; -} -.fa-untappd:before { - content: "\f405"; -} -.fa-upload:before { - content: "\f093"; -} -.fa-ups:before { - content: "\f7e0"; -} -.fa-usb:before { - content: "\f287"; -} -.fa-user:before { - content: "\f007"; -} -.fa-user-alt:before { - content: "\f406"; -} -.fa-user-alt-slash:before { - content: "\f4fa"; -} -.fa-user-astronaut:before { - content: "\f4fb"; -} -.fa-user-check:before { - content: "\f4fc"; -} -.fa-user-circle:before { - content: "\f2bd"; -} -.fa-user-clock:before { - content: "\f4fd"; -} -.fa-user-cog:before { - content: "\f4fe"; -} -.fa-user-edit:before { - content: "\f4ff"; -} -.fa-user-friends:before { - content: "\f500"; -} -.fa-user-graduate:before { - content: "\f501"; -} -.fa-user-injured:before { - content: "\f728"; -} -.fa-user-lock:before { - content: "\f502"; -} -.fa-user-md:before { - content: "\f0f0"; -} -.fa-user-minus:before { - content: "\f503"; -} -.fa-user-ninja:before { - content: "\f504"; -} -.fa-user-nurse:before { - content: "\f82f"; -} -.fa-user-plus:before { - content: "\f234"; -} -.fa-user-secret:before { - content: "\f21b"; -} -.fa-user-shield:before { - content: "\f505"; -} -.fa-user-slash:before { - content: "\f506"; -} -.fa-user-tag:before { - content: "\f507"; -} -.fa-user-tie:before { - content: "\f508"; -} -.fa-user-times:before { - content: "\f235"; -} -.fa-users:before { - content: "\f0c0"; -} -.fa-users-cog:before { - content: "\f509"; -} -.fa-usps:before { - content: "\f7e1"; -} -.fa-ussunnah:before { - content: "\f407"; -} -.fa-utensil-spoon:before { - content: "\f2e5"; -} -.fa-utensils:before { - content: "\f2e7"; -} -.fa-vaadin:before { - content: "\f408"; -} -.fa-vector-square:before { - content: "\f5cb"; -} -.fa-venus:before { - content: "\f221"; -} -.fa-venus-double:before { - content: "\f226"; -} -.fa-venus-mars:before { - content: "\f228"; -} -.fa-viacoin:before { - content: "\f237"; -} -.fa-viadeo:before { - content: "\f2a9"; -} -.fa-viadeo-square:before { - content: "\f2aa"; -} -.fa-vial:before { - content: "\f492"; -} -.fa-vials:before { - content: "\f493"; -} -.fa-viber:before { - content: "\f409"; -} -.fa-video:before { - content: "\f03d"; -} -.fa-video-slash:before { - content: "\f4e2"; -} -.fa-vihara:before { - content: "\f6a7"; -} -.fa-vimeo:before { - content: "\f40a"; -} -.fa-vimeo-square:before { - content: "\f194"; -} -.fa-vimeo-v:before { - content: "\f27d"; -} -.fa-vine:before { - content: "\f1ca"; -} -.fa-vk:before { - content: "\f189"; -} -.fa-vnv:before { - content: "\f40b"; -} -.fa-voicemail:before { - content: "\f897"; -} -.fa-volleyball-ball:before { - content: "\f45f"; -} -.fa-volume-down:before { - content: "\f027"; -} -.fa-volume-mute:before { - content: "\f6a9"; -} -.fa-volume-off:before { - content: "\f026"; -} -.fa-volume-up:before { - content: "\f028"; -} -.fa-vote-yea:before { - content: "\f772"; -} -.fa-vr-cardboard:before { - content: "\f729"; -} -.fa-vuejs:before { - content: "\f41f"; -} -.fa-walking:before { - content: "\f554"; -} -.fa-wallet:before { - content: "\f555"; -} -.fa-warehouse:before { - content: "\f494"; -} -.fa-water:before { - content: "\f773"; -} -.fa-wave-square:before { - content: "\f83e"; -} -.fa-waze:before { - content: "\f83f"; -} -.fa-weebly:before { - content: "\f5cc"; -} -.fa-weibo:before { - content: "\f18a"; -} -.fa-weight:before { - content: "\f496"; -} -.fa-weight-hanging:before { - content: "\f5cd"; -} -.fa-weixin:before { - content: "\f1d7"; -} -.fa-whatsapp:before { - content: "\f232"; -} -.fa-whatsapp-square:before { - content: "\f40c"; -} -.fa-wheelchair:before { - content: "\f193"; -} -.fa-whmcs:before { - content: "\f40d"; -} -.fa-wifi:before { - content: "\f1eb"; -} -.fa-wikipedia-w:before { - content: "\f266"; -} -.fa-wind:before { - content: "\f72e"; -} -.fa-window-close:before { - content: "\f410"; -} -.fa-window-maximize:before { - content: "\f2d0"; -} -.fa-window-minimize:before { - content: "\f2d1"; -} -.fa-window-restore:before { - content: "\f2d2"; -} -.fa-windows:before { - content: "\f17a"; -} -.fa-wine-bottle:before { - content: "\f72f"; -} -.fa-wine-glass:before { - content: "\f4e3"; -} -.fa-wine-glass-alt:before { - content: "\f5ce"; -} -.fa-wix:before { - content: "\f5cf"; -} -.fa-wizards-of-the-coast:before { - content: "\f730"; -} -.fa-wolf-pack-battalion:before { - content: "\f514"; -} -.fa-won-sign:before { - content: "\f159"; -} -.fa-wordpress:before { - content: "\f19a"; -} -.fa-wordpress-simple:before { - content: "\f411"; -} -.fa-wpbeginner:before { - content: "\f297"; -} -.fa-wpexplorer:before { - content: "\f2de"; -} -.fa-wpforms:before { - content: "\f298"; -} -.fa-wpressr:before { - content: "\f3e4"; -} -.fa-wrench:before { - content: "\f0ad"; -} -.fa-x-ray:before { - content: "\f497"; -} -.fa-xbox:before { - content: "\f412"; -} -.fa-xing:before { - content: "\f168"; -} -.fa-xing-square:before { - content: "\f169"; -} -.fa-y-combinator:before { - content: "\f23b"; -} -.fa-yahoo:before { - content: "\f19e"; -} -.fa-yammer:before { - content: "\f840"; -} -.fa-yandex:before { - content: "\f413"; -} -.fa-yandex-international:before { - content: "\f414"; -} -.fa-yarn:before { - content: "\f7e3"; -} -.fa-yelp:before { - content: "\f1e9"; -} -.fa-yen-sign:before { - content: "\f157"; -} -.fa-yin-yang:before { - content: "\f6ad"; -} -.fa-yoast:before { - content: "\f2b1"; -} -.fa-youtube:before { - content: "\f167"; -} -.fa-youtube-square:before { - content: "\f431"; -} -.fa-zhihu:before { - content: "\f63f"; -} -.sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; -} -@font-face { - font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: 400; - font-display: auto; - src: url(fa-regular-400.eot); - src: url(fa-regular-400.eot?#iefix) format("embedded-opentype"), - url(fa-regular-400.woff) format("woff"); -} -.far { - font-weight: 400; -} -@font-face { - font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: 900; - font-display: auto; - src: url(fa-solid-900.eot); - src: url(fa-solid-900.eot?#iefix) format("embedded-opentype"), - url(fa-solid-900.woff) format("woff"); -} -.fa, -.far, -.fas { - font-family: "Font Awesome 5 Free"; -} -.fa, -.fas { - font-weight: 900; -} +.fa{font-family:"Font Awesome 6 Free";font-weight:900}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc( 2em*-1);position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border-radius:.1em;border:.08em solid #eee;padding:.2em .25em .15em}.fa-pull-left{float:left;margin-right:.3em}.fa-pull-right{float:right;margin-left:.3em}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.28,.84,.42,1);animation-timing-function:cubic-bezier(.28,.84,.42,1)}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.4,0,.6,1);animation-timing-function:cubic-bezier(.4,0,.6,1)}.fa-beat-fade,.fa-fade{-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.4,0,.6,1);animation-timing-function:cubic-bezier(.4,0,.6,1)}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.fa-shake,.fa-spin{-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:steps(8);animation-timing-function:steps(8)}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(1.25);transform:scale(1.25)}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(1.25);transform:scale(1.25)}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(1.1,.9) translateY(0);transform:scale(1.1,.9) translateY(0)}30%{-webkit-transform:scale(.9,1.1) translateY(-.5em);transform:scale(.9,1.1) translateY(-.5em)}50%{-webkit-transform:scale(1.05,.95) translateY(0);transform:scale(1.05,.95) translateY(0)}57%{-webkit-transform:scale(1) translateY(-.125em);transform:scale(1) translateY(-.125em)}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(1.1,.9) translateY(0);transform:scale(1.1,.9) translateY(0)}30%{-webkit-transform:scale(.9,1.1) translateY(-.5em);transform:scale(.9,1.1) translateY(-.5em)}50%{-webkit-transform:scale(1.05,.95) translateY(0);transform:scale(1.05,.95) translateY(0)}57%{-webkit-transform:scale(1) translateY(-.125em);transform:scale(1) translateY(-.125em)}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:.4}}@keyframes fa-fade{50%{opacity:.4}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:.4;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(1.125);transform:scale(1.125)}}@keyframes fa-beat-fade{0%,to{opacity:.4;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(1.125);transform:scale(1.125)}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(0,1,0,-180deg);transform:rotate3d(0,1,0,-180deg)}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(0,1,0,-180deg);transform:rotate3d(0,1,0,-180deg)}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(none);transform:rotate(none)}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:auto}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-anchor-lock:before{content:"\e4ad"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-spin:before{content:"\e4bb"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-bookmark:before{content:"\e0bb"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bore-hole:before{content:"\e4c3"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-bottle-water:before{content:"\e4c5"}.fa-bowl-food:before{content:"\e4c6"}.fa-bowl-rice:before{content:"\e2eb"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-packing:before{content:"\e4c7"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-bridge:before{content:"\e4c8"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-bridge-water:before{content:"\e4ce"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bucket:before{content:"\e4cf"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-bugs:before{content:"\e4d0"}.fa-building:before{content:"\f1ad"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-building-flag:before{content:"\e4d5"}.fa-building-lock:before{content:"\e4d6"}.fa-building-ngo:before{content:"\e4d7"}.fa-building-shield:before{content:"\e4d8"}.fa-building-un:before{content:"\e4d9"}.fa-building-user:before{content:"\e4da"}.fa-building-wheat:before{content:"\e4db"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-burst:before{content:"\e4dc"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-car-on:before{content:"\e4dd"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-car-tunnel:before{content:"\e4de"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-chart-simple:before{content:"\e473"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-child-dress:before{content:"\e59c"}.fa-child-reaching:before{content:"\e59d"}.fa-child-rifle:before{content:"\e4e0"}.fa-children:before{content:"\e4e1"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-nodes:before{content:"\e4e2"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-question:before{content:"\e4e3"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer:before{content:"\e4e5"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-display:before{content:"\e163"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-explosion:before{content:"\e4e9"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-faucet-drip:before{content:"\e006"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-ferry:before{content:"\e4ea"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-circle-check:before{content:"\e5a0"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-file-circle-plus:before{content:"\e494"}.fa-file-circle-question:before{content:"\e4ef"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-shield:before{content:"\e4f0"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-burner:before{content:"\e4f1"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-fish-fins:before{content:"\e4f2"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flask-vial:before{content:"\e4f3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-folder-closed:before{content:"\e185"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glass-water:before{content:"\e4f4"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-handcuffs:before{content:"\e4f8"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bound:before{content:"\e4f9"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-heart-circle-plus:before{content:"\e500"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-helicopter-symbol:before{content:"\e502"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-helmet-un:before{content:"\e503"}.fa-highlighter:before{content:"\f591"}.fa-hill-avalanche:before{content:"\e507"}.fa-hill-rockslide:before{content:"\e508"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-circle-check:before{content:"\e509"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-house-crack:before{content:"\e3b1"}.fa-house-fire:before{content:"\e50c"}.fa-house-flag:before{content:"\e50d"}.fa-house-flood-water:before{content:"\e50e"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-lock:before{content:"\e510"}.fa-house-medical:before{content:"\e3b2"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-house-medical-flag:before{content:"\e514"}.fa-house-signal:before{content:"\e012"}.fa-house-tsunami:before{content:"\e515"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-hurricane:before{content:"\f751"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jar:before{content:"\e516"}.fa-jar-wheat:before{content:"\e517"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-jet-fighter-up:before{content:"\e518"}.fa-joint:before{content:"\f595"}.fa-jug-detergent:before{content:"\e519"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kitchen-set:before{content:"\e51a"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-land-mine-on:before{content:"\e51b"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-landmark-flag:before{content:"\e51c"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-file:before{content:"\e51d"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-lines-leaning:before{content:"\e51e"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-location-pin-lock:before{content:"\e51f"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-locust:before{content:"\e520"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-mask-ventilator:before{content:"\e524"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-mattress-pillow:before{content:"\e525"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-retro:before{content:"\e527"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-money-bills:before{content:"\e1f3"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-mosquito-net:before{content:"\e52c"}.fa-motorcycle:before{content:"\f21c"}.fa-mound:before{content:"\e52d"}.fa-mountain:before{content:"\f6fc"}.fa-mountain-city:before{content:"\e52e"}.fa-mountain-sun:before{content:"\e52f"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-notdef:before{content:"\e1fe"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-oil-well:before{content:"\e532"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-people-group:before{content:"\e533"}.fa-people-line:before{content:"\e534"}.fa-people-pulling:before{content:"\e535"}.fa-people-robbery:before{content:"\e536"}.fa-people-roof:before{content:"\e537"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-person-burst:before{content:"\e53b"}.fa-person-cane:before{content:"\e53c"}.fa-person-chalkboard:before{content:"\e53d"}.fa-person-circle-check:before{content:"\e53e"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-person-circle-minus:before{content:"\e540"}.fa-person-circle-plus:before{content:"\e541"}.fa-person-circle-question:before{content:"\e542"}.fa-person-circle-xmark:before{content:"\e543"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-person-dress-burst:before{content:"\e544"}.fa-person-drowning:before{content:"\e545"}.fa-person-falling:before{content:"\e546"}.fa-person-falling-burst:before{content:"\e547"}.fa-person-half-dress:before{content:"\e548"}.fa-person-harassing:before{content:"\e549"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-military-pointing:before{content:"\e54a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-person-military-to-person:before{content:"\e54c"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-pregnant:before{content:"\e31e"}.fa-person-rays:before{content:"\e54d"}.fa-person-rifle:before{content:"\e54e"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-shelter:before{content:"\e54f"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-through-window:before{content:"\e5a9"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-person-walking-luggage:before{content:"\e554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-circle-check:before{content:"\e555"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-lock:before{content:"\e558"}.fa-plane-slash:before{content:"\e069"}.fa-plane-up:before{content:"\e22d"}.fa-plant-wilt:before{content:"\e5aa"}.fa-plate-wheat:before{content:"\e55a"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-plug-circle-check:before{content:"\e55c"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-radio:before{content:"\f8d7"}.fa-rainbow:before{content:"\f75b"}.fa-ranking-star:before{content:"\e561"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-road-barrier:before{content:"\e562"}.fa-road-bridge:before{content:"\e563"}.fa-road-circle-check:before{content:"\e564"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-road-circle-xmark:before{content:"\e566"}.fa-road-lock:before{content:"\e567"}.fa-road-spikes:before{content:"\e568"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-rug:before{content:"\e569"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sack-dollar:before{content:"\f81d"}.fa-sack-xmark:before{content:"\e56a"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-school-circle-check:before{content:"\e56b"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-school-flag:before{content:"\e56e"}.fa-school-lock:before{content:"\e56f"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-sheet-plastic:before{content:"\e571"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-shield-cat:before{content:"\e572"}.fa-shield-dog:before{content:"\e573"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-shield-heart:before{content:"\e574"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-lock:before{content:"\e4a5"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-square-nfi:before{content:"\e576"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-square-person-confined:before{content:"\e577"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-virus:before{content:"\e578"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-stapler:before{content:"\e5af"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tarp:before{content:"\e57b"}.fa-tarp-droplet:before{content:"\e57c"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-tent:before{content:"\e57d"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tent-arrows-down:before{content:"\e581"}.fa-tents:before{content:"\e582"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toilet-portable:before{content:"\e583"}.fa-toilets-portable:before{content:"\e584"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tower-cell:before{content:"\e585"}.fa-tower-observation:before{content:"\e586"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before{content:"\e5b4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-tree-city:before{content:"\e587"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-trowel:before{content:"\e589"}.fa-trowel-bricks:before{content:"\e58a"}.fa-truck:before{content:"\f0d1"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-truck-droplet:before{content:"\e58c"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-truck-field:before{content:"\e58d"}.fa-truck-field-un:before{content:"\e58e"}.fa-truck-front:before{content:"\e2b7"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plane:before{content:"\e58f"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-between-lines:before{content:"\e591"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-line:before{content:"\e592"}.fa-users-rays:before{content:"\e593"}.fa-users-rectangle:before{content:"\e594"}.fa-users-slash:before{content:"\e073"}.fa-users-viewfinder:before{content:"\e595"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vial-circle-check:before{content:"\e596"}.fa-vial-virus:before{content:"\e597"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-wheelchair:before{content:"\f193"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-worm:before{content:"\e599"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-xmarks-lines:before{content:"\e59a"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-meta:before{content:"\e49b"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nfc-directional:before{content:"\e530"}.fa-nfc-symbol:before{content:"\e531"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-screenpal:before{content:"\e570"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-space-awesome:before{content:"\e5ac"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} diff --git a/html/font-awesome/css/v4-shims.min.css b/html/font-awesome/css/v4-shims.min.css index 9316727d18d3..2f6252b52a14 100644 --- a/html/font-awesome/css/v4-shims.min.css +++ b/html/font-awesome/css/v4-shims.min.css @@ -1,1694 +1,6 @@ /*! - * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com + * Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. */ -.fa.fa-glass:before { - content: "\f000"; -} -.fa.fa-meetup { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-star-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-star-o:before { - content: "\f005"; -} -.fa.fa-close:before, -.fa.fa-remove:before { - content: "\f00d"; -} -.fa.fa-gear:before { - content: "\f013"; -} -.fa.fa-trash-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-trash-o:before { - content: "\f2ed"; -} -.fa.fa-file-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-o:before { - content: "\f15b"; -} -.fa.fa-clock-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-clock-o:before { - content: "\f017"; -} -.fa.fa-arrow-circle-o-down { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-arrow-circle-o-down:before { - content: "\f358"; -} -.fa.fa-arrow-circle-o-up { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-arrow-circle-o-up:before { - content: "\f35b"; -} -.fa.fa-play-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-play-circle-o:before { - content: "\f144"; -} -.fa.fa-repeat:before, -.fa.fa-rotate-right:before { - content: "\f01e"; -} -.fa.fa-refresh:before { - content: "\f021"; -} -.fa.fa-list-alt { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-dedent:before { - content: "\f03b"; -} -.fa.fa-video-camera:before { - content: "\f03d"; -} -.fa.fa-picture-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-picture-o:before { - content: "\f03e"; -} -.fa.fa-photo { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-photo:before { - content: "\f03e"; -} -.fa.fa-image { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-image:before { - content: "\f03e"; -} -.fa.fa-pencil:before { - content: "\f303"; -} -.fa.fa-map-marker:before { - content: "\f3c5"; -} -.fa.fa-pencil-square-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-pencil-square-o:before { - content: "\f044"; -} -.fa.fa-share-square-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-share-square-o:before { - content: "\f14d"; -} -.fa.fa-check-square-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-check-square-o:before { - content: "\f14a"; -} -.fa.fa-arrows:before { - content: "\f0b2"; -} -.fa.fa-times-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-times-circle-o:before { - content: "\f057"; -} -.fa.fa-check-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-check-circle-o:before { - content: "\f058"; -} -.fa.fa-mail-forward:before { - content: "\f064"; -} -.fa.fa-eye, -.fa.fa-eye-slash { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-warning:before { - content: "\f071"; -} -.fa.fa-calendar:before { - content: "\f073"; -} -.fa.fa-arrows-v:before { - content: "\f338"; -} -.fa.fa-arrows-h:before { - content: "\f337"; -} -.fa.fa-bar-chart { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-bar-chart:before { - content: "\f080"; -} -.fa.fa-bar-chart-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-bar-chart-o:before { - content: "\f080"; -} -.fa.fa-facebook-square, -.fa.fa-twitter-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-gears:before { - content: "\f085"; -} -.fa.fa-thumbs-o-up { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-thumbs-o-up:before { - content: "\f164"; -} -.fa.fa-thumbs-o-down { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-thumbs-o-down:before { - content: "\f165"; -} -.fa.fa-heart-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-heart-o:before { - content: "\f004"; -} -.fa.fa-sign-out:before { - content: "\f2f5"; -} -.fa.fa-linkedin-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-linkedin-square:before { - content: "\f08c"; -} -.fa.fa-thumb-tack:before { - content: "\f08d"; -} -.fa.fa-external-link:before { - content: "\f35d"; -} -.fa.fa-sign-in:before { - content: "\f2f6"; -} -.fa.fa-github-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-lemon-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-lemon-o:before { - content: "\f094"; -} -.fa.fa-square-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-square-o:before { - content: "\f0c8"; -} -.fa.fa-bookmark-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-bookmark-o:before { - content: "\f02e"; -} -.fa.fa-facebook, -.fa.fa-twitter { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-facebook:before { - content: "\f39e"; -} -.fa.fa-facebook-f { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-facebook-f:before { - content: "\f39e"; -} -.fa.fa-github { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-credit-card { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-feed:before { - content: "\f09e"; -} -.fa.fa-hdd-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hdd-o:before { - content: "\f0a0"; -} -.fa.fa-hand-o-right { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-o-right:before { - content: "\f0a4"; -} -.fa.fa-hand-o-left { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-o-left:before { - content: "\f0a5"; -} -.fa.fa-hand-o-up { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-o-up:before { - content: "\f0a6"; -} -.fa.fa-hand-o-down { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-o-down:before { - content: "\f0a7"; -} -.fa.fa-arrows-alt:before { - content: "\f31e"; -} -.fa.fa-group:before { - content: "\f0c0"; -} -.fa.fa-chain:before { - content: "\f0c1"; -} -.fa.fa-scissors:before { - content: "\f0c4"; -} -.fa.fa-files-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-files-o:before { - content: "\f0c5"; -} -.fa.fa-floppy-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-floppy-o:before { - content: "\f0c7"; -} -.fa.fa-navicon:before, -.fa.fa-reorder:before { - content: "\f0c9"; -} -.fa.fa-google-plus, -.fa.fa-google-plus-square, -.fa.fa-pinterest, -.fa.fa-pinterest-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-google-plus:before { - content: "\f0d5"; -} -.fa.fa-money { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-money:before { - content: "\f3d1"; -} -.fa.fa-unsorted:before { - content: "\f0dc"; -} -.fa.fa-sort-desc:before { - content: "\f0dd"; -} -.fa.fa-sort-asc:before { - content: "\f0de"; -} -.fa.fa-linkedin { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-linkedin:before { - content: "\f0e1"; -} -.fa.fa-rotate-left:before { - content: "\f0e2"; -} -.fa.fa-legal:before { - content: "\f0e3"; -} -.fa.fa-dashboard:before, -.fa.fa-tachometer:before { - content: "\f3fd"; -} -.fa.fa-comment-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-comment-o:before { - content: "\f075"; -} -.fa.fa-comments-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-comments-o:before { - content: "\f086"; -} -.fa.fa-flash:before { - content: "\f0e7"; -} -.fa.fa-clipboard, -.fa.fa-paste { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-paste:before { - content: "\f328"; -} -.fa.fa-lightbulb-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-lightbulb-o:before { - content: "\f0eb"; -} -.fa.fa-exchange:before { - content: "\f362"; -} -.fa.fa-cloud-download:before { - content: "\f381"; -} -.fa.fa-cloud-upload:before { - content: "\f382"; -} -.fa.fa-bell-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-bell-o:before { - content: "\f0f3"; -} -.fa.fa-cutlery:before { - content: "\f2e7"; -} -.fa.fa-file-text-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-text-o:before { - content: "\f15c"; -} -.fa.fa-building-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-building-o:before { - content: "\f1ad"; -} -.fa.fa-hospital-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hospital-o:before { - content: "\f0f8"; -} -.fa.fa-tablet:before { - content: "\f3fa"; -} -.fa.fa-mobile-phone:before, -.fa.fa-mobile:before { - content: "\f3cd"; -} -.fa.fa-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-circle-o:before { - content: "\f111"; -} -.fa.fa-mail-reply:before { - content: "\f3e5"; -} -.fa.fa-github-alt { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-folder-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-folder-o:before { - content: "\f07b"; -} -.fa.fa-folder-open-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-folder-open-o:before { - content: "\f07c"; -} -.fa.fa-smile-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-smile-o:before { - content: "\f118"; -} -.fa.fa-frown-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-frown-o:before { - content: "\f119"; -} -.fa.fa-meh-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-meh-o:before { - content: "\f11a"; -} -.fa.fa-keyboard-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-keyboard-o:before { - content: "\f11c"; -} -.fa.fa-flag-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-flag-o:before { - content: "\f024"; -} -.fa.fa-mail-reply-all:before { - content: "\f122"; -} -.fa.fa-star-half-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-star-half-o:before { - content: "\f089"; -} -.fa.fa-star-half-empty { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-star-half-empty:before { - content: "\f089"; -} -.fa.fa-star-half-full { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-star-half-full:before { - content: "\f089"; -} -.fa.fa-code-fork:before { - content: "\f126"; -} -.fa.fa-chain-broken:before { - content: "\f127"; -} -.fa.fa-shield:before { - content: "\f3ed"; -} -.fa.fa-calendar-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-calendar-o:before { - content: "\f133"; -} -.fa.fa-css3, -.fa.fa-html5, -.fa.fa-maxcdn { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-ticket:before { - content: "\f3ff"; -} -.fa.fa-minus-square-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-minus-square-o:before { - content: "\f146"; -} -.fa.fa-level-up:before { - content: "\f3bf"; -} -.fa.fa-level-down:before { - content: "\f3be"; -} -.fa.fa-pencil-square:before { - content: "\f14b"; -} -.fa.fa-external-link-square:before { - content: "\f360"; -} -.fa.fa-compass { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-caret-square-o-down { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-caret-square-o-down:before { - content: "\f150"; -} -.fa.fa-toggle-down { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-toggle-down:before { - content: "\f150"; -} -.fa.fa-caret-square-o-up { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-caret-square-o-up:before { - content: "\f151"; -} -.fa.fa-toggle-up { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-toggle-up:before { - content: "\f151"; -} -.fa.fa-caret-square-o-right { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-caret-square-o-right:before { - content: "\f152"; -} -.fa.fa-toggle-right { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-toggle-right:before { - content: "\f152"; -} -.fa.fa-eur:before, -.fa.fa-euro:before { - content: "\f153"; -} -.fa.fa-gbp:before { - content: "\f154"; -} -.fa.fa-dollar:before, -.fa.fa-usd:before { - content: "\f155"; -} -.fa.fa-inr:before, -.fa.fa-rupee:before { - content: "\f156"; -} -.fa.fa-cny:before, -.fa.fa-jpy:before, -.fa.fa-rmb:before, -.fa.fa-yen:before { - content: "\f157"; -} -.fa.fa-rouble:before, -.fa.fa-rub:before, -.fa.fa-ruble:before { - content: "\f158"; -} -.fa.fa-krw:before, -.fa.fa-won:before { - content: "\f159"; -} -.fa.fa-bitcoin, -.fa.fa-btc { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-bitcoin:before { - content: "\f15a"; -} -.fa.fa-file-text:before { - content: "\f15c"; -} -.fa.fa-sort-alpha-asc:before { - content: "\f15d"; -} -.fa.fa-sort-alpha-desc:before { - content: "\f15e"; -} -.fa.fa-sort-amount-asc:before { - content: "\f160"; -} -.fa.fa-sort-amount-desc:before { - content: "\f161"; -} -.fa.fa-sort-numeric-asc:before { - content: "\f162"; -} -.fa.fa-sort-numeric-desc:before { - content: "\f163"; -} -.fa.fa-xing, -.fa.fa-xing-square, -.fa.fa-youtube, -.fa.fa-youtube-play, -.fa.fa-youtube-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-youtube-play:before { - content: "\f167"; -} -.fa.fa-adn, -.fa.fa-bitbucket, -.fa.fa-bitbucket-square, -.fa.fa-dropbox, -.fa.fa-flickr, -.fa.fa-instagram, -.fa.fa-stack-overflow { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-bitbucket-square:before { - content: "\f171"; -} -.fa.fa-tumblr, -.fa.fa-tumblr-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-long-arrow-down:before { - content: "\f309"; -} -.fa.fa-long-arrow-up:before { - content: "\f30c"; -} -.fa.fa-long-arrow-left:before { - content: "\f30a"; -} -.fa.fa-long-arrow-right:before { - content: "\f30b"; -} -.fa.fa-android, -.fa.fa-apple, -.fa.fa-dribbble, -.fa.fa-foursquare, -.fa.fa-gittip, -.fa.fa-gratipay, -.fa.fa-linux, -.fa.fa-skype, -.fa.fa-trello, -.fa.fa-windows { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-gittip:before { - content: "\f184"; -} -.fa.fa-sun-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-sun-o:before { - content: "\f185"; -} -.fa.fa-moon-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-moon-o:before { - content: "\f186"; -} -.fa.fa-pagelines, -.fa.fa-renren, -.fa.fa-stack-exchange, -.fa.fa-vk, -.fa.fa-weibo { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-arrow-circle-o-right { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-arrow-circle-o-right:before { - content: "\f35a"; -} -.fa.fa-arrow-circle-o-left { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-arrow-circle-o-left:before { - content: "\f359"; -} -.fa.fa-caret-square-o-left { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-caret-square-o-left:before { - content: "\f191"; -} -.fa.fa-toggle-left { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-toggle-left:before { - content: "\f191"; -} -.fa.fa-dot-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-dot-circle-o:before { - content: "\f192"; -} -.fa.fa-vimeo-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-try:before, -.fa.fa-turkish-lira:before { - content: "\f195"; -} -.fa.fa-plus-square-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-plus-square-o:before { - content: "\f0fe"; -} -.fa.fa-openid, -.fa.fa-slack, -.fa.fa-wordpress { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-bank:before, -.fa.fa-institution:before { - content: "\f19c"; -} -.fa.fa-mortar-board:before { - content: "\f19d"; -} -.fa.fa-delicious, -.fa.fa-digg, -.fa.fa-drupal, -.fa.fa-google, -.fa.fa-joomla, -.fa.fa-pied-piper-alt, -.fa.fa-pied-piper-pp, -.fa.fa-reddit, -.fa.fa-reddit-square, -.fa.fa-stumbleupon, -.fa.fa-stumbleupon-circle, -.fa.fa-yahoo { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-spoon:before { - content: "\f2e5"; -} -.fa.fa-behance, -.fa.fa-behance-square, -.fa.fa-steam, -.fa.fa-steam-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-automobile:before { - content: "\f1b9"; -} -.fa.fa-cab:before { - content: "\f1ba"; -} -.fa.fa-envelope-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-envelope-o:before { - content: "\f0e0"; -} -.fa.fa-deviantart, -.fa.fa-soundcloud { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-file-pdf-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-pdf-o:before { - content: "\f1c1"; -} -.fa.fa-file-word-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-word-o:before { - content: "\f1c2"; -} -.fa.fa-file-excel-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-excel-o:before { - content: "\f1c3"; -} -.fa.fa-file-powerpoint-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-powerpoint-o:before { - content: "\f1c4"; -} -.fa.fa-file-image-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-image-o:before { - content: "\f1c5"; -} -.fa.fa-file-photo-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-photo-o:before { - content: "\f1c5"; -} -.fa.fa-file-picture-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-picture-o:before { - content: "\f1c5"; -} -.fa.fa-file-archive-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-archive-o:before { - content: "\f1c6"; -} -.fa.fa-file-zip-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-zip-o:before { - content: "\f1c6"; -} -.fa.fa-file-audio-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-audio-o:before { - content: "\f1c7"; -} -.fa.fa-file-sound-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-sound-o:before { - content: "\f1c7"; -} -.fa.fa-file-video-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-video-o:before { - content: "\f1c8"; -} -.fa.fa-file-movie-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-movie-o:before { - content: "\f1c8"; -} -.fa.fa-file-code-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-file-code-o:before { - content: "\f1c9"; -} -.fa.fa-codepen, -.fa.fa-jsfiddle, -.fa.fa-vine { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-life-bouy, -.fa.fa-life-ring { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-life-bouy:before { - content: "\f1cd"; -} -.fa.fa-life-buoy { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-life-buoy:before { - content: "\f1cd"; -} -.fa.fa-life-saver { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-life-saver:before { - content: "\f1cd"; -} -.fa.fa-support { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-support:before { - content: "\f1cd"; -} -.fa.fa-circle-o-notch:before { - content: "\f1ce"; -} -.fa.fa-ra, -.fa.fa-rebel { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-ra:before { - content: "\f1d0"; -} -.fa.fa-resistance { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-resistance:before { - content: "\f1d0"; -} -.fa.fa-empire, -.fa.fa-ge { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-ge:before { - content: "\f1d1"; -} -.fa.fa-git, -.fa.fa-git-square, -.fa.fa-hacker-news, -.fa.fa-y-combinator-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-y-combinator-square:before { - content: "\f1d4"; -} -.fa.fa-yc-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-yc-square:before { - content: "\f1d4"; -} -.fa.fa-qq, -.fa.fa-tencent-weibo, -.fa.fa-wechat, -.fa.fa-weixin { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-wechat:before { - content: "\f1d7"; -} -.fa.fa-send:before { - content: "\f1d8"; -} -.fa.fa-paper-plane-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-paper-plane-o:before { - content: "\f1d8"; -} -.fa.fa-send-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-send-o:before { - content: "\f1d8"; -} -.fa.fa-circle-thin { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-circle-thin:before { - content: "\f111"; -} -.fa.fa-header:before { - content: "\f1dc"; -} -.fa.fa-sliders:before { - content: "\f1de"; -} -.fa.fa-futbol-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-futbol-o:before { - content: "\f1e3"; -} -.fa.fa-soccer-ball-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-soccer-ball-o:before { - content: "\f1e3"; -} -.fa.fa-slideshare, -.fa.fa-twitch, -.fa.fa-yelp { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-newspaper-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-newspaper-o:before { - content: "\f1ea"; -} -.fa.fa-cc-amex, -.fa.fa-cc-discover, -.fa.fa-cc-mastercard, -.fa.fa-cc-paypal, -.fa.fa-cc-stripe, -.fa.fa-cc-visa, -.fa.fa-google-wallet, -.fa.fa-paypal { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-bell-slash-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-bell-slash-o:before { - content: "\f1f6"; -} -.fa.fa-trash:before { - content: "\f2ed"; -} -.fa.fa-copyright { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-eyedropper:before { - content: "\f1fb"; -} -.fa.fa-area-chart:before { - content: "\f1fe"; -} -.fa.fa-pie-chart:before { - content: "\f200"; -} -.fa.fa-line-chart:before { - content: "\f201"; -} -.fa.fa-angellist, -.fa.fa-ioxhost, -.fa.fa-lastfm, -.fa.fa-lastfm-square { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-cc { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-cc:before { - content: "\f20a"; -} -.fa.fa-ils:before, -.fa.fa-shekel:before, -.fa.fa-sheqel:before { - content: "\f20b"; -} -.fa.fa-meanpath { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-meanpath:before { - content: "\f2b4"; -} -.fa.fa-buysellads, -.fa.fa-connectdevelop, -.fa.fa-dashcube, -.fa.fa-forumbee, -.fa.fa-leanpub, -.fa.fa-sellsy, -.fa.fa-shirtsinbulk, -.fa.fa-simplybuilt, -.fa.fa-skyatlas { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-diamond { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-diamond:before { - content: "\f3a5"; -} -.fa.fa-intersex:before { - content: "\f224"; -} -.fa.fa-facebook-official { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-facebook-official:before { - content: "\f09a"; -} -.fa.fa-pinterest-p, -.fa.fa-whatsapp { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-hotel:before { - content: "\f236"; -} -.fa.fa-medium, -.fa.fa-viacoin, -.fa.fa-y-combinator, -.fa.fa-yc { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-yc:before { - content: "\f23b"; -} -.fa.fa-expeditedssl, -.fa.fa-opencart, -.fa.fa-optin-monster { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-battery-4:before, -.fa.fa-battery:before { - content: "\f240"; -} -.fa.fa-battery-3:before { - content: "\f241"; -} -.fa.fa-battery-2:before { - content: "\f242"; -} -.fa.fa-battery-1:before { - content: "\f243"; -} -.fa.fa-battery-0:before { - content: "\f244"; -} -.fa.fa-object-group, -.fa.fa-object-ungroup, -.fa.fa-sticky-note-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-sticky-note-o:before { - content: "\f249"; -} -.fa.fa-cc-diners-club, -.fa.fa-cc-jcb { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-clone, -.fa.fa-hourglass-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hourglass-o:before { - content: "\f254"; -} -.fa.fa-hourglass-1:before { - content: "\f251"; -} -.fa.fa-hourglass-2:before { - content: "\f252"; -} -.fa.fa-hourglass-3:before { - content: "\f253"; -} -.fa.fa-hand-rock-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-rock-o:before { - content: "\f255"; -} -.fa.fa-hand-grab-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-grab-o:before { - content: "\f255"; -} -.fa.fa-hand-paper-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-paper-o:before { - content: "\f256"; -} -.fa.fa-hand-stop-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-stop-o:before { - content: "\f256"; -} -.fa.fa-hand-scissors-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-scissors-o:before { - content: "\f257"; -} -.fa.fa-hand-lizard-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-lizard-o:before { - content: "\f258"; -} -.fa.fa-hand-spock-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-spock-o:before { - content: "\f259"; -} -.fa.fa-hand-pointer-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-pointer-o:before { - content: "\f25a"; -} -.fa.fa-hand-peace-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-hand-peace-o:before { - content: "\f25b"; -} -.fa.fa-registered { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-chrome, -.fa.fa-creative-commons, -.fa.fa-firefox, -.fa.fa-get-pocket, -.fa.fa-gg, -.fa.fa-gg-circle, -.fa.fa-internet-explorer, -.fa.fa-odnoklassniki, -.fa.fa-odnoklassniki-square, -.fa.fa-opera, -.fa.fa-safari, -.fa.fa-tripadvisor, -.fa.fa-wikipedia-w { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-television:before { - content: "\f26c"; -} -.fa.fa-500px, -.fa.fa-amazon, -.fa.fa-contao { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-calendar-plus-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-calendar-plus-o:before { - content: "\f271"; -} -.fa.fa-calendar-minus-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-calendar-minus-o:before { - content: "\f272"; -} -.fa.fa-calendar-times-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-calendar-times-o:before { - content: "\f273"; -} -.fa.fa-calendar-check-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-calendar-check-o:before { - content: "\f274"; -} -.fa.fa-map-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-map-o:before { - content: "\f279"; -} -.fa.fa-commenting:before { - content: "\f4ad"; -} -.fa.fa-commenting-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-commenting-o:before { - content: "\f4ad"; -} -.fa.fa-houzz, -.fa.fa-vimeo { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-vimeo:before { - content: "\f27d"; -} -.fa.fa-black-tie, -.fa.fa-edge, -.fa.fa-fonticons, -.fa.fa-reddit-alien { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-credit-card-alt:before { - content: "\f09d"; -} -.fa.fa-codiepie, -.fa.fa-fort-awesome, -.fa.fa-mixcloud, -.fa.fa-modx, -.fa.fa-product-hunt, -.fa.fa-scribd, -.fa.fa-usb { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-pause-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-pause-circle-o:before { - content: "\f28b"; -} -.fa.fa-stop-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-stop-circle-o:before { - content: "\f28d"; -} -.fa.fa-bluetooth, -.fa.fa-bluetooth-b, -.fa.fa-envira, -.fa.fa-gitlab, -.fa.fa-wheelchair-alt, -.fa.fa-wpbeginner, -.fa.fa-wpforms { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-wheelchair-alt:before { - content: "\f368"; -} -.fa.fa-question-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-question-circle-o:before { - content: "\f059"; -} -.fa.fa-volume-control-phone:before { - content: "\f2a0"; -} -.fa.fa-asl-interpreting:before { - content: "\f2a3"; -} -.fa.fa-deafness:before, -.fa.fa-hard-of-hearing:before { - content: "\f2a4"; -} -.fa.fa-glide, -.fa.fa-glide-g { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-signing:before { - content: "\f2a7"; -} -.fa.fa-first-order, -.fa.fa-google-plus-official, -.fa.fa-pied-piper, -.fa.fa-snapchat, -.fa.fa-snapchat-ghost, -.fa.fa-snapchat-square, -.fa.fa-themeisle, -.fa.fa-viadeo, -.fa.fa-viadeo-square, -.fa.fa-yoast { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-google-plus-official:before { - content: "\f2b3"; -} -.fa.fa-google-plus-circle { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-google-plus-circle:before { - content: "\f2b3"; -} -.fa.fa-fa, -.fa.fa-font-awesome { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-fa:before { - content: "\f2b4"; -} -.fa.fa-handshake-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-handshake-o:before { - content: "\f2b5"; -} -.fa.fa-envelope-open-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-envelope-open-o:before { - content: "\f2b6"; -} -.fa.fa-linode { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-address-book-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-address-book-o:before { - content: "\f2b9"; -} -.fa.fa-vcard:before { - content: "\f2bb"; -} -.fa.fa-address-card-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-address-card-o:before { - content: "\f2bb"; -} -.fa.fa-vcard-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-vcard-o:before { - content: "\f2bb"; -} -.fa.fa-user-circle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-user-circle-o:before { - content: "\f2bd"; -} -.fa.fa-user-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-user-o:before { - content: "\f007"; -} -.fa.fa-id-badge { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-drivers-license:before { - content: "\f2c2"; -} -.fa.fa-id-card-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-id-card-o:before { - content: "\f2c2"; -} -.fa.fa-drivers-license-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-drivers-license-o:before { - content: "\f2c2"; -} -.fa.fa-free-code-camp, -.fa.fa-quora, -.fa.fa-telegram { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-thermometer-4:before, -.fa.fa-thermometer:before { - content: "\f2c7"; -} -.fa.fa-thermometer-3:before { - content: "\f2c8"; -} -.fa.fa-thermometer-2:before { - content: "\f2c9"; -} -.fa.fa-thermometer-1:before { - content: "\f2ca"; -} -.fa.fa-thermometer-0:before { - content: "\f2cb"; -} -.fa.fa-bathtub:before, -.fa.fa-s15:before { - content: "\f2cd"; -} -.fa.fa-window-maximize, -.fa.fa-window-restore { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-times-rectangle:before { - content: "\f410"; -} -.fa.fa-window-close-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-window-close-o:before { - content: "\f410"; -} -.fa.fa-times-rectangle-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-times-rectangle-o:before { - content: "\f410"; -} -.fa.fa-bandcamp, -.fa.fa-eercast, -.fa.fa-etsy, -.fa.fa-grav, -.fa.fa-imdb, -.fa.fa-ravelry { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} -.fa.fa-eercast:before { - content: "\f2da"; -} -.fa.fa-snowflake-o { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} -.fa.fa-snowflake-o:before { - content: "\f2dc"; -} -.fa.fa-spotify, -.fa.fa-superpowers, -.fa.fa-wpexplorer { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} +.fa.fa-glass:before{content:"\f000"}.fa.fa-envelope-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-star-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-home:before{content:"\f015"}.fa.fa-file-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-list-alt:before{content:"\f022"}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-edit{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-edit:before{content:"\f044"}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart-o:before,.fa.fa-bar-chart:before{content:"\e0e3"}.fa.fa-twitter-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-twitter-square:before{content:"\f081"}.fa.fa-facebook-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-square:before{content:"\f082"}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-github-square:before{content:"\f092"}.fa.fa-lemon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-globe:before{content:"\f57d"}.fa.fa-tasks:before{content:"\f828"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-cut:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-save{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-save:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-magic:before{content:"\e2ca"}.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pinterest-square:before{content:"\f0d3"}.fa.fa-google-plus-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-square:before{content:"\f0d4"}.fa.fa-google-plus{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f625"}.fa.fa-comment-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard:before{content:"\f0ea"}.fa.fa-lightbulb-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f0ed"}.fa.fa-cloud-upload:before{content:"\f0ee"}.fa.fa-bell-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f5c0"}.fa.fa-star-half-empty{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f5c0"}.fa.fa-star-half-full{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f5c0"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before,.fa.fa-unlink:before{content:"\f127"}.fa.fa-calendar-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-unlock-alt:before{content:"\f09c"}.fa.fa-minus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\24"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\e1bc"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f884"}.fa.fa-sort-amount-desc:before{content:"\f160"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-square:before{content:"\f431"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-xing-square:before{content:"\f169"}.fa.fa-youtube-play{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-tumblr-square:before{content:"\f174"}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo-square:before{content:"\f194"}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\e2bb"}.fa.fa-plus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-yahoo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-reddit-square:before{content:"\f1a2"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-behance-square:before{content:"\f1b5"}.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-steam-square:before{content:"\f1b7"}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-life-bouy:before,.fa.fa-life-buoy:before,.fa.fa-life-saver:before,.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-git-square:before{content:"\f1d2"}.fa.fa-git,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-futbol-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-lastfm-square:before{content:"\f203"}.fa.fa-angellist,.fa.fa-ioxhost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before,.fa.fa-transgender:before{content:"\f224"}.fa.fa-transgender-alt:before{content:"\f225"}.fa.fa-facebook-official{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-clone{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-odnoklassniki-square:before{content:"\f264"}.fa.fa-chrome,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-internet-explorer,.fa.fa-opera,.fa.fa-safari,.fa.fa-wikipedia-w{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo,.fa.fa-viadeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-viadeo-square:before{content:"\f2aa"}.fa.fa-snapchat,.fa.fa-snapchat-ghost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-ghost:before{content:"\f2ab"}.fa.fa-snapchat-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-square:before{content:"\f2ad"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-themeisle,.fa.fa-yoast{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-meetup,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 6 Brands";font-weight:400} \ No newline at end of file diff --git a/html/font-awesome/webfonts/fa-regular-400.eot b/html/font-awesome/webfonts/fa-regular-400.eot deleted file mode 100644 index d62be2fad885..000000000000 Binary files a/html/font-awesome/webfonts/fa-regular-400.eot and /dev/null differ diff --git a/html/font-awesome/webfonts/fa-regular-400.ttf b/html/font-awesome/webfonts/fa-regular-400.ttf new file mode 100644 index 000000000000..c5ac00957778 Binary files /dev/null and b/html/font-awesome/webfonts/fa-regular-400.ttf differ diff --git a/html/font-awesome/webfonts/fa-regular-400.woff b/html/font-awesome/webfonts/fa-regular-400.woff deleted file mode 100644 index 43b1a9ae49db..000000000000 Binary files a/html/font-awesome/webfonts/fa-regular-400.woff and /dev/null differ diff --git a/html/font-awesome/webfonts/fa-solid-900.eot b/html/font-awesome/webfonts/fa-solid-900.eot deleted file mode 100644 index c77baa8d46ab..000000000000 Binary files a/html/font-awesome/webfonts/fa-solid-900.eot and /dev/null differ diff --git a/html/font-awesome/webfonts/fa-solid-900.ttf b/html/font-awesome/webfonts/fa-solid-900.ttf new file mode 100644 index 000000000000..43ba1cc7d94f Binary files /dev/null and b/html/font-awesome/webfonts/fa-solid-900.ttf differ diff --git a/html/font-awesome/webfonts/fa-solid-900.woff b/html/font-awesome/webfonts/fa-solid-900.woff deleted file mode 100644 index 77c1786227f5..000000000000 Binary files a/html/font-awesome/webfonts/fa-solid-900.woff and /dev/null differ diff --git a/html/font-awesome/webfonts/fa-v4compatibility.ttf b/html/font-awesome/webfonts/fa-v4compatibility.ttf new file mode 100644 index 000000000000..243bc25bd5ee Binary files /dev/null and b/html/font-awesome/webfonts/fa-v4compatibility.ttf differ diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index f7e2e158d422..aed7e9b4fbf4 100644 Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ diff --git a/icons/effects/cutting_effect.dmi b/icons/effects/cutting_effect.dmi new file mode 100644 index 000000000000..e8b4abeec5d0 Binary files /dev/null and b/icons/effects/cutting_effect.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 0aa256c631e4..bb63eb2b7f0e 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/effects/magic.dmi b/icons/effects/magic.dmi new file mode 100644 index 000000000000..480332df1349 Binary files /dev/null and b/icons/effects/magic.dmi differ diff --git a/icons/effects/particles/bonfire.dmi b/icons/effects/particles/bonfire.dmi new file mode 100644 index 000000000000..e8e2e36346da Binary files /dev/null and b/icons/effects/particles/bonfire.dmi differ diff --git a/icons/effects/particles/echo.dmi b/icons/effects/particles/echo.dmi new file mode 100644 index 000000000000..60a243a8a7be Binary files /dev/null and b/icons/effects/particles/echo.dmi differ diff --git a/icons/effects/particles/generic.dmi b/icons/effects/particles/generic.dmi new file mode 100644 index 000000000000..dfbb1a47a6ef Binary files /dev/null and b/icons/effects/particles/generic.dmi differ diff --git a/icons/effects/particles/goop.dmi b/icons/effects/particles/goop.dmi new file mode 100644 index 000000000000..673c1a7ad5b6 Binary files /dev/null and b/icons/effects/particles/goop.dmi differ diff --git a/icons/effects/particles/pollen.dmi b/icons/effects/particles/pollen.dmi new file mode 100644 index 000000000000..559c4d1846f6 Binary files /dev/null and b/icons/effects/particles/pollen.dmi differ diff --git a/icons/effects/particles/smoke.dmi b/icons/effects/particles/smoke.dmi new file mode 100644 index 000000000000..4a3239499b96 Binary files /dev/null and b/icons/effects/particles/smoke.dmi differ diff --git a/icons/effects/concrete_damage.dmi b/icons/effects/wall_damage.dmi similarity index 100% rename from icons/effects/concrete_damage.dmi rename to icons/effects/wall_damage.dmi diff --git a/icons/effects/weather_effects.dmi b/icons/effects/weather_effects.dmi index a8a7185af500..f76e34ec71ec 100644 Binary files a/icons/effects/weather_effects.dmi and b/icons/effects/weather_effects.dmi differ diff --git a/icons/hud/radial.dmi b/icons/hud/radial.dmi new file mode 100644 index 000000000000..9786d403e0de Binary files /dev/null and b/icons/hud/radial.dmi differ diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index 60ada01078d7..99de0dbf9441 100644 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/mecha/inteq_gygax.dmi b/icons/mecha/inteq_gygax.dmi new file mode 100644 index 000000000000..08105d783ab9 Binary files /dev/null and b/icons/mecha/inteq_gygax.dmi differ diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi index b894d9191225..2993487cb850 100644 Binary files a/icons/mecha/mecha.dmi and b/icons/mecha/mecha.dmi differ diff --git a/icons/mecha/mecha_equipment.dmi b/icons/mecha/mecha_equipment.dmi index 5e08a834a892..76549c15a3e0 100644 Binary files a/icons/mecha/mecha_equipment.dmi and b/icons/mecha/mecha_equipment.dmi differ diff --git a/icons/mob/actions/actions_flightsuit.dmi b/icons/mob/actions/actions_flightsuit.dmi deleted file mode 100644 index 3121c243555f..000000000000 Binary files a/icons/mob/actions/actions_flightsuit.dmi and /dev/null differ diff --git a/icons/mob/actions/actions_mod.dmi b/icons/mob/actions/actions_mod.dmi new file mode 100644 index 000000000000..7f030ad53d42 Binary files /dev/null and b/icons/mob/actions/actions_mod.dmi differ diff --git a/icons/mob/blob.dmi b/icons/mob/blob.dmi deleted file mode 100644 index a197581533c0..000000000000 Binary files a/icons/mob/blob.dmi and /dev/null differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 5508bc67523c..5ca5b6bd045d 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/back/backpacks.dmi b/icons/mob/clothing/back/backpacks.dmi new file mode 100644 index 000000000000..7138b440a4ad Binary files /dev/null and b/icons/mob/clothing/back/backpacks.dmi differ diff --git a/icons/mob/clothing/back/backpacks_kepori.dmi b/icons/mob/clothing/back/backpacks_kepori.dmi new file mode 100644 index 000000000000..557ee29267fd Binary files /dev/null and b/icons/mob/clothing/back/backpacks_kepori.dmi differ diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index 7568a1274d66..94728158d0c5 100644 Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi deleted file mode 100644 index 12ebf87128c3..000000000000 Binary files a/icons/mob/clothing/eyes.dmi and /dev/null differ diff --git a/icons/mob/clothing/eyes/eyes.dmi b/icons/mob/clothing/eyes/eyes.dmi new file mode 100644 index 000000000000..5c83d2dcfbc3 Binary files /dev/null and b/icons/mob/clothing/eyes/eyes.dmi differ diff --git a/icons/mob/clothing/faction/hardliners/head.dmi b/icons/mob/clothing/faction/hardliners/head.dmi index 839826a7c426..c9c1d5a73f0a 100644 Binary files a/icons/mob/clothing/faction/hardliners/head.dmi and b/icons/mob/clothing/faction/hardliners/head.dmi differ diff --git a/icons/mob/clothing/faction/hardliners/suits.dmi b/icons/mob/clothing/faction/hardliners/suits.dmi index 05f41eb00d25..669cb1534503 100644 Binary files a/icons/mob/clothing/faction/hardliners/suits.dmi and b/icons/mob/clothing/faction/hardliners/suits.dmi differ diff --git a/icons/mob/clothing/faction/ngr/head.dmi b/icons/mob/clothing/faction/ngr/head.dmi index c370f07aa0f3..eb0a316211ee 100644 Binary files a/icons/mob/clothing/faction/ngr/head.dmi and b/icons/mob/clothing/faction/ngr/head.dmi differ diff --git a/icons/mob/clothing/faction/ngr/suits.dmi b/icons/mob/clothing/faction/ngr/suits.dmi index ac4fceb11cae..05561408e367 100644 Binary files a/icons/mob/clothing/faction/ngr/suits.dmi and b/icons/mob/clothing/faction/ngr/suits.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 3246bbb24de2..ec9850144f7b 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index f207b2bfd826..d2970f6b9ead 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/head/armor.dmi b/icons/mob/clothing/head/armor.dmi index 38adc74f3317..a4b4491521ed 100644 Binary files a/icons/mob/clothing/head/armor.dmi and b/icons/mob/clothing/head/armor.dmi differ diff --git a/icons/mob/clothing/head/winterhood.dmi b/icons/mob/clothing/head/winterhood.dmi index 321896641390..cc3fd8a4e5d4 100644 Binary files a/icons/mob/clothing/head/winterhood.dmi and b/icons/mob/clothing/head/winterhood.dmi differ diff --git a/icons/mob/clothing/helmet_overlays.dmi b/icons/mob/clothing/helmet_overlays.dmi index 1c41c357a42a..a6860542bd57 100644 Binary files a/icons/mob/clothing/helmet_overlays.dmi and b/icons/mob/clothing/helmet_overlays.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index bfcc9970930f..8affe54d81d4 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/modsuit/mod_clothing.dmi b/icons/mob/clothing/modsuit/mod_clothing.dmi new file mode 100644 index 000000000000..27d4df3b9023 Binary files /dev/null and b/icons/mob/clothing/modsuit/mod_clothing.dmi differ diff --git a/icons/mob/clothing/modsuit/mod_modules.dmi b/icons/mob/clothing/modsuit/mod_modules.dmi new file mode 100644 index 000000000000..11259428cf4d Binary files /dev/null and b/icons/mob/clothing/modsuit/mod_modules.dmi differ diff --git a/icons/mob/clothing/species/kepori.dmi b/icons/mob/clothing/species/kepori.dmi index 1586e80e9b19..9e108db76b87 100644 Binary files a/icons/mob/clothing/species/kepori.dmi and b/icons/mob/clothing/species/kepori.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index ca1eb949aa40..b595f529b7ee 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/suits/hooded.dmi b/icons/mob/clothing/suits/hooded.dmi index e1f98d991357..7d2f53a13b06 100644 Binary files a/icons/mob/clothing/suits/hooded.dmi and b/icons/mob/clothing/suits/hooded.dmi differ diff --git a/icons/mob/clothing/suits/spacesuits.dmi b/icons/mob/clothing/suits/spacesuits.dmi index da5075195992..1a0f5001b34a 100644 Binary files a/icons/mob/clothing/suits/spacesuits.dmi and b/icons/mob/clothing/suits/spacesuits.dmi differ diff --git a/icons/mob/clothing/underwear/species/kepori/underwear_legs_kepori.dmi b/icons/mob/clothing/underwear/species/kepori/underwear_legs_kepori.dmi index 166e1a7624d9..133061149889 100644 Binary files a/icons/mob/clothing/underwear/species/kepori/underwear_legs_kepori.dmi and b/icons/mob/clothing/underwear/species/kepori/underwear_legs_kepori.dmi differ diff --git a/icons/mob/clothing/underwear/species/kepori/underwear_legs_keporiOLD.dmi b/icons/mob/clothing/underwear/species/kepori/underwear_legs_keporiOLD.dmi deleted file mode 100644 index aa9c16beb0ab..000000000000 Binary files a/icons/mob/clothing/underwear/species/kepori/underwear_legs_keporiOLD.dmi and /dev/null differ diff --git a/icons/mob/clothing/underwear/species/kepori/underwear_torso_kepori.dmi b/icons/mob/clothing/underwear/species/kepori/underwear_torso_kepori.dmi index 1a6a59cd5241..56c2757dc0f6 100644 Binary files a/icons/mob/clothing/underwear/species/kepori/underwear_torso_kepori.dmi and b/icons/mob/clothing/underwear/species/kepori/underwear_torso_kepori.dmi differ diff --git a/icons/mob/ethereal_parts.dmi b/icons/mob/ethereal_parts.dmi index 14e0c51037fb..c5d0c9b45f78 100644 Binary files a/icons/mob/ethereal_parts.dmi and b/icons/mob/ethereal_parts.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index a819dd3ca780..ab667d8d9337 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ 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 000000000000..169f91ce6eba Binary files /dev/null and b/icons/mob/inhands/equipment/gear_handle_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/gear_handle_righthand.dmi b/icons/mob/inhands/equipment/gear_handle_righthand.dmi new file mode 100644 index 000000000000..172f18e6095a Binary files /dev/null and b/icons/mob/inhands/equipment/gear_handle_righthand.dmi differ diff --git a/icons/mob/inhands/misc/concrete_bag_lefthand.dmi b/icons/mob/inhands/misc/concrete_bag_lefthand.dmi new file mode 100644 index 000000000000..9d331882dfc1 Binary files /dev/null and b/icons/mob/inhands/misc/concrete_bag_lefthand.dmi differ diff --git a/icons/mob/inhands/misc/concrete_bag_righthand.dmi b/icons/mob/inhands/misc/concrete_bag_righthand.dmi new file mode 100644 index 000000000000..707222f919ea Binary files /dev/null and b/icons/mob/inhands/misc/concrete_bag_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index 41093fde051e..49732e254e41 100644 Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index a8559339cd26..9797eb3ee366 100644 Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/icons/mob/simple_frontiersman.dmi b/icons/mob/simple_frontiersman.dmi new file mode 100644 index 000000000000..c5b9962fd236 Binary files /dev/null and b/icons/mob/simple_frontiersman.dmi differ diff --git a/icons/mob/species/human/rabbit.dmi b/icons/mob/species/human/rabbit.dmi index fcc6599f7356..26f0cb080d22 100644 Binary files a/icons/mob/species/human/rabbit.dmi and b/icons/mob/species/human/rabbit.dmi differ 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 000000000000..98218916f7c0 Binary files /dev/null and b/icons/mob/species/kepori/onmob_back_kepori.dmi differ diff --git a/icons/mob/species/kepori/onmob_eyes_kepori.dmi b/icons/mob/species/kepori/onmob_eyes_kepori.dmi index 1b6c6f68a3a5..e0151a96122d 100644 Binary files a/icons/mob/species/kepori/onmob_eyes_kepori.dmi and b/icons/mob/species/kepori/onmob_eyes_kepori.dmi differ diff --git a/icons/mob/species/kepori/onmob_head_kepori.dmi b/icons/mob/species/kepori/onmob_head_kepori.dmi index b4631838b75a..1557a2d30c0e 100644 Binary files a/icons/mob/species/kepori/onmob_head_kepori.dmi and b/icons/mob/species/kepori/onmob_head_kepori.dmi differ diff --git a/icons/mob/species/kepori/onmob_suit_kepori.dmi b/icons/mob/species/kepori/onmob_suit_kepori.dmi index 649853ea7280..ae5750dd0558 100644 Binary files a/icons/mob/species/kepori/onmob_suit_kepori.dmi and b/icons/mob/species/kepori/onmob_suit_kepori.dmi differ diff --git a/icons/mob/species/kepori/onmob_uniform_kepori.dmi b/icons/mob/species/kepori/onmob_uniform_kepori.dmi index d6f011cef312..f6d35ec4c795 100644 Binary files a/icons/mob/species/kepori/onmob_uniform_kepori.dmi and b/icons/mob/species/kepori/onmob_uniform_kepori.dmi differ diff --git a/icons/mob/species/misc/digitigrade_shoes.dmi b/icons/mob/species/misc/digitigrade_shoes.dmi index 9d08980b1e58..fb3dd6693471 100644 Binary files a/icons/mob/species/misc/digitigrade_shoes.dmi and b/icons/mob/species/misc/digitigrade_shoes.dmi differ diff --git a/icons/mob/species/misc/digitigrade_suits.dmi b/icons/mob/species/misc/digitigrade_suits.dmi index 8bdb115b0370..b622c59dfa73 100644 Binary files a/icons/mob/species/misc/digitigrade_suits.dmi and b/icons/mob/species/misc/digitigrade_suits.dmi differ diff --git a/icons/mob/species/vox/onmob_back_vox.dmi b/icons/mob/species/vox/onmob_back_vox.dmi index 953ff24a290e..c2000834877e 100644 Binary files a/icons/mob/species/vox/onmob_back_vox.dmi and b/icons/mob/species/vox/onmob_back_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_eyes_vox.dmi b/icons/mob/species/vox/onmob_eyes_vox.dmi index 947496cfb889..1945c69e7fe3 100644 Binary files a/icons/mob/species/vox/onmob_eyes_vox.dmi and b/icons/mob/species/vox/onmob_eyes_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_head_vox.dmi b/icons/mob/species/vox/onmob_head_vox.dmi index c470ee12dbe4..6b150380891f 100644 Binary files a/icons/mob/species/vox/onmob_head_vox.dmi and b/icons/mob/species/vox/onmob_head_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_neck_vox.dmi b/icons/mob/species/vox/onmob_neck_vox.dmi new file mode 100644 index 000000000000..1877ca277c96 Binary files /dev/null and b/icons/mob/species/vox/onmob_neck_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_suit_vox.dmi b/icons/mob/species/vox/onmob_suit_vox.dmi index a7052320af9c..47e2b625c116 100644 Binary files a/icons/mob/species/vox/onmob_suit_vox.dmi and b/icons/mob/species/vox/onmob_suit_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_uniform_vox.dmi b/icons/mob/species/vox/onmob_uniform_vox.dmi index 241b13861b49..04c77c742128 100644 Binary files a/icons/mob/species/vox/onmob_uniform_vox.dmi and b/icons/mob/species/vox/onmob_uniform_vox.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 86001423aeba..ec5f14748540 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/ammo_shotshells.dmi b/icons/obj/ammo_shotshells.dmi index fe37023686bd..55b00cdd0b21 100644 Binary files a/icons/obj/ammo_shotshells.dmi and b/icons/obj/ammo_shotshells.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 17bab47dc9ef..68fef79c160b 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/chemical/concrete.dmi b/icons/obj/chemical/concrete.dmi new file mode 100644 index 000000000000..26c557e42436 Binary files /dev/null and b/icons/obj/chemical/concrete.dmi differ diff --git a/icons/obj/clothing/back/backpacks.dmi b/icons/obj/clothing/back/backpacks.dmi new file mode 100644 index 000000000000..01e2c1d6923b Binary files /dev/null and b/icons/obj/clothing/back/backpacks.dmi differ diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi index 14af5186ae5c..99887c0a7613 100644 Binary files a/icons/obj/clothing/belt_overlays.dmi and b/icons/obj/clothing/belt_overlays.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index 20cc5db40a44..d1857dbe878d 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/clothing/eyes/eyes.dmi b/icons/obj/clothing/eyes/eyes.dmi new file mode 100644 index 000000000000..63b92986ca50 Binary files /dev/null and b/icons/obj/clothing/eyes/eyes.dmi differ diff --git a/icons/obj/clothing/faction/hardliners/head.dmi b/icons/obj/clothing/faction/hardliners/head.dmi index 5101eeedce9c..75f561897f17 100644 Binary files a/icons/obj/clothing/faction/hardliners/head.dmi and b/icons/obj/clothing/faction/hardliners/head.dmi differ diff --git a/icons/obj/clothing/faction/hardliners/suits.dmi b/icons/obj/clothing/faction/hardliners/suits.dmi index 39da1c952739..0c1cded6bc2a 100644 Binary files a/icons/obj/clothing/faction/hardliners/suits.dmi and b/icons/obj/clothing/faction/hardliners/suits.dmi differ diff --git a/icons/obj/clothing/faction/ngr/head.dmi b/icons/obj/clothing/faction/ngr/head.dmi index d2258c5565dd..92e8a9f45d90 100644 Binary files a/icons/obj/clothing/faction/ngr/head.dmi and b/icons/obj/clothing/faction/ngr/head.dmi differ diff --git a/icons/obj/clothing/faction/ngr/suits.dmi b/icons/obj/clothing/faction/ngr/suits.dmi index 49344c553e03..9c05f154c70c 100644 Binary files a/icons/obj/clothing/faction/ngr/suits.dmi and b/icons/obj/clothing/faction/ngr/suits.dmi differ diff --git a/icons/obj/clothing/flightsuit.dmi b/icons/obj/clothing/flightsuit.dmi deleted file mode 100644 index e08e74db1cec..000000000000 Binary files a/icons/obj/clothing/flightsuit.dmi and /dev/null differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi deleted file mode 100644 index 0b7af59b91e4..000000000000 Binary files a/icons/obj/clothing/glasses.dmi and /dev/null differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 402ce131a988..52d9036e0211 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/head/armor.dmi b/icons/obj/clothing/head/armor.dmi index 6757e591c853..8fbb59170268 100644 Binary files a/icons/obj/clothing/head/armor.dmi and b/icons/obj/clothing/head/armor.dmi differ diff --git a/icons/obj/clothing/head/winterhood.dmi b/icons/obj/clothing/head/winterhood.dmi index aa212eb48da2..c89538ccb0b3 100644 Binary files a/icons/obj/clothing/head/winterhood.dmi and b/icons/obj/clothing/head/winterhood.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index cbe3366557f0..9685db38db1e 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_clothing.dmi b/icons/obj/clothing/modsuit/mod_clothing.dmi new file mode 100644 index 000000000000..d2d9e0c72e37 Binary files /dev/null and b/icons/obj/clothing/modsuit/mod_clothing.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_construction.dmi b/icons/obj/clothing/modsuit/mod_construction.dmi new file mode 100644 index 000000000000..a6be94284af8 Binary files /dev/null and b/icons/obj/clothing/modsuit/mod_construction.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_modules.dmi b/icons/obj/clothing/modsuit/mod_modules.dmi new file mode 100644 index 000000000000..69affa3fa499 Binary files /dev/null and b/icons/obj/clothing/modsuit/mod_modules.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index 5a162a969132..00e1da5d54ea 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index d325c5098a73..e3ceffdb3329 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/suits/hooded.dmi b/icons/obj/clothing/suits/hooded.dmi index 6d449550ad43..7c3a70a0624c 100644 Binary files a/icons/obj/clothing/suits/hooded.dmi and b/icons/obj/clothing/suits/hooded.dmi differ diff --git a/icons/obj/food/ration.dmi b/icons/obj/food/ration.dmi index 5bcf1f2b490b..42cc013cc140 100644 Binary files a/icons/obj/food/ration.dmi and b/icons/obj/food/ration.dmi differ diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi index 1205fd888adc..d1baf327dd89 100644 Binary files a/icons/obj/food/soupsalad.dmi and b/icons/obj/food/soupsalad.dmi differ diff --git a/icons/obj/guncase.dmi b/icons/obj/guncase.dmi index 4941b965f2f8..83b5292a5cfd 100644 Binary files a/icons/obj/guncase.dmi and b/icons/obj/guncase.dmi differ diff --git a/icons/obj/guncase_48x32.dmi b/icons/obj/guncase_48x32.dmi deleted file mode 100644 index b5dc20bc64e5..000000000000 Binary files a/icons/obj/guncase_48x32.dmi and /dev/null differ diff --git a/icons/obj/guns/48x32guns.dmi b/icons/obj/guns/48x32guns.dmi index 960b9ec448af..708882c163aa 100644 Binary files a/icons/obj/guns/48x32guns.dmi and b/icons/obj/guns/48x32guns.dmi differ diff --git a/icons/obj/guns/attachments.dmi b/icons/obj/guns/attachments.dmi index 29ae084d5759..c06a2c7e109c 100644 Binary files a/icons/obj/guns/attachments.dmi and b/icons/obj/guns/attachments.dmi differ diff --git a/icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi b/icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi index d87a6f3c8433..e0567289abf6 100644 Binary files a/icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi and b/icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi differ diff --git a/icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi b/icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi index 7673c2f6d642..78e16bad6f98 100644 Binary files a/icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi and b/icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi differ diff --git a/icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi b/icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi index 4f9158d2d36d..fea6178e903e 100644 Binary files a/icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi and b/icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi differ diff --git a/icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi b/icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi index 4549f30f4ff9..2d5103ec36cc 100644 Binary files a/icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi and b/icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi differ diff --git a/icons/obj/guns/manufacturer/frontier_import/48x32.dmi b/icons/obj/guns/manufacturer/frontier_import/48x32.dmi index 149793c43c38..be95cfa90c14 100644 Binary files a/icons/obj/guns/manufacturer/frontier_import/48x32.dmi and b/icons/obj/guns/manufacturer/frontier_import/48x32.dmi differ diff --git a/icons/obj/guns/manufacturer/frontier_import/lefthand.dmi b/icons/obj/guns/manufacturer/frontier_import/lefthand.dmi index 33b3381bdfe0..e34bf3995dfd 100644 Binary files a/icons/obj/guns/manufacturer/frontier_import/lefthand.dmi and b/icons/obj/guns/manufacturer/frontier_import/lefthand.dmi differ diff --git a/icons/obj/guns/manufacturer/frontier_import/onmob.dmi b/icons/obj/guns/manufacturer/frontier_import/onmob.dmi index a0706579ccb5..e0b05e0ec63f 100644 Binary files a/icons/obj/guns/manufacturer/frontier_import/onmob.dmi and b/icons/obj/guns/manufacturer/frontier_import/onmob.dmi differ diff --git a/icons/obj/guns/manufacturer/frontier_import/righthand.dmi b/icons/obj/guns/manufacturer/frontier_import/righthand.dmi index 73945b8524df..30eeaa12d4e9 100644 Binary files a/icons/obj/guns/manufacturer/frontier_import/righthand.dmi and b/icons/obj/guns/manufacturer/frontier_import/righthand.dmi differ diff --git a/icons/obj/guns/manufacturer/hunterspride/48x32.dmi b/icons/obj/guns/manufacturer/hunterspride/48x32.dmi index 19b4202da78a..70bbef00e1af 100644 Binary files a/icons/obj/guns/manufacturer/hunterspride/48x32.dmi and b/icons/obj/guns/manufacturer/hunterspride/48x32.dmi differ diff --git a/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi b/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi index 4fb5eca5c011..6471cef8b5eb 100644 Binary files a/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi and b/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi differ diff --git a/icons/obj/guns/manufacturer/hunterspride/onmob.dmi b/icons/obj/guns/manufacturer/hunterspride/onmob.dmi index 8911c8fbb68f..361899e3c523 100644 Binary files a/icons/obj/guns/manufacturer/hunterspride/onmob.dmi and b/icons/obj/guns/manufacturer/hunterspride/onmob.dmi differ diff --git a/icons/obj/guns/manufacturer/hunterspride/righthand.dmi b/icons/obj/guns/manufacturer/hunterspride/righthand.dmi index 043167735662..fbf4f7cf3fbf 100644 Binary files a/icons/obj/guns/manufacturer/hunterspride/righthand.dmi and b/icons/obj/guns/manufacturer/hunterspride/righthand.dmi differ diff --git a/icons/obj/guns/manufacturer/inteq/48x32.dmi b/icons/obj/guns/manufacturer/inteq/48x32.dmi index e7deb0f12ce0..021ff448ecb5 100644 Binary files a/icons/obj/guns/manufacturer/inteq/48x32.dmi and b/icons/obj/guns/manufacturer/inteq/48x32.dmi differ diff --git a/icons/obj/guns/manufacturer/inteq/lefthand.dmi b/icons/obj/guns/manufacturer/inteq/lefthand.dmi index 19335eb44ff9..84707c2e5cdc 100644 Binary files a/icons/obj/guns/manufacturer/inteq/lefthand.dmi and b/icons/obj/guns/manufacturer/inteq/lefthand.dmi differ diff --git a/icons/obj/guns/manufacturer/inteq/onmob.dmi b/icons/obj/guns/manufacturer/inteq/onmob.dmi index f402ffd24e2c..a33746030b43 100644 Binary files a/icons/obj/guns/manufacturer/inteq/onmob.dmi and b/icons/obj/guns/manufacturer/inteq/onmob.dmi differ diff --git a/icons/obj/guns/manufacturer/inteq/righthand.dmi b/icons/obj/guns/manufacturer/inteq/righthand.dmi index 33d087f394f1..481731992655 100644 Binary files a/icons/obj/guns/manufacturer/inteq/righthand.dmi and b/icons/obj/guns/manufacturer/inteq/righthand.dmi differ diff --git a/icons/obj/guns/manufacturer/scarborough/48x32.dmi b/icons/obj/guns/manufacturer/scarborough/48x32.dmi index 361448b49a35..87d4d44caeb1 100644 Binary files a/icons/obj/guns/manufacturer/scarborough/48x32.dmi and b/icons/obj/guns/manufacturer/scarborough/48x32.dmi differ diff --git a/icons/obj/guns/manufacturer/scarborough/lefthand.dmi b/icons/obj/guns/manufacturer/scarborough/lefthand.dmi index 8d184d907db6..50cf4e8f0470 100644 Binary files a/icons/obj/guns/manufacturer/scarborough/lefthand.dmi and b/icons/obj/guns/manufacturer/scarborough/lefthand.dmi differ diff --git a/icons/obj/guns/manufacturer/scarborough/onmob.dmi b/icons/obj/guns/manufacturer/scarborough/onmob.dmi index 5127ecfed566..bc0e8e0d7c62 100644 Binary files a/icons/obj/guns/manufacturer/scarborough/onmob.dmi and b/icons/obj/guns/manufacturer/scarborough/onmob.dmi differ diff --git a/icons/obj/guns/manufacturer/scarborough/righthand.dmi b/icons/obj/guns/manufacturer/scarborough/righthand.dmi index 5dbfb0acfc25..bfa740f26549 100644 Binary files a/icons/obj/guns/manufacturer/scarborough/righthand.dmi and b/icons/obj/guns/manufacturer/scarborough/righthand.dmi differ diff --git a/icons/obj/guns/manufacturer/toys/48x32.dmi b/icons/obj/guns/manufacturer/toys/48x32.dmi new file mode 100644 index 000000000000..80ddcbad3c50 Binary files /dev/null and b/icons/obj/guns/manufacturer/toys/48x32.dmi differ diff --git a/icons/obj/guns/manufacturer/toys/lefthand.dmi b/icons/obj/guns/manufacturer/toys/lefthand.dmi new file mode 100644 index 000000000000..097eda46280e Binary files /dev/null and b/icons/obj/guns/manufacturer/toys/lefthand.dmi differ diff --git a/icons/obj/guns/manufacturer/toys/onmob.dmi b/icons/obj/guns/manufacturer/toys/onmob.dmi new file mode 100644 index 000000000000..4a5a4ba7b32a Binary files /dev/null and b/icons/obj/guns/manufacturer/toys/onmob.dmi differ diff --git a/icons/obj/guns/manufacturer/toys/righthand.dmi b/icons/obj/guns/manufacturer/toys/righthand.dmi new file mode 100644 index 000000000000..0a9759f4eea1 Binary files /dev/null and b/icons/obj/guns/manufacturer/toys/righthand.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index ab051d8a21bb..13ee4f9bfb1f 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/improvised.dmi b/icons/obj/improvised.dmi index 43fc38a4be59..20890be4cbc1 100644 Binary files a/icons/obj/improvised.dmi and b/icons/obj/improvised.dmi differ diff --git a/icons/obj/item/gear_packs.dmi b/icons/obj/item/gear_packs.dmi new file mode 100644 index 000000000000..76fb94bd4ff3 Binary files /dev/null and b/icons/obj/item/gear_packs.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi new file mode 100644 index 000000000000..e38eb539cf4d Binary files /dev/null and b/icons/obj/items.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi deleted file mode 100644 index a0ceaebd8383..000000000000 Binary files a/icons/obj/items_and_weapons.dmi and /dev/null differ diff --git a/icons/obj/machines/mining_machines.dmi b/icons/obj/machines/mining_machines.dmi index 96151f074e11..bcd6235d26a6 100644 Binary files a/icons/obj/machines/mining_machines.dmi and b/icons/obj/machines/mining_machines.dmi differ diff --git a/icons/obj/machines/suit_storage.dmi b/icons/obj/machines/suit_storage.dmi index a40d04f500c6..d58a9ef3c079 100644 Binary files a/icons/obj/machines/suit_storage.dmi and b/icons/obj/machines/suit_storage.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 337e3bf6d8da..efffc5cebb4a 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/mysterybox.dmi b/icons/obj/mysterybox.dmi deleted file mode 100644 index 0023dc066376..000000000000 Binary files a/icons/obj/mysterybox.dmi and /dev/null differ diff --git a/icons/obj/nutanks.dmi b/icons/obj/nutanks.dmi index 4365bdb86771..94e4c7288512 100644 Binary files a/icons/obj/nutanks.dmi and b/icons/obj/nutanks.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 1b156b9294f9..8479c100f1b0 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 89f94e16a65a..736a25d57f5f 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index df2add959648..5353677357cf 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index f5f04901af2a..af3c5cd4be2e 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 8f2566a98f8a..816d3671a8d9 100644 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 78aebb9416c4..2b95535dcb7b 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/icons/obj/transforming_energy.dmi b/icons/obj/transforming_energy.dmi deleted file mode 100644 index ff2f99832d1c..000000000000 Binary files a/icons/obj/transforming_energy.dmi and /dev/null differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 87cef669faf0..fdefd87860b5 100644 Binary files a/icons/obj/vehicles.dmi and b/icons/obj/vehicles.dmi differ diff --git a/icons/obj/weapon/axe.dmi b/icons/obj/weapon/axe.dmi new file mode 100644 index 000000000000..0ff8a4364833 Binary files /dev/null and b/icons/obj/weapon/axe.dmi differ diff --git a/icons/obj/weapon/baton.dmi b/icons/obj/weapon/baton.dmi new file mode 100644 index 000000000000..c39a8b4e073b Binary files /dev/null and b/icons/obj/weapon/baton.dmi differ diff --git a/icons/obj/weapon/blunt.dmi b/icons/obj/weapon/blunt.dmi new file mode 100644 index 000000000000..480515bbd794 Binary files /dev/null and b/icons/obj/weapon/blunt.dmi differ diff --git a/icons/obj/weapon/energy.dmi b/icons/obj/weapon/energy.dmi new file mode 100644 index 000000000000..5100d715923a Binary files /dev/null and b/icons/obj/weapon/energy.dmi differ diff --git a/icons/obj/item/knife.dmi b/icons/obj/weapon/knife.dmi similarity index 100% rename from icons/obj/item/knife.dmi rename to icons/obj/weapon/knife.dmi diff --git a/icons/obj/weapon/misc.dmi b/icons/obj/weapon/misc.dmi new file mode 100644 index 000000000000..9eabb2c3eaf7 Binary files /dev/null and b/icons/obj/weapon/misc.dmi differ diff --git a/icons/obj/weapon/spear.dmi b/icons/obj/weapon/spear.dmi new file mode 100644 index 000000000000..98b3761430ed Binary files /dev/null and b/icons/obj/weapon/spear.dmi differ diff --git a/icons/obj/weapon/sword.dmi b/icons/obj/weapon/sword.dmi new file mode 100644 index 000000000000..dc8fd8fd5d7d Binary files /dev/null and b/icons/obj/weapon/sword.dmi differ diff --git a/icons/stamp_icons/large_stamp-biodynamics.png b/icons/stamp_icons/large_stamp-biodynamics.png new file mode 100644 index 000000000000..0d09b4f37c00 Binary files /dev/null and b/icons/stamp_icons/large_stamp-biodynamics.png differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 398d5550f810..1dbb3a101fae 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/shiptest.dme b/shiptest.dme index c0d9a7d4df66..187540e66a26 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -25,6 +25,7 @@ #include "code\__DEFINES\_tick.dm" #include "code\__DEFINES\access.dm" #include "code\__DEFINES\achievements.dm" +#include "code\__DEFINES\actions.dm" #include "code\__DEFINES\admin.dm" #include "code\__DEFINES\anomalies.dm" #include "code\__DEFINES\antagonists.dm" @@ -42,13 +43,13 @@ #include "code\__DEFINES\chat.dm" #include "code\__DEFINES\cinematics.dm" #include "code\__DEFINES\cleaning.dm" +#include "code\__DEFINES\clothing.dm" #include "code\__DEFINES\colors.dm" #include "code\__DEFINES\combat.dm" #include "code\__DEFINES\configuration.dm" #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" @@ -66,6 +67,7 @@ #include "code\__DEFINES\food.dm" #include "code\__DEFINES\footsteps.dm" #include "code\__DEFINES\forensics.dm" +#include "code\__DEFINES\generators.dm" #include "code\__DEFINES\guns.dm" #include "code\__DEFINES\hud.dm" #include "code\__DEFINES\icon_smoothing.dm" @@ -94,6 +96,7 @@ #include "code\__DEFINES\menu.dm" #include "code\__DEFINES\misc.dm" #include "code\__DEFINES\mobs.dm" +#include "code\__DEFINES\mod.dm" #include "code\__DEFINES\monkeys.dm" #include "code\__DEFINES\move_force.dm" #include "code\__DEFINES\movement.dm" @@ -103,11 +106,13 @@ #include "code\__DEFINES\obj_flags.dm" #include "code\__DEFINES\overmap.dm" #include "code\__DEFINES\paper.dm" +#include "code\__DEFINES\particles.dm" #include "code\__DEFINES\pinpointers.dm" #include "code\__DEFINES\pipe_construction.dm" #include "code\__DEFINES\plumbing.dm" #include "code\__DEFINES\power.dm" #include "code\__DEFINES\preferences.dm" +#include "code\__DEFINES\processing.dm" #include "code\__DEFINES\procpath.dm" #include "code\__DEFINES\profile.dm" #include "code\__DEFINES\projectiles.dm" @@ -155,13 +160,30 @@ #include "code\__DEFINES\wires.dm" #include "code\__DEFINES\dcs\flags.dm" #include "code\__DEFINES\dcs\helpers.dm" -#include "code\__DEFINES\dcs\signals.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" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_object.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_clothing.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_food.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_grenade.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_hydroponic.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_implant.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_item.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_aquarium.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_machinery.dm" +#include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_supermatter.dm" #include "code\__HELPERS\_auxtools_api.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" +#include "code\__HELPERS\_planes.dm" #include "code\__HELPERS\_string_lists.dm" #include "code\__HELPERS\areas.dm" #include "code\__HELPERS\AStar.dm" +#include "code\__HELPERS\atoms.dm" #include "code\__HELPERS\bindings.dm" #include "code\__HELPERS\bitflag_lists.dm" #include "code\__HELPERS\chat.dm" @@ -173,12 +195,14 @@ #include "code\__HELPERS\files.dm" #include "code\__HELPERS\filters.dm" #include "code\__HELPERS\game.dm" +#include "code\__HELPERS\generators.dm" #include "code\__HELPERS\global_lists.dm" #include "code\__HELPERS\heap.dm" #include "code\__HELPERS\icon_smoothing.dm" #include "code\__HELPERS\icons.dm" #include "code\__HELPERS\level_traits.dm" #include "code\__HELPERS\lighting.dm" +#include "code\__HELPERS\maths.dm" #include "code\__HELPERS\matrices.dm" #include "code\__HELPERS\mobs.dm" #include "code\__HELPERS\mouse_control.dm" @@ -248,7 +272,6 @@ #include "code\_onclick\item_attack.dm" #include "code\_onclick\observer.dm" #include "code\_onclick\other_mobs.dm" -#include "code\_onclick\overmind.dm" #include "code\_onclick\pai.dm" #include "code\_onclick\telekinesis.dm" #include "code\_onclick\hud\_defines.dm" @@ -257,11 +280,8 @@ #include "code\_onclick\hud\alert.dm" #include "code\_onclick\hud\alien.dm" #include "code\_onclick\hud\alien_larva.dm" -#include "code\_onclick\hud\blob_overmind.dm" -#include "code\_onclick\hud\blobbernauthud.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" @@ -285,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" @@ -321,6 +340,7 @@ #include "code\controllers\subsystem\economy.dm" #include "code\controllers\subsystem\events.dm" #include "code\controllers\subsystem\explosions.dm" +#include "code\controllers\subsystem\faction.dm" #include "code\controllers\subsystem\fire_burning.dm" #include "code\controllers\subsystem\garbage.dm" #include "code\controllers\subsystem\icon_smooth.dm" @@ -348,6 +368,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" @@ -480,7 +501,6 @@ #include "code\datums\components\deployable.dm" #include "code\datums\components\dooropendeathproc.dm" #include "code\datums\components\earprotection.dm" -#include "code\datums\components\edible.dm" #include "code\datums\components\edit_complainer.dm" #include "code\datums\components\embedded.dm" #include "code\datums\components\empprotection.dm" @@ -496,6 +516,7 @@ #include "code\datums\components\hot_ice.dm" #include "code\datums\components\igniter.dm" #include "code\datums\components\infective.dm" +#include "code\datums\components\jetpack.dm" #include "code\datums\components\jousting.dm" #include "code\datums\components\knockback.dm" #include "code\datums\components\knockoff.dm" @@ -523,11 +544,11 @@ #include "code\datums\components\remote_materials.dm" #include "code\datums\components\riding.dm" #include "code\datums\components\rotation.dm" +#include "code\datums\components\shielded.dm" #include "code\datums\components\shrink.dm" #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" @@ -552,12 +573,13 @@ #include "code\datums\components\crafting\recipes\drink.dm" #include "code\datums\components\crafting\recipes\misc.dm" #include "code\datums\components\crafting\recipes\robot.dm" -#include "code\datums\components\crafting\recipes\tribal.dm" #include "code\datums\components\crafting\recipes\weapon.dm" #include "code\datums\components\fantasy\_fantasy.dm" #include "code\datums\components\fantasy\affix.dm" #include "code\datums\components\fantasy\prefixes.dm" #include "code\datums\components\fantasy\suffixes.dm" +#include "code\datums\components\food\edible.dm" +#include "code\datums\components\food\food_storage.dm" #include "code\datums\components\plumbing\_plumbing.dm" #include "code\datums\components\plumbing\chemical_acclimator.dm" #include "code\datums\components\plumbing\filter.dm" @@ -640,18 +662,21 @@ #include "code\datums\elements\cleaning.dm" #include "code\datums\elements\connect_loc.dm" #include "code\datums\elements\digitalcamo.dm" -#include "code\datums\elements\dunkable.dm" #include "code\datums\elements\earhealing.dm" #include "code\datums\elements\embed.dm" +#include "code\datums\elements\empprotection.dm" #include "code\datums\elements\firestacker.dm" #include "code\datums\elements\forced_gravity.dm" #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\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" #include "code\datums\elements\squish.dm" +#include "code\datums\elements\tool_bang.dm" #include "code\datums\elements\tool_flash.dm" #include "code\datums\elements\turf_transparency.dm" #include "code\datums\elements\undertile.dm" @@ -661,6 +686,9 @@ #include "code\datums\elements\world_icon.dm" #include "code\datums\elements\decals\_decals.dm" #include "code\datums\elements\decals\blood.dm" +#include "code\datums\elements\food\dunkable.dm" +#include "code\datums\elements\food\food_trash.dm" +#include "code\datums\elements\food\processable.dm" #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" #include "code\datums\helper_datums\icon_snapshot.dm" @@ -710,7 +738,6 @@ #include "code\datums\materials\_material.dm" #include "code\datums\materials\basemats.dm" #include "code\datums\materials\meat.dm" -#include "code\datums\materials\pizza.dm" #include "code\datums\mood_events\_mood_event.dm" #include "code\datums\mood_events\beauty_events.dm" #include "code\datums\mood_events\drink_events.dm" @@ -790,6 +817,7 @@ #include "code\datums\wires\fax.dm" #include "code\datums\wires\microwave.dm" #include "code\datums\wires\mines.dm" +#include "code\datums\wires\mod.dm" #include "code\datums\wires\mulebot.dm" #include "code\datums\wires\particle_accelerator.dm" #include "code\datums\wires\r_n_d.dm" @@ -814,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" @@ -829,6 +855,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" @@ -839,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" @@ -909,7 +930,6 @@ #include "code\game\machinery\requests_console.dm" #include "code\game\machinery\roulette_machine.dm" #include "code\game\machinery\scan_gate.dm" -#include "code\game\machinery\sheetifier.dm" #include "code\game\machinery\shieldgen.dm" #include "code\game\machinery\sleeper.dm" #include "code\game\machinery\slotmachine.dm" @@ -1096,6 +1116,12 @@ #include "code\game\objects\effects\effect_system\effects_smoke.dm" #include "code\game\objects\effects\effect_system\effects_sparks.dm" #include "code\game\objects\effects\effect_system\effects_water.dm" +#include "code\game\objects\effects\particles\acid.dm" +#include "code\game\objects\effects\particles\fire.dm" +#include "code\game\objects\effects\particles\misc.dm" +#include "code\game\objects\effects\particles\slime.dm" +#include "code\game\objects\effects\particles\smoke.dm" +#include "code\game\objects\effects\particles\water.dm" #include "code\game\objects\effects\spawners\bombspawner.dm" #include "code\game\objects\effects\spawners\bundle.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" @@ -1126,7 +1152,6 @@ #include "code\game\objects\items\cardboard_cutouts.dm" #include "code\game\objects\items\cards_ids.dm" #include "code\game\objects\items\cash.dm" -#include "code\game\objects\items\chainsaw.dm" #include "code\game\objects\items\charter.dm" #include "code\game\objects\items\chromosome.dm" #include "code\game\objects\items\chrono_eraser.dm" @@ -1146,19 +1171,16 @@ #include "code\game\objects\items\dna_injector.dm" #include "code\game\objects\items\documents.dm" #include "code\game\objects\items\door_seal.dm" -#include "code\game\objects\items\dualsaber.dm" #include "code\game\objects\items\dyekit.dm" #include "code\game\objects\items\eightball.dm" -#include "code\game\objects\items\energyhalberd.dm" #include "code\game\objects\items\etherealdiscoball.dm" #include "code\game\objects\items\extinguisher.dm" -#include "code\game\objects\items\fireaxe.dm" #include "code\game\objects\items\flamethrower.dm" +#include "code\game\objects\items\gear_packs.dm" #include "code\game\objects\items\gift.dm" #include "code\game\objects\items\granters.dm" #include "code\game\objects\items\handcuffs.dm" #include "code\game\objects\items\holosign_creator.dm" -#include "code\game\objects\items\holy_weapons.dm" #include "code\game\objects\items\hot_potato.dm" #include "code\game\objects\items\hourglass.dm" #include "code\game\objects\items\inducer.dm" @@ -1171,10 +1193,8 @@ #include "code\game\objects\items\paiwire.dm" #include "code\game\objects\items\pet_carrier.dm" #include "code\game\objects\items\pinpointer.dm" -#include "code\game\objects\items\pitchfork.dm" #include "code\game\objects\items\plushes.dm" #include "code\game\objects\items\pneumaticCannon.dm" -#include "code\game\objects\items\powerfist.dm" #include "code\game\objects\items\puzzle_pieces.dm" #include "code\game\objects\items\RCD.dm" #include "code\game\objects\items\RCL.dm" @@ -1188,20 +1208,15 @@ #include "code\game\objects\items\shrapnel.dm" #include "code\game\objects\items\shuttle_creator.dm" #include "code\game\objects\items\signs.dm" -#include "code\game\objects\items\singularityhammer.dm" -#include "code\game\objects\items\spear.dm" -#include "code\game\objects\items\stunbaton.dm" #include "code\game\objects\items\survery_handheld.dm" #include "code\game\objects\items\taster.dm" #include "code\game\objects\items\teleportation.dm" -#include "code\game\objects\items\teleprod.dm" #include "code\game\objects\items\theft_tools.dm" #include "code\game\objects\items\toy_mechs.dm" #include "code\game\objects\items\toys.dm" #include "code\game\objects\items\trash.dm" #include "code\game\objects\items\vending_items.dm" #include "code\game\objects\items\wayfinding.dm" -#include "code\game\objects\items\weaponry.dm" #include "code\game\objects\items\attachments\_attachment.dm" #include "code\game\objects\items\attachments\bayonet.dm" #include "code\game\objects\items\attachments\laser_sight.dm" @@ -1234,7 +1249,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" @@ -1252,6 +1266,10 @@ #include "code\game\objects\items\devices\radio\headset.dm" #include "code\game\objects\items\devices\radio\intercom.dm" #include "code\game\objects\items\devices\radio\radio.dm" +#include "code\game\objects\items\food\_food.dm" +#include "code\game\objects\items\food\bread.dm" +#include "code\game\objects\items\food\cake.dm" +#include "code\game\objects\items\food\spaghetti.dm" #include "code\game\objects\items\grenades\antigravity.dm" #include "code\game\objects\items\grenades\chem_grenade.dm" #include "code\game\objects\items\grenades\clusterbuster.dm" @@ -1286,9 +1304,20 @@ #include "code\game\objects\items\implants\implanter.dm" #include "code\game\objects\items\implants\implantpad.dm" #include "code\game\objects\items\implants\implantuplink.dm" +#include "code\game\objects\items\melee\chainsaw.dm" +#include "code\game\objects\items\melee\dualsaber.dm" #include "code\game\objects\items\melee\energy.dm" +#include "code\game\objects\items\melee\energyhalberd.dm" +#include "code\game\objects\items\melee\fireaxe.dm" +#include "code\game\objects\items\melee\knife.dm" #include "code\game\objects\items\melee\misc.dm" +#include "code\game\objects\items\melee\powerfist.dm" +#include "code\game\objects\items\melee\spear.dm" +#include "code\game\objects\items\melee\stunbaton.dm" +#include "code\game\objects\items\melee\sword.dm" +#include "code\game\objects\items\melee\teleprod.dm" #include "code\game\objects\items\melee\transforming.dm" +#include "code\game\objects\items\melee\weaponry.dm" #include "code\game\objects\items\robot\ai_upgrades.dm" #include "code\game\objects\items\robot\robot_items.dm" #include "code\game\objects\items\robot\robot_parts.dm" @@ -1347,6 +1376,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" @@ -1360,7 +1391,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" @@ -1444,6 +1474,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" @@ -1462,6 +1493,7 @@ #include "code\game\turfs\change_turf.dm" #include "code\game\turfs\turf.dm" #include "code\game\turfs\closed\_closed.dm" +#include "code\game\turfs\closed\indestructible.dm" #include "code\game\turfs\closed\minerals.dm" #include "code\game\turfs\closed\walls.dm" #include "code\game\turfs\closed\wall\conc_walls.dm" @@ -1622,34 +1654,6 @@ #include "code\modules\antagonists\abductor\machinery\experiment.dm" #include "code\modules\antagonists\abductor\machinery\pad.dm" #include "code\modules\antagonists\ashwalker\ashwalker.dm" -#include "code\modules\antagonists\blob\blob.dm" -#include "code\modules\antagonists\blob\blob_mobs.dm" -#include "code\modules\antagonists\blob\blob_report.dm" -#include "code\modules\antagonists\blob\overmind.dm" -#include "code\modules\antagonists\blob\powers.dm" -#include "code\modules\antagonists\blob\blobstrains\_blobstrain.dm" -#include "code\modules\antagonists\blob\blobstrains\_reagent.dm" -#include "code\modules\antagonists\blob\blobstrains\blazing_oil.dm" -#include "code\modules\antagonists\blob\blobstrains\cryogenic_poison.dm" -#include "code\modules\antagonists\blob\blobstrains\debris_devourer.dm" -#include "code\modules\antagonists\blob\blobstrains\distributed_neurons.dm" -#include "code\modules\antagonists\blob\blobstrains\electromagnetic_web.dm" -#include "code\modules\antagonists\blob\blobstrains\energized_jelly.dm" -#include "code\modules\antagonists\blob\blobstrains\explosive_lattice.dm" -#include "code\modules\antagonists\blob\blobstrains\multiplex.dm" -#include "code\modules\antagonists\blob\blobstrains\networked_fibers.dm" -#include "code\modules\antagonists\blob\blobstrains\pressurized_slime.dm" -#include "code\modules\antagonists\blob\blobstrains\reactive_spines.dm" -#include "code\modules\antagonists\blob\blobstrains\regenerative_materia.dm" -#include "code\modules\antagonists\blob\blobstrains\replicating_foam.dm" -#include "code\modules\antagonists\blob\blobstrains\shifting_fragments.dm" -#include "code\modules\antagonists\blob\blobstrains\synchronous_mesh.dm" -#include "code\modules\antagonists\blob\structures\_blob.dm" -#include "code\modules\antagonists\blob\structures\core.dm" -#include "code\modules\antagonists\blob\structures\factory.dm" -#include "code\modules\antagonists\blob\structures\node.dm" -#include "code\modules\antagonists\blob\structures\resource.dm" -#include "code\modules\antagonists\blob\structures\shield.dm" #include "code\modules\antagonists\blood_contract\blood_contract.dm" #include "code\modules\antagonists\borer\borer.dm" #include "code\modules\antagonists\borer\borer_chems.dm" @@ -1684,21 +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\ritual.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" @@ -1737,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" @@ -1749,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" @@ -1856,9 +1842,7 @@ #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\awaymissions\mission_code\wildwest.dm" #include "code\modules\balloon_alert\balloon_alert.dm" #include "code\modules\buildmode\bm_mode.dm" #include "code\modules\buildmode\buildmode.dm" @@ -1869,9 +1853,9 @@ #include "code\modules\buildmode\submodes\basic.dm" #include "code\modules\buildmode\submodes\boom.dm" #include "code\modules\buildmode\submodes\copy.dm" -#include "code\modules\buildmode\submodes\lightmaker.dm" #include "code\modules\buildmode\submodes\delete.dm" #include "code\modules\buildmode\submodes\fill.dm" +#include "code\modules\buildmode\submodes\lightmaker.dm" #include "code\modules\buildmode\submodes\map_export.dm" #include "code\modules\buildmode\submodes\outfit.dm" #include "code\modules\buildmode\submodes\proccall.dm" @@ -1894,11 +1878,13 @@ #include "code\modules\cargo\blackmarket\blackmarket_market.dm" #include "code\modules\cargo\blackmarket\blackmarket_telepad.dm" #include "code\modules\cargo\blackmarket\blackmarket_uplink.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\ammo.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\clothing.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\consumables.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\emergency.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\explosives.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\misc.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\tech.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\tools.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\weapons.dm" #include "code\modules\cargo\bounties\assistant.dm" @@ -2003,7 +1989,6 @@ #include "code\modules\clothing\masks\hailer.dm" #include "code\modules\clothing\masks\miscellaneous.dm" #include "code\modules\clothing\neck\_neck.dm" -#include "code\modules\clothing\outfits\event.dm" #include "code\modules\clothing\outfits\plasmaman.dm" #include "code\modules\clothing\outfits\standard.dm" #include "code\modules\clothing\outfits\vv_outfit.dm" @@ -2024,7 +2009,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" @@ -2095,14 +2079,12 @@ #include "code\modules\events\abductor.dm" #include "code\modules\events\alien_infestation.dm" #include "code\modules\events\aurora_caelus.dm" -#include "code\modules\events\blob.dm" #include "code\modules\events\borers.dm" #include "code\modules\events\brain_trauma.dm" #include "code\modules\events\brand_intelligence.dm" #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" @@ -2114,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" @@ -2135,8 +2114,6 @@ #include "code\modules\events\holiday\vday.dm" #include "code\modules\events\holiday\xmas.dm" #include "code\modules\events\wizard\aid.dm" -#include "code\modules\events\wizard\blobies.dm" -#include "code\modules\events\wizard\curseditems.dm" #include "code\modules\events\wizard\departmentrevolt.dm" #include "code\modules\events\wizard\embeddies.dm" #include "code\modules\events\wizard\fakeexplosion.dm" @@ -2150,6 +2127,7 @@ #include "code\modules\events\wizard\rpgloot.dm" #include "code\modules\events\wizard\shuffle.dm" #include "code\modules\events\wizard\summons.dm" +#include "code\modules\faction\faction_datum.dm" #include "code\modules\fishing\bait.dm" #include "code\modules\fishing\fish_catalog.dm" #include "code\modules\fishing\fishing_equipment.dm" @@ -2177,9 +2155,7 @@ #include "code\modules\food_and_drinks\food\customizables.dm" #include "code\modules\food_and_drinks\food\ration.dm" #include "code\modules\food_and_drinks\food\snacks.dm" -#include "code\modules\food_and_drinks\food\snacks_bread.dm" #include "code\modules\food_and_drinks\food\snacks_burgers.dm" -#include "code\modules\food_and_drinks\food\snacks_cake.dm" #include "code\modules\food_and_drinks\food\snacks_egg.dm" #include "code\modules\food_and_drinks\food\snacks_frozen.dm" #include "code\modules\food_and_drinks\food\snacks_meat.dm" @@ -2190,7 +2166,6 @@ #include "code\modules\food_and_drinks\food\snacks_salad.dm" #include "code\modules\food_and_drinks\food\snacks_sandwichtoast.dm" #include "code\modules\food_and_drinks\food\snacks_soup.dm" -#include "code\modules\food_and_drinks\food\snacks_spaghetti.dm" #include "code\modules\food_and_drinks\food\snacks_vend.dm" #include "code\modules\food_and_drinks\food\snacks\dough.dm" #include "code\modules\food_and_drinks\food\snacks\meat.dm" @@ -2248,6 +2223,8 @@ #include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" #include "code\modules\hydroponics\beekeeping\honey_frame.dm" #include "code\modules\hydroponics\beekeeping\honeycomb.dm" +#include "code\modules\hydroponics\genes\attack.dm" +#include "code\modules\hydroponics\genes\backfire.dm" #include "code\modules\hydroponics\grown\ambrosia.dm" #include "code\modules\hydroponics\grown\apple.dm" #include "code\modules\hydroponics\grown\banana.dm" @@ -2374,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" @@ -2422,6 +2398,7 @@ #include "code\modules\mining\ores_coins.dm" #include "code\modules\mining\satchel_ore_boxdm.dm" #include "code\modules\mining\shelters.dm" +#include "code\modules\mining\equipment\angle_grinder.dm" #include "code\modules\mining\equipment\explorer_gear.dm" #include "code\modules\mining\equipment\kinetic_crusher.dm" #include "code\modules\mining\equipment\lazarus_injector.dm" @@ -2656,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" @@ -2769,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" @@ -2807,6 +2781,30 @@ #include "code\modules\mob_spawner\hivebot.dm" #include "code\modules\mob_spawner\spawner.dm" #include "code\modules\mob_spawner\spawner_componet.dm" +#include "code\modules\mod\mod_actions.dm" +#include "code\modules\mod\mod_activation.dm" +#include "code\modules\mod\mod_ai.dm" +#include "code\modules\mod\mod_clothes.dm" +#include "code\modules\mod\mod_construction.dm" +#include "code\modules\mod\mod_control.dm" +#include "code\modules\mod\mod_core.dm" +#include "code\modules\mod\mod_paint.dm" +#include "code\modules\mod\mod_theme.dm" +#include "code\modules\mod\mod_types.dm" +#include "code\modules\mod\mod_ui.dm" +#include "code\modules\mod\modules\_module.dm" +#include "code\modules\mod\modules\modules_antag.dm" +#include "code\modules\mod\modules\modules_engineering.dm" +#include "code\modules\mod\modules\modules_general.dm" +#include "code\modules\mod\modules\modules_maint.dm" +#include "code\modules\mod\modules\modules_medical.dm" +#include "code\modules\mod\modules\modules_ninja.dm" +#include "code\modules\mod\modules\modules_science.dm" +#include "code\modules\mod\modules\modules_security.dm" +#include "code\modules\mod\modules\modules_service.dm" +#include "code\modules\mod\modules\modules_storage.dm" +#include "code\modules\mod\modules\modules_supply.dm" +#include "code\modules\mod\modules\modules_visor.dm" #include "code\modules\modular_computers\laptop_vendor.dm" #include "code\modules\modular_computers\computers\_modular_computer_shared.dm" #include "code\modules\modular_computers\computers\item\computer.dm" @@ -2981,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" @@ -3025,7 +3022,6 @@ #include "code\modules\projectiles\boxes_magazines\generic_ammo_box.dm" #include "code\modules\projectiles\boxes_magazines\external\gauss.dm" #include "code\modules\projectiles\boxes_magazines\external\grenade.dm" -#include "code\modules\projectiles\boxes_magazines\external\lmg.dm" #include "code\modules\projectiles\boxes_magazines\external\pistol.dm" #include "code\modules\projectiles\boxes_magazines\external\rechargable.dm" #include "code\modules\projectiles\boxes_magazines\external\rifle.dm" @@ -3068,7 +3064,11 @@ #include "code\modules\projectiles\guns\energy\pulse.dm" #include "code\modules\projectiles\guns\energy\special.dm" #include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\manufacturer\clip_lanchester\ballistics.dm" +#include "code\modules\projectiles\guns\manufacturer\clip_lanchester\lasers.dm" #include "code\modules\projectiles\guns\manufacturer\etherbor\energy_gunsword.dm" +#include "code\modules\projectiles\guns\manufacturer\frontier_import\ballistics.dm" +#include "code\modules\projectiles\guns\manufacturer\scarborough\ballistics.dm" #include "code\modules\projectiles\guns\misc\beam_rifle.dm" #include "code\modules\projectiles\guns\misc\blastcannon.dm" #include "code\modules\projectiles\guns\misc\bow.dm" @@ -3151,6 +3151,7 @@ #include "code\modules\reagents\reagent_containers\borghydro.dm" #include "code\modules\reagents\reagent_containers\bottle.dm" #include "code\modules\reagents\reagent_containers\chem_pack.dm" +#include "code\modules\reagents\reagent_containers\concrete_bags.dm" #include "code\modules\reagents\reagent_containers\dropper.dm" #include "code\modules\reagents\reagent_containers\glass.dm" #include "code\modules\reagents\reagent_containers\hypospray.dm" @@ -3178,7 +3179,6 @@ #include "code\modules\religion\rites.dm" #include "code\modules\requests\request.dm" #include "code\modules\requests\requests_manager.dm" -#include "code\modules\research\bepis.dm" #include "code\modules\research\designs.dm" #include "code\modules\research\destructive_analyzer.dm" #include "code\modules\research\experimentor.dm" @@ -3269,7 +3269,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" @@ -3297,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" diff --git a/sound/ambience/storm_indoors.ogg b/sound/ambience/storm_indoors.ogg new file mode 100644 index 000000000000..62e9014a05ff Binary files /dev/null and b/sound/ambience/storm_indoors.ogg differ diff --git a/sound/ambience/storm_outdoors.ogg b/sound/ambience/storm_outdoors.ogg new file mode 100644 index 000000000000..35ae8e5297d6 Binary files /dev/null and b/sound/ambience/storm_outdoors.ogg differ diff --git a/sound/effects/splatter.ogg b/sound/effects/splatter.ogg new file mode 100644 index 000000000000..1c678cfe1268 Binary files /dev/null and b/sound/effects/splatter.ogg differ diff --git a/sound/health/bone/bone_break1.ogg b/sound/health/bone/bone_break1.ogg new file mode 100644 index 000000000000..dd2d22ec792b Binary files /dev/null and b/sound/health/bone/bone_break1.ogg differ diff --git a/sound/health/bone/bone_break2.ogg b/sound/health/bone/bone_break2.ogg new file mode 100644 index 000000000000..aa2537f894de Binary files /dev/null and b/sound/health/bone/bone_break2.ogg differ diff --git a/sound/health/bone/bone_break3.ogg b/sound/health/bone/bone_break3.ogg new file mode 100644 index 000000000000..9f66324be3b2 Binary files /dev/null and b/sound/health/bone/bone_break3.ogg differ diff --git a/sound/health/bone/bone_break4.ogg b/sound/health/bone/bone_break4.ogg new file mode 100644 index 000000000000..bbdfac1ecff3 Binary files /dev/null and b/sound/health/bone/bone_break4.ogg differ diff --git a/sound/health/bone/bone_break5.ogg b/sound/health/bone/bone_break5.ogg new file mode 100644 index 000000000000..dfee0e9baa72 Binary files /dev/null and b/sound/health/bone/bone_break5.ogg differ diff --git a/sound/health/bone/bone_break6.ogg b/sound/health/bone/bone_break6.ogg new file mode 100644 index 000000000000..d41cc8d7cf54 Binary files /dev/null and b/sound/health/bone/bone_break6.ogg differ diff --git a/sound/items/modsuit/atrocinator_step.ogg b/sound/items/modsuit/atrocinator_step.ogg new file mode 100644 index 000000000000..deda85ac354b Binary files /dev/null and b/sound/items/modsuit/atrocinator_step.ogg differ diff --git a/sound/items/modsuit/ballin.ogg b/sound/items/modsuit/ballin.ogg new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/sound/items/modsuit/ballout.ogg b/sound/items/modsuit/ballout.ogg new file mode 100644 index 000000000000..f911f1a6a61d Binary files /dev/null and b/sound/items/modsuit/ballout.ogg differ diff --git a/sound/items/modsuit/flamethrower.ogg b/sound/items/modsuit/flamethrower.ogg new file mode 100644 index 000000000000..447245d50b6e Binary files /dev/null and b/sound/items/modsuit/flamethrower.ogg differ diff --git a/sound/items/modsuit/inflate_bloon.ogg b/sound/items/modsuit/inflate_bloon.ogg new file mode 100644 index 000000000000..9b030d66ced7 Binary files /dev/null and b/sound/items/modsuit/inflate_bloon.ogg differ diff --git a/sound/items/modsuit/loader_charge.ogg b/sound/items/modsuit/loader_charge.ogg new file mode 100644 index 000000000000..61d5531f72ed Binary files /dev/null and b/sound/items/modsuit/loader_charge.ogg differ diff --git a/sound/items/modsuit/loader_launch.ogg b/sound/items/modsuit/loader_launch.ogg new file mode 100644 index 000000000000..513118f3c682 Binary files /dev/null and b/sound/items/modsuit/loader_launch.ogg differ diff --git a/sound/items/modsuit/magnetic_harness.ogg b/sound/items/modsuit/magnetic_harness.ogg new file mode 100644 index 000000000000..3d19fccc5698 Binary files /dev/null and b/sound/items/modsuit/magnetic_harness.ogg differ diff --git a/sound/items/modsuit/rewinder.ogg b/sound/items/modsuit/rewinder.ogg new file mode 100644 index 000000000000..2587562dc117 Binary files /dev/null and b/sound/items/modsuit/rewinder.ogg differ diff --git a/sound/items/modsuit/springlock.ogg b/sound/items/modsuit/springlock.ogg new file mode 100644 index 000000000000..8d0013d26300 Binary files /dev/null and b/sound/items/modsuit/springlock.ogg differ diff --git a/sound/items/modsuit/tem_shot.ogg b/sound/items/modsuit/tem_shot.ogg new file mode 100644 index 000000000000..50905b95f112 Binary files /dev/null and b/sound/items/modsuit/tem_shot.ogg differ diff --git a/sound/items/modsuit/time_anchor_set.ogg b/sound/items/modsuit/time_anchor_set.ogg new file mode 100644 index 000000000000..457f8e6dbaee Binary files /dev/null and b/sound/items/modsuit/time_anchor_set.ogg differ diff --git a/sound/mecha/hydraulic.ogg b/sound/mecha/hydraulic.ogg new file mode 100644 index 000000000000..3281ed2dc0f0 Binary files /dev/null and b/sound/mecha/hydraulic.ogg differ diff --git a/sound/weapons/anglegrinder.ogg b/sound/weapons/anglegrinder.ogg new file mode 100644 index 000000000000..c0bc5b593a18 Binary files /dev/null and b/sound/weapons/anglegrinder.ogg differ diff --git a/sound/weapons/gun/hmg/cm40.ogg b/sound/weapons/gun/hmg/cm40.ogg new file mode 100644 index 000000000000..b45507d29a0c Binary files /dev/null and b/sound/weapons/gun/hmg/cm40.ogg differ diff --git a/sound/weapons/gun/hmg/cm40_cocked.ogg b/sound/weapons/gun/hmg/cm40_cocked.ogg new file mode 100644 index 000000000000..694d4772e980 Binary files /dev/null and b/sound/weapons/gun/hmg/cm40_cocked.ogg differ diff --git a/sound/weapons/gun/hmg/cm40_reload.ogg b/sound/weapons/gun/hmg/cm40_reload.ogg new file mode 100644 index 000000000000..490bbd4fe783 Binary files /dev/null and b/sound/weapons/gun/hmg/cm40_reload.ogg differ diff --git a/sound/weapons/gun/hmg/cm40_unload.ogg b/sound/weapons/gun/hmg/cm40_unload.ogg new file mode 100644 index 000000000000..ae9e31aee537 Binary files /dev/null and b/sound/weapons/gun/hmg/cm40_unload.ogg differ diff --git a/sound/weapons/gun/hmg/shredder.ogg b/sound/weapons/gun/hmg/shredder.ogg new file mode 100644 index 000000000000..38ddfc247eea Binary files /dev/null and b/sound/weapons/gun/hmg/shredder.ogg differ diff --git a/sound/weapons/gun/hmg/shredder_cocked.ogg b/sound/weapons/gun/hmg/shredder_cocked.ogg new file mode 100644 index 000000000000..95130493d4c3 Binary files /dev/null and b/sound/weapons/gun/hmg/shredder_cocked.ogg differ diff --git a/sound/weapons/gun/hmg/shredder_cocked_alt.ogg b/sound/weapons/gun/hmg/shredder_cocked_alt.ogg new file mode 100644 index 000000000000..a73fd1b13b73 Binary files /dev/null and b/sound/weapons/gun/hmg/shredder_cocked_alt.ogg differ diff --git a/sound/weapons/gun/hmg/shredder_reload.ogg b/sound/weapons/gun/hmg/shredder_reload.ogg new file mode 100644 index 000000000000..c7614184d3dd Binary files /dev/null and b/sound/weapons/gun/hmg/shredder_reload.ogg differ diff --git a/sound/weapons/gun/hmg/shredder_unload.ogg b/sound/weapons/gun/hmg/shredder_unload.ogg new file mode 100644 index 000000000000..01e6229aba62 Binary files /dev/null and b/sound/weapons/gun/hmg/shredder_unload.ogg differ diff --git a/sound/weapons/gun/l6/shot_old.ogg b/sound/weapons/gun/l6/shot_old.ogg deleted file mode 100644 index e6c1a9abe958..000000000000 Binary files a/sound/weapons/gun/l6/shot_old.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/asp.ogg b/sound/weapons/gun/pistol/asp.ogg new file mode 100644 index 000000000000..ca7edcb67c8e Binary files /dev/null and b/sound/weapons/gun/pistol/asp.ogg differ diff --git a/sound/weapons/gun/pistol/cm23.ogg b/sound/weapons/gun/pistol/cm23.ogg new file mode 100644 index 000000000000..f207a4cda894 Binary files /dev/null and b/sound/weapons/gun/pistol/cm23.ogg differ diff --git a/sound/weapons/gun/pistol/cm70.ogg b/sound/weapons/gun/pistol/cm70.ogg new file mode 100644 index 000000000000..2b672fcfb352 Binary files /dev/null and b/sound/weapons/gun/pistol/cm70.ogg differ diff --git a/sound/weapons/gun/pistol/mauler.ogg b/sound/weapons/gun/pistol/mauler.ogg new file mode 100644 index 000000000000..70fb1f9f6eca Binary files /dev/null and b/sound/weapons/gun/pistol/mauler.ogg differ diff --git a/sound/weapons/gun/pistol/rattlesnake.ogg b/sound/weapons/gun/pistol/rattlesnake.ogg new file mode 100644 index 000000000000..34e0412f823d Binary files /dev/null and b/sound/weapons/gun/pistol/rattlesnake.ogg differ diff --git a/sound/weapons/gun/pistol/shot_alt_old.ogg b/sound/weapons/gun/pistol/shot_alt_old.ogg deleted file mode 100644 index 583c3f36034d..000000000000 Binary files a/sound/weapons/gun/pistol/shot_alt_old.ogg and /dev/null differ diff --git a/sound/weapons/gun/pistol/shot_old.ogg b/sound/weapons/gun/pistol/shot_old.ogg deleted file mode 100644 index fcf8ad62346b..000000000000 Binary files a/sound/weapons/gun/pistol/shot_old.ogg and /dev/null differ diff --git a/sound/weapons/gun/revolver/shot.ogg b/sound/weapons/gun/revolver/shot.ogg index d02d1c750c24..91e480bd152a 100644 Binary files a/sound/weapons/gun/revolver/shot.ogg and b/sound/weapons/gun/revolver/shot.ogg differ diff --git a/sound/weapons/gun/revolver/shot_alt_old.ogg b/sound/weapons/gun/revolver/shot_alt_old.ogg deleted file mode 100644 index fcd3b99ff80c..000000000000 Binary files a/sound/weapons/gun/revolver/shot_alt_old.ogg and /dev/null differ diff --git a/sound/weapons/gun/revolver/shot_old.ogg b/sound/weapons/gun/revolver/shot_old.ogg deleted file mode 100644 index 6c574829732e..000000000000 Binary files a/sound/weapons/gun/revolver/shot_old.ogg and /dev/null differ diff --git a/sound/weapons/gun/revolver/shot_old_new.ogg b/sound/weapons/gun/revolver/shot_old_new.ogg deleted file mode 100644 index 91e480bd152a..000000000000 Binary files a/sound/weapons/gun/revolver/shot_old_new.ogg and /dev/null differ diff --git a/sound/weapons/gun/revolver/viper.ogg b/sound/weapons/gun/revolver/viper.ogg new file mode 100644 index 000000000000..8132d556869c Binary files /dev/null and b/sound/weapons/gun/revolver/viper.ogg differ diff --git a/sound/weapons/gun/revolver/viper_prime.ogg b/sound/weapons/gun/revolver/viper_prime.ogg new file mode 100644 index 000000000000..54ad25134ad8 Binary files /dev/null and b/sound/weapons/gun/revolver/viper_prime.ogg differ diff --git a/sound/weapons/gun/rifle/cm82.ogg b/sound/weapons/gun/rifle/cm82.ogg new file mode 100644 index 000000000000..a1bf69ae00f2 Binary files /dev/null and b/sound/weapons/gun/rifle/cm82.ogg differ diff --git a/sound/weapons/gun/rifle/cm82_reload.ogg b/sound/weapons/gun/rifle/cm82_reload.ogg new file mode 100644 index 000000000000..133ad5aede3a Binary files /dev/null and b/sound/weapons/gun/rifle/cm82_reload.ogg differ diff --git a/sound/weapons/gun/rifle/cm82_unload.ogg b/sound/weapons/gun/rifle/cm82_unload.ogg new file mode 100644 index 000000000000..af0b43ecef90 Binary files /dev/null and b/sound/weapons/gun/rifle/cm82_unload.ogg differ diff --git a/sound/weapons/gun/rifle/f4.ogg b/sound/weapons/gun/rifle/f4.ogg new file mode 100644 index 000000000000..75c571db1881 Binary files /dev/null and b/sound/weapons/gun/rifle/f4.ogg differ diff --git a/sound/weapons/gun/rifle/gal.ogg b/sound/weapons/gun/rifle/gal.ogg deleted file mode 100644 index 25402e36cc61..000000000000 Binary files a/sound/weapons/gun/rifle/gal.ogg and /dev/null differ diff --git a/sound/weapons/gun/rifle/hydra.ogg b/sound/weapons/gun/rifle/hydra.ogg new file mode 100644 index 000000000000..180a4082cac8 Binary files /dev/null and b/sound/weapons/gun/rifle/hydra.ogg differ diff --git a/sound/weapons/gun/rifle/shot_old.ogg b/sound/weapons/gun/rifle/shot_old.ogg deleted file mode 100644 index acdb447ca8fd..000000000000 Binary files a/sound/weapons/gun/rifle/shot_old.ogg and /dev/null differ diff --git a/sound/weapons/gun/shotgun/shot_alt_old.ogg b/sound/weapons/gun/shotgun/shot_alt_old.ogg deleted file mode 100644 index 48bea46d5cb7..000000000000 Binary files a/sound/weapons/gun/shotgun/shot_alt_old.ogg and /dev/null differ diff --git a/sound/weapons/gun/shotgun/shot_old.ogg b/sound/weapons/gun/shotgun/shot_old.ogg deleted file mode 100644 index e999bb9bb7f7..000000000000 Binary files a/sound/weapons/gun/shotgun/shot_old.ogg and /dev/null differ diff --git a/sound/weapons/gun/smg/cm5.ogg b/sound/weapons/gun/smg/cm5.ogg new file mode 100644 index 000000000000..6c363db926f6 Binary files /dev/null and b/sound/weapons/gun/smg/cm5.ogg differ diff --git a/sound/weapons/gun/smg/cm5_reload.ogg b/sound/weapons/gun/smg/cm5_reload.ogg new file mode 100644 index 000000000000..2a108e9e60ec Binary files /dev/null and b/sound/weapons/gun/smg/cm5_reload.ogg differ diff --git a/sound/weapons/gun/smg/cm5_unload.ogg b/sound/weapons/gun/smg/cm5_unload.ogg new file mode 100644 index 000000000000..e4d3ef42db38 Binary files /dev/null and b/sound/weapons/gun/smg/cm5_unload.ogg differ diff --git a/sound/weapons/gun/smg/cobra.ogg b/sound/weapons/gun/smg/cobra.ogg new file mode 100644 index 000000000000..314fce64c4f5 Binary files /dev/null and b/sound/weapons/gun/smg/cobra.ogg differ diff --git a/sound/weapons/gun/smg/pounder.ogg b/sound/weapons/gun/smg/pounder.ogg new file mode 100644 index 000000000000..c9e6faf8e1ef Binary files /dev/null and b/sound/weapons/gun/smg/pounder.ogg differ diff --git a/sound/weapons/gun/smg/pounder_cocked.ogg b/sound/weapons/gun/smg/pounder_cocked.ogg new file mode 100644 index 000000000000..76929be2f066 Binary files /dev/null and b/sound/weapons/gun/smg/pounder_cocked.ogg differ diff --git a/sound/weapons/gun/smg/pounder_reload.ogg b/sound/weapons/gun/smg/pounder_reload.ogg new file mode 100644 index 000000000000..55bcbc5aa87e Binary files /dev/null and b/sound/weapons/gun/smg/pounder_reload.ogg differ diff --git a/sound/weapons/gun/smg/pounder_unload.ogg b/sound/weapons/gun/smg/pounder_unload.ogg new file mode 100644 index 000000000000..5ce78fc258a2 Binary files /dev/null and b/sound/weapons/gun/smg/pounder_unload.ogg differ diff --git a/sound/weapons/gun/smg/sidewinder.ogg b/sound/weapons/gun/smg/sidewinder.ogg new file mode 100644 index 000000000000..202d9ae5a81d Binary files /dev/null and b/sound/weapons/gun/smg/sidewinder.ogg differ diff --git a/sound/weapons/gun/smg/sidewinder_cocked.ogg b/sound/weapons/gun/smg/sidewinder_cocked.ogg new file mode 100644 index 000000000000..d5f7df2fc867 Binary files /dev/null and b/sound/weapons/gun/smg/sidewinder_cocked.ogg differ diff --git a/sound/weapons/gun/smg/sidewinder_reload.ogg b/sound/weapons/gun/smg/sidewinder_reload.ogg new file mode 100644 index 000000000000..11f8982beedd Binary files /dev/null and b/sound/weapons/gun/smg/sidewinder_reload.ogg differ diff --git a/sound/weapons/gun/smg/sidewinder_unload.ogg b/sound/weapons/gun/smg/sidewinder_unload.ogg new file mode 100644 index 000000000000..2d959bc0f42f Binary files /dev/null and b/sound/weapons/gun/smg/sidewinder_unload.ogg differ diff --git a/sound/weapons/gun/smg/spitter.ogg b/sound/weapons/gun/smg/spitter.ogg new file mode 100644 index 000000000000..81fd0263cb2a Binary files /dev/null and b/sound/weapons/gun/smg/spitter.ogg differ diff --git a/sound/weapons/gun/smg/spitter_cocked.ogg b/sound/weapons/gun/smg/spitter_cocked.ogg new file mode 100644 index 000000000000..b3d29c6f690a Binary files /dev/null and b/sound/weapons/gun/smg/spitter_cocked.ogg differ diff --git a/sound/weapons/gun/smg/spitter_reload.ogg b/sound/weapons/gun/smg/spitter_reload.ogg new file mode 100644 index 000000000000..4842c567de2a Binary files /dev/null and b/sound/weapons/gun/smg/spitter_reload.ogg differ diff --git a/sound/weapons/gun/smg/spitter_unload.ogg b/sound/weapons/gun/smg/spitter_unload.ogg new file mode 100644 index 000000000000..dffebe51b177 Binary files /dev/null and b/sound/weapons/gun/smg/spitter_unload.ogg differ diff --git a/sound/weapons/gun/sniper/cmf90.ogg b/sound/weapons/gun/sniper/cmf90.ogg new file mode 100644 index 000000000000..9468bfcc1b94 Binary files /dev/null and b/sound/weapons/gun/sniper/cmf90.ogg differ diff --git a/sound/weapons/gun/sniper/shot_old.ogg b/sound/weapons/gun/sniper/shot_old.ogg deleted file mode 100644 index 4c23868da15d..000000000000 Binary files a/sound/weapons/gun/sniper/shot_old.ogg and /dev/null differ diff --git a/strings/ipc_preference_adjectives.txt b/strings/ipc_preference_adjectives.txt index a243b2d77fc5..a106aa76ba8f 100644 --- a/strings/ipc_preference_adjectives.txt +++ b/strings/ipc_preference_adjectives.txt @@ -1,3 +1,5 @@ +Angsty +Awkward Bedraggled Brawny Bulky @@ -22,6 +24,7 @@ Fragile Frail Friendly Gentle +Gormless Hawkish Hefty Hobbling @@ -38,25 +41,39 @@ Mangled Masculine Messy Nimble +Pathetic +Peppy Petite Pompous Pugnacious +Quievering +Radical Repulsive Robust Rough Rusted Scarred Shifty +Shrewd Sickly Skittish Sleek Slender +Slimy Slovenly Sluggish +Sly +Smooth +Sniveling +Soulrendered Spacy Stiff Stony +Stout +Strapping +Sturdy Stylish +Tubular Unattractive Unremarkable Unsightly diff --git a/strings/locations.json b/strings/locations.json index 7a573dd86999..89af1acacd48 100644 --- a/strings/locations.json +++ b/strings/locations.json @@ -51,7 +51,7 @@ "Law Office", "Library", "Locker Room", - "Mech Bay", + "Exosuit Bay", "Medbay Central", "Medbay Maintenance", "Medbay Storage", diff --git a/strings/preference_adjectives.txt b/strings/preference_adjectives.txt index 0d67f16803f8..450e4c78901f 100644 --- a/strings/preference_adjectives.txt +++ b/strings/preference_adjectives.txt @@ -24,7 +24,6 @@ Effeminate Elegant Emaciated Energetic -Energetic Exasperated Exotic Faint @@ -41,7 +40,6 @@ Gentle Gloomy Gormless Hawkish -Hawkish Healthy Hefty Hobbling @@ -57,7 +55,6 @@ Lopsided Lovely Malnourished Mangled -Mangled Masculine Messy Muscular diff --git a/strings/tips.txt b/strings/tips.txt index 85eda2e01283..c2d32c979b9e 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -138,7 +138,7 @@ Epi-pens contain a small amount of formaldehyde, that prevents organs from decay Anomalies will give two frequencies when you analyze them, a primary and a secondary, unstable frequency. The primary will neutralize, and the unstable will more often than not cause an explosion or a similar negative effect. Landmines have 4 wires; one disarms the mind, the other deactivates the pressure plate, another blows it up, and another blows it up on a delay. You can tamper with landmines from range by pulsing the wires with signalers. -Not everyone is from their species' homeworld. It can be common for a human to have a Kalixcian or Teceian name, for example. +Not everyone is from their species' homeworld. It can be common for a human to have a Kalixcian or Tecetian name, for example. It can be fun to brainstorm new characters. Give it a shot, you might like it. You can create entire new shuttles and subshuttles with a shuttle manipulator either from RND or from the outpost. It's usually resource and money-intensive, so be prepared! Class 3 drills are incredibly dangerous alone or in small groups, even if you're experienced with mining and combat. Bring along a larger crew or call someone willing to help if you're thinking of taking them on. @@ -153,6 +153,6 @@ Vox are near-unmatched in hand-to-hand fighting; their kicks deal extra damage a IPC posibrains are contained in the chest, not the head. Shiptest has uptime on Wednesdays, Fridays, and Saturdays. Exosuits are not as durable as they might feel, and it is still wise to take cover with them. -Turning on strafing mode on a mech for combat is wise, and allows you to keep your firing lines constantly on the enemy. +Turning on strafing mode on an exosuit for combat is wise, and allows you to keep your firing lines constantly on the enemy. A Gygax's leg actuators drain the cell very quickly. Use sparingly. -Installing higher tier capacitors on mechs increases power efficiency on mech abilities, weapons, and idling. +Installing higher tier capacitors on exosuits increases power efficiency on exosuit abilities, weapons, and idling. diff --git a/tgui/package.json b/tgui/package.json index 2c5059e3626c..169af0aeafc7 100644 --- a/tgui/package.json +++ b/tgui/package.json @@ -56,7 +56,7 @@ "terser-webpack-plugin": "^5.1.4", "typescript": "^4.9.4", "url-loader": "^4.1.1", - "webpack": "^5.75.0", + "webpack": "^5.94.0", "webpack-bundle-analyzer": "^4.4.2", "webpack-cli": "^4.7.2" } 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/packages/tgui/constants.ts b/tgui/packages/tgui/constants.ts index 270ce9873bd6..e17958e787f3 100644 --- a/tgui/packages/tgui/constants.ts +++ b/tgui/packages/tgui/constants.ts @@ -239,7 +239,7 @@ const GASES = [ color: 'paleturquoise', }, { - id: 'hydrogen', + id: 'h2', path: '/datum/gas/hydrogen', name: 'Hydrogen', label: 'H₂', @@ -294,6 +294,20 @@ const GASES = [ label: 'Nitrium', color: 'brown', }, + { + id: 'cl2', + path: '/datum/gas/cl2', + name: 'Chlorine', + label: 'Cl₂', + color: 'yellow', + }, + { + id: 'hcl', + path: '/datum/gas/hcl', + name: 'Hydrogen Chloride', + label: 'HCl', + color: 'greenyellow', + }, ] as const; // Returns gas label based on gasId diff --git a/tgui/packages/tgui/interfaces/Bepis.js b/tgui/packages/tgui/interfaces/Bepis.js deleted file mode 100644 index 99718415ddc9..000000000000 --- a/tgui/packages/tgui/interfaces/Bepis.js +++ /dev/null @@ -1,123 +0,0 @@ -import { useBackend } from '../backend'; -import { - Box, - Button, - Grid, - LabeledList, - NumberInput, - Section, -} from '../components'; -import { Window } from '../layouts'; - -export const Bepis = (props, context) => { - const { act, data } = useBackend(context); - const { amount } = data; - return ( - |