Forráskód Böngészése

Cold war (#220)

* Update base_clothing.yml again

* Lowered base_item.yml to 100g

* yes

* Update ShowFactionIconsComponent.cs

* sovietCW

* changes sovietcw

* Update usa.yml

* Update Resources/Prototypes/Roles/Jobs/Civ14/TDM/sovietCW.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Resources/Prototypes/Roles/Jobs/Civ14/TDM/sovietCW.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update sovietCW.yml

* Update sovietCW.yml

---------

Co-authored-by: 123 <123>
Co-authored-by: Taislin <cariosecus@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Papiditel 6 hónapja
szülő
commit
4639adf363

+ 20 - 0
Content.Client/Overlays/ShowFactionIconsSystem.cs

@@ -111,4 +111,24 @@ private void OnGetStatusIconsEvent(EntityUid uid, ShowSovietFactionIconsComponen
             ev.StatusIcons.Add(iconPrototype);
     }
 }
+public sealed class ShowUsFactionIconsSystem : EquipmentHudSystem<ShowUsFactionIconsComponent>
+{
+    [Dependency] private readonly IPrototypeManager _prototype = default!;
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        SubscribeLocalEvent<ShowUsFactionIconsComponent, GetStatusIconsEvent>(OnGetStatusIconsEvent);
+
+    }
+
+    private void OnGetStatusIconsEvent(EntityUid uid, ShowUsFactionIconsComponent component, ref GetStatusIconsEvent ev)
+    {
+        if (!IsActive)
+            return;
+
+        if (_prototype.TryIndex<FactionIconPrototype>(component.FactionIcon, out var iconPrototype))
+            ev.StatusIcons.Add(iconPrototype);
+    }
+}
 

+ 1 - 0
Content.Shared/Inventory/InventorySystem.Relay.cs

@@ -71,6 +71,7 @@ public void InitializeRelay()
         SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowEnglishFactionIconsComponent>>(RefRelayInventoryEvent);
         SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowGermanFactionIconsComponent>>(RefRelayInventoryEvent);
         SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowSovietFactionIconsComponent>>(RefRelayInventoryEvent);
+        SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowUsFactionIconsComponent>>(RefRelayInventoryEvent);
 
         SubscribeLocalEvent<InventoryComponent, GetVerbsEvent<EquipmentVerb>>(OnGetEquipmentVerbs);
     }

+ 10 - 0
Content.Shared/Overlays/ShowFactionIconsComponent.cs

@@ -57,3 +57,13 @@ public sealed partial class ShowSovietFactionIconsComponent : Component
     [DataField("factionIcon", customTypeSerializer: typeof(PrototypeIdSerializer<FactionIconPrototype>))]
     public string FactionIcon = "SovietFaction";
 }
+[RegisterComponent, NetworkedComponent]
+public sealed partial class ShowUsFactionIconsComponent : Component
+{
+
+    /// <summary>
+    /// The faction icon to display
+    /// </summary>
+    [DataField("factionIcon", customTypeSerializer: typeof(PrototypeIdSerializer<FactionIconPrototype>))]
+    public string FactionIcon = "UsFaction";
+}

+ 13 - 1
Resources/Locale/en-US/Civ14/jobs-descriptions.ftl

@@ -27,4 +27,16 @@ job-description-civ-soviet-sgt = You are the right hand of your captain. Direct
 job-description-civ-soviet-submachinegunner = You are a submachinegunner. Use your gun's fast firerate to quickly advance into the enemy lines!
 job-description-civ-soviet-rifleman = You are a rifleman, the soviet standard of the army. For the Motherland!
 job-description-civ-soviet-machinegunner = You are a machinegunner. Use your superior firepower to suppress enemies at a distance!
