diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm index 3fd552f5369f..337cf94b9c95 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -124,6 +124,7 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) #define JOB_GENERAL "USCM General" #define JOB_ACMC "Assistant Commandant of the Marine Corps" #define JOB_CMC "Commandant of the Marine Corps" +#define JOB_SQUAD_TECH "Reconnaissance Support Technician" // Used to add a timelock to a job. Will be passed onto derivatives #define AddTimelock(Path, timelockList) \ diff --git a/code/datums/emergency_calls/forecon.dm b/code/datums/emergency_calls/forecon.dm index 98e6a1c27ec2..94336b9ffa53 100644 --- a/code/datums/emergency_calls/forecon.dm +++ b/code/datums/emergency_calls/forecon.dm @@ -2,7 +2,7 @@ name = "FORECON (Squad)" arrival_message = "A Force Reconnaissance squad has been dispatched to your ship. Stand by." objectives = "Handle whatever threat is present. Further orders may be provided." - home_base = /datum/lazy_template/ert/weyland_station + home_base = /datum/lazy_template/ert/uscm_station probability = 0 mob_min = 3 mob_max = 6 diff --git a/code/datums/factions/uscm.dm b/code/datums/factions/uscm.dm index f7c49321f305..0df37c2f0c3c 100644 --- a/code/datums/factions/uscm.dm +++ b/code/datums/factions/uscm.dm @@ -30,6 +30,7 @@ if(JOB_MARINE_RAIDER) marine_rk = "soc" if(JOB_MARINE_RAIDER_SL) marine_rk = "soctl" if(JOB_MARINE_RAIDER_CMD) marine_rk = "soccmd" + if(JOB_SQUAD_TECH) marine_rk = "tech" if(squad.squad_leader == current_human) switch(squad.squad_type) if("Squad") marine_rk = "leader_a" @@ -87,6 +88,8 @@ if(JOB_GENERAL, JOB_COLONEL, JOB_ACMC, JOB_CMC) marine_rk = "general" border_rk = "command" + if(JOB_SQUAD_TECH) + marine_rk = "tech" if(JOB_INTEL) marine_rk = "io" if(JOB_CAS_PILOT) diff --git a/code/game/jobs/job/special/uscm.dm b/code/game/jobs/job/special/uscm.dm index 751322539f77..934241fdca8a 100644 --- a/code/game/jobs/job/special/uscm.dm +++ b/code/game/jobs/job/special/uscm.dm @@ -14,3 +14,6 @@ title = JOB_RIOT /datum/job/special/uscm/riot/chief title = JOB_RIOT_CHIEF + +/datum/job/special/uscm/tech + title = JOB_SQUAD_TECH diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 14961c69eaf5..139d90ff33ce 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -320,6 +320,29 @@ new /obj/item/storage/pill_bottle/imidazoline(src) new /obj/item/storage/pill_bottle/alkysine(src) +/obj/item/storage/belt/medical/lifesaver/full/forecon/fill_preset_inventory() + new /obj/item/storage/pill_bottle/bicaridine(src) + new /obj/item/storage/pill_bottle/bicaridine(src) + new /obj/item/storage/pill_bottle/kelotane(src) + new /obj/item/storage/pill_bottle/kelotane(src) + new /obj/item/storage/pill_bottle/tramadol(src) + new /obj/item/storage/pill_bottle/tramadol(src) + new /obj/item/storage/pill_bottle/antitox(src) + new /obj/item/storage/pill_bottle/alkysine(src) + new /obj/item/storage/pill_bottle/imidazoline(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/ointment(src) + new /obj/item/stack/medical/advanced/ointment(src) + new /obj/item/stack/medical/advanced/ointment(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/reagent_container/hypospray/autoinjector/dexalinp(src) + new /obj/item/reagent_container/hypospray/autoinjector/oxycodone(src) + new /obj/item/device/healthanalyzer(src) + /obj/item/storage/belt/medical/lifesaver/upp name = "\improper Type 41 pattern lifesaver bag" desc = "The Type 41 load rig is the standard load-bearing equipment of the UPP military. This configuration mounts a duffel bag filled with a range of injectors and light medical supplies, and is common among medics." diff --git a/code/modules/gear_presets/uscm_forecon.dm b/code/modules/gear_presets/uscm_forecon.dm index 65328e8513f5..3c1db85291ea 100644 --- a/code/modules/gear_presets/uscm_forecon.dm +++ b/code/modules/gear_presets/uscm_forecon.dm @@ -20,31 +20,6 @@ dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) dress_hat = list(/obj/item/clothing/head/marine/dress_cover) -/datum/equipment_preset/uscm/forecon/load_gear(mob/living/carbon/human/new_human) - var/obj/item/clothing/under/marine/reconnaissance/uniform = new() - var/obj/item/clothing/accessory/storage/droppouch/pouch = new() - var/obj/item/clothing/accessory/ranks/marine/e5/pin = new() - var/obj/item/clothing/accessory/patch/patch_uscm = new() - var/obj/item/clothing/accessory/patch/forecon/patch_forecon = new() - uniform.attach_accessory(new_human,pouch) - uniform.attach_accessory(new_human,patch_uscm) - uniform.attach_accessory(new_human,pin) - uniform.attach_accessory(new_human,patch_forecon) - new_human.equip_to_slot_or_del(uniform, WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/recon(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/marine(new_human), WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/forecon(new_human), WEAR_L_EAR) - GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human) - /datum/equipment_preset/uscm/forecon/proc/add_forecon_weapon(mob/living/carbon/human/new_human) var/random_gun = rand(1,3) switch(random_gun) @@ -75,6 +50,16 @@ if (9) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) +/datum/equipment_preset/uscm/forecon/proc/spawn_random_tech_headgear(mob/living/carbon/human/new_human) + var/i = rand(1,4) + switch(i) + if (1 , 2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/tech(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) + if (3 , 4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/medic/white(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) + /datum/equipment_preset/uscm/forecon/proc/add_forecon_weapon_pistol(mob/living/carbon/human/new_human) var/random_pistol = rand(1,5) switch(random_pistol) @@ -106,8 +91,33 @@ minimap_icon = "" skills = /datum/skills/military/survivor/forecon_standard +/datum/equipment_preset/uscm/forecon/standard/load_gear(mob/living/carbon/human/new_human) + var/obj/item/clothing/under/marine/reconnaissance/uniform = new() + var/obj/item/clothing/accessory/storage/droppouch/pouch = new() + var/obj/item/clothing/accessory/ranks/marine/e5/pin = new() + var/obj/item/clothing/accessory/patch/patch_uscm = new() + var/obj/item/clothing/accessory/patch/forecon/patch_forecon = new() + uniform.attach_accessory(new_human,pouch) + uniform.attach_accessory(new_human,patch_uscm) + uniform.attach_accessory(new_human,pin) + uniform.attach_accessory(new_human,patch_forecon) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/recon(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/marine(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/forecon(new_human), WEAR_L_EAR) + GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human) + /datum/equipment_preset/uscm/forecon/standard/load_gear(mob/living/carbon/human/new_human) ..() + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) spawn_random_headgear(new_human) add_forecon_weapon_pistol(new_human) add_forecon_weapon(new_human) @@ -115,25 +125,44 @@ /datum/equipment_preset/uscm/forecon/tech name = "USCM Reconnaissance Support Technician" assignment = JOB_FORECON_SUPPORT - rank = JOB_SQUAD_MEDIC + rank = JOB_SQUAD_TECH role_comm_title = "SuppTech" minimap_icon = "engi" skills = /datum/skills/military/survivor/forecon_techician /datum/equipment_preset/uscm/forecon/tech/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/big(new_human), WEAR_BACK) + var/obj/item/clothing/under/marine/reconnaissance/uniform = new() + var/obj/item/clothing/accessory/storage/droppouch/pouch = new() + var/obj/item/clothing/accessory/ranks/marine/e5/pin = new() + var/obj/item/clothing/accessory/patch/patch_uscm = new() + var/obj/item/clothing/accessory/patch/forecon/patch_forecon = new() + uniform.attach_accessory(new_human,pouch) + uniform.attach_accessory(new_human,patch_uscm) + uniform.attach_accessory(new_human,pin) + uniform.attach_accessory(new_human,patch_forecon) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) - ..() - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/big(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical/full(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/forecon(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/surgical(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/compact(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool , WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/recon(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/marine(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/forecon(new_human), WEAR_L_EAR) + GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human) + add_forecon_weapon(new_human) - spawn_random_headgear(new_human) + spawn_random_tech_headgear(new_human) /datum/equipment_preset/uscm/forecon/marksman name = "USCM Reconnaissance Designated Marksman" @@ -154,10 +183,11 @@ uniform.attach_accessory(new_human,pin) uniform.attach_accessory(new_human,patch_forecon) new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/M3S, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/scout_cloak(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) @@ -165,8 +195,6 @@ new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/forecon(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m4ra_custom/tactical(new_human), WEAR_L_HAND) @@ -199,6 +227,7 @@ uniform.attach_accessory(new_human,pin) uniform.attach_accessory(new_human,patch_forecon) new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/smartgunner(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) @@ -243,13 +272,29 @@ uniform.attach_accessory(new_human,patch_uscm) uniform.attach_accessory(new_human,pin) uniform.attach_accessory(new_human,patch_forecon) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/tactical(new_human), WEAR_R_HAND) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/recon(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/marine(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/forecon(new_human), WEAR_L_EAR) + GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human) + + + ..() add_forecon_weapon_pistol(new_human) spawn_random_headgear(new_human) diff --git a/icons/mob/hud/marine_hud.dmi b/icons/mob/hud/marine_hud.dmi index def6cdd56a0e..53cc3a327d11 100644 Binary files a/icons/mob/hud/marine_hud.dmi and b/icons/mob/hud/marine_hud.dmi differ