From b3f3c4d811e45af68caa3ef97f73d4ec661d3fcb Mon Sep 17 00:00:00 2001 From: Nani <73274515+Naaanii@users.noreply.github.com> Date: Sun, 7 Apr 2024 02:27:12 +0400 Subject: [PATCH 001/123] Fixes Nade box storage. (#15583) --- code/game/objects/items/storage/boxes.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 5ad3952b67823..128090fc6f230 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -1147,7 +1147,7 @@ name = "\improper M40 HPDP grenade box" desc = "A secure box holding 15 M40 HPDP white phosphorous grenades. War crimes for the entire platoon!" storage_slots = 25 - max_storage_space = 30 + max_storage_space = 50 spawn_number = 25 spawn_type = /obj/item/explosive/grenade/phosphorus closed_overlay = "grenade_box_overlay_phosphorus" @@ -1191,7 +1191,7 @@ name = "razorburn grenade box" desc = "A secure box holding 15 razor burn grenades. Used for quick flank coverage." storage_slots = 25 - max_storage_space = 30 + max_storage_space = 50 spawn_number = 25 spawn_type = /obj/item/explosive/grenade/chem_grenade/razorburn_small closed_overlay = "grenade_box_overlay_razorburn" From 82941179b89c28068a049ac3b2a9533367a0ec50 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 6 Apr 2024 22:27:29 +0000 Subject: [PATCH 002/123] Automatic changelog for PR #15583 [ci skip] --- html/changelogs/AutoChangeLog-pr-15583.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15583.yml diff --git a/html/changelogs/AutoChangeLog-pr-15583.yml b/html/changelogs/AutoChangeLog-pr-15583.yml new file mode 100644 index 0000000000000..1314c8fd6d75e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15583.yml @@ -0,0 +1,4 @@ +author: "Naaanii" +delete-after: True +changes: + - bugfix: "fixes grenade box storage amount for some of the boxes." \ No newline at end of file From 04039368dfb03269a1fc8d3314c2361ac8f038ee Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 7 Apr 2024 00:55:02 +0000 Subject: [PATCH 003/123] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-15528.yml | 4 ---- html/changelogs/AutoChangeLog-pr-15548.yml | 4 ---- html/changelogs/AutoChangeLog-pr-15566.yml | 4 ---- html/changelogs/AutoChangeLog-pr-15567.yml | 4 ---- html/changelogs/AutoChangeLog-pr-15583.yml | 4 ---- html/changelogs/archive/2024-04.yml | 10 ++++++++++ 6 files changed, 10 insertions(+), 20 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-15528.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-15548.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-15566.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-15567.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-15583.yml diff --git a/html/changelogs/AutoChangeLog-pr-15528.yml b/html/changelogs/AutoChangeLog-pr-15528.yml deleted file mode 100644 index 00a72074895f9..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-15528.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "lbnesquik" -delete-after: True -changes: - - rscadd: "Added extra clone bays to TGS Theseus" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-15548.yml b/html/changelogs/AutoChangeLog-pr-15548.yml deleted file mode 100644 index a83a88c04a883..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-15548.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "blackdav123" -delete-after: True -changes: - - balance: "Gelida caves can now be plasmacut one tile deep." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-15566.yml b/html/changelogs/AutoChangeLog-pr-15566.yml deleted file mode 100644 index 89c5bbbff93fd..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-15566.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TiviPlus" -delete-after: True -changes: - - rscadd: "AI can use evasion" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-15567.yml b/html/changelogs/AutoChangeLog-pr-15567.yml deleted file mode 100644 index b420786e484da..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-15567.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TiviPlus" -delete-after: True -changes: - - rscadd: "Nymphs and non-minion AI will no longer be suicidal" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-15583.yml b/html/changelogs/AutoChangeLog-pr-15583.yml deleted file mode 100644 index 1314c8fd6d75e..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-15583.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Naaanii" -delete-after: True -changes: - - bugfix: "fixes grenade box storage amount for some of the boxes." \ No newline at end of file diff --git a/html/changelogs/archive/2024-04.yml b/html/changelogs/archive/2024-04.yml index 8292d8990fd1b..3101c156242ab 100644 --- a/html/changelogs/archive/2024-04.yml +++ b/html/changelogs/archive/2024-04.yml @@ -106,3 +106,13 @@ - code_imp: Updated faction comparison docs. yyzsong: - rscadd: Adds night vision goggles to valhalla +2024-04-07: + Naaanii: + - bugfix: fixes grenade box storage amount for some of the boxes. + TiviPlus: + - rscadd: AI can use evasion + - rscadd: Nymphs and non-minion AI will no longer be suicidal + blackdav123: + - balance: Gelida caves can now be plasmacut one tile deep. + lbnesquik: + - rscadd: Added extra clone bays to TGS Theseus From 7e0d42e45dee455b46659c3b09eff8b2f8ac6c76 Mon Sep 17 00:00:00 2001 From: nova_epee | Elsa Date: Sun, 7 Apr 2024 03:32:55 -0700 Subject: [PATCH 004/123] update smartgunner's job description (#15588) Co-authored-by: Elsa <4henrydinh@gmail.com> --- code/datums/jobs/job/marines.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/jobs/job/marines.dm b/code/datums/jobs/job/marines.dm index 1cb6e4c48d600..472c6629a8be9 100644 --- a/code/datums/jobs/job/marines.dm +++ b/code/datums/jobs/job/marines.dm @@ -240,15 +240,15 @@ You may not be a fully-fledged doctor, but you stand between life and death when You answer to the acting Squad Leader

Unlock Requirement: Starting Role

Gamemode Availability: Crash, Nuclear War


- When it comes to heavy firepower during the early stages of an operation, TGMC has provided the squad with Smartgunners. They are those who trained to operate the SG-29 Smart Machine Gun, an IFF heavy weapon that provides cover fire even directly behind the marines. Squad Smartgunners are best when fighting behind marines, as they can act as shields or during a hectic crossfire. + When it comes to heavy firepower during the early stages of an operation, TGMC has provided the squad with Smartgunners. They are those who trained to operate smart weapons, built-in IFF weapons that provides covering and suppressive fire even directly behind the marines. Squad Smartgunners are best when fighting behind marines, as they can act as shields or during a hectic crossfire.

- Duty: Be the backline of your pointmen, provide heavy weapons support with your smart machine gun. + Duty: Be the backline of your pointmen, provide heavy weapons support with your smart weapon. "} minimap_icon = "smartgunner" /datum/job/terragov/squad/smartgunner/radio_help_message(mob/M) . = ..() - to_chat(M, {"\nYou are the smartgunner. Your job is to provide heavy weapons support."}) + to_chat(M, {"\nYou are the smartgunner. Your job is to provide IFF weapons support."}) /datum/job/terragov/squad/smartgunner/after_spawn(mob/living/carbon/new_mob, mob/user, latejoin = FALSE) . = ..() From a1afeb29cf6049e8ebc4a67c82eb5db69793c6f6 Mon Sep 17 00:00:00 2001 From: ColdIronWarrior Date: Sun, 7 Apr 2024 06:36:17 -0400 Subject: [PATCH 005/123] Synth vendor edits (#15529) Co-authored-by: nefarious <72267018+nefarious6th@users.noreply.github.com> --- code/__DEFINES/loadout.dm | 55 ++++++------------- .../machinery/vending/new_marine_vendors.dm | 4 +- 2 files changed, 20 insertions(+), 39 deletions(-) diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index 514460a27c134..0417f7656d9c7 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -586,16 +586,12 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/clothing/under/rank/medical/green = list(CAT_STD, "Medical scrubs (green)", 0, "black"), /obj/item/clothing/under/rank/medical/purple = list(CAT_STD, "Medical scrubs (purple)", 0, "black"), /obj/item/clothing/under/marine/officer/engi = list(CAT_STD, "Engineering uniform", 0, "black"), - /obj/item/clothing/under/marine/officer/logistics = list(CAT_STD, "Officer uniform", 0, "black"), - /obj/item/clothing/under/marine/whites = list(CAT_STD, "TGMC dress uniform", 0, "black"), /obj/item/clothing/under/marine/officer/pilot = list(CAT_STD, "Pilot bodysuit", 0, "black"), /obj/item/clothing/under/marine/mp = list(CAT_STD, "Military police uniform", 0, "black"), - /obj/item/clothing/under/marine/officer/warden = list(CAT_STD, "Marine Officer uniform", 0, "black"), /obj/item/clothing/under/marine/officer/researcher = list(CAT_STD, "Researcher outfit", 0, "black"), /obj/item/clothing/under/rank/chef = list(CAT_STD, "Chef uniform", 0, "black"), /obj/item/clothing/under/rank/bartender = list(CAT_STD, "Bartender uniform", 0, "black"), /obj/item/clothing/under/rank/chef/altchef = list(CAT_STD, "Red Chef uniform", 0, "black"), - /obj/item/clothing/under/rank/vice = list(CAT_STD, "Vice Officer's uniform", 0, "black"), /obj/item/clothing/under/rank/janitor = list(CAT_STD, "Janitor uniform", 0, "black"), /obj/item/clothing/under/rank/det = list(CAT_STD, "Detective uniform", 0, "black"), /obj/item/clothing/under/rank/dispatch = list(CAT_STD, "Dispatch uniform", 0, "black"), @@ -603,21 +599,20 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/clothing/under/CM_uniform = list(CAT_STD, "Colonial Marshal uniform", 0, "black"), /obj/item/clothing/under/gentlesuit = list(CAT_STD, "Gentleman's Suit", 0, "black"), /obj/item/clothing/under/sl_suit = list(CAT_STD, "Amish Suit", 0, "black"), - /obj/item/clothing/under/kilt = list(CAT_STD, "Kilt", 0, "black"), /obj/item/clothing/under/waiter = list(CAT_STD, "Waiter's uniform", 0, "black"), /obj/item/clothing/suit/modular/xenonauten/pilot = list(CAT_SMR, "M70 flak jacket", 0, "synth-rcmarmstorage"), - /obj/item/clothing/suit/armor/bulletproof = list(CAT_SMR, "Bulletproof Vest", 0, "synth-armor"), - /obj/item/clothing/suit/surgical = list(CAT_SMR, "Surgical apron", 0, "synth-storage"), - /obj/item/clothing/suit/storage/labcoat = list(CAT_SMR, "Labcoat", 0, "synth-storage"), - /obj/item/clothing/suit/storage/labcoat/researcher = list(CAT_SMR, "Researcher's labcoat", 0, "synth-storage"), - /obj/item/clothing/suit/storage/hazardvest = list(CAT_SMR, "Orange reflective safety vest", 0, "synth-storage"), - /obj/item/clothing/suit/storage/hazardvest/lime = list(CAT_SMR, "Lime reflective safety vest", 0, "synth-storage"), - /obj/item/clothing/suit/storage/hazardvest/blue = list(CAT_SMR, "Blue reflective safety vest", 0, "synth-storage"), - /obj/item/clothing/suit/storage/CMB = list(CAT_SMR, "CMB Jacket", 0, "synth-storage"), - /obj/item/clothing/suit/storage/RO = list(CAT_SMR, "TGMC RO Jacket", 0, "synth-storage"), - /obj/item/clothing/suit/storage/lawyer/bluejacket = list(CAT_SMR, "Blue Jacket", 0, "synth-storage"), - /obj/item/clothing/suit/storage/lawyer/purpjacket = list(CAT_SMR, "Purple Jacket", 0, "synth-storage"), - /obj/item/clothing/suit/storage/snow_suit = list(CAT_SMR, "Snowsuit", 0, "synth-storage"), + /obj/item/clothing/suit/armor/bulletproof = list(CAT_SMR, "Bulletproof vest", 0, "synth-armor"), + /obj/item/clothing/suit/surgical = list(CAT_SMR, "Surgical apron", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/labcoat = list(CAT_SMR, "Labcoat", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/labcoat/paramedic = list(CAT_SMR, "Paramedic's labcoat", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/hazardvest = list(CAT_SMR, "Orange reflective safety vest", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/hazardvest/lime = list(CAT_SMR, "Lime reflective safety vest", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/hazardvest/blue = list(CAT_SMR, "Blue reflective safety vest", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/CMB = list(CAT_SMR, "CMB Jacket", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/RO = list(CAT_SMR, "TGMC RO Jacket", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/lawyer/bluejacket = list(CAT_SMR, "Blue Jacket", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/lawyer/purpjacket = list(CAT_SMR, "Purple Jacket", 0, "synth-cosmetic"), + /obj/item/clothing/suit/storage/snow_suit = list(CAT_SMR, "Snowsuit", 0, "synth-cosmetic"), /obj/item/clothing/suit/storage/chef = list(CAT_SMR, "Chef's apron", 0, "synth-storage"), /obj/item/clothing/suit/storage/wizrobe/gentlecoat = list(CAT_SMR, "Gentleman's Coat", 0, "synth-storage"), /obj/item/clothing/suit/storage/bomber = list(CAT_SMR, "Bomber Jacket", 0, "synth-storage"), @@ -628,7 +623,6 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/clothing/suit/wcoat = list(CAT_SMR, "Waistcoat", 0, "synth-cosmetic"), /obj/item/clothing/suit/ianshirt = list(CAT_SMR, "Ian Shirt", 0, "synth-cosmetic"), /obj/item/clothing/suit/suspenders = list(CAT_SMR, "Suspenders", 0, "synth-cosmetic"), - /obj/item/storage/backpack/industrial = list(CAT_BAK, "Industrial backpack", 0, "black"), /obj/item/storage/backpack/marine/corpsman = list(CAT_BAK, "TGMC corpsman backpack", 0, "black"), /obj/item/storage/backpack/marine/tech = list(CAT_BAK, "TGMC technician backpack", 0, "black"), /obj/item/storage/backpack/marine/engineerpack = list(CAT_BAK, "TGMC technician welderpack", 0, "black"), @@ -640,13 +634,9 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/armor_module/storage/uniform/black_vest = list(CAT_WEB, "Tactical Black Vest", 0, "black"), /obj/item/armor_module/storage/uniform/white_vest = list(CAT_WEB, "White medical vest", 0, "black"), /obj/item/armor_module/storage/uniform/surgery_webbing = list(CAT_WEB, "White surgical webbing", 0, "black"), - /obj/item/clothing/tie/red = list(CAT_WEB, "Red Tie", 0, "black"), - /obj/item/clothing/tie/blue = list(CAT_WEB, "Blue Tie", 0, "black"), - /obj/item/clothing/tie/horrible = list(CAT_WEB, "Horrible Tie", 0, "black"), /obj/item/clothing/gloves/insulated = list(CAT_GLO, "Insulated gloves", 0, "black"), + /obj/item/clothing/gloves/marine = list(CAT_GLO, "Combat gloves", 0, "synth-armor"), /obj/item/clothing/gloves/latex = list(CAT_GLO, "Latex gloves", 0, "black"), - /obj/item/clothing/gloves/marine/officer = list(CAT_GLO, "Officer gloves", 0, "black"), - /obj/item/clothing/gloves/white = list(CAT_GLO, "White gloves", 0, "black"), /obj/item/storage/belt/lifesaver/full = list(CAT_BEL, "Lifesaver belt", 0, "orange", "synth-attachable"), /obj/item/storage/belt/rig/medical = list(CAT_BEL, "Rig belt", 0, "black"), /obj/item/storage/belt/hypospraybelt/full = list(CAT_BEL, "Hypospray belt", 0, "black"), @@ -656,29 +646,20 @@ GLOBAL_LIST_INIT(synthetic_clothes_listed_products, list( /obj/item/clothing/shoes/leather = list(CAT_SHO, "Leather Shoes", 0, "synth-armor"), /obj/item/clothing/shoes/centcom = list(CAT_SHO, "Dress Shoes", 0, "synth-armor"), /obj/item/clothing/shoes/black = list(CAT_SHO, "Black Shoes", 0, "synth-armor"), - /obj/item/storage/pouch/general/large = list(CAT_POU, "General pouch", 0, "black"), /obj/item/storage/pouch/tools/full = list(CAT_POU, "Tool pouch", 0, "black"), /obj/item/storage/pouch/construction/full = list(CAT_POU, "Construction pouch", 0, "black"), - /obj/item/storage/pouch/electronics/full = list(CAT_POU, "Electronics pouch", 0, "black"), /obj/item/storage/pouch/medkit/medic = list(CAT_POU, "Medkit pouch", 0, "black"), /obj/item/storage/pouch/surgery = list(CAT_POU, "White surgical pouch", 0, "black"), - /obj/item/storage/holster/flarepouch/full = list(CAT_POU, "Flare pouch", 0, "black"), /obj/item/storage/pouch/field_pouch/full = list(CAT_POU, "Field pouch", 0, "black"), + /obj/item/clothing/head/modular/style/cap = list(CAT_SHN, "TGMC cap", 0, "synth-rcmarmstorage"), + /obj/item/clothing/head/modular/style/boonie = list(CAT_SHN, "Boonie hat", 0, "synth-rcmarmstorage"), + /obj/item/clothing/head/modular/style/classic_beret = list(CAT_SHN, "Marine beret", 0, "synth-rcmarmstorage"), + /obj/item/clothing/head/modular/style/ushanka = list(CAT_SHN, "Ushanka", 0, "synth-rcmarmstorage"), + /obj/item/clothing/head/modular/style/beanie = list(CAT_SHN, "Beanie", 0, "synth-rcmarmstorage"), /obj/item/clothing/head/hardhat = list(CAT_SHN, "Hard hat", 0, "black"), /obj/item/clothing/head/welding = list(CAT_SHN, "Welding helmet", 0, "black"), /obj/item/clothing/head/surgery/green = list(CAT_SHN, "Surgical cap", 0, "black"), - /obj/item/clothing/head/tgmccap = list(CAT_SHN, "TGMC cap", 0, "black"), - /obj/item/clothing/head/boonie = list(CAT_SHN, "Boonie hat", 0, "black"), - /obj/item/clothing/head/beret/marine = list(CAT_SHN, "Marine beret", 0, "black"), - /obj/item/clothing/head/tgmcberet/red = list(CAT_SHN, "MP beret", 0, "black"), - /obj/item/clothing/head/beret/eng = list(CAT_SHN, "Engineering beret", 0, "black"), - /obj/item/clothing/head/ushanka = list(CAT_SHN, "Ushanka", 0, "black"), /obj/item/clothing/head/collectable/tophat = list(CAT_SHN, "Top hat", 0, "black"), - /obj/item/clothing/head/beret = list(CAT_SHN, "Beret", 0, "black"), - /obj/item/clothing/head/beanie = list(CAT_SHN, "Beanie", 0, "black"), - /obj/item/clothing/head/beret/marine/logisticsofficer = list(CAT_SHN, "Logistics Officer Cap", 0, "black"), - /obj/item/clothing/head/beret/jan = list(CAT_SHN, "Purple Beret", 0, "black"), - /obj/item/clothing/head/tgmccap/ro = list(CAT_SHN, "RO's Cap", 0, "black"), /obj/item/clothing/head/bowlerhat = list(CAT_SHN, "Bowler hat", 0, "black"), /obj/item/clothing/head/hairflower = list(CAT_SHN, "Hairflower pin", 0, "black"), /obj/item/clothing/head/fez = list(CAT_SHN, "Fez", 0, "black"), diff --git a/code/game/objects/machinery/vending/new_marine_vendors.dm b/code/game/objects/machinery/vending/new_marine_vendors.dm index fb77cd042ee8e..8744032a37ea1 100644 --- a/code/game/objects/machinery/vending/new_marine_vendors.dm +++ b/code/game/objects/machinery/vending/new_marine_vendors.dm @@ -762,8 +762,6 @@ /obj/item/stack/sheet/plasteel/medium_stack, /obj/item/stack/sheet/metal/large_stack, /obj/item/tool/weldingtool/hugetank, - /obj/item/lightreplacer, - /obj/item/healthanalyzer, /obj/item/tool/handheld_charger, /obj/item/defibrillator, /obj/item/medevac_beacon, @@ -772,6 +770,8 @@ /obj/item/bodybag/cryobag, /obj/item/reagent_containers/hypospray/advanced/oxycodone, /obj/item/tweezers, + /obj/item/cell/high, + /obj/item/circuitboard/apc, ) /obj/effect/vendor_bundle/white_dress From be9969f848e7372ec040d1e657002096777d45e0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 10:39:27 +0000 Subject: [PATCH 006/123] Automatic changelog for PR #15588 [ci skip] --- html/changelogs/AutoChangeLog-pr-15588.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15588.yml diff --git a/html/changelogs/AutoChangeLog-pr-15588.yml b/html/changelogs/AutoChangeLog-pr-15588.yml new file mode 100644 index 0000000000000..1954e380a10cd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15588.yml @@ -0,0 +1,4 @@ +author: "novaepee" +delete-after: True +changes: + - bugfix: "update smartgunner's job description to present sg better in 2024" \ No newline at end of file From 4d4195db392c17031d57b7fb4571301abf3b5969 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 10:39:53 +0000 Subject: [PATCH 007/123] Automatic changelog for PR #15529 [ci skip] --- html/changelogs/AutoChangeLog-pr-15529.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15529.yml diff --git a/html/changelogs/AutoChangeLog-pr-15529.yml b/html/changelogs/AutoChangeLog-pr-15529.yml new file mode 100644 index 0000000000000..daeec7ba78783 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15529.yml @@ -0,0 +1,4 @@ +author: "coldironwarrior" +delete-after: True +changes: + - qol: "cleaned up the synth vendor" \ No newline at end of file From 2a10d0cffa35f7d56840c5741a4135fea0c7f333 Mon Sep 17 00:00:00 2001 From: TiviPlus <57223640+TiviPlus@users.noreply.github.com> Date: Sun, 7 Apr 2024 14:39:36 +0200 Subject: [PATCH 008/123] Prevents stacking pamphlets (#15570) Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com> --- code/game/objects/items/pamphlets.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/game/objects/items/pamphlets.dm b/code/game/objects/items/pamphlets.dm index ce2adbc2788d6..738ffa535a1bb 100644 --- a/code/game/objects/items/pamphlets.dm +++ b/code/game/objects/items/pamphlets.dm @@ -24,8 +24,15 @@ var/large_vehicle var/stamina + ///assoc list list(SKILL = MAXIMUM_INT) for when we dont want to let them read this + var/list/max_skills + /obj/item/pamphlet/attack_self(mob/living/user) . = ..() + for(var/skill in max_skills) + if(user.skills.getRating(skill) >= max_skills[skill]) + balloon_alert(user, "nothing to learn!") + return if(!do_after(user, 5 SECONDS, NONE, user)) return user.set_skills(user.skills.modifyRating(cqc, melee_weapons, firearms, pistols, shotguns, rifles, smgs, heavy_weapons, smartgun, \ @@ -38,4 +45,5 @@ name = "loader's instruction manual" desc = "A crude drawing depicting what you think is loading a tank gun. Is that crayon?" large_vehicle = 1 + max_skills = list(SKILL_LARGE_VEHICLE = SKILL_LARGE_VEHICLE_TRAINED) From 166041444b581f84888b26b900e16a7730e380ae Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 12:39:51 +0000 Subject: [PATCH 009/123] Automatic changelog for PR #15570 [ci skip] --- html/changelogs/AutoChangeLog-pr-15570.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15570.yml diff --git a/html/changelogs/AutoChangeLog-pr-15570.yml b/html/changelogs/AutoChangeLog-pr-15570.yml new file mode 100644 index 0000000000000..572f142e29a5c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15570.yml @@ -0,0 +1,4 @@ +author: "TiviPlus" +delete-after: True +changes: + - bugfix: "Pamphlets now have the ability to prevent being stacked" \ No newline at end of file From 93b9434a65eb8a7d2c402e6e3cce851d846d9067 Mon Sep 17 00:00:00 2001 From: TiviPlus <57223640+TiviPlus@users.noreply.github.com> Date: Sun, 7 Apr 2024 14:42:27 +0200 Subject: [PATCH 010/123] Tank vendor (#15505) Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com> --- _maps/map_files/Arachne/TGS_Arachne.dmm | 238 ++++--- .../Pillar_of_Spring/TGS_Pillar_of_Spring.dmm | 209 +++--- _maps/map_files/Sulaco/TGS_Sulaco.dmm | 645 ++++++++++-------- _maps/map_files/Theseus/TGS_Theseus.dmm | 131 ++-- _maps/map_files/debugdalus/tgs_debugdalus.dmm | 246 ++++--- _maps/shuttles/vehicle_supply.dmm | 116 ++++ code/__DEFINES/shuttles.dm | 1 + code/__DEFINES/vehicles.dm | 2 + code/datums/shuttles.dm | 6 +- code/game/area/areas/shuttles.dm | 7 +- code/game/objects/machinery/gear.dm | 3 + code/modules/reqs/supply.dm | 308 ++++++++- code/modules/shuttle/shuttle_rotate.dm | 6 + code/modules/vehicles/armored/__armored.dm | 47 +- code/modules/vehicles/armored/_multitile.dm | 3 +- code/modules/vehicles/armored/apc.dm | 4 +- .../vehicles/armored/armored_weapons.dm | 3 +- code/modules/vehicles/armored/medium_apc.dm | 2 - code/modules/vehicles/armored/small_apc.dm | 2 - .../vehicles/armored/tank_fabricator.dm | 17 + .../tgui/interfaces/VehicleSupply.tsx | 215 ++++++ 21 files changed, 1523 insertions(+), 688 deletions(-) create mode 100644 _maps/shuttles/vehicle_supply.dmm create mode 100644 tgui/packages/tgui/interfaces/VehicleSupply.tsx diff --git a/_maps/map_files/Arachne/TGS_Arachne.dmm b/_maps/map_files/Arachne/TGS_Arachne.dmm index bde4bbd2ebbdf..aeea21024d8f4 100644 --- a/_maps/map_files/Arachne/TGS_Arachne.dmm +++ b/_maps/map_files/Arachne/TGS_Arachne.dmm @@ -3590,8 +3590,8 @@ pixel_y = 2 }, /obj/machinery/door_control/old/req{ - pixel_y = -5; - pixel_x = -9 + pixel_x = -9; + pixel_y = -5 }, /obj/effect/spawner/random/misc/paperbin{ pixel_x = -8; @@ -4586,6 +4586,17 @@ dir = 8 }, /area/mainship/hallways/hangar) +"eex" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/orange{ + dir = 4 + }, +/area/mainship/living/tankerbunks) "eff" = ( /obj/machinery/firealarm{ dir = 4 @@ -4711,6 +4722,9 @@ "eju" = ( /turf/closed/wall/mainship/outer, /area/mainship/hull/starboard_hull) +"ekf" = ( +/turf/open/floor/mainship/empty, +/area/mainship/living/tankerbunks) "ekw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -6036,7 +6050,6 @@ /turf/open/floor/prison/kitchen, /area/mainship/living/grunt_rnr) "flT" = ( -/obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -6047,6 +6060,10 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, /turf/open/floor/plating/plating_catwalk, /area/mainship/living/tankerbunks) "fmj" = ( @@ -6482,7 +6499,6 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 10 }, -/obj/structure/closet/secure_closet/engineering_welding, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, @@ -6897,9 +6913,6 @@ }, /area/mainship/medical/lounge) "fZA" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 }, @@ -6907,6 +6920,9 @@ dir = 9 }, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 4 }, @@ -7615,7 +7631,6 @@ /turf/open/floor/mainship/floor, /area/mainship/engineering/engineering_workshop) "gGg" = ( -/obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -7623,6 +7638,10 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange, /area/mainship/living/tankerbunks) "gGr" = ( @@ -8282,10 +8301,6 @@ /turf/open/floor/mainship/floor, /area/mainship/squads/req) "hiw" = ( -/obj/structure/rack, -/obj/item/tool/crowbar, -/obj/effect/spawner/random/engineering/toolbox, -/obj/item/stack/cable_coil, /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 }, @@ -8757,12 +8772,13 @@ /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) "hAZ" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, /obj/machinery/camera/autoname/mainship{ dir = 1 }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 1 }, @@ -8848,6 +8864,15 @@ /obj/effect/ai_node, /turf/open/floor/mainship/floor, /area/mainship/hallways/hangar) +"hEe" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/orange{ + dir = 8 + }, +/area/mainship/living/tankerbunks) "hEh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -9847,9 +9872,9 @@ /obj/effect/spawner/random/engineering/powercell, /obj/structure/disposalpipe/segment, /obj/machinery/door_control/mainship/req{ + dir = 8; id = "requisitions"; - name = "Requisitions Shutters"; - dir = 8 + name = "Requisitions Shutters" }, /turf/open/floor/mainship/green{ dir = 4 @@ -10177,12 +10202,13 @@ /turf/open/floor/mainship/research/containment/floor2, /area/mainship/medical/medical_science) "iKc" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, /obj/machinery/vending/nanomed{ dir = 1 }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 1 }, @@ -10278,10 +10304,11 @@ }, /area/mainship/shipboard/weapon_room) "iNp" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, /obj/effect/ai_node, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 8 }, @@ -10725,7 +10752,6 @@ /turf/open/floor/plating, /area/mainship/hallways/hangar) "jdq" = ( -/obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -10736,6 +10762,10 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange, /area/mainship/living/tankerbunks) "jeE" = ( @@ -10834,6 +10864,7 @@ dir = 1 }, /obj/structure/cable, +/obj/structure/closet/secure_closet/engineering_welding, /turf/open/floor/mainship/orange, /area/mainship/living/tankerbunks) "jiL" = ( @@ -11178,6 +11209,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/structure/closet/toolcloset, /turf/open/floor/mainship/orange{ dir = 1 }, @@ -11346,8 +11378,8 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 }, /turf/open/floor/mainship/orange{ dir = 1 @@ -12067,9 +12099,6 @@ }, /area/mainship/medical/lower_medical) "kjW" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -12083,6 +12112,10 @@ dir = 1 }, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 8 }, @@ -12114,13 +12147,16 @@ }, /area/mainship/hallways/hangar) "klv" = ( -/obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, /obj/structure/disposalpipe/segment/corner{ dir = 1 }, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, /turf/open/floor/plating/plating_catwalk, /area/mainship/living/tankerbunks) "kmZ" = ( @@ -12166,8 +12202,8 @@ /area/mainship/medical/medical_science) "koG" = ( /obj/machinery/door/poddoor/mainship/mech{ - name = "Vehicle Bay Shutters"; - id = "vehicle_shutters" + id = "vehicle_shutters"; + name = "Vehicle Bay Shutters" }, /turf/open/floor/mainship/mono, /area/mainship/living/tankerbunks) @@ -13371,9 +13407,7 @@ /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, +/obj/machinery/tank_part_fabricator, /turf/open/floor/plating/plating_catwalk, /area/mainship/living/tankerbunks) "lhw" = ( @@ -18347,9 +18381,6 @@ /turf/open/floor/mainship/floor, /area/mainship/engineering/engine_core) "pjB" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera/autoname/mainship{ @@ -18357,6 +18388,10 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 8 }, @@ -18496,13 +18531,14 @@ /turf/open/floor/plating, /area/mainship/hallways/hangar) "prS" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 8 }, @@ -18700,10 +18736,11 @@ /turf/open/floor/wood, /area/mainship/shipboard/brig) "pAm" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, /obj/machinery/light/mainship, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 1 }, @@ -19105,8 +19142,8 @@ dir = 8 }, /obj/machinery/door/poddoor/mainship/mech{ - name = "Vehicle Bay Shutters"; - id = "vehicle_shutters" + id = "vehicle_shutters"; + name = "Vehicle Bay Shutters" }, /turf/open/floor/mainship/mono, /area/mainship/living/tankerbunks) @@ -20428,8 +20465,8 @@ "rbo" = ( /obj/machinery/door_control/mainship/mech{ dir = 8; - name = "Vehicle Bay Shutter"; - id = "vehicle_shutters" + id = "vehicle_shutters"; + name = "Vehicle Bay Shutter" }, /turf/open/floor/mainship/black{ dir = 4 @@ -20621,8 +20658,8 @@ /turf/open/floor/plating, /area/mainship/hallways/starboard_hallway) "rhO" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 4 +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" }, /turf/open/floor/mainship/orange{ dir = 4 @@ -21372,12 +21409,13 @@ /turf/open/floor/wood, /area/mainship/living/evacuation) "rMD" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, /obj/machinery/firealarm{ dir = 1 }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/orange{ dir = 1 }, @@ -22607,7 +22645,6 @@ }, /area/mainship/squads/req) "sQo" = ( -/obj/effect/turf_decal/warning_stripes/thin, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, @@ -22615,6 +22652,10 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, /turf/open/floor/plating/plating_catwalk, /area/mainship/living/tankerbunks) "sQH" = ( @@ -23052,15 +23093,6 @@ dir = 1 }, /area/mainship/living/evacuation) -"trC" = ( -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 9 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/mainship/orange/corner{ - dir = 1 - }, -/area/mainship/living/tankerbunks) "tsI" = ( /obj/machinery/door/poddoor/mainship/ammo{ dir = 2; @@ -23425,8 +23457,8 @@ /area/mainship/hallways/hangar) "tFM" = ( /obj/machinery/door/poddoor/mainship/mech{ - name = "Vehicle Bay Shutters"; - id = "vehicle_shutters" + id = "vehicle_shutters"; + name = "Vehicle Bay Shutters" }, /obj/machinery/door/firedoor/mainship{ dir = 8 @@ -23591,8 +23623,8 @@ }, /obj/structure/cable, /obj/machinery/door/poddoor/mainship/mech{ - name = "Vehicle Bay Shutters"; - id = "vehicle_shutters" + id = "vehicle_shutters"; + name = "Vehicle Bay Shutters" }, /turf/open/floor/mainship/mono, /area/mainship/living/tankerbunks) @@ -24052,6 +24084,10 @@ dir = 4 }, /area/mainship/hallways/starboard_hallway) +"ulR" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/mainship/living/tankerbunks) "ulZ" = ( /obj/structure/target_stake, /obj/item/target, @@ -26161,8 +26197,8 @@ }, /obj/machinery/door_control/mainship/mech{ dir = 4; - name = "Vehicle Bay Shutter"; - id = "vehicle_shutters" + id = "vehicle_shutters"; + name = "Vehicle Bay Shutter" }, /turf/open/floor/mainship/orange/corner{ dir = 4 @@ -28141,12 +28177,6 @@ /turf/open/floor/mainship/cargo, /area/mainship/hallways/hangar) "xKo" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = -5; - pixel_y = 4 - }, /obj/effect/turf_decal/warning_stripes/thin{ dir = 6 }, @@ -37593,8 +37623,8 @@ sMc lLa hiw xKo -lLa -lLa +eex +eex fZA rhO rhO @@ -37695,11 +37725,11 @@ iQF iQF ppr sQo -iQF -iQF -iQF -iQF -iQF +ekf +ekf +ekf +ekf +ekf pAm eOG dNX @@ -37797,11 +37827,11 @@ bzN mmP juZ gGg -iQF -iQF -iQF -iQF -iQF +ekf +ekf +ekf +ekf +ekf iKc eiz tJr @@ -37899,11 +37929,11 @@ iQF rOU jcn klv -iQF -iQF -iQF -iQF -iQF +ekf +ekf +ulR +ekf +ekf hAZ oJx nnu @@ -38001,11 +38031,11 @@ iQF iQF jDq jdq -iQF -iQF -iQF -iQF -iQF +ekf +ekf +ekf +ekf +ekf rMD eiz wIF @@ -38103,11 +38133,11 @@ iQF kXP lgX flT -iQF -iQF -iQF -iQF -iQF +ekf +ekf +ekf +ekf +ekf pAm eOG dNX @@ -38203,13 +38233,13 @@ jKl fDq hYj fDq -trC +rpl fIz pjB prS kjW iNp -fDq +hEe rpl eOG dNX diff --git a/_maps/map_files/Pillar_of_Spring/TGS_Pillar_of_Spring.dmm b/_maps/map_files/Pillar_of_Spring/TGS_Pillar_of_Spring.dmm index 2a5ad5a420382..9d5c5143cd33b 100644 --- a/_maps/map_files/Pillar_of_Spring/TGS_Pillar_of_Spring.dmm +++ b/_maps/map_files/Pillar_of_Spring/TGS_Pillar_of_Spring.dmm @@ -1599,12 +1599,6 @@ /obj/item/book/manual/security_space_law, /turf/open/floor/wood, /area/mainship/command/corporateliaison) -"bWA" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 4 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "bXH" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -1684,6 +1678,13 @@ /obj/structure/cable, /turf/open/floor/plating/plating_catwalk, /area/mainship/hull/lower_hull) +"cdg" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "cdz" = ( /obj/structure/cable, /turf/open/floor/mainship/black{ @@ -2681,6 +2682,10 @@ "drx" = ( /obj/machinery/light/mainship, /obj/effect/ai_node, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/hexagon, /area/mainship/living/tankerbunks) "drW" = ( @@ -5195,10 +5200,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) -"guG" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "guJ" = ( /obj/machinery/light/mainship/small{ dir = 8 @@ -5395,6 +5396,10 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hull/lower_hull) +"gPv" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/mainship/living/tankerbunks) "gPw" = ( /obj/structure/ship_ammo/cas/bomblet, /obj/effect/turf_decal/warning_stripes/thin{ @@ -10932,6 +10937,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/boxingring) +"nLr" = ( +/obj/machinery/light/mainship{ + dir = 4 + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "nLu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -11079,6 +11094,16 @@ /obj/structure/cable, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/port_umbilical) +"nWf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "nWM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -11760,12 +11785,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/engineering/engineering_workshop) -"oRH" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 5 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "oRM" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4 @@ -13227,6 +13246,10 @@ dir = 8; on = 1 }, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/hexagon, /area/mainship/living/tankerbunks) "qAE" = ( @@ -13569,10 +13592,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hull/lower_hull) -"qQD" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "qQF" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -13878,12 +13897,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) -"rmQ" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "roD" = ( /obj/effect/landmark/start/job/requisitionsofficer, /obj/structure/bed/chair/office/dark, @@ -14025,6 +14038,13 @@ /obj/item/reagent_containers/food/drinks/milk, /turf/open/floor/wood, /area/mainship/living/numbertwobunks) +"rtS" = ( +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "ruM" = ( /obj/machinery/air_alarm{ dir = 1 @@ -14095,10 +14115,10 @@ /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) "rAj" = ( -/obj/structure/computerframe, /obj/machinery/light/mainship{ dir = 1 }, +/obj/machinery/tank_part_fabricator, /turf/open/floor/mainship/hexagon, /area/mainship/living/tankerbunks) "rAB" = ( @@ -14332,6 +14352,10 @@ "rRC" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/ai_node, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/hexagon, /area/mainship/living/tankerbunks) "rSg" = ( @@ -14566,11 +14590,6 @@ }, /turf/open/floor/mainship/mono, /area/mainship/hallways/stern_hallway) -"ser" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/turf_decal/warning_stripes/thick, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "sfz" = ( /obj/machinery/power/apc/mainship{ dir = 8 @@ -14767,6 +14786,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/hexagon, /area/mainship/living/tankerbunks) "swv" = ( @@ -15282,13 +15305,6 @@ /obj/machinery/computer/marine_card, /turf/open/floor/mainship/mono, /area/mainship/command/cic) -"tgh" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 4 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "tgi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/mainship/floor, @@ -15771,12 +15787,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/mainship/floor, /area/mainship/living/numbertwobunks) -"tIA" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 9 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "tIE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -15954,10 +15964,7 @@ /turf/open/floor/mainship/mono, /area/mainship/hallways/port_umbilical) "tTg" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 10 - }, -/turf/open/floor/mainship/hexagon, +/turf/open/floor/mainship/empty, /area/mainship/living/tankerbunks) "tTm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -16106,6 +16113,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, +/obj/effect/ai_node, /turf/open/floor/plating/plating_catwalk, /area/mainship/hallways/hangar) "ubh" = ( @@ -16680,12 +16688,6 @@ }, /turf/open/floor/plating, /area/mainship/squads/req) -"uIX" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 6 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "uKk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -16858,12 +16860,6 @@ /obj/effect/turf_decal/warning_stripes/thick, /turf/open/floor/plating, /area/mainship/hallways/hangar) -"uTG" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 8 - }, -/turf/open/floor/mainship/hexagon, -/area/mainship/living/tankerbunks) "uTM" = ( /obj/machinery/door/airlock/mainship/maint/free_access, /obj/structure/sign/hydro, @@ -17004,6 +17000,10 @@ /area/mainship/hull/lower_hull) "vaX" = ( /obj/machinery/light/mainship, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/hexagon, /area/mainship/living/tankerbunks) "vbf" = ( @@ -17211,6 +17211,13 @@ dir = 1 }, /area/mainship/medical/upper_medical) +"vrA" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship/hexagon, +/area/mainship/living/tankerbunks) "vsu" = ( /obj/machinery/pipedispenser, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ @@ -54464,11 +54471,11 @@ nZU kHN gcr hHH -ozU -ozU -ozU -ozU -ozU +nWf +nWf +nWf +nWf +nWf rCU ozU uaD @@ -54721,10 +54728,10 @@ oZN tyN qOJ qzN -tIA -uTG -uTG -uTG +tTg +tTg +tTg +tTg tTg svz gKv @@ -54977,13 +54984,13 @@ lHG fku tyN vGQ -vGQ -rmQ -vGQ -vGQ -vGQ -ser -vGQ +rtS +tTg +tTg +tTg +tTg +tTg +cdg xLu fAJ fAJ @@ -55234,12 +55241,12 @@ dpY qvN tyN rAj -vGQ -rmQ -qQD -vGQ -vGQ -guG +rtS +tTg +tTg +gPv +tTg +tTg vaX xLu xJe @@ -55491,13 +55498,13 @@ aZM nPF tyN vGQ -vGQ -rmQ -vGQ -vGQ -vGQ -ser -vGQ +rtS +tTg +tTg +tTg +tTg +tTg +cdg xLu sAI sAI @@ -55747,13 +55754,13 @@ vou vou vou vou -vGQ +rCb rRC -oRH -bWA -bWA -tgh -uIX +tTg +tTg +tTg +tTg +tTg drx xLu fAJ @@ -56006,11 +56013,11 @@ thc vou vGQ vGQ -vGQ -gKv -rCb -gKv -vGQ +vrA +nLr +vrA +nLr +vrA vGQ xLu xSi diff --git a/_maps/map_files/Sulaco/TGS_Sulaco.dmm b/_maps/map_files/Sulaco/TGS_Sulaco.dmm index 83003bc90579c..d52ad423f0cd9 100644 --- a/_maps/map_files/Sulaco/TGS_Sulaco.dmm +++ b/_maps/map_files/Sulaco/TGS_Sulaco.dmm @@ -68,12 +68,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/prison/whitegreen/corner, /area/sulaco/medbay) -"aak" = ( -/obj/structure/cable, -/obj/effect/turf_decal/warning_stripes/thin, -/obj/machinery/power/fusion_engine/preset, -/turf/open/floor/plating/mainship, -/area/sulaco/engineering/engine) "aam" = ( /turf/closed/wall/mainship/white, /area/sulaco/medbay/west) @@ -110,14 +104,6 @@ dir = 4 }, /area/sulaco/medbay/chemistry) -"aat" = ( -/obj/structure/cable, -/obj/effect/turf_decal/warning_stripes/thin{ - dir = 1 - }, -/obj/machinery/power/fusion_engine/preset, -/turf/open/floor/plating/mainship, -/area/sulaco/engineering/engine) "aav" = ( /obj/machinery/power/apc/mainship, /obj/structure/cable, @@ -4817,16 +4803,6 @@ /obj/machinery/door/firedoor/mainship, /turf/open/floor/prison, /area/sulaco/briefing) -"aAa" = ( -/obj/structure/table/woodentable, -/obj/effect/spawner/random/misc/table_lighting, -/obj/item/weapon/chainofcommand, -/obj/machinery/camera/autoname, -/obj/item/clothing/mask/cigarette/pipe{ - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/sulaco/cap_office) "aAb" = ( /obj/machinery/light/mainship, /turf/open/floor/prison, @@ -7797,14 +7773,6 @@ }, /turf/open/floor/prison/bright_clean, /area/sulaco/hangar) -"aRS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door_control/mainship/mech{ - dir = 1; - id = "mech_shutters_1" - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "aRT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 4 @@ -8361,6 +8329,15 @@ dir = 6 }, /area/sulaco/research) +"aVQ" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "aVR" = ( /turf/closed/wall/mainship/gray, /area/sulaco/maintenance/upperdeck_AIcore_maint) @@ -8994,11 +8971,6 @@ }, /turf/open/floor/prison, /area/sulaco/hallway/dropshipprep) -"bct" = ( -/obj/structure/cable, -/obj/machinery/power/smes/preset, -/turf/open/floor/plating/mainship, -/area/sulaco/engineering/engine) "bcD" = ( /obj/machinery/telecomms/server/presets/requisitions, /obj/machinery/light/mainship/small{ @@ -9678,12 +9650,6 @@ /obj/structure/window/framed/mainship/gray/toughened/hull, /turf/open/floor/plating/platebotc, /area/sulaco/cargo) -"bOG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/mainship, -/obj/structure/cable, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "bOX" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -9955,6 +9921,15 @@ /obj/structure/window/reinforced/extratoughened, /turf/open/floor/mainship/tcomms, /area/sulaco/command/ai) +"chl" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "cjc" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1, /turf/open/floor/mainship/tcomms, @@ -10624,6 +10599,12 @@ }, /turf/open/floor/prison, /area/sulaco/marine) +"cWW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/mainship, +/obj/structure/cable, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "cWX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ @@ -11442,6 +11423,12 @@ }, /turf/open/floor/prison/bright_clean, /area/sulaco/hangar) +"eey" = ( +/obj/structure/cable, +/obj/effect/turf_decal/warning_stripes/thin, +/obj/machinery/power/fusion_engine/preset, +/turf/open/floor/plating/mainship, +/area/sulaco/engineering/engine) "efq" = ( /obj/machinery/light/mainship, /obj/structure/table/reinforced, @@ -11754,9 +11741,6 @@ }, /turf/open/floor/prison, /area/sulaco/cargo) -"exf" = ( -/turf/open/floor/plating, -/area/sulaco/hangar/storage) "eyu" = ( /obj/machinery/door/airlock/mainship/generic{ dir = 2 @@ -12141,6 +12125,16 @@ }, /turf/open/floor/mainship/tcomms, /area/mainship/command/self_destruct) +"eUx" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "eUP" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ dir = 8 @@ -12308,6 +12302,11 @@ dir = 1 }, /area/sulaco/medbay) +"fet" = ( +/obj/structure/cable, +/obj/machinery/power/smes/preset, +/turf/open/floor/plating/mainship, +/area/sulaco/engineering/engine) "feO" = ( /obj/effect/turf_decal/siding{ dir = 5 @@ -12340,12 +12339,6 @@ /obj/effect/spawner/random/misc/folder/nooffset, /turf/open/floor/wood, /area/sulaco/liaison) -"fjy" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "fjF" = ( /obj/machinery/vending/medical/shipside, /turf/open/floor/prison/whitegreen/corner, @@ -12825,6 +12818,13 @@ }, /turf/open/floor/prison, /area/sulaco/hallway/lower_main_hall) +"fOP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 1 + }, +/obj/effect/landmark/start/job/transportofficer, +/turf/open/floor/prison, +/area/mainship/living/pilotbunks) "fPc" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 4 @@ -12989,11 +12989,6 @@ }, /turf/open/floor/prison, /area/sulaco/maintenance/upperdeck_AIcore_maint) -"gdt" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/machinery/vending/engivend, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "gdR" = ( /obj/machinery/light/mainship{ dir = 4 @@ -13574,6 +13569,10 @@ }, /turf/open/floor/mainship/tcomms, /area/mainship/command/self_destruct) +"gSR" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/sulaco/hangar/storage) "gSX" = ( /obj/machinery/light/mainship{ dir = 8 @@ -13718,6 +13717,17 @@ }, /turf/open/floor/mainship/ai, /area/sulaco/command/ai) +"hbh" = ( +/obj/structure/cable, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "hbz" = ( /obj/machinery/light/mainship/small, /obj/structure/rack, @@ -14083,6 +14093,16 @@ /obj/structure/dropship_equipment/electronics/spotlights, /turf/open/floor/prison, /area/sulaco/hangar/storage) +"hyg" = ( +/obj/structure/table/woodentable, +/obj/effect/spawner/random/misc/table_lighting, +/obj/item/weapon/chainofcommand, +/obj/machinery/camera/autoname, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/sulaco/cap_office) "hzl" = ( /obj/machinery/atmospherics/pipe/simple/yellow/hidden, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1, @@ -14343,14 +14363,6 @@ /obj/effect/ai_node, /turf/open/floor/plating/plating_catwalk/prison, /area/sulaco/hallway/lower_foreship) -"hMG" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ - dir = 10 - }, -/obj/effect/turf_decal/warning_stripes/thick/corner, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "hNu" = ( /obj/machinery/door/poddoor/railing{ dir = 1; @@ -14516,11 +14528,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/prison, /area/sulaco/hallway/lower_foreship) -"hYd" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "hYo" = ( /obj/machinery/light/mainship{ dir = 8 @@ -14586,11 +14593,6 @@ dir = 5 }, /area/sulaco/research) -"iaR" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/machinery/vending/tool, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "iaY" = ( /obj/structure/closet/crate/internals, /turf/open/floor/prison, @@ -15080,15 +15082,6 @@ }, /turf/open/floor/prison, /area/sulaco/cargo/office) -"iGj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 4 - }, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "iGB" = ( /obj/structure/table/mainship/nometal, /turf/open/floor/prison/red/full{ @@ -15406,11 +15399,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/prison, /area/sulaco/engineering/engine_monitoring) -"iVJ" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "iVT" = ( /obj/structure/window/framed/mainship/gray/toughened, /obj/machinery/door/poddoor/shutters/opened{ @@ -15661,13 +15649,6 @@ /obj/structure/cable, /turf/open/floor/prison/bright_clean, /area/sulaco/hangar) -"jiY" = ( -/obj/machinery/door/firedoor/mainship, -/obj/machinery/door/poddoor/mainship/mech{ - id = "mech_shutters_3" - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "jlB" = ( /obj/machinery/door/firedoor/mainship{ dir = 2 @@ -15681,11 +15662,6 @@ }, /turf/open/floor/prison, /area/sulaco/marine/chapel) -"jmy" = ( -/obj/machinery/light/mainship, -/obj/structure/bed/bunkbed, -/turf/open/floor/mainship/black, -/area/sulaco/mechpilotquarters) "jnn" = ( /obj/structure/window/framed/mainship/gray/toughened, /obj/machinery/door/poddoor/telecomms, @@ -15750,6 +15726,13 @@ /obj/structure/window/framed/mainship/gray/toughened/hull, /turf/open/floor/plating/platebotc, /area/sulaco/cafeteria/kitchen) +"jsr" = ( +/obj/machinery/door_control/mainship/mech{ + dir = 4; + id = "mech_shutters_3" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "jsB" = ( /obj/machinery/firealarm{ dir = 8 @@ -17050,6 +17033,12 @@ /obj/effect/ai_node, /turf/open/floor/prison/red, /area/sulaco/hallway/central_hall3) +"kXA" = ( +/obj/machinery/door_control/mainship/mech{ + id = "mech_shutters_3" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "kXV" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -17368,27 +17357,6 @@ /obj/item/tool/pen, /turf/open/floor/wood, /area/sulaco/cap_office) -"lve" = ( -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/mainship{ - dir = 4 - }, -/obj/machinery/door_control/old/unmeltable{ - id = "tcomwind"; - name = "Telecomms Window Control" - }, -/obj/item/toy/plush/rouny{ - pixel_x = -1; - pixel_y = 9 - }, -/turf/open/floor/prison, -/area/sulaco/telecomms/office) "lvm" = ( /obj/machinery/vending/uniform_supply, /turf/open/floor/prison, @@ -17519,13 +17487,6 @@ /obj/item/reagent_containers/food/snacks/protein_pack, /turf/open/floor/prison/kitchen, /area/sulaco/cafeteria) -"lBh" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/obj/structure/computer3frame, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "lBU" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -17989,6 +17950,9 @@ }, /turf/open/floor/plating, /area/sulaco/hangar/storage) +"mgb" = ( +/turf/open/floor/mainship/empty, +/area/sulaco/hangar/storage) "mgi" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/prison/whitegreen/corner, @@ -18582,6 +18546,27 @@ /obj/structure/sign/prop1, /turf/closed/wall/mainship/gray, /area/sulaco/maintenance/lower_maint2) +"mTI" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/mainship{ + dir = 4 + }, +/obj/machinery/door_control/old/unmeltable{ + id = "tcomwind"; + name = "Telecomms Window Control" + }, +/obj/item/toy/plush/rouny{ + pixel_x = -1; + pixel_y = 9 + }, +/turf/open/floor/prison, +/area/sulaco/telecomms/office) "mTN" = ( /obj/machinery/camera/autoname, /turf/open/floor/plating, @@ -18682,6 +18667,17 @@ /obj/effect/ai_node, /turf/open/floor/prison/plate, /area/shuttle/distress/arrive_2) +"mZV" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/machinery/tank_part_fabricator, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "nae" = ( /obj/structure/flora/pottedplant/twentyone{ pixel_x = 31 @@ -19531,12 +19527,6 @@ /obj/effect/spawner/random/misc/gnome/fiftyfifty, /turf/open/floor/plating, /area/sulaco/maintenance/upperdeck_north_maint) -"ojX" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 8 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "okh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/mainship{ @@ -19720,13 +19710,6 @@ /obj/structure/prop/mainship/mapping_computer, /turf/open/floor/mainship/tcomms, /area/mainship/command/self_destruct) -"ovo" = ( -/obj/machinery/door/poddoor/mainship/mech{ - id = "mech_shutters_3" - }, -/obj/machinery/door/firedoor/mainship, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "ovJ" = ( /obj/machinery/holopad{ active_power_usage = 130; @@ -20038,13 +20021,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/sulaco/hallway/central_hall2) -"oMr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ - dir = 1 - }, -/obj/effect/landmark/start/job/transportofficer, -/turf/open/floor/prison, -/area/mainship/living/pilotbunks) "oNb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1, @@ -20056,19 +20032,6 @@ dir = 1 }, /area/sulaco/medbay) -"oNf" = ( -/obj/structure/cable, -/obj/machinery/power/apc/mainship{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 8 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "oNr" = ( /obj/machinery/camera/autoname{ dir = 1 @@ -20874,6 +20837,19 @@ dir = 8 }, /area/sulaco/bridge) +"pLY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "pMb" = ( /obj/structure/table/mainship/nometal, /obj/effect/spawner/random/misc/paperbin, @@ -20968,13 +20944,6 @@ dir = 10 }, /area/space) -"pUq" = ( -/obj/structure/cable, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 8 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "pVy" = ( /turf/open/floor/mainship/stripesquare, /area/sulaco/hangar) @@ -21009,6 +20978,18 @@ "pWS" = ( /turf/open/floor/prison, /area/sulaco/hangar/storage) +"pWU" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/structure/rack, +/obj/machinery/light/mainship/small{ + dir = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "pXf" = ( /obj/effect/soundplayer, /turf/closed/wall/mainship/gray/outer, @@ -21208,12 +21189,6 @@ /obj/machinery/vending/weapon, /turf/open/floor/prison/red, /area/sulaco/bridge) -"qpD" = ( -/obj/machinery/door_control/mainship/mech{ - id = "mech_shutters_3" - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "qqt" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 1 @@ -21418,6 +21393,15 @@ }, /turf/open/floor/prison/bright_clean, /area/sulaco/hangar/droppod) +"qDa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/warning_stripes/thick/corner, +/obj/machinery/gear/vehicle, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "qDO" = ( /turf/open/floor/mainship_hull/gray/dir, /area/space) @@ -21540,6 +21524,14 @@ }, /turf/open/floor/plating, /area/sulaco/hangar/cas) +"qLS" = ( +/obj/structure/cable, +/obj/effect/turf_decal/warning_stripes/thin{ + dir = 1 + }, +/obj/machinery/power/fusion_engine/preset, +/turf/open/floor/plating/mainship, +/area/sulaco/engineering/engine) "qMk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -21833,13 +21825,6 @@ }, /turf/open/floor/prison, /area/sulaco/security) -"rgO" = ( -/obj/structure/bed/bunkbed, -/obj/effect/landmark/start/job/mechpilot, -/turf/open/floor/mainship/black{ - dir = 6 - }, -/area/sulaco/mechpilotquarters) "rgW" = ( /obj/structure/table/reinforced, /obj/structure/cable, @@ -22063,6 +22048,15 @@ dir = 8 }, /area/mainship/shipboard/weapon_room) +"rrE" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/machinery/vending/engivend, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "rrR" = ( /obj/machinery/atmospherics/pipe/simple/yellow/hidden{ dir = 9 @@ -22370,6 +22364,12 @@ dir = 8 }, /area/mainship/living/basketball) +"rMZ" = ( +/obj/effect/landmark/start/job/mechpilot, +/turf/open/floor/mainship/black/corner{ + dir = 4 + }, +/area/sulaco/mechpilotquarters) "rNq" = ( /obj/machinery/door/airlock/mainship/maint{ dir = 1 @@ -22459,6 +22459,13 @@ }, /turf/open/floor/prison, /area/sulaco/disposal) +"rQk" = ( +/obj/structure/bed/bunkbed, +/obj/effect/landmark/start/job/mechpilot, +/turf/open/floor/mainship/black{ + dir = 6 + }, +/area/sulaco/mechpilotquarters) "rQn" = ( /obj/machinery/camera/autoname{ dir = 4 @@ -22866,6 +22873,11 @@ /obj/machinery/door/firedoor/mainship, /turf/open/floor/prison, /area/mainship/living/pilotbunks) +"soD" = ( +/obj/machinery/camera/autoname, +/obj/effect/landmark/start/job/transportofficer, +/turf/open/floor/prison, +/area/mainship/living/pilotbunks) "soQ" = ( /obj/structure/closet/secure_closet/staff_officer, /turf/open/floor/prison/red/full{ @@ -22888,12 +22900,6 @@ /obj/effect/soundplayer, /turf/closed/wall/mainship/gray, /area/sulaco/hangar/droppod) -"sqc" = ( -/obj/effect/landmark/start/job/mechpilot, -/turf/open/floor/mainship/black/corner{ - dir = 4 - }, -/area/sulaco/mechpilotquarters) "sqC" = ( /obj/structure/shuttle/engine/propulsion/burst/right{ dir = 4 @@ -23114,13 +23120,6 @@ /obj/structure/ship_ammo/cas/rocket/widowmaker, /turf/open/floor/prison, /area/sulaco/hangar/cas) -"sDv" = ( -/obj/machinery/door_control/mainship/mech{ - dir = 4; - id = "mech_shutters_3" - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "sDU" = ( /obj/machinery/cryopod/right, /turf/open/floor/prison/whitegreen/corner{ @@ -23198,6 +23197,16 @@ dir = 6 }, /area/sulaco/bridge) +"sKv" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/mainship/mech{ + id = "mech_shutters_3" + }, +/obj/machinery/door/firedoor/mainship, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "sKG" = ( /obj/structure/table/mainship/nometal, /obj/item/disk/botany, @@ -23335,6 +23344,12 @@ }, /turf/open/floor/prison/plate, /area/shuttle/distress/arrive_2) +"sPF" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/closed/wall/mainship/gray, +/area/sulaco/hangar/storage) "sPQ" = ( /obj/item/radio/intercom/general{ dir = 4 @@ -24718,6 +24733,30 @@ }, /turf/open/floor/prison, /area/sulaco/cargo/office) +"uDV" = ( +/obj/machinery/power/apc/mainship, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/obj/structure/cable, +/obj/machinery/power/apc/mainship{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "uEO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -24943,6 +24982,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/prison, /area/sulaco/hallway/lower_foreship) +"uXb" = ( +/obj/effect/turf_decal/warning_stripes/thick/corner{ + dir = 4 + }, +/obj/machinery/gear/vehicle, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "uXi" = ( /obj/structure/sign/greencross/star, /turf/open/floor/prison, @@ -25093,6 +25139,16 @@ "vgl" = ( /turf/closed/wall/mainship/gray/outer, /area/sulaco/hallway/lower_foreship) +"vgC" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/firedoor/mainship, +/obj/machinery/door/poddoor/mainship/mech{ + id = "mech_shutters_3" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "vgO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ @@ -25437,6 +25493,16 @@ }, /turf/open/floor/prison, /area/sulaco/security) +"vAj" = ( +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 8 + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "vAy" = ( /obj/structure/table/mainship/nometal, /obj/item/storage/toolbox/mechanical, @@ -25823,14 +25889,6 @@ /obj/structure/window/framed/mainship/gray/toughened, /turf/open/floor/plating/platebotc, /area/sulaco/engineering/atmos) -"war" = ( -/obj/effect/turf_decal/warning_stripes/thick, -/obj/structure/rack, -/obj/machinery/light/mainship/small{ - dir = 1 - }, -/turf/open/floor/prison, -/area/sulaco/hangar/storage) "waM" = ( /obj/machinery/quick_vendor/beginner, /turf/open/floor/prison/green{ @@ -25923,6 +25981,14 @@ /obj/structure/cable, /turf/open/floor/prison, /area/sulaco/cargo) +"wgz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door_control/mainship/mech{ + dir = 1; + id = "mech_shutters_1" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) "whk" = ( /obj/machinery/atmospherics/pipe/simple/yellow/hidden, /turf/open/floor/prison/red{ @@ -26626,11 +26692,6 @@ }, /turf/open/floor/prison/bright_clean, /area/sulaco/hangar) -"xgG" = ( -/obj/machinery/camera/autoname, -/obj/effect/landmark/start/job/transportofficer, -/turf/open/floor/prison, -/area/mainship/living/pilotbunks) "xhY" = ( /obj/machinery/door/poddoor/opened/sb, /turf/open/floor/mainship/stripesquare, @@ -27440,6 +27501,20 @@ dir = 4 }, /area/sulaco/hangar/droppod) +"yka" = ( +/obj/effect/turf_decal/warning_stripes/thick, +/obj/machinery/vending/tool, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/prison, +/area/sulaco/hangar/storage) +"ykl" = ( +/obj/machinery/light/mainship, +/obj/structure/bed/bunkbed, +/turf/open/floor/mainship/black, +/area/sulaco/mechpilotquarters) "ykr" = ( /obj/machinery/door_control/mainship/mech{ id = "mech_shutters_5" @@ -49413,7 +49488,7 @@ tbJ tbJ tbJ tbJ -aAa +hyg rBq aFq lJS @@ -66994,7 +67069,7 @@ hlB pWS vfb oLM -xgG +soD sbf aZw wie @@ -67253,7 +67328,7 @@ lOC peL hHN gyB -oMr +fOP gWF aXN aUt @@ -69037,11 +69112,11 @@ bFa bFa kOr bYM -bYM -bYM -jiY -jiY -ovo +sPF +sPF +vgC +vgC +sKv bYM bYM bYM @@ -69293,16 +69368,16 @@ vDU vDU mDu kOr -iaR -exf -exf -exf -exf -exf -lBh -sDv +yka +mgb +mgb +mgb +mgb +mgb +mZV +jsr bYM -qpD +kXA mCT pWS bYM @@ -69550,13 +69625,13 @@ aaa aaa nzi ykt -iVJ -exf -exf -exf -exf -exf -lBh +aVQ +mgb +mgb +mgb +mgb +mgb +eUx lEr bYM aeL @@ -69807,16 +69882,16 @@ aaa aaa nzi ykt -hYd -exf -exf -exf -exf -exf -fjy +chl +mgb +mgb +gSR +mgb +mgb +eUx ebs bYM -bOG +cWW wTC jJa bYM @@ -70064,13 +70139,13 @@ aaa aaa nzi ykt -gdt -exf -exf -exf -exf -exf -fjy +rrE +mgb +mgb +mgb +mgb +mgb +eUx mYh fAk kzO @@ -70321,13 +70396,13 @@ aaa aaa nzi kOr -war -exf -exf -exf -exf -exf -iGj +pWU +mgb +mgb +mgb +mgb +mgb +pLY pWS rCY tkV @@ -70578,13 +70653,13 @@ aaa aaa nzi kOr -kOr -kOr -ojX -ojX -oNf -pUq -hMG +uXb +vAj +vAj +vAj +uDV +hbh +qDa sUF bPy vqR @@ -70834,8 +70909,8 @@ aaa aaa aaa tZr -vDU -mDu +cyv +cyv kOr kOr kOr @@ -71090,10 +71165,10 @@ aaa aaa aaa aaa -aaa -aaa tZr vDU +vDU +vDU mDu mDu mDu @@ -71500,7 +71575,7 @@ aaW aLh aYS bdC -lve +mTI bcK lwy bbx @@ -71617,13 +71692,13 @@ mDu ykt pWS ftU -aRS +wgz vov aVG -sqc +rMZ cXj glh -jmy +ykl qTV dSG gHY @@ -71880,7 +71955,7 @@ vov aXY vSf wLf -rgO +rQk qTV nir eLA @@ -75104,11 +75179,11 @@ aeq aoN aoN aoN -bct +fet aoN -bct +fet aoN -bct +fet aoN aoN lId @@ -76131,13 +76206,13 @@ qrY aeq tAS nIK -aak +eey aqO -aat +qLS oQG -aak +eey aqO -aat +qLS xnw apl apl @@ -76388,13 +76463,13 @@ pEc pEc apl nIK -aak +eey aqO -aat +qLS oQG -aak +eey aqO -aat +qLS xnw apl mDu @@ -76645,13 +76720,13 @@ mDu mDu tBB nIK -aak +eey aqO -aat +qLS oQG -aak +eey aqO -aat +qLS xnw apl mDu diff --git a/_maps/map_files/Theseus/TGS_Theseus.dmm b/_maps/map_files/Theseus/TGS_Theseus.dmm index 81c7030e379da..01fddc7ba9308 100644 --- a/_maps/map_files/Theseus/TGS_Theseus.dmm +++ b/_maps/map_files/Theseus/TGS_Theseus.dmm @@ -1435,10 +1435,6 @@ "arQ" = ( /turf/closed/wall/mainship/research/containment/wall/north, /area/mainship/medical/medical_science) -"arR" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/mainship/hallways/hangar) "arU" = ( /obj/machinery/light/mainship{ dir = 1 @@ -9462,6 +9458,10 @@ /obj/structure/closet/toolcloset, /turf/open/floor/mainship/cargo, /area/mainship/hallways/port_hallway) +"fIY" = ( +/obj/machinery/tank_part_fabricator, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "fKd" = ( /obj/machinery/microwave, /obj/structure/table/mainship/nometal, @@ -9513,6 +9513,10 @@ /obj/item/tool/pen, /turf/open/floor/mainship/orange, /area/mainship/hallways/repair_bay) +"fOs" = ( +/obj/machinery/camera/autoname/mainship, +/turf/open/floor/mainship/empty, +/area/mainship/hallways/hangar) "fOx" = ( /obj/structure/flora/pottedplant/twentyone, /turf/open/floor/mainship/green{ @@ -10097,6 +10101,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/mainship/sterile/dark, /area/mainship/medical/medical_science) +"gKj" = ( +/obj/machinery/vending/tool, +/turf/open/floor/mainship/mono, +/area/mainship/hallways/hangar) "gLI" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced/windowstake{ @@ -12572,12 +12580,7 @@ /turf/open/floor/mainship/mono, /area/mainship/engineering/engine_core) "kMC" = ( -/obj/structure/computer3frame, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/obj/effect/turf_decal/warning_stripes/thin, -/turf/open/floor/mainship/mono, +/turf/open/floor/mainship/empty, /area/mainship/hallways/hangar) "kMY" = ( /turf/open/floor/mainship/orange, @@ -14781,6 +14784,10 @@ dir = 1 }, /area/mainship/command/cic) +"ofQ" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/mainship/hallways/hangar) "ofY" = ( /obj/structure/cable, /obj/machinery/door/airlock/mainship/command/FCDRoffice, @@ -15323,6 +15330,13 @@ /obj/machinery/door/firedoor/mainship{ dir = 2 }, +/obj/effect/turf_decal/warning_stripes/thick{ + dir = 1 + }, +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, /turf/open/floor/mainship/mono, /area/mainship/hallways/hangar) "pbV" = ( @@ -16071,14 +16085,6 @@ /obj/machinery/cloning/vats, /turf/open/floor/mainship/sterile/side, /area/mainship/medical/lower_medical) -"qmA" = ( -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/obj/machinery/vending/tool, -/obj/effect/turf_decal/warning_stripes/thin, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "qmJ" = ( /obj/machinery/door_control/mainship/mech{ dir = 1 @@ -17436,14 +17442,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/living/grunt_rnr) -"ssC" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/item/clothing/head/warning_cone, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "stM" = ( /obj/structure/bed, /obj/effect/landmark/start/job/pilotofficer, @@ -19088,13 +19086,6 @@ "vby" = ( /turf/open/floor/plating/plating_catwalk, /area/mainship/squads/req) -"vcZ" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "ven" = ( /obj/machinery/light/mainship{ dir = 8 @@ -19970,14 +19961,6 @@ /obj/structure/window/framed/mainship, /turf/open/floor/plating, /area/mainship/hallways/bow_hallway) -"wJA" = ( -/obj/effect/turf_decal/warning_stripes/thin, -/obj/effect/turf_decal/warning_stripes/thick{ - dir = 1 - }, -/obj/item/clothing/head/warning_cone, -/turf/open/floor/mainship/mono, -/area/mainship/hallways/hangar) "wKn" = ( /turf/open/floor/mainship/red/corner{ dir = 8 @@ -20329,10 +20312,6 @@ /obj/machinery/vending/armor_supply, /turf/open/floor/mainship/mono, /area/mainship/squads/delta) -"xqY" = ( -/obj/machinery/camera/autoname/mainship, -/turf/open/floor/plating, -/area/mainship/hallways/hangar) "xsH" = ( /obj/effect/turf_decal/warning_stripes/thin{ dir = 5 @@ -44695,7 +44674,7 @@ cuH oer bqC bgb -lvI +gKj xQe mJs gfg @@ -44952,7 +44931,7 @@ yaR oer lyr bgb -lvI +fIY xQe pcr lvI @@ -45459,11 +45438,11 @@ aaa aai rbR bgb -arR -blA -blA -blA -blA +bgb +kMC +kMC +kMC +kMC kMC paZ iIi @@ -45716,12 +45695,12 @@ aaa aai aak bgb -blA -blA -blA -blA -blA -ssC +bgb +kMC +kMC +kMC +kMC +kMC paZ sem xQe @@ -45973,12 +45952,12 @@ aaa aai rbR bgb -xqY -blA -blA -blA -blA -vcZ +bgb +fOs +kMC +ofQ +kMC +kMC paZ sem xQe @@ -46230,12 +46209,12 @@ aaa aai tDH bgb -blA -blA -blA -blA -blA -wJA +bgb +kMC +kMC +kMC +kMC +kMC paZ sem xQe @@ -46487,12 +46466,12 @@ aaa aai tDH bgb -blA -blA -blA -blA -blA -qmA +bgb +kMC +kMC +kMC +kMC +kMC paZ uDz bPG diff --git a/_maps/map_files/debugdalus/tgs_debugdalus.dmm b/_maps/map_files/debugdalus/tgs_debugdalus.dmm index 550a7094a7a92..328b880f60142 100644 --- a/_maps/map_files/debugdalus/tgs_debugdalus.dmm +++ b/_maps/map_files/debugdalus/tgs_debugdalus.dmm @@ -2325,6 +2325,13 @@ }, /turf/open/floor/mainship, /area/mainship/squads/general) +"cXg" = ( +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "djH" = ( /obj/vehicle/ridden/powerloader, /obj/machinery/landinglight/cas, @@ -2341,6 +2348,10 @@ "dwY" = ( /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"dLM" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "dPu" = ( /obj/machinery/vending/cargo_supply, /turf/open/floor/mainship, @@ -2498,6 +2509,13 @@ /obj/structure/cable, /turf/open/floor/mainship, /area/mainship/shipboard/weapon_room) +"jxZ" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "jPH" = ( /obj/machinery/bot/cleanbot, /turf/open/floor/mainship, @@ -2529,6 +2547,15 @@ /obj/structure/cable, /turf/open/floor/mainship, /area/mainship/hallways/exoarmor) +"kEg" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "kEy" = ( /obj/machinery/light{ dir = 4 @@ -2544,6 +2571,10 @@ /obj/structure/dropship_equipment/cas/weapon/bomb_pod, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"kVr" = ( +/obj/machinery/gear/vehicle, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "lcb" = ( /obj/structure/cable, /obj/machinery/camera/autoname/mainship, @@ -2596,6 +2627,10 @@ }, /turf/open/floor/mainship, /area/mainship/squads/req) +"lGu" = ( +/obj/machinery/tank_part_fabricator, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "lGz" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/machinery/camera/autoname/mainship{ @@ -2608,6 +2643,14 @@ /obj/structure/cable, /turf/open/floor/mainship, /area/mainship/medical/lower_medical) +"mfs" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/light, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "mlP" = ( /obj/machinery/vending/nanomed, /obj/structure/cable, @@ -2712,6 +2755,9 @@ /obj/machinery/landinglight/tadpole, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"qWN" = ( +/turf/open/floor/mainship/empty, +/area/mainship/hallways/hangar) "rmh" = ( /obj/structure/cable, /obj/machinery/landinglight/alamo{ @@ -2742,6 +2788,10 @@ "rDw" = ( /turf/open/floor/mainship, /area/mainship/command/telecomms) +"rMD" = ( +/obj/machinery/vending/tool, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "rPl" = ( /obj/machinery/landinglight/tadpole{ dir = 8 @@ -2759,6 +2809,10 @@ }, /turf/open/floor/mainship, /area/mainship/command/cic) +"skH" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "soy" = ( /obj/structure/cable, /obj/machinery/camera/autoname/mainship{ @@ -2769,6 +2823,13 @@ }, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"sru" = ( +/obj/structure/table/mainship, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "syF" = ( /obj/structure/cable, /obj/machinery/landinglight/alamo{ @@ -2780,6 +2841,10 @@ /obj/machinery/floodlight/landing/hq, /turf/open/floor/mainship, /area/mainship/hallways/hangar) +"sDt" = ( +/obj/docking_port/stationary/supply/vehicle, +/turf/open/floor/mainship/empty, +/area/mainship/hallways/hangar) "tae" = ( /obj/machinery/camera/autoname/mainship{ dir = 4 @@ -2848,6 +2913,13 @@ /obj/machinery/computer/orbital_cannon_console, /turf/open/floor/mainship, /area/mainship/shipboard/weapon_room) +"uyq" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "vsI" = ( /obj/structure/table/mainship, /obj/item/storage/donut_box, @@ -2887,6 +2959,12 @@ /obj/effect/turf_decal/warning_stripes/box/small, /turf/open/floor/mainship, /area/mainship/squads/general) +"wlt" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/mainship, +/area/mainship/hallways/hangar) "wpk" = ( /obj/structure/ship_ammo/cas/minirocket, /obj/machinery/light{ @@ -3160,16 +3238,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +bgb +bgb +bgb +bgb +bgb +bgb +bgb +bgb +bgb aaa aaa aaa @@ -3220,16 +3298,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +lGu +kVr +wlt +kEg +wlt +wlt +wlt +kVr +bgb aaa aaa aaa @@ -3280,16 +3358,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +dwY +cXg +qWN +qWN +qWN +qWN +qWN +uyq +bgb aaa aaa aaa @@ -3340,16 +3418,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +dwY +cXg +qWN +qWN +qWN +qWN +qWN +uyq +bgb aaa aaa aaa @@ -3400,16 +3478,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +sru +cXg +qWN +qWN +sDt +qWN +qWN +mfs +bgb aaa aaa aaa @@ -3460,16 +3538,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +skH +cXg +qWN +qWN +qWN +qWN +qWN +uyq +bgb aaa aaa aaa @@ -3520,16 +3598,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +rMD +cXg +qWN +qWN +qWN +qWN +qWN +uyq +bgb aaa aaa aaa @@ -3580,16 +3658,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bgb +dLM +kVr +jxZ +jxZ +jxZ +jxZ +jxZ +kVr +bgb aaa aaa aaa @@ -3644,9 +3722,9 @@ bgb bgb bgb bgb -bgb -bgb -bgb +dwY +dwY +dwY bgb bgb bgb @@ -3703,9 +3781,9 @@ oQb dwY dwY dwY +oQb dwY dwY -oQb dwY dwY dwY diff --git a/_maps/shuttles/vehicle_supply.dmm b/_maps/shuttles/vehicle_supply.dmm new file mode 100644 index 0000000000000..b57658828762a --- /dev/null +++ b/_maps/shuttles/vehicle_supply.dmm @@ -0,0 +1,116 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"b" = ( +/turf/open/floor/plating, +/area/shuttle/vehicle_supply) +"c" = ( +/obj/docking_port/mobile/supply/vehicle, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"f" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"l" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"C" = ( +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"E" = ( +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"I" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"K" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"M" = ( +/obj/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) +"Q" = ( +/obj/machinery/door/poddoor/railing{ + dir = 1; + id = "vehicle_elevator_railing" + }, +/obj/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing" + }, +/turf/open/floor/plating/plating_catwalk, +/area/shuttle/vehicle_supply) + +(1,1,1) = {" +I +l +l +l +M +"} +(2,1,1) = {" +K +b +a +b +E +"} +(3,1,1) = {" +K +a +c +a +E +"} +(4,1,1) = {" +K +b +a +b +E +"} +(5,1,1) = {" +Q +C +C +C +f +"} diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index 80e3d57b1c98e..29efec972eb00 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -113,4 +113,5 @@ #define SHUTTLE_DISTRESS "distress" #define SHUTTLE_ESCAPE_POD "escape_pod" #define SHUTTLE_SUPPLY "supply" +#define SHUTTLE_VEHICLE_SUPPLY "vehicle_supply" diff --git a/code/__DEFINES/vehicles.dm b/code/__DEFINES/vehicles.dm index fafc791f7799c..642607dc7aed9 100644 --- a/code/__DEFINES/vehicles.dm +++ b/code/__DEFINES/vehicles.dm @@ -53,6 +53,8 @@ #define ARMORED_HAS_SECONDARY_WEAPON (1<<4) #define ARMORED_LIGHTS_ON (1<<5) #define ARMORED_HAS_HEADLIGHTS (1<<6) +#define ARMORED_PURCHASABLE_ASSAULT (1<<7) +#define ARMORED_PURCHASABLE_TRANSPORT (1<<8) #define MODULE_PRIMARY (1<<0) #define MODULE_SECONDARY (1<<1) diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 3fbbc3e31695a..100e3273a4554 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -169,7 +169,7 @@ shuttle_id = SHUTTLE_DISTRESS_UPP name = "Distress UPP" -/datum/map_template/shuttle/small_ert/ufo +/datum/map_template/shuttle/small_ert/ufo shuttle_id = SHUTTLE_DISTRESS_UFO name = "Small UFO" @@ -181,6 +181,10 @@ shuttle_id = SHUTTLE_SUPPLY name = SHUTTLE_SUPPLY +/datum/map_template/shuttle/supply/vehicle + shuttle_id = SHUTTLE_VEHICLE_SUPPLY + name = SHUTTLE_VEHICLE_SUPPLY + /datum/map_template/shuttle/tgs_canterbury shuttle_id = SHUTTLE_CANTERBURY name = "Canterbury" diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 18983064390b1..bea81a014d78f 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -95,15 +95,16 @@ /area/shuttle/mining name = "Mining Shuttle" -// blob_allowed = FALSE /area/shuttle/labor name = "Labor Camp Shuttle" -// blob_allowed = FALSE /area/shuttle/supply name = "Supply Shuttle" -// blob_allowed = FALSE + +/area/shuttle/vehicle_supply + name = "Vehicle Supply Shuttle" + /* /area/shuttle/escape name = "Emergency Shuttle" diff --git a/code/game/objects/machinery/gear.dm b/code/game/objects/machinery/gear.dm index 1e54c02653447..9ddf140565a68 100644 --- a/code/game/objects/machinery/gear.dm +++ b/code/game/objects/machinery/gear.dm @@ -30,3 +30,6 @@ /obj/machinery/elevator_strut/bottom icon_state = "strut_bottom" + +/obj/machinery/gear/vehicle // todo do for suppply as well instead of varediting + id = "vehicle_elevator_gear" diff --git a/code/modules/reqs/supply.dm b/code/modules/reqs/supply.dm index d04bae357a943..1216270950105 100644 --- a/code/modules/reqs/supply.dm +++ b/code/modules/reqs/supply.dm @@ -1,7 +1,8 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /mob/living, /obj/item/disk/nuclear, - /obj/item/radio/beacon + /obj/item/radio/beacon, + /obj/vehicle, ))) /datum/supply_order @@ -45,6 +46,8 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( var/faction = FACTION_TERRAGOV /// Id of the home docking port var/home_id = "supply_home" + ///prefix for railings and gear todo should probbaly be defines instead? + var/railing_gear_name = "supply" /obj/docking_port/mobile/supply/Destroy(force) for(var/i in railings) @@ -77,11 +80,11 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/docking_port/mobile/supply/register() . = ..() for(var/obj/machinery/gear/G in GLOB.machines) - if(G.id == "supply_elevator_gear") + if(G.id == (railing_gear_name+"_elevator_gear")) gears += G RegisterSignal(G, COMSIG_QDELETING, PROC_REF(clean_gear)) for(var/obj/machinery/door/poddoor/railing/R in GLOB.machines) - if(R.id == "supply_elevator_railing") + if(R.id == (railing_gear_name+"_elevator_railing")) railings += R RegisterSignal(R, COMSIG_QDELETING, PROC_REF(clean_railing)) R.linked_pad = src @@ -127,7 +130,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( return 2 return ..() -/obj/docking_port/mobile/supply/proc/buy(mob/user) +/obj/docking_port/mobile/supply/proc/buy(mob/user, datum/supply_ui/supply_ui) if(!length(SSpoints.shoppinglist[faction])) return log_game("Supply pack orders have been purchased by [key_name(user)]") @@ -469,7 +472,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( addtimer(CALLBACK(supply_shuttle, TYPE_PROC_REF(/obj/docking_port/mobile/supply, sell)), 15 SECONDS) else var/obj/docking_port/D = SSshuttle.getDock(home_id) - supply_shuttle.buy(usr) + supply_shuttle.buy(usr, src) playsound(D.return_center_turf(), 'sound/machines/elevator_move.ogg', 50, 0) SSshuttle.moveShuttle(shuttle_id, home_id, TRUE) . = TRUE @@ -618,3 +621,298 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( if(!supply_interface) supply_interface = new(src) return supply_interface.interact(user) + +/obj/docking_port/mobile/supply/vehicle + railing_gear_name = "vehicle" + id = SHUTTLE_VEHICLE_SUPPLY + home_id = "vehicle_home" + +/obj/docking_port/mobile/supply/vehicle/buy(mob/user, datum/supply_ui/supply_ui) + var/datum/supply_ui/vehicles/veh_ui = supply_ui + if(!veh_ui || !veh_ui.current_veh_type) + return + var/obj/vehicle/sealed/armored/tanktype = veh_ui.current_veh_type + var/is_assault = initial(tanktype.armored_flags) & ARMORED_PURCHASABLE_ASSAULT + if(GLOB.purchased_tanks[user.faction]?["[is_assault]"]) + to_chat(usr, span_danger("A vehicle of this type has already been purchased!")) + return + if(!GLOB.purchased_tanks[user.faction]) + GLOB.purchased_tanks[user.faction] = list() + GLOB.purchased_tanks[user.faction]["[is_assault]"] += 1 + var/obj/vehicle/sealed/armored/tank = new tanktype(loc) + if(veh_ui.current_primary) + var/obj/item/armored_weapon/gun = new veh_ui.current_primary(loc) + gun.attach(tank, TRUE) + if(veh_ui.current_secondary) + var/obj/item/armored_weapon/gun = new veh_ui.current_secondary(loc) + gun.attach(tank, FALSE) + if(veh_ui.current_driver_mod) + var/obj/item/tank_module/mod = new veh_ui.current_driver_mod(loc) + mod.on_equip(tank) + if(veh_ui.current_gunner_mod) + var/obj/item/tank_module/mod = new veh_ui.current_gunner_mod(loc) + mod.on_equip(tank) + if(length(veh_ui.primary_ammo)) + var/turf/dumploc = get_step(get_step(loc, NORTH), NORTH) // todo should autoload depending on tank prolly + for(var/ammo in veh_ui.primary_ammo) + for(var/i=1 to veh_ui.primary_ammo[ammo]) + new ammo(dumploc) + if(length(veh_ui.secondary_ammo)) + var/turf/dumploc = get_step(get_step(loc, NORTH), NORTH) // todo should autoload depending on tank prolly + for(var/ammo in veh_ui.secondary_ammo) + for(var/i=1 to veh_ui.secondary_ammo[ammo]) + new ammo(dumploc) + +/obj/docking_port/stationary/supply/vehicle + id = "vehicle_home" + roundstart_template = /datum/map_template/shuttle/supply/vehicle + + + +GLOBAL_LIST_EMPTY(armored_gunammo) +GLOBAL_LIST_EMPTY(armored_modtypes) +GLOBAL_LIST_INIT(armored_guntypes, armored_init_guntypes()) +GLOBAL_LIST_EMPTY(purchased_tanks) +#define DEFAULT_MAX_ARMORED_AMMO 20 + +///im a lazy bum who cant use initial on lists, so we just load everything into a list +/proc/armored_init_guntypes() + . = list() + for(var/obj/vehicle/sealed/armored/vehtype AS in typesof(/obj/vehicle/sealed/armored)) + vehtype = new vehtype + GLOB.armored_modtypes[vehtype.type] = vehtype.permitted_mods + .[vehtype.type] = vehtype.permitted_weapons + qdel(vehtype) + for(var/obj/item/armored_weapon/gun AS in typesof(/obj/item/armored_weapon)) + gun = new gun + GLOB.armored_gunammo[gun.type] = gun.accepted_ammo + qdel(gun) + +/datum/supply_ui/vehicles + tgui_name = "VehicleSupply" + shuttle_id = SHUTTLE_VEHICLE_SUPPLY + home_id = "vehicle_home" + /// current selected vehicles typepath + var/current_veh_type + /// current selected primary weapons typepath + var/current_primary + /// current selected secondaryies typepath + var/current_secondary + /// current driver mod typepath + var/current_driver_mod + /// current gunner mod typepath + var/current_gunner_mod + /// current primary ammo list, type = count + var/list/primary_ammo = list() + /// current secondary ammo list, type = count + var/list/secondary_ammo = list() + +/datum/supply_ui/vehicles/ui_static_data(mob/user) + var/list/data = list() + for(var/obj/vehicle/sealed/armored/vehtype AS in typesof(/obj/vehicle/sealed/armored)) + var/flags = initial(vehtype.armored_flags) + + if(flags & ARMORED_PURCHASABLE_TRANSPORT) + if(user.skills.getRating(SKILL_LARGE_VEHICLE) < SKILL_LARGE_VEHICLE_EXPERIENCED) + continue + else if(flags & ARMORED_PURCHASABLE_ASSAULT) + if(user.skills.getRating(SKILL_LARGE_VEHICLE) < SKILL_LARGE_VEHICLE_VETERAN) + continue + else + continue + + data["vehicles"] += list(list("name" = initial(vehtype.name), "desc" = initial(vehtype.desc), "type" = "[vehtype]", "isselected" = (vehtype == current_veh_type))) + if(vehtype != current_veh_type) + continue + for(var/obj/item/armored_weapon/gun AS in GLOB.armored_guntypes[vehtype]) + var/primary_selected = (current_primary == gun) + var/secondary_selected = (current_secondary == gun) + if(initial(gun.weapon_slot) & MODULE_PRIMARY) + data["primaryWeapons"] += list(list( + "name" = initial(gun.name), + "desc" = initial(gun.desc), + "type" = gun, + "isselected" = primary_selected, + )) + if(primary_selected) + for(var/obj/item/ammo_magazine/mag AS in primary_ammo) + data["primaryammotypes"] += list(list( + "name" = initial(mag.name), + "type" = mag, + "current" = primary_ammo[mag], + "max" = DEFAULT_MAX_ARMORED_AMMO, //TODO make vehicle ammo dynamic instead of fixed number + )) + + if(initial(gun.weapon_slot) & MODULE_SECONDARY) + data["secondaryWeapons"] += list(list( + "name" = initial(gun.name), + "desc" = initial(gun.desc), + "type" = gun, + "isselected" = secondary_selected, + )) + if(secondary_selected) + for(var/obj/item/ammo_magazine/mag AS in secondary_ammo) + data["secondarymmotypes"] += list(list( + "name" = initial(mag.name), + "type" = mag, + "current" = secondary_ammo[mag], + "max" = DEFAULT_MAX_ARMORED_AMMO, //TODO make vehicle ammo dynamic instead of fixed number + )) + + for(var/obj/item/tank_module/mod AS in GLOB.armored_modtypes[vehtype]) + if(initial(mod.is_driver_module)) + data["driverModules"] += list(list( + "name" = initial(mod.name), + "desc" = initial(mod.desc), + "type" = mod, + "isselected" = (current_driver_mod == mod), + )) + else + data["gunnerModules"] += list(list( + "name" = initial(mod.name), + "desc" = initial(mod.desc), + "type" = mod, + "isselected" = (current_gunner_mod == mod), + )) + return data + +/datum/supply_ui/vehicles/ui_data(mob/living/user) + var/list/data = list() + if(supply_shuttle) + if(supply_shuttle?.mode == SHUTTLE_CALL) + if(is_mainship_level(supply_shuttle.destination.z)) + data["elevator"] = "Raising" + data["elevator_dir"] = "up" + else + data["elevator"] = "Lowering" + data["elevator_dir"] = "down" + else if(supply_shuttle?.mode == SHUTTLE_IDLE) + if(is_mainship_level(supply_shuttle.z)) + data["elevator"] = "Raised" + data["elevator_dir"] = "down" + else if(current_veh_type) + data["elevator"] = "Purchase" + data["elevator_dir"] = "store" + else + data["elevator"] = "Lowered" + data["elevator_dir"] = "up" + else + if(is_mainship_level(supply_shuttle.z)) + data["elevator"] = "Lowering" + data["elevator_dir"] = "down" + else + data["elevator"] = "Raising" + data["elevator_dir"] = "up" + else + data["elevator"] = "MISSING!" + return data + +/datum/supply_ui/vehicles/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("setvehicle") + var/newtype = text2path(params["type"]) + if(!ispath(newtype, /obj/vehicle/sealed/armored)) + return + var/obj/vehicle/sealed/armored/tank_type = newtype + var/is_assault = initial(tank_type.armored_flags) & ARMORED_PURCHASABLE_ASSAULT + if(GLOB.purchased_tanks[usr.faction]?["[is_assault]"]) + to_chat(usr, span_danger("A vehicle of this type has already been purchased!")) + return + current_veh_type = newtype + . = TRUE + + if("setprimary") + if(!current_veh_type) + return + var/newtype = text2path(params["type"]) + if(!(newtype in GLOB.armored_guntypes[current_veh_type])) + return + current_primary = newtype + var/list/assoc_cast = GLOB.armored_gunammo[newtype] + primary_ammo = assoc_cast.Copy() + for(var/ammo in primary_ammo) + primary_ammo[ammo] = 0 + . = TRUE + + if("setsecondary") + if(!current_veh_type) + return + var/newtype = text2path(params["type"]) + if(!(newtype in GLOB.armored_guntypes[current_veh_type])) + return + current_secondary = newtype + var/list/assoc_cast = GLOB.armored_gunammo[newtype] + secondary_ammo = assoc_cast.Copy() + for(var/ammo in secondary_ammo) + secondary_ammo[ammo] = 0 + . = TRUE + + if("set_ammo_primary") + if(!current_primary) + return + var/newtype = text2path(params["type"]) + if(!(newtype in primary_ammo)) + return + var/non_adjusted_total = 0 + for(var/ammo in primary_ammo) + if(ammo == newtype) + continue + non_adjusted_total += primary_ammo[ammo] + var/newvalue = clamp(params["new_value"], 0, DEFAULT_MAX_ARMORED_AMMO-non_adjusted_total) + primary_ammo[newtype] = newvalue + . = TRUE + + if("set_ammo_secondary") + if(!current_secondary) + return + var/newtype = text2path(params["type"]) + if(!(newtype in secondary_ammo)) + return + var/non_adjusted_total = 0 + for(var/ammo in secondary_ammo) + if(ammo == newtype) + continue + non_adjusted_total += secondary_ammo[ammo] + var/newvalue = clamp(params["new_value"], 0, DEFAULT_MAX_ARMORED_AMMO-non_adjusted_total) + secondary_ammo[newtype] = newvalue + . = TRUE + + if("set_driver_mod") + if(!current_veh_type) + return + var/newtype = text2path(params["type"]) + if(!ispath(newtype, /obj/item/tank_module)) + return + if(!(newtype in GLOB.armored_modtypes[current_veh_type])) + return + current_driver_mod = newtype + . = TRUE + + if("set_gunner_mod") + if(!current_veh_type) + return + var/newtype = text2path(params["type"]) + if(!ispath(newtype, /obj/item/tank_module)) + return + if(!(newtype in GLOB.armored_modtypes[current_veh_type])) + return + current_gunner_mod = newtype + . = TRUE + + if("deploy") + if(supply_shuttle.mode != SHUTTLE_IDLE) + to_chat(usr, span_danger("Elevator moving!")) + return + if(is_mainship_level(supply_shuttle.z)) + to_chat(usr, span_danger("Elevator raised. Lower to deploy vehicle.")) + return + supply_shuttle.buy(usr, src) + ui_act("send", params, ui, state) + SStgui.close_user_uis(usr, src) + + if(.) + update_static_data(usr) diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm index e761b5270c66d..1a8f1a85e395d 100644 --- a/code/modules/shuttle/shuttle_rotate.dm +++ b/code/modules/shuttle/shuttle_rotate.dm @@ -63,6 +63,12 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate /************************************Machine rotate procs************************************/ +//override to avoid rotating multitile vehicles +/obj/vehicle/shuttleRotate(rotation, params) + if(hitbox) + params = NONE + return ..() + /obj/machinery/atmospherics/shuttleRotate(rotation, params) var/list/real_node_connect = getNodeConnects() for(var/i in 1 to device_type) diff --git a/code/modules/vehicles/armored/__armored.dm b/code/modules/vehicles/armored/__armored.dm index 86dc61cc8f355..b63d74ef641d0 100644 --- a/code/modules/vehicles/armored/__armored.dm +++ b/code/modules/vehicles/armored/__armored.dm @@ -12,8 +12,6 @@ allow_pass_flags = PASS_TANK|PASS_AIR|PASS_WALKOVER resistance_flags = XENO_DAMAGEABLE|UNACIDABLE|PLASMACUTTER_IMMUNE|PORTAL_IMMUNE - // placeholder, make skill check or similar later - req_access = list(ACCESS_MARINE_MECH) move_delay = 0.7 SECONDS max_integrity = 600 light_range = 10 @@ -55,10 +53,10 @@ var/obj/item/tank_module/driver_utility_module ///Our driver utility module var/obj/item/tank_module/gunner_utility_module - //What kind of primary tank weaponry we start with. Defaults to a tank gun. - var/primary_weapon_type = /obj/item/armored_weapon - //What kind of secondary tank weaponry we start with. Default minigun as standard. - var/secondary_weapon_type = /obj/item/armored_weapon/secondary_weapon + ///list of weapons we allow to attach + var/list/permitted_weapons = list(/obj/item/armored_weapon, /obj/item/armored_weapon/ltaap, /obj/item/armored_weapon/secondary_weapon) + ///list of mods we allow to attach + var/list/permitted_mods = list(/obj/item/tank_module/overdrive, /obj/item/tank_module/passenger, /obj/item/tank_module/ability/zoom) ///Minimap flags to use for this vehcile var/minimap_flags = MINIMAP_FLAG_MARINE ///minimap iconstate to use for this vehicle @@ -105,13 +103,6 @@ if(MAP_ARMOR_STYLE_DESERT) turret_overlay.icon_state += "_desert" vis_contents += turret_overlay - if(primary_weapon_type) - var/obj/item/armored_weapon/primary = new primary_weapon_type(src) - primary.attach(src, TRUE) - if(armored_flags & ARMORED_HAS_SECONDARY_WEAPON) - if(secondary_weapon_type) - var/obj/item/armored_weapon/secondary = new secondary_weapon_type(src) - secondary.attach(src, FALSE) if(armored_flags & ARMORED_HAS_MAP_VARIANTS) switch(SSmapping.configs[GROUND_MAP].armor_style) if(MAP_ARMOR_STYLE_JUNGLE) @@ -127,13 +118,20 @@ GLOB.tank_list += src /obj/vehicle/sealed/armored/Destroy() - QDEL_NULL(primary_weapon) - QDEL_NULL(secondary_weapon) - QDEL_NULL(driver_utility_module) - QDEL_NULL(gunner_utility_module) - QDEL_NULL(damage_overlay) - QDEL_NULL(turret_overlay) - QDEL_NULL(interior) + if(primary_weapon) + QDEL_NULL(primary_weapon) + if(secondary_weapon) + QDEL_NULL(secondary_weapon) + if(driver_utility_module) + QDEL_NULL(driver_utility_module) + if(gunner_utility_module) + QDEL_NULL(gunner_utility_module) + if(damage_overlay) + QDEL_NULL(damage_overlay) + if(turret_overlay) + QDEL_NULL(turret_overlay) + if(isdatum(interior)) + QDEL_NULL(interior) underlay = null GLOB.tank_list -= src return ..() @@ -414,6 +412,9 @@ . = ..() if(istype(I, /obj/item/armored_weapon)) var/obj/item/armored_weapon/gun = I + if(!(gun.type in permitted_weapons)) + balloon_alert(user, "cannot attach") + return if(!(gun.weapon_slot & MODULE_PRIMARY)) balloon_alert(user, "not a primary weapon") return @@ -423,6 +424,9 @@ gun.attach(src, TRUE) return if(istype(I, /obj/item/tank_module)) + if(!(I.type in permitted_mods)) + balloon_alert(user, "cannot attach") + return var/obj/item/tank_module/mod = I mod.on_equip(src, user) return @@ -471,6 +475,9 @@ return if(istype(I, /obj/item/armored_weapon)) var/obj/item/armored_weapon/gun = I + if(!(gun.type in permitted_weapons)) + balloon_alert(user, "cannot attach") + return if(!(gun.weapon_slot & MODULE_SECONDARY)) balloon_alert(user, "not a secondary weapon") return diff --git a/code/modules/vehicles/armored/_multitile.dm b/code/modules/vehicles/armored/_multitile.dm index 94aa52943f67f..38077cbafd704 100644 --- a/code/modules/vehicles/armored/_multitile.dm +++ b/code/modules/vehicles/armored/_multitile.dm @@ -11,12 +11,13 @@ minimap_icon_state = "tank" required_entry_skill = SKILL_LARGE_VEHICLE_TRAINED atom_flags = DIRLOCK|BUMP_ATTACKABLE|PREVENT_CONTENTS_EXPLOSION - armored_flags = ARMORED_HAS_PRIMARY_WEAPON|ARMORED_HAS_SECONDARY_WEAPON|ARMORED_HAS_UNDERLAY|ARMORED_HAS_MAP_VARIANTS|ARMORED_HAS_HEADLIGHTS + armored_flags = ARMORED_HAS_PRIMARY_WEAPON|ARMORED_HAS_SECONDARY_WEAPON|ARMORED_HAS_UNDERLAY|ARMORED_HAS_MAP_VARIANTS|ARMORED_HAS_HEADLIGHTS|ARMORED_PURCHASABLE_ASSAULT pixel_x = -48 pixel_y = -48 max_integrity = 900 soft_armor = list(MELEE = 50, BULLET = 100 , LASER = 90, ENERGY = 60, BOMB = 60, BIO = 60, FIRE = 50, ACID = 50) hard_armor = list(MELEE = 0, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) + permitted_mods = list(/obj/item/tank_module/overdrive, /obj/item/tank_module/ability/zoom) max_occupants = 4 move_delay = 0.9 SECONDS ram_damage = 100 diff --git a/code/modules/vehicles/armored/apc.dm b/code/modules/vehicles/armored/apc.dm index 2400c6db6fd87..b1936dc20196d 100644 --- a/code/modules/vehicles/armored/apc.dm +++ b/code/modules/vehicles/armored/apc.dm @@ -4,14 +4,12 @@ icon = 'icons/obj/armored/3x3/apc.dmi' icon_state = "apc" damage_icon_path = 'icons/obj/armored/3x3/apc_damage_overlay.dmi' - armored_flags = ARMORED_HAS_HEADLIGHTS + armored_flags = ARMORED_HAS_HEADLIGHTS|ARMORED_PURCHASABLE_TRANSPORT required_entry_skill = SKILL_LARGE_VEHICLE_DEFAULT minimap_icon_state = null turret_icon = null interior = null secondary_turret_icon = null - primary_weapon_type = null - secondary_weapon_type = null armored_flags = NONE pixel_x = -48 pixel_y = -40 diff --git a/code/modules/vehicles/armored/armored_weapons.dm b/code/modules/vehicles/armored/armored_weapons.dm index f64f3886855d0..b9a1f4afe87af 100644 --- a/code/modules/vehicles/armored/armored_weapons.dm +++ b/code/modules/vehicles/armored/armored_weapons.dm @@ -58,7 +58,8 @@ /obj/item/armored_weapon/Destroy() if(chassis) detach(get_turf(chassis)) - QDEL_NULL(ammo) + if(isdatum(ammo)) + QDEL_NULL(ammo) QDEL_LIST(ammo_magazine) return ..() diff --git a/code/modules/vehicles/armored/medium_apc.dm b/code/modules/vehicles/armored/medium_apc.dm index ec0996a2b5279..ca15eb9e78eae 100644 --- a/code/modules/vehicles/armored/medium_apc.dm +++ b/code/modules/vehicles/armored/medium_apc.dm @@ -12,5 +12,3 @@ icon_state = "apc" move_delay = 0.25 SECONDS max_occupants = 5 - primary_weapon_type = /obj/item/armored_weapon/apc_cannon //Only has a utility launcher, no offense as standard. - secondary_weapon_type = null diff --git a/code/modules/vehicles/armored/small_apc.dm b/code/modules/vehicles/armored/small_apc.dm index 27c8c1bc17756..2f7f57188ece9 100644 --- a/code/modules/vehicles/armored/small_apc.dm +++ b/code/modules/vehicles/armored/small_apc.dm @@ -11,5 +11,3 @@ pixel_x = -16 pixel_y = -8 max_occupants = 3 - primary_weapon_type = null - secondary_weapon_type = null diff --git a/code/modules/vehicles/armored/tank_fabricator.dm b/code/modules/vehicles/armored/tank_fabricator.dm index d15bec0c721a7..6db634f4bff9f 100644 --- a/code/modules/vehicles/armored/tank_fabricator.dm +++ b/code/modules/vehicles/armored/tank_fabricator.dm @@ -4,6 +4,23 @@ density = TRUE anchored = TRUE use_power = IDLE_POWER_USE + req_access = list(ACCESS_MARINE_ARMORED) idle_power_usage = 20 + bound_width = 64 icon = 'icons/obj/machines/drone_fab.dmi' icon_state = "drone_fab_idle" + /// actual UI that will be interacted with + var/datum/supply_ui/vehicles/supply_ui + +/obj/machinery/tank_part_fabricator/interact(mob/user) + . = ..() + if(.) + return + if(!allowed(user)) + return + if(!supply_ui) + supply_ui = new(src) + supply_ui.shuttle_id = SHUTTLE_VEHICLE_SUPPLY + supply_ui.home_id = "vehicle_home" + supply_ui.faction = FACTION_TERRAGOV + return supply_ui.interact(user) diff --git a/tgui/packages/tgui/interfaces/VehicleSupply.tsx b/tgui/packages/tgui/interfaces/VehicleSupply.tsx new file mode 100644 index 0000000000000..3268f330f0494 --- /dev/null +++ b/tgui/packages/tgui/interfaces/VehicleSupply.tsx @@ -0,0 +1,215 @@ +import { useBackend } from '../backend'; +import { Button, Collapsible, Section, Slider, Stack } from '../components'; +import { Window } from '../layouts'; + +type SelectionEntry = { + name: string; + desc: string; + type: string; + isselected: boolean; +}; + +type AmmoData = { + name: string; + type: string; + current: number; + max: number; +}; + +type VehicleSupplyData = { + vehicles: SelectionEntry[]; + primaryWeapons: SelectionEntry[]; + secondaryWeapons: SelectionEntry[]; + driverModules: SelectionEntry[]; + gunnerModules: SelectionEntry[]; + + primaryammotypes?: AmmoData[]; + secondarymmotypes?: AmmoData[]; + + elevator: string; + elevator_dir: string; +}; + +export const VehicleSupply = (props) => { + const { act, data } = useBackend(); + const { + vehicles, + primaryWeapons, + secondaryWeapons, + driverModules, + gunnerModules, + primaryammotypes, + secondarymmotypes, + elevator, + elevator_dir, + } = data; + return ( + + + + + + +
+ {primaryWeapons?.map((primary) => ( + + act('setprimary', { type: primary.type }) + } + icon="check" + content="Select" + selected={primary.isselected} + /> + } + > + {!primary.isselected + ? null + : primaryammotypes?.map((ammotype) => ( + + act('set_ammo_primary', { + type: ammotype.type, + new_value: value, + }) + } + value={ammotype.current} + /> + ))} + + ))} +
+
+ +
+ {secondaryWeapons?.map((secondary) => ( + + act('setsecondary', { type: secondary.type }) + } + icon="check" + content="Select" + selected={secondary.isselected} + /> + } + > + {!secondary.isselected + ? null + : secondarymmotypes?.map((ammotype) => ( + + act('set_ammo_secondary', { + type: ammotype.type, + new_value: value, + }) + } + value={ammotype.current} + /> + ))} + + ))} +
+
+
+
+ +