]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Updated remaining ghostroles for species loadouts (#29746)
authorErrant <35878406+Errant-4@users.noreply.github.com>
Wed, 7 Aug 2024 09:26:40 +0000 (11:26 +0200)
committerGitHub <noreply@github.com>
Wed, 7 Aug 2024 09:26:40 +0000 (19:26 +1000)
* LoadoutSystem change, deathsquad species loadout

* survival gear loadouts for disaster victims

* skrek

* centcom

* syndicate agent

* cburn

* ERT

* syndicates

* Is it ever gonna be enough?

* Take what you can

* Move startingGearEquippedEvent after Loadouts are spawned

* skreee

* even more formatting

* Unbreak auto internals activation

* undo AddAllRoleLoadouts change

* syndicate reinforcement survival loadouts

* re-enable vox ghostroles

Content.Shared/Clothing/Components/LoadoutComponent.cs
Resources/Prototypes/Entities/Mobs/Player/human.yml
Resources/Prototypes/Entities/Mobs/Player/humanoid.yml
Resources/Prototypes/Loadouts/Miscellaneous/survival.yml
Resources/Prototypes/Roles/Antags/traitor.yml
Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml
Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml

index 15d0d60af559b3a5a91af8b45bf2d6a1d427197f..58a46bab362e4a1279c2b888f8f305169adb689a 100644 (file)
@@ -9,10 +9,8 @@ namespace Content.Shared.Clothing.Components;
 public sealed partial class LoadoutComponent : Component
 {
     /// <summary>
-    /// A list of starting gears, of which one will be given.
+    /// A list of starting gears, of which one will be given, before RoleLoadouts are equipped.
     /// All elements are weighted the same in the list.
-    ///
-    /// If not specified, <see cref="RoleLoadout"/> will be used instead.
     /// </summary>
     [DataField("prototypes")]
     [AutoNetworkedField]
@@ -21,8 +19,6 @@ public sealed partial class LoadoutComponent : Component
     /// <summary>
     /// A list of role loadouts, of which one will be given.
     /// All elements are weighted the same in the list.
-    ///
-    /// If not specified, <see cref="StartingGear"/> will be used instead.
     /// </summary>
     [DataField]
     [AutoNetworkedField]
index e07ce9c5b45cd1e099da16d6b0326aff6b4727ec..4a7a48a0d5e962d448eac73b5534378210b91d48 100644 (file)
   name: syndicate agent
   suffix: Human, Base
   components:
-    - type: RandomHumanoidAppearance
-      randomizeName: false
-      hair: HairBald
-    - type: Loadout
-      prototypes: [SyndicateOperativeGearExtremelyBasic]
-    - type: RandomMetadata
-      nameSegments: [names_death_commando]
-    - type: NpcFactionMember
-      factions:
-      - Syndicate
+  - type: RandomHumanoidAppearance
+    randomizeName: false
+    hair: HairBald
+  - type: Loadout
+    prototypes: [SyndicateOperativeGearExtremelyBasic]
+    roleLoadout: [ RoleSurvivalSyndicate ]
+  - type: RandomMetadata
+    nameSegments: [names_death_commando]
+  - type: NpcFactionMember
+    factions:
+    - Syndicate
 
 - type: entity
   parent: MobHumanSyndicateAgentBase
   name: syndicate agent
   suffix: Human, Traitor
   components:
-    # make the player a traitor once its taken
-    - type: AutoTraitor
-      giveUplink: false
-      giveObjectives: false
+  # make the player a traitor once its taken
+  - type: AutoTraitor
+    giveUplink: false
+    giveObjectives: false
 
 - type: entity
   parent: MobHumanSyndicateAgent
@@ -40,6 +41,7 @@
   components:
   - type: Loadout
     prototypes: [SyndicateReinforcementMedic]
+    roleLoadout: [ RoleSurvivalSyndicate ]
 
 - type: entity
   parent: MobHumanSyndicateAgent
@@ -48,6 +50,7 @@
   components:
   - type: Loadout
     prototypes: [SyndicateReinforcementSpy]
+    roleLoadout: [ RoleSurvivalSyndicate ]
 
 - type: entity
   parent: MobHumanSyndicateAgent
   components:
   - type: Loadout
     prototypes: [SyndicateReinforcementThief]
+    roleLoadout: [ RoleSurvivalSyndicate ]
 
 - type: entity
   parent: MobHumanSyndicateAgentBase
   id: MobHumanSyndicateAgentNukeops # Reinforcement exclusive to nukeops uplink
   suffix: Human, NukeOps
   components:
-    - type: NukeOperative
-    - type: RandomMetadata
-      nameSegments:
-      - nukeops-role-operator
-      - SyndicateNamesNormal
-    - type: Loadout
-      prototypes: [SyndicateOperativeGearFullNoUplink]
+  - type: NukeOperative
+  - type: RandomMetadata
+    nameSegments:
+    - nukeops-role-operator
+    - SyndicateNamesNormal
+  - type: Loadout
+    prototypes: [SyndicateOperativeGearFullNoUplink]
 
 # Nuclear Operative
 - type: entity
@@ -77,8 +81,8 @@
   parent: MobHuman
   id: MobHumanNukeOp
   components:
-    - type: NukeOperative
-    - type: RandomHumanoidAppearance
+  - type: NukeOperative
+  - type: RandomHumanoidAppearance
 
 - type: entity
   categories: [ HideSpawnMenu ]
   id: MobHumanLoneNuclearOperative
   name: Lone Operative
   components:
-    - type: RandomHumanoidAppearance
-      randomizeName: false
-    - type: NukeOperative
-    - type: Loadout
-      prototypes: [SyndicateLoneOperativeGearFull]
-    - type: RandomMetadata
-      nameSegments:
-      - SyndicateNamesPrefix
-      - SyndicateNamesNormal
-    - type: NpcFactionMember
-      factions:
-      - Syndicate
+  - type: RandomHumanoidAppearance
+    randomizeName: false
+  - type: NukeOperative
+  - type: Loadout
+    prototypes: [SyndicateLoneOperativeGearFull]
+    roleLoadout: [ RoleSurvivalSyndicate ]
+  - type: RandomMetadata
+    nameSegments:
+    - SyndicateNamesPrefix
+    - SyndicateNamesNormal
+  - type: NpcFactionMember
+    factions:
+    - Syndicate
index 47baca61347b37716b42f46295ae5264f06fbac7..574f31dff3f7241ed86440c1d14e3519a697e88c 100644 (file)
@@ -44,6 +44,7 @@
         settings: short
     - type: Loadout
       prototypes: [ DeathSquadGear ]
+      roleLoadout: [ RoleSurvivalEVA ]
     - type: RandomMetadata
       nameSegments:
         - NamesFirstMilitaryLeader
@@ -80,6 +81,7 @@
         settings: short
     - type: Loadout
       prototypes: [ ERTLeaderGear ]
+      roleLoadout: [ RoleSurvivalExtended ]
     - type: RandomMetadata
       nameSegments:
       - NamesFirstMilitaryLeader
         settings: short
     - type: Loadout
       prototypes: [ ERTLeaderGearEVA ]
+      roleLoadout: [ RoleSurvivalEVA ]
 
 - type: entity
   id: RandomHumanoidSpawnerERTLeaderEVALecter
         settings: short
     - type: Loadout
       prototypes: [ ERTLeaderGearEVALecter ]
+      roleLoadout: [ RoleSurvivalEVA ]
 
 ## ERT Chaplain
 
       - NamesLastMilitary
     - type: Loadout
       prototypes: [ ERTChaplainGear ]
+      roleLoadout: [ RoleSurvivalExtended ]
 
 - type: entity
   id: RandomHumanoidSpawnerERTChaplainEVA
         settings: short
     - type: Loadout
       prototypes: [ ERTChaplainGearEVA ]
+      roleLoadout: [ RoleSurvivalEVA ]
 
 ## ERT Janitor
 
       - NamesLastMilitary
     - type: Loadout
       prototypes: [ ERTJanitorGear ]
+      roleLoadout: [ RoleSurvivalExtended ]
 
 - type: entity
   id: RandomHumanoidSpawnerERTJanitorEVA
         settings: short
     - type: Loadout
       prototypes: [ ERTJanitorGearEVA ]
+      roleLoadout: [ RoleSurvivalEVA ]
 
 ## ERT Engineer
 
       - NamesLastMilitary
     - type: Loadout
       prototypes: [ ERTEngineerGear ]
+      roleLoadout: [ RoleSurvivalExtended ]
 
 - type: entity
   id: RandomHumanoidSpawnerERTEngineerEVA
         settings: short
     - type: Loadout
       prototypes: [ ERTEngineerGearEVA ]
+      roleLoadout: [ RoleSurvivalEVA ]
 
 ## ERT Security
 
       - NamesLastMilitary
     - type: Loadout
       prototypes: [ ERTSecurityGear ]
+      roleLoadout: [ RoleSurvivalExtended ]
 
 - type: entity
   id: RandomHumanoidSpawnerERTSecurityEVA
         settings: short
     - type: Loadout
       prototypes: [ ERTSecurityGearEVA ]
+      roleLoadout: [ RoleSurvivalEVA ]
 
 - type: entity
   id: RandomHumanoidSpawnerERTSecurityEVALecter
         settings: short
     - type: Loadout
       prototypes: [ ERTSecurityGearEVALecter ]
+      roleLoadout: [ RoleSurvivalEVA ]
 
 ## ERT Medic
 
       - NamesLastMilitary
     - type: Loadout
       prototypes: [ ERTMedicalGear ]
+      roleLoadout: [ RoleSurvivalExtended ]
 
 - type: entity
   id: RandomHumanoidSpawnerERTMedicalEVA
         settings: short
     - type: Loadout
       prototypes: [ ERTMedicalGearEVA ]
+      roleLoadout: [ RoleSurvivalEVA ]
 
 ## CBURN
 
   components:
     - type: Loadout
       prototypes: [CBURNGear]
+      roleLoadout: [ RoleSurvivalEVA ]
     - type: GhostRole
       name: ghost-role-information-cburn-agent-name
       description: ghost-role-information-cburn-agent-description
         settings: default
     - type: Loadout
       prototypes: [ CentcomGear ]
+      roleLoadout: [ RoleSurvivalStandard ]
 
 ## Syndicate
 
       randomizeName: false
     - type: Loadout
       prototypes: [SyndicateOperativeGearExtremelyBasic]
+      roleLoadout: [ RoleSurvivalSyndicate ]
 
 - type: entity
   id: RandomHumanoidSpawnerNukeOp
 - type: randomHumanoidSettings
   id: LostCargoTechnician
   parent: EventHumanoid
-  speciesBlacklist:
-  - Vox
   components:
     - type: GhostRole
       name: ghost-role-information-lost-cargo-technical-name
         settings: short
     - type: Loadout
       prototypes: [ LostCargoTechGearSuit, LostCargoTechGearCoat ]
+      roleLoadout: [ RoleSurvivalStandard ]
+
 
 # Clown troupe
 
   id: ClownTroupe
   parent: EventHumanoid
   randomizeName: false
-  speciesBlacklist:
-  - Vox
   components:
     - type: GhostRole
       name: ghost-role-information-clown-troupe-name
         settings: short
     - type: Loadout
       prototypes: [ ClownTroupe ]
+      roleLoadout: [ RoleSurvivalStandard ]
     - type: RandomMetadata
       nameSegments:
       - names_clown
   components:
     - type: Loadout
       prototypes: [ BananaClown ]
+      roleLoadout: [ RoleSurvivalStandard ]
 
 # Traveling exotic chef
 
 - type: randomHumanoidSettings
   id: TravelingChef
   parent: EventHumanoid
-  speciesBlacklist:
-  - Vox
   components:
     - type: GhostRole
       name: ghost-role-information-traveling-chef-name
         settings: short
     - type: Loadout
       prototypes: [ TravelingChef ]
+      roleLoadout: [ RoleSurvivalStandard ]
 
 # Disaster victim
 
 - type: randomHumanoidSettings
   id: DisasterVictimHead
   parent: EventHumanoidMindShielded
-  speciesBlacklist:
-  - Vox
   components:
     - type: GhostRole
       name: ghost-role-information-disaster-victim-name
   components:
     - type: Loadout
       prototypes: [ DisasterVictimRD, DisasterVictimRDAlt ]
+      roleLoadout: [ RoleSurvivalStandard ]
 
 - type: randomHumanoidSettings
   id: DisasterVictimCMO
   components:
     - type: Loadout
       prototypes: [ DisasterVictimCMO, DisasterVictimCMOAlt ]
+      roleLoadout: [ RoleSurvivalMedical ]
 
 - type: randomHumanoidSettings
   id: DisasterVictimCaptain
   components:
     - type: Loadout
       prototypes: [ DisasterVictimCaptain, DisasterVictimCaptainAlt ]
+      roleLoadout: [ RoleSurvivalStandard ]
 
 # Syndie Disaster Victim
 
 - type: randomHumanoidSettings
   id: SyndieDisasterVictim
   parent: EventHumanoid
-  speciesBlacklist:
-  - Vox
   components:
     - type: NpcFactionMember
       factions:
         settings: short
     - type: Loadout
       prototypes: [ SyndicateOperativeGearCivilian ]
+      roleLoadout: [ RoleSurvivalStandard ]
index 001e8a188efb260c20b003ae14e89f05d53c5cbb..2716310ecfbbb1f0fb1be73131243550b02d5d19 100644 (file)
   equipment:
     outerClothing: ClothingOuterVestTank
 
-# Breaths Tool On Face
+# Breath Tool On Face
 - type: loadout
   id: LoadoutSpeciesBreathTool
   effects:
index cb2fd4b13e53b68451c8791916d222286e6196e6..51c61e74c6d85515871c4f251f864a8784d162cf 100644 (file)
@@ -31,7 +31,6 @@
     gloves: ClothingHandsGlovesColorBlack
   storage:
     back:
-    - BoxSurvivalSyndicate
     - WeaponPistolViper
     - PinpointerSyndicateNuclear
     - DeathAcidifierImplanter
@@ -51,9 +50,6 @@
     pocket1: WeaponPistolViper
   inhand:
     - MedkitCombatFilled
-  storage:
-    back:
-    - BoxSurvivalSyndicate
 
 - type: startingGear
   id: SyndicateReinforcementSpy
@@ -62,9 +58,6 @@
     id: AgentIDCard
     mask: ClothingMaskGasVoiceChameleon
     pocket1: WeaponPistolViper
-  storage:
-    back:
-    - BoxSurvivalSyndicate
 
 - type: startingGear
   id: SyndicateReinforcementThief
@@ -75,7 +68,6 @@
     - ToolboxSyndicateFilled
   storage:
     back:
-    - BoxSurvivalSyndicate
     - SyndicateJawsOfLife
 
 #Syndicate Operative Outfit - Basic
index 011ac8812bacd598e19938a35755e9b92b4a727a..211a23479078d55dda6738b2aabf3967f061dc17 100644 (file)
@@ -31,7 +31,6 @@
     pocket2: FlashlightSeclite
   storage:
     back:
-    - BoxSurvivalEngineering
     - WeaponDisabler
     - MedicatedSuture
     - RegenerativeMesh
@@ -49,7 +48,6 @@
     eyes: ClothingEyesGlassesSecurity
     gloves: ClothingHandsGlovesCombat
     outerClothing: ClothingOuterHardsuitERTLeader
-    suitstorage: AirTankFilled
     id: ERTLeaderPDA
     ears: ClothingHeadsetAltCentCom
     belt: ClothingBeltSecurityFilled
@@ -57,7 +55,6 @@
     pocket2: FlashlightSeclite
   storage:
     back:
-    - BoxSurvivalEngineering
     - WeaponDisabler
     - MedicatedSuture
     - RegenerativeMesh
     eyes: ClothingEyesGlassesSecurity
     gloves: ClothingHandsGlovesCombat
     outerClothing: ClothingOuterHardsuitERTLeader
-    suitstorage: WeaponRifleLecter
     id: ERTLeaderPDA
     ears: ClothingHeadsetAltCentCom
     belt: ClothingBeltSecurityFilled
     pocket1: MagazineRifle
     pocket2: MagazineRifle
   inhand:
-    - AirTankFilled
+  - WeaponRifleLecter
   storage:
     back:
-    - BoxSurvivalEngineering
     - WeaponDisabler
     - MedicatedSuture
     - RegenerativeMesh
     pocket2: DrinkWaterBottleFull
   storage:
     back:
-    - BoxSurvivalEngineering
     - BoxCandle
     - BoxBodyBag
     - DrinkWaterMelonJuiceJug
     neck: ClothingNeckStoleChaplain
     gloves: ClothingHandsGlovesCombat
     outerClothing: ClothingOuterHardsuitERTChaplain
-    suitstorage: AirTankFilled
     id: ERTChaplainPDA
     ears: ClothingHeadsetAltCentCom
     belt: ClothingBeltStorageWaistbag
     pocket2: DrinkWaterBottleFull
   storage:
     back:
-    - BoxSurvivalEngineering
     - BoxCandle
     - BoxBodyBag
     - DrinkWaterMelonJuiceJug
     pocket2: GasAnalyzer
   storage:
     back:
-    - BoxSurvivalEngineering
     - trayScanner
     - RCD
     - RCDAmmo
     eyes: ClothingEyesGlassesMeson
     gloves: ClothingHandsGlovesCombat
     outerClothing: ClothingOuterHardsuitERTEngineer
-    suitstorage: AirTankFilled
     id: ERTEngineerPDA
     ears: ClothingHeadsetAltCentCom
     belt: ClothingBeltChiefEngineerFilled
     pocket2: GasAnalyzer
   storage:
     back:
-    - BoxSurvivalEngineering
     - trayScanner
     - RCD
     - RCDAmmo
     pocket2: FlashlightSeclite
   storage:
     back:
-    - BoxSurvivalEngineering
     - WeaponDisabler
     - MedicatedSuture
     - RegenerativeMesh
     eyes: ClothingEyesGlassesSecurity
     gloves: ClothingHandsGlovesCombat
     outerClothing: ClothingOuterHardsuitERTSecurity
-    suitstorage: AirTankFilled
     id: ERTSecurityPDA
     ears: ClothingHeadsetAltCentCom
     belt: ClothingBeltSecurityFilled
     pocket2: FlashlightSeclite
   storage:
     back:
-    - BoxSurvivalEngineering
     - WeaponDisabler
     - MedicatedSuture
     - RegenerativeMesh
     eyes: ClothingEyesGlassesSecurity
     gloves: ClothingHandsGlovesCombat
     outerClothing: ClothingOuterHardsuitERTSecurity
-    suitstorage: WeaponRifleLecter
     id: ERTSecurityPDA
     ears: ClothingHeadsetAltCentCom
     belt: ClothingBeltSecurityFilled
     pocket1: MagazineRifle
     pocket2: MagazineRifle
   inhand:
-    - AirTankFilled
+    - WeaponRifleLecter
   storage:
     back:
-    - BoxSurvivalEngineering
     - WeaponDisabler
     - MedicatedSuture
     - RegenerativeMesh
     pocket1: Flare
   storage:
     back:
-    - BoxSurvivalMedical # Is this actually supposed to be Medical? All other ERT has Extended
     - Hypospray
     - MedkitAdvancedFilled
     - CrowbarRed
     eyes: ClothingEyesHudMedical
     gloves: ClothingHandsGlovesNitrile
     outerClothing: ClothingOuterHardsuitERTMedical
-    suitstorage: AirTankFilled
     id: ERTMedicPDA
     ears: ClothingHeadsetAltCentCom
     belt: ClothingBeltMedicalFilled
     pocket1: Flare
   storage:
     back:
-    - BoxSurvivalMedical # Is this actually supposed to be Medical? All other ERT has Extended
     - Hypospray
     - MedkitAdvancedFilled
     - CrowbarRed
     pocket1: Flare
   storage:
     back:
-    - BoxSurvivalEngineering
     - LightReplacer
     - BoxLightMixed
     - BoxLightMixed
     mask: ClothingMaskGasERT
     gloves: ClothingHandsGlovesColorPurple
     outerClothing: ClothingOuterHardsuitERTJanitor
-    suitstorage: AirTankFilled
     id: ERTJanitorPDA
     ears: ClothingHeadsetAltCentCom
     belt: ClothingBeltJanitorFilled
     pocket1: Flare
   storage:
     back:
-    - BoxSurvivalEngineering
     - LightReplacer
     - BoxLightMixed
     - BoxLightMixed
index e12bee8c79e0f55fa1e93c8b72ce581c862cf99f..f2291e492eedf7bd2788c335ff2fe077a6f77fb7 100644 (file)
@@ -28,7 +28,6 @@
     ears: ClothingHeadsetAltCentCom
     gloves: ClothingHandsGlovesCombat
     outerClothing: ClothingOuterHardsuitDeathsquad
-    suitstorage: AirTankFilled
     shoes: ClothingShoesBootsMagAdv
     id: DeathsquadPDA
     pocket1: EnergySword
@@ -36,8 +35,6 @@
     belt: ClothingBeltMilitaryWebbingMedFilled
   storage:
     back:
-    - BoxSurvivalEngineering
-    - WeaponPulseRifle
     - WeaponPulsePistol
     - WeaponRevolverMateba
     - SpeedLoaderMagnumAP
@@ -48,6 +45,8 @@
     - Hypospray
     - DeathAcidifierImplanter # crew will try to steal their amazing hardsuits
     - FreedomImplanter
+  inhand:
+  - WeaponPulseRifle
 
 # Syndicate Operative Outfit - Civilian
 - type: startingGear
     id: CBURNPDA
     pocket1: RadioHandheld
     pocket2: WeaponLaserGun
-    suitstorage: OxygenTankFilled
     belt: ClothingBeltBandolier
   storage:
     back:
-    - BoxSurvivalEngineering
     - WeaponShotgunDoubleBarreled
     - BoxShotgunIncendiary
     - GrenadeFlashBang