Skip to content

Commit

Permalink
Executive Officer's Weapons Vendor + More Belt Options (#5179)
Browse files Browse the repository at this point in the history
# About the pull request

This PR adds a new 'weapons' vendor for the Executive Officer to acquire
a suite of personal gear for their use. It also adds a new belt category
to their uniform vendor to give the Executive Officer more options in
what kind of belt they want to take.

The XO can chose to vend either a MK1 M41A weapon's kit, equilivant to
the armoury, or a MK221 shotgun kit which comes with a box of buckshot
and slug rounds each.

# Explain why it's good for the game

The Executive Officer exists as a sort of stepping stone to the
Commanding Officer to a degree, because of this, it has been somewhat
languishing in-between the Commander and Staff Officers.

The CO has a full suite of personal vendors and unique equipment to pick
from, and the Staff Officers have their own unique weapons vendor and
ancillary equipment from the armoury they can select, including special
medical and engineering kits.

The Executive Officer only has a uniform vendor to draw from, but
otherwise they are forced to skim off of the armoury and the staff
officer's equipment.

Due to the recent rule changes that allow the XO to deploy more freely
groundside, as well as deploying during a Nuclear weapon deployment, I
feel the time is now to address the issue.

Ergo, this PR adds a new vendor to give the XO more options on what
equipment they can take for when they deploy, or for hijack. The
equipment is somewhat in keeping with what the CO gets, minus the
special equipment. Ergo, it can help an aspiring CO get a better idea of
how their setup works for the CO just as it does for a XO.

In terms of abuse, I do not believe this will be a issue. The XO is held
to the highest standards of roleplay outside of whitelisted roles, an XO
already has the power to loot the armoury or requisitions, I do not
believe this will enable something negative considering they already
have that ability if they want to.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

