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

Ww2 (#204)

* Update base_clothing.yml again

* Lowered base_item.yml to 100g

* yay

* Update soviet.yml

dupe

* Update german.yml

* Update german.yml

* Update soviet.yml

* Update soviet.yml

* stahlhelm

* Update soviet.yml

* Tweaked a bit wooden club

* Update Resources/Locale/en-US/Civ14/jobs-descriptions.ftl

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

* Update Resources/Locale/en-US/Civ14/jobs-descriptions.ftl

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

* Update entities_clothing_hats.yml

* Update jobs.ftl

* Update faction.yml

* Update entities_clothing_hats.yml

---------

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

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

@@ -71,3 +71,44 @@ private void OnGetStatusIconsEvent(EntityUid uid, ShowEnglishFactionIconsCompone
             ev.StatusIcons.Add(iconPrototype);
     }
 }
+public sealed class ShowGermanFactionIconsSystem : EquipmentHudSystem<ShowGermanFactionIconsComponent>
+{
+    [Dependency] private readonly IPrototypeManager _prototype = default!;
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        SubscribeLocalEvent<ShowGermanFactionIconsComponent, GetStatusIconsEvent>(OnGetStatusIconsEvent);
+
+    }
+
+    private void OnGetStatusIconsEvent(EntityUid uid, ShowGermanFactionIconsComponent component, ref GetStatusIconsEvent ev)
+    {
+        if (!IsActive)
+            return;
+
+        if (_prototype.TryIndex<FactionIconPrototype>(component.FactionIcon, out var iconPrototype))
+            ev.StatusIcons.Add(iconPrototype);
+    }
+}
+public sealed class ShowSovietFactionIconsSystem : EquipmentHudSystem<ShowSovietFactionIconsComponent>
+{
+    [Dependency] private readonly IPrototypeManager _prototype = default!;
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        SubscribeLocalEvent<ShowSovietFactionIconsComponent, GetStatusIconsEvent>(OnGetStatusIconsEvent);
+
+    }
+
+    private void OnGetStatusIconsEvent(EntityUid uid, ShowSovietFactionIconsComponent component, ref GetStatusIconsEvent ev)
+    {
+        if (!IsActive)
+            return;
+
+        if (_prototype.TryIndex<FactionIconPrototype>(component.FactionIcon, out var iconPrototype))
+            ev.StatusIcons.Add(iconPrototype);
+    }
+}
+

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

@@ -69,6 +69,8 @@ public void InitializeRelay()
         SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowFactionIconsComponent>>(RefRelayInventoryEvent);
         SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowFrenchFactionIconsComponent>>(RefRelayInventoryEvent);
         SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowEnglishFactionIconsComponent>>(RefRelayInventoryEvent);
+        SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowGermanFactionIconsComponent>>(RefRelayInventoryEvent);
+        SubscribeLocalEvent<InventoryComponent, RefreshEquipmentHudEvent<ShowSovietFactionIconsComponent>>(RefRelayInventoryEvent);
 
         SubscribeLocalEvent<InventoryComponent, GetVerbsEvent<EquipmentVerb>>(OnGetEquipmentVerbs);
     }

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

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

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

@@ -12,3 +12,19 @@ job-description-civ-french-man-at-arms = You are a swordsman. Use your shield to
 job-description-civ-french-spearman = You are a spearman, the bread-and-butter of the army. Onwards to victory!
 job-description-civ-french-ranged = As a ranged unit, harass the lightly armoured enemies to submission!
 job-description-civ-french-medic = As a field surgeon, keep your troops alive!
+
+
+job-description-civ-german-cpt = You are the highest ranking in your faction. Lead your men to victory!
+job-description-civ-german-sgt = You are the right hand of your captain. Direct troops and order artillery strikes on the enemy while answering to the Kapitän!
+job-description-civ-german-submachinegunner = You are a submachinegunner. Use your gun’s fast rate of fire to quickly advance into the enemy lines!
+job-description-civ-german-rifleman = You are a rifleman, the German standard of the army. Bring glory to Deutschland!
+job-description-civ-german-machinegunner = You are a machinegunner. Use your superior firepower to suppress enemies at a distance!
+job-description-civ-german-medic = As a field surgeon, keep your troops alive!
+
+
+job-description-civ-soviet-cpt = You are the highest ranking in your faction. Lead your men to victory!
+job-description-civ-soviet-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-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!

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