-job-description-civ-soviet-medic = As a field surgeon, keep your troops alive!
+job-description-civ-soviet-medic = As a field surgeon, keep your troops alive!
+
+job-description-civ-us-cpt = You are the highest ranking in your faction. Lead your men to victory!
+job-description-civ-us-sgt = You are the right hand of your captain. Direct troops and order artillery strikes on the enemy while answering to the Kapitan!
+job-description-civ-us-rifleman = You are a rifleman, the US standard of the army.
+job-description-civ-us-machinegunner = You are a machinegunner. Use your superior firepower to suppress enemies at a distance!
+job-description-civ-us-medic = As a field surgeon, keep your troops alive!
+
+job-description-civ-sovietcw-cpt = You are the highest ranking in your faction. Lead your men to victory!
+job-description-civ-sovietcw-sgt = You are the right hand of your captain. Direct troops and order artillery strikes on the enemy while answering to the Kapitan!
+job-description-civ-sovietcw-rifleman = You are a rifleman, the soviet standard of the army. For the Motherland!
+job-description-civ-sovietcw-machinegunner = You are a machinegunner. Use your superior firepower to suppress enemies at a distance!
+job-description-civ-sovietcw-medic = As a field surgeon, keep your troops alive!

+ 13 - 0
Resources/Locale/en-US/Civ14/jobs.ftl

@@ -52,3 +52,16 @@ job-name-civ-soviet-submachinegunner = SMG
 job-name-civ-soviet-rifleman = Infantry
 job-name-civ-soviet-machinegunner = LMG
 job-name-civ-soviet-medic = Medic
+
+job-name-civ-us-cpt = Leader
+job-name-civ-us-sgt = Sergeant
+job-name-civ-us-rifleman = Infantry
+job-name-civ-us-machinegunner = LMG
+job-name-civ-us-medic = Medic
+
+job-name-civ-sovietcw-cpt = Leader
+job-name-civ-sovietcw-sgt = Sergeant
+job-name-civ-sovietcw-submachinegunner = SMG
+job-name-civ-sovietcw-rifleman = Infantry
+job-name-civ-sovietcw-machinegunner = LMG
+job-name-civ-sovietcw-medic = Medic

+ 2 - 0
Resources/Locale/en-US/job/department-desc.ftl

@@ -14,3 +14,5 @@ department-French-description = The French are one of the factions present in th
 department-English-description = The English are one of the factions present in this map.
 department-German-description = The German are one of the factions present in this map.
 department-Soviet-description = The Soviet are one of the factions present in this map.
+department-US-description = The US are one of the factions present in this map.
+department-SovietCW-description = The Soviet Union are one of the factions present in this map.

+ 2 - 0
Resources/Locale/en-US/job/department.ftl

@@ -14,3 +14,5 @@ department-French = France
 department-English = England
 department-German = Germany
 department-Soviet = Soviet Union
+department-US = United States
+department-SovietCW = Soviet Union.

+ 64 - 0
Resources/Prototypes/Civ14/Entities/Markers/grace_wall.yml

@@ -91,3 +91,67 @@
             - LowImpassable
             - MidImpassable
             - HighImpassable
+
+- type: entity
+  name: grace wall US
+  id: MarkerGracewallUS
+  parent: MarkerBase
+  components:
+    - type: Sprite
+      sprite: Civ14/Markers/areas.rsi
+      state: gracewall
+    - type: GracewallArea # Use the new component
+      gracewallActive: true
+      gracewallRadius: 1.5
+      blockingFactions: [US]
+      permanent: true
+    - type: Physics
+      bodyType: Static
+    - type: Fixtures
+      fixtures:
+        gracewall: # Define a fixture for the area
+          shape: !type:PhysShapeAabb
+            bounds: "-0.2, -1.5, 0.2, 1.5"
+          # Collision layer/mask will be managed by the GracewallRuleSystem
+          density: 100
+          hard: true
+          mask:
+            - LowImpassable
+            - MidImpassable
+            - HighImpassable
+          layer:
+            - LowImpassable
+            - MidImpassable
+            - HighImpassable
+
+- type: entity
+  name: grace wall sovietCW
+  id: MarkerGracewallSovietCW
+  parent: MarkerBase
+  components:
+    - type: Sprite
+      sprite: Civ14/Markers/areas.rsi
+      state: gracewall
+    - type: GracewallArea # Use the new component
+      gracewallActive: true
+      gracewallRadius: 1.5
+      blockingFactions: [SovietCW]
+      permanent: true
+    - type: Physics
+      bodyType: Static
+    - type: Fixtures
+      fixtures:
+        gracewall: # Define a fixture for the area
+          shape: !type:PhysShapeAabb
+            bounds: "-0.2, -1.5, 0.2, 1.5"
+          # Collision layer/mask will be managed by the GracewallRuleSystem
+          density: 100
+          hard: true
+          mask:
+            - LowImpassable
+            - MidImpassable
+            - HighImpassable
+          layer:
+            - LowImpassable
+            - MidImpassable
+            - HighImpassable

