Преглед изворни кода

Merge branch 'master' of https://github.com/Civ13/Civ14

Taislin пре 5 месеци
родитељ
комит
6f18bccdc4

+ 8 - 8
Content.Server/Civ14/Composting/CompostingSystem.cs

@@ -39,7 +39,7 @@ private void OnInteractUsing(EntityUid uid, CompostingComponent component, Inter
         var item = args.Used;
         if (!IsCompostable(item, component))
         {
-            _popup.PopupEntity("This item cannot be composted.", uid, args.User);
+            _popup.PopupEntity($"This item cannot be used to make {component.OutputName}.", uid, args.User);
             return;
         }
 
@@ -54,7 +54,7 @@ private void OnInteractUsing(EntityUid uid, CompostingComponent component, Inter
         // Add item to composting process and delete it from the world
         component.CompostingItems[item] = _gameTiming.CurTime + TimeSpan.FromMinutes(component.CompostTime);
         QueueDel(item);
-        _popup.PopupEntity("You add the item to compost.", uid, args.User);
+        _popup.PopupEntity("You add the item.", uid, args.User);
         args.Handled = true;
     }
 
@@ -77,11 +77,11 @@ private void OnInteractHand(EntityUid uid, CompostingComponent component, Intera
             return;
 
         // Spawn compost and try to place it in the player's hand
-        var compost = Spawn("Compost", Transform(uid).MapPosition);
+        var compost = Spawn(component.OutputPrototype, Transform(uid).MapPosition);
         if (_hands.TryPickupAnyHand(args.User, compost))
         {
             component.ReadyCompost--;
-            _popup.PopupEntity("You collect a unit of compost.", uid, args.User);
+            _popup.PopupEntity($"You collect a unit of {component.OutputName}.", uid, args.User);
         }
         else
         {
@@ -141,12 +141,12 @@ private void OnExamined(EntityUid uid, CompostingComponent component, ExaminedEv
 
         if (compostingCount > 0)
         {
-            args.PushMarkup($"Its currently composting.");
+            args.PushMarkup($"Its currently processing.");
         }
 
         if (readyCompost > 0)
         {
-            args.PushMarkup($"There are {readyCompost} units of compost ready.");
+            args.PushMarkup($"There are {readyCompost} units of {component.OutputName} ready.");
         }
     }
 
@@ -155,7 +155,7 @@ private void OnDestroyed(EntityUid uid, CompostingComponent component, Destructi
         // Drops all ready compost
         for (int i = 0; i < component.ReadyCompost; i++)
         {
-            Spawn("Compost", Transform(uid).MapPosition);
+            Spawn(component.OutputPrototype, Transform(uid).MapPosition);
         }
     }
-}
+}

+ 12 - 0
Content.Shared/Civ14/Composting/CompostingComponent.cs

@@ -38,4 +38,16 @@ public sealed partial class CompostingComponent : Component
     /// </summary>
     [DataField("maxCapacity")]
     public int MaxCapacity = 10;
+
+    /// <summary>
+    /// What actually is generated to output.
+    /// </summary>
+    [DataField("outputPrototype")]
+    public string OutputPrototype = "Compost";
+
+    /// <summary>
+    /// What the output is called when interacting.
+    /// </summary>
+    [DataField("outputName")]
+    public string OutputName = "compost";
 }

+ 3 - 0
Resources/Locale/en-US/chemistry/components/mixing-component.ftl

@@ -9,6 +9,9 @@ mixing-verb-holy = bless
 mixing-verb-stir = stir
 mixing-verb-shake = shake
 
+mixing-verb-distillation = distill
+mixing-verb-fermentation = ferment
+
 ## Entity
 
 default-mixing-success = You mix the {$mixed} with the {$mixer}

+ 3 - 0
Resources/Locale/en-US/reagents/meta/biological.ftl

@@ -30,3 +30,6 @@ reagent-desc-vomit = You can see a few chunks of someone's last meal in it.
 
 reagent-name-grey-matter = grey matter
 reagent-desc-grey-matter = Thought juice, the stuff that leaks out of your ears.
+
+reagent-name-yeast = yeast
+reagent-desc-yeast = A single celled fungus that can be used to make alcohol.

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
Resources/Maps/civ/nomads_classic.yml


+ 15 - 0
Resources/Prototypes/Chemistry/mixing_types.yml

@@ -65,3 +65,18 @@
   icon:
     sprite: Objects/Misc/utensils.rsi
     state: spoon
+
+# Civ brewing
+- type: mixingCategory
+  id: Fermentation
+  verbText: mixing-verb-fermentation
+  icon:
+    sprite: Civ14/Objects/barrel.rsi
+    state: beer_barrel
+
+- type: mixingCategory
+  id: Distillation
+  verbText: mixing-verb-distillation
+  icon:
+    sprite: Civ14/Objects/structures.rsi
+    state: distillery

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

@@ -87,7 +87,7 @@
       sprite: Civ14/Weapons/Guns/m16.rsi
     - type: Gun
       projectileSpeed: 30 # 5.56x45mm
-      fireRate: 5.8 # ~750-900 RPM
+      fireRate: 6.8 # ~750-900 RPM
       minAngle: 1 # 42 - 50 = -8, set to 1 (Good control, long rifle)
       maxAngle: 35 # 85 - 50
       angleIncrease: 3.2
