From c4d9f32e322fd08cd49bfb9272411b29066cae29 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 01:50:05 +0000 Subject: [PATCH 01/20] roll USASF Off Duty Crew into a rand chance for normal crew --- .../gear_presets/survivors/usasf_point_loma/usasf_survivors.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index c779db9530e5..0260ea7eb1cd 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -28,8 +28,6 @@ job_title = JOB_USASF_CREW assignment = JOB_USASF_CREW -/datum/equipment_preset/survivor/usasf/crew/off_duty - /datum/equipment_preset/survivor/usasf/crew/chaplain name = "USASF Chaplain" job_title = JOB_USASF_CHAPLAIN From 3541a1e495b3e9de1d842249aac8641338dea44e Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 02:17:07 +0000 Subject: [PATCH 02/20] USASF Headset + Alpha-Tech Headset --- code/__DEFINES/radio.dm | 4 +++ code/controllers/subsystem/communications.dm | 4 +++ .../items/devices/radio/encryptionkey.dm | 9 +++++++ .../objects/items/devices/radio/headset.dm | 25 +++++++++++++++++++ 4 files changed, 42 insertions(+) diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm index 0592f0c7ca06..e86e21f330c0 100644 --- a/code/__DEFINES/radio.dm +++ b/code/__DEFINES/radio.dm @@ -68,6 +68,10 @@ #define RADIO_CHANNEL_HYPERDYNE "Hyperdyne" +//AlphaTech Comms + +#define RADIO_CHANNEL_ALPHATECH "Alpha-Tech" + //Listening Devices #define RADIO_CHANNEL_BUG_A "Listening Device A" #define RADIO_CHANNEL_BUG_B "Listening Device B" diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm index e01d87b814e9..1c51fac1284b 100644 --- a/code/controllers/subsystem/communications.dm +++ b/code/controllers/subsystem/communications.dm @@ -120,6 +120,9 @@ Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency #define HDC_FREQ 1331 +//AlphaTech channels (1350-1399) - yes this takes half the number above but I don't care +#define APHC_FREQ 1350 + //General Radio #define MIN_FREQ 1460 // ------------------------------------------------------ #define PUB_FREQ 1461 @@ -132,6 +135,7 @@ Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency #define CBRN_FREQ 1474 #define FORECON_FREQ 1475 #define ARMY_FREQ 1476 +#define USASF_FREQ 1477 //Ship department channels #define SENTRY_FREQ 1480 diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index faab5e7908f9..a0202c6eefdf 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -221,6 +221,10 @@ name = "\improper Army Radio Encryption Key" channels = list(SQUAD_SOF = TRUE, RADIO_CHANNEL_COLONY = TRUE) +/obj/item/device/encryptionkey/soc/usasf + name = "\improper USASF Radio Encryption Key" + channels = list(SQUAD_SOF = TRUE, RADIO_CHANNEL_COLONY = TRUE) + //ERT, PMC /obj/item/device/encryptionkey/dutch @@ -355,6 +359,11 @@ name = "\improper Colonial Marshal Bureau Radio Encryption Key" icon_state = "cmb_key" channels = list(RADIO_CHANNEL_COMMAND = TRUE, RADIO_CHANNEL_MEDSCI = TRUE, RADIO_CHANNEL_INTEL = TRUE, RADIO_CHANNEL_ALMAYER = TRUE, RADIO_CHANNEL_COLONY = TRUE) + +/obj/item/device/encryptionkey/alphatech + name = "\improper Alpha-Tech Hardware Corporation Encryption Key" + channels = list(RADIO_CHANNEL_COLONY = TRUE, RADIO_CHANNEL_ALPHATECH = TRUE) + /// Used by the Mortar Crew in WO game mode - intently has no squad radio access /obj/item/device/encryptionkey/mortar name = "\improper Mortar Crew Radio Encryption Key" diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 9b93c4fc4dbb..f4465b2c7e99 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -1464,6 +1464,31 @@ has_hud = TRUE hud_type = MOB_HUD_FACTION_MARINE +/obj/item/device/radio/headset/almayer/sof/survivor_usasf + name = "US Aerospace Force headset" + desc = "Issued to Aerospacemen and women" + icon_state = "soc_headset" + frequency = USASF_FREQ + initial_keys = list(/obj/item/device/encryptionkey/soc/usasf) + volume = RADIO_VOLUME_QUIET + has_hud = TRUE + hud_type = MOD_HUD_FACTION_MARINE + +/obj/item/device/radio/headset/distress/alphatech + name = "Alpha-Tech Hardware Corporation Headset" // toDO: Fix! + desc = "A special headset used by Alpha-Tech Hardware employees, Channels are as follows: :g - public, :v - marine command, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel." + frequency = APHC_FREQ + icon_state = "vai_headset" + initial_keys = list(/obj/item/device/encryptionkey/almayer, /obj/item/device/encryptionkey/alphatech) + has_hud = FALSE //toDO: Fix! + +/obj/item/device/radio/headset/distress/CMB/ICC + name = "\improper ICC Liaison Headset" + desc = "An expensive headset used by The Interstellar Commerce Commission. This one in particular has a liaison chip with the CMB. Featured channels include: ; - CMB, :o - Colony, :g - public, :v - marine command, :m - medbay, :t - intel, :y - Weyland-Yutani." + icon_state = "wy_headset" + additional_hud_types = list(MOB_HUD_FACTION_WY) + initial_keys = list(/obj/item/device/encryptionkey/WY, /obj/item/device/encryptionkey/cmb) + /obj/item/device/radio/headset/almayer/mcom/vc name = "marine vehicle crew radio headset" desc = "Used by USCM vehicle crew, features a non-standard brace. Channels are as follows: :v - marine command, :n - engineering, :m - medbay, :u - requisitions." From 932270b971b53fec47f7c326d20b7b21234bc0f5 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 03:24:10 +0000 Subject: [PATCH 03/20] fix mistype --- code/game/objects/items/devices/radio/headset.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index f4465b2c7e99..d7cc61d9343c 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -1472,7 +1472,7 @@ initial_keys = list(/obj/item/device/encryptionkey/soc/usasf) volume = RADIO_VOLUME_QUIET has_hud = TRUE - hud_type = MOD_HUD_FACTION_MARINE + hud_type = MOB_HUD_FACTION_MARINE /obj/item/device/radio/headset/distress/alphatech name = "Alpha-Tech Hardware Corporation Headset" // toDO: Fix! From e345a31ac6237b79b84e065cc881311d8fba29e6 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 10:43:14 +0000 Subject: [PATCH 04/20] USASF Survivors init commit --- code/modules/clothing/under/marine_uniform.dm | 5 + .../usasf_point_loma/alpha_tech_survivors.dm | 2 - .../usasf_point_loma/usasf_survivors.dm | 343 +++++++++++++++++- maps/usasf_point_loma.json | 18 +- 4 files changed, 346 insertions(+), 22 deletions(-) diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm index cdff8ad1fdde..c4ae45c419c4 100644 --- a/code/modules/clothing/under/marine_uniform.dm +++ b/code/modules/clothing/under/marine_uniform.dm @@ -418,6 +418,11 @@ WEAR_BODY = 'icons/mob/humans/onmob/clothing/uniforms/uniforms_by_faction/UA.dmi', ) +/obj/item/clothing/under/marine/army/usasf //parented to army for simplicity + name = "USASF Uniform" + desc = "Standard-issue USASF Ground Crew uniform. Lightly protected." + icon_state = "usasf_formal" + /obj/item/clothing/under/marine/officer name = "marine officer uniform" desc = "Softer than silk. Lighter than feather. More protective than Kevlar. Fancier than a regular jumpsuit, too. It has shards of light Kevlar to help protect against stabbing weapons and bullets." diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm index 54d9b02f75de..ec2d434498f8 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm @@ -24,8 +24,6 @@ skills = /datum/skills/civilian/survivor/manager // ToDO: Check what manager skills actually are paygrades = list(PAY_SHORT_ATHC1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_ATHC2 = JOB_PLAYTIME_TIER_1, PAY_SHORT_ATHC3 = JOB_PLAYTIME_TIER_2) - - /datum/equipment_preset/survivor/alphatech/corporate/chief_engineer name = "Alpha-Tech Mining Colony Chief Engineer" job_title = JOB_ALPHATECH_CHIEF_ENGINEER diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index 0260ea7eb1cd..70bb798c8067 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -23,39 +23,282 @@ survivor_variant = CIVILIAN_SURVIVOR -/datum/equipment_preset/survivor/usasf/crew + dress_gloves = list(/obj/item/clothing/gloves/marine/dress) //fail-safes + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + 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/survivor/usasf/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/sof/survivor_usasf, WEAR_L_EAR) + +/datum/equipment_preset/survivor/usasf/proc/spawn_food(mob/living/carbon/human/new_human) + var/spawn_food = rand(1,3) + switch(spawn_food) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/mre/fsr) + if (2) + var/packaged_food = rand(1,3) + switch(packaged_food) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_burger) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_burrito) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_hdogs) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/wrapped/barcardine) + +/datum/equipment_preset/survivor/usasf/proc/spawn_pouch(mob/living/carbon/human/new_human) + var/spawn_pouch = rand(1,4) + switch(spawn_pouch) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full/pills, WEAR_L_STORE) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/pistol, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_L_STORE) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_R_STORE) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/m717, WEAR_R_STORE) + +/datum/equipment_preset/survivor/usasf/proc/spawn_belt(mob/living/carbon/human/new_human) + var/spawn_belt = rand(1,4) + switch(spawn_belt) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine, WEAR_WAIST) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun, WEAR_WAIST) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/general_belt, WEAR_WAIST) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/storage/large_holster/machete/full, WEAR_WAIST) + +/datum/equipment_preset/survivor/usasf/proc/spawn_backpack(mob/living/carbon/human/new_human) + var/spawn_backpack = rand(1,4) + switch(spawn_backpack) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/chestrig, WEAR_BACK) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/tech, WEAR_BACK) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel, WEAR_BACK) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/stack/folding_barricade/three, WEAR_BACK) + +/datum/equipment_preset/survivor/usasf/proc/spawn_armour(mob/living/carbon/human/new_human) + var/spawn_armour = rand(1,5) + switch(spawn_armour) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/vest/dcc, WEAR_JACKET) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/vest, WEAR_JACKET) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light, WEAR_JACKET) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/webbing, WEAR_JACKET) + if (5) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/pilot, WEAR_JACKET) + +/datum/equipment_preset/survivor/usasf/proc/spawn_helmet(mob/living/carbon/human/new_human) + var/spawn_helmet = rand(1,7) + switch(spawn_helmet) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/marine, WEAR_HEAD) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine, WEAR_HEAD) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmbandana, WEAR_HEAD) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beanie, WEAR_HEAD) + if (5) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/headband, WEAR_HEAD) + if (6) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/headset, WEAR_HEAD) + if (7) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/flap, WEAR_HEAD) + +/datum/equipment_preset/survivor/usasf/proc/spawn_secondary(mob/living/carbon/human/new_human) + var/spawn_secondary = rand(1,6) + switch(spawn_secondary) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/vp78, WEAR_L_HAND) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/smartpistol, WEAR_L_HAND) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/mod88, WEAR_L_HAND) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/m44, WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m44, WEAR_WAIST) + if (5) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/m4a4, WEAR_L_HAND) + if (6) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/m1911, WEAR_L_HAND) + + +/datum/equipment_preset/survivor/usasf/proc/spawn_primary(mob/living/carbon/human/new_human) + var/spawn_primary = rand(1,6) + switch(spawn_primary) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/m41a, WEAR_R_HAND) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/m56d, WEAR_R_HAND) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/xm88, WEAR_R_HAND) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/pumpshotgun, WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/shotgun, WEAR_WAIST) + if (5) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/m2c, WEAR_R_HAND) + if (6) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/nsg23_marine, WEAR_R_HAND) + +/datum/equipment_preset/survivor/usasf/proc/spawn_security_primary(mob/living/carbon/human/new_human) + var/spawn_security_primary = rand(1,2) + switch(spawn_security_primary) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/m41aMK1, WEAR_R_HAND) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/guncase/lmg, WEAR_R_HAND) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/combat/riot, WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /datum/ammo/bullet/shotgun/buckshot, WEAR_IN_R_STORE) //Idk how to make this a handful or make this cleaner + new_human.equip_to_slot_or_del(new /datum/ammo/bullet/shotgun/buckshot, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /datum/ammo/bullet/shotgun/buckshot, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /datum/ammo/bullet/shotgun/buckshot, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /datum/ammo/bullet/shotgun/buckshot, WEAR_IN_R_STORE) + +/datum/equipment_preset/survivor/usasf/crew/load_gear(mob/living/carbon/human/new_human) + ..() + var/duty = rand(1,10) + switch(duty) + if(1 , 3) //off-duty + var/offduty_outfit = rand(1,4) //1 number per outfit + switch(offduty_outfit) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/frontier, WEAR_BODY) + if (2) + var/colour = rand (1,3) + switch(colour) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/utility/blue, WEAR_BODY) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/utility/brown, WEAR_BODY) + if(3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/utility/gray, WEAR_BODY) + if (3) + var/flavour = rand(1,3) + switch(flavour) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/tshirt/w_br, WEAR_BODY) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/tshirt/gray_blu, WEAR_BODY) + if(3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/tshirt/r_bla, WEAR_BODY) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/shorts, WEAR_BODY) + if (4, 10) //on-duty + var/onduty_outfit = rand(1,2) + switch(onduty_outfit) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/army/usasf, WEAR_BODY) //ToDO: Make + if (2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot/dcc, WEAR_BODY) + +/datum/equipment_preset/survivor/usasf/crew/duty name = "USASF Ground Crew" job_title = JOB_USASF_CREW assignment = JOB_USASF_CREW -/datum/equipment_preset/survivor/usasf/crew/chaplain +/datum/equipment_preset/survivor/usasf/crew/duty/load_gear(mob/living/carbon/human/new_human) + ..() + spawn_primary(new_human) + spawn_secondary(new_human) + spawn_helmet(new_human) + spawn_armour(new_human) + spawn_backpack(new_human) + spawn_belt(new_human) + spawn_pouch(new_human) + spawn_food(new_human) + +/datum/equipment_preset/survivor/usasf/crew/duty/chaplain name = "USASF Chaplain" job_title = JOB_USASF_CHAPLAIN assignment = JOB_USASF_CHAPLAIN survivor_variant = CIVILIAN_SURVIVOR paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) -/datum/equipment_preset/survivor/usasf/crew/hangar_tech +/datum/equipment_preset/survivor/usasf/crew/chaplain/duty/load_gear(mob/living/carbon/human/new_human) + ..() + spawn_secondary(new_human) + spawn_pouch(new_human) + spawn_food(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/priest_robe, WEAR_JACKET) + +/datum/equipment_preset/survivor/usasf/crew/duty/hangar_tech name = "USASF Hangar Technician" job_title = JOB_USASF_HANGARTECH assignment = JOB_USASF_HANGARTECH skills = /datum/skills/military/survivor/usasf/technician + paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) + +/datum/equipment_preset/survivor/usasf/crew/duty/hangar_tech/load_gear(mob/living/carbon/human/new_human) + ..() + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/welding, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow, WEAR_HANDS) + spawn_primary(new_human) + spawn_secondary(new_human) + spawn_backpack(new_human) + spawn_pouch(new_human) + spawn_food(new_human) -/datum/equipment_preset/survivor/usasf/crew/mess_tech + +/datum/equipment_preset/survivor/usasf/crew/duty/mess_tech name = "USASF Mess Technician" survivor_variant = ENGINEERING_SURVIVOR skills = /datum/skills/military/survivor/usasf/technician + paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) + +/datum/equipment_preset/survivor/usasf/crew/duty/mess_tech/load_gear(mob/living/carbon/human/new_human) + . = ..() + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/welding, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow, WEAR_HANDS) + spawn_primary(new_human) + spawn_secondary(new_human) + spawn_backpack(new_human) + spawn_pouch(new_human) + spawn_food(new_human) -/datum/equipment_preset/survivor/usasf/crew/cargo_tech +/datum/equipment_preset/survivor/usasf/crew/duty/cargo_tech name = "USASF Cargo Technician" job_title = JOB_USASF_CARGOTECH assignment = JOB_USASF_CARGOTECH survivor_variant = ENGINEERING_SURVIVOR skills = /datum/skills/military/survivor/usasf/technician + paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) +/datum/equipment_preset/survivor/usasf/crew/duty/cargo_tech/load_gear(mob/living/carbon/human/new_human) + . = ..() + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow, WEAR_HANDS) + spawn_primary(new_human) + spawn_secondary(new_human) + spawn_backpack(new_human) + spawn_helmet(new_human) + spawn_pouch(new_human) + spawn_food(new_human) /datum/equipment_preset/survivor/usasf/crew/medical //abstract name = "USASF Medical Staff" - skills = /datum/skills/military/survivor/usasf/medical + skills = /datum/skills/military/survivor/usasf/medical // both nurse and doctor are surgery capable access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, @@ -71,13 +314,37 @@ assignment = JOB_USASF_NURSE paygrades = list(PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_1) +/datum/equipment_preset/survivor/usasf/crew/medical/nurse/load_gear(mob/living/carbon/human/new_human) + . = ..() + spawn_secondary(new_human) + spawn_backpack(new_human) + spawn_helmet(new_human) + spawn_pouch(new_human) + spawn_food(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/surg_vest/equipped, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/regular, WEAR_R_HAND) + /datum/equipment_preset/survivor/usasf/crew/medical/doctor name = "USASF Doctor" job_title = JOB_USASF_DOCTOR assignment = JOB_USASF_DOCTOR paygrades = list(PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO4 = JOB_PLAYTIME_TIER_1) -/datum/equipment_preset/survivor/usasf/security +/datum/equipment_preset/survivor/usasf/crew/medical/doctor/load_gear(mob/living/carbon/human/new_human) + . = ..() + spawn_secondary(new_human) + spawn_backpack(new_human) + spawn_helmet(new_human) + spawn_pouch(new_human) + spawn_food(new_human) + new_human.equip_to_slot_or_del (new /obj/item/clothing/suit/chef/classic/medical, WEAR_BODY) + new_human.equip_to_slot_or_del (new /obj/item/clothing/accessory/storage/surg_vest/equipped, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del (new /obj/item/device/defibrillator, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_R_HAND) + +/datum/equipment_preset/survivor/usasf/crew/security name = "USASF Security Defender" job_title = JOB_USASF_SECURITY_DEFENDER assignment = JOB_USASF_SECURITY_DEFENDER @@ -95,7 +362,19 @@ survivor_variant = SECURITY_SURVIVOR -/datum/equipment_preset/survivor/usasf/officer +/datum/equipment_preset/survivor/usasf/crew/security/load_gear(mob/living/carbon/human/new_human) + . = ..() + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/MP, WEAR_HEAD) + spawn_security_primary(new_human) + spawn_secondary(new_human) + spawn_backpack(new_human) + spawn_belt(new_human) + spawn_pouch(new_human) + spawn_food(new_human) + +/datum/equipment_preset/survivor/usasf/crew/officer name = "USASF Officer" job_title = JOB_USASF_OFFICER assignment = JOB_USASF_OFFICER @@ -111,15 +390,36 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/survivor/usasf/officer/off_duty +/datum/equipment_preset/survivor/usasf/crew/usasf_officer/load_gear(mob/living/carbon/human/new_human) + . = ..() + // TODO: Add USASF Uniform + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/MP/SO, WEAR_HEAD) + spawn_security_primary(new_human) + spawn_secondary(new_human) + spawn_armour(new_human) + spawn_backpack(new_human) + spawn_belt(new_human) + spawn_pouch(new_human) + spawn_food(new_human) -/datum/equipment_preset/survivor/usasf/officer/pilot +/datum/equipment_preset/survivor/usasf/crew/officer/pilot name = "USASF Pilot" job_title = JOB_USASF_PILOT assignment = JOB_USASF_PILOT skills = /datum/skills/military/survivor/usasf/pilot paygrades = list(PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_0) +/datum/equipment_preset/survivor/usasf/crew/officer/pilot/load_gear(mob/living/carbon/human/new_human) + . = ..() + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/pilot/novisor, WEAR_HEAD) + spawn_secondary(new_human) + spawn_backpack(new_human) + spawn_armour(new_human) + spawn_belt(new_human) + spawn_pouch(new_human) + spawn_food(new_human) + /datum/equipment_preset/survivor/usasf/officer/co name = "USASF Aerospace Base Commander" job_title = JOB_USASF_CO @@ -127,6 +427,16 @@ skills = /datum/skills/commander paygrades = list(PAY_SHORT_NO5 = JOB_PLAYTIME_TIER_0) // Major equivalent +/datum/equipment_preset/survivor/usasf/crew/officer/co/load_gear(mob/living/carbon/human/new_human) + . = ..() + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/mateba/mtr6m/full, WEAR_WAIST) + spawn_security_primary(new_human) + spawn_backpack(new_human) + spawn_armour(new_human) + spawn_pouch(new_human) + spawn_food(new_human) + new_human.equip_to_slot_or_del (new /obj/item/device/binoculars/range/designator, WEAR_IN_BACK) + /datum/equipment_preset/synth/usasf // only thing that needs to be parented to something else name = "USASF Synthetic" paygrades = list(PAY_SHORT_NE7 = JOB_PLAYTIME_TIER_0) @@ -135,3 +445,16 @@ job_title = JOB_USASF_SYNTHETIC idtype = /obj/item/card/id/gold +/datum/equipment_preset/synth/usasf/load_gear(mob/living/carbon/human/preset_human) + preset_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/army/usasf, WEAR_BODY) + preset_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch(preset_human), WEAR_ACCESSORY) + preset_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/chestrig(preset_human), WEAR_BACK) + preset_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/synvest(preset_human), WEAR_JACKET) + preset_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(preset_human), WEAR_IN_JACKET) + preset_human.equip_to_slot_or_del(new /obj/item/storage/large_holster/machete/full(preset_human), WEAR_J_STORE) + preset_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/synthetic, WEAR_IN_BACK) + preset_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft(preset_human), WEAR_WAIST) + preset_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/regular(preset_human), WEAR_R_HAND) + preset_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(preset_human), WEAR_R_STORE) + preset_human.equip_to_slot_or_del(new /obj/item/storage/pouch/sling(preset_human), WEAR_L_STORE) + preset_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/sof/survivor_usasf(preset_human), WEAR_L_EAR) diff --git a/maps/usasf_point_loma.json b/maps/usasf_point_loma.json index 6266b5bc3e6d..f5cde29a66ef 100644 --- a/maps/usasf_point_loma.json +++ b/maps/usasf_point_loma.json @@ -12,23 +12,21 @@ "/datum/equipment_preset/survivor/alphatech/scientist", "/datum/equipment_preset/survivor/alphatech/scientist/research_director", "/datum/equipment_preset/survivor/alphatech/off_duty", - "/datum/equipment_preset/survivor/usasf/crew", - "/datum/equipment_preset/survivor/usasf/crew/off_duty", - "/datum/equipment_preset/survivor/usasf/crew/hangar_tech", - "/datum/equipment_preset/survivor/usasf/crew/mess_tech", - "/datum/equipment_preset/survivor/usasf/crew/cargo_tech", + "/datum/equipment_preset/survivor/usasf/crew/duty", + "/datum/equipment_preset/survivor/usasf/crew/duty/hangar_tech", + "/datum/equipment_preset/survivor/usasf/crew/duty/mess_tech", + "/datum/equipment_preset/survivor/usasf/crew/duty/cargo_tech", "/datum/equipment_preset/survivor/usasf/crew/medical/nurse", "/datum/equipment_preset/survivor/usasf/crew/medical/doctor", - "/datum/equipment_preset/survivor/usasf/security", - "/datum/equipment_preset/survivor/usasf/officer", - "/datum/equipment_preset/survivor/usasf/officer/off_duty", - "/datum/equipment_preset/survivor/usasf/officer/pilot" + "/datum/equipment_preset/survivor/usasf/crew/security", + "/datum/equipment_preset/survivor/usasf/crew/officer", + "/datum/equipment_preset/survivor/usasf/crew/officer/pilot" ], "synth_survivor_types": [ "/datum/equipment_preset/synth/usasf" ], "CO_survivor_types": [ - "/datum/equipment_preset/survivor/usasf/officer/co" + "/datum/equipment_preset/survivor/usasf/crew/officer/co" ], "map_item_type": "/obj/item/map/lazarus_landing_map", "announce_text": "Distress Signal received from USASF Point Loma, T-1 Hour Ago. \n Orbital Scan Underway. \n Await results.", From becb6c1c0514d1832a7cffb37754b2ccee363bdb Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 10:46:58 +0000 Subject: [PATCH 05/20] fix duplicate headset --- code/game/objects/items/devices/radio/headset.dm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index d7cc61d9343c..1c3bdb594cc1 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -1482,13 +1482,6 @@ initial_keys = list(/obj/item/device/encryptionkey/almayer, /obj/item/device/encryptionkey/alphatech) has_hud = FALSE //toDO: Fix! -/obj/item/device/radio/headset/distress/CMB/ICC - name = "\improper ICC Liaison Headset" - desc = "An expensive headset used by The Interstellar Commerce Commission. This one in particular has a liaison chip with the CMB. Featured channels include: ; - CMB, :o - Colony, :g - public, :v - marine command, :m - medbay, :t - intel, :y - Weyland-Yutani." - icon_state = "wy_headset" - additional_hud_types = list(MOB_HUD_FACTION_WY) - initial_keys = list(/obj/item/device/encryptionkey/WY, /obj/item/device/encryptionkey/cmb) - /obj/item/device/radio/headset/almayer/mcom/vc name = "marine vehicle crew radio headset" desc = "Used by USCM vehicle crew, features a non-standard brace. Channels are as follows: :v - marine command, :n - engineering, :m - medbay, :u - requisitions." From 7dc12c34d37d0acf71e1c9e223083fcb98ec86b0 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:22:53 +0000 Subject: [PATCH 06/20] fix USASF survivors --- .../usasf_point_loma/usasf_survivors.dm | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index 70bb798c8067..411705f8667e 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -174,6 +174,7 @@ /datum/equipment_preset/survivor/usasf/crew/load_gear(mob/living/carbon/human/new_human) ..() var/duty = rand(1,10) + var/shoes = rand (1,3) switch(duty) if(1 , 3) //off-duty var/offduty_outfit = rand(1,4) //1 number per outfit @@ -207,6 +208,13 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/army/usasf, WEAR_BODY) //ToDO: Make if (2) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot/dcc, WEAR_BODY) + switch(shoes) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal, WEAR_FEET) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine, WEAR_FEET) //ToDO: USASF Boots + if (3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black, WEAR_FEET) /datum/equipment_preset/survivor/usasf/crew/duty name = "USASF Ground Crew" @@ -266,7 +274,7 @@ paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) /datum/equipment_preset/survivor/usasf/crew/duty/mess_tech/load_gear(mob/living/carbon/human/new_human) - . = ..() + ..() new_human.equip_to_slot_or_del(new /obj/item/clothing/head/welding, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest, WEAR_JACKET) @@ -285,7 +293,7 @@ skills = /datum/skills/military/survivor/usasf/technician paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) /datum/equipment_preset/survivor/usasf/crew/duty/cargo_tech/load_gear(mob/living/carbon/human/new_human) - . = ..() + ..() new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow, WEAR_HANDS) @@ -315,7 +323,7 @@ paygrades = list(PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_1) /datum/equipment_preset/survivor/usasf/crew/medical/nurse/load_gear(mob/living/carbon/human/new_human) - . = ..() + ..() spawn_secondary(new_human) spawn_backpack(new_human) spawn_helmet(new_human) @@ -332,7 +340,7 @@ paygrades = list(PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO4 = JOB_PLAYTIME_TIER_1) /datum/equipment_preset/survivor/usasf/crew/medical/doctor/load_gear(mob/living/carbon/human/new_human) - . = ..() + ..() spawn_secondary(new_human) spawn_backpack(new_human) spawn_helmet(new_human) @@ -363,7 +371,7 @@ survivor_variant = SECURITY_SURVIVOR /datum/equipment_preset/survivor/usasf/crew/security/load_gear(mob/living/carbon/human/new_human) - . = ..() + ..() new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/MP, WEAR_HEAD) @@ -391,7 +399,7 @@ ) /datum/equipment_preset/survivor/usasf/crew/usasf_officer/load_gear(mob/living/carbon/human/new_human) - . = ..() + ..() // TODO: Add USASF Uniform new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/MP/SO, WEAR_HEAD) spawn_security_primary(new_human) @@ -410,7 +418,7 @@ paygrades = list(PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/survivor/usasf/crew/officer/pilot/load_gear(mob/living/carbon/human/new_human) - . = ..() + ..() new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/pilot/novisor, WEAR_HEAD) spawn_secondary(new_human) @@ -428,7 +436,7 @@ paygrades = list(PAY_SHORT_NO5 = JOB_PLAYTIME_TIER_0) // Major equivalent /datum/equipment_preset/survivor/usasf/crew/officer/co/load_gear(mob/living/carbon/human/new_human) - . = ..() + ..() new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/mateba/mtr6m/full, WEAR_WAIST) spawn_security_primary(new_human) spawn_backpack(new_human) From 77deafaf71ff72709bc0e38b6dec022047cb43ea Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:23:02 +0000 Subject: [PATCH 07/20] add some alpha-tech hardware survivors, comment out others --- .../usasf_point_loma/alpha_tech_survivors.dm | 105 ++++++++++++++---- maps/usasf_point_loma.json | 3 - 2 files changed, 82 insertions(+), 26 deletions(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm index ec2d434498f8..05402d31a851 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm @@ -16,6 +16,10 @@ minimap_background = "background_civilian" survivor_variant = CORPORATE_SURVIVOR +/datum/equipment_preset/survivor/alphatech/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/alphatech, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black, WEAR_FEET) + /datum/equipment_preset/survivor/alphatech/corporate name = "Alpha-Tech Corporate Liaison" job_title = JOB_ALPHATECH_CL @@ -24,14 +28,43 @@ skills = /datum/skills/civilian/survivor/manager // ToDO: Check what manager skills actually are paygrades = list(PAY_SHORT_ATHC1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_ATHC2 = JOB_PLAYTIME_TIER_1, PAY_SHORT_ATHC3 = JOB_PLAYTIME_TIER_2) -/datum/equipment_preset/survivor/alphatech/corporate/chief_engineer - name = "Alpha-Tech Mining Colony Chief Engineer" - job_title = JOB_ALPHATECH_CHIEF_ENGINEER - assignment = JOB_ALPHATECH_CHIEF_ENGINEER - languages = list(LANGUAGE_ENGLISH, LANGUAGE_CHINESE) - paygrades = list(PAY_SHORT_ATHC_ENG_CE = JOB_PLAYTIME_TIER_0) - skills = /datum/skills/civilian/survivor/engineer // ToDO: Consider making this a CO-like Civ Engineer - survivor_variant = ENGINEERING_SURVIVOR +/datum/equipment_preset/survivor/alphatech/corporate/load_gear(mob/living/carbon/human/new_human) + ..() + var/random_clothing = rand(1,6) + var/random_suit = rand (1,2) + switch(random_clothing) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black, WEAR_BODY) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue, WEAR_BODY) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/brown, WEAR_BODY) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal, WEAR_BODY) + if (5) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/field, WEAR_BODY) + if (6) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/sl_suit, WEAR_BODY) + switch(random_suit) + if (1) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/bomber, WEAR_JACKET) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/vest, WEAR_JACKET) + if (3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/bomber, WEAR_JACKET) + if (4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/windbreaker/windbreaker_brown, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable(new_human), WEAR_BACK) + +// /datum/equipment_preset/survivor/alphatech/chief_engineer +// name = "Alpha-Tech Mining Colony Chief Engineer" +// job_title = JOB_ALPHATECH_CHIEF_ENGINEER +// assignment = JOB_ALPHATECH_CHIEF_ENGINEER +// languages = list(LANGUAGE_ENGLISH, LANGUAGE_CHINESE) +// paygrades = list(PAY_SHORT_ATHC_ENG_CE = JOB_PLAYTIME_TIER_0) +// skills = /datum/skills/civilian/survivor/engineer // ToDO: Consider making this a CO-like Civ Engineer +// survivor_variant = ENGINEERING_SURVIVOR + /datum/equipment_preset/survivor/alphatech/scientist name = "Alpha-Tech Scientist" @@ -42,13 +75,25 @@ paygrades = list(PAY_SHORT_CCMOA = JOB_PLAYTIME_TIER_0, PAY_SHORT_CCMOC = JOB_PLAYTIME_TIER_1) survivor_variant = SCIENTIST_SURVIVOR -/datum/equipment_preset/survivor/alphatech/scientist/research_director - name = "Alpha-Tech Research Director" - job_title = JOB_ALPHATECH_RESEARCH_DIRECTOR // ToDO: Consider making this a CO-like Civ role - assignment = JOB_ALPHATECH_RESEARCH_DIRECTOR - paygrades = list(PAY_SHORT_ATHC_SCI_RD = JOB_PLAYTIME_TIER_0) - languages = list(LANGUAGE_CHINESE, LANGUAGE_ENGLISH) - survivor_variant = SCIENTIST_SURVIVOR +/datum/equipment_preset/survivor/alphatech/scientist/load_gear(mob/living/carbon/human/new_human) // ToDO: Uncopypaste this + ..() + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/tox(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/unique/tier_three(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full(new_human), WEAR_R_STORE) + +// /datum/equipment_preset/survivor/alphatech/scientist/research_director +// name = "Alpha-Tech Research Director" +// job_title = JOB_ALPHATECH_RESEARCH_DIRECTOR // ToDO: Consider making this a CO-like Civ role +// assignment = JOB_ALPHATECH_RESEARCH_DIRECTOR +// paygrades = list(PAY_SHORT_ATHC_SCI_RD = JOB_PLAYTIME_TIER_0) +// languages = list(LANGUAGE_CHINESE, LANGUAGE_ENGLISH) +// survivor_variant = SCIENTIST_SURVIVOR /datum/equipment_preset/survivor/alphatech/miner name = "Alpha-Tech Mining Contractor" @@ -59,11 +104,25 @@ paygrades = list(PAY_SHORT_CIV = JOB_PLAYTIME_TIER_0) survivor_variant = CIVILIAN_SURVIVOR -/datum/equipment_preset/survivor/alphatech/off_duty - name = "Alpha-Tech Hardware Corporation Employee" - job_title = JOB_ALPHATECH_EMPLOYEE - assignment = JOB_ALPHATECH_EMPLOYEE - languages = list(LANGUAGE_CHINESE) - skills = /datum/skills/military/survivor/usasf/pilot - paygrades = list(PAY_SHORT_CIV = JOB_PLAYTIME_TIER_0) - survivor_variant = CIVILIAN_SURVIVOR +/datum/equipment_preset/survivor/alphatech/miner/load_gear(mob/living/carbon/human/new_human) // TODO: Uncopypaste this + ..() + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/tool/pickaxe(new_human), WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD) + +// /datum/equipment_preset/survivor/alphatech/off_duty //TODO: Find something to do with this... +// name = "Alpha-Tech Hardware Corporation Employee" +// job_title = JOB_ALPHATECH_EMPLOYEE +// assignment = JOB_ALPHATECH_EMPLOYEE +// languages = list(LANGUAGE_CHINESE) +// skills = /datum/skills/military/survivor/usasf/pilot +// paygrades = list(PAY_SHORT_CIV = JOB_PLAYTIME_TIER_0) +// survivor_variant = CIVILIAN_SURVIVOR + +// /datum/equipment_preset/survivor/alphatech/off_duty/load_gear(mob/living/carbon/human/new_human) +// ..() diff --git a/maps/usasf_point_loma.json b/maps/usasf_point_loma.json index f5cde29a66ef..8697f49d0e96 100644 --- a/maps/usasf_point_loma.json +++ b/maps/usasf_point_loma.json @@ -8,10 +8,7 @@ "survivor_types": [ "/datum/equipment_preset/survivor/alphatech/corporate", "/datum/equipment_preset/survivor/alphatech/miner", - "/datum/equipment_preset/survivor/alphatech/corporate/chief_engineer", "/datum/equipment_preset/survivor/alphatech/scientist", - "/datum/equipment_preset/survivor/alphatech/scientist/research_director", - "/datum/equipment_preset/survivor/alphatech/off_duty", "/datum/equipment_preset/survivor/usasf/crew/duty", "/datum/equipment_preset/survivor/usasf/crew/duty/hangar_tech", "/datum/equipment_preset/survivor/usasf/crew/duty/mess_tech", From bd9cfcc63b50ae6cffab0db1be5ece360fb319a8 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:35:55 +0000 Subject: [PATCH 08/20] corpse spawners --- .../objects/effects/landmarks/corpsespawner.dm | 15 +++++++++++++++ code/modules/gear_presets/corpses.dm | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/code/game/objects/effects/landmarks/corpsespawner.dm b/code/game/objects/effects/landmarks/corpsespawner.dm index b471b2f8d1e1..df8b1b8f4259 100644 --- a/code/game/objects/effects/landmarks/corpsespawner.dm +++ b/code/game/objects/effects/landmarks/corpsespawner.dm @@ -396,3 +396,18 @@ /obj/effect/landmark/corpsespawner/tyrargo/us_army_medic/burst name = "Corpse - Burst - US Army - Trooper" equip_path = /datum/equipment_preset/corpse/tyrargo/us_army_medic/burst + +/obj/effect/landmark/corpsespawner/point_loma/alphatech + name = "Corpse - AlphaTech" + equip_path = /datum/equipment_preset/corpse/point_loma/alphatech + +/obj/effect/landmark/corpsespawner/point_loma/alphatech/burst + name = "Corpse - AlphaTech - Burst" + equip_path = /datum/equipment_preset/corpse/point_loma/alphatech/burst +/obj/effect/landmark/corpsespawner/point_loma/usasf + name = "Corpse - USASF" + equip_path = /datum/equipment_preset/corpse/point_loma/usasf + +/obj/effect/landmark/corpsespawner/point_loma/usasf/burst + name = "Corpse - USASF - Burst" + equip_path = /datum/equipment_preset/corpse/point_loma/usasf/burst diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index a83fa9a3cf4d..98f03b391d29 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -1926,3 +1926,15 @@ /datum/equipment_preset/corpse/tyrargo/us_army_medic/burst name = "Corpse - Burst - US Army - Medic" xenovictim = TRUE + +/datum/equipment_preset/corpse/point_loma/alphatech + +/datum/equipment_preset/corpse/point_loma/alphaatech/burst + name = "Corpse - Burst - Alphatech" + xenovictim = TRUE + +/datum/equipment_preset/corpse/point_loma/usasf + +/datum/equipment_preset/corpse/point_loma/usasf/burst + name = "Corpse - Burst - USASF" + xenovictim = TRUE From 897b07acd6ff7dbaed85aeccd87a9d976437ca8a Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:36:37 +0000 Subject: [PATCH 09/20] corpse spawners v0.2 --- code/modules/gear_presets/corpses.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index 98f03b391d29..3cd8d742c8e8 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -1928,12 +1928,14 @@ xenovictim = TRUE /datum/equipment_preset/corpse/point_loma/alphatech + name = "Corpse - AlphaTech" /datum/equipment_preset/corpse/point_loma/alphaatech/burst name = "Corpse - Burst - Alphatech" xenovictim = TRUE /datum/equipment_preset/corpse/point_loma/usasf + name = "Corpse - Burst - USASF" /datum/equipment_preset/corpse/point_loma/usasf/burst name = "Corpse - Burst - USASF" From 8eb6ec6ad58867f342ab68cccb8e5766f146c971 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:37:56 +0000 Subject: [PATCH 10/20] leave toDO marker --- code/modules/gear_presets/corpses.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index 3cd8d742c8e8..bdd2ea1cfa74 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -1927,7 +1927,7 @@ name = "Corpse - Burst - US Army - Medic" xenovictim = TRUE -/datum/equipment_preset/corpse/point_loma/alphatech +/datum/equipment_preset/corpse/point_loma/alphatech // ToDO: name = "Corpse - AlphaTech" /datum/equipment_preset/corpse/point_loma/alphaatech/burst From 0b3e7fc0299818da65709a80c4ad7c513570364f Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:40:50 +0000 Subject: [PATCH 11/20] fix errors --- code/game/objects/effects/landmarks/corpsespawner.dm | 1 + code/modules/gear_presets/corpses.dm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/effects/landmarks/corpsespawner.dm b/code/game/objects/effects/landmarks/corpsespawner.dm index df8b1b8f4259..1975a604938c 100644 --- a/code/game/objects/effects/landmarks/corpsespawner.dm +++ b/code/game/objects/effects/landmarks/corpsespawner.dm @@ -404,6 +404,7 @@ /obj/effect/landmark/corpsespawner/point_loma/alphatech/burst name = "Corpse - AlphaTech - Burst" equip_path = /datum/equipment_preset/corpse/point_loma/alphatech/burst + /obj/effect/landmark/corpsespawner/point_loma/usasf name = "Corpse - USASF" equip_path = /datum/equipment_preset/corpse/point_loma/usasf diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index bdd2ea1cfa74..f54307bc5d3c 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -1930,7 +1930,7 @@ /datum/equipment_preset/corpse/point_loma/alphatech // ToDO: name = "Corpse - AlphaTech" -/datum/equipment_preset/corpse/point_loma/alphaatech/burst +/datum/equipment_preset/corpse/point_loma/alphatech/burst name = "Corpse - Burst - Alphatech" xenovictim = TRUE From 80789816f3d3c0c217bed625f3da8679bf43719f Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 12:16:33 +0000 Subject: [PATCH 12/20] fix error --- code/modules/gear_presets/corpses.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index f54307bc5d3c..78d18b05629f 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -1927,6 +1927,11 @@ name = "Corpse - Burst - US Army - Medic" xenovictim = TRUE +// USASF Point Loma // + +/datum/equipment_preset/corpse/point_loma + flags = EQUIPMENT_PRESET_STUB + /datum/equipment_preset/corpse/point_loma/alphatech // ToDO: name = "Corpse - AlphaTech" From 66881a8a386295eca559a62bad7cce7add633071 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 12:29:28 +0000 Subject: [PATCH 13/20] flags? --- .../survivors/usasf_point_loma/alpha_tech_survivors.dm | 5 +++-- .../survivors/usasf_point_loma/usasf_survivors.dm | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm index 05402d31a851..21b5be1dc1af 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm @@ -9,6 +9,7 @@ faction = FACTION_ALPHATECH faction_group = list(FACTION_ALPHATECH, FACTION_SURVIVOR) origin_override = ORIGIN_ALPHATECH + flags = EQUIPMENT_PRESET_START_OF_ROUND access = list(ACCESS_CIVILIAN_PUBLIC) @@ -67,7 +68,7 @@ /datum/equipment_preset/survivor/alphatech/scientist - name = "Alpha-Tech Scientist" + name = "Survivor - Alpha-Tech Scientist" job_title = JOB_ALPHATECH_SCIENTIST assignment = JOB_ALPHATECH_SCIENTIST languages = list(LANGUAGE_CHINESE) @@ -96,7 +97,7 @@ // survivor_variant = SCIENTIST_SURVIVOR /datum/equipment_preset/survivor/alphatech/miner - name = "Alpha-Tech Mining Contractor" + name = "Survivor - Alpha-Tech Mining Contractor" job_title = JOB_ALPHATECH_EMPLOYEE assignment = JOB_ALPHATECH_EMPLOYEE languages = list(LANGUAGE_CHINESE) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index 411705f8667e..1c3b6e22b3f5 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -18,6 +18,7 @@ ACCESS_CIVILIAN_LOGISTICS, ) + flags = EQUIPMENT_PRESET_START_OF_ROUND minimap_icon = "surv" minimap_background = "background_civilian" From c24e7279fc2bc886cd40342ef721ee0a78734f28 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 12:37:13 +0000 Subject: [PATCH 14/20] fix error --- .../survivors/usasf_point_loma/usasf_survivors.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index 1c3b6e22b3f5..1fdb0ba42d6b 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -32,6 +32,10 @@ /datum/equipment_preset/survivor/usasf/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/sof/survivor_usasf, WEAR_L_EAR) +/datum/equipment_preset/survivor/usasf/crew + name = "USASF Enlisted Crew" + flags = EQUIPMENT_PRESET_STUB // Fails tests without this idk why + /datum/equipment_preset/survivor/usasf/proc/spawn_food(mob/living/carbon/human/new_human) var/spawn_food = rand(1,3) switch(spawn_food) From d99f2960a8119d2c25aa132d1bfab8d3533bfb65 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 12:46:46 +0000 Subject: [PATCH 15/20] 1 more fix? --- .../survivors/usasf_point_loma/usasf_survivors.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index 1fdb0ba42d6b..cfc260b82aca 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -11,14 +11,14 @@ faction_group = list(FACTION_MARINE, FACTION_SURVIVOR) origin_override = ORIGIN_USASF paygrades = list(PAY_SHORT_NE3 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NE4 = JOB_PLAYTIME_TIER_1) - job_title = JOB_ARMY_TROOPER + job_title = JOB_USASF_CREW access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, ACCESS_CIVILIAN_LOGISTICS, ) - flags = EQUIPMENT_PRESET_START_OF_ROUND + flags = EQUIPMENT_PRESET_STUB minimap_icon = "surv" minimap_background = "background_civilian" From 72a755da770650113c1cebd9be9363c54c264501 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 12:49:00 +0000 Subject: [PATCH 16/20] 1 more fix 2.0? --- .../survivors/usasf_point_loma/usasf_survivors.dm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index cfc260b82aca..620fa60b3aa4 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -225,6 +225,7 @@ name = "USASF Ground Crew" job_title = JOB_USASF_CREW assignment = JOB_USASF_CREW + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/usasf/crew/duty/load_gear(mob/living/carbon/human/new_human) ..() @@ -243,6 +244,7 @@ assignment = JOB_USASF_CHAPLAIN survivor_variant = CIVILIAN_SURVIVOR paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/usasf/crew/chaplain/duty/load_gear(mob/living/carbon/human/new_human) ..() @@ -258,6 +260,7 @@ assignment = JOB_USASF_HANGARTECH skills = /datum/skills/military/survivor/usasf/technician paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/usasf/crew/duty/hangar_tech/load_gear(mob/living/carbon/human/new_human) ..() @@ -277,6 +280,7 @@ survivor_variant = ENGINEERING_SURVIVOR skills = /datum/skills/military/survivor/usasf/technician paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/usasf/crew/duty/mess_tech/load_gear(mob/living/carbon/human/new_human) ..() @@ -297,6 +301,8 @@ survivor_variant = ENGINEERING_SURVIVOR skills = /datum/skills/military/survivor/usasf/technician paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) + flags = EQUIPMENT_PRESET_START_OF_ROUND + /datum/equipment_preset/survivor/usasf/crew/duty/cargo_tech/load_gear(mob/living/carbon/human/new_human) ..() new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_BODY) @@ -320,12 +326,14 @@ ) survivor_variant = MEDICAL_SURVIVOR + flags = EQUIPMENT_PRESET_STUB /datum/equipment_preset/survivor/usasf/crew/medical/nurse name = "USASF Nurse" job_title = JOB_USASF_NURSE assignment = JOB_USASF_NURSE paygrades = list(PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_1) + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/usasf/crew/medical/nurse/load_gear(mob/living/carbon/human/new_human) ..() @@ -343,6 +351,7 @@ job_title = JOB_USASF_DOCTOR assignment = JOB_USASF_DOCTOR paygrades = list(PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO4 = JOB_PLAYTIME_TIER_1) + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/usasf/crew/medical/doctor/load_gear(mob/living/carbon/human/new_human) ..() @@ -364,6 +373,7 @@ skills = /datum/skills/military/survivor/usasf/security languages = list(LANGUAGE_ENGLISH, LANGUAGE_CHINESE) // needed to communicate with alpha-tech staff paygrades = list(PAY_SHORT_NE3 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NE4 = JOB_PLAYTIME_TIER_1) + flags = EQUIPMENT_PRESET_START_OF_ROUND access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, @@ -395,6 +405,7 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_CHINESE) // needed to communicate with alpha-tech staff idtype = /obj/item/card/id/gold/usasf paygrades = list(PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_1) + flags = EQUIPMENT_PRESET_START_OF_ROUND access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, @@ -421,6 +432,7 @@ assignment = JOB_USASF_PILOT skills = /datum/skills/military/survivor/usasf/pilot paygrades = list(PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_0) + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/usasf/crew/officer/pilot/load_gear(mob/living/carbon/human/new_human) ..() @@ -439,6 +451,7 @@ assignment = JOB_USASF_CO skills = /datum/skills/commander paygrades = list(PAY_SHORT_NO5 = JOB_PLAYTIME_TIER_0) // Major equivalent + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/usasf/crew/officer/co/load_gear(mob/living/carbon/human/new_human) ..() @@ -457,6 +470,7 @@ assignment = JOB_USASF_SYNTHETIC job_title = JOB_USASF_SYNTHETIC idtype = /obj/item/card/id/gold + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/synth/usasf/load_gear(mob/living/carbon/human/preset_human) preset_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/army/usasf, WEAR_BODY) From 7930cb73a7d08520d70dd95135ca50ff331e6d02 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 12:51:37 +0000 Subject: [PATCH 17/20] 1 more fix? 3.0 --- .../survivors/usasf_point_loma/alpha_tech_survivors.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm index 21b5be1dc1af..f8bd6305bc94 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm @@ -9,7 +9,7 @@ faction = FACTION_ALPHATECH faction_group = list(FACTION_ALPHATECH, FACTION_SURVIVOR) origin_override = ORIGIN_ALPHATECH - flags = EQUIPMENT_PRESET_START_OF_ROUND + flags = EQUIPMENT_PRESET_STUB access = list(ACCESS_CIVILIAN_PUBLIC) @@ -28,6 +28,7 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_CHINESE, LANGUAGE_JAPANESE, LANGUAGE_RUSSIAN) skills = /datum/skills/civilian/survivor/manager // ToDO: Check what manager skills actually are paygrades = list(PAY_SHORT_ATHC1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_ATHC2 = JOB_PLAYTIME_TIER_1, PAY_SHORT_ATHC3 = JOB_PLAYTIME_TIER_2) + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/alphatech/corporate/load_gear(mob/living/carbon/human/new_human) ..() @@ -75,6 +76,7 @@ skills = /datum/skills/civilian/survivor/scientist paygrades = list(PAY_SHORT_CCMOA = JOB_PLAYTIME_TIER_0, PAY_SHORT_CCMOC = JOB_PLAYTIME_TIER_1) survivor_variant = SCIENTIST_SURVIVOR + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/alphatech/scientist/load_gear(mob/living/carbon/human/new_human) // ToDO: Uncopypaste this ..() @@ -104,6 +106,7 @@ skills = /datum/skills/civilian/survivor/miner // ToDO: Make this an Engineer-type paygrades = list(PAY_SHORT_CIV = JOB_PLAYTIME_TIER_0) survivor_variant = CIVILIAN_SURVIVOR + flags = EQUIPMENT_PRESET_START_OF_ROUND /datum/equipment_preset/survivor/alphatech/miner/load_gear(mob/living/carbon/human/new_human) // TODO: Uncopypaste this ..() From e009dac8e625cad470c9689827401a45115dfcf7 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 12:59:30 +0000 Subject: [PATCH 18/20] fix error? 4.0 --- .../gear_presets/survivors/usasf_point_loma/usasf_survivors.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index 620fa60b3aa4..9132dc70a3ef 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -414,7 +414,7 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/survivor/usasf/crew/usasf_officer/load_gear(mob/living/carbon/human/new_human) +/datum/equipment_preset/survivor/usasf/crew/officer/load_gear(mob/living/carbon/human/new_human) ..() // TODO: Add USASF Uniform new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/MP/SO, WEAR_HEAD) From b46c6292692b553d2c96ec39376da71218f3ad4a Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 13:25:30 +0000 Subject: [PATCH 19/20] fix error? 5.0 --- .../gear_presets/survivors/usasf_point_loma/usasf_survivors.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index 9132dc70a3ef..ed3fda55efe4 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -445,7 +445,7 @@ spawn_pouch(new_human) spawn_food(new_human) -/datum/equipment_preset/survivor/usasf/officer/co +/datum/equipment_preset/survivor/usasf/crew/officer/co name = "USASF Aerospace Base Commander" job_title = JOB_USASF_CO assignment = JOB_USASF_CO From 557c156a1a2b3d6fcb900df56ac95d9bd246ed76 Mon Sep 17 00:00:00 2001 From: DangerRevolution <142105406+DangerRevolution@users.noreply.github.com> Date: Sun, 1 Mar 2026 14:24:17 +0000 Subject: [PATCH 20/20] survivors working V1 --- .../usasf_point_loma/alpha_tech_survivors.dm | 2 +- .../usasf_point_loma/usasf_survivors.dm | 51 +++++++++---------- maps/usasf_point_loma.json | 1 + 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm index f8bd6305bc94..36939a82411b 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/alpha_tech_survivors.dm @@ -22,7 +22,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black, WEAR_FEET) /datum/equipment_preset/survivor/alphatech/corporate - name = "Alpha-Tech Corporate Liaison" + name = "Survivor - Alpha-Tech Corporate Liaison" job_title = JOB_ALPHATECH_CL assignment = JOB_ALPHATECH_CL languages = list(LANGUAGE_ENGLISH, LANGUAGE_CHINESE, LANGUAGE_JAPANESE, LANGUAGE_RUSSIAN) diff --git a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm index ed3fda55efe4..cde5723eaf93 100644 --- a/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm +++ b/code/modules/gear_presets/survivors/usasf_point_loma/usasf_survivors.dm @@ -1,7 +1,7 @@ // **United States Aerospace Force Survivors** /datum/equipment_preset/survivor/usasf //abstract - name = "USASF Enlisted" + name = "Survivor - USASF Enlisted" //job_title = JOB_SURVIVOR skills = /datum/skills/military/survivor/usasf @@ -33,7 +33,7 @@ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/sof/survivor_usasf, WEAR_L_EAR) /datum/equipment_preset/survivor/usasf/crew - name = "USASF Enlisted Crew" + name = "Survivor - USASF Enlisted Crew" flags = EQUIPMENT_PRESET_STUB // Fails tests without this idk why /datum/equipment_preset/survivor/usasf/proc/spawn_food(mob/living/carbon/human/new_human) @@ -45,13 +45,13 @@ var/packaged_food = rand(1,3) switch(packaged_food) if (1) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_burger) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_burger, WEAR_IN_JACKET) if (2) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_burrito) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_burrito, WEAR_IN_JACKET) if (3) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_hdogs) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/packaged_hdogs, WEAR_IN_JACKET) if (3) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/wrapped/barcardine) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/wrapped/barcardine, WEAR_IN_JACKET) /datum/equipment_preset/survivor/usasf/proc/spawn_pouch(mob/living/carbon/human/new_human) var/spawn_pouch = rand(1,4) @@ -66,7 +66,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full, WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_R_STORE) if (4) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare/full, WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/m717, WEAR_R_STORE) /datum/equipment_preset/survivor/usasf/proc/spawn_belt(mob/living/carbon/human/new_human) @@ -181,8 +181,8 @@ var/duty = rand(1,10) var/shoes = rand (1,3) switch(duty) - if(1 , 3) //off-duty - var/offduty_outfit = rand(1,4) //1 number per outfit + if(1 to 3) //off-duty + var/offduty_outfit = rand(1,3) //1 number per outfit switch(offduty_outfit) if (1) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/frontier, WEAR_BODY) @@ -193,7 +193,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/utility/blue, WEAR_BODY) if (2) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/utility/brown, WEAR_BODY) - if(3) + if (3) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/utility/gray, WEAR_BODY) if (3) var/flavour = rand(1,3) @@ -204,9 +204,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/tshirt/gray_blu, WEAR_BODY) if(3) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/tshirt/r_bla, WEAR_BODY) - if (4) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/shorts, WEAR_BODY) - if (4, 10) //on-duty + if (4 to 10) //on-duty var/onduty_outfit = rand(1,2) switch(onduty_outfit) if (1) @@ -222,7 +220,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black, WEAR_FEET) /datum/equipment_preset/survivor/usasf/crew/duty - name = "USASF Ground Crew" + name = "Survivor - USASF Ground Crew" job_title = JOB_USASF_CREW assignment = JOB_USASF_CREW flags = EQUIPMENT_PRESET_START_OF_ROUND @@ -239,7 +237,7 @@ spawn_food(new_human) /datum/equipment_preset/survivor/usasf/crew/duty/chaplain - name = "USASF Chaplain" + name = "Survivor - USASF Chaplain" job_title = JOB_USASF_CHAPLAIN assignment = JOB_USASF_CHAPLAIN survivor_variant = CIVILIAN_SURVIVOR @@ -255,7 +253,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/priest_robe, WEAR_JACKET) /datum/equipment_preset/survivor/usasf/crew/duty/hangar_tech - name = "USASF Hangar Technician" + name = "Survivor - USASF Hangar Technician" job_title = JOB_USASF_HANGARTECH assignment = JOB_USASF_HANGARTECH skills = /datum/skills/military/survivor/usasf/technician @@ -276,7 +274,7 @@ /datum/equipment_preset/survivor/usasf/crew/duty/mess_tech - name = "USASF Mess Technician" + name = "Survivor - USASF Mess Technician" survivor_variant = ENGINEERING_SURVIVOR skills = /datum/skills/military/survivor/usasf/technician paygrades = list(PAY_SHORT_NO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_1) @@ -295,7 +293,7 @@ spawn_food(new_human) /datum/equipment_preset/survivor/usasf/crew/duty/cargo_tech - name = "USASF Cargo Technician" + name = "Survivor - USASF Cargo Technician" job_title = JOB_USASF_CARGOTECH assignment = JOB_USASF_CARGOTECH survivor_variant = ENGINEERING_SURVIVOR @@ -316,7 +314,7 @@ spawn_food(new_human) /datum/equipment_preset/survivor/usasf/crew/medical //abstract - name = "USASF Medical Staff" + name = "Survivor - USASF Medical Staff" skills = /datum/skills/military/survivor/usasf/medical // both nurse and doctor are surgery capable access = list( ACCESS_CIVILIAN_PUBLIC, @@ -329,7 +327,7 @@ flags = EQUIPMENT_PRESET_STUB /datum/equipment_preset/survivor/usasf/crew/medical/nurse - name = "USASF Nurse" + name = "Survivor - USASF Nurse" job_title = JOB_USASF_NURSE assignment = JOB_USASF_NURSE paygrades = list(PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_1) @@ -347,7 +345,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/regular, WEAR_R_HAND) /datum/equipment_preset/survivor/usasf/crew/medical/doctor - name = "USASF Doctor" + name = "Survivor - USASF Doctor" job_title = JOB_USASF_DOCTOR assignment = JOB_USASF_DOCTOR paygrades = list(PAY_SHORT_NO3 = JOB_PLAYTIME_TIER_0, PAY_SHORT_NO4 = JOB_PLAYTIME_TIER_1) @@ -367,7 +365,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_R_HAND) /datum/equipment_preset/survivor/usasf/crew/security - name = "USASF Security Defender" + name = "Survivor - USASF Security Defender" job_title = JOB_USASF_SECURITY_DEFENDER assignment = JOB_USASF_SECURITY_DEFENDER skills = /datum/skills/military/survivor/usasf/security @@ -398,7 +396,7 @@ spawn_food(new_human) /datum/equipment_preset/survivor/usasf/crew/officer - name = "USASF Officer" + name = "Survivor - USASF Officer" job_title = JOB_USASF_OFFICER assignment = JOB_USASF_OFFICER skills = /datum/skills/military/survivor/usasf/officer @@ -427,7 +425,7 @@ spawn_food(new_human) /datum/equipment_preset/survivor/usasf/crew/officer/pilot - name = "USASF Pilot" + name = "Survivor - USASF Pilot" job_title = JOB_USASF_PILOT assignment = JOB_USASF_PILOT skills = /datum/skills/military/survivor/usasf/pilot @@ -446,7 +444,7 @@ spawn_food(new_human) /datum/equipment_preset/survivor/usasf/crew/officer/co - name = "USASF Aerospace Base Commander" + name = "Survivor - USASF Aerospace Base Commander" job_title = JOB_USASF_CO assignment = JOB_USASF_CO skills = /datum/skills/commander @@ -464,7 +462,7 @@ new_human.equip_to_slot_or_del (new /obj/item/device/binoculars/range/designator, WEAR_IN_BACK) /datum/equipment_preset/synth/usasf // only thing that needs to be parented to something else - name = "USASF Synthetic" + name = "Survivor - USASF Synthetic" paygrades = list(PAY_SHORT_NE7 = JOB_PLAYTIME_TIER_0) faction_group = list(FACTION_MARINE, FACTION_SURVIVOR) assignment = JOB_USASF_SYNTHETIC @@ -485,3 +483,4 @@ preset_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(preset_human), WEAR_R_STORE) preset_human.equip_to_slot_or_del(new /obj/item/storage/pouch/sling(preset_human), WEAR_L_STORE) preset_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/sof/survivor_usasf(preset_human), WEAR_L_EAR) + preset_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(preset_human), WEAR_FEET) diff --git a/maps/usasf_point_loma.json b/maps/usasf_point_loma.json index 8697f49d0e96..87f419bdc79f 100644 --- a/maps/usasf_point_loma.json +++ b/maps/usasf_point_loma.json @@ -70,6 +70,7 @@ "xeno_hive_charlie": 70 }, "camouflage": "desert", + "disable_ship_map": true "gamemodes": [ "Distress Signal", "Hunter Games",