From cba9817e5e75295b8731b520ce9964ab4ae2bb5f Mon Sep 17 00:00:00 2001 From: Steelpoint <6595389+Steelpoint@users.noreply.github.com> Date: Wed, 24 Apr 2024 12:04:56 +0800 Subject: [PATCH] UPP/CLF Combat Synth Presets (#6183) # About the pull request Adds a UPP and CLF Combat Synthetic preset, allowing staff to spawn in a ready to go combat synthetic. These are admin only, they can not spawn in via regular gameplay. Their loadouts have been slightly tweaked to retain their current setup but with an emphasis on having combat weapons. # Explain why it's good for the game Adds extra options for staff who may want to allow a Combat Synthetic to appear in-game for an event, the preset will make it quicker to spawn one in instead of requiring an admin to fiddle with changing a Synthetic to a combatant and spawning it in gear. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: UPP and CLF Combat Synthetic preset is now available for admins to spawn them in. /:cl: --------- Co-authored-by: Steelpoint Co-authored-by: Drathek <76988376+Drulikar@users.noreply.github.com> --- code/modules/gear_presets/clf.dm | 48 +++++++++++++++++++++++++++ code/modules/gear_presets/upp.dm | 56 ++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) diff --git a/code/modules/gear_presets/clf.dm b/code/modules/gear_presets/clf.dm index 9c05ff8fa5fc..143a2271f00e 100644 --- a/code/modules/gear_presets/clf.dm +++ b/code/modules/gear_presets/clf.dm @@ -900,6 +900,54 @@ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), ) +/datum/equipment_preset/clf/synth/combat + name = "CLF Combat Synthetic" + flags = EQUIPMENT_PRESET_EXTRA + +/datum/equipment_preset/clf/synth/combat/load_skills(mob/living/carbon/human/new_human) + . = ..() + new_human.allow_gun_usage = TRUE + +/datum/equipment_preset/clf/synth/combat/load_gear(mob/living/carbon/human/new_human) + //back + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/ert, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK) + //face + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/command(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp, WEAR_FACE) + if(new_human.disabilities & NEARSIGHTED) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) + //head + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/jan, WEAR_HEAD) + //body + var/obj/item/clothing/under/colonist/clf/CLF = new() + var/obj/item/clothing/accessory/storage/webbing/webbing = new() + CLF.attach_accessory(new_human, webbing) + new_human.equip_to_slot_or_del(CLF, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/mar40/carbine, WEAR_J_STORE) + //waist + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BELT) + //limbs + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat, WEAR_FEET) + //pockets + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/synth, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) + //*****************************************************************************************************/ /datum/equipment_preset/clf/commander diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm index 39aed17a1fad..cdb955bd9696 100644 --- a/code/modules/gear_presets/upp.dm +++ b/code/modules/gear_presets/upp.dm @@ -2806,6 +2806,62 @@ list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), ) + +/datum/equipment_preset/upp/synth/combat + name = "UPP Combat Synthetic" + flags = EQUIPMENT_PRESET_EXTRA + + assignment = JOB_UPP_COMBAT_SYNTH + rank = JOB_UPP_COMBAT_SYNTH + +/datum/equipment_preset/upp/synth/combat/load_skills(mob/living/carbon/human/new_human) + . = ..() + new_human.allow_gun_usage = TRUE + +/datum/equipment_preset/upp/synth/combat/load_gear(mob/living/carbon/human/new_human) + //back + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/surgical_line, 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/device/defibrillator/compact, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/hypospray/epinephrine, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/bottle/epinephrine, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/blood/OMinus, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) + //face + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver, WEAR_R_EAR) + if(new_human.disabilities & NEARSIGHTED) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) + //head + var/hat = pick(/obj/item/clothing/head/uppcap, /obj/item/clothing/head/uppcap/beret, /obj/item/clothing/head/uppcap/ushanka) + new_human.equip_to_slot_or_del(new hat, WEAR_HEAD) + //body + var/obj/item/clothing/under/marine/veteran/UPP/UPP = new() + var/obj/item/clothing/accessory/storage/surg_vest/drop_green/upp/webbing = new() + UPP.attach_accessory(new_human, webbing) + new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/support, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/bizon/upp, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) + //waist + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/synth, WEAR_WAIST) + //limbs + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) + //pockets + var/obj/item/storage/pouch/magazine/large/ppouch = new() + new_human.equip_to_slot_or_del(ppouch, WEAR_L_STORE) + for(var/i = 1 to ppouch.storage_slots) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical/upp, WEAR_R_STORE) + //*****************************************************************************************************/ /datum/equipment_preset/upp/conscript