@@ -1,8 +1,9 @@
 job-supervisors-nobody = nobody, you are the highest ranking person in your faction
-job-supervisors-sgt = your Sargeant
+job-supervisors-sgt = your Sergeant
 job-supervisors-officer = any Officer
 job-supervisors-squadleader = your Squad Leader
 job-supervisors-lord = your Lord
+job-supervisors-cpt = your Captain
 
 job-name-commander = Commander
 job-name-designated-marksman = Designated Marksman
@@ -37,3 +38,17 @@ job-name-civ-french-man-at-arms = Sword Inf.
 job-name-civ-french-spearman = Spear Inf.
 job-name-civ-french-ranged = Ranged Inf.
 job-name-civ-french-medic = Medic
+
+job-name-civ-german-cpt = Leader
+job-name-civ-german-sgt = Sergeant
+job-name-civ-german-submachinegunner = SMG.
+job-name-civ-german-rifleman = Infantry.
+job-name-civ-german-machinegunner = HWG.
+job-name-civ-german-medic = Medic
+
+job-name-civ-soviet-cpt = Leader
+job-name-civ-soviet-sgt = Sergeant
+job-name-civ-soviet-submachinegunner = SMG.
+job-name-civ-soviet-rifleman = Infantry.
+job-name-civ-soviet-machinegunner = HWG.
+job-name-civ-soviet-medic = Medic

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

@@ -12,3 +12,5 @@ department-Specific-description = Jobs that not all stations have.
 department-Nomads-description = Nomads are not bound to any faction.
 department-French-description = The French are one of the factions present in this map.
 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.

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

@@ -12,3 +12,5 @@ department-Specific = Station specific
 department-Nomads = Nomads
 department-French = France
 department-English = England
+department-German = Germany
+department-Soviet = Soviet Union

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 52 - 0
Resources/Maps/civ/tdm/opushka.yml


+ 13 - 13
Resources/Prototypes/Civ14/Entities/Clothing/entities_clothing_hats.yml

@@ -13,9 +13,9 @@
         coefficients:
           Blunt: 0.5
           Slash: 0.5
-          Piercing: 0.95
+          Piercing: 0.7
           Arrow: 0.6
-          Heat: 0.85
+          Heat: 0.40
 - type: entity
   name: Imperial Red Guard Helmet
   parent: ClothingHeadBase
@@ -1188,7 +1188,7 @@
         coefficients:
           Blunt: 0.55
           Slash: 0.55
-          Piercing: 0.9
+          Piercing: 0.8
           Arrow: 0.65
           Heat: 0.85
     - type: Construction
@@ -3827,7 +3827,7 @@
         coefficients:
           Blunt: 0.6
           Slash: 0.6
-          Piercing: 0.9
+          Piercing: 0.8
           Arrow: 0.7
           Heat: 0.85
     - type: Construction
@@ -3877,7 +3877,7 @@
         coefficients:
           Blunt: 0.6
           Slash: 0.6
-          Piercing: 0.9
+          Piercing: 0.8
           Arrow: 0.7
           Heat: 0.85
     - type: Construction
@@ -3903,7 +3903,7 @@
         coefficients:
           Blunt: 0.6
           Slash: 0.6
-          Piercing: 0.9
+          Piercing: 0.8
           Arrow: 0.7
           Heat: 0.85
     - type: Construction
@@ -3928,10 +3928,10 @@
     - type: Armor
       modifiers:
         coefficients:
-          Blunt: 0.58
-          Slash: 0.58
-          Piercing: 0.88
-          Arrow: 0.67
+          Blunt: 0.55
+          Slash: 0.55
+          Piercing: 0.8
+          Arrow: 0.65
           Heat: 0.85
 - type: entity
   name: German 'SS' helmet
@@ -3948,7 +3948,7 @@
         coefficients:
           Blunt: 0.58
           Slash: 0.58
-          Piercing: 0.88
+          Piercing: 0.8
           Arrow: 0.67
           Heat: 0.85
 - type: entity
@@ -3966,7 +3966,7 @@
         coefficients:
           Blunt: 0.6
           Slash: 0.6