+ 27 - 1
Resources/Prototypes/Civ14/Entities/Markers/jobs.yml

@@ -63,4 +63,30 @@
     - type: Sprite
       sprite: Markers/cross.rsi
       layers:
-        - state: pink     
+        - state: pink
+- type: entity
+  id: SpawnPointUS
+  parent: SpawnPointJobBase
+  name: us spawner
+  suffix: faction spawn
+  components:
+    - type: SpawnPoint
+      faction: US
+      spawn_type: Faction
+    - type: Sprite
+      sprite: Markers/cross.rsi
+      layers:
+        - state: blue
+- type: entity
+  id: SpawnPointSovietCW
+  parent: SpawnPointJobBase
+  name: sovietcw spawner
+  suffix: faction spawn
+  components:
+    - type: SpawnPoint
+      faction: SovietCW
+      spawn_type: Faction
+    - type: Sprite
+      sprite: Markers/cross.rsi
+      layers:
+        - state: pink         

+ 9 - 2
Resources/Prototypes/Civ14/StatusIcon/faction.yml

@@ -191,6 +191,7 @@
       - ShowFrenchFactionIcons
       - ShowGermanFactionIcons
       - ShowSovietFactionIcons
+      - ShowUsFactionIcons
   icon:
     sprite: /Textures/Interface/Misc/civ_hud_countries.rsi
     state: ger2_basic
@@ -516,7 +517,7 @@
 
 - type: factionIcon
   id: SovietFaction
-  priority: 1
+  priority: 0
   showTo:
     components:
       - ShowAntagIcons
@@ -525,6 +526,7 @@
       - ShowFrenchFactionIcons
       - ShowGermanFactionIcons
       - ShowSovietFactionIcons
+      - ShowUsFactionIcons
   icon:
     sprite: /Textures/Interface/Misc/civ_hud_countries.rsi
     state: sov_basic
@@ -641,11 +643,16 @@
 
 - type: factionIcon
   id: UsFaction
-  priority: 1
+  priority: 0
   showTo:
     components:
       - ShowAntagIcons
       - ShowFactionIcons
+      - ShowEnglishFactionIcons
+      - ShowFrenchFactionIcons
+      - ShowGermanFactionIcons
+      - ShowSovietFactionIcons
+      - ShowUsFactionIcons
   icon:
     sprite: /Textures/Interface/Misc/civ_hud_countries.rsi
     state: us_basic

+ 1 - 0
Resources/Prototypes/Entities/Stations/nanotrasen.yml

@@ -32,3 +32,4 @@
         - England
         - Soviet
         - Germany
+        - US

+ 223 - 0
Resources/Prototypes/Roles/Jobs/Civ14/TDM/sovietCW.yml

