Skip to content

Commit 3a66fb6

Browse files
committed
Feature creep isn't real
Feature creep can't hurt you (it can) Adjustments to USCM loader & scout-sniper stuff
1 parent 514b09a commit 3a66fb6

File tree

11 files changed

+79
-20
lines changed

11 files changed

+79
-20
lines changed

code/__DEFINES/job.dm

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
#define JOB_SQUAD_ENGI "Combat Engineer"
2424
#define JOB_SQUAD_MEDIC "Corpsman"
2525
#define JOB_SQUAD_SPECIALIST "Weapons Specialist"
26+
#define JOB_SQUAD_SPOTTER "Spotter"
27+
#define JOB_SQUAD_LOADER "Weapons Loader"
2628
#define JOB_SQUAD_TEAM_LEADER "Squad Sergeant"
2729
#define JOB_SQUAD_SMARTGUN "Smartgunner"
2830
#define JOB_SQUAD_ROLES /datum/timelock/squad

code/datums/factions/uscm.dm

+6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
if(JOB_SQUAD_TEAM_LEADER) marine_rk = "tl"
2020
if(JOB_SQUAD_MEDIC) marine_rk = "med"
2121
if(JOB_SQUAD_SMARTGUN) marine_rk = "gun"
22+
if(JOB_SQUAD_SPOTTER) marine_rk = "ass"
23+
if(JOB_SQUAD_LOADER) marine_rk = "load"
2224
if(JOB_XO) marine_rk = "xo"
2325
if(JOB_CO) marine_rk = "co"
2426
if(JOB_GENERAL) marine_rk = "general"
@@ -222,6 +224,10 @@
222224
// Check squad marines here too, for the unique ones
223225
if(JOB_SQUAD_ENGI)
224226
marine_rk = "engi"
227+
if(JOB_SQUAD_SPOTTER)
228+
marine_rk = "ass"
229+
if(JOB_SQUAD_LOADER)
230+
marine_rk = "load"
225231
if(JOB_SQUAD_MEDIC)
226232
marine_rk = "med"
227233
if(JOB_SQUAD_SPECIALIST)

code/game/objects/items/pamphlets.dm

+29-9
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,9 @@
6868
bypass_pamphlet_limit = TRUE
6969

7070
/obj/item/pamphlet/skill/spotter/can_use(mob/living/carbon/human/user)
71-
var/specialist_skill = user.skills.get_skill_level(SKILL_SPEC_WEAPONS)
72-
if(specialist_skill == SKILL_SPEC_SNIPER)
73-
to_chat(user, SPAN_WARNING("You don't need to use this! Give it to another marine to make them your spotter."))
74-
return FALSE
75-
if(specialist_skill != SKILL_SPEC_DEFAULT)
76-
to_chat(user, SPAN_WARNING("You're already a specialist! Give this to a lesser trained marine."))
77-
return FALSE
78-
7971
if(user.job != JOB_SQUAD_MARINE)
8072
to_chat(user, SPAN_WARNING("Only squad riflemen can use this."))
8173
return
82-
8374
var/obj/item/card/id/ID = user.get_idcard()
8475
if(!ID) //not wearing an ID
8576
to_chat(user, SPAN_WARNING("You should wear your ID before doing this."))
@@ -99,6 +90,35 @@
9990
ID.set_assignment((user.assigned_squad ? (user.assigned_squad.name + " ") : "") + "Spotter")
10091
GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), "Spotter")
10192

93+
/obj/item/pamphlet/skill/loader
94+
name = "Loader instructional pamphlet"
95+
desc = "A pamphlet used to quickly impart vital knowledge. This one has the image of a rocket on it."
96+
icon_state = "pamphlet_loader"
97+
trait = /datum/character_trait/skills/loader
98+
bypass_pamphlet_limit = TRUE
99+
100+
/obj/item/pamphlet/skill/loader/can_use(mob/living/carbon/human/user)
101+
if(user.job != JOB_SQUAD_MARINE)
102+
to_chat(user, SPAN_WARNING("Only squad riflemen can use this."))
103+
return
104+
var/obj/item/card/id/ID = user.get_idcard()
105+
if(!ID) //not wearing an ID
106+
to_chat(user, SPAN_WARNING("You should wear your ID before doing this."))
107+
return FALSE
108+
if(!ID.check_biometrics(user))
109+
to_chat(user, SPAN_WARNING("You should wear your ID before doing this."))
110+
return FALSE
111+
return ..()
112+
113+
/obj/item/pamphlet/skill/loader/on_use(mob/living/carbon/human/user)
114+
. = ..()
115+
user.rank_fallback = "load"
116+
user.hud_set_squad()
117+
118+
var/obj/item/card/id/ID = user.get_idcard()
119+
ID.set_assignment((user.assigned_squad ? (user.assigned_squad.name + " ") : "") + "Loader")
120+
GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), "Loader")
121+
102122
/obj/item/pamphlet/skill/machinegunner
103123
name = "heavy machinegunner instructional pamphlet"
104124
desc = "A pamphlet used to quickly impart vital knowledge. This one has an engineering and a machinegun insignia."