-          Piercing: 0.9
+          Piercing: 0.8
           Arrow: 0.7
           Heat: 0.85
 - type: entity
@@ -4167,7 +4167,7 @@
         coefficients:
           Blunt: 0.6
           Slash: 0.6
-          Piercing: 0.9
+          Piercing: 0.8
           Arrow: 0.7
           Heat: 0.85
 - type: entity

+ 16 - 0
Resources/Prototypes/Civ14/Entities/Markers/capturable_areas.yml

@@ -27,3 +27,19 @@
       capturableFactions:
         - England
         - France
+
+- type: entity
+  name: capturable area - KOTH Opushka
+  id: MarkerKOTHOpushka
+  parent: MarkerCapturableArea
+  components:
+    - type: Sprite
+      sprite: Civ14/Markers/areas.rsi
+      state: capture_blue
+    - type: CaptureArea
+      name: "The Main House"
+      captureDuration: 240 # 4 min
+      captureRadius: 3
+      capturableFactions:
+        - Soviet
+        - Germany       

+ 26 - 0
Resources/Prototypes/Civ14/Entities/Markers/jobs.yml

@@ -38,3 +38,29 @@
       sprite: Markers/cross.rsi
       layers:
         - state: blue
+- type: entity
+  id: SpawnPointGerman
+  parent: SpawnPointJobBase
+  name: german spawner
+  suffix: faction spawn
+  components:
+    - type: SpawnPoint
+      faction: Germany
+      spawn_type: Faction
+    - type: Sprite
+      sprite: Markers/cross.rsi
+      layers:
+        - state: green
+- type: entity
+  id: SpawnPointSoviet
+  parent: SpawnPointJobBase
+  name: soviet spawner
+  suffix: faction spawn
+  components:
+    - type: SpawnPoint
+      faction: Soviet
+      spawn_type: Faction
+    - type: Sprite
+      sprite: Markers/cross.rsi
+      layers:
+        - state: pink     

+ 2 - 3
Resources/Prototypes/Civ14/Entities/Objects/Weapons/stone_age.yml

@@ -8,12 +8,11 @@
       sprite: Civ14/Objects/StoneAge/club.rsi
       state: icon
     - type: MeleeWeapon
-      attackRate: 0.7
+      attackRate: 0.8
       wideAnimationRotation: -135
-      range: 1.1
       damage:
         types:
-          Blunt: 19
+          Blunt: 18
       soundHit:
         collection: MetalThud
       bluntStaminaDamageFactor: 1.5

+ 1 - 1
Resources/Prototypes/Civ14/Entities/Objects/healing.yml

@@ -88,7 +88,7 @@
         - Biological
       damage:
         groups:
-          Brute: -18
+          Brute: -10
       healingBeginSound:
         path: "/Audio/Items/Medical/ointment_begin.ogg"
       healingEndSound:

+ 9 - 0
Resources/Prototypes/Civ14/Entities/Structures/wall_flags.yml

@@ -560,6 +560,15 @@
   components:
     - type: Sprite
       state: flag_sovborder
+      
+- type: entity
+  id: civ13_wallflag_sov
+  name: Soviet Union flag
+  description: The flag of the Soviet Union.
+  parent: WallFlagWhite
+  components:
+    - type: Sprite
+      state: flag_sov
 
 - type: entity
   id: civ13_wallflag_nazi

+ 11 - 3
Resources/Prototypes/Civ14/StatusIcon/faction.yml

@@ -181,12 +181,16 @@
     state: ger0_basic
 
 - type: factionIcon
-  id: Ger2Faction
-  priority: 1
+  id: GermanFaction
+  priority: 0
   showTo:
     components:
       - ShowAntagIcons
       - ShowFactionIcons
+      - ShowEnglishFactionIcons
+      - ShowFrenchFactionIcons
+      - ShowGermanFactionIcons
+      - ShowSovietFactionIcons
   icon:
     sprite: /Textures/Interface/Misc/civ_hud_countries.rsi
     state: ger2_basic
@@ -511,12 +515,16 @@
     state: ru_basic
 
 - type: factionIcon
-  id: SovFaction
+  id: SovietFaction
   priority: 1
   showTo:
     components:
       - ShowAntagIcons
       - ShowFactionIcons
