Skip to content

Commit

Permalink
Campaign: Secondary selection for loadouts (#16631)
Browse files Browse the repository at this point in the history
  • Loading branch information
Lumipharon authored Oct 15, 2024
1 parent cd1d7dc commit c62f229
Show file tree
Hide file tree
Showing 49 changed files with 1,654 additions and 1,276 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/equipment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@
#define ITEM_SLOT_HANDCUFF (1<<14) //the slot for handcuffs
#define ITEM_SLOT_L_HAND (1<<15) //left hand
#define ITEM_SLOT_R_HAND (1<<16) //right hand
#define ITEM_SLOT_SECONDARY (1<<17) //campaign loadouts only

///Inventory slot bits to plain english strings
GLOBAL_LIST_INIT(inventory_slots_to_string, list(
Expand All @@ -246,6 +247,7 @@ GLOBAL_LIST_INIT(inventory_slots_to_string, list(
"[ITEM_SLOT_HANDCUFF]" = "Handcuffs",
"[ITEM_SLOT_L_HAND]" = "Left hand",
"[ITEM_SLOT_R_HAND]" = "Right hand",
"[ITEM_SLOT_SECONDARY]" = "Secondary",
))

//=================================================
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,8 @@ GLOBAL_VAR_INIT(refid_filter, TYPEID(filter(type="angular_blur")))

#define isstorageobj(A) (istype(A, /obj/item/storage))

#define isholster(A) (istype(A, /obj/item/storage/holster))

#define isitemstack(A) (istype(A, /obj/item/stack))

#define isuniform(A) (istype(A, /obj/item/clothing/under))
Expand Down
10 changes: 10 additions & 0 deletions code/_globalvars/lists/flavor_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,16 @@ GLOBAL_LIST_INIT(campaign_loadout_item_icon_types, list(
"v62",
"t21",
"tx34",
"tp44",
"tp14",
"88m4",
"tp23",
"highpower",
"stun_nade",
"sentry",
"claymore",
"t72",
"minigun",
))

GLOBAL_LIST_INIT(minimap_icons, init_minimap_icons())
Expand Down
31 changes: 27 additions & 4 deletions code/datums/gamemodes/campaign/loadout_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@
///Available for unlock by default
#define LOADOUT_ITEM_ROUNDSTART_UNLOCKABLE (1<<2)

#define LOADOUT_ITEM_MG27 /obj/item/weapon/gun/standard_mmg/machinegunner
#define LOADOUT_ITEM_TGMC_FLAMER /obj/item/weapon/gun/flamer/big_flamer/marinestandard/wide
#define LOADOUT_ITEM_TGMC_MINIGUN /obj/item/weapon/gun/minigun/magharness

GLOBAL_LIST_INIT(campaign_loadout_slots, list(ITEM_SLOT_OCLOTHING, ITEM_SLOT_ICLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_EYES, ITEM_SLOT_EARS, \
ITEM_SLOT_MASK, ITEM_SLOT_HEAD, ITEM_SLOT_FEET, ITEM_SLOT_ID, ITEM_SLOT_BELT, ITEM_SLOT_BACK, ITEM_SLOT_L_POCKET, ITEM_SLOT_R_POCKET, ITEM_SLOT_SUITSTORE))
ITEM_SLOT_MASK, ITEM_SLOT_HEAD, ITEM_SLOT_FEET, ITEM_SLOT_ID, ITEM_SLOT_BELT, ITEM_SLOT_BACK, ITEM_SLOT_L_POCKET, ITEM_SLOT_R_POCKET, ITEM_SLOT_SUITSTORE, ITEM_SLOT_SECONDARY))

//List of all loadout_item datums
GLOBAL_LIST_INIT_TYPED(campaign_loadout_item_type_list, /datum/loadout_item, init_glob_loadout_item_list())
Expand Down Expand Up @@ -87,10 +91,29 @@ GLOBAL_LIST_INIT(campaign_loadout_items_by_role, init_campaign_loadout_items_by_
return FALSE
return TRUE

///Any additional behavior when this datum is equipped to an outfit_holder
/datum/loadout_item/proc/on_holder_equip(datum/outfit_holder)
//if there is a single whitelist item, this is a guaranteed mandatory prereq for src, so we autoequip for player QOL
if(length(item_whitelist) != 1)
return
for(var/item in item_whitelist)
equip_mandatory_item(outfit_holder, item, item_whitelist[item])

///Any post equip things related to this item
/datum/loadout_item/proc/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
return role_post_equip(wearer, loadout)
/datum/loadout_item/proc/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
role_post_equip(wearer, loadout, holder)

///A separate post equip proc for role specific code. Split for more flexible parent overriding
/datum/loadout_item/proc/role_post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/proc/role_post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
return

///Equips a mandatory item when src is equipt for player convenience
/datum/loadout_item/proc/equip_mandatory_item(datum/outfit_holder/outfit_holder, mandatory_type, mandatory_slot)
if(!mandatory_slot || !mandatory_type || !outfit_holder)
return
if(outfit_holder.equipped_things["[mandatory_slot]"]?.item_typepath == mandatory_type)
return
for(var/datum/loadout_item/item AS in outfit_holder.available_list["[mandatory_slot]"])
if(item.item_typepath != mandatory_type)
continue
outfit_holder.equip_loadout_item(item)
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER)
loadout_item_flags = NONE

/datum/loadout_item/back/som_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/back/som_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
. = ..()
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/shotgun/buckshot, SLOT_R_HAND)