@@ -163,7 +163,7 @@
     # 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
+      fireRate: 7.0 # ~750-950 RPM, can be lively
       minAngle: 3 # 45 - 50 = -5, set to 3 (More jumpy than M16)
       maxAngle: 45 # 95 - 50
       angleIncrease: 4.0
@@ -187,7 +187,7 @@
       sprite: Civ14/Weapons/Guns/m4.rsi
     - type: Gun
       projectileSpeed: 29 # 5.56mm carbine
-      fireRate: 5.9 # ~700-900 RPM, slightly more refined than XM177E2
+      fireRate: 6.9 # ~700-900 RPM, slightly more refined than XM177E2
       minAngle: 2 # 44 - 50 = -6, set to 2 (Good control for a carbine)
       maxAngle: 40 # 90 - 50
       angleIncrease: 3.8

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

@@ -16,7 +16,7 @@
       maxAngle: 75 # 125 - 50 (Matches new BaseGunCivAR)
       angleIncrease: 6
       angleDecay: 25
-      fireRate: 4 # ~600 RPM
+      fireRate: 5 # ~600 RPM
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/AKM.ogg
     - type: ItemSlots
@@ -78,7 +78,7 @@
       sprite: Civ14/Weapons/Guns/ak74.rsi
     - type: Gun
       projectileSpeed: 30 # 5.45x39mm
-      fireRate: 4.2 # ~650 RPM, slightly faster
+      fireRate: 5.2 # ~650 RPM, slightly faster
       minAngle: 1 # 48 - 50 = -2, set to 1 (Less recoil than AKM)
       maxAngle: 50 # 100 - 50
       angleIncrease: 4.5
@@ -129,7 +129,7 @@
       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
+      fireRate: 6.2 # Higher RoF ~700-750 RPM
       minAngle: 3 # 50 - 50 = 0, set to 3 (More jumpy)
       maxAngle: 65 # 115 - 50
       angleIncrease: 5.5
@@ -150,7 +150,7 @@
       sprite: Civ14/Weapons/Guns/aks74uso.rsi
     - type: Gun # AKS-74U SpecOps, similar to AKS-74U, maybe slightly better handling
       projectileSpeed: 27
-      fireRate: 4.8
+      fireRate: 6.3
       minAngle: 2 # 48 - 50 = -2, set to 2 (Slightly better control than AKS-74U)
       maxAngle: 60 # 110 - 50
       angleIncrease: 5.2
@@ -185,7 +185,7 @@
       sprite: Civ14/Weapons/Guns/ak101.rsi
     - type: Gun
       projectileSpeed: 30 # 5.56x45mm NATO
-      fireRate: 4.2 # ~650 RPM, similar to AK-74M
+      fireRate: 5.2 # ~650 RPM, similar to AK-74M
       minAngle: 1 # 47 - 50 = -3, set to 1 (Good control, similar to AK-74M)
       maxAngle: 45 # 95 - 50
       angleIncrease: 4.3
@@ -222,7 +222,7 @@
       sprite: Civ14/Weapons/Guns/ak101.rsi
     - type: Gun # AK-102 Carbine (5.56x45mm)
       projectileSpeed: 28 # Shorter barrel
-      fireRate: 4.6 # Higher RoF
+      fireRate: 5.6 # Higher RoF
       minAngle: 2 # 49 - 50 = -1, set to 2 (Carbine)
       maxAngle: 60 # 110 - 50
       angleIncrease: 5.0
@@ -240,7 +240,7 @@
       sprite: Civ14/Weapons/Guns/ak101.rsi
     - type: Gun
       projectileSpeed: 30 # 7.62x39mm
-      fireRate: 4.0 # ~600 RPM, like AKM
+      fireRate: 5.0 # ~600 RPM, like AKM
       minAngle: 2 # 50 - 50 = 0, set to 2 (Slightly better control than base AKM)
       maxAngle: 70 # 120 - 50
       angleIncrease: 5.8
@@ -262,7 +262,7 @@
       sprite: Civ14/Weapons/Guns/ak101.rsi
     - type: Gun # AK-104 Carbine (7.62x39mm)
       projectileSpeed: 28 # Shorter barrel
-      fireRate: 4.3 # Slightly higher RoF
+      fireRate: 5.3 # Slightly higher RoF
       minAngle: 5 # 55 - 50
       maxAngle: 90 # 140 - 50
       angleIncrease: 7.0 # More climb
@@ -282,7 +282,7 @@
       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
+      fireRate: 5.8
       minAngle: 2 # 49 - 50 = -1, set to 2 (Carbine)
       maxAngle: 60 # 110 - 50
       angleIncrease: 5.3
@@ -300,7 +300,7 @@
       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
+      fireRate: 6.0 # ~700 RPM
       minAngle: 1 # 42 - 50 = -8, set to 1 (Very controllable for an AK)
       maxAngle: 35 # 85 - 50
       angleIncrease: 3.8
@@ -318,7 +318,7 @@
       sprite: Civ14/Weapons/Guns/ak12.rsi
     - type: Gun
       projectileSpeed: 30 # 7.62x39mm