@@ -0,0 +1,223 @@
+- type: job
+  id: SovietCWCaptain
+  name: job-name-civ-sovietcw-cpt
+  faction: SovietCW
+  originalName: Kapitan
+  description: job-description-civ-sovietcw-cpt
+  playTimeTracker: JobSovietCWCaptain
+  requirements:
+    - !type:OverallPlaytimeRequirement
+      time: 10800 #3 hrs
+  startingGear: SovietCWCaptainGear
+  icon: "JobIconICpt"
+  supervisors: job-supervisors-nobody
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - SovietCW
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietCWCaptain
+
+- type: startingGear
+  id: SovietCWCaptainGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_officer_uniform
+    outerClothing: civ13_suit_Soviet_officer_coat
+    belt: civ13_pistol_Makarov_PM
+    pocket2: civ13_magazine_PM_Makarov_magazine_(9x18mm)
+    head: civ13_head_soviet_officer_cap
+    pocket1: FlashlightLanternMilitary
+
+# Sergeant
+
+- type: job
+  id: SovietCWSergeant
+  originalName: Serzhant
+  name: job-name-civ-sovietcw-sgt
+  faction: SovietCW
+  description: job-description-civ-sovietcw-sgt
+  playTimeTracker: JobSovietCWSergeant
+  requirements:
+    - !type:OverallPlaytimeRequirement
+      time: 5400 #1.5 hrs
+  startingGear: SovietCWSergeantGear
+  icon: "JobIconISgt"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - SovietCW
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietCWSergeant
+
+- type: startingGear
+  id: SovietCWSergeantGear
+  equipment:
+    shoes: civ13_shoes_leather_shoes_1
+    jumpsuit: civ13_uniform_Soviet_uniform
+    #outerClothing: civ13_suit_Soviet_coat
+    head: civ13_head_soviet_pilotka
+    belt: civ13_pistol_Makarov_PM
+    pocket1: civ13_magazine_PM_Makarov_magazine_(9x18mm)
+    pocket2: FlashlightLanternMilitary
+  inhand:
+    - civ13_ar_AK_74
+
+# Assault Rifleman
+
+- type: job
+  id: SovietCWRifleman
+  name: job-name-civ-sovietcw-rifleman
+  faction: SovietCW
+  originalName: Strelok
+  description: job-description-civ-sovietcw-rifleman
+  playTimeTracker: JobSovietCWRifleman
+  startingGear: SovietCWRiflemanGear
+  randomStartingGears: [SovietCWRiflemanGear, SovietCWRiflemanGear2]
+  icon: "JobIconICpl"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - SovietCW
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietCWRifleman
+
+- type: startingGear
+  id: SovietCWRiflemanGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    #outerClothing: civ13_suit_Soviet_coat_1
+    head: civ13_head_soviet_helmet
+#    belt: ClothingWebbingRussianRifleman
+    pocket1: FlashlightLanternMilitary
+    pocket2: Gauze
+  inhand:
+    - civ13_ar_AK_74
+
+- type: startingGear
+  id: SovietCWRiflemanGear2
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_amoeba_outfit
+    gloves: ClothingHandsGlovesFingerless
+#    belt: ClothingWebbingRussianRifleman
+#    outerClothing: civ13_suit_Soviet_coat
+    head: civ13_head_soviet_helmet
+    pocket1: FlashlightLanternMilitary
+    pocket2: Gauze
+  inhand:
+    - civ13_ar_AK_74
+
+# Machinegunner
+
+- type: job
+  id: SovietCWMachinegunner
+  name: job-name-civ-sovietcw-machinegunner
+  faction: SovietCW
+  originalName: Pulemyotchik
+  description: job-description-civ-sovietcw-machinegunner
+  playTimeTracker: JobSovietCWMachinegunner
+  startingGear: SovietCWMachinegunnerGear
+  randomStartingGears: [SovietCWMachinegunnerGear, SovietCWMachinegunnerGear2]
+  icon: "JobIconMg"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - SovietCW
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietCWMachinegunner
+
+- type: startingGear
+  id: SovietCWMachinegunnerGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    gloves: ClothingHandsGlovesFingerless
+#    belt: ClothingWebbingSovietMG
+    #outerClothing: civ13_suit_Soviet_coat
+    head: civ13_head_soviet_helmet
+    pocket1: CombatKnife
+    pocket2: Gauze
+  inhand:
+    - civ13_mg_RPD_machine_gun
+
+- type: startingGear
+  id: SovietCWMachinegunnerGear2
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_amoeba_outfit
+    gloves: ClothingHandsGlovesFingerless
+#    belt: ClothingWebbingSovietMG
+#    outerClothing: civ13_suit_Soviet_coat_1
+    head: civ13_head_soviet_ushanka_1
+    pocket1: CombatKnife
+    pocket2: Gauze
+  inhand:
+    - civ13_mg_RPD_machine_gun
+
+# Medic
+
+- type: job
+  id: SovietCWMedic
+  name: job-name-civ-sovietcw-medic
+  faction: SovietCW
+  originalName: Vrach
+  description: job-description-civ-sovietcw-medic
+  playTimeTracker: JobSovietCWMedic
+  startingGear: SovietCWMedicGear
+  icon: "JobIconMedic"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - SovietCW
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietCWMedic
+
+- type: startingGear
+  id: SovietCWMedicGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    #outerClothing: civ13_suit_Soviet_coat_1
+    head: civ13_head_soviet_medical_helmet
+    belt: ClothingSatchelMedicalMedsFilled
+    back: ClothingBackpackDuffelFilled
+    pocket1: FlashlightLanternMilitary
+    pocket2: civ13_magazine_AK_74_magazine_(5.45x39mm)
+  inhand:
+    - civ13_ar_AK_74