Expand Down
94 changes: 36 additions & 58 deletions code/datums/gamemodes/campaign/loadout_items/SOM/belt.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
/datum/loadout_item/belt/som_ammo_belt
/datum/loadout_item/belt/som
item_blacklist = list(
/obj/item/weapon/gun/shotgun/double/sawn = ITEM_SLOT_SECONDARY,
/obj/item/weapon/energy/sword/som = ITEM_SLOT_SECONDARY,
)


/datum/loadout_item/belt/som/ammo_belt
name = "Ammo belt"
desc = "A belt with origins traced to the M276 ammo belt and some old colony security. Holds 6 normal sized magazines."
item_typepath = /obj/item/storage/belt/marine/som
Expand All @@ -10,27 +17,29 @@
/obj/item/weapon/gun/flamer/som/mag_harness = ITEM_SLOT_SUITSTORE,
/obj/item/weapon/gun/shotgun/som/standard = ITEM_SLOT_SUITSTORE,
/obj/item/weapon/gun/shotgun/som/support = ITEM_SLOT_SUITSTORE,
/obj/item/weapon/gun/shotgun/double/sawn = ITEM_SLOT_SECONDARY,
/obj/item/weapon/energy/sword/som = ITEM_SLOT_SECONDARY,
)

/datum/loadout_item/belt/som_sparepouch
/datum/loadout_item/belt/som/sparepouch
name = "Utility pouch"
desc = "A small, lightweight pouch that can be clipped onto armor or your belt to provide additional storage for miscellaneous gear or box and drum magazines. Made from genuine SOM leather."
item_typepath = /obj/item/storage/belt/sparepouch/som
jobs_supported = list(SOM_SQUAD_MARINE)

/datum/loadout_item/belt/som_shotgun_mixed
/datum/loadout_item/belt/som/shotgun_mixed
name = "Shotgun shell rig"
desc = "An ammunition belt designed to hold shotgun shells or individual bullets. Made with traditional SOM leather. Loaded full of buckshot and flechette shells."
item_typepath = /obj/item/storage/belt/shotgun/som/mixed
jobs_supported = list(SOM_SQUAD_MARINE)

/datum/loadout_item/belt/som_shotgun_flechette
/datum/loadout_item/belt/som/shotgun_flechette
name = "Shotgun shell rig"
desc = "An ammunition belt designed to hold shotgun shells or individual bullets. Made with traditional SOM leather. Loaded full of flechette shells."
item_typepath = /obj/item/storage/belt/shotgun/som/flechette
jobs_supported = list(SOM_SQUAD_ENGINEER)

/datum/loadout_item/belt/som_grenades
/datum/loadout_item/belt/som/grenades
name = "Grenade rig"
desc = "A simple harness system available in many configurations. This version is designed to carry bulk quantities of grenades."
ui_icon = "grenade"
Expand All @@ -39,7 +48,7 @@
purchase_cost = 80
quantity = 2

/datum/loadout_item/belt/som_grenades/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/belt/som/grenades/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
. = ..()
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/som, SLOT_IN_BELT)
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/som, SLOT_IN_BELT)
Expand All @@ -51,67 +60,36 @@
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/som, SLOT_IN_BELT)
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/incendiary/som, SLOT_IN_BELT)

/datum/loadout_item/belt/som_burst_pistol
name = "V-11e"
desc = "The standard sidearm used by the Sons of Mars. A reliable and simple weapon that is often seen on the export market on the outer colonies. \
Typically chambered in 9mm armor piercing rounds. This one is configures for burstfire, and loaded with extended mags."
/datum/loadout_item/belt/som/pistol_holster
name = "Pistol holster"
desc = "A belt with origins dating back to old colony security holster rigs. Holds any pistol secondary, and plenty of ammo."
ui_icon = "v11"
item_typepath = /obj/item/storage/holster/belt/pistol/m4a3/som
jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN)

/datum/loadout_item/belt/som_burst_pistol/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
. = ..()
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/som/extended, SLOT_IN_HOLSTER)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/som/extended, SLOT_IN_HOLSTER)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/som/extended, SLOT_IN_HOLSTER)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/som/extended, SLOT_IN_HOLSTER)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/som/extended, SLOT_IN_HOLSTER)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/som/extended, SLOT_IN_HOLSTER)
wearer.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/som/burst(wearer), SLOT_IN_HOLSTER)

