Skip to content

Commit

Permalink
Crashed UPP Survivors Insert Tweaks (#4123)
Browse files Browse the repository at this point in the history
# About the pull request

Changes based on feedback and personal observations

Major changes
- A second map insert has been added that is guaranteed to occur
whenever UPP survivors spawn. A second, destroyed, UPP dropship
containing supplies (10 standard t-71 mags, 4 AP mags, a bunch of
grenades). Including a single UPP PKP Machinegun. Only the Specialist
and SL can use it. (I'd say its balanced because the weapon has horrible
accuracy and will likely cause FF in unskilled hands).
- UPP SL spawns with a guaranteed set of armour and their beret instead
of a officer's jacket. Feels more thematic and the officer's jacket is
meant for high ranking officers and not SLs.
- Reduced spawns so there is only 1 Medic and 1 Engineer spawn, but they
are both now a higher priority to spawn. Spawns should now go SL > Spec
> Engi / Medic > Soldiers.
- SL and Spec now have driving skills.  
- Added a lore entry when the survs spawn to give survs a hint to go
explore to find the other crashed ship.

Minor Changes
- Decreased chance of a UPP spawning with a Pulse Carbine slightly, due
to how weak it is. Now 1/5 chance instead of 1/3.
- Adds some buckshot ammo to the crashed dropship due to low ammo amount
given to UPP who spawn with shotgun. UPP Shotgun feels balanced since it
has high upfront damage but a low RoF. However low ammo meant a lot of
people were ditching them for survivor shotguns.
- SL has UPP spec weapon training (in case a synth takes the Spec spawn,
so at least 1 person can use the minigun)
- UPP now have access to the UPP comms channel. 
- HUD icons are now in place. 


# Explain why it's good for the game

The Medic/Engi changes ensure there is a guarantee of a single Medic and
Engineer outside of very lowpop. I was noticing the prior spawn system
means you'll see a lot of Medics but rarely a Engineer. This change
should also mean more people will spawn as Soldiers instead of 90% of
the squad being Medics and Engineers.

The supply cache is to give the UPP a alternative objective, instead of
rushing to the meta hold spots they can try to make a run for a supply
cache to give them a better chance of survival.

Considering my observation of as many UPP surv rounds as I can, I've
found its almost guaranteed the UPP are overrun by the time the USCM
arrive. Perhaps a chance at some extra ammo might tip the scales?

Everything else is self explanatory. 

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

![Screenshot 2023-08-15 00 20
09](https://github.com/cmss13-devs/cmss13/assets/6595389/c1f2fcdc-35d0-4b67-8575-833e82545964)

![Screenshot 2023-08-15 01 41
24](https://github.com/cmss13-devs/cmss13/assets/6595389/7116d19b-8d4d-4bd0-ac2a-52a1fe6f636c)



</details>


# Changelog
:cl:
balance: Large amount of balance changes to UPP survivors on Trijent.
New spawn setup guarantee's you'll get 1 Medic and 1 Engineer.
balance: UPP survivors now have access to HUD icons for squad roles, and
access to the UPP communications channel if the colony communications is
repaired.
balance: UPP surv SL's and Specialists can now drive vehicles. 
balance: A second, crashed, UPP dropship can be found somewhere on
Trijent if the UPP survivors spawn. It contains extra supplies and
stronger firearms. But requires a detour to find.
/:cl:

---------

Co-authored-by: Steelpoint <[email protected]>
Co-authored-by: Zonespace <[email protected]>
  • Loading branch information
3 people authored Aug 30, 2023
1 parent 95428fe commit bf648db
Show file tree
Hide file tree
Showing 10 changed files with 2,063 additions and 26 deletions.
5 changes: 3 additions & 2 deletions code/datums/skills.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1673,7 +1673,7 @@ COLONIAL MARSHALS
SKILL_FIREARMS = SKILL_FIREARMS_TRAINED,
SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED,
SKILL_CQC = SKILL_CQC_TRAINED,
SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT,
SKILL_VEHICLE = SKILL_VEHICLE_LARGE,
)

/datum/skills/military/survivor/upp_sl
Expand All @@ -1682,12 +1682,13 @@ COLONIAL MARSHALS
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_ENGINEER = SKILL_ENGINEER_ENGI,
SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP,
SKILL_FIREARMS = SKILL_FIREARMS_TRAINED,
SKILL_CQC = SKILL_CQC_TRAINED,
SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED,
SKILL_LEADERSHIP = SKILL_LEAD_EXPERT,
SKILL_MEDICAL = SKILL_MEDICAL_MEDIC,
SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT,
SKILL_VEHICLE = SKILL_VEHICLE_LARGE,
SKILL_JTAC = SKILL_JTAC_EXPERT,
)

Expand Down
25 changes: 22 additions & 3 deletions code/game/objects/effects/landmarks/survivor_spawner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -142,25 +142,44 @@
/obj/effect/landmark/survivor_spawner/upp/soldier
equipment = /datum/equipment_preset/survivor/upp/soldier
synth_equipment = /datum/equipment_preset/synth/survivor/upp
spawn_priority = SPAWN_PRIORITY_MEDIUM
intro_text = list("<h2>You are a member of a UPP recon force!</h2>",\
"<span class='notice'>You ARE aware of the xenomorph threat.</span>",\
"<span class='danger'>Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons</span>")
story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?"
spawn_priority = SPAWN_PRIORITY_LOW

/obj/effect/landmark/survivor_spawner/upp_sapper
equipment = /datum/equipment_preset/survivor/upp/sapper
synth_equipment = /datum/equipment_preset/synth/survivor/upp
intro_text = list("<h2>You are a member of a UPP recon force!</h2>",\
"<span class='notice'>You ARE aware of the xenomorph threat.</span>",\
"<span class='danger'>Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons</span>")
story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?"
spawn_priority = SPAWN_PRIORITY_MEDIUM

/obj/effect/landmark/survivor_spawner/upp_medic
equipment = /datum/equipment_preset/survivor/upp/medic
synth_equipment = /datum/equipment_preset/synth/survivor/upp
spawn_priority = SPAWN_PRIORITY_HIGH
intro_text = list("<h2>You are a member of a UPP recon force!</h2>",\
"<span class='notice'>You ARE aware of the xenomorph threat.</span>",\
"<span class='danger'>Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons</span>")
story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?"
spawn_priority = SPAWN_PRIORITY_MEDIUM

/obj/effect/landmark/survivor_spawner/upp_specialist
equipment = /datum/equipment_preset/survivor/upp/specialist
synth_equipment = /datum/equipment_preset/synth/survivor/upp
intro_text = list("<h2>You are a member of a UPP recon force!</h2>",\
"<span class='notice'>You ARE aware of the xenomorph threat.</span>",\
"<span class='danger'>Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons</span>")
story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?"
spawn_priority = SPAWN_PRIORITY_HIGH

/obj/effect/landmark/survivor_spawner/squad_leader
equipment = /datum/equipment_preset/survivor/upp/squad_leader
synth_equipment = /datum/equipment_preset/synth/survivor/upp
intro_text = list("<h2>You are a member of a UPP recon force!</h2>",\
"<span class='notice'>You ARE aware of the xenomorph threat.</span>",\
"<span class='danger'>Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons</span>")
story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?"
spawn_priority = SPAWN_PRIORITY_VERY_HIGH

10 changes: 10 additions & 0 deletions code/game/objects/items/devices/radio/headset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1022,3 +1022,13 @@
initial_keys = list(/obj/item/device/encryptionkey/vc)
volume = RADIO_VOLUME_RAISED
multibroadcast_cooldown = HIGH_MULTIBROADCAST_COOLDOWN

/obj/item/device/radio/headset/distress/UPP/recon
name = "\improper UPP headset"
desc = "A special headset used by recon elements of the UPP military."
frequency = UPP_FREQ
initial_keys = list(/obj/item/device/encryptionkey/upp)
volume = RADIO_VOLUME_QUIET
ignore_z = FALSE
has_hud = TRUE
hud_type = MOB_HUD_FACTION_UPP
4 changes: 2 additions & 2 deletions code/modules/gear_presets/_select_equipment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -954,7 +954,7 @@ var/list/rebel_rifles = list(
/datum/equipment_preset/proc/add_upp_weapon(mob/living/carbon/human/new_human)
var/random_gun = rand(1,5)
switch(random_gun)
if(1,2)
if(1, 2)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/type71(new_human), WEAR_L_HAND)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/type71(new_human), WEAR_IN_BACK)
Expand All @@ -967,7 +967,7 @@ var/list/rebel_rifles = list(
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/heavy/buckshot(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/heavy/buckshot(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/heavy/buckshot(new_human), WEAR_IN_BACK)
if(4)
if(5)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/bizon(new_human), WEAR_L_HAND)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon(new_human), WEAR_IN_BACK)
Expand Down
18 changes: 12 additions & 6 deletions code/modules/gear_presets/survivors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1614,11 +1614,13 @@
new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK)
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/device/radio/headset/distress/UPP/recon(new_human), WEAR_L_EAR)