-      fireRate: 4.8 # ~700 RPM, similar to AK-12
+      fireRate: 5.8 # ~700 RPM, similar to AK-12
       minAngle: 3 # 48 - 50 = -2, set to 3 (More kick than AK-12 but better than AKM)
       maxAngle: 60 # 110 - 50
       angleIncrease: 5.0
@@ -338,7 +338,7 @@
       sprite: Civ14/Weapons/Guns/makeshiftak.rsi
     - type: Gun
       projectileSpeed: 29 # Unreliable
-      fireRate: 3.8 # Slower, clunkier
+      fireRate: 4.3 # Slower, clunkier
       minAngle: 10 # 60 - 50
       maxAngle: 100 # 150 - 50
       angleIncrease: 7.5 # Lots of kick
@@ -374,7 +374,7 @@
       sprite: Civ14/Weapons/Guns/vz58.rsi
     - type: Gun
       projectileSpeed: 30 # 7.62x39mm
-      fireRate: 5.8 # ~800 RPM, very fast
+      fireRate: 6.8 # ~800 RPM, very fast
       minAngle: 4 # 54 - 50
       maxAngle: 85 # 135 - 50
       angleIncrease: 6.5

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

@@ -75,7 +75,7 @@
       sprite: Civ14/Weapons/Guns/stg.rsi
     - type: Gun
       projectileSpeed: 28 # 7.92 Kurz is a bit slower
-      fireRate: 3.7 # ~500 RPM
+      fireRate: 4.7 # ~500 RPM
       minAngle: 2 # 50 - 50 = 0, set to 2 (more controllable than base AK which is 2)
       maxAngle: 60 # 110 - 50
       angleIncrease: 5.0
@@ -111,7 +111,7 @@
       sprite: Civ14/Weapons/Guns/g3.rsi
     - type: Gun
       projectileSpeed: 32 # Full power 7.62 NATO
-      fireRate: 3.8 # ~500-600 RPM
+      fireRate: 4.8 # ~500-600 RPM
       minAngle: 10 # 60 - 50
       maxAngle: 100 # 150 - 50
       angleIncrease: 8.0
@@ -147,7 +147,7 @@
       sprite: Civ14/Weapons/Guns/fal.rsi
     - type: Gun
       projectileSpeed: 32 # Full power 7.62 NATO
-      fireRate: 4.5 # ~650-700 RPM
+      fireRate: 5.5 # ~650-700 RPM
       minAngle: 12 # 62 - 50
       maxAngle: 110 # 160 - 50
       angleIncrease: 8.5
@@ -183,7 +183,7 @@
       sprite: Civ14/Weapons/Guns/scar.rsi
     - type: Gun
       projectileSpeed: 30 # Standard 5.56
-      fireRate: 4.5 # ~550-650 RPM
+      fireRate: 5.5 # ~550-650 RPM
       minAngle: 1 # 45 - 50 = -5, set to 1 (Very controllable)
       maxAngle: 45 # 95 - 50
       angleIncrease: 4.0
@@ -219,7 +219,7 @@
       sprite: Civ14/Weapons/Guns/scar.rsi
     - type: Gun
       projectileSpeed: 32 # Full power 7.62 NATO
-      fireRate: 4.2 # ~600 RPM
+      fireRate: 5.2 # ~600 RPM
       minAngle: 5 # 55 - 50
       maxAngle: 80 # 130 - 50
       angleIncrease: 7.0
@@ -255,7 +255,7 @@
       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
+      fireRate: 6.8 # ~700-750 RPM, very fast for caliber
       minAngle: 15 # 65 - 50
       maxAngle: 120 # 170 - 50
       angleIncrease: 9.5 # Difficult to control
@@ -291,7 +291,7 @@
       sprite: Civ14/Weapons/Guns/qbz95.rsi
     - type: Gun
       projectileSpeed: 30 # 5.8x42mm, similar to other intermediate
-      fireRate: 4.3 # ~650 RPM
+      fireRate: 5.3 # ~650 RPM
       minAngle: 2 # 46 - 50 = -4, set to 2 (Good control for a bullpup)
       maxAngle: 40 # 90 - 50
       angleIncrease: 4.2
@@ -329,7 +329,7 @@
       sprite: Civ14/Weapons/Guns/mcar.rsi
     - type: Gun
       projectileSpeed: 25 # .30 Carbine, lower velocity
-      fireRate: 5.0 # ~750 RPM
+      fireRate: 6.5 # ~750 RPM
       minAngle: 1 # 40 - 50 = -10, set to 1 (Low recoil round)
       maxAngle: 30 # 80 - 50
       angleIncrease: 3.5
@@ -364,7 +364,7 @@
       sprite: Civ14/Weapons/Guns/srm.rsi
     - type: Gun
       projectileSpeed: 22 # 9x39mm subsonic, heavy
-      fireRate: 6.0 # ~900 RPM, very fast
+      fireRate: 7.5 # ~900 RPM, very fast
       minAngle: 2 # 48 - 50 = -2, set to 2 (Manageable)
       maxAngle: 50 # 100 - 50
       angleIncrease: 5.0 # Will climb on full auto
@@ -402,7 +402,7 @@
       sprite: Civ14/Weapons/Guns/l85a2.rsi
     - type: Gun
       projectileSpeed: 30 # 5.56x45mm