![Screenshot 2023-12-10 16 24
09](https://github.com/cmss13-devs/cmss13/assets/6595389/67eea32f-8192-406f-9684-fe70e22b6542)

![Screenshot 2023-12-10 16 24
02](https://github.com/cmss13-devs/cmss13/assets/6595389/74cb5419-c34d-4c53-beb9-eb3e57fdb4e2)


</details>


# Changelog
:cl:
add: The Executive Officer now has a personal weapons vendor. It
includes the ability to acquire a full suite of combat and support gear,
giving the XO more agency in customizing their loadout.
add: Adds a new set of belts to the Executive Officer's uniform vendor. 
/:cl:

---------

Co-authored-by: Steelpoint <[email protected]>
  • Loading branch information
Steelpoint and Steelpoint authored Dec 25, 2023
1 parent 70a0bf3 commit dab3aeb
Show file tree
Hide file tree
Showing 2 changed files with 7,809 additions and 7,730 deletions.
70 changes: 69 additions & 1 deletion code/game/machinery/vending/vendor_types/crew/senior_officers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,67 @@ GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list(


//------------ EXECUTIVE OFFFICER ---------------

//------------WEAPON VENDOR---------------
GLOBAL_LIST_INIT(cm_vending_gear_xo, list(
list("CAPTAIN'S PRIMARY (CHOOSE 1)", 0, null, null, null),
list("M41A MK1 Pulse Rifle", 0, /obj/item/storage/box/guncase/m41aMK1AP, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY),
list("MK221 Tactical Shotgun", 0, /obj/effect/essentials_set/xo/shotgunpreset, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY),

list("PRIMARY AMMUNITION", 0, null, null, null),
list("M41A MK1 Magazine", 40, /obj/item/ammo_magazine/rifle/m41aMK1, null, VENDOR_ITEM_RECOMMENDED),
list("M41A MK1 AP Magazine", 60, /obj/item/ammo_magazine/rifle/m41aMK1/ap, null, VENDOR_ITEM_RECOMMENDED),
list("Buckshot Shells", 20, /obj/item/ammo_magazine/shotgun/buckshot, null, VENDOR_ITEM_REGULAR),
list("Shotgun Slugs", 20, /obj/item/ammo_magazine/shotgun/slugs, null, VENDOR_ITEM_REGULAR),
list("Flechette Shells", 20, /obj/item/ammo_magazine/shotgun/flechette, null, VENDOR_ITEM_REGULAR),

list("EXPLOSIVES", 0, null, null, null),
list("HEDP Grenade Pack", 15, /obj/item/storage/box/packet/high_explosive, null, VENDOR_ITEM_REGULAR),
list("HEFA Grenade Pack", 15, /obj/item/storage/box/packet/hefa, null, VENDOR_ITEM_REGULAR),
list("WP Grenade Pack", 15, /obj/item/storage/box/packet/phosphorus, null, VENDOR_ITEM_REGULAR),

list("RAIL ATTACHMENTS", 0, null, null, null),
list("Red-Dot Sight", 15, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR),
list("Reflex Sight", 15, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR),
list("S4 2x Telescopic Mini-Scope", 15, /obj/item/attachable/scope/mini, null, VENDOR_ITEM_REGULAR),

list("Helmet Visors", 0, null, null, null),
list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_RECOMMENDED),

list("UNDERBARREL ATTACHMENTS", 0, null, null, null),
list("Laser Sight", 15, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR),
list("Angled Grip", 15, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
list("Vertical Grip", 15, /obj/item/attachable/verticalgrip, null, VENDOR_ITEM_REGULAR),
list("Underbarrel Shotgun", 15, /obj/item/attachable/attached_gun/shotgun, null, VENDOR_ITEM_REGULAR),
list("Underbarrel Extinguisher", 15, /obj/item/attachable/attached_gun/extinguisher, null, VENDOR_ITEM_REGULAR),
list("Underbarrel Flamethrower", 15, /obj/item/attachable/attached_gun/flamer, null, VENDOR_ITEM_REGULAR),
list("Underbarrel Grenade Launcher", 5, /obj/item/attachable/attached_gun/grenade, null, VENDOR_ITEM_REGULAR),

list("BARREL ATTACHMENTS", 0, null, null, null),
list("Extended Barrel", 15, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR),
list("Recoil Compensator", 15, /obj/item/attachable/compensator, null, VENDOR_ITEM_REGULAR),
list("Suppressor", 15, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR),
))

/obj/effect/essentials_set/xo/shotgunpreset
spawned_gear_list = list(
/obj/item/weapon/gun/shotgun/combat,
/obj/item/ammo_magazine/shotgun/buckshot,
/obj/item/ammo_magazine/shotgun/slugs,
)

/obj/structure/machinery/cm_vending/gear/executive_officer
name = "\improper ColMarTech Executive Officer Weapon Rack"
desc = "An automated weapons rack for the Executive Officer. It features a decent selection of weaponry meant only for the second in command of a ship."
req_access = list(ACCESS_MARINE_SENIOR)
vendor_role = list(JOB_XO)
icon_state = "guns"
use_snowflake_points = TRUE

/obj/structure/machinery/cm_vending/gear/executive_officer/get_listed_products(mob/user)
return GLOB.cm_vending_gear_xo

//------------UNIFORM/GEAR VENDOR---------------
GLOBAL_LIST_INIT(cm_vending_clothing_xo, list(

list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
Expand All @@ -285,6 +346,14 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list(
list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),
list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),

list("BELTS (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("Military Police Belt", 0, /obj/item/storage/belt/security/MP/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
list("M276 Medical Storage Rig", 0, /obj/item/storage/belt/medical/full, 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 Holster Toolrig", 0, /obj/item/storage/belt/gun/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED),
list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR),

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_ARMOR, VENDOR_ITEM_MANDATORY),
list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY),
Expand Down Expand Up @@ -312,7 +381,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list(
list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),
list("Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR),


list("ACCESSORIES (CHOOSE 1)", 0, null, null, null),
list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR),
list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR),
Expand Down
Loading

0 comments on commit dab3aeb

Please sign in to comment.