/datum/equipment_preset/survivor/upp/soldier
name = "Survivor - UPP Soldier"
paygrade = "UE2"
assignment = "UPP Soldier"
assignment = JOB_UPP
rank = JOB_UPP
skills = /datum/skills/military/survivor/upp_private

/datum/equipment_preset/survivor/upp/soldier/load_gear(mob/living/carbon/human/new_human)
Expand All @@ -1641,7 +1643,8 @@
/datum/equipment_preset/survivor/upp/sapper
name = "Survivor - UPP Sapper"
paygrade = "UE3S"
assignment = "UPP Sapper"
assignment = JOB_UPP_ENGI
rank = JOB_UPP_ENGI
skills = /datum/skills/military/survivor/upp_sapper

/datum/equipment_preset/survivor/upp/sapper/load_gear(mob/living/carbon/human/new_human)
Expand All @@ -1667,7 +1670,8 @@
/datum/equipment_preset/survivor/upp/medic
name = "Survivor - UPP Medic"
paygrade = "UE3M"
assignment = "UPP Medic"
assignment = JOB_UPP_MEDIC
rank = JOB_UPP_MEDIC
skills = /datum/skills/military/survivor/upp_medic

/datum/equipment_preset/survivor/upp/medic/load_gear(mob/living/carbon/human/new_human)
Expand All @@ -1694,8 +1698,9 @@