+ 205 - 0
Resources/Prototypes/Roles/Jobs/Civ14/TDM/usa.yml

@@ -0,0 +1,205 @@
+- type: job
+  id: USCaptain
+  name: job-name-civ-us-cpt
+  faction: US
+  originalName: Captain
+  description: job-description-civ-us-cpt
+  playTimeTracker: JobUSCaptain
+  requirements:
+    - !type:OverallPlaytimeRequirement
+      time: 10800 #3 hrs
+  startingGear: USCaptainGear
+  icon: "JobIconICpt"
+  supervisors: job-supervisors-nobody
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: NpcFactionMember
+          factions:
+            - US
+        - type: ShowUsFactionIcons
+          factionIcon: UsFaction
+
+- type: playTimeTracker
+  id: JobUSCaptain
+
+- type: startingGear
+  id: USCaptainGear
+  equipment:
+    shoes: civ13_shoes_jackboots
+    jumpsuit: civ13_uniform_American_captain_uniform
+    head: civ13_head_M1_Captain_Helmet
+    belt: civ13_pistol_M1911A1
+    pocket1: civ13_magazine_M1911_magazine_(.45)
+
+# Sergeant
+
+- type: job
+  id: USSergeant
+  originalName: Sergeant
+  name: job-name-civ-us-sgt
+  faction: US
+  description: job-description-civ-us-sergeant
+  playTimeTracker: JobUSSergeant
+  requirements:
+    - !type:OverallPlaytimeRequirement
+      time: 5400 #1.5 hrs
+  startingGear: USSergeantGear
+  icon: "JobIconISgt"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: NpcFactionMember
+          factions:
+            - US
+        - type: ShowUsFactionIcons
+          factionIcon: UsFaction
+
+- type: playTimeTracker
+  id: JobUSSergeant
+
+- type: startingGear
+  id: USSergeantGear
+  equipment:
+    shoes: civ13_shoes_jackboots
+    jumpsuit: civ13_uniform_US_Army_Officer_Uniform
+    head: civ13_head_M1_1st_LT_Helmet
+    belt: civ13_pistol_M1911A1
+    pocket1: civ13_magazine_M1911_magazine_(.45)
+  inhand:
+    - civ13_ar_M16A2
+
+# Assault Rifleman
+
+- type: job
+  id: USRifleman
+  name: job-name-civ-us-rifleman
+  faction: US
+  originalName: Rifleman
+  description: job-description-civ-us-rifleman
+  playTimeTracker: JobUSRifleman
+  startingGear: USRiflemanGear
+  randomStartingGears: [USRiflemanGear, USRiflemanGear2]
+  icon: "JobIconICpl"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: NpcFactionMember
+          factions:
+            - US
+        - type: ShowUsFactionIcons
+          factionIcon: UsFaction
+
+- type: playTimeTracker
+  id: JobUSRifleman
+
+- type: startingGear
+  id: USRiflemanGear
+  equipment:
+    shoes: civ13_shoes_jackboots
+    jumpsuit: civ13_uniform_American_uniform
+    head: civ13_head_M1_Helmet
+#    belt: ClothingWebbingGermanRifleman
+    pocket1: Gauze
+    pocket2: Gauze
+  inhand:
+    - civ13_ar_M16A2
+
+- type: startingGear
+  id: USRiflemanGear2
+  equipment:
+    shoes: civ13_shoes_jackboots
+    jumpsuit: civ13_uniform_American_uniform
+    head: civ13_head_M1_Helmet_with_netting_1
+#    belt: ClothingWebbingGermanRifleman
+    pocket1: Gauze
+    pocket2: Gauze
+  inhand:
+    - civ13_ar_M16A2
+
+# Machinegunner
+
+- type: job
+  id: USMachinegunner
+  name: job-name-civ-us-machinegunner
+  faction: US
+  originalName: Machinegunner
+  description: job-description-civ-us-machinegunner
+  playTimeTracker: JobUSMachinegunner
+  startingGear: USMachinegunnerGear
+  randomStartingGears: [USMachinegunnerGear, USMachinegunnerGear2]
+  icon: "JobIconMg"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: NpcFactionMember
+          factions:
+            - US
+        - type: ShowUsFactionIcons
+          factionIcon: UsFaction
+
+- type: playTimeTracker
+  id: JobUSMachinegunner
+
+- type: startingGear
+  id: USMachinegunnerGear
+  equipment:
+    shoes: civ13_shoes_jackboots
+    jumpsuit: civ13_uniform_American_uniform
+    head: civ13_head_M1_Helmet
+#    belt: ClothingWebbingGermanMG
+    pocket1: CombatKnife
+    pocket2: Gauze
+  inhand:
+    - civ13_mg_M60
+
+- type: startingGear
+  id: USMachinegunnerGear2
+  equipment:
+    shoes: civ13_shoes_jackboots
+    jumpsuit: civ13_uniform_American_uniform
+    head: civ13_head_M1_Helmet_with_netting
+#    belt: ClothingWebbingGermanMG
+    pocket1: CombatKnife
+    pocket2: Gauze
+  inhand:
+   - civ13_mg_M60
+
+# Medic
+
+- type: job
+  id: USMedic
+  name: job-name-civ-us-medic
+  faction: US
+  originalName: Medic
+  description: job-description-civ-us-medic
+  playTimeTracker: JobUSMedic
+  startingGear: USMedicGear
+  icon: "JobIconMedic"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: NpcFactionMember
+          factions:
+            - US
+        - type: ShowUsFactionIcons
+          factionIcon: UsFaction
+
+- type: playTimeTracker
+  id: JobUSMedic
+
+- type: startingGear
+  id: USMedicGear
+  equipment:
+    shoes: civ13_shoes_jackboots
+    jumpsuit: civ13_uniform_American_uniform
+    head: civ13_head_M1_Medic_Helmet
+    belt: ClothingSatchelMedicalMedsFilled
+    back: ClothingBackpackDuffelFilled
+    pocket1: CombatKnife
+  inhand:
+    - civ13_ar_M16A2