-      fireRate: 4.8 # ~700 RPM
+      fireRate: 6.2 # ~700 RPM
       minAngle: 2 # 44 - 50 = -6, set to 2 (Good control A2)
       maxAngle: 38 # 88 - 50
       angleIncrease: 3.9
@@ -439,7 +439,7 @@
       sprite: Civ14/Weapons/Guns/aug.rsi
     - type: Gun
       projectileSpeed: 30 # 5.56x45mm
-      fireRate: 4.9 # ~720 RPM
+      fireRate: 6.4 # ~720 RPM
       minAngle: 1 # 43 - 50 = -7, set to 1 (Excellent control for a bullpup)
       maxAngle: 35 # 85 - 50
       angleIncrease: 3.7
@@ -475,7 +475,7 @@
       sprite: Civ14/Weapons/Guns/hk417.rsi
     - type: Gun
       projectileSpeed: 32 # 7.62x51mm NATO
-      fireRate: 4.0 # ~600 RPM
+      fireRate: 5.0 # ~600 RPM
       minAngle: 6 # 56 - 50
       maxAngle: 85 # 135 - 50
       angleIncrease: 7.2 # Noticeable climb

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

@@ -106,7 +106,7 @@
       sprite: Civ14/Weapons/Guns/mg13.rsi
     - type: Gun
       projectileSpeed: 32 # 7.92x57mm
-      fireRate: 4.0 # ~600 RPM
+      fireRate: 5.0 # ~600 RPM
       minAngle: 13 # Older LMG
       maxAngle: 30
       angleIncrease: 4.5
@@ -140,7 +140,7 @@
       sprite: Civ14/Weapons/Guns/mg34.rsi
     - type: Gun
       projectileSpeed: 32 # 7.92x57mm (inherited from parent, can be explicit)
-      fireRate: 6.0 # ~800-900 RPM
+      fireRate: 7.0 # ~800-900 RPM
       minAngle: 15 # Higher RoF than MG13
       maxAngle: 40
       angleIncrease: 5.0
@@ -163,7 +163,7 @@
       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"
+      fireRate: 9.5 # ~1200-1500 RPM "Hitler's Buzzsaw"
       minAngle: 20 # Very high recoil
       maxAngle: 40
       angleIncrease: 6.0
@@ -186,7 +186,7 @@
       sprite: Civ14/Weapons/Guns/mg3.rsi
     - type: Gun
       projectileSpeed: 32 # 7.62x51mm
-      fireRate: 7.0 # ~1000-1300 RPM (modernized MG42)
+      fireRate: 8.8 # ~1000-1300 RPM (modernized MG42)
       minAngle: 17 # Still very high recoil
       maxAngle: 38
       angleIncrease: 5.5
@@ -222,7 +222,7 @@
       sprite: Civ14/Weapons/Guns/mg3.rsi
     - type: Gun
       projectileSpeed: 32 # 7.62x51mm
-      fireRate: 5.0 # ~750 RPM (FN MAG can vary)
+      fireRate: 6.5 # ~750 RPM (FN MAG can vary)
       minAngle: 11 # Good GPMG, comparable to PKM base
       maxAngle: 25
       angleIncrease: 4.2
@@ -259,7 +259,7 @@
       sprite: Civ14/Weapons/Guns/madsen.rsi
     - type: Gun
       projectileSpeed: 32 # 7.62x54mmR (as per item slot)
-      fireRate: 3.5 # ~450-500 RPM (Older LMG)
+      fireRate: 4.2 # ~450-500 RPM (Older LMG)
       minAngle: 15 # Older, less refined
       maxAngle: 35
       angleIncrease: 5.0
@@ -294,7 +294,7 @@
       sprite: Civ14/Weapons/Guns/type99lmg.rsi
     - type: Gun
       projectileSpeed: 31 # 7.7x58mm Arisaka
-      fireRate: 3.8 # ~550 RPM
+      fireRate: 4.5 # ~550 RPM
       minAngle: 14
       maxAngle: 30
       angleIncrease: 4.8
@@ -330,7 +330,7 @@
       sprite: Civ14/Weapons/Guns/type96lmg.rsi
     - type: Gun
       projectileSpeed: 30 # 6.5x50mm Arisaka (milder)
-      fireRate: 3.8 # ~550 RPM
+      fireRate: 4.5 # ~550 RPM
       minAngle: 12 # Milder round, better control
       maxAngle: 25
       angleIncrease: 4.2
@@ -363,7 +363,7 @@
       sprite: Civ14/Weapons/Guns/dp.rsi
     - type: Gun
       projectileSpeed: 32 # 7.62x54mmR
-      fireRate: 3.8 # ~500-600 RPM
+      fireRate: 4.8 # ~500-600 RPM
       minAngle: 15 # Awkward pan magazine
       maxAngle: 35
       angleIncrease: 5.2
@@ -399,7 +399,7 @@
       sprite: Civ14/Weapons/Guns/bar.rsi
     - type: Gun
       projectileSpeed: 33 # .30-06
-      fireRate: 3.7 # ~550 RPM (fast setting)
+      fireRate: 4.5 # ~550 RPM (fast setting)
       minAngle: 17 # Heavy automatic rifle
       maxAngle: 45
       angleIncrease: 6.0
