From 1e890af39d7c4b6233439fbaa8693a3918e35f5c Mon Sep 17 00:00:00 2001 From: Steelpoint <6595389+Steelpoint@users.noreply.github.com> Date: Mon, 23 Oct 2023 02:03:20 +0800 Subject: [PATCH 01/10] Revolver Heavy Ammo Effect Change (#4706) # About the pull request This PR changes heavy ammo for the Revolver to knockback a mob and slow them down instead of stunning it. # Explain why it's good for the game Combat balance is a precarious and often difficult conversation to hold, ergo I'll lay my biases out on the table at first. I'm a marine main at heart, but I have played a lot of xeno recently to gain a better understanding of their side of the story, enough that I feel confident to make these assertions. My belief is that the heavy ammo of the revolver is a negative concept for the game, and it needs to be removed, due to its stun factor. The issue here is readability and prediction. When you see a RPG, you know that it can fire a devastating warhead that can stun and kill T3s. When you see a Warrior, you know it can leap to 4 tiles to stun and drag a Human, when you hear a CAS strike you know exactly what is about to drop. When you see a Queen you know she can stun screech and neuro stun you. But the issue with the Revolver is it has no obvious tell. It is a small item, that can be fit inside backpacks, holsters, pouches, belts, armour slots. It has no obvious advance warning when you are going to fire it. There is no special uniform requirement making a revolver user standout amongst the crowd. There is no tell. The problem with the stun revolver is simply that is is a hard counter to all T1s and most T2s. Its ability to stun allows it to perform an attack that is uncounterable to a xeno as a xeno has no way to predict who may be carrying one. A xeno can tell who a Specialist is, a xeno can tell who has a shotgun or flamer or sniper or RPG, you can tell when a mortar is being prepared, or a CAS strike or even an OB. You can see the smartgunner. Even the Scout, a literal cloaked Marine, has to uncloak to fire. You can not tell who has a revolver until they pull it out and stun you. Once you are stunned you die. A xeno equilivant would be if any Xeno could be carrying a special tool that lets them grab a marine from 7 tiles away and pull them in plus stun them for 2 seconds. But any xenomorph could be using it, including a Lesser Drone. Perhaps the heavy revolver could be reworked to do something else, but ultimately the only reason anyone takes this ammo is for the stun. Anything else is beating around the bush. Those are my reasoning's, I'll leave the rest to the powers' that be. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: balance: Revolver Heavy ammo no longer stuns targets it strikes, it will instead knock them back and slow them down for a short time. /:cl: --------- Co-authored-by: Steelpoint --- code/datums/ammo/ammo.dm | 9 +++++++++ code/datums/ammo/bullet/revolver.dm | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/code/datums/ammo/ammo.dm b/code/datums/ammo/ammo.dm index c536ac83484c..a858c6b1f5a7 100644 --- a/code/datums/ammo/ammo.dm +++ b/code/datums/ammo/ammo.dm @@ -171,6 +171,15 @@ else living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) +/datum/ammo/proc/slowdown(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + target.apply_effect(1, SUPERSLOW) + target.apply_effect(2, SLOW) + to_chat(target, SPAN_XENODANGER("You are slowed by the sudden impact!")) + else + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + /datum/ammo/proc/pushback(mob/target_mob, obj/projectile/fired_projectile, max_range = 2) if(!target_mob || target_mob == fired_projectile.firer || fired_projectile.distance_travelled > max_range || target_mob.lying) return diff --git a/code/datums/ammo/bullet/revolver.dm b/code/datums/ammo/bullet/revolver.dm index 339609f57be7..633bf3e2f7ff 100644 --- a/code/datums/ammo/bullet/revolver.dm +++ b/code/datums/ammo/bullet/revolver.dm @@ -27,8 +27,9 @@ penetration = ARMOR_PENETRATION_TIER_4 accuracy = HIT_ACCURACY_TIER_3 -/datum/ammo/bullet/revolver/heavy/on_hit_mob(mob/M, obj/projectile/P) - knockback(M, P, 4) +/datum/ammo/bullet/revolver/heavy/on_hit_mob(mob/entity, obj/projectile/bullet) + slowdown(entity, bullet) + pushback(entity, bullet, 4) /datum/ammo/bullet/revolver/incendiary name = "incendiary revolver bullet" From 81f90df92c06f7182e671c942155ed89b1ad19aa Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sun, 22 Oct 2023 19:17:21 +0100 Subject: [PATCH 02/10] Automatic changelog for PR #4706 [ci skip] --- html/changelogs/AutoChangeLog-pr-4706.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4706.yml diff --git a/html/changelogs/AutoChangeLog-pr-4706.yml b/html/changelogs/AutoChangeLog-pr-4706.yml new file mode 100644 index 000000000000..8d6c934a5cc0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4706.yml @@ -0,0 +1,4 @@ +author: "Steelpoint" +delete-after: True +changes: + - balance: "Revolver Heavy ammo no longer stuns targets it strikes, it will instead knock them back and slow them down for a short time." \ No newline at end of file From b02c8445b85796e1647d1e423697bdf0dc007bf0 Mon Sep 17 00:00:00 2001 From: harryob Date: Sun, 22 Oct 2023 19:04:12 +0100 Subject: [PATCH 03/10] removes hardcoded server name from latejoiners (#4753) latejoiners were always shown the default skin in the .dmf as the custom title based on config was only shown if you happened to be connected when SSmapping was initializing :cl: server: the server now respects /string/title for late joiners /:cl: --- code/controllers/subsystem/mapping.dm | 4 +--- interface/skin.dmf | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index afecabd74be0..be69bdad1b7e 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -29,9 +29,7 @@ SUBSYSTEM_DEF(mapping) /datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig() if(!configs) configs = load_map_configs(ALL_MAPTYPES, error_if_missing = FALSE) - for(var/i in GLOB.clients) - var/client/C = i - winset(C, null, "mainwindow.title='[CONFIG_GET(string/title)] - [SSmapping.configs[SHIP_MAP].map_name]'") + world.name = "[CONFIG_GET(string/title)] - [SSmapping.configs[SHIP_MAP].map_name]" /datum/controller/subsystem/mapping/Initialize(timeofday) HACK_LoadMapConfig() diff --git a/interface/skin.dmf b/interface/skin.dmf index 5d06bb40e858..e31c42938cd9 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -164,7 +164,6 @@ window "mainwindow" anchor2 = -1,-1 is-default = true saved-params = "pos;size;is-minimized;is-maximized" - title = "CM-SS13 - USS Almayer" is-maximized = true statusbar = false icon = 'icons\\taskbar\\gml_distress.png' From 9703d4cd7407b5e6a32ee8c6b487f697b8acd078 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sun, 22 Oct 2023 19:35:53 +0100 Subject: [PATCH 04/10] Automatic changelog for PR #4753 [ci skip] --- html/changelogs/AutoChangeLog-pr-4753.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4753.yml diff --git a/html/changelogs/AutoChangeLog-pr-4753.yml b/html/changelogs/AutoChangeLog-pr-4753.yml new file mode 100644 index 000000000000..961d6e35c2d4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4753.yml @@ -0,0 +1,4 @@ +author: "harryob" +delete-after: True +changes: + - server: "the server now respects /string/title for late joiners" \ No newline at end of file From 3d2b2ed59547b3786ab65336bc78276e8d28a4bf Mon Sep 17 00:00:00 2001 From: QuickLode <63271983+QuickLode@users.noreply.github.com> Date: Sun, 22 Oct 2023 11:04:32 -0700 Subject: [PATCH 05/10] Nerfs Colony Synthetic Pouch (#4752) # About the pull request nerfs synth surv pouch by 1 slot # Explain why it's good for the game Feel like it holds a little much so this is a step in the right direction. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: balance: Nerfs synth surv pouch by removing 1 storage slot. /:cl: --- code/game/objects/items/storage/pouch.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index f24c0c3f3131..48eb322f2093 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -168,7 +168,7 @@ name = "synth survival pouch" desc = "An emergency pouch given to synthetics in the event of an emergency." icon_state = "tools" - storage_slots = 7 + storage_slots = 6 max_w_class = SIZE_MEDIUM can_hold = list( /obj/item/device/flashlight, @@ -181,7 +181,6 @@ ) /obj/item/storage/pouch/survival/synth/full/fill_preset_inventory() - new /obj/item/device/flashlight(src) new /obj/item/tool/crowbar/red(src) new /obj/item/tool/weldingtool(src) new /obj/item/stack/cable_coil(src) From 14319cf2222148f10d6fa59bd128d77ddb3d8540 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sun, 22 Oct 2023 20:01:28 +0100 Subject: [PATCH 06/10] Automatic changelog for PR #4752 [ci skip] --- html/changelogs/AutoChangeLog-pr-4752.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4752.yml diff --git a/html/changelogs/AutoChangeLog-pr-4752.yml b/html/changelogs/AutoChangeLog-pr-4752.yml new file mode 100644 index 000000000000..b6417f410eb9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4752.yml @@ -0,0 +1,4 @@ +author: "QuickLode" +delete-after: True +changes: + - balance: "Nerfs synth surv pouch by removing 1 storage slot." \ No newline at end of file From 5a48d2c38271fcc61e14491095756676a1aeaca6 Mon Sep 17 00:00:00 2001 From: stalkerino <66872447+irakligabunia@users.noreply.github.com> Date: Sun, 22 Oct 2023 22:07:21 +0400 Subject: [PATCH 07/10] M39 being able to use vertical grip again [BUFF] (#4627) # About the pull request M39 receives a buff, which allows it to use a attachment that make sit viable. # Explain why it's good for the game M39 as it stands is quite useless, the vertical grip might help it become a viable choice over the M4RA, the MK2 and the M37 :) # Testing Photographs and Procedure Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: stalkerino balance: m39 is able to use vertigrip /:cl: --- code/modules/projectiles/guns/smgs.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/guns/smgs.dm b/code/modules/projectiles/guns/smgs.dm index 89e6594c64e7..24eddf31597d 100644 --- a/code/modules/projectiles/guns/smgs.dm +++ b/code/modules/projectiles/guns/smgs.dm @@ -11,7 +11,7 @@ aim_slowdown = SLOWDOWN_ADS_QUICK wield_delay = WIELD_DELAY_VERY_FAST attachable_allowed = list( - /obj/item/attachable/suppressor, + /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, /obj/item/attachable/flashlight, @@ -50,7 +50,8 @@ /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, - /obj/item/attachable/angledgrip, + /obj/item/attachable/angledgrip, + /obj/item/attachable/verticalgrip, /obj/item/attachable/flashlight/grip, /obj/item/attachable/stock/smg, /obj/item/attachable/stock/smg/collapsible, From 6fdb79b32114f1ce5ed59f044498819028074e68 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sun, 22 Oct 2023 20:41:08 +0100 Subject: [PATCH 08/10] Automatic changelog for PR #4627 [ci skip] --- html/changelogs/AutoChangeLog-pr-4627.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4627.yml diff --git a/html/changelogs/AutoChangeLog-pr-4627.yml b/html/changelogs/AutoChangeLog-pr-4627.yml new file mode 100644 index 000000000000..69b88c735822 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4627.yml @@ -0,0 +1,4 @@ +author: "stalkerino" +delete-after: True +changes: + - balance: "m39 is able to use vertigrip" \ No newline at end of file From 34878a19fa8f942b60f8742fb48db9255d1da9fc Mon Sep 17 00:00:00 2001 From: Spy <31124786+SpypigDev@users.noreply.github.com> Date: Mon, 23 Oct 2023 05:08:46 +1100 Subject: [PATCH 09/10] SO CIC vendor quality of life tweaks (#4707) # About the pull request Brings more cohesion to the SO vendor system, as well as CIC Armory. Reworking the gear/prep aspect of SOs to better reflect what gear would be reasonable for them to have IC (no machetes right out of cryo for example). - SO spawn vendors majorly cut back, with webbing, combat helmet, machete, all belts, and RTO pack removed, moving each to the _SO Armory Vendor_. The SO spawn vendor should provide purely for SO activity _within_ CIC, and I feel this is more appropriate - Added a new vendor in CIC's Armory called the 'SO Armory Vendor' to serve as a new location for the deployment gear set required by SOs. - On top of already already-mentioned moved gear, the Armory vendor adds combat gear, aviator shades (because of course), an option to specialize as either an Engineer or a Medic with their essential kit, an engineer belt! (as well as all the other belts removed from the SO spawn room) - Adds some extra items to the Armory vendor point-buy section to **finally** give SOs a reason to chew up their 45 points, notably including the RTO pack # Explain why it's good for the game I've always found it really unusual how SO spawn vendors are a bit all over the place in terms of supplied gear. With this PR, SO gear has been split into two distinct vendors, with one being firmly behind the Armory shutters to ensure that SOs aren't allowed to continually roll around the Almayer with a full combat set minus the chest piece and rifle. This way, SOs can still get basic gear needed for CIC operation from their regular vendor, but can also access a full combat set _and more_ once the Armory shutters go up, whether it's from XO deployment or code red. # Testing Photographs and Procedure
Screenshots & Videos New SO spawn vend: https://cdn.discordapp.com/attachments/1100833406314618880/1163812305352528015/image.png?ex=6540efac&is=652e7aac&hm=5a4db3d47b2a0f6416e7b0181ad135913203512f7fb7b5c5600394d75e9856aa& Armory Vendor, the typo has since been repaired (1/2): https://cdn.discordapp.com/attachments/1100833406314618880/1163812464232775690/image.png?ex=6540efd2&is=652e7ad2&hm=b6040e631260ef77f502903b1cf65a59d18f7b2a896d45d0d0e9ce0493e2887e& Armory Vendor (2/2): https://cdn.discordapp.com/attachments/1100833406314618880/1163812566569582632/image.png?ex=6540efea&is=652e7aea&hm=186a90a37c2b6b8821de93ae476aa02733db22a9360e050900beb81d4b412a7a& New CIC Armory setup: https://cdn.discordapp.com/attachments/1100833406314618880/1163812692696498226/image.png?ex=6540f008&is=652e7b08&hm=7434e1a665e87af3683be853a388c97039f3c790ba1c17e9482347c532fca2e9&
# Changelog :cl: add: CIC Armory SO vendor balance: Moved most combat-themed gear from SO spawn vendors, to CIC Armory vendor balance: Made RTO pack a point-buy item in CIC Armory vendor for SOs /:cl: --- code/game/machinery/vending/cm_vending.dm | 2 +- .../vendor_types/crew/staff_officer.dm | 55 ++---------- .../vendor_types/crew/staff_officer_armory.dm | 83 +++++++++++++++++++ colonialmarines.dme | 1 + maps/map_files/USS_Almayer/USS_Almayer.dmm | 8 +- 5 files changed, 92 insertions(+), 57 deletions(-) create mode 100644 code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm diff --git a/code/game/machinery/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm index bf7c4fffee65..861f5b37ebca 100644 --- a/code/game/machinery/vending/cm_vending.dm +++ b/code/game/machinery/vending/cm_vending.dm @@ -774,8 +774,8 @@ GLOBAL_LIST_EMPTY(vending_products) desc = "An automated closet hooked up to a colossal storage of standard-issue uniform and armor." icon_state = "clothing" use_points = TRUE + show_points = TRUE vendor_theme = VENDOR_THEME_USCM - show_points = FALSE vend_flags = VEND_CLUTTER_PROTECTION | VEND_UNIFORM_RANKS | VEND_UNIFORM_AUTOEQUIP | VEND_CATEGORY_CHECK /obj/structure/machinery/cm_vending/clothing/ui_static_data(mob/user) diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm index 85a8a58d162e..50b83ccdc54f 100644 --- a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm @@ -13,13 +13,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Service Uniform", 0, /obj/item/clothing/under/marine/officer/bridge, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Operations Uniform", 0, /obj/item/clothing/under/marine/officer/boiler, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), + list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_REGULAR), list("JACKET (CHOOSE 1)", 0, null, null, null), list("Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), @@ -33,66 +33,21 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer, list( list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null), - list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M4A3 Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("VP78 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp78, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("M4A3 Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("VP78 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp78, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), list("BACKPACK (CHOOSE 1)", 0, null, null, null), list("Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), - list("Radio Telephone Pack", 0, /obj/item/storage/backpack/marine/satchel/rto, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("BELT (CHOOSE 1)", 0, null, null, null), - list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Medical Storage Rig (Full)", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M39 Holster Rig", 0, /obj/item/storage/belt/gun/m39, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Shotgun Shell Loading Rig", 0, /obj/item/storage/belt/shotgun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M40 Grenade Rig", 0, /obj/item/storage/belt/grenade, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - - list("POUCHES (CHOOSE 2)", 0, null, null, null), - list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First Responder Pouch", 0, /obj/item/storage/pouch/first_responder, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Fuel Tank Strap Pouch", 0, /obj/item/storage/pouch/flamertank, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - - list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), - list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), - list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - - list("MASK (CHOOSE 1)", 0, null, null, null), - list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), - list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), list("OTHER SUPPLIES", 0, null, null, null), list("Binoculars", 5,/obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), list("Rangefinder", 8, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), list("Laser Designator", 12, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_RECOMMENDED), - list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), list("Flashlight", 1, /obj/item/device/flashlight, null, VENDOR_ITEM_RECOMMENDED), - list("Fulton Recovery Device", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), - list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), + list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), list("Space Cleaner", 2, /obj/item/reagent_container/spray/cleaner, null, VENDOR_ITEM_REGULAR), list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), - list("Machete Scabbard (Full)", 2, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR) )) diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm new file mode 100644 index 000000000000..ac7b22b4e0a0 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm @@ -0,0 +1,83 @@ +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory + name = "\improper ColMarTech Staff Officer Armory Equipment Rack" + desc = "An automated combat equipment vendor for Staff Officers." + req_access = list(ACCESS_MARINE_COMMAND) + icon_state = "mar_rack" + vendor_role = list(JOB_SO) + +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_staff_officer_armory + +//------------GEAR--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer_armory, list( + list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_COMBAT_ARMOR, VENDOR_ITEM_MANDATORY), + list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_COMBAT_HELMET, VENDOR_ITEM_MANDATORY), + list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Marine Combat Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), + list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), + list("Aviator Shades", 0, /obj/item/clothing/glasses/sunglasses/aviator, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + + list("SPECIALISATION KIT (CHOOSE 1)", 0, null, null, null), + list("Essential Engineer Set", 0, /obj/effect/essentials_set/engi, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), + list("Essential Medical Set", 0, /obj/effect/essentials_set/medic, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), + + list("BELT (CHOOSE 1)", 0, null, null, null), + list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Toolbelt Rig (Full)", 0, /obj/item/storage/belt/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 Medical Storage Rig (Full)", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M39 Holster Rig", 0, /obj/item/storage/belt/gun/m39, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 Shotgun Shell Loading Rig", 0, /obj/item/storage/belt/shotgun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M40 Grenade Rig", 0, /obj/item/storage/belt/grenade, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + + list("POUCHES (CHOOSE 2)", 0, null, null, null), + list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First Responder Pouch", 0, /obj/item/storage/pouch/first_responder, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Fuel Tank Strap Pouch", 0, /obj/item/storage/pouch/flamertank, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + + list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), + list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), + list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + + list("MASK (CHOOSE 1)", 0, null, null, null), + list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + + list("OTHER SUPPLIES", 0, null, null, null), + list("Medical Helmet Optic", 5, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), + list("Magnetic Harness", 12, /obj/item/attachable/magnetic_harness, null, VENDOR_ITEM_REGULAR), + list("Radio Telephone Pack", 15, /obj/item/storage/backpack/marine/satchel/rto, null, VENDOR_ITEM_RECOMMENDED), + list("Binoculars", 5,/obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Rangefinder", 8, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 12, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_RECOMMENDED), + list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), + list("Flashlight", 1, /obj/item/device/flashlight, null, VENDOR_ITEM_RECOMMENDED), + list("Fulton Recovery Device", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), + list("Space Cleaner", 2, /obj/item/reagent_container/spray/cleaner, null, VENDOR_ITEM_REGULAR), + list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), + list("Machete Scabbard (Full)", 5, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR) + )) diff --git a/colonialmarines.dme b/colonialmarines.dme index 0853abf66ba8..fe2fadba5c0e 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -939,6 +939,7 @@ #include "code\game\machinery\vending\vendor_types\crew\sea.dm" #include "code\game\machinery\vending\vendor_types\crew\senior_officers.dm" #include "code\game\machinery\vending\vendor_types\crew\staff_officer.dm" +#include "code\game\machinery\vending\vendor_types\crew\staff_officer_armory.dm" #include "code\game\machinery\vending\vendor_types\crew\synthetic.dm" #include "code\game\machinery\vending\vendor_types\crew\vehicle_crew.dm" #include "code\game\machinery\vending\vendor_types\squad_prep\squad_engineer.dm" diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index b2b300133d12..12227cacc551 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -530,14 +530,12 @@ }, /area/almayer/hallways/aft_hallway) "abQ" = ( -/obj/structure/surface/rack, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, /obj/item/device/radio/intercom{ freerange = 1; name = "General Listening Channel"; pixel_y = 28 }, +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -63674,9 +63672,7 @@ }, /area/almayer/lifeboat_pumps/north1) "ryR" = ( -/obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep{ - req_access = list(1) - }, +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, /turf/open/floor/almayer{ icon_state = "redfull" }, From b511436086cf3a8e25846d615193803a5399d6e5 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sun, 22 Oct 2023 20:59:03 +0100 Subject: [PATCH 10/10] Automatic changelog for PR #4707 [ci skip] --- html/changelogs/AutoChangeLog-pr-4707.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4707.yml diff --git a/html/changelogs/AutoChangeLog-pr-4707.yml b/html/changelogs/AutoChangeLog-pr-4707.yml new file mode 100644 index 000000000000..d609bd7febd2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4707.yml @@ -0,0 +1,6 @@ +author: "SpypigDev" +delete-after: True +changes: + - rscadd: "CIC Armory SO vendor" + - balance: "Moved most combat-themed gear from SO spawn vendors, to CIC Armory vendor" + - balance: "Made RTO pack a point-buy item in CIC Armory vendor for SOs" \ No newline at end of file