+ 24 - 0
Resources/Prototypes/Roles/Jobs/departments.yml

@@ -57,3 +57,27 @@
     - SovietRifleman
     - SovietMachinegunner
     - SovietMedic
+
+- type: department
+  id: DepUS
+  name: department-US
+  description: department-US-description
+  color: "#0919f3"
+  roles:
+    - USCaptain
+    - USSergeant
+    - USRifleman
+    - USMachinegunner
+    - USMedic
+
+- type: department
+  id: DepSovietCW
+  name: department-SovietCW
+  description: department-SovietCW-description
+  color: "#f30909"
+  roles:
+    - SovietCWCaptain
+    - SovietCWSergeant
+    - SovietCWRifleman
+    - SovietCWMachinegunner
+    - SovietCWMedic

+ 34 - 2
Resources/Prototypes/ai_factions.yml

@@ -235,7 +235,8 @@
     - Wizard
     - Predator
     - Germany
-
+    - US
+    
 - type: npcFaction
   id: Germany
   hostile:
@@ -248,4 +249,35 @@
     - AllHostile
     - Wizard
     - Predator
-    - Soviet      
+    - Soviet
+    - US
+     
+- type: npcFaction
+  id: US
+  hostile:
+    - SimpleHostile
+    - Syndicate
+    - Xeno
+    - Zombie
+    - Revolutionary
+    - Dragon
+    - AllHostile
+    - Wizard
+    - Predator
+    - Soviet  
+    - Germany
+
+- type: npcFaction
+  id: SovietCW
+  hostile:
+    - SimpleHostile
+    - Syndicate
+    - Xeno
+    - Zombie
+    - Revolutionary
+    - Dragon
+    - AllHostile
+    - Wizard
+    - Predator
+    - Germany
+    - US