+      - ShowEnglishFactionIcons
+      - ShowFrenchFactionIcons
+      - ShowGermanFactionIcons
+      - ShowSovietFactionIcons
   icon:
     sprite: /Textures/Interface/Misc/civ_hud_countries.rsi
     state: sov_basic

+ 1 - 1
Resources/Prototypes/Entities/Objects/base_item.yml

@@ -4,7 +4,7 @@
   abstract: true
   components:
     - type: STWeight
-      self: 1
+      self: 0.15
     - type: Item
       size: Small
     - type: Animateable

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

@@ -30,3 +30,5 @@
       factions:
         - France
         - England
+        - Soviet
+        - Germany

+ 1 - 0
Resources/Prototypes/Maps/Pools/default.yml

@@ -3,3 +3,4 @@
   maps:
     - Camp
     - Nomads
+    - Opushka

+ 31 - 0
Resources/Prototypes/Maps/civ/opushka.yml

@@ -0,0 +1,31 @@
+- type: gameMap
+  id: Opushka
+  mapName: "Opushka (WW2)"
+  mapPath: /Maps/civ/tdm/opushka.yml
+  minPlayers: 0
+  maxPlayers: 128
+  maxRandomOffset: 0
+  randomRotation: false
+  stations:
+    Opushka:
+      stationProto: StandardStationTDM
+      components:
+        - type: StationNameSetup
+          mapNameTemplate: "Opushka (WW2)"
+        - type: StationJobs
+          availableJobs:
+            # German
+            GermanCaptain: [1, 1]
+            GermanSergeant: [2, 5]
+            GermanSubmachineGunner: [5, 20]
+            GermanRifleman: [20, 50]
+            GermanMachinegunner: [5, 20]
+            GermanMedic: [1, 3]
+
+          # Soviet
+            SovietCaptain: [1, 1]
+            SovietSergeant: [2, 5]
+            SovietSubmachineGunner: [5, 20]
+            SovietRifleman: [20, 50]
+            SovietMachinegunner: [5, 20]
+            SovietMedic: [1, 3]

+ 254 - 0
Resources/Prototypes/Roles/Jobs/Civ14/TDM/german.yml