code/modules/asset_cache/asset_list_items.dm

+1
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@
254254
var/list/icon_data = list(
255255
list("Mar", null),
256256
list("ass", "hudsquad_ass"),
257+
list("load", "hudsquad_load"),
257258
list("Eng", "hudsquad_engi"),
258259
list("HM", "hudsquad_med"),
259260
list("SG", "hudsquad_gun"),

code/modules/character_traits/skills.dm

+7
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,13 @@
9090
trait_desc = "Boosts the JTAC skill by 1. Crewmember received additional training in using JTAC equipment and Ghillie outfits."
9191
skill = SKILL_JTAC
9292

93+
/datum/character_trait/skills/loader
94+
trait_name = "Loader Training"
95+
trait_desc = "Boosts the endurance skill by 1."
96+
skill = SKILL_ENDURANCE
97+
skill_cap = SKILL_ENDURANCE_TRAINED
98+
skill_increment = 1
99+
93100
/datum/character_trait/skills/powerloader
94101
trait_name = "Powerloader Usage Training"
95102
trait_desc = "Boosts the powerloader skill to 1. Crewmember received training in operating powerloaders."

code/modules/cm_marines/equipment/kit_boxes.dm

+26-6
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,8 @@
2929
/obj/item/storage/box/spec/demolitionist/fill_preset_inventory()
3030
new /obj/item/clothing/suit/storage/marine/M3T(src)
3131
new /obj/item/clothing/head/helmet/marine/M3T(src)
32-
new /obj/item/clothing/head/helmet/marine/M3T(src)
33-
new /obj/item/storage/backpack/marine/rocketpack(src)
34-
new /obj/item/storage/backpack/marine/rocketpack(src)
3532
new /obj/item/weapon/gun/launcher/rocket(src)
3633
new /obj/item/ammo_magazine/rocket(src)
37-
new /obj/item/ammo_magazine/rocket(src)
38-
new /obj/item/ammo_magazine/rocket/ap(src)
3934
new /obj/item/ammo_magazine/rocket/ap(src)
4035
new /obj/item/ammo_magazine/rocket/wp(src)
4136
new /obj/item/weapon/gun/pistol/vp78(src)
@@ -44,7 +39,32 @@
4439
new /obj/item/explosive/plastic(src)
4540
new /obj/item/explosive/plastic(src)
4641
new /obj/item/device/binoculars(src)
47-
42+
// loader
43+
new /obj/item/storage/box/kit/loader(src)
44+
45+
/obj/item/storage/box/kit/loader
46+
name = "\improper Loader Kit"
47+
desc = "A large kit containing all the supplies needed to turn a marine into the loading assistant for an M5 RPG operator.\
48+
\nA little infographic series shows how reloading should be done:\
49+
\nStep One: Grab the Rocket\
50+
\nStep Two: Position yourself behind the M5 operator\
51+
\nStep Three: Ensure the operator is wielding their Launcher\
52+
\nStep Four: Load the Rocket into the Launcher\
53+
\nStep Five: Stand clear of the back-blast"
54+
pro_case_overlay = "loader"
55+
56+
/obj/item/storage/box/kit/loader/fill_preset_inventory()
57+
// wearables
58+
new /obj/item/clothing/head/helmet/marine/M3T(src)
59+
new /obj/item/storage/backpack/marine/rocketpack(src)
60+
// most the ammo
61+
new /obj/item/ammo_magazine/rocket(src)
62+
new /obj/item/ammo_magazine/rocket(src)
63+
new /obj/item/ammo_magazine/rocket/ap(src)
64+
new /obj/item/ammo_magazine/rocket/ap(src)
65+
new /obj/item/ammo_magazine/rocket/wp(src)
66+
// skills
67+
new /obj/item/pamphlet/skill/loader(src)
4868

4969
/obj/item/storage/box/spec/sniper
5070
name = "\improper Sniper equipment case"

code/modules/gear_presets/usasf.dm

+1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585

8686
/datum/equipment_preset/usasf/crew/flight/load_gear(mob/living/carbon/human/new_human)
8787
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/upp/marinepilot, WEAR_HEAD)
88+
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/mgoggles, WEAR_IN_HELMET)
8889
var/flight_deck_vest = pick(USAF_ORDNANCE_CREW ,USAF_MAINT_CREW,USAF_FUEL_CREW,USAF_SAFETY_CREW,USAF_HANDLER_CREW)
8990
switch(flight_deck_vest)
9091
if(USAF_ORDNANCE_CREW)