/datum/loadout_item/belt/sawn_off
name = "Sawn-off shotgun"
desc = "A double barreled shotgun whose barrel has been artificially shortened to reduce range for further CQC potiential. Extremely powerful at close range, but is very difficult to handle."
req_desc = "Requires a VX-42 culverin or VX-33 caliver with powerpack."
ui_icon = "sshotgun"
item_typepath = /obj/item/weapon/gun/shotgun/double/sawn
jobs_supported = list(SOM_SQUAD_VETERAN)
jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_CORPSMAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER)
item_whitelist = list(
/obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/culverin/magharness = ITEM_SLOT_SUITSTORE,
/obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/caliver/tacsensor = ITEM_SLOT_SUITSTORE,
/obj/item/weapon/gun/pistol/som/standard = ITEM_SLOT_SECONDARY,
/obj/item/weapon/gun/pistol/som/burst = ITEM_SLOT_SECONDARY,
/obj/item/weapon/gun/pistol/highpower/standard = ITEM_SLOT_SECONDARY,
/obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/serpenta = ITEM_SLOT_SECONDARY,
/obj/item/weapon/gun/energy/lasgun/lasrifle/volkite/serpenta/custom = ITEM_SLOT_SECONDARY,
/obj/item/storage/backpack/marine/engineerpack/som = ITEM_SLOT_SECONDARY,
)
req_desc = "Requires a pistol secondary."

/datum/loadout_item/belt/energy_sword
name = "Energy sword"
desc = "A SOM energy sword. Designed to cut through armored plate. An uncommon primary weapon, typically seen wielded by so called 'blink assault' troops. \
Can be used defensively to great effect, mainly against opponents trying to strike you in melee, although some users report varying levels of success in blocking ranged projectiles."
ui_icon = "machete"
item_typepath = /obj/item/weapon/energy/sword/som
loadout_item_flags = NONE
jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_ENGINEER, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER)
/datum/loadout_item/belt/som/pistol_holster/default
jobs_supported = list(SOM_STAFF_OFFICER)
loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_OPTION|LOADOUT_ITEM_DEFAULT_CHOICE
/datum/loadout_item/belt/som/pistol_holster/officer
desc = "A quality pistol belt of a style typically seen worn by SOM officers. It looks old, but well looked after. Holds any pistol secondary, and plenty of ammo."
ui_icon = "vx12"
item_typepath = /obj/item/storage/holster/belt/pistol/m4a3/som/fancy
jobs_supported = list(SOM_FIELD_COMMANDER, SOM_COMMANDER)
loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_OPTION|LOADOUT_ITEM_DEFAULT_CHOICE

/datum/loadout_item/belt/som_lifesaver
/datum/loadout_item/belt/som/lifesaver
name = "S17 lifesaver bag"
desc = "A belt with heavy origins from the belt used by paramedics and doctors in the old mining colonies."
ui_icon = "medkit"
item_typepath = /obj/item/storage/belt/lifesaver/som/quick
jobs_supported = list(SOM_SQUAD_CORPSMAN)
loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_OPTION|LOADOUT_ITEM_DEFAULT_CHOICE

/datum/loadout_item/belt/som_officer_pistol
name = "VX-12 Serpenta"
desc = "The 'serpenta' is a volkite energy pistol typically seen in the hands of SOM officers and some NCOs, and is quite dangerous for it's size. \
Comes in a holster that fits on your waist or armor."
ui_icon = "vx12"
item_typepath = /obj/item/storage/holster/belt/pistol/m4a3/som/serpenta
jobs_supported = list(SOM_SQUAD_LEADER, SOM_STAFF_OFFICER)
loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_OPTION|LOADOUT_ITEM_DEFAULT_CHOICE

/datum/loadout_item/belt/som_officer_pistol_custom
name = "VX-12c Serpenta"
desc = "The 'serpenta' is a volkite energy pistol typically seen in the hands of SOM officers and some NCOs, and is quite dangerous for it's size. \
This particular weapon appears to be a custom model with improved performance. Comes in a fancy holster that fits on your waist or armor."
ui_icon = "vx12"
item_typepath = /obj/item/storage/holster/belt/pistol/m4a3/som/fancy/fieldcommander
jobs_supported = list(SOM_FIELD_COMMANDER, SOM_COMMANDER)
loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_OPTION|LOADOUT_ITEM_DEFAULT_CHOICE
8 changes: 4 additions & 4 deletions code/datums/gamemodes/campaign/loadout_items/SOM/head.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/datum/loadout_item/helmet/som_standard/medic
jobs_supported = list(SOM_SQUAD_CORPSMAN)