@@ -435,7 +435,7 @@
       sprite: Civ14/Weapons/Guns/browlmg.rsi
     - type: Gun
       projectileSpeed: 33 # .30-06
-      fireRate: 3.8 # ~500 RPM
+      fireRate: 4.2 # ~500 RPM
       minAngle: 13 # Heavy, stable GPMG
       maxAngle: 30
       angleIncrease: 5.0
@@ -471,7 +471,7 @@
       sprite: Civ14/Weapons/Guns/m249.rsi
     - type: Gun
       projectileSpeed: 30 # 5.56x45mm
-      fireRate: 5.8 # ~850 RPM
+      fireRate: 6.8 # ~850 RPM
       minAngle: 9 # Controllable LMG
       maxAngle: 18
       angleIncrease: 3.5
@@ -505,7 +505,7 @@
       sprite: Civ14/Weapons/Guns/rpd.rsi
     - type: Gun
       projectileSpeed: 30 # 7.62x39mm
-      fireRate: 4.8 # ~700 RPM
+      fireRate: 6.0 # ~700 RPM
       minAngle: 11 # Intermediate cartridge LMG
       maxAngle: 20
       angleIncrease: 4.0
@@ -555,7 +555,7 @@
       sprite: Civ14/Weapons/Guns/m60.rsi
     - type: Gun
       projectileSpeed: 32 # 7.62x51mm
-      fireRate: 4.0 # ~550-600 RPM "The Pig"
+      fireRate: 4.7 # ~550-600 RPM "The Pig"
       minAngle: 15 # Unwieldy
       maxAngle: 40
       angleIncrease: 5.5
@@ -590,7 +590,7 @@
     - 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
+      fireRate: 6.0 # ~700 RPM, faster than base PKM
       minAngle: 9 # Better control than base PKM
       maxAngle: 35
       angleIncrease: 3.8
@@ -611,7 +611,7 @@
       sprite: Civ14/Weapons/Guns/rpk74.rsi
     - type: Gun
       projectileSpeed: 30 # 5.45x39mm
-      fireRate: 4.0 # ~600 RPM (like AK-74)
+      fireRate: 5.0 # ~600 RPM (like AK-74)
       minAngle: 8 # Very controllable LMG
       maxAngle: 18
       angleIncrease: 3.0
@@ -646,7 +646,7 @@
     - 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
+      fireRate: 6.0 # ~700 RPM, faster than RPK-74
       minAngle: 7 # Excellent control
       maxAngle: 11
       angleIncrease: 2.8
@@ -667,7 +667,7 @@
       sprite: Civ14/Weapons/Guns/rpk47.rsi
     - type: Gun
       projectileSpeed: 30 # 7.62x39mm
-      fireRate: 4.0 # ~600 RPM (like AKM)
+      fireRate: 5.0 # ~600 RPM (like AKM)
       minAngle: 10 # More kick than RPK-74, similar to PKM base
       maxAngle: 22
       angleIncrease: 4.0
@@ -717,7 +717,7 @@
       sprite: Civ14/Weapons/Guns/negev.rsi
     - type: Gun
       projectileSpeed: 30 # 5.56x45mm
-      fireRate: 6.5 # ~1000 RPM (can be very high)
+      fireRate: 8.5 # ~1000 RPM (can be very high)
       minAngle: 9 # Modern, good control despite RoF
       maxAngle: 20
       angleIncrease: 3.2

+ 28 - 27
Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_pistol.yml

@@ -76,7 +76,7 @@
       maxAngle: 45
       angleIncrease: 4.2
       angleDecay: 28
-      fireRate: 3 # Already present
+      fireRate: 4 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -114,7 +114,7 @@
       maxAngle: 52
       angleIncrease: 5.5
       angleDecay: 24
-      fireRate: 3 # Already present
+      fireRate: 4 # ~100 rpm, Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -152,7 +152,7 @@
       maxAngle: 50
       angleIncrease: 5.2 # Solid, but older than Glock
       angleDecay: 25
-      fireRate: 3 # Already present
+      fireRate: 4.5 # ~100-200 rpm, no info on internet about this. Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -190,7 +190,7 @@
       maxAngle: 50
       angleIncrease: 5
       angleDecay: 25 # Base Glock 17 stats
-      fireRate: 3
+      fireRate: 5 # Semi-auto pistol
       availableModes:
         - SemiAuto
       selectedMode: SemiAuto
@@ -228,7 +228,7 @@
       maxAngle: 48 # Modern, good control
       angleIncrease: 4.8
       angleDecay: 26
-      fireRate: 4 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -266,7 +266,7 @@
       maxAngle: 40
       angleIncrease: 3.5
       angleDecay: 30
-      fireRate: 6 # Already present
+      fireRate: 6 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -304,7 +304,7 @@
       maxAngle: 50
       angleIncrease: 5
       angleDecay: 25
-      fireRate: 3 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -342,7 +342,7 @@
       maxAngle: 48 # Modern, good control
       angleIncrease: 4.8
       angleDecay: 26
-      fireRate: 4 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -380,7 +380,7 @@
       maxAngle: 60
       angleIncrease: 7
       angleDecay: 20