code/modules/gear_presets/uscm.dm

+7-5
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@
763763
flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE
764764
access = list(ACCESS_MARINE_PREP, ACCESS_MARINE_SPECPREP)
765765
assignment = "Rocketeer"
766-
rank = JOB_SQUAD_SPECIALIST
766+
rank = JOB_SQUAD_LOADER
767767
paygrades = list(PAY_SHORT_ME2 = JOB_PLAYTIME_TIER_0)
768768
role_comm_title = "Spc"
769769
skills = /datum/skills/pfc
@@ -772,10 +772,10 @@
772772
dress_under = list(/obj/item/clothing/under/marine/dress/blues)
773773
dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues)
774774

775-
/datum/equipment_preset/uscm/specialist_equipped/load_status(mob/living/carbon/human/new_human)
775+
/datum/equipment_preset/uscm/specialist_equipped/loader/load_status(mob/living/carbon/human/new_human)
776776
new_human.nutrition = NUTRITION_NORMAL
777777

778-
/datum/equipment_preset/uscm/specialist_equipped/load_gear(mob/living/carbon/human/new_human)
778+
/datum/equipment_preset/uscm/specialist_equipped/loader/load_gear(mob/living/carbon/human/new_human)
779779
new_human.underwear = "Marine Boxers"
780780
new_human.undershirt = "Marine Undershirt"
781781
//back
@@ -814,6 +814,7 @@
814814
//pockets
815815
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE)
816816
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare/full(new_human), WEAR_R_STORE)
817+
GLOB.character_traits[/datum/character_trait/skills/loader].apply_trait(new_human)
817818

818819
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
819820
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf, WEAR_FACE)
@@ -874,7 +875,6 @@
874875
new_human.equip_to_slot_or_del(new /obj/item/tool/shovel/etool/folded(new_human), WEAR_IN_BACK)
875876
new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_BACK)
876877
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_BACK)
877-
new_human.equip_to_slot_or_del(new /obj/item/pamphlet/skill/spotter, WEAR_IN_BACK)
878878
//face
879879
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/marine/solardevils(new_human), WEAR_L_EAR)
880880
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green(new_human), WEAR_L_EAR)
@@ -900,6 +900,7 @@
900900
//pockets
901901
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE)
902902
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare/full(new_human), WEAR_R_STORE)
903+
GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human)
903904

904905
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
905906
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf, WEAR_FACE)
@@ -910,6 +911,7 @@
910911
name = "USCM Scout Sniper, Spotter (Equipped)"
911912
assignment = "Scout Sniper"
912913
role_comm_title = "SctSnpr"
914+
rank = JOB_SQUAD_SPOTTER
913915
skills = /datum/skills/nco
914916
paygrades = list(PAY_SHORT_ME4 = JOB_PLAYTIME_TIER_0)
915917

@@ -923,7 +925,6 @@
923925
new_human.equip_to_slot_or_del(new /obj/item/tool/shovel/etool/folded(new_human), WEAR_IN_BACK)
924926
new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_BACK)
925927
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_BACK)
926-
new_human.equip_to_slot_or_del(new /obj/item/pamphlet/skill/spotter, WEAR_IN_BACK)
927928
//face
928929
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/marine/solardevils(new_human), WEAR_L_EAR)
929930
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green(new_human), WEAR_L_EAR)
@@ -949,6 +950,7 @@
949950
//pockets
950951
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE)
951952
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare/full(new_human), WEAR_R_STORE)
953+
GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human)
952954

953955
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
954956
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf, WEAR_FACE)

icons/mob/hud/marine_hud.dmi

346 Bytes
Binary file not shown.

icons/obj/items/pamphlets.dmi

105 Bytes
Binary file not shown.

icons/obj/items/storage/kits.dmi

280 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)