/datum/equipment_preset/survivor/upp/specialist
name = "Survivor - UPP Specialist"
assignment = JOB_UPP_SPECIALIST
rank = JOB_UPP_SPECIALIST
paygrade = "UE4"
assignment = "UPP Specialist"
skills = /datum/skills/military/survivor/upp_spec

/datum/equipment_preset/survivor/upp/specialist/load_gear(mob/living/carbon/human/new_human)
Expand All @@ -1714,14 +1719,15 @@
/datum/equipment_preset/survivor/upp/squad_leader
name = "Survivor - UPP Squad Leader"
paygrade = "UE5"
assignment = JOB_UPP_LEADER
rank = JOB_UPP_LEADER
languages = list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH, LANGUAGE_GERMAN, LANGUAGE_CHINESE)
assignment = "UPP Squad Leader"
role_comm_title = "UPP 173Rd RECON SL"
skills = /datum/skills/military/survivor/upp_sl

/datum/equipment_preset/survivor/upp/squad_leader/load_gear(mob/living/carbon/human/new_human)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/officer (new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/officer (new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP (new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot(new_human), WEAR_BACK)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/gear_presets/synths.dm
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@
flags = EQUIPMENT_PRESET_EXTRA
languages = ALL_SYNTH_LANGUAGES_UPP
assignment = JOB_UPP_COMBAT_SYNTH
rank = JOB_SURVIVOR
rank = JOB_UPP_COMBAT_SYNTH
faction = FACTION_UPP
faction_group = list(FACTION_UPP, FACTION_SURVIVOR)
skills = /datum/skills/colonial_synthetic
Expand All @@ -479,7 +479,7 @@
new_human.equip_to_slot_or_del(uniform, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/beret, WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver, WEAR_R_EAR)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress, WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/recon, WEAR_L_EAR)
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/roller, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_BACK)
Expand Down
7 changes: 7 additions & 0 deletions maps/Nightmare/maps/DesertDam/nightmare.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,12 @@
"chance": 1.0,
"path": "standalone/crashlanding-upp-bar.dmm",
"when": { "lvevent": "uppcrash" }
},
{
"type": "map_insert",
"landmark": "uppcrash-supply",
"chance": 1.0,
"path": "standalone/crashlanding-upp-alt1.dmm",
"when": { "lvevent": "uppcrash" }
}
]
10 changes: 9 additions & 1 deletion maps/map_files/DesertDam/Desert_Dam.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -60501,6 +60501,14 @@
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
/turf/open/floor/plating,
/area/desert_dam/exterior/valley/valley_crashsite)
"fcu" = (
/obj/effect/landmark/nightmare{
insert_tag = "uppcrash-supply"
},
/turf/open/asphalt{
icon_state = "tile"
},
/area/desert_dam/exterior/valley/valley_civilian)
"fcE" = (
/obj/structure/flora/bush/desert{
icon_state = "tree_3"
Expand Down Expand Up @@ -103519,7 +103527,7 @@ cCH
clZ
clZ
crW
cko
fcu
cmc
cpY
cpY
Expand Down
Loading

0 comments on commit bf648db

Please sign in to comment.