-      fireRate: 3 # Already present
+      fireRate: 4.2 # Semi-auto pistol, big caliber won't let you shoot too fast
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -456,7 +456,7 @@
       maxAngle: 55 # Noticeable kick, old design
       angleIncrease: 6
       angleDecay: 23
-      fireRate: 3 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -494,7 +494,7 @@
       maxAngle: 50
       angleIncrease: 5.5
       angleDecay: 24
-      fireRate: 3 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -532,7 +532,7 @@
       maxAngle: 35 # Very low recoil
       angleIncrease: 3.5
       angleDecay: 30
-      fireRate: 3 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -570,7 +570,7 @@
       maxAngle: 40 # Low recoil
       angleIncrease: 4
       angleDecay: 28
-      fireRate: 3 # Already present
+      fireRate: 3.5 # Single-action
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -608,7 +608,7 @@
       maxAngle: 45
       angleIncrease: 4.2
       angleDecay: 28
-      fireRate: 3 # Already present
+      fireRate: 4 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -648,7 +648,7 @@
       maxAngle: 60 # Classic .45 kick
       angleIncrease: 7
       angleDecay: 20
-      fireRate: 3 # Already present
+      fireRate: 4 # Semi-auto pistol, heavy caliber wont let you mag-dump it so fast
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -685,7 +685,7 @@
       maxAngle: 58 # Slightly better handling 1911
       angleIncrease: 6.5
       angleDecay: 22
-      fireRate: 3 # Already present
+      fireRate: 4 # Semi-auto pistol, heavy caliber wont let you mag-dump it so fast
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -725,7 +725,7 @@
       maxAngle: 55
       angleIncrease: 5.8
       angleDecay: 24
-      fireRate: 3 # Already present
+      fireRate: 4.5 # Semi-auto pistol, small caliber
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -765,7 +765,7 @@
       maxAngle: 48
       angleIncrease: 5.2
       angleDecay: 26
-      fireRate: 3 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -803,9 +803,10 @@
       maxAngle: 50
       angleIncrease: 5.5
       angleDecay: 25
-      fireRate: 3 # Already present
-      selectedMode: SemiAuto
+      fireRate: 6.0 # Full-auto pistol, soviet glock with da switch
+      selectedMode: FullAuto
       availableModes:
+        - FullAuto
         - SemiAuto
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/762x25.ogg
@@ -843,7 +844,7 @@
       maxAngle: 50 # Standard modern 9mm (like Glock)
       angleIncrease: 5
       angleDecay: 25
-      fireRate: 3 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -884,7 +885,7 @@
       maxAngle: 50 # Same as regular M9
       angleIncrease: 5
       angleDecay: 25
-      fireRate: 3 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -924,7 +925,7 @@
       maxAngle: 48 # Heavy frame, good control
       angleIncrease: 4.8
       angleDecay: 27
-      fireRate: 3 # Already present
+      fireRate: 5 # Semi-auto pistol
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -962,7 +963,7 @@
       maxAngle: 80
       angleIncrease: 12
       angleDecay: 15
-      fireRate: 3 # Already present
+      fireRate: 3.5 # Semi-auto pistol, You just cant mag-dump it cause of heavy recoil
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -1000,7 +1001,7 @@
       maxAngle: 75
       angleIncrease: 10
       angleDecay: 18
-      fireRate: 3 # Already present
+      fireRate: 3.8 # Semi-auto pistol, slightly better recoil than .50 AE version
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -1040,7 +1041,7 @@
       maxAngle: 48 # Classic, good handling
       angleIncrease: 4.9
       angleDecay: 26
-      fireRate: 3 # Already present
+      fireRate: 5 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -1080,7 +1081,7 @@
       maxAngle: 50
       angleIncrease: 5.5
       angleDecay: 25
-      fireRate: 3 # Already present
+      fireRate: 4.5 # Already present
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto

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

@@ -86,7 +86,7 @@
       maxAngle: 40
       angleIncrease: 3.5
       angleDecay: 17.5
-      fireRate: 4
+      fireRate: 5 # ~600 rpm
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/mp40.ogg
     - type: ItemSlots
@@ -112,9 +112,9 @@
   components:
     - type: Sprite
       sprite: Civ14/Weapons/Guns/blyskawica.rsi
-
     - type: Clothing
       sprite: Civ14/Weapons/Guns/blyskawica.rsi
+
 - type: entity
   name: PPD-40
   parent: BaseGunCivSMG
@@ -131,7 +131,7 @@
       maxAngle: 55
       angleIncrease: 5
       angleDecay: 20
-      fireRate: 6.0
+      fireRate: 6.0 
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/762x25.ogg
     - type: ItemSlots
@@ -176,7 +176,7 @@
       maxAngle: 50
       angleIncrease: 3
       angleDecay: 10
-      fireRate: 5
+      fireRate: 7.5 # ~1000 rpm
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/PPSh.ogg
     - type: ItemSlots
@@ -214,7 +214,7 @@
       maxAngle: 40
       angleIncrease: 4
       angleDecay: 22
-      fireRate: 5.0
+      fireRate: 6.0 # No info about this one, but might be fastfiring
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/762x25.ogg
     - type: ItemSlots
@@ -249,7 +249,7 @@
       maxAngle: 40
       angleIncrease: 4
       angleDecay: 20