@@ -0,0 +1,254 @@
+- type: job
+  id: GermanCaptain
+  name: job-name-civ-german-cpt
+  faction: Germany
+  originalName: Kapitän
+  description: job-description-civ-german-cpt
+  playTimeTracker: JobGermanCaptain
+  requirements:
+    - !type:OverallPlaytimeRequirement
+      time: 10800 #3 hrs
+  startingGear: GermanCaptainGear
+  icon: "JobIconCommander"
+  supervisors: job-supervisors-nobody
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: GermanAccent
+        - type: NpcFactionMember
+          factions:
+            - Germany
+        - type: ShowGermanFactionIcons
+          factionIcon: GermanFaction
+
+- type: playTimeTracker
+  id: JobGermanCaptain
+
+- type: startingGear
+  id: GermanCaptainGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_officer_uniform
+    outerClothing: civ13_suit_German_officer_coat
+    gloves: civ13_gloves_Officer_gloves
+    belt: civ13_pistol_Luger_P08
+    head: civ13_head_German_officer_cap
+
+# Sergeant
+
+- type: job
+  id: GermanSergeant
+  originalName: Sergeant
+  name: job-name-civ-german-sgt
+  faction: Germany
+  description: job-description-civ-german-sergeant
+  playTimeTracker: JobGermanSergeant
+  requirements:
+    - !type:OverallPlaytimeRequirement
+      time: 5400 #1.5 hrs
+  startingGear: GermanSergeantGear
+  icon: "JobIconOfficer"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: GermanAccent
+        - type: NpcFactionMember
+          factions:
+            - Germany
+        - type: ShowGermanFactionIcons
+          factionIcon: GermanFaction
+
+- type: playTimeTracker
+  id: JobGermanSergeant
+
+- type: startingGear
+  id: GermanSergeantGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_SS_officer_uniform
+    outerClothing: civ13_suit_German_parka
+    head: civ13_head_German_field_cap
+    belt: civ13_pistol_Walther_P38
+    pocket1: civ13_caliber_a9x19
+  inhand:
+    - Binoculars
+
+# SMG
+
+- type: job
+  id: GermanSubmachineGunner
+  name: job-name-civ-german-submachinegunner
+  faction: Germany
+  originalName: Maschinenpistole Schütze
+  description: job-description-civ-german-submachinegunner
+  playTimeTracker: JobGermanSubmachineGunner
+  startingGear: GermanSubmachineGunnerGear
+  randomStartingGears: [GermanSubmachineGunnerGear, GermanSubmachineGunnerGear2]
+  icon: "JobIconSword"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: GermanAccent
+        - type: NpcFactionMember
+          factions:
+            - Germany
+        - type: ShowGermanFactionIcons
+          factionIcon: GermanFaction
+
+- type: playTimeTracker
+  id: JobGermanSubmachineGunner
+
+- type: startingGear
+  id: GermanSubmachineGunnerGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_SS_uniform
+    head: civ13_head_german_stahlhelm
+  #inhand:
+    #- civ13_german_smg
+- type: startingGear
+  id: GermanSubmachineGunnerGear2
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_camo_SS_uniform
+    head: civ13_head_German_SS_helmet
+# inhand:
+  # - civ13_german_smg
+
+# Rifleman
+
+- type: job
+  id: GermanRifleman
+  name: job-name-civ-german-rifleman
+  faction: Germany
+  originalName: Schütze
+  description: job-description-civ-german-rifleman
+  playTimeTracker: JobGermanRifleman
+  startingGear: GermanRiflemanGear
+  randomStartingGears: [GermanRiflemanGear, GermanRiflemanGear2]
+  icon: "JobIconSpear"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: GermanAccent
+        - type: NpcFactionMember
+          factions:
+            - Germany
+        - type: ShowGermanFactionIcons
+          factionIcon: GermanFaction
+
+- type: playTimeTracker
+  id: JobGermanRifleman
+
+- type: startingGear
+  id: GermanRiflemanGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_SS_uniform
+    head: civ13_head_german_stahlhelm
+# inhand:
+  #  - civ13_boltaction_Gewehr_71
+- type: startingGear
+  id: GermanRiflemanGear2
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_camo_SS_uniform
+    head: civ13_head_German_SS_helmet
+# inhand:
+  #  - civ13_boltaction_Gewehr_71
+
+# Machinegunner
+
+- type: job
+  id: GermanMachinegunner 
+  name: job-name-civ-german-machinegunner 
+  faction: Germany
+  originalName: Maschinengewehrschütze # how to pronounce that
+  description: job-description-civ-german-machinegunner
+  playTimeTracker: JobGermanMachinegunner
+  startingGear: GermanMachinegunnerGear
+  randomStartingGears: [GermanMachinegunnerGear, GermanMachinegunnerGear2]
+  icon: "JobIconRanged"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: GermanAccent
+        - type: NpcFactionMember
+          factions:
+            - Germany
+        - type: ShowGermanFactionIcons
+          factionIcon: GermanFaction
+
+- type: playTimeTracker
+  id: JobGermanMachinegunner
+
+- type: startingGear
+  id: GermanMachinegunnerGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_SS_uniform
+    head: civ13_head_german_stahlhelm
+    pocket1: CombatKnife
+# inhand:
+ # - civ13_generic_german_machinegun
+- type: startingGear
+  id: GermanMachinegunnerGear2
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_camo_SS_uniform
+    head: civ13_head_German_SS_helmet
+    pocket1: CombatKnife
+# inhand:
+   # - civ13_generic_german_machinegun
+
+# Medic
+
+- type: job
+  id: GermanMedic
+  name: job-name-civ-german-medic
+  faction: Germany
+  originalName: Sanitäter
+  description: job-description-civ-german-medic
+  playTimeTracker: JobGermanMedic
+  startingGear: GermanMedicGear
+  icon: "JobIconMedic"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: GermanAccent
+        - type: NpcFactionMember
+          factions:
+            - Germany
+        - type: ShowGermanFactionIcons
+          factionIcon: GermanFaction
+
+- type: playTimeTracker
+  id: JobGermanMedic
+
+- type: startingGear
+  id: GermanMedicGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_German_doctor_uniform
+    head: civ13_head_german_medic_stahlhelm
+    belt: LeatherClothingBelt
+    pocket1: CombatKnife
+  # inhand: 
+    # - civ13_boltaction_Gewehr_71
+  storage:
+    belt:
+      - DoctorsHandbook
+      - Brutepack
+      - Brutepack
+      - FoodPoppy
+      - YarrowHealingHerbs
+      - YarrowHealingHerbs
+      - ElderflowerHealingHerbs
+      - ElderflowerHealingHerbs
+      - Gauze
+      - Gauze

