瀏覽代碼

TDM update 3 (#203)

* smgs

* ARs and SMGs

* mag sprites

* areas get occupied by the largest team present

* duplicates

* fire modes

* caliber fixes, smg > ar

* duplicates removed, added gun stats to SMGs

* ar stats

* ar tweaks

* pistols

* yaml fixes, more mags

* Sync (#205)

* Nomads update 1 (#202)

* removes old ambient sounds

* yaml fixes

* stamina

* maybe fixes invites? needs testing

* linter error quickfix

* another quickfix

* cmon work

* 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>

---------

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

* quickequip, ww2 loadouts

* coderabbit suggestions

* even more guns!

* new mgs, nades, webbings

* small fixes

* typo

* test stuff

* mg webbings

---------

Co-authored-by: Papiditel <mrharved@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Taislin 6 月之前
父節點
當前提交
2fb58d0039
共有 100 個文件被更改,包括 3938 次插入404 次删除
  1. 1 1
      Content.Client/UserInterface/Systems/Faction/FactionUIController.cs
  2. 12 9
      Content.Server/GameTicking/Rules/CaptureAreaSystem.cs
  3. 3 3
      Content.Shared/Civ14/CivFactions/FactionExamineSystem.cs
  4. 二進制
      Resources/Audio/Weapons/Guns/Fire/PPSh.ogg
  5. 3 3
      Resources/ConfigPresets/Build/development.toml
  6. 6 6
      Resources/Locale/en-US/Civ14/jobs.ftl
  7. 52 0
      Resources/Maps/civ/tdm/camp_ww2.yml
  8. 4 3
      Resources/Maps/civ/tdm/opushka.yml
  9. 0 9
      Resources/Prototypes/Civ14/Entities/Clothing/entities_clothing_accessories.yml
  10. 146 0
      Resources/Prototypes/Civ14/Entities/Clothing/webbings.yml
  11. 85 0
      Resources/Prototypes/Civ14/Entities/Objects/Explosives/genades.yml
  12. 0 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_bullets.yml
  13. 0 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_calibers.yml
  14. 375 46
      Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_magazines.yml
  15. 8 2
      Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/magazine_tags.yml
  16. 262 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/ar_ar15.yml
  17. 409 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/ar_kalashnikov.yml
  18. 25 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/base.yml
  19. 504 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_assaultrifles.yml
  20. 198 28
      Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_boltaction.yml
  21. 735 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_mg.yml
  22. 169 133
      Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_pistol.yml
  23. 693 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_smg.yml
  24. 1 0
      Resources/Prototypes/Maps/Pools/default.yml
  25. 31 0
      Resources/Prototypes/Maps/civ/camp_ww2.yml
  26. 49 30
      Resources/Prototypes/Roles/Jobs/Civ14/TDM/german.yml
  27. 40 24
      Resources/Prototypes/Roles/Jobs/Civ14/TDM/soviet.yml
  28. 2 2
      Resources/Prototypes/Roles/Jobs/departments.yml
  29. 二進制
      Resources/Textures/Civ14/Clothing/exported/ties/german_vest.rsi/equipped-BELT.png
  30. 25 21
      Resources/Textures/Civ14/Clothing/exported/ties/german_vest.rsi/meta.json
  31. 二進制
      Resources/Textures/Civ14/Clothing/exported/ties/green_webbing.rsi/equipped-BELT.png
  32. 25 21
      Resources/Textures/Civ14/Clothing/exported/ties/green_webbing.rsi/meta.json
  33. 二進制
      Resources/Textures/Civ14/Clothing/exported/ties/khaki_webbing.rsi/equipped-BELT.png
  34. 25 21
      Resources/Textures/Civ14/Clothing/exported/ties/khaki_webbing.rsi/meta.json
  35. 二進制
      Resources/Textures/Civ14/Clothing/exported/ties/russian_vest.rsi/equipped-BELT.png
  36. 25 21
      Resources/Textures/Civ14/Clothing/exported/ties/russian_vest.rsi/meta.json
  37. 二進制
      Resources/Textures/Civ14/Clothing/exported/ties/us_webbing.rsi/equipped-BELT.png
  38. 25 21
      Resources/Textures/Civ14/Clothing/exported/ties/us_webbing.rsi/meta.json
  39. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114-0.png
  40. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114-12.png
  41. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114-20.png
  42. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114-6.png
  43. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114.png
  44. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP-0.png
  45. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP-12.png
  46. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP-20.png
  47. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP-6.png
  48. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP.png
  49. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/545x39-0.png
  50. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/545x39-90.png
  51. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/545x39.png
  52. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/545x39X.png
  53. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/9mm-0.png
  54. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/9mm-30.png
  55. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/9mm-60.png
  56. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/9mm-90.png
  57. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/9mm.png
  58. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/9mmX.png
  59. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/a50cal-0.png
  60. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/a50cal-10.png
  61. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/a50cal.png
  62. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ab127-0.png
  63. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ab127-10.png
  64. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ab127-100.png
  65. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ab127-30.png
  66. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ab127-50.png
  67. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ab127-90.png
  68. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ab127.png
  69. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ak47-0.png
  70. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ak47.png
  71. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ak74-0.png
  72. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ak74.png
  73. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ammo-0.png
  74. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ammo-30.png
  75. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ammo-45.png
  76. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ammo-8.png
  77. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ammo-closed.png
  78. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ammo.png
  79. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/ammoX.png
  80. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/arisaka_ammo.png
  81. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b127-0.png
  82. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b127-10.png
  83. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b127-20.png
  84. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b127-30.png
  85. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b127-40.png
  86. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b127-5.png
  87. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b127-50.png
  88. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b127.png
  89. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/b762x54-0.png
  90. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/bam-0.png
  91. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/bam.png
  92. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/bamgreen-0.png
  93. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/bamgreen.png
  94. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/bamred-0.png
  95. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/bamred.png
  96. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/breda30-0.png
  97. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/breda30-10.png
  98. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/breda30-12.png
  99. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/breda30-14.png
  100. 二進制
      Resources/Textures/Civ14/Objects/ammo.rsi/breda30-16.png

+ 1 - 1
Content.Client/UserInterface/Systems/Faction/FactionUIController.cs

@@ -82,7 +82,7 @@ public void OnStateEntered(GameplayState state)
     {
         // _window should be null here if OnStateExited cleaned up properly
         // DebugTools.Assert(_window == null); // Keep this assertion
-
+        _factionControllerResourcesCleanedUp = false;
         _sawmill.Debug("FactionUIController entering GameplayState.");
 
         // Retrieve PopupSystem here, as EntityManager should be more reliably initialized.

+ 12 - 9
Content.Server/GameTicking/Rules/CaptureAreaSystem.cs

@@ -70,23 +70,26 @@ private void ProcessArea(EntityUid uid, CaptureAreaComponent area, float frameTi
         }
 
         // Determine the controlling faction
-        string currentController = "";
-        int controllerCount = 0;
+        var currentController = "";
+        var maxCount = 0;
         foreach (var (faction, count) in factionCounts)
         {
-            if (count > 0)
+            if (count > maxCount)
             {
+                maxCount = count;
                 currentController = faction;
-                controllerCount++;
+            }
+            else if (maxCount != 0 && count == maxCount)
+            {
+                currentController = ""; // Contested
             }
         }
 
-        // If more than one faction is present, it's contested
-        if (controllerCount > 1)
-            currentController = ""; // Reset controller if contested
-
         // Update component state
-        area.Occupied = controllerCount > 0;
+        if (maxCount > 0 && currentController != "")
+        {
+            area.Occupied = true;
+        }
 
         if (currentController != area.Controller)
         {

+ 3 - 3
Content.Shared/Civ14/CivFactions/FactionExamineSystem.cs

@@ -31,18 +31,18 @@ private void OnFactionExamine(EntityUid uid, CivFactionComponent component, Exam
             }
             if (component.FactionName == examinerFaction.FactionName)
             {
-                var str = $"He is a member of your faction, [color=#007f00]{component.FactionName}[/color].";
+                var str = $"They are a member of your faction, [color=#007f00]{component.FactionName}[/color].";
                 args.PushMarkup(str);
             }
             else
             {
-                var str = $"He is a member of [color=#7f0000]{component.FactionName}[/color].";
+                var str = $"They are a member of [color=#7f0000]{component.FactionName}[/color].";
                 args.PushMarkup(str);
             }
         }
         else
         {
-            var str = $"He is not a member of any factions.";
+            var str = $"They are not a member of any factions.";
             args.PushMarkup(str);
         }
     }

二進制
Resources/Audio/Weapons/Guns/Fire/PPSh.ogg


+ 3 - 3
Resources/ConfigPresets/Build/development.toml

@@ -1,12 +1,12 @@
 [game]
 # Straight in-game baby
-lobbyenabled = false
+lobbyenabled = true
 # Dev map for faster loading & convenience
-map = "Nomads"
+map = "Opushka"
 role_timers = false
 lobbyduration = 15
 disallowlatejoins = false
-defaultpreset = "nomads"
+defaultpreset = "tdm"
 
 [events]
 enabled = false

+ 6 - 6
Resources/Locale/en-US/Civ14/jobs.ftl

@@ -41,14 +41,14 @@ 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-submachinegunner = SMG
+job-name-civ-german-rifleman = Infantry
+job-name-civ-german-machinegunner = LMG
 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-submachinegunner = SMG
+job-name-civ-soviet-rifleman = Infantry
+job-name-civ-soviet-machinegunner = LMG
 job-name-civ-soviet-medic = Medic

File diff suppressed because it is too large
+ 52 - 0
Resources/Maps/civ/tdm/camp_ww2.yml


File diff suppressed because it is too large
+ 4 - 3
Resources/Maps/civ/tdm/opushka.yml


+ 0 - 9
Resources/Prototypes/Civ14/Entities/Clothing/entities_clothing_accessories.yml

@@ -1619,15 +1619,6 @@
       sprite: Civ14/Clothing/exported/ties/german_vest.rsi
     - type: Clothing
       sprite: Civ14/Clothing/exported/ties/german_vest.rsi
-    - type: Armor
-      modifiers:
-        coefficients:
-          Blunt: 1
-          Slash: 1
-          Piercing: 1
-          Arrow: 1
-          Heat: 1
-          Radiation: 1
     - type: Construction
       graph: civ13_accessory_German_webbing_vest
       node: end

+ 146 - 0
Resources/Prototypes/Civ14/Entities/Clothing/webbings.yml

@@ -0,0 +1,146 @@
+- type: entity
+  id: ClothingWebbing
+  parent: ClothingBeltStorageBase
+  name: webbing
+  abstract: true
+  description: This webbing vest includes two sturdy leather belts equipped with small pouches for ammunition and grenades, providing essential storage for frontline soldiers.
+  components:
+    - type: Sprite
+      sprite: Civ14/Clothing/exported/ties/german_vest.rsi
+    - type: Clothing
+      sprite: Civ14/Clothing/exported/ties/german_vest.rsi
+    - type: STWeight
+      self: 1.5
+    - type: Item
+      size: Large
+    - type: Storage
+      maxItemSize: Normal
+      grid:
+        - 0,0,7,1
+
+- type: entity
+  id: ClothingWebbingGerman
+  parent: ClothingWebbing
+  name: feldgrau webbing
+  components:
+    - type: Sprite
+      sprite: Civ14/Clothing/exported/ties/german_vest.rsi
+    - type: Clothing
+      sprite: Civ14/Clothing/exported/ties/german_vest.rsi
+
+- type: entity
+  id: ClothingWebbingRussian
+  parent: ClothingWebbing
+  name: leather webbing
+  components:
+    - type: Sprite
+      sprite: Civ14/Clothing/exported/ties/russian_vest.rsi
+    - type: Clothing
+      sprite: Civ14/Clothing/exported/ties/russian_vest.rsi
+
+- type: entity
+  id: ClothingWebbingUS
+  parent: ClothingWebbing
+  name: US webbing
+  components:
+    - type: Sprite
+      sprite: Civ14/Clothing/exported/ties/us_webbing.rsi
+    - type: Clothing
+      sprite: Civ14/Clothing/exported/ties/us_webbing.rsi
+
+- type: entity
+  id: ClothingWebbingKhaki
+  parent: ClothingWebbing
+  name: khaki webbing
+  components:
+    - type: Sprite
+      sprite: Civ14/Clothing/exported/ties/khaki_webbing.rsi
+    - type: Clothing
+      sprite: Civ14/Clothing/exported/ties/khaki_webbing.rsi
+
+- type: entity
+  id: ClothingWebbingGreen
+  parent: ClothingWebbing
+  name: green webbing
+  components:
+    - type: Sprite
+      sprite: Civ14/Clothing/exported/ties/green_webbing.rsi
+    - type: Clothing
+      sprite: Civ14/Clothing/exported/ties/green_webbing.rsi
+
+# filled
+- type: entity
+  id: ClothingWebbingGermanRifleman
+  parent: ClothingWebbingGerman
+  name: feldgrau webbing
+  suffix: filled, Rifle
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_clip_(7.92x57mm)
+          amount: 8
+        - id: GrenadeSHG24
+          amount: 2
+
+- type: entity
+  id: ClothingWebbingRussianRifleman
+  parent: ClothingWebbingRussian
+  name: leather webbing
+  suffix: filled, Rifle
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_clip_(7.62x54mm)
+          amount: 8
+        - id: GrenadeF1
+          amount: 2
+
+- type: entity
+  id: ClothingWebbingGermanSMG
+  parent: ClothingWebbingGerman
+  name: feldgrau webbing
+  suffix: filled, SMG
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_mp40_(9x19mm)
+          amount: 3
+        - id: GrenadeSHG24
+          amount: 3
+- type: entity
+  id: ClothingWebbingSovietSMG
+  parent: ClothingWebbingRussian
+  name: leather webbing
+  suffix: filled, SMG
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_PPSh_41_drum_magazine_(7.62x25mm)
+          amount: 2
+        - id: GrenadeF1
+          amount: 3
+
+- type: entity
+  id: ClothingWebbingGermanMG
+  parent: ClothingWebbingGerman
+  name: feldgrau webbing
+  suffix: filled, MG
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_MG34_magazine_(7.92x57mm)
+          amount: 3
+        - id: GrenadeSHG24
+          amount: 1
+- type: entity
+  id: ClothingWebbingSovietMG
+  parent: ClothingWebbingRussian
+  name: leather webbing
+  suffix: filled, MG
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_DP_pan_(7.62x54mmR)
+          amount: 4
+        - id: GrenadeF1
+          amount: 3

+ 85 - 0
Resources/Prototypes/Civ14/Entities/Objects/Explosives/genades.yml

@@ -0,0 +1,85 @@
+- type: entity
+  name: Stielhandgranate 24
+  description: A german WW2 fragmentation grenade.
+  parent: GrenadeBase
+  id: GrenadeSHG24
+  components:
+    - type: Explosive
+      explosionType: Default
+      maxIntensity: 5
+      intensitySlope: 2
+      totalIntensity: 40 # about a ~4 tile radius
+      canCreateVacuum: false
+    - type: OnUseTimerTrigger
+    - type: ProjectileGrenade
+      fillPrototype: PelletClusterLethal
+      capacity: 30
+    - type: ContainerContainer
+      containers:
+        cluster-payload: !type:Container
+    - type: TwoStageTrigger
+      triggerDelay: 0
+      components:
+        - type: ExplodeOnTrigger
+    - type: Sprite
+      sprite: Civ14/Objects/grenade.rsi
+      layers:
+        - state: stgnade
+          map: ["enum.TriggerVisualLayers.Base"]
+    - type: GenericVisualizer
+      visuals:
+        enum.Trigger.TriggerVisuals.VisualState:
+          enum.ConstructionVisuals.Layer:
+            Primed: { state: stgnade_active }
+            Unprimed: { state: stgnade }
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 60
+          behaviors:
+            - !type:TriggerBehavior
+            - !type:DoActsBehavior
+              acts: ["Destruction"]
+
+- type: entity
+  name: F-1 grenade
+  description: A russian WW1 and WW2 fragmentation grenade.
+  parent: GrenadeBase
+  id: GrenadeF1
+  components:
+    - type: Explosive
+      explosionType: Default
+      maxIntensity: 5
+      intensitySlope: 2
+      totalIntensity: 40 # about a ~4 tile radius
+      canCreateVacuum: false
+    - type: OnUseTimerTrigger
+    - type: ProjectileGrenade
+      fillPrototype: PelletClusterLethal
+      capacity: 30
+    - type: ContainerContainer
+      containers:
+        cluster-payload: !type:Container
+    - type: TwoStageTrigger
+      triggerDelay: 0
+      components:
+        - type: ExplodeOnTrigger
+    - type: Sprite
+      sprite: Civ14/Objects/grenade.rsi
+      layers:
+        - state: f1
+          map: ["enum.TriggerVisualLayers.Base"]
+    - type: GenericVisualizer
+      visuals:
+        enum.Trigger.TriggerVisuals.VisualState:
+          enum.ConstructionVisuals.Layer:
+            Primed: { state: f1_active }
+            Unprimed: { state: f1 }
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 60
+          behaviors:
+            - !type:TriggerBehavior
+            - !type:DoActsBehavior
+              acts: ["Destruction"]

+ 0 - 0
Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_bullets.yml → Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_bullets.yml


+ 0 - 0
Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_calibers.yml → Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_calibers.yml


File diff suppressed because it is too large
+ 375 - 46
Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_magazines.yml


+ 8 - 2
Resources/Prototypes/Civ14/Entities/Objects/Guns/magazine_tags.yml → Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/magazine_tags.yml

@@ -285,7 +285,7 @@
 - type: Tag
   id: civ13_magazine_shotgun_beanbag_box_(.12_gauge)
 - type: Tag
-  id: civ13_magazine_AK_74_magazine_(5.45x39mm_Rubber)
+  id: civ13_magazine_AK_74_magazine_(5.45x39mm)
 - type: Tag
   id: civ13_magazine_shotgun_breaching_slug_box_(.12_gauge)
 - type: Tag
@@ -309,7 +309,7 @@
 - type: Tag
   id: civ13_magazine_Sten_Magazine_(9x19mm)
 - type: Tag
-  id: civ13_magazine_erma_emp_magazine_(9x19mm)
+  id: civ13_magazine_mp40_(9x19mm)
 - type: Tag
   id: civ13_magazine_MP5_magazine_(9x19mm)
 - type: Tag
@@ -364,6 +364,8 @@
   id: civ13_magazine_BAR_magazine_(30_06)
 - type: Tag
   id: civ13_magazine_Thompson_magazine_(.45)
+- type: Tag
+  id: civ13_magazine_Thompson_drum_magazine_(.45)
 - type: Tag
   id: civ13_magazine_Desert_eagle_magazine_(50cal)
 - type: Tag
@@ -372,6 +374,8 @@
   id: civ13_magazine_Browning_hi_power_magazine
 - type: Tag
   id: civ13_magazine_Makeshift_AK_47_magazine_(7.62x39mm)
+- type: Tag
+  id: civ13_magazine_AK47_(7.62x39mm)
 - type: Tag
   id: civ13_magazine_RPK_47_drum_(7.62x39mm)
 - type: Tag
@@ -462,6 +466,8 @@
   id: civ13_magazine_bergmann_(8x22mm)
 - type: Tag
   id: civ13_magazine_AR15_magazine_(5.56x45mm)
+- type: Tag
+  id: civ13_magazine_STANAG_magazine_(5.56x45mm)
 - type: Tag
   id: civ13_magazine_clip_(7.62x39mm)
 - type: Tag

+ 262 - 0
Resources/Prototypes/Civ14/Entities/Objects/Guns/ar_ar15.yml

@@ -0,0 +1,262 @@
+- type: entity
+  name: AR-10
+  parent: BaseGunCivAR
+  id: civ13_ar_AR_10
+  description: An ArmaLite battle rifle, chambered in 7.62x51mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ar10.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ar10.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.62x51mm NATO
+      fireRate: 4.8 # ~700 RPM
+      minAngle: 58 # Significant recoil
+      maxAngle: 140
+      angleIncrease: 7.5
+      angleDecay: 22 # Slower recovery
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/battle_rifle.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_AR_10_magazine_(7.62x51mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_AR_10_magazine_(7.62x51mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51
+- type: entity
+  name: AR-15
+  parent: BaseGunCivAR
+  id: civ13_ar_AR_15
+  description: >-
+    A civilian market version of ArmaLite's AR-15, single-fire only. Has
+    railings for several attachments.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ar15.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ar15.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.56x45mm
+      fireRate: 5.5 # Represents fast cycling for semi-auto
+      minAngle: 40 # Low recoil
+      maxAngle: 80
+      angleIncrease: 3.0
+      angleDecay: 35 # Quick recovery
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_AR15_magazine_(5.56x45mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_AR15_magazine_(5.56x45mm)
+              - civ13_magazine_STANAG_magazine_(5.56x45mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a556x45
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a556x45
+
+- type: entity
+  name: M16A1
+  parent: BaseGunCivAR
+  id: civ13_ar_M16A1
+  description: An American assault rifle, chambered in 5.56x45mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m16.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/m16.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.56x45mm
+      fireRate: 5.8 # ~750-900 RPM
+      minAngle: 42 # Good control, long rifle
+      maxAngle: 85
+      angleIncrease: 3.2
+      angleDecay: 33
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_STANAG_magazine_(5.56x45mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_STANAG_magazine_(5.56x45mm)
+              - civ13_magazine_AR15_magazine_(5.56x45mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a556x45
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a556x45
+
+- type: entity
+  name: M16A2
+  parent: civ13_ar_M16A1
+  id: civ13_ar_M16A2
+  description: A modernized version of the M16, with burst fire instead of automatic.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m16.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/m16.rsi
+    - type: Gun
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+        - Burst
+
+- type: entity
+  name: M16A4
+  parent: civ13_ar_M16A1
+  id: civ13_ar_M16A4
+  description: A modernized version of the M16, with a railed upper receiver and handguard.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m16a4.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/m16a4.rsi
+    - type: Gun
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+        - Burst
+# M4s
+
+- type: entity
+  name: XM177E2
+  parent: civ13_ar_M16A1
+  id: civ13_ar_XM177E2
+  description: A carbine version of the AR-15/M16, chambered in 5.56x45mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m4.rsi
+    - type: Clothing
+      quickEquip: true
+      sprite: Civ14/Weapons/Guns/m4.rsi
+    # Merged and updated Gun component for XM177E2
+    - type: Gun
+      projectileSpeed: 29 # 5.56mm carbine, shorter barrel
+      fireRate: 6.0 # ~750-950 RPM, can be lively
+      minAngle: 45 # More jumpy than M16
+      maxAngle: 95
+      angleIncrease: 4.0
+      angleDecay: 30
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+        - Burst
+        - FullAuto
+- type: entity
+  name: M4 Carbine
+  parent: civ13_ar_XM177E2
+  id: civ13_ar_M4_Carbine
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m4.rsi
+    - type: Clothing
+      quickEquip: true
+      sprite: Civ14/Weapons/Guns/m4.rsi
+    - type: Gun
+      projectileSpeed: 29 # 5.56mm carbine
+      fireRate: 5.9 # ~700-900 RPM, slightly more refined than XM177E2
+      minAngle: 44 # Good control for a carbine
+      maxAngle: 90
+      angleIncrease: 3.8
+      angleDecay: 31
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+        - FullAuto
+
+- type: entity
+  name: M4 MWS
+  parent: civ13_ar_M4_Carbine
+  id: civ13_ar_M4_MWS
+  description: A version of the M4 carbine made to fit the Modular Weapon System.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m4mws.rsi
+    - type: Clothing
+      quickEquip: true
+      sprite: Civ14/Weapons/Guns/m4mws.rsi
+
+- type: entity
+  name: C7
+  parent: civ13_ar_M16A1
+  id: civ13_ar_C7
+  description: A Canadian Colt C7 assault rifle, chambered in 5.56x45mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/c7.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/c7.rsi
+    - type: Gun
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+        - FullAuto
+
+- type: entity
+  name: C8
+  parent: civ13_ar_M4_Carbine
+  id: civ13_ar_C8
+  description: A Canadian Colt C8 assault rifle, chambered in 5.56x45mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/c8.rsi
+    - type: Clothing
+      quickEquip: true
+      sprite: Civ14/Weapons/Guns/c8.rsi
+    - type: Gun
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+        - FullAuto
+
+- type: entity
+  name: Service Rifle
+  parent: civ13_ar_M16A1
+  id: civ13_ar_Service_Rifle
+  description: >-
+    A pre-war rifle design employed as the standard arm of the New California
+    Republic.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/service_rifle.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/service_rifle.rsi

+ 409 - 0
Resources/Prototypes/Civ14/Entities/Objects/Guns/ar_kalashnikov.yml

@@ -0,0 +1,409 @@
+# kalashnikovs and related weapons
+
+- type: entity
+  name: AKM
+  parent: BaseGunCivAR
+  id: civ13_ar_AKM
+  description: Iconic Soviet assault rifle, chambered in 7.62x39mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak47.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak47.rsi
+    - type: Gun
+      projectileSpeed: 30 # Base 7.62x39mm
+      minAngle: 52 # Standard AKM recoil profile
+      maxAngle: 125
+      angleIncrease: 6
+      angleDecay: 25
+      fireRate: 4 # ~600 RPM
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_AK47_(7.62x39mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_AK47_(7.62x39mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x39
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x39
+- type: entity
+  name: gold-plated AKM
+  parent: civ13_ar_AKM
+  id: civ13_ar_gold_plated_AKM
+  description: >-
+    Iconic Soviet assault rifle, chambered in 7.62x39mm. This one is plated in
+    gold. It looks very expensive.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak47gold.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak47gold.rsi
+
+- type: entity
+  name: AKMS
+  parent: civ13_ar_AKM
+  id: civ13_ar_AKMS
+  description: >-
+    Iconic Soviet assault rifle, chambered in 7.62x39mm. This one has a wire
+    underfolding stock.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/akms.rsi
+    - type: Clothing
+      quickEquip: true
+      sprite: Civ14/Weapons/Guns/akms.rsi
+    - type: Gun # AKMS with folding stock, slightly less stable
+      maxAngle: 130 # Slightly wider max spread than AKM
+      angleIncrease: 6.2 # Slightly more kick per shot than AKM
+      # Inherits other gun stats from AKM
+
+- type: entity
+  name: AK-74
+  parent: civ13_ar_AKM
+  id: civ13_ar_AK_74
+  description: Soviet assault rifle, chambered in 5.45x39mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak74.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak74.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.45x39mm
+      fireRate: 4.2 # ~650 RPM, slightly faster
+      minAngle: 48 # Less recoil than AKM
+      maxAngle: 100
+      angleIncrease: 4.5
+      angleDecay: 28 # Recovers a bit faster
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AK74.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_AK_74_magazine_(5.45x39mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_AK_74_magazine_(5.45x39mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a545x39
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a545x39
+- type: entity
+  name: AKS-74
+  parent: civ13_ar_AK_74
+  id: civ13_ar_AKS_74
+  description: Soviet assault rifle chambered in 5.45x39mm, with a folding stock.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/aks74.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/aks74.rsi
+      quickEquip: true
+    - type: Gun # AKS-74 with folding stock
+      maxAngle: 105 # Slightly wider max spread than AK-74
+      angleIncrease: 4.7 # Slightly more kick per shot than AK-74
+      # Inherits other gun stats from AK-74
+
+- type: entity
+  name: AKS-74U
+  parent: civ13_ar_AK_74
+  id: civ13_ar_AKS_74U
+  description: Soviet compact assault rifle, chambered in 5.45x39mm, with a folding stock.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/aks74u.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/aks74u.rsi
+    - type: Gun # AKS-74U Carbine "Krinkov"
+      projectileSpeed: 27 # Shorter barrel, lower velocity
+      fireRate: 4.8 # Higher RoF ~700-750 RPM
+      minAngle: 50 # More jumpy
+      maxAngle: 115
+      angleIncrease: 5.5
+      angleDecay: 26
+
+- type: entity
+  name: AKS-74U SpecOps
+  parent: civ13_ar_AK_74
+  id: civ13_ar_AKS_74U_SpecOps
+  description: >-
+    Soviet assault carbine version of the AK-74, chambered in 5.45x39mm, with a
+    folding stock. This one has picatinny rails for attachments.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/aks74uso.rsi
+    - type: Clothing
+      quickEquip: true
+      sprite: Civ14/Weapons/Guns/aks74uso.rsi
+    - type: Gun # AKS-74U SpecOps, similar to AKS-74U, maybe slightly better handling
+      projectileSpeed: 27
+      fireRate: 4.8
+      minAngle: 48 # Slightly better control
+      maxAngle: 110
+      angleIncrease: 5.2
+      angleDecay: 27
+
+- type: entity
+  name: AK-74M
+  parent: civ13_ar_AK_74
+  id: civ13_ar_AK_74M
+  description: Russian assault rifle, chambered in 5.45x39mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak74m.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak74m.rsi
+    - type: Gun # AK-74M, modernized AK-74
+      minAngle: 47 # Better ergonomics, improved control
+      maxAngle: 95
+      angleIncrease: 4.3
+      angleDecay: 29 # Recovers faster
+      # Inherits projectileSpeed, fireRate, soundGunshot from AK-74
+
+- type: entity
+  name: AK-101
+  parent: civ13_ar_AK_74
+  id: civ13_ar_AK_101
+  description: A modern Russian AK variant, chambered in NATO 5.56x45mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.56x45mm NATO
+      fireRate: 4.2 # ~650 RPM, similar to AK-74M
+      minAngle: 47 # Good control, similar to AK-74M
+      maxAngle: 95
+      angleIncrease: 4.3
+      angleDecay: 29
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_AK_101_magazine_(5.46x45mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_AK_101_magazine_(5.46x45mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a556x45
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a556x45
+- type: entity
+  name: AK-102
+  parent: civ13_ar_AK_101
+  id: civ13_ar_AK_102
+  description: >-
+    A modern Russian AK variant, chambered in NATO 5.56x45mm. This is a carbine
+    version of the AK-101.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Gun # AK-102 Carbine (5.56x45mm)
+      projectileSpeed: 28 # Shorter barrel
+      fireRate: 4.6 # Higher RoF
+      minAngle: 49
+      maxAngle: 110 # More jumpy than full-size
+      angleIncrease: 5.0
+      angleDecay: 27
+
+- type: entity
+  name: AK-103
+  parent: civ13_ar_AKM
+  id: civ13_ar_AK_103
+  description: A modern Russian AK variant, chambered in 7.62x39mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Gun
+      projectileSpeed: 30 # 7.62x39mm
+      fireRate: 4.0 # ~600 RPM, like AKM
+      minAngle: 50 # Slightly better control than base AKM due to modern design
+      maxAngle: 120
+      angleIncrease: 5.8
+      angleDecay: 26
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+
+- type: entity
+  name: AK-104
+  parent: civ13_ar_AK_103
+  id: civ13_ar_AK_104
+  description: >-
+    A modern Russian AK variant, chambered in 7.62x39mm. This is a carbine
+    version of the AK-103.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Gun # AK-104 Carbine (7.62x39mm)
+      projectileSpeed: 28 # Shorter barrel
+      fireRate: 4.3 # Slightly higher RoF
+      minAngle: 55 # More initial kick due to caliber and short barrel
+      maxAngle: 140 # Wider spread
+      angleIncrease: 7.0 # More climb
+      angleDecay: 23 # Slower to settle
+
+- type: entity
+  name: AK-105
+  parent: civ13_ar_AK_74
+  id: civ13_ar_AK_105
+  description: >-
+    A modern Russian AK variant, chambered in 5.45x39mm. This is a carbine
+    version of the AK-74M.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+    - type: Gun # AK-105 Carbine (5.45x39mm), similar to AKS-74U/AK-74M carbine
+      projectileSpeed: 27
+      fireRate: 4.8
+      minAngle: 49 # Bit better than older Krinkovs
+      maxAngle: 110
+      angleIncrease: 5.3
+      angleDecay: 27
+
+- type: entity
+  name: AK-12
+  parent: civ13_ar_AK_74
+  id: civ13_ar_AK_12
+  description: A fifth generation Modern AK variant, chambered in 5.45x39mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak12.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak12.rsi
+    - type: Gun # AK-12 (5.45x39mm), modern design
+      projectileSpeed: 31 # Potentially slightly higher velocity/consistency
+      fireRate: 5.0 # ~700 RPM
+      minAngle: 42 # Very controllable for an AK
+      maxAngle: 85
+      angleIncrease: 3.8
+      angleDecay: 32 # Recovers well
+
+- type: entity
+  name: AK-15
+  parent: civ13_ar_AKM
+  id: civ13_ar_AK_15
+  description: A fifth generation Modern AK variant, chambered in 7.62x39mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ak12.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak12.rsi
+    - type: Gun
+      projectileSpeed: 30 # 7.62x39mm
+      fireRate: 4.8 # ~700 RPM, similar to AK-12
+      minAngle: 48 # More kick than AK-12 but better than AKM
+      maxAngle: 110
+      angleIncrease: 5.0
+      angleDecay: 28
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+
+- type: entity
+  name: Makeshift AK-47
+  parent: civ13_ar_AKM
+  id: civ13_ar_Makeshift_AK_47
+  description: Looks like someone did a really bad job at "UpGRaDinG" their AK.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/makeshiftak.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/makeshiftak.rsi
+    - type: Gun
+      projectileSpeed: 29 # Unreliable
+      fireRate: 3.8 # Slower, clunkier
+      minAngle: 60 # Poor initial accuracy
+      maxAngle: 150 # Very wide spread
+      angleIncrease: 7.5 # Lots of kick
+      angleDecay: 20 # Hard to recover
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_Makeshift_AK_47_magazine_(7.62x39mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_Makeshift_AK_47_magazine_(7.62x39mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x39
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x39
+
+- type: entity
+  name: VZ-58
+  parent: civ13_ar_AKM
+  id: civ13_ar_VZ_58
+  description: Czechoslovakian assault rifle chambered in 7.62x39mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/vz58.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/vz58.rsi
+    - type: Gun
+      projectileSpeed: 30 # 7.62x39mm
+      fireRate: 5.8 # ~800 RPM, very fast
+      minAngle: 54
+      maxAngle: 135 # Higher RoF makes it climb
+      angleIncrease: 6.5
+      angleDecay: 24
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+
+- type: entity
+  name: White VZ-58
+  parent: civ13_ar_VZ_58
+  id: civ13_ar_White_VZ_58
+  description: >-
+    Czechoslovakian assault rifle chambered in 7.62x39mm. This model has a birch
+    stock and handguard.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/white_vz58.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/white_vz58.rsi
+
+- type: entity
+  name: Black VZ-58
+  parent: civ13_ar_VZ_58
+  id: civ13_ar_Black_VZ_58
+  description: >-
+    Czechoslovakian assault rifle chambered in 7.62x39mm. This model has a black
+    stock and handguard.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/black_vz58.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/black_vz58.rsi

+ 25 - 0
Resources/Prototypes/Civ14/Entities/Objects/Guns/base.yml

@@ -0,0 +1,25 @@
+- type: entity
+  parent: BaseItem
+  id: BaseGunCiv
+  name: A gun
+  abstract: true
+  components:
+    - type: STWeight
+      self: 2.7
+    - type: Clothing
+      equipDelay: 1
+      slots:
+        - Back
+      quickEquip: false
+    - type: AmmoCounter
+    - type: Item
+      size: Large
+      shape:
+        - 0,0,5,1
+    - type: Sprite
+      layers:
+        - state: icon
+          map: ["enum.GunVisualLayers.Base"]
+        - state: mag-0
+          map: ["enum.GunVisualLayers.Mag"]
+    - type: Appearance

+ 504 - 0
Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_assaultrifles.yml

@@ -0,0 +1,504 @@
+- type: entity
+  name: BaseGunAR
+  parent: BaseGunCiv
+  id: BaseGunCivAR
+  suffix: AR
+  description: An assault rifle.
+  abstract: true
+  components:
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ak101.rsi
+      quickEquip: false
+      slots:
+        - Back
+    - type: GunRequiresWield
+    - type: Item
+      size: Large
+      shape:
+        - 0,0,5,1
+    - type: Sprite
+      layers:
+        - state: icon
+          map: ["enum.GunVisualLayers.Base"]
+        - state: mag-0
+          map: ["enum.GunVisualLayers.Mag"]
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          priority: 3
+          insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
+          ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
+        gun_chamber:
+          name: Chamber
+          priority: 1
+          startingItem: civ13_caliber_a762x39
+          whitelist:
+            tags:
+              - civ13_caliber_a762x39
+    - type: ContainerContainer
+      containers:
+        gun_magazine: !type:ContainerSlot
+        gun_chamber: !type:ContainerSlot
+    - type: Wieldable
+    - type: GunWieldBonus
+      minAngle: -40
+      maxAngle: -40
+    - type: Gun
+      projectileSpeed: 30
+      minAngle: 52
+      maxAngle: 125
+      angleIncrease: 6
+      angleDecay: 25
+      fireRate: 4
+      selectedMode: SemiAuto
+      availableModes:
+        - FullAuto
+        - SemiAuto
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+    - type: ChamberMagazineAmmoProvider
+      boltClosed: true
+      soundRack:
+        path: /Audio/Weapons/Guns/Cock/ltrifle_cock.ogg
+    - type: MagazineVisuals
+      magState: mag
+      steps: 1
+      zeroVisible: true
+
+# imported
+- type: entity
+  name: StG-44
+  parent: BaseGunCivAR
+  id: civ13_ar_StG_44
+  description: German assault rifle chambered in 7.92x33mm Kurz, 30 round magazine.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/stg.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/stg.rsi
+    - type: Gun
+      projectileSpeed: 28 # 7.92 Kurz is a bit slower
+      fireRate: 3.7 # ~500 RPM
+      minAngle: 50
+      maxAngle: 110 # More controllable than base AK
+      angleIncrease: 5.0
+      angleDecay: 27
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/stg.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_StG_44_magazine_(7.92x33mm)
+
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_StG_44_magazine_(7.92x33mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a792x33
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a792x33
+- type: entity
+  name: "H&K G3"
+  parent: BaseGunCivAR
+  id: "civ13_ar_H&K_G3"
+  description: A German battle rifle, chambered in 7.62x51mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/g3.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/g3.rsi
+    - type: Gun
+      projectileSpeed: 32 # Full power 7.62 NATO
+      fireRate: 3.8 # ~500-600 RPM
+      minAngle: 60 # Higher recoil
+      maxAngle: 150
+      angleIncrease: 8.0
+      angleDecay: 20 # Slower recoil recovery
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/battle_rifle.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_G3_magazine_(7.62x51mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_G3_magazine_(7.62x51mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51
+
+- type: entity
+  name: FN Fal
+  parent: BaseGunCivAR
+  id: civ13_ar_FN_Fal
+  description: A Belgian battle rifle, chambered in 7.62x51mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/fal.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/fal.rsi
+    - type: Gun
+      projectileSpeed: 32 # Full power 7.62 NATO
+      fireRate: 4.5 # ~650-700 RPM
+      minAngle: 62 # Significant recoil
+      maxAngle: 160
+      angleIncrease: 8.5
+      angleDecay: 18 # Hard to control on full auto
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/fnfal.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_FN_Fal_magazine_(7.62x51mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_FN_Fal_magazine_(7.62x51mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51
+
+- type: entity
+  name: FN SCAR-L
+  parent: BaseGunCivAR
+  id: civ13_ar_FN_SCAR_L
+  description: A Belgian assault rifle, chambered in 5.56x45mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/scar.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/scar.rsi
+    - type: Gun
+      projectileSpeed: 30 # Standard 5.56
+      fireRate: 4.5 # ~550-650 RPM
+      minAngle: 45 # Very controllable
+      maxAngle: 95
+      angleIncrease: 4.0
+      angleDecay: 30 # Recovers quickly
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_STANAG_magazine_(5.56x45mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_STANAG_magazine_(5.56x45mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a556x45
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a556x45
+
+- type: entity
+  name: FN SCAR-H
+  parent: BaseGunCivAR
+  id: civ13_ar_FN_SCAR_H
+  description: A Belgian-designed automatic rifle, chambered in 7.62x51mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/scar.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/scar.rsi
+    - type: Gun
+      projectileSpeed: 32 # Full power 7.62 NATO
+      fireRate: 4.2 # ~600 RPM
+      minAngle: 55 # More controllable than older .308s
+      maxAngle: 130
+      angleIncrease: 7.0
+      angleDecay: 22
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M14.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_SCAR_H_magazine_(7.62x51mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_SCAR_H_magazine_(7.62x51mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51
+
+- type: entity
+  name: M14
+  parent: BaseGunCivAR
+  id: civ13_ar_M14
+  description: An American battle rifle, chambered in 7.62x51mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m14.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/m14.rsi
+    - type: Gun
+      projectileSpeed: 32 # Full power 7.62 NATO
+      fireRate: 4.8 # ~700-750 RPM, very fast for caliber
+      minAngle: 65 # Very high recoil
+      maxAngle: 170
+      angleIncrease: 9.5 # Difficult to control
+      angleDecay: 17 # Slowest recoil recovery
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M14Alt.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_M14_magazine_(7.62x51mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_M14_magazine_(7.62x51mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51
+
+- type: entity
+  name: QBZ-95
+  parent: BaseGunCivAR
+  id: civ13_ar_QBZ_95
+  description: A Chinese-designed bullup assault rifle, chambered in 5.8x42mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/qbz95.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/qbz95.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.8x42mm, similar to other intermediate
+      fireRate: 4.3 # ~650 RPM
+      minAngle: 46 # Good control for a bullpup
+      maxAngle: 90
+      angleIncrease: 4.2
+      angleDecay: 29
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M14.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_QBZ_95_magazine_(5.8x42mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_QBZ_95_magazine_(5.8x42mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a58x42
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a58x42
+
+- type: entity
+  name: M2 carbine
+  parent: BaseGunCivAR
+  id: civ13_ar_M2_carbine
+  description: >-
+    An American Selective fire carbine using 7.62x33mm (Rimless .30 Carbine)
+    ammunition in a external magazine.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mcar.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/mcar.rsi
+    - type: Gun
+      projectileSpeed: 25 # .30 Carbine, lower velocity
+      fireRate: 5.0 # ~750 RPM
+      minAngle: 40 # Low recoil round
+      maxAngle: 80
+      angleIncrease: 3.5
+      angleDecay: 30
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Garand.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_M1_Carbine_Small_magazine_(7.62x33mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_M1_Carbine_Small_magazine_(7.62x33mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x33
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x33
+- type: entity
+  name: SR-3
+  parent: BaseGunCivAR
+  id: civ13_ar_SR_3
+  description: Russian Compact Carbine chambered in 9x39mm, comes with a compact stock.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/srm.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/srm.rsi
+    - type: Gun
+      projectileSpeed: 22 # 9x39mm subsonic, heavy
+      fireRate: 6.0 # ~900 RPM, very fast
+      minAngle: 48 # Manageable due to subsonic nature, but high RoF
+      maxAngle: 100
+      angleIncrease: 5.0 # Will climb on full auto
+      angleDecay: 27
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/PPSh.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_SR_3_magazine_(9x39mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_SR_3_magazine_(9x39mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a9x39
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a9x39
+- type: entity
+  name: L85A2
+  parent: BaseGunCivAR
+  id: civ13_ar_L85A2
+  description: >-
+    The L85A2 (also known as the SA80) rifle is a service rifle used by the
+    British since 1987. A bullpup rifle by design, it is a very compact rifle
+    while still having a relatively long barrel. It's chambered in 5.56x45mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/l85a2.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/l85a2.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.56x45mm
+      fireRate: 4.8 # ~700 RPM
+      minAngle: 44 # Good control (A2 version)
+      maxAngle: 88
+      angleIncrease: 3.9
+      angleDecay: 31
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_STANAG_magazine_(5.56x45mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_STANAG_magazine_(5.56x45mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a556x45
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a556x45
+- type: entity
+  name: Steyr AUG
+  parent: BaseGunCivAR
+  id: civ13_ar_Steyr_AUG
+  description: >-
+    The Steyr AUG is an Austrian bullpup assault rifle designed in the 1960s by
+    Steyr-Daimler-Puch. It's chambered in 5.56x45mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/aug.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/aug.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.56x45mm
+      fireRate: 4.9 # ~720 RPM
+      minAngle: 43 # Excellent control for a bullpup
+      maxAngle: 85
+      angleIncrease: 3.7
+      angleDecay: 32
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M4A1.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_STANAG_magazine_(5.56x45mm)
+
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_STANAG_magazine_(5.56x45mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a556x45
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a556x45
+- type: entity
+  name: "HK417"
+  parent: BaseGunCivAR
+  id: civ13_ar_HK417
+  description: A modern German battle rifle, chambered in 7.62x51mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/hk417.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/hk417.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.62x51mm NATO
+      fireRate: 4.0 # ~600 RPM
+      minAngle: 56 # Solid kick
+      maxAngle: 135 # Controllable for its class
+      angleIncrease: 7.2 # Noticeable climb
+      angleDecay: 23 # Good recovery
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/battle_rifle.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_G3_magazine_(7.62x51mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_G3_magazine_(7.62x51mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51

+ 198 - 28
Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_boltaction.yml

@@ -1,9 +1,10 @@
 - type: entity
   name: bolt-action rifle
-  parent: BaseItem
+  parent: BaseGunCiv
   id: BaseWeaponBoltAction
   description: A bolt-action rifle.
   abstract: true
+  suffix: Bolt-Action
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/mosin.rsi
@@ -14,6 +15,7 @@
           map: ["enum.GunVisualLayers.Mag"]
     - type: STWeight
       self: 5
+    - type: GunRequiresWield
     - type: Item
       size: Large
       shape:
@@ -45,17 +47,16 @@
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Mosin.ogg
-      projectileSpeed: 50
-      minAngle: 50
-      maxAngle: 80
-      angleIncrease: 5
-      angleDecay: 25
-      fireRate: 0.3
+      projectileSpeed: 50 # High velocity for rifle rounds
+      minAngle: 3 # Base accuracy for an aimed shot (very good)
+      maxAngle: 60 # Maximum upward/sideways kick angle
+      angleIncrease: 20 # Initial jump/kick from firing a powerful round
+      angleDecay: 35 # Speed of aim recovery/settling after shot
+      fireRate: 0.8 # Approx 1.25 sec per shot (cycling + re-aim)
     - type: Wieldable
     - type: GunWieldBonus
       minAngle: -50
       maxAngle: -50
-
 # Imported
 
 - type: entity
@@ -73,7 +74,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # Single-shot, large caliber
+      projectileSpeed: 45
+      minAngle: 4
+      maxAngle: 70
+      angleIncrease: 25
+      angleDecay: 30
+      fireRate: 0.4 # Slow to load single round
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -98,7 +105,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # Single-shot, large caliber
+      projectileSpeed: 45
+      minAngle: 4
+      maxAngle: 70
+      angleIncrease: 25
+      angleDecay: 30
+      fireRate: 0.4 # Slow to load single round
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -123,7 +136,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # Single-shot, large caliber
+      projectileSpeed: 45
+      minAngle: 4
+      maxAngle: 70
+      angleIncrease: 25
+      angleDecay: 30
+      fireRate: 0.4 # Slow to load single round
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -161,7 +180,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # Single-shot, makeshift
+      projectileSpeed: 48
+      minAngle: 10 # Poorly made
+      maxAngle: 90
+      angleIncrease: 30 # Unwieldy
+      angleDecay: 20
+      fireRate: 0.3 # Clumsy to reload
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Mosin.ogg
     - type: BallisticAmmoProvider
@@ -189,6 +214,12 @@
     - type: Item
       size: Ginormous
     - type: Gun
+      projectileSpeed: 60 # Very high velocity .50 BMG
+      minAngle: 5 # Precision despite power
+      maxAngle: 120 # Massive kick
+      angleIncrease: 50
+      angleDecay: 15 # Slow to resettle
+      fireRate: 0.2 # Very slow, single heavy round
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/BarrettM99.ogg
     - type: BallisticAmmoProvider
@@ -218,6 +249,12 @@
     - type: Item
       size: Ginormous
     - type: Gun
+      projectileSpeed: 65 # 14.5mm
+      minAngle: 6
+      maxAngle: 150 # Extreme kick
+      angleIncrease: 60
+      angleDecay: 10
+      fireRate: 0.15 # Extremely slow, single heavy round
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/ptrd.ogg
     - type: BallisticAmmoProvider
@@ -245,6 +282,12 @@
     - type: Item
       size: Ginormous
     - type: Gun
+      projectileSpeed: 62 # 7.92x94mm Patrone 318
+      minAngle: 6
+      maxAngle: 140
+      angleIncrease: 55
+      angleDecay: 12
+      fireRate: 0.18 # Very slow, single heavy round
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/ptrd.ogg
     - type: BallisticAmmoProvider
@@ -267,7 +310,7 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # Standard Mosin stats (inherits from base)
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Mosin.ogg
     - type: BallisticAmmoProvider
@@ -295,6 +338,7 @@
     - type: STWeight
       self: 4
     - type: Gun
+      # Inherits most from BaseWeaponBoltAction, sound is same
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Mosin.ogg
     - type: BallisticAmmoProvider
@@ -323,6 +367,12 @@
     - type: Item
       size: Normal
     - type: Gun
+      projectileSpeed: 35 # Sawn-off, lower velocity
+      minAngle: 15 # Very inaccurate base
+      maxAngle: 100 # Wild kick
+      angleIncrease: 40
+      angleDecay: 20 # Hard to control
+      fireRate: 0.7 # Clumsier to cycle
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Mosin.ogg
     - type: BallisticAmmoProvider
@@ -345,7 +395,12 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 6.5x50mm Arisaka
+      projectileSpeed: 48
+      minAngle: 3
+      maxAngle: 55 # Milder kick
+      angleIncrease: 18
+      angleDecay: 38
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -399,11 +454,21 @@
     - type: STWeight
       self: 4
     - type: BallisticAmmoProvider
+      # Gun component will inherit from Arisaka Type 30 (parent)
+      # and then be overridden here for 7.7mm stats
       capacity: 5
       proto: civ13_caliber_a77x58
       whitelist:
         tags:
           - civ13_caliber_a77x58
+    - type: Gun # 7.7x58mm Arisaka
+      projectileSpeed: 49
+      minAngle: 3
+      maxAngle: 60
+      angleIncrease: 20
+      angleDecay: 35
+      # fireRate inherits 0.8
+      # soundGunshot inherits Kar98k.ogg
 
 - type: entity
   name: Training Arisaka Type 99
@@ -423,6 +488,12 @@
     - type: STWeight
       self: 4
     - type: Gun
+      projectileSpeed: 15 # Wooden bullet
+      minAngle: 5
+      maxAngle: 20 # Very little kick
+      angleIncrease: 3
+      angleDecay: 45
+      # fireRate inherits 0.8
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/rifle.ogg
     - type: BallisticAmmoProvider
@@ -448,6 +519,12 @@
     - type: STWeight
       self: 6
     - type: Gun
+      projectileSpeed: 48 # 7.65x53mm Mauser
+      minAngle: 4 # Older design
+      maxAngle: 60
+      angleIncrease: 20
+      angleDecay: 33
+      fireRate: 0.75 # Slightly slower bolt
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -470,7 +547,12 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # Assuming 7.65x53mm based on proto
+      projectileSpeed: 48
+      minAngle: 3
+      maxAngle: 60
+      angleIncrease: 19
+      angleDecay: 35
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -495,7 +577,13 @@
       quickEquip: false
       slots:
         - Back
-
+    - type: Gun # Overrides for 7.65x53mm Mauser (if different from Gewehr 71 parent)
+      # projectileSpeed: 48 (inherited)
+      # minAngle: 4 (inherited)
+      # maxAngle: 60 (inherited)
+      # angleIncrease: 20 (inherited)
+      # angleDecay: 33 (inherited)
+      # fireRate: 0.75 (inherited)
     - type: BallisticAmmoProvider
       capacity: 5
       proto: civ13_caliber_a765x53
@@ -518,7 +606,13 @@
       quickEquip: false
       slots:
         - Back
-
+    - type: Gun # 7x57mm Mauser
+      projectileSpeed: 49
+      minAngle: 3
+      maxAngle: 58 # Well-balanced
+      angleIncrease: 19
+      angleDecay: 36
+      fireRate: 0.8 # Standard Mauser bolt
     - type: BallisticAmmoProvider
       capacity: 5
       proto: civ13_caliber_a7x57
@@ -554,7 +648,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 7.92x57mm Mauser
+      projectileSpeed: 50
+      minAngle: 3
+      maxAngle: 60
+      angleIncrease: 20
+      angleDecay: 35
+      fireRate: 0.85 # Smooth Mauser bolt
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -594,6 +694,10 @@
       quickEquip: false
       slots:
         - Back
+    - type: Gun # Kar98a - carbine version of G98
+      angleIncrease: 21 # Slightly snappier
+      angleDecay: 36 # Quicker handling
+      # Other stats inherited from Gewehr 98
 
 - type: entity
   name: Karabiner 98k
@@ -610,6 +714,10 @@
       quickEquip: false
       slots:
         - Back
+    - type: Gun # Kar98k - similar to Kar98a
+      angleIncrease: 21
+      angleDecay: 36
+      # Other stats inherited from Gewehr 98
 
 - type: entity
   name: Chiang Kai-Shek Rifle
@@ -626,6 +734,10 @@
       quickEquip: false
       slots:
         - Back
+    - type: Gun # Essentially a Kar98 variant
+      angleIncrease: 21
+      angleDecay: 36
+      # Other stats inherited from Gewehr 98
 
 - type: entity
   name: Volkssturmgewehr
@@ -640,7 +752,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 7.92x33mm Kurz
+      projectileSpeed: 40 # Intermediate cartridge
+      minAngle: 5 # Crude rifle
+      maxAngle: 45 # Low recoil round
+      angleIncrease: 12
+      angleDecay: 40
+      fireRate: 0.9 # Lighter bolt
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/stg.ogg
     - type: BallisticAmmoProvider
@@ -665,7 +783,12 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # .303 British
+      projectileSpeed: 49
+      minAngle: 3
+      maxAngle: 62
+      angleIncrease: 21
+      angleDecay: 34
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -688,7 +811,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 6.5x52mm Carcano
+      projectileSpeed: 47
+      minAngle: 4 # Mixed accuracy reputation
+      maxAngle: 55
+      angleIncrease: 18
+      angleDecay: 37
+      fireRate: 0.75
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -711,7 +840,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 8x53mm Murata
+      projectileSpeed: 46 # Older round
+      minAngle: 5
+      maxAngle: 65
+      angleIncrease: 22
+      angleDecay: 30
+      fireRate: 0.7
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -734,7 +869,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 7.62x54R, older bolt
+      projectileSpeed: 48
+      minAngle: 6
+      maxAngle: 70
+      angleIncrease: 25
+      angleDecay: 28
+      fireRate: 0.6 # Slower than Mosin
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -759,7 +900,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # .303 British, fast bolt
+      projectileSpeed: 49
+      minAngle: 3
+      maxAngle: 60
+      angleIncrease: 20
+      angleDecay: 36
+      fireRate: 0.9 # Known for fast bolt
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -784,7 +931,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 8x50mmR Lebel
+      projectileSpeed: 48
+      minAngle: 4
+      maxAngle: 65
+      angleIncrease: 22
+      angleDecay: 32
+      fireRate: 0.7 # Older bolt, tube mag
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -807,7 +960,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 8x50mmR Lebel, carbine
+      projectileSpeed: 47
+      minAngle: 4
+      maxAngle: 68 # Snappier recoil
+      angleIncrease: 23
+      angleDecay: 30
+      fireRate: 0.75 # Clip loading
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -843,7 +1002,13 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # 7.62x51mm NATO, modern sniper
+      projectileSpeed: 52
+      minAngle: 1 # Precision rifle
+      maxAngle: 50 # Good recoil management
+      angleIncrease: 18
+      angleDecay: 40
+      fireRate: 0.85 # Smooth modern bolt
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider
@@ -868,7 +1033,12 @@
       quickEquip: false
       slots:
         - Back
-    - type: Gun
+    - type: Gun # .30-06 Springfield
+      projectileSpeed: 51
+      minAngle: 3
+      maxAngle: 65
+      angleIncrease: 22
+      angleDecay: 33
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Kar98k.ogg
     - type: BallisticAmmoProvider

+ 735 - 0
Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_mg.yml

@@ -0,0 +1,735 @@
+- type: entity
+  name: BaseGunCivMG
+  parent: BaseGunCiv
+  id: BaseGunCivMG
+  description: A basic machinegun.
+  abstract: true
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/pkmp.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/pkmp.rsi
+      equipDelay: 3
+      quickEquip: false
+    - type: STWeight
+      self: 12
+    - type: Wieldable
+    - type: GunRequiresWield
+    - type: Item
+      size: Ginormous
+      shape:
+        - 0,0,8,2
+    - type: Gun
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/MG34.ogg
+        params:
+          volume: -2
+      selectedMode: FullAuto
+      availableModes:
+        - FullAuto
+      projectileSpeed: 32 # PKM: 7.62x54mmR
+      fireRate: 4.3 # PKM: ~650 RPM
+      minAngle: 5
+      maxAngle: 60
+      angleIncrease: 4
+      angleDecay: 20
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_PKM_ammo_belt_(7.62x54mmR)
+          whitelistFailPopup: gun-magazine-whitelist-fail
+          whitelist:
+            tags:
+              - civ13_magazine_PKM_ammo_belt_(7.62x54mmR)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x54
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x54
+
+- type: entity
+  name: PKM machine gun
+  parent: BaseGunCivMG
+  id: civ13_mg_PKM_machine_gun
+  description: A soviet machinegun chambered in 7.62x54mmR rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/pkmp.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/pkmp.rsi
+    - type: Gun
+      # Inherits all 6 firing stats from BaseGunCivMG (PKM)
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Maxim.ogg # This sound seems to be a placeholder for PKM
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_PKM_ammo_belt_(7.62x54mmR)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_PKM_ammo_belt_(7.62x54mmR)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x54
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x54
+
+- type: entity
+  name: Maschinengewehr 13
+  parent: BaseGunCivMG
+  id: civ13_mg_Maschinengewehr_13
+  description: German light machine chambered in 7.92x57mm rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mg13.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/mg13.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.92x57mm
+      fireRate: 4.0 # ~600 RPM
+      minAngle: 8 # Older LMG
+      maxAngle: 70
+      angleIncrease: 4.5
+      angleDecay: 18
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/MG34.ogg # Correct sound for MG13/34
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_MG34_magazine_(7.92x57mm)
+          whitelist:
+            tags:
+              - civ13_magazine_MG34_magazine_(7.92x57mm)
+        gun_chamber:
+          startingItem: civ13_caliber_a792x57
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a792x57
+
+- type: entity
+  name: MG34
+  parent: civ13_mg_Maschinengewehr_13
+  id: civ13_mg_MG34
+  description: "German light machinegun chambered in 7.92x57mm Mauser. An utterly devastating support weapon."
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mg34.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/mg34.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.92x57mm (inherited from parent, can be explicit)
+      fireRate: 6.0 # ~800-900 RPM
+      minAngle: 10 # Higher RoF than MG13
+      maxAngle: 80
+      angleIncrease: 5.0
+      angleDecay: 17
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/MG34.ogg # Correct sound
+
+- type: entity
+  name: MG42
+  parent: civ13_mg_MG34
+  id: civ13_mg_MG42
+  description: >-
+    German light machinegun chambered in 7.92x57mm Mauser. An utterly
+    devastating support weapon.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mg42.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/mg42.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.92x57mm (inherited from parent, can be explicit)
+      fireRate: 7.5 # ~1200-1500 RPM "Hitler's Buzzsaw"
+      minAngle: 15 # Very high recoil
+      maxAngle: 100
+      angleIncrease: 6.0
+      angleDecay: 15
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/MG42.ogg # Correct sound
+
+- type: entity
+  name: MG3
+  parent: civ13_mg_MG42
+  id: civ13_mg_MG3
+  description: >-
+    Modern German light machinegun chambered in 7.62x51mm. An utterly
+    devastating support weapon.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mg3.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/mg3.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.62x51mm
+      fireRate: 7.0 # ~1000-1300 RPM (modernized MG42)
+      minAngle: 12 # Still very high recoil
+      maxAngle: 90
+      angleIncrease: 5.5
+      angleDecay: 16
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/MG42.ogg # Similar sound to MG42
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_belt_(7.62x51mm)
+          whitelist:
+            tags:
+              - civ13_magazine_belt_(7.62x51mm)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51
+- type: entity
+  name: FN MAG machine gun
+  parent: BaseGunCivMG
+  id: civ13_mg_FN_MAG_machine_gun
+  description: >-
+    A Belgian general-purpose machine gun, designed in the early 1950s by Ernest
+    Vervier. It has been used by more than 80 countries and it has been made
+    under licence in several countries.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mg3.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/mg3.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.62x51mm
+      fireRate: 5.0 # ~750 RPM (FN MAG can vary)
+      minAngle: 6 # Good GPMG, comparable to PKM base
+      maxAngle: 65
+      angleIncrease: 4.2
+      angleDecay: 22
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M60.ogg # Placeholder, could be more distinct
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_belt_(7.62x51mm)
+          whitelist:
+            tags:
+              - civ13_magazine_belt_(7.62x51mm)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51
+
+- type: entity
+  name: Madsen light machine gun
+  parent: BaseGunCivMG
+  id: civ13_mg_Madsen_light_machine_gun
+  description: >-
+    The Madsen Machine Gun, is a light machine gun designed in Denmark in the
+    1896. Many countries ordered models of it in different calibers. This one is
+    7.62x54mmR, mosin rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/madsen.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/madsen.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.62x54mmR (as per item slot)
+      fireRate: 3.5 # ~450-500 RPM (Older LMG)
+      minAngle: 10 # Older, less refined
+      maxAngle: 75
+      angleIncrease: 5.0
+      angleDecay: 18
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Maxim.ogg # Placeholder
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_magazine_(7.62x54mm)
+          whitelist:
+            tags:
+              - civ13_magazine_magazine_(7.62x54mm)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x54
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x54
+- type: entity
+  name: Type 99 light machinegun
+  parent: BaseGunCivMG
+  id: civ13_mg_Type_99_light_machinegun
+  description: >-
+    The Type 99 light machine Gun, is a Japanese light machine gun refitted to
+    fit the new 7.7x58mm cartridge rather than the old 6.50x50mm rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/type99lmg.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/type99lmg.rsi
+    - type: Gun
+      projectileSpeed: 31 # 7.7x58mm Arisaka
+      fireRate: 3.8 # ~550 RPM
+      minAngle: 9
+      maxAngle: 70
+      angleIncrease: 4.8
+      angleDecay: 19
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/MG34.ogg # Placeholder
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_Type_99_Magazine
+          whitelist:
+            tags:
+              - civ13_magazine_Type_99_Magazine
+        gun_chamber:
+          startingItem: civ13_caliber_a77x58
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a77x58
+
+- type: entity
+  name: Type 96 light machinegun
+  parent: BaseGunCivMG
+  id: civ13_mg_Type_96_light_machinegun
+  description: >-
+    The Type 96 light machine Gun, is a Japanese light machine gun chambered in
+    6.50x50mm rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/type96lmg.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/type96lmg.rsi
+    - type: Gun
+      projectileSpeed: 30 # 6.5x50mm Arisaka (milder)
+      fireRate: 3.8 # ~550 RPM
+      minAngle: 7 # Milder round, better control
+      maxAngle: 65
+      angleIncrease: 4.2
+      angleDecay: 21
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Minimi.ogg # Placeholder
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_Type_96_Magazine
+          whitelist:
+            tags:
+              - civ13_magazine_Type_96_Magazine
+        gun_chamber:
+          startingItem: civ13_caliber_a65x50
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a65x50
+- type: entity
+  name: DP-28
+  parent: BaseGunCivMG
+  id: civ13_mg_DP_28
+  description: The DP-28 light machinegun. This one is in 7.62x54mmR.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/dp.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/dp.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.62x54mmR
+      fireRate: 3.8 # ~500-600 RPM
+      minAngle: 10 # Awkward pan magazine
+      maxAngle: 75
+      angleIncrease: 5.2
+      angleDecay: 18
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/DP28.ogg # Correct sound
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_DP_pan_(7.62x54mmR)
+          whitelist:
+            tags:
+              - civ13_magazine_DP_pan_(7.62x54mmR)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x54
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x54
+
+- type: entity
+  name: M1918A2 BAR
+  parent: BaseGunCivMG
+  id: civ13_mg_M1918A2_BAR
+  description: >-
+    The BAR, is a light machine gun (LMG) This one is chambered in .30-06
+    rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/bar.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/bar.rsi
+    - type: Gun
+      projectileSpeed: 33 # .30-06
+      fireRate: 3.7 # ~550 RPM (fast setting)
+      minAngle: 12 # Heavy automatic rifle
+      maxAngle: 85
+      angleIncrease: 6.0
+      angleDecay: 17
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M1918A2.ogg # Correct sound
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_BAR_magazine_(30_06)
+          whitelist:
+            tags:
+              - civ13_magazine_BAR_magazine_(30_06)
+        gun_chamber:
+          startingItem: civ13_caliber_a3006
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a3006
+
+- type: entity
+  name: M1919A6 Browning LMG
+  parent: BaseGunCivMG
+  id: civ13_mg_M1919A6_Browning_LMG
+  description: >-
+    An American squad support machinegun. Uses 30-06 rounds. Very heavy to carry
+    around.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/browlmg.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/browlmg.rsi
+    - type: Gun
+      projectileSpeed: 33 # .30-06
+      fireRate: 3.8 # ~500 RPM
+      minAngle: 8 # Heavy, stable GPMG
+      maxAngle: 70
+      angleIncrease: 5.0
+      angleDecay: 20
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M1919.ogg # Correct sound
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_browning_ammo_belt
+          whitelist:
+            tags:
+              - civ13_magazine_browning_ammo_belt
+        gun_chamber:
+          startingItem: civ13_caliber_a3006
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a3006
+
+- type: entity
+  name: M249 SAW
+  parent: BaseGunCivMG
+  id: civ13_mg_M249_SAW
+  description: >-
+    An American variant of the Belgian FN Minimi machinegun chambered in
+    5.56x45mm NATO rounds. Sucessor of the M60.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m249.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/m249.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.56x45mm
+      fireRate: 5.8 # ~850 RPM
+      minAngle: 4 # Controllable LMG
+      maxAngle: 55
+      angleIncrease: 3.5
+      angleDecay: 24
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Minimi.ogg # Correct sound
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_belt_(5.56x45mm)
+          whitelist:
+            tags:
+              - civ13_magazine_belt_(5.56x45mm)
+        gun_chamber:
+          startingItem: civ13_caliber_a556x45
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a556x45
+
+- type: entity
+  name: RPD machine gun
+  parent: BaseGunCivMG
+  id: civ13_mg_RPD_machine_gun
+  description: A soviet machinegun chambered in 7.62x39 rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/rpd.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/rpd.rsi
+    - type: Gun
+      projectileSpeed: 30 # 7.62x39mm
+      fireRate: 4.8 # ~700 RPM
+      minAngle: 6 # Intermediate cartridge LMG
+      maxAngle: 60
+      angleIncrease: 4.0
+      angleDecay: 22
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Maxim.ogg # Placeholder, RPD sound would be better
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_RPD_drum_(7.62x39)
+          whitelist:
+            tags:
+              - civ13_magazine_RPD_drum_(7.62x39)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x39
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x39
+
+- type: entity
+  name: C6 GPMG
+  parent: civ13_mg_FN_MAG_machine_gun
+  id: civ13_mg_C6_GPMG
+  description: >-
+    A Canadian License Produced FN MAG called the C6 GPMG, the main squad
+    support weapon of the CAF.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/c6.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/c6.rsi
+    - type: Gun
+      # Explicitly defining stats, though it inherits from FN MAG
+      projectileSpeed: 32 # 7.62x51mm
+      fireRate: 5.0 # ~750 RPM
+      minAngle: 6
+      maxAngle: 65
+      angleIncrease: 4.2
+      angleDecay: 22
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M60.ogg # Using M60 sound as specified
+
+- type: entity
+  name: M60
+  parent: BaseGunCivMG
+  id: civ13_mg_M60
+  description: >-
+    An american machinegun chambered in 7.62x51mm NATO rounds. Heavy and handles
+    like a pig.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/m60.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/m60.rsi
+    - type: Gun
+      projectileSpeed: 32 # 7.62x51mm
+      fireRate: 4.0 # ~550-600 RPM "The Pig"
+      minAngle: 10 # Unwieldy
+      maxAngle: 80
+      angleIncrease: 5.5
+      angleDecay: 18
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M60.ogg # Correct sound
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_belt_(7.62x51mm)
+          whitelist:
+            tags:
+              - civ13_magazine_belt_(7.62x51mm)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x51
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x51
+
+- type: entity
+  name: PKP machine gun
+  parent: civ13_mg_PKM_machine_gun
+  id: civ13_mg_PKP_machine_gun
+  description: A modernized soviet PKM machinegun chambered in 7.62x54mmR rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/pkp.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/pkp.rsi
+    - type: Gun
+      # PKP Pecheneg - Modernized PKM, inherits from PKM (BaseGunCivMG)
+      projectileSpeed: 32 # Explicit for clarity, same as base
+      fireRate: 4.8 # ~700 RPM, faster than base PKM
+      minAngle: 4 # Better control than base PKM
+      maxAngle: 55
+      angleIncrease: 3.8
+      angleDecay: 23
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Maxim.ogg # Placeholder, could be more distinct like PKM's actual sound
+
+- type: entity
+  name: RPK-74 machine gun
+  parent: BaseGunCivMG
+  id: civ13_mg_RPK_74_machine_gun
+  description: A soviet machinegun chambered in 5.45x39 rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/rpk74.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/rpk74.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.45x39mm
+      fireRate: 4.0 # ~600 RPM (like AK-74)
+      minAngle: 3 # Very controllable LMG
+      maxAngle: 50
+      angleIncrease: 3.0
+      angleDecay: 25
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AK74.ogg # Correct sound
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_RPK_74_magazine_(5.45x39)
+          whitelist:
+            tags:
+              - civ13_magazine_RPK_74_magazine_(5.45x39)
+        gun_chamber:
+          startingItem: civ13_caliber_a545x39
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a545x39
+
+- type: entity
+  name: RPK-16 machine gun
+  parent: civ13_mg_RPK_74_machine_gun
+  id: civ13_mg_RPK_16_machine_gun
+  description: A modernized russian RPK-74 machinegun chambered in 5.45x39 rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/rpk16.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/rpk16.rsi
+    - type: Gun
+      # RPK-16 - Modernized RPK-74, inherits from RPK-74
+      projectileSpeed: 30 # Explicit for clarity, same as parent
+      fireRate: 4.8 # ~700 RPM, faster than RPK-74
+      minAngle: 2 # Excellent control
+      maxAngle: 45
+      angleIncrease: 2.8
+      angleDecay: 28
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AK74.ogg # Correct sound
+
+- type: entity
+  name: RPK-47 machine gun
+  parent: BaseGunCivMG
+  id: civ13_mg_RPK_47_machine_gun
+  description: A soviet machinegun chambered in 7.62x39 rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/rpk47.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/rpk47.rsi
+    - type: Gun
+      projectileSpeed: 30 # 7.62x39mm
+      fireRate: 4.0 # ~600 RPM (like AKM)
+      minAngle: 5 # More kick than RPK-74, similar to PKM base
+      maxAngle: 60
+      angleIncrease: 4.0
+      angleDecay: 22
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_RPK_47_magazine_(7.62x39mm)
+          whitelist:
+            tags:
+              - civ13_magazine_RPK_47_magazine_(7.62x39mm)
+              - civ13_magazine_RPK_47_drum_(7.62x39mm)
+        gun_chamber:
+          startingItem: civ13_caliber_a762x39
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x39
+- type: entity
+  name: RPK-47M machine gun
+  parent: civ13_mg_RPK_47_machine_gun
+  id: civ13_mg_RPK_47M_machine_gun
+  description: A modernized Soviet machinegun chambered in 7.62x39 rounds.
+  components:
+    - type: Gun # Inherits from RPK-47, explicit stats for clarity
+      projectileSpeed: 30
+      fireRate: 4.0
+      minAngle: 5
+      maxAngle: 60
+      angleIncrease: 4.0
+      angleDecay: 22
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/AKM.ogg
+
+- type: entity
+  name: IWI Negev
+  parent: BaseGunCivMG
+  id: civ13_mg_IWI_Negev
+  description: An israeli machinegun chambered in 5.56x45mm NATO rounds.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/negev.rsi
+    - type: Clothing
+      slots: 0
+      sprite: Civ14/Weapons/Guns/negev.rsi
+    - type: Gun
+      projectileSpeed: 30 # 5.56x45mm
+      fireRate: 6.5 # ~1000 RPM (can be very high)
+      minAngle: 4 # Modern, good control despite RoF
+      maxAngle: 50
+      angleIncrease: 3.2
+      angleDecay: 26
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Minimi.ogg # Correct sound
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          startingItem: civ13_magazine_Negev_Belt_(5.56x45mm)
+          whitelist:
+            tags:
+              - civ13_magazine_Negev_Belt_(5.56x45mm)
+        gun_chamber:
+          startingItem: civ13_caliber_a556x45
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a556x45

+ 169 - 133
Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_pistol.yml

@@ -21,6 +21,11 @@
         - suitStorage
         - Belt
     - type: Gun
+      projectileSpeed: 20
+      minAngle: 5
+      maxAngle: 50
+      angleIncrease: 5
+      angleDecay: 25
       fireRate: 3
       selectedMode: SemiAuto
       availableModes:
@@ -62,19 +67,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/nambu_ww2.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/nambu_ww2.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 18 # 8mm Nambu is weaker
+      minAngle: 4
+      maxAngle: 45
+      angleIncrease: 4.2
+      angleDecay: 28
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Nambu.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -101,19 +107,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/luger.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/luger.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 20 # 9mm
+      minAngle: 6 # Older design, slightly more kick
+      maxAngle: 52
+      angleIncrease: 5.5
+      angleDecay: 24
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/9mm.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -140,19 +147,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/waltherp38.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/waltherp38.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 20 # 9mm
+      minAngle: 5
+      maxAngle: 50
+      angleIncrease: 5.2 # Solid, but older than Glock
+      angleDecay: 25
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/9mm.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -179,19 +187,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/glock17.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/glock17.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 4
-      selectedMode: SemiAuto
+      projectileSpeed: 20
+      minAngle: 5
+      maxAngle: 50
+      angleIncrease: 5
+      angleDecay: 25 # Base Glock 17 stats
+      fireRate: 3
       availableModes:
         - SemiAuto
+      selectedMode: SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/9mm.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -218,19 +227,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/sig250.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/sig250.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 4
+      projectileSpeed: 20 # 9mm
+      minAngle: 5
+      maxAngle: 48 # Modern, good control
+      angleIncrease: 4.8
+      angleDecay: 26
+      fireRate: 4 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/pistol.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -257,19 +267,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/pl14.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/pl14.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 6
+      projectileSpeed: 20 # 9mm
+      minAngle: 4 # Experimental, very good control
+      maxAngle: 40
+      angleIncrease: 3.5
+      angleDecay: 30
+      fireRate: 6 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/pistol.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -296,19 +307,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/mp443.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/mp443.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 20 # 9mm
+      minAngle: 5 # Standard modern 9mm
+      maxAngle: 50
+      angleIncrease: 5
+      angleDecay: 25
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/pistol.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -335,19 +347,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/tarusg3.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/tarusg3.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 4
+      projectileSpeed: 20 # 9mm
+      minAngle: 5
+      maxAngle: 48 # Modern, good control
+      angleIncrease: 4.8
+      angleDecay: 26
+      fireRate: 4 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/pistol.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -374,19 +387,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/p220.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/p220.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 18 # .45 ACP - slower, heavier
+      minAngle: 8 # More kick
+      maxAngle: 60
+      angleIncrease: 7
+      angleDecay: 20
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/45ACP.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -413,19 +427,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/iogb7.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/iogb7.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 9
+      projectileSpeed: 20 # 9mm
+      minAngle: 10 # "Fake shit" - very high RoF, wild recoil
+      maxAngle: 70
+      angleIncrease: 8
+      angleDecay: 22
+      fireRate: 9 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/pistol.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -452,19 +467,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/mauser.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/mauser.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 22 # 7.62x25mm - fast round
+      minAngle: 7
+      maxAngle: 55 # Noticeable kick, old design
+      angleIncrease: 6
+      angleDecay: 23
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/762x25.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -491,19 +507,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/borchardt.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/borchardt.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 19 # 7.65x25mm Borchardt - less powerful than Mauser
+      minAngle: 6
+      maxAngle: 50
+      angleIncrease: 5.5
+      angleDecay: 24
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/762x25.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -530,19 +547,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/coltpockethammerless.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/coltpockethammerless.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 17 # .32 ACP - weak
+      minAngle: 3
+      maxAngle: 35 # Very low recoil
+      angleIncrease: 3.5
+      angleDecay: 30
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/32ACP.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -569,19 +587,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/coltpockethammerless.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/coltpockethammerless.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 18 # .380 ACP
+      minAngle: 4
+      maxAngle: 40 # Low recoil
+      angleIncrease: 4
+      angleDecay: 28
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/9mm.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -608,19 +627,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/bergmann.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/bergmann.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 18 # Using 8mm Nambu stats as per chamber/sound
+      minAngle: 4
+      maxAngle: 45
+      angleIncrease: 4.2
+      angleDecay: 28
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Nambu.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -651,9 +671,13 @@
       sprite: Civ14/Weapons/Guns/colt.rsi
     - type: Clothing
       sprite: Civ14/Weapons/Guns/colt.rsi
-      quickEquip: false
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 18 # .45 ACP
+      minAngle: 8
+      maxAngle: 60 # Classic .45 kick
+      angleIncrease: 7
+      angleDecay: 20
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -684,19 +708,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/colt.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/colt.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 18 # .45 ACP
+      minAngle: 7
+      maxAngle: 58 # Slightly better handling 1911
+      angleIncrease: 6.5
+      angleDecay: 22
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/45ACP.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -725,19 +750,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/tt30.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/tt30.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 22 # 7.62x25mm Tokarev - fast
+      minAngle: 6
+      maxAngle: 55
+      angleIncrease: 5.8
+      angleDecay: 24
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/762x25.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -766,19 +792,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/makarov.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/makarov.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 19 # 9x18mm Makarov - intermediate power
+      minAngle: 5
+      maxAngle: 48
+      angleIncrease: 5.2
+      angleDecay: 26
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/762x25.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -805,19 +832,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/aps.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/aps.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 19 # 9x18mm Makarov
+      minAngle: 5 # Heavier than PM, slightly more stable for single shots
+      maxAngle: 50
+      angleIncrease: 5.5
+      angleDecay: 25
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/762x25.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -846,19 +874,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/m9beretta.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/m9beretta.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 20 # 9mm
+      minAngle: 5
+      maxAngle: 50 # Standard modern 9mm (like Glock)
+      angleIncrease: 5
+      angleDecay: 25
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/9mm.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -887,19 +916,21 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/tanm9.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/tanm9.rsi
-      quickEquip: false
-
+      quickEquip: true
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 20 # 9mm
+      minAngle: 5
+      maxAngle: 50 # Same as regular M9
+      angleIncrease: 5
+      angleDecay: 25
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/9mm.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -928,19 +959,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/jericho941.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/jericho941.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 20 # 9mm
+      minAngle: 5
+      maxAngle: 48 # Heavy frame, good control
+      angleIncrease: 4.8
+      angleDecay: 27
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/9mm.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -967,19 +999,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/deagle.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/deagle.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 20 # .50 AE
+      minAngle: 15 # Massive recoil
+      maxAngle: 80
+      angleIncrease: 12
+      angleDecay: 15
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/deagle.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -1006,19 +1039,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/deagle.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/deagle.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 21 # .44 Magnum - very powerful
+      minAngle: 12
+      maxAngle: 75
+      angleIncrease: 10
+      angleDecay: 18
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/deagle.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -1047,19 +1081,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/browning_hp.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/browning_hp.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 20 # 9mm
+      minAngle: 5
+      maxAngle: 48 # Classic, good handling
+      angleIncrease: 4.9
+      angleDecay: 26
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/9mm.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:
@@ -1088,19 +1123,20 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/sti2011.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/sti2011.rsi
-      quickEquip: false
-
     - type: Gun
-      fireRate: 3
+      projectileSpeed: 18 # .45 ACP
+      minAngle: 6 # High-end, very good control for .45
+      maxAngle: 50
+      angleIncrease: 5.5
+      angleDecay: 25
+      fireRate: 3 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/45ACP.ogg
-
     - type: ItemSlots
       slots:
         gun_magazine:

+ 693 - 0
Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_smg.yml

@@ -0,0 +1,693 @@
+- type: entity
+  name: BaseSMG
+  parent: BaseGunCiv
+  id: BaseGunCivSMG
+  suffix: SMG
+  description: A submachinegun.
+  abstract: true
+  components:
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/SMGs/atreides.rsi
+      quickEquip: true
+      slots:
+        - Back
+    - type: Item
+      size: Large
+      shape:
+        - 0,0,4,1
+    - type: Sprite
+      layers:
+        - state: icon
+          map: ["enum.GunVisualLayers.Base"]
+        - state: mag-0
+          map: ["enum.GunVisualLayers.Mag"]
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          priority: 3
+          insertSound: /Audio/Weapons/Guns/MagIn/smg_magin.ogg
+          ejectSound: /Audio/Weapons/Guns/MagOut/smg_magout.ogg
+        gun_chamber:
+          name: Chamber
+          priority: 1
+          startingItem: civ13_caliber_a9x19
+          whitelist:
+            tags:
+              - civ13_caliber_a9x19
+    - type: ContainerContainer
+      containers:
+        gun_magazine: !type:ContainerSlot
+        gun_chamber: !type:ContainerSlot
+    - type: Wieldable
+    - type: GunWieldBonus
+      minAngle: -40
+      maxAngle: -40
+    - type: Gun
+      selectedMode: FullAuto
+      availableModes:
+        - FullAuto
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/PPSh.ogg
+    - type: ChamberMagazineAmmoProvider
+      boltClosed: true
+      soundRack:
+        path: /Audio/Weapons/Guns/Cock/smg_cock.ogg
+    - type: MagazineVisuals
+      magState: mag
+      steps: 1
+      zeroVisible: true
+
+- type: entity
+  name: MP 40
+  suffix: SMG
+  parent: BaseGunCivSMG
+  id: civ13_smg_mp40
+  description: Iconic German submachinegun with an underfolding stock, chambered in 9mm Luger.
+  components:
+    - type: STWeight
+      self: 4
+    - type: Item
+      sprite: Civ14/Weapons/Guns/mp40.rsi
+      size: Large
+      shape:
+        - 0,0,6,1
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mp40.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/mp40.rsi
+      equipDelay: 1
+    - type: Gun
+      projectileSpeed: 18
+      minAngle: 52
+      maxAngle: 70
+      angleIncrease: 3.5
+      angleDecay: 17.5
+      fireRate: 4
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/mp40.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_mp40_(9x19mm)
+          whitelist:
+            tags:
+              - civ13_magazine_mp40_(9x19mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a9x19
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a9x19
+- type: entity
+  name: Blyskawica
+  parent: civ13_smg_mp40
+  id: civ13_smg_Blyskawica
+  description: Polish Underground State submachine gun, chambered in 9mm Luger.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/blyskawica.rsi
+
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/blyskawica.rsi
+- type: entity
+  name: PPD-40
+  parent: BaseGunCivSMG
+  id: civ13_smg_PPD_40
+  description: Early Soviet submachinegun. Chambered in 7.62x25mm Tokarev.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ppd.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ppd.rsi
+    - type: Gun
+      projectileSpeed: 18
+      minAngle: 55
+      maxAngle: 95
+      angleIncrease: 5
+      angleDecay: 20
+      fireRate: 6.0
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/762x25.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_PPS_43_magazine_(7.62x25mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_PPSh_41_drum_magazine_(7.62x25mm)
+              - civ13_magazine_PPS_43_magazine_(7.62x25mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x25
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x25
+
+- type: entity
+  name: PPSh-41
+  suffix: SMG
+  parent: BaseGunCivSMG
+  id: civ13_smg_ppsh
+  description: Soviet submachinegun typically equipped with drum magazines. Chambered in 7.62x25mm Tokarev.
+  components:
+    - type: STWeight
+      self: 4.5
+    - type: Item
+      sprite: Civ14/Weapons/Guns/ppsh.rsi
+      size: Large
+      shape:
+        - 0,0,6,1
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/ppsh.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/ppsh.rsi
+    - type: Gun
+      projectileSpeed: 18
+      minAngle: 65
+      maxAngle: 110
+      angleIncrease: 3
+      angleDecay: 10
+      fireRate: 5
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/PPSh.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_PPSh_41_drum_magazine_(7.62x25mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_PPSh_41_drum_magazine_(7.62x25mm)
+              - civ13_magazine_PPS_43_magazine_(7.62x25mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x25
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x25
+
+- type: entity
+  name: PPS-43
+  parent: BaseGunCivSMG
+  id: civ13_smg_PPS_43
+  description: A simplistic Soviet submachinegun. Chambered in 7.62x25mm Tokarev.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/pps.rsi
+
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/pps.rsi
+    - type: Gun
+      projectileSpeed: 18
+      minAngle: 50
+      maxAngle: 80
+      angleIncrease: 4
+      angleDecay: 22
+      fireRate: 5.0
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/762x25.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_PPS_43_magazine_(7.62x25mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_PPS_43_magazine_(7.62x25mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a762x25
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a762x25
+- type: entity
+  name: M3A1 SMG
+  parent: BaseGunCivSMG
+  id: civ13_smg_M3A1_SMG
+  description: A simplistic American submachinegun, chambered in .45 ACP.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/greasegun.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/greasegun.rsi
+    - type: Gun
+      projectileSpeed: 18
+      minAngle: 50
+      maxAngle: 80
+      angleIncrease: 4
+      angleDecay: 20
+      fireRate: 3.5
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/M3A1.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_M3A1_magazine_(.45_ACP)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_M3A1_magazine_(.45_ACP)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a45acp
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a45acp
+
+- type: entity
+  name: Thompson M1928
+  parent: BaseGunCivSMG
+  id: civ13_smg_Thompson_M1928
+  description: An American submachinegun, chambered in .45 ACP.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/tommygun.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/tommygun.rsi
+    - type: Gun
+      projectileSpeed: 18
+      minAngle: 55
+      maxAngle: 90
+      angleIncrease: 4.5
+      angleDecay: 19
+      fireRate: 5.0
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/thompson.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_Thompson_drum_magazine_(.45)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_Thompson_drum_magazine_(.45)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a45acp
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a45acp
+
+- type: entity
+  name: Thompson M1A1
+  parent: civ13_smg_Thompson_M1928
+  id: civ13_smg_Thompson_M1A1
+  description: An American submachinegun, chambered in .45 ACP.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/thompson.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/thompson.rsi
+    - type: Gun
+      fireRate: 4.8 # Slightly more controllable/slower than M1928
+      minAngle: 52
+      maxAngle: 85
+      angleIncrease: 4.2
+      angleDecay: 20
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/thompson.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_Thompson_magazine_(.45)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_Thompson_magazine_(.45)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a45acp
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a45acp
+
+- type: entity
+  name: Type-100
+  parent: BaseGunCivSMG
+  id: civ13_smg_Type_100
+  description: A Japanese submachinegun, chambered in 8x22mm Nambu.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/type100.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/type100.rsi
+    - type: Gun
+      projectileSpeed: 18
+      minAngle: 45 # 8mm Nambu is a weaker round
+      maxAngle: 65
+      angleIncrease: 3
+      angleDecay: 25
+      fireRate: 3.5 # Similar to M3A1 due to lower RPM
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/Type100.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_Type_100_Magazine
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_Type_100_Magazine
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_c8mmnambu
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_c8mmnambu
+- type: entity
+  name: Sten MK II
+  parent: BaseGunCivSMG
+  id: civ13_smg_Sten_MK_II
+  description: A British submachinegun, chambered in 9x19 Parabellum.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/sten2.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/sten2.rsi
+    - type: Gun
+      projectileSpeed: 18
+      minAngle: 50
+      maxAngle: 75 # Sten was a bit rough
+      angleIncrease: 3.8
+      angleDecay: 18
+      fireRate: 4.0 # Similar to MP40
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/mp40.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_Sten_Magazine_(9x19mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_Sten_Magazine_(9x19mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a9x19
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a9x19
+- type: entity
+  name: Sten MK V
+  parent: civ13_smg_Sten_MK_II
+  id: civ13_smg_Sten_MK_V
+  description: A British submachinegun, chambered in 9x19 Parabellum.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/sten2.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/sten2.rsi
+    - type: Gun # Overrides for better controllability than Mk II
+      minAngle: 48
+      maxAngle: 70
+      angleIncrease: 3.5
+      angleDecay: 20
+      # Inherits projectileSpeed, fireRate, and soundGunshot from Sten MK II
+
+- type: entity
+  name: P90
+  parent: BaseGunCivSMG
+  id: civ13_smg_P90
+  description: A compact, rapid-fire defensive weapon, chambered in 5.7x28mm.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/p90.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/p90.rsi
+    - type: Gun
+      selectedMode: FullAuto
+      availableModes:
+        - FullAuto
+        - SemiAuto
+      projectileSpeed: 24 # 5.7x28mm - high velocity for a PDW
+      fireRate: 6.0 # ~900 RPM
+      minAngle: 42 # Good control, bullpup
+      maxAngle: 75
+      angleIncrease: 3.2
+      angleDecay: 28 # Recovers well
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/PDW.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_P90_magazine_(50)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_P90_magazine_(50)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a57x28
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a57x28
+- type: entity
+  name: Kriss Vector
+  parent: BaseGunCivSMG
+  id: civ13_smg_Kriss_Vector
+  description: >-
+    A compact gun using an unconventional delayed blowback system combined with
+    in-line design to reduce perceived recoil and muzzle climb. It's chambered
+    in 9mm
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/victor.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/victor.rsi
+    - type: Gun
+      projectileSpeed: 19 # 9mm
+      fireRate: 7.0 # ~1200 RPM - very fast
+      minAngle: 38 # Kriss Super V system - very low recoil
+      maxAngle: 65
+      angleIncrease: 2.8 # Minimal climb
+      angleDecay: 32 # Excellent recovery
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/pistol.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_Kriss_Vector_(9x19mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_Kriss_Vector_(9x19mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a9x19
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a9x19
+- type: entity
+  name: Uzi
+  parent: BaseGunCivSMG
+  id: civ13_smg_Uzi
+  description: An Israeli submachinegun chambered in 9mm Parabellum.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/uzi.rsi
+
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/uzi.rsi
+    - type: Gun
+      projectileSpeed: 18 # 9mm
+      fireRate: 4.0 # ~600 RPM
+      minAngle: 50 # Standard SMG kick
+      maxAngle: 80
+      angleIncrease: 4.0 # Heavier, open bolt feel
+      angleDecay: 20
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/9mm.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_Uzi_magazine_(9x19mm_Parabellum)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_Uzi_magazine_(9x19mm_Parabellum)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a9x19
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a9x19
+- type: entity
+  name: MAC-10
+  parent: BaseGunCivSMG
+  id: civ13_smg_MAC_10
+  description: >-
+    An American compact blowback operated submachinegun chambered in .45 ACP.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mac10.rsi
+
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/mac10.rsi
+    - type: Gun
+      projectileSpeed: 18 # .45 ACP
+      fireRate: 6.8 # ~1100 RPM - bullet hose
+      minAngle: 60 # Hard to control
+      maxAngle: 115 # Wide spread
+      angleIncrease: 6.5 # Climbs fast
+      angleDecay: 16 # Slow to recover
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/45ACP.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_MAC_10_magazine_(.45_ACP)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_MAC_10_magazine_(.45_ACP)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a45acp
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a45acp
+- type: entity
+  name: TEC-9
+  parent: BaseGunCivSMG
+  id: civ13_smg_TEC_9
+  description: A blowback-operated semi-automatic pistol.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/tec-9.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/tec-9.rsi
+    - type: Gun
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+      projectileSpeed: 19 # 9mm
+      fireRate: 5.5 # ~750-800 RPM
+      minAngle: 55 # Can be jumpy
+      maxAngle: 95
+      angleIncrease: 5.0
+      angleDecay: 19
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/tec9.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_TEC_9_(9x19mm_Parabellum)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_TEC_9_(9x19mm_Parabellum)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a9x19
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a9x19
+- type: entity
+  name: Skorpion
+  parent: BaseGunCivSMG
+  id: civ13_smg_Skorpion
+  description: An Czechoslovak machinepistol chambered in 9mm Parabellum.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/skorpion.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/skorpion.rsi
+    - type: Gun
+      selectedMode: FullAuto
+      availableModes:
+        - FullAuto
+        - SemiAuto
+      projectileSpeed: 19 # 9mm Parabellum
+      fireRate: 5.8 # ~850 RPM
+      minAngle: 52 # Machine pistol, a bit wild
+      maxAngle: 100
+      angleIncrease: 5.2
+      angleDecay: 20
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/9mm.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_Skorpion_magazine_(9x19mm_Parabellum)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_Skorpion_magazine_(9x19mm_Parabellum)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a9x19
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a9x19
+
+- type: entity
+  name: "H&K MP5"
+  parent: BaseGunCivSMG
+  id: civ13_smg_HK_MP5
+  description: German submachinegun chambered in 9mm Parabellum.
+  components:
+    - type: Sprite
+      sprite: Civ14/Weapons/Guns/mp5.rsi
+    - type: Clothing
+      sprite: Civ14/Weapons/Guns/mp5.rsi
+    - type: Gun
+      selectedMode: FullAuto
+      availableModes:
+        - FullAuto
+        - SemiAuto
+      projectileSpeed: 20 # 9mm - high quality
+      fireRate: 5.6 # ~800 RPM
+      minAngle: 40 # Very controllable for an SMG
+      maxAngle: 70 # Tight grouping
+      angleIncrease: 3.0 # Low climb
+      angleDecay: 30 # Excellent recovery
+      soundGunshot:
+        path: /Audio/Weapons/Guns/Fire/MP5.ogg
+    - type: ItemSlots
+      slots:
+        gun_magazine:
+          name: Magazine
+          startingItem: civ13_magazine_MP5_magazine_(9x19mm)
+          priority: 2
+          whitelist:
+            tags:
+              - civ13_magazine_MP5_magazine_(9x19mm)
+        gun_chamber:
+          name: Chamber
+          startingItem: civ13_caliber_a9x19
+          priority: 1
+          whitelist:
+            tags:
+              - civ13_caliber_a9x19

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

@@ -2,5 +2,6 @@
   id: DefaultMapPool
   maps:
     - Camp
+    - CampWW2
     - Nomads
     - Opushka

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

@@ -0,0 +1,31 @@
+- type: gameMap
+  id: CampWW2
+  mapName: "Camp (WW2)"
+  mapPath: /Maps/civ/tdm/camp_ww2.yml
+  minPlayers: 0
+  maxPlayers: 128
+  maxRandomOffset: 0
+  randomRotation: false
+  stations:
+    Opushka:
+      stationProto: StandardStationTDM
+      components:
+        - type: StationNameSetup
+          mapNameTemplate: "Camp (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]

+ 49 - 30
Resources/Prototypes/Roles/Jobs/Civ14/TDM/german.yml

@@ -9,7 +9,7 @@
     - !type:OverallPlaytimeRequirement
       time: 10800 #3 hrs
   startingGear: GermanCaptainGear
-  icon: "JobIconCommander"
+  icon: "JobIconICpt"
   supervisors: job-supervisors-nobody
   special:
     - !type:AddComponentSpecial
@@ -27,7 +27,7 @@
 - type: startingGear
   id: GermanCaptainGear
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_officer_uniform
     outerClothing: civ13_suit_German_officer_coat
     gloves: civ13_gloves_Officer_gloves
@@ -47,7 +47,7 @@
     - !type:OverallPlaytimeRequirement
       time: 5400 #1.5 hrs
   startingGear: GermanSergeantGear
-  icon: "JobIconOfficer"
+  icon: "JobIconISgt"
   supervisors: job-supervisors-cpt
   special:
     - !type:AddComponentSpecial
@@ -65,7 +65,7 @@
 - type: startingGear
   id: GermanSergeantGear
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_SS_officer_uniform
     outerClothing: civ13_suit_German_parka
     head: civ13_head_German_field_cap
@@ -85,7 +85,7 @@
   playTimeTracker: JobGermanSubmachineGunner
   startingGear: GermanSubmachineGunnerGear
   randomStartingGears: [GermanSubmachineGunnerGear, GermanSubmachineGunnerGear2]
-  icon: "JobIconSword"
+  icon: "JobIconICpl"
   supervisors: job-supervisors-cpt
   special:
     - !type:AddComponentSpecial
@@ -103,19 +103,26 @@
 - type: startingGear
   id: GermanSubmachineGunnerGear
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_SS_uniform
     head: civ13_head_german_stahlhelm
-  #inhand:
-    #- civ13_german_smg
+    belt: ClothingWebbingGermanSMG
+    pocket1: Gauze
+    pocket2: Gauze
+
+  inhand:
+    - civ13_smg_mp40
 - type: startingGear
   id: GermanSubmachineGunnerGear2
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_camo_SS_uniform
     head: civ13_head_German_SS_helmet
-# inhand:
-  # - civ13_german_smg
+    belt: ClothingWebbingGermanSMG
+    pocket1: Gauze
+    pocket2: Gauze
+  inhand:
+    - civ13_smg_mp40
 
 # Rifleman
 
@@ -128,7 +135,7 @@
   playTimeTracker: JobGermanRifleman
   startingGear: GermanRiflemanGear
   randomStartingGears: [GermanRiflemanGear, GermanRiflemanGear2]
-  icon: "JobIconSpear"
+  icon: "JobIconICpl"
   supervisors: job-supervisors-cpt
   special:
     - !type:AddComponentSpecial
@@ -146,32 +153,39 @@
 - type: startingGear
   id: GermanRiflemanGear
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_SS_uniform
     head: civ13_head_german_stahlhelm
-# inhand:
-  #  - civ13_boltaction_Gewehr_71
+    belt: ClothingWebbingGermanRifleman
+    pocket1: Gauze
+    pocket2: Gauze
+  inhand:
+    - civ13_boltaction_Karabiner_98k
+
 - type: startingGear
   id: GermanRiflemanGear2
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_camo_SS_uniform
     head: civ13_head_German_SS_helmet
-# inhand:
-  #  - civ13_boltaction_Gewehr_71
+    belt: ClothingWebbingGermanRifleman
+    pocket1: Gauze
+    pocket2: Gauze
+  inhand:
+    - civ13_boltaction_Karabiner_98k
 
 # Machinegunner
 
 - type: job
-  id: GermanMachinegunner 
-  name: job-name-civ-german-machinegunner 
+  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"
+  icon: "JobIconMg"
   supervisors: job-supervisors-cpt
   special:
     - !type:AddComponentSpecial
@@ -189,21 +203,26 @@
 - type: startingGear
   id: GermanMachinegunnerGear
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_SS_uniform
     head: civ13_head_german_stahlhelm
+    belt: ClothingWebbingGermanMG
     pocket1: CombatKnife
-# inhand:
- # - civ13_generic_german_machinegun
+    pocket2: Gauze
+  inhand:
+    - civ13_mg_MG34
+
 - type: startingGear
   id: GermanMachinegunnerGear2
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_camo_SS_uniform
     head: civ13_head_German_SS_helmet
+    belt: ClothingWebbingGermanMG
     pocket1: CombatKnife
-# inhand:
-   # - civ13_generic_german_machinegun
+    pocket2: Gauze
+  inhand:
+    - civ13_mg_MG34
 
 # Medic
 
@@ -233,13 +252,13 @@
 - type: startingGear
   id: GermanMedicGear
   equipment:
-    shoes: civ13_shoes_Soviet_sapogi_boots
+    shoes: civ13_shoes_jackboots
     jumpsuit: civ13_uniform_German_doctor_uniform
     head: civ13_head_german_medic_stahlhelm
     belt: LeatherClothingBelt
     pocket1: CombatKnife
-  # inhand: 
-    # - civ13_boltaction_Gewehr_71
+  inhand:
+    - civ13_boltaction_Karabiner_98k
   storage:
     belt:
       - DoctorsHandbook

+ 40 - 24
Resources/Prototypes/Roles/Jobs/Civ14/TDM/soviet.yml

@@ -9,7 +9,7 @@
     - !type:OverallPlaytimeRequirement
       time: 10800 #3 hrs
   startingGear: SovietCaptainGear
-  icon: "JobIconCommander"
+  icon: "JobIconICpt"
   supervisors: job-supervisors-nobody
   special:
     - !type:AddComponentSpecial
@@ -46,7 +46,7 @@
     - !type:OverallPlaytimeRequirement
       time: 5400 #1.5 hrs
   startingGear: SovietSergeantGear
-  icon: "JobIconOfficer"
+  icon: "JobIconISgt"
   supervisors: job-supervisors-cpt
   special:
     - !type:AddComponentSpecial
@@ -66,7 +66,7 @@
   equipment:
     shoes: civ13_shoes_leather_shoes_1
     jumpsuit: civ13_uniform_Soviet_uniform
-   #outerClothing: civ13_suit_Soviet_coat
+    #outerClothing: civ13_suit_Soviet_coat
     head: civ13_head_soviet_pilotka
     belt: civ13_pistol_TT_33
     pocket1: civ13_caliber_a762x25
@@ -84,7 +84,7 @@
   playTimeTracker: JobSovietSubmachineGunner
   startingGear: SovietSubmachineGunnerGear
   randomStartingGears: [SovietSubmachineGunnerGear, SovietSubmachineGunnerGear2]
-  icon: "JobIconSword"
+  icon: "JobIconICpl"
   supervisors: job-supervisors-cpt
   special:
     - !type:AddComponentSpecial
@@ -105,19 +105,25 @@
     shoes: civ13_shoes_Soviet_sapogi_boots
     jumpsuit: civ13_uniform_Soviet_uniform
     gloves: ClothingHandsGlovesFingerless
+    belt: ClothingWebbingSovietSMG
     #outerClothing: civ13_suit_Soviet_coat
     head: civ13_head_soviet_helmet
-  #inhand:
-    #- civ13_ppsh
+    pocket1: Gauze
+    pocket2: Gauze
+  inhand:
+    - civ13_smg_ppsh
 - type: startingGear
   id: SovietSubmachineGunnerGear2
   equipment:
     shoes: civ13_shoes_Soviet_sapogi_boots
     jumpsuit: civ13_uniform_Soviet_uniform
+    belt: ClothingWebbingSovietSMG
     #outerClothing: civ13_suit_Soviet_coat_1
     head: civ13_head_soviet_ushanka
-# inhand:
-  # - civ13_ppsh
+    pocket1: Gauze
+    pocket2: Gauze
+  inhand:
+    - civ13_smg_ppsh
 
 # Rifleman
 
@@ -125,12 +131,12 @@
   id: SovietRifleman
   name: job-name-civ-soviet-rifleman
   faction: Soviet
-  originalName: Frontovik
+  originalName: Strelok
   description: job-description-civ-soviet-rifleman
   playTimeTracker: JobSovietRifleman
   startingGear: SovietRiflemanGear
   randomStartingGears: [SovietRiflemanGear, SovietRiflemanGear2]
-  icon: "JobIconSpear"
+  icon: "JobIconICpl"
   supervisors: job-supervisors-cpt
   special:
     - !type:AddComponentSpecial
@@ -152,31 +158,36 @@
     jumpsuit: civ13_uniform_Soviet_uniform
     #outerClothing: civ13_suit_Soviet_coat_1
     head: civ13_head_soviet_helmet
-# inhand:
-  #  - civ13_boltaction_Mosin
+    belt: ClothingWebbingRussianRifleman
+    pocket1: Gauze
+    pocket2: Gauze
+  inhand:
+    - civ13_boltaction_Mosin_30
+
 - type: startingGear
   id: SovietRiflemanGear2
   equipment:
     shoes: civ13_shoes_Soviet_sapogi_boots
     jumpsuit: civ13_uniform_Soviet_uniform
     gloves: ClothingHandsGlovesFingerless
+    belt: ClothingWebbingRussianRifleman
     outerClothing: civ13_suit_Soviet_coat
     head: civ13_head_soviet_ushanka_1
-# inhand:
-  #  - civ13_boltaction_Mosin
+  inhand:
+    - civ13_boltaction_Mosin_30
 
 # Machinegunner
 
 - type: job
-  id: SovietMachinegunner 
-  name: job-name-civ-soviet-machinegunner 
+  id: SovietMachinegunner
+  name: job-name-civ-soviet-machinegunner
   faction: Soviet
-  originalName: Pulemyotchik 
+  originalName: Pulemyotchik
   description: job-description-civ-soviet-machinegunner
   playTimeTracker: JobSovietMachinegunner
   startingGear: SovietMachinegunnerGear
   randomStartingGears: [SovietMachinegunnerGear, SovietMachinegunnerGear2]
-  icon: "JobIconRanged"
+  icon: "JobIconMg"
   supervisors: job-supervisors-cpt
   special:
     - !type:AddComponentSpecial
@@ -197,22 +208,27 @@
     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
-# inhand:
- # - civ13_soviet_machinegun
+    pocket2: Gauze
+  inhand:
+    - civ13_mg_DP_28
+
 - type: startingGear
   id: SovietMachinegunnerGear2
   equipment:
     shoes: civ13_shoes_Soviet_sapogi_boots
     jumpsuit: civ13_uniform_Soviet_uniform
     gloves: ClothingHandsGlovesFingerless
+    belt: ClothingWebbingSovietMG
     outerClothing: civ13_suit_Soviet_coat_1
     head: civ13_head_soviet_ushanka_1
     pocket1: CombatKnife
-# inhand:
-   # - civ13_soviet_machinegun
+    pocket2: Gauze
+  inhand:
+    - civ13_mg_DP_28
 
 # Medic
 
@@ -248,8 +264,8 @@
     head: civ13_head_soviet_medical_helmet
     belt: LeatherClothingBelt
     pocket1: CombatKnife
-  # inhand: 
-    # - civ13_boltaction_Mosin
+  inhand:
+    - civ13_boltaction_Mosin_30
   storage:
     belt:
       - DoctorsHandbook

+ 2 - 2
Resources/Prototypes/Roles/Jobs/departments.yml

@@ -182,7 +182,7 @@
     - GermanRifleman
     - GermanMachinegunner
     - GermanMedic
-    
+
 - type: department
   id: DepSoviet
   name: department-Soviet
@@ -194,4 +194,4 @@
     - SovietSubmachineGunner
     - SovietRifleman
     - SovietMachinegunner
-    - SovietMedic
+    - SovietMedic

二進制
Resources/Textures/Civ14/Clothing/exported/ties/german_vest.rsi/equipped-BELT.png


+ 25 - 21
Resources/Textures/Civ14/Clothing/exported/ties/german_vest.rsi/meta.json

@@ -1,23 +1,27 @@
 {
-  "version": 1,
-  "license": "AGPLv3",
-  "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
-  "size": {
-    "x": 32,
-    "y": 32
-  },
-  "states": [
-    {
-      "name": "german_vest",
-      "directions": 1
+    "version": 1,
+    "license": "AGPLv3",
+    "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
+    "size": {
+        "x": 32,
+        "y": 32
     },
-    {
-      "name": "equipped-NECK",
-      "directions": 4
-    },
-    {
-      "name": "icon",
-      "directions": 1
-    }
-  ]
-}
+    "states": [
+        {
+            "name": "german_vest",
+            "directions": 1
+        },
+        {
+            "name": "equipped-NECK",
+            "directions": 4
+        },
+        {
+            "name": "equipped-BELT",
+            "directions": 4
+        },
+        {
+            "name": "icon",
+            "directions": 1
+        }
+    ]
+}

二進制
Resources/Textures/Civ14/Clothing/exported/ties/green_webbing.rsi/equipped-BELT.png


+ 25 - 21
Resources/Textures/Civ14/Clothing/exported/ties/green_webbing.rsi/meta.json

@@ -1,23 +1,27 @@
 {
-  "version": 1,
-  "license": "AGPLv3",
-  "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
-  "size": {
-    "x": 32,
-    "y": 32
-  },
-  "states": [
-    {
-      "name": "green_webbing",
-      "directions": 1
+    "version": 1,
+    "license": "AGPLv3",
+    "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
+    "size": {
+        "x": 32,
+        "y": 32
     },
-    {
-      "name": "equipped-NECK",
-      "directions": 4
-    },
-    {
-      "name": "icon",
-      "directions": 1
-    }
-  ]
-}
+    "states": [
+        {
+            "name": "green_webbing",
+            "directions": 1
+        },
+        {
+            "name": "equipped-NECK",
+            "directions": 4
+        },
+        {
+            "name": "equipped-BELT",
+            "directions": 4
+        },
+        {
+            "name": "icon",
+            "directions": 1
+        }
+    ]
+}

二進制
Resources/Textures/Civ14/Clothing/exported/ties/khaki_webbing.rsi/equipped-BELT.png


+ 25 - 21
Resources/Textures/Civ14/Clothing/exported/ties/khaki_webbing.rsi/meta.json

@@ -1,23 +1,27 @@
 {
-  "version": 1,
-  "license": "AGPLv3",
-  "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
-  "size": {
-    "x": 32,
-    "y": 32
-  },
-  "states": [
-    {
-      "name": "khaki_webbing",
-      "directions": 1
+    "version": 1,
+    "license": "AGPLv3",
+    "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
+    "size": {
+        "x": 32,
+        "y": 32
     },
-    {
-      "name": "equipped-NECK",
-      "directions": 4
-    },
-    {
-      "name": "icon",
-      "directions": 1
-    }
-  ]
-}
+    "states": [
+        {
+            "name": "khaki_webbing",
+            "directions": 1
+        },
+        {
+            "name": "equipped-NECK",
+            "directions": 4
+        },
+        {
+            "name": "equipped-BELT",
+            "directions": 4
+        },
+        {
+            "name": "icon",
+            "directions": 1
+        }
+    ]
+}

二進制
Resources/Textures/Civ14/Clothing/exported/ties/russian_vest.rsi/equipped-BELT.png


+ 25 - 21
Resources/Textures/Civ14/Clothing/exported/ties/russian_vest.rsi/meta.json

@@ -1,23 +1,27 @@
 {
-  "version": 1,
-  "license": "AGPLv3",
-  "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
-  "size": {
-    "x": 32,
-    "y": 32
-  },
-  "states": [
-    {
-      "name": "russian_vest",
-      "directions": 1
+    "version": 1,
+    "license": "AGPLv3",
+    "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
+    "size": {
+        "x": 32,
+        "y": 32
     },
-    {
-      "name": "equipped-NECK",
-      "directions": 4
-    },
-    {
-      "name": "icon",
-      "directions": 1
-    }
-  ]
-}
+    "states": [
+        {
+            "name": "russian_vest",
+            "directions": 1
+        },
+        {
+            "name": "equipped-NECK",
+            "directions": 4
+        },
+        {
+            "name": "equipped-BELT",
+            "directions": 4
+        },
+        {
+            "name": "icon",
+            "directions": 1
+        }
+    ]
+}

二進制
Resources/Textures/Civ14/Clothing/exported/ties/us_webbing.rsi/equipped-BELT.png


+ 25 - 21
Resources/Textures/Civ14/Clothing/exported/ties/us_webbing.rsi/meta.json

@@ -1,23 +1,27 @@
 {
-  "version": 1,
-  "license": "AGPLv3",
-  "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
-  "size": {
-    "x": 32,
-    "y": 32
-  },
-  "states": [
-    {
-      "name": "us_webbing",
-      "directions": 1
+    "version": 1,
+    "license": "AGPLv3",
+    "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
+    "size": {
+        "x": 32,
+        "y": 32
     },
-    {
-      "name": "equipped-NECK",
-      "directions": 4
-    },
-    {
-      "name": "icon",
-      "directions": 1
-    }
-  ]
-}
+    "states": [
+        {
+            "name": "us_webbing",
+            "directions": 1
+        },
+        {
+            "name": "equipped-NECK",
+            "directions": 4
+        },
+        {
+            "name": "equipped-BELT",
+            "directions": 4
+        },
+        {
+            "name": "icon",
+            "directions": 1
+        }
+    ]
+}

二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114-12.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114-20.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114-6.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP-12.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP-20.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP-6.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/145x114AP.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/545x39-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/545x39-90.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/545x39.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/545x39X.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/9mm-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/9mm-30.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/9mm-60.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/9mm-90.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/9mm.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/9mmX.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/a50cal-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/a50cal-10.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/a50cal.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ab127-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ab127-10.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ab127-100.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ab127-30.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ab127-50.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ab127-90.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ab127.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ak47-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ak47.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ak74-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ak74.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ammo-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ammo-30.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ammo-45.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ammo-8.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ammo-closed.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ammo.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/ammoX.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/arisaka_ammo.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b127-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b127-10.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b127-20.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b127-30.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b127-40.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b127-5.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b127-50.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b127.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/b762x54-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/bam-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/bam.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/bamgreen-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/bamgreen.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/bamred-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/bamred.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/breda30-0.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/breda30-10.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/breda30-12.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/breda30-14.png


二進制
Resources/Textures/Civ14/Objects/ammo.rsi/breda30-16.png


Some files were not shown because too many files changed in this diff