-      fireRate: 3.5
+      fireRate: 4.4 # ~450-500 rpm
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/M3A1.ogg
     - type: ItemSlots
@@ -285,7 +285,7 @@
       maxAngle: 50
       angleIncrease: 4.5
       angleDecay: 19
-      fireRate: 5.0
+      fireRate: 7.0 # ~700-900 rpm, rattle em boiz
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/thompson.ogg
     - type: ItemSlots
@@ -316,7 +316,7 @@
     - type: Clothing
       sprite: Civ14/Weapons/Guns/thompson.rsi
     - type: Gun
-      fireRate: 4.8 # Slightly more controllable/slower than M1928 # Original minAngle: 52, maxAngle: 85
+      fireRate: 6.5 # Slightly more controllable/slower than M1928 # Original minAngle: 52, maxAngle: 85
       minAngle: 12
       maxAngle: 45
       angleIncrease: 4.2
@@ -356,7 +356,7 @@
       maxAngle: 25
       angleIncrease: 3
       angleDecay: 25
-      fireRate: 3.5 # Similar to M3A1 due to lower RPM
+      fireRate: 4.4 # Similar to M3A1 due to lower RPM
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/Type100.ogg
     - type: ItemSlots
@@ -391,7 +391,7 @@
       maxAngle: 35 # Sten was a bit rough
       angleIncrease: 3.8
       angleDecay: 18
-      fireRate: 4.0 # Similar to MP40
+      fireRate: 5.0 # Similar to MP40
       soundGunshot:
         path: /Audio/Weapons/Guns/Fire/mp40.ogg
     - type: ItemSlots
@@ -443,7 +443,7 @@
         - FullAuto
         - SemiAuto
       projectileSpeed: 34 # 5.7x28mm - high velocity for a PDW # Original minAngle: 42, maxAngle: 75
-      fireRate: 6.0 # ~900 RPM
+      fireRate: 7.2 # ~900 RPM
       minAngle: 2 # Good control, bullpup
       maxAngle: 35
       angleIncrease: 3.2
@@ -481,7 +481,7 @@
       sprite: Civ14/Weapons/Guns/victor.rsi
     - type: Gun
       projectileSpeed: 34 # 9mm # Original minAngle: 38, maxAngle: 65
-      fireRate: 7.0 # ~1200 RPM - very fast
+      fireRate: 9.0 # ~1200 RPM - very fast
       minAngle: 1 # Kriss Super V system - very low recoil
       maxAngle: 25
       angleIncrease: 2.8 # Minimal climb
@@ -517,7 +517,7 @@
       sprite: Civ14/Weapons/Guns/uzi.rsi
     - type: Gun
       projectileSpeed: 25 # 9mm # Original minAngle: 50, maxAngle: 80
-      fireRate: 4.0 # ~600 RPM
+      fireRate: 5.0 # ~600 RPM
       minAngle: 10 # Standard SMG kick
       maxAngle: 40
       angleIncrease: 4.0 # Heavier, open bolt feel
@@ -554,7 +554,7 @@
       sprite: Civ14/Weapons/Guns/mac10.rsi
     - type: Gun
       projectileSpeed: 25 # .45 ACP # Original minAngle: 60, maxAngle: 115
-      fireRate: 6.8 # ~1100 RPM - bullet hose
+      fireRate: 8.5 # ~1100 RPM - bullet hose
       minAngle: 20 # Hard to control
       maxAngle: 75 # Wide spread
       angleIncrease: 6.5 # Climbs fast
@@ -592,7 +592,7 @@
       availableModes:
         - SemiAuto # Original minAngle: 55, maxAngle: 95
       projectileSpeed: 19 # 9mm
-      fireRate: 5.5 # ~750-800 RPM
+      fireRate: 6.5 # ~750-800 RPM
       minAngle: 15 # Can be jumpy
       maxAngle: 55
       angleIncrease: 5.0
@@ -631,7 +631,7 @@
         - FullAuto
         - SemiAuto # Original minAngle: 52, maxAngle: 100
       projectileSpeed: 25 # 9mm Parabellum
-      fireRate: 5.8 # ~850 RPM
+      fireRate: 6.8 # ~850 RPM
       minAngle: 12 # Machine pistol, a bit wild
       maxAngle: 60
       angleIncrease: 5.2
@@ -671,7 +671,7 @@
         - FullAuto
         - SemiAuto # Original minAngle: 40, maxAngle: 70
       projectileSpeed: 28 # 9mm - high quality
-      fireRate: 5.6 # ~800 RPM
+      fireRate: 6.6 # ~800 RPM
       minAngle: 1 # Very controllable for an SMG
       maxAngle: 30 # Tight grouping
       angleIncrease: 3.0 # Low climb

+ 102 - 0
Resources/Prototypes/Civ14/Entities/Structures/Machines/brewing.yml