+ 264 - 0
Resources/Prototypes/Roles/Jobs/Civ14/TDM/soviet.yml

@@ -0,0 +1,264 @@
+- type: job
+  id: SovietCaptain
+  name: job-name-civ-soviet-cpt
+  faction: Soviet
+  originalName: Kapitan
+  description: job-description-civ-soviet-cpt
+  playTimeTracker: JobSovietCaptain
+  requirements:
+    - !type:OverallPlaytimeRequirement
+      time: 10800 #3 hrs
+  startingGear: SovietCaptainGear
+  icon: "JobIconCommander"
+  supervisors: job-supervisors-nobody
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - Soviet
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietCaptain
+
+- type: startingGear
+  id: SovietCaptainGear
+  equipment:
+    shoes: civ13_shoes_leather_shoes_1
+    jumpsuit: civ13_uniform_Soviet_officer_uniform
+    outerClothing: civ13_suit_Soviet_officer_coat
+    belt: civ13_pistol_TT_33
+    head: civ13_head_soviet_officer_cap
+
+# Sergeant
+
+- type: job
+  id: SovietSergeant
+  originalName: Serzhant
+  name: job-name-civ-soviet-sgt
+  faction: Soviet
+  description: job-description-civ-soviet-sgt
+  playTimeTracker: JobSovietSergeant
+  requirements:
+    - !type:OverallPlaytimeRequirement
+      time: 5400 #1.5 hrs
+  startingGear: SovietSergeantGear
+  icon: "JobIconOfficer"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - Soviet
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietSergeant
+
+- type: startingGear
+  id: SovietSergeantGear
+  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_TT_33
+    pocket1: civ13_caliber_a762x25
+  inhand:
+    - Binoculars
+
+# SMG
+
+- type: job
+  id: SovietSubmachineGunner
+  name: job-name-civ-soviet-submachinegunner
+  faction: Soviet
+  originalName: Avtomatchik
+  description: job-description-civ-soviet-submachinegunner
+  playTimeTracker: JobSovietSubmachineGunner
+  startingGear: SovietSubmachineGunnerGear
+  randomStartingGears: [SovietSubmachineGunnerGear, SovietSubmachineGunnerGear2]
+  icon: "JobIconSword"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - Soviet
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietSubmachineGunner
+
+- type: startingGear
+  id: SovietSubmachineGunnerGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    gloves: ClothingHandsGlovesFingerless
+    #outerClothing: civ13_suit_Soviet_coat
+    head: civ13_head_soviet_helmet
+  #inhand:
+    #- civ13_ppsh
+- type: startingGear
+  id: SovietSubmachineGunnerGear2
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    #outerClothing: civ13_suit_Soviet_coat_1
+    head: civ13_head_soviet_ushanka
+# inhand:
+  # - civ13_ppsh
+
+# Rifleman
+
+- type: job
+  id: SovietRifleman
+  name: job-name-civ-soviet-rifleman
+  faction: Soviet
+  originalName: Frontovik
+  description: job-description-civ-soviet-rifleman
+  playTimeTracker: JobSovietRifleman
+  startingGear: SovietRiflemanGear
+  randomStartingGears: [SovietRiflemanGear, SovietRiflemanGear2]
+  icon: "JobIconSpear"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - Soviet
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietRifleman
+
+- type: startingGear
+  id: SovietRiflemanGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    #outerClothing: civ13_suit_Soviet_coat_1
+    head: civ13_head_soviet_helmet
+# inhand:
+  #  - civ13_boltaction_Mosin
+- type: startingGear
+  id: SovietRiflemanGear2
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    gloves: ClothingHandsGlovesFingerless
+    outerClothing: civ13_suit_Soviet_coat
+    head: civ13_head_soviet_ushanka_1
+# inhand:
+  #  - civ13_boltaction_Mosin
+
+# Machinegunner
+
+- type: job
+  id: SovietMachinegunner 
+  name: job-name-civ-soviet-machinegunner 
+  faction: Soviet
+  originalName: Pulemyotchik 
+  description: job-description-civ-soviet-machinegunner
+  playTimeTracker: JobSovietMachinegunner
+  startingGear: SovietMachinegunnerGear
+  randomStartingGears: [SovietMachinegunnerGear, SovietMachinegunnerGear2]
+  icon: "JobIconRanged"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - Soviet
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietMachinegunner
+
+- type: startingGear
+  id: SovietMachinegunnerGear
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    gloves: ClothingHandsGlovesFingerless
+    #outerClothing: civ13_suit_Soviet_coat
+    head: civ13_head_soviet_helmet
+    pocket1: CombatKnife
+# inhand:
+ # - civ13_soviet_machinegun
+- type: startingGear
+  id: SovietMachinegunnerGear2
+  equipment:
+    shoes: civ13_shoes_Soviet_sapogi_boots
+    jumpsuit: civ13_uniform_Soviet_uniform
+    gloves: ClothingHandsGlovesFingerless
+    outerClothing: civ13_suit_Soviet_coat_1
+    head: civ13_head_soviet_ushanka_1
+    pocket1: CombatKnife
+# inhand:
+   # - civ13_soviet_machinegun
+
+# Medic
+
+- type: job
+  id: SovietMedic
+  name: job-name-civ-soviet-medic
+  faction: Soviet
+  originalName: Vrach
+  description: job-description-civ-soviet-medic
+  playTimeTracker: JobSovietMedic
+  startingGear: SovietMedicGear
+  icon: "JobIconMedic"
+  supervisors: job-supervisors-cpt
+  special:
+    - !type:AddComponentSpecial
+      components:
+        - type: RussianAccent
+        - type: NpcFactionMember
+          factions:
+            - Soviet
+        - type: ShowSovietFactionIcons
+          factionIcon: SovietFaction
+
+- type: playTimeTracker
+  id: JobSovietMedic
+
+- type: startingGear
+  id: SovietMedicGear
+  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: LeatherClothingBelt
+    pocket1: CombatKnife
+  # inhand: 
+    # - civ13_boltaction_Mosin
+  storage:
+    belt:
+      - DoctorsHandbook
+      - Brutepack
+      - Brutepack
+      - FoodPoppy
+      - YarrowHealingHerbs
+      - YarrowHealingHerbs
+      - ElderflowerHealingHerbs
+      - ElderflowerHealingHerbs
+      - Gauze
+      - Gauze

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