/datum/loadout_item/helmet/som_standard/medic/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/helmet/som_standard/medic/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/russian_red, SLOT_IN_HEAD)
wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/russian_red, SLOT_IN_HEAD)

Expand Down Expand Up @@ -58,15 +58,15 @@
jobs_supported = list(SOM_SQUAD_CORPSMAN)
loadout_item_flags = NONE

/datum/loadout_item/helmet/som_tyr/medic/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/helmet/som_tyr/medic/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/russian_red, SLOT_IN_HEAD)
wearer.equip_to_slot_or_del(new /obj/item/reagent_containers/hypospray/autoinjector/russian_red, SLOT_IN_HEAD)

/datum/loadout_item/helmet/som_tyr/engineer
jobs_supported = list(SOM_SQUAD_ENGINEER)
loadout_item_flags = NONE

/datum/loadout_item/helmet/som_tyr/engineer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/helmet/som_tyr/engineer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_HEAD)
wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_HEAD)

Expand All @@ -89,6 +89,6 @@
jobs_supported = list(SOM_SQUAD_ENGINEER)
loadout_item_flags = LOADOUT_ITEM_ROUNDSTART_OPTION|LOADOUT_ITEM_DEFAULT_CHOICE

/datum/loadout_item/helmet/som_engineer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/helmet/som_engineer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_HEAD)
wearer.equip_to_slot_or_del(new /obj/item/explosive/plastique, SLOT_IN_HEAD)
14 changes: 7 additions & 7 deletions code/datums/gamemodes/campaign/loadout_items/SOM/pockets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
jobs_supported = list(SOM_SQUAD_VETERAN)
item_whitelist = list(/obj/item/clothing/suit/modular/som/heavy/mithridatius = ITEM_SLOT_OCLOTHING)

/datum/loadout_item/r_pocket/war_crime_grenades/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/r_pocket/war_crime_grenades/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/satrapine, SLOT_IN_R_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/satrapine, SLOT_IN_R_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/satrapine, SLOT_IN_R_POUCH)
Expand All @@ -62,7 +62,7 @@
item_typepath = /obj/item/storage/pouch/shotgun/som
jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER)

/datum/loadout_item/r_pocket/som_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/r_pocket/som_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/buckshot, SLOT_IN_R_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/buckshot, SLOT_IN_R_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/buckshot, SLOT_IN_R_POUCH)
Expand All @@ -75,7 +75,7 @@
item_typepath = /obj/item/storage/pouch/construction/som
jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER)

/datum/loadout_item/r_pocket/som_construction/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/r_pocket/som_construction/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/tool/shovel/etool, SLOT_IN_R_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/stack/sandbags_empty/half, SLOT_IN_R_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/stack/sandbags/large_stack, SLOT_IN_R_POUCH)
Expand Down Expand Up @@ -161,7 +161,7 @@
jobs_supported = list(SOM_SQUAD_VETERAN)
item_whitelist = list(/obj/item/clothing/suit/modular/som/heavy/mithridatius = ITEM_SLOT_OCLOTHING)

/datum/loadout_item/l_pocket/war_crime_grenades/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/l_pocket/war_crime_grenades/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/satrapine, SLOT_IN_L_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/satrapine, SLOT_IN_L_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/explosive/grenade/smokebomb/satrapine, SLOT_IN_L_POUCH)
Expand All @@ -176,7 +176,7 @@
item_typepath = /obj/item/storage/pouch/shotgun/som
jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_CORPSMAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER)

/datum/loadout_item/l_pocket/som_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/l_pocket/som_shotgun/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/flechette, SLOT_IN_L_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/flechette, SLOT_IN_L_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/flechette, SLOT_IN_L_POUCH)
Expand All @@ -189,7 +189,7 @@
item_typepath = /obj/item/storage/pouch/construction/som
jobs_supported = list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_LEADER)

/datum/loadout_item/l_pocket/som_construction/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/l_pocket/som_construction/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/tool/shovel/etool, SLOT_IN_L_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/stack/sandbags_empty/half, SLOT_IN_L_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/stack/sandbags/large_stack, SLOT_IN_L_POUCH)
Expand All @@ -199,7 +199,7 @@
desc = "A pouch containing additional metal, plasteel and barbed wire. Allows for the rapid establishment of fortified positions."
jobs_supported = list(SOM_SQUAD_ENGINEER)

/datum/loadout_item/l_pocket/som_construction/engineer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout)
/datum/loadout_item/l_pocket/som_construction/engineer/post_equip(mob/living/carbon/human/wearer, datum/outfit/quick/loadout, datum/outfit_holder/holder)
wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/large_stack, SLOT_IN_L_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack, SLOT_IN_L_POUCH)
wearer.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack, SLOT_IN_L_POUCH)
Expand Down
Loading

0 comments on commit c62f229

Please sign in to comment.