@@ -0,0 +1,102 @@
+- type: entity
+  id: BrewingBarrel
+  parent: BaseTabletopChemicalMachine
+  name: fermentation barrel
+  description: A large wooden barrel for brewing fermentable drinks.
+  components:
+    - type: SolutionContainerMixer
+      mixDuration: 80
+      mixingSound:
+        path: /Audio/Effects/Chemistry/bubbles.ogg
+        params:
+          volume: -4
+    - type: ReactionMixer
+      reactionTypes:
+        - Fermentation
+    - type: Sprite
+      sprite: Civ14/Objects/barrel.rsi
+      state: beer_barrel
+    - type: ItemSlots
+      slots:
+        mixer:
+          whitelist:
+            tags:
+              - FermentationCompatible
+    - type: ApcPowerReceiver
+      needsPower: false
+      powerLoad: 0
+    - type: Anchorable
+      delay: 2
+    - type: Construction
+      graph: BrewingBarrel
+      node: end
+
+- type: entity
+  parent: [ReagentPacketBase, ItemHeftyBase]
+  id: ReagentContainerYeast
+  name: yeast
+  description: A clump of yeast. Good for making beer!
+  components:
+    - type: Sprite
+      sprite: Civ14/Objects/food/food.rsi
+      state: enzyme
+    - type: SolutionContainerManager
+      solutions:
+        food:
+          maxVol: 5
+          reagents:
+            - ReagentId: Yeast
+              Quantity: 5
+
+- type: entity
+  id: StarterJar
+  parent: BaseStructure
+  name: "fermentation starter jar"
+  description: A crude jar used to make yeast.
+  components:
+    - type: Sprite
+      sprite: Civ14/Objects/drinks.rsi
+      state: jarF
+    - type: Appearance
+    - type: Damageable
+      damageModifierSet: Wood
+      damageContainer: StructuralInorganic
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 30
+          behaviors:
+            - !type:PlaySoundBehavior
+              sound:
+                collection: WoodDestroyHeavy
+            - !type:SpawnEntitiesBehavior
+              spawn:
+                MaterialWoodPlank:
+                  min: 2
+                  max: 3
+            - !type:DoActsBehavior
+              acts: ["Destruction"]
+    - type: Tag
+      tags:
+        - Structure
+        - Wooden
+    - type: Transform
+      anchored: true
+    - type: Physics
+      bodyType: Static
+    - type: Anchorable
+    - type: Pullable
+    - type: InteractionOutline
+    - type: Composting
+      whitelist:
+        - Fruit
+        - Bread
+        - Wheat
+      compostTime: 10.0
+      outputName: "yeast"
+      outputPrototype: "ReagentContainerYeast"
+    - type: Construction
+      agemin: 0
+      agemax: 8
+      graph: StarterJar
+      node: end

+ 70 - 0
Resources/Prototypes/Civ14/Recipes/Chemical/brewing.yml

@@ -0,0 +1,70 @@
+- type: reaction
+  id: BrewingBeer
+  source: true
+  requiredMixerCategories:
+    - Fermentation
+  reactants:
+    Water:
+      amount: 20
+    Flour:
+      amount: 10
+    Yeast:
+      amount: 1
+  products:
+    Beer: 20
+
+- type: construction
+  name: brewing barrel
+  id: BrewingBarrel
+  graph: BrewingBarrel
+  startNode: start
+  targetNode: end
+  category: construction-category-production
+  description: A large wooden barrel for brewing fermentable drinks.
+  icon: { sprite: Civ14/Objects/barrel.rsi, state: beer_barrel }
+  objectType: Item
+  agemin: 0
+  agemax: 8
+
+- type: constructionGraph
+  id: BrewingBarrel
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: end
+          steps:
+            - material: WoodPlank
+              amount: 12
+              doAfter: 10
+    - node: end
+      entity: BrewingBarrel
+
+- type: construction
+  name: fermentation starter jar
+  id: StarterJar
+  graph: StarterJar
+  startNode: start
+  targetNode: end
+  category: construction-category-production
+  description: A crude jar used to make yeast.
+  icon: { sprite: Civ14/Objects/drinks.rsi, state: jarF }
+  objectType: Structure
+  agemin: 0
+  agemax: 8
+
+- type: constructionGraph
+  id: StarterJar
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: end
+          completed:
+            - !type:SnapToGrid
+          steps:
+            - material: WoodPlank
+              amount: 3
+              doAfter: 6
+    - node: end
+      entity: StarterJar

+ 14 - 0
Resources/Prototypes/Civ14/Recipes/Chemical/reagents.yml

@@ -0,0 +1,14 @@
+- type: reagent
+  id: Yeast
+  name: reagent-name-yeast
+  group: Foods
+  desc: reagent-desc-yeast
+  physicalDesc: reagent-physical-desc-powdery
+  flavor: chalky
+  color: tan
+  metabolisms:
+    Food:
+      effects:
+        - !type:AdjustReagent
+          reagent: Nutriment
+          amount: 0.1

+ 1 - 0
Resources/Prototypes/Entities/Objects/Tools/bucket.yml

@@ -68,6 +68,7 @@
     - type: Tag
       tags:
         - Bucket
+        - FermentationCompatible
     - type: PhysicalComposition
       materialComposition:
         Plastic: 50

+ 3 - 0
Resources/Prototypes/tags.yml

@@ -304,6 +304,9 @@
 - type: Tag
   id: CentrifugeCompatible
 
+- type: Tag
+  id: FermentationCompatible
+
 - type: Tag
   id: Chicken
 

Неке датотеке нису приказане због велике количине промена