@@ -169,3 +169,29 @@
     - EnglishSpearman
     - EnglishRanged
     - EnglishMedic
+
+- type: department
+  id: DepGerman
+  name: department-German
+  description: department-German-description
+  color: "#080101"
+  roles:
+    - GermanCaptain
+    - GermanSergeant
+    - GermanSubmachineGunner
+    - GermanRifleman
+    - GermanMachinegunner
+    - GermanMedic
+    
+- type: department
+  id: DepSoviet
+  name: department-Soviet
+  description: department-Soviet-description
+  color: "#f80505"
+  roles:
+    - SovietCaptain
+    - SovietSergeant
+    - SovietSubmachineGunner
+    - SovietRifleman
+    - SovietMachinegunner
+    - SovietMedic

+ 28 - 0
Resources/Prototypes/ai_factions.yml

@@ -221,3 +221,31 @@
     - Wizard
     - Predator
     - France
+
+- type: npcFaction
+  id: Soviet
+  hostile:
+    - SimpleHostile
+    - Syndicate
+    - Xeno
+    - Zombie
+    - Revolutionary
+    - Dragon
+    - AllHostile
+    - Wizard
+    - Predator
+    - Germany
+
+- type: npcFaction
+  id: Germany
+  hostile:
+    - SimpleHostile
+    - Syndicate
+    - Xeno
+    - Zombie
+    - Revolutionary
+    - Dragon
+    - AllHostile
+    - Wizard
+    - Predator
+    - Soviet      

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott