Bläddra i källkod

Tdm update 8 (#219)

* buff shields, grenade tweaks, nerfs lmg damage

* map updates

* TDM stats

* rebalanced smgs, fixed playercount

* new walls, spawn number fixes

* concrete and brick walls

* map tweaks, wall fix

* sprite tweak, map update
Taislin 6 månader sedan
förälder
incheckning
0b85e347ad
53 ändrade filer med 3032 tillägg och 3462 borttagningar
  1. 0 1
      Content.Client/LateJoin/LateJoinGui.cs
  2. 22 0
      Content.Server/GameTicking/Rules/Components/TeamDeathMatchRuleComponent.cs
  3. 82 3
      Content.Server/GameTicking/Rules/TeamDeathMatchRuleSystem.cs
  4. 1 1
      Content.Shared/GameTicking/SharedGameTicker.cs
  5. 312 10
      Resources/Maps/civ/tdm/camp.yml
  6. 44 197
      Resources/Maps/civ/tdm/camp_ww2.yml
  7. 1923 3028
      Resources/Maps/civ/tdm/opushka.yml
  8. 11 32
      Resources/Prototypes/Civ14/Entities/Objects/Explosives/grenades.yml
  9. 36 0
      Resources/Prototypes/Civ14/Entities/Objects/Explosives/mines.yml
  10. 22 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_bullets.yml
  11. 23 0
      Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_calibers.yml
  12. 18 18
      Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_magazines.yml
  13. 5 1
      Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/magazine_tags.yml
  14. 10 10
      Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_mg.yml
  15. 3 3
      Resources/Prototypes/Civ14/Entities/Objects/Guns/entities_smg.yml
  16. 2 12
      Resources/Prototypes/Civ14/Entities/Objects/Materials/civ_materials.yml
  17. 0 33
      Resources/Prototypes/Civ14/Entities/Objects/Storage/crates.yml
  18. 99 0
      Resources/Prototypes/Civ14/Entities/Objects/Storage/filled_crates.yml
  19. 18 18
      Resources/Prototypes/Civ14/Entities/Structures/Craft/shields.yml
  20. 188 12
      Resources/Prototypes/Civ14/Entities/Structures/Walls/walls.yml
  21. 49 51
      Resources/Prototypes/Entities/Objects/Misc/land_mine.yml
  22. 10 10
      Resources/Prototypes/Maps/civ/camp.yml
  23. 11 10
      Resources/Prototypes/Maps/civ/camp_ww2.yml
  24. 11 11
      Resources/Prototypes/Maps/civ/opushka.yml
  25. 0 1
      Resources/Prototypes/Tiles/floors.yml
  26. BIN
      Resources/Textures/Civ14/Objects/Grenades/rdg2.rsi/base.png
  27. BIN
      Resources/Textures/Civ14/Objects/Grenades/rdg2.rsi/icon.png
  28. 20 0
      Resources/Textures/Civ14/Objects/Grenades/rdg2.rsi/meta.json
  29. BIN
      Resources/Textures/Civ14/Objects/Grenades/rdg2.rsi/primed.png
  30. BIN
      Resources/Textures/Civ14/Objects/Grenades/smoke_grenade.rsi/base.png
  31. BIN
      Resources/Textures/Civ14/Objects/Grenades/smoke_grenade.rsi/icon.png
  32. 20 0
      Resources/Textures/Civ14/Objects/Grenades/smoke_grenade.rsi/meta.json
  33. BIN
      Resources/Textures/Civ14/Objects/Grenades/smoke_grenade.rsi/primed.png
  34. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall0.png
  35. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall1.png
  36. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall2.png
  37. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall3.png
  38. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall4.png
  39. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall5.png
  40. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall6.png
  41. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall7.png
  42. BIN
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/full.png
  43. 46 0
      Resources/Textures/Civ14/Structures/Walls/concrete.rsi/meta.json
  44. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/full.png
  45. 46 0
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/meta.json
  46. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick0.png
  47. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick1.png
  48. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick2.png
  49. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick3.png
  50. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick4.png
  51. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick5.png
  52. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick6.png
  53. BIN
      Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick7.png

+ 0 - 1
Content.Client/LateJoin/LateJoinGui.cs

@@ -218,7 +218,6 @@ private void RebuildUI()
                         if (faction.Key == departmentName)
                         {
                             currentFactionPlayers = faction.Value;
-                            break;
                         }
                     }
                     if (currentFactionPlayers > 0)

+ 22 - 0
Content.Server/GameTicking/Rules/Components/TeamDeathMatchRuleComponent.cs

@@ -37,4 +37,26 @@ public sealed partial class TeamDeathMatchRuleComponent : Component
 
     [DataField("team2Kills")]
     public int Team2Kills = 0;
+
+    [DataField("kdRatio")]
+    public Dictionary<string, PlayerKDStats> KDRatio = new();
+}
+
+// Add this class to track player stats
+[DataDefinition, Serializable]
+public sealed partial class PlayerKDStats
+{
+    [DataField("kills")]
+    public int Kills = 0;
+
+    [DataField("deaths")]
+    public int Deaths = 0;
+
+    [DataField("team")]
+    public string Team = "";
+
+    [DataField("name")]
+    public string Name = "";
+
+    public float KDRatio => Deaths == 0 ? Kills : (float)Kills / Deaths;
 }

+ 82 - 3
Content.Server/GameTicking/Rules/TeamDeathMatchRuleSystem.cs

@@ -16,6 +16,7 @@
 using Robust.Server.Player;
 using Robust.Shared.Utility;
 using Content.Shared.NPC.Systems;
+using Robust.Shared.Player;
 
 namespace Content.Server.GameTicking.Rules;
 
@@ -32,7 +33,7 @@ public sealed class TeamDeathMatchRuleSystem : GameRuleSystem<TeamDeathMatchRule
     [Dependency] private readonly StationSpawningSystem _stationSpawning = default!;
     [Dependency] private readonly NpcFactionSystem _factionSystem = default!; // Added dependency
     [Dependency] private readonly TransformSystem _transform = default!;
-
+    [Dependency] private readonly IEntityManager _entities = default!;
     public override void Initialize()
     {
         base.Initialize();
@@ -105,18 +106,69 @@ private void OnKillReported(ref KillReportedEvent ev)
                 continue;
 
             // Check if the killed entity is part of either team using FactionSystem
-            // This avoids potential direct access permission issues with NpcFactionMemberComponent.Factions
-            if (HasComp<NpcFactionMemberComponent>(ev.Entity)) // Ensure the component exists before checking factions
+            if (HasComp<NpcFactionMemberComponent>(ev.Entity))
             {
+                string killedTeam = "";
+
                 if (_factionSystem.IsMember(ev.Entity, dm.Team1))
                 {
                     dm.Team1Deaths += 1;
                     dm.Team2Kills += 1;
+                    killedTeam = dm.Team1;
                 }
                 else if (_factionSystem.IsMember(ev.Entity, dm.Team2))
                 {
                     dm.Team2Deaths += 1;
                     dm.Team1Kills += 1;
+                    killedTeam = dm.Team2;
+                }
+
+                // Track individual player stats
+                if (ev.Primary is KillPlayerSource playerSource)
+                {
+                    var playerIdStr = playerSource.PlayerId.ToString();
+
+                    if (!dm.KDRatio.ContainsKey(playerIdStr))
+                    {
+                        // Find player name from sessions
+                        string playerName = "Unknown";
+                        foreach (var session in _player.Sessions)
+                        {
+                            if (session.UserId == playerSource.PlayerId)
+                            {
+                                playerName = session.Name;
+                                break;
+                            }
+                        }
+
+                        string playerTeam = killedTeam == dm.Team1 ? dm.Team2 : dm.Team1;
+
+                        dm.KDRatio[playerIdStr] = new PlayerKDStats
+                        {
+                            Name = playerName,
+                            Team = playerTeam
+                        };
+                    }
+
+                    dm.KDRatio[playerIdStr].Kills++;
+                }
+
+                // Track deaths for the killed player
+                if (_entities.TryGetComponent(ev.Entity, out ActorComponent? actorComponent))
+                {
+
+                    var playerIdStrKilled = actorComponent.PlayerSession.UserId.ToString();
+
+                    if (!dm.KDRatio.ContainsKey(playerIdStrKilled))
+                    {
+                        dm.KDRatio[playerIdStrKilled] = new PlayerKDStats
+                        {
+                            Name = actorComponent.PlayerSession.Name,
+                            Team = killedTeam
+                        };
+                    }
+
+                    dm.KDRatio[playerIdStrKilled].Deaths++;
                 }
             }
         }
@@ -145,5 +197,32 @@ protected override void AppendRoundEndText(EntityUid uid, TeamDeathMatchRuleComp
         args.AddLine($"[color=cyan]{component.Team1}[/color]: {component.Team1Kills} Kills, {component.Team1Deaths} Deaths");
         args.AddLine("");
         args.AddLine($"[color=cyan]{component.Team2}[/color]: {component.Team2Kills} Kills, {component.Team2Deaths} Deaths");
+
+        // Display K/D ratio per player, sorted by K/D ratio
+        args.AddLine("");
+        args.AddLine("[color=yellow]Player Statistics:[/color]");
+
+        // Sort players by K/D ratio (highest first)
+        var sortedPlayers = component.KDRatio
+            .OrderByDescending(p => p.Value.KDRatio)
+            .ThenByDescending(p => p.Value.Kills)
+            .ToList();
+
+        // Display team 1 players
+        args.AddLine($"[color=cyan]{component.Team1}[/color] Players:");
+        foreach (var player in sortedPlayers.Where(p => p.Value.Team == component.Team1))
+        {
+            var kdRatio = player.Value.Deaths == 0 ? player.Value.Kills.ToString() : (player.Value.Kills / (float)player.Value.Deaths).ToString("F2");
+            args.AddLine($"  [color=white]{player.Value.Name}[/color]: {player.Value.Kills} Kills, {player.Value.Deaths} Deaths, K/D: {kdRatio}");
+        }
+
+        // Display team 2 players
+        args.AddLine("");
+        args.AddLine($"[color=cyan]{component.Team2}[/color] Players:");
+        foreach (var player in sortedPlayers.Where(p => p.Value.Team == component.Team2))
+        {
+            var kdRatio = player.Value.Deaths == 0 ? player.Value.Kills.ToString() : (player.Value.Kills / (float)player.Value.Deaths).ToString("F2");
+            args.AddLine($"  [color=white]{player.Value.Name}[/color]: {player.Value.Kills} Kills, {player.Value.Deaths} Deaths, K/D: {kdRatio}");
+        }
     }
 }

+ 1 - 1
Content.Shared/GameTicking/SharedGameTicker.cs

@@ -24,7 +24,7 @@ public abstract class SharedGameTicker : EntitySystem
         [ValidatePrototypeId<JobPrototype>]
         public const string FallbackOverflowJob = "Nomad";
 
-        public const string FallbackOverflowJobName = "job-name-passenger";
+        public const string FallbackOverflowJobName = "job-name-nomad";
 
         // TODO network.
         // Probably most useful for replays, round end info, and probably things like lobby menus.

+ 312 - 10
Resources/Maps/civ/tdm/camp.yml

@@ -4,8 +4,8 @@ meta:
   engineVersion: 251.0.0
   forkId: ""
   forkVersion: ""
-  time: 05/08/2025 22:41:19
-  entityCount: 3876
+  time: 05/21/2025 13:53:28
+  entityCount: 3935
 maps:
 - 1
 grids:
@@ -39,10 +39,10 @@ entities:
     - type: Broadphase
     - type: OccluderTree
     - type: CivResearch
-      researchLevel: 200
+      isTDM: True
       maxResearch: 200
-      researchEnabled: false
-      isTDM: true
+      researchLevel: 200
+      researchEnabled: False
   - uid: 2
     components:
     - type: MetaData
@@ -50,6 +50,7 @@ entities:
     - type: Transform
       parent: 1
     - type: Weather
+      weather: {}
     - type: MapGrid
       chunks:
         1,0:
@@ -3222,6 +3223,93 @@ entities:
     - type: Transform
       pos: 41.5,43.5
       parent: 2
+- proto: ComfreyHealingHerbs
+  entities:
+  - uid: 3891
+    components:
+    - type: Transform
+      pos: 113.49095,46.686123
+      parent: 2
+  - uid: 3892
+    components:
+    - type: Transform
+      pos: 113.55345,46.545498
+      parent: 2
+  - uid: 3893
+    components:
+    - type: Transform
+      pos: 113.66283,46.420498
+      parent: 2
+  - uid: 3894
+    components:
+    - type: Transform
+      pos: 113.66283,46.420498
+      parent: 2
+  - uid: 3895
+    components:
+    - type: Transform
+      pos: 113.66283,46.467373
+      parent: 2
+  - uid: 3896
+    components:
+    - type: Transform
+      pos: 113.66283,46.576748
+      parent: 2
+  - uid: 3897
+    components:
+    - type: Transform
+      pos: 113.66283,46.654873
+      parent: 2
+  - uid: 3898
+    components:
+    - type: Transform
+      pos: 113.66283,46.654873
+      parent: 2
+  - uid: 3927
+    components:
+    - type: Transform
+      pos: 36.454014,35.55306
+      parent: 2
+  - uid: 3928
+    components:
+    - type: Transform
+      pos: 36.454014,35.39681
+      parent: 2
+  - uid: 3929
+    components:
+    - type: Transform
+      pos: 36.56339,35.39681
+      parent: 2
+  - uid: 3930
+    components:
+    - type: Transform
+      pos: 36.610264,35.74056
+      parent: 2
+  - uid: 3931
+    components:
+    - type: Transform
+      pos: 36.610264,35.74056
+      parent: 2
+  - uid: 3932
+    components:
+    - type: Transform
+      pos: 36.610264,35.70931
+      parent: 2
+  - uid: 3933
+    components:
+    - type: Transform
+      pos: 36.610264,35.58431
+      parent: 2
+  - uid: 3934
+    components:
+    - type: Transform
+      pos: 36.610264,35.58431
+      parent: 2
+  - uid: 3935
+    components:
+    - type: Transform
+      pos: 36.610264,35.58431
+      parent: 2
 - proto: ComfyChair
   entities:
   - uid: 2881
@@ -3582,6 +3670,93 @@ entities:
       rot: -1.5707963267948966 rad
       pos: 58.605053,30.586407
       parent: 2
+- proto: ElderflowerHealingHerbs
+  entities:
+  - uid: 3899
+    components:
+    - type: Transform
+      pos: 114.53783,46.545498
+      parent: 2
+  - uid: 3900
+    components:
+    - type: Transform
+      pos: 114.53783,46.529873
+      parent: 2
+  - uid: 3901
+    components:
+    - type: Transform
+      pos: 114.53783,46.498623
+      parent: 2
+  - uid: 3902
+    components:
+    - type: Transform
+      pos: 114.53783,46.498623
+      parent: 2
+  - uid: 3903
+    components:
+    - type: Transform
+      pos: 114.53783,46.498623
+      parent: 2
+  - uid: 3904
+    components:
+    - type: Transform
+      pos: 114.53783,46.498623
+      parent: 2
+  - uid: 3905
+    components:
+    - type: Transform
+      pos: 114.53783,46.498623
+      parent: 2
+  - uid: 3906
+    components:
+    - type: Transform
+      pos: 114.61595,46.529873
+      parent: 2
+  - uid: 3907
+    components:
+    - type: Transform
+      pos: 114.61595,46.529873
+      parent: 2
+  - uid: 3908
+    components:
+    - type: Transform
+      pos: 38.547764,35.52181
+      parent: 2
+  - uid: 3909
+    components:
+    - type: Transform
+      pos: 38.547764,35.52181
+      parent: 2
+  - uid: 3910
+    components:
+    - type: Transform
+      pos: 38.547764,35.52181
+      parent: 2
+  - uid: 3911
+    components:
+    - type: Transform
+      pos: 38.547764,35.52181
+      parent: 2
+  - uid: 3912
+    components:
+    - type: Transform
+      pos: 38.547764,35.52181
+      parent: 2
+  - uid: 3913
+    components:
+    - type: Transform
+      pos: 38.547764,35.52181
+      parent: 2
+  - uid: 3914
+    components:
+    - type: Transform
+      pos: 38.547764,35.52181
+      parent: 2
+  - uid: 3915
+    components:
+    - type: Transform
+      pos: 38.547764,35.52181
+      parent: 2
 - proto: FenceWoodClassic
   entities:
   - uid: 3223
@@ -11631,6 +11806,36 @@ entities:
     - type: Transform
       pos: 88.5,34.5
       parent: 2
+  - uid: 3877
+    components:
+    - type: Transform
+      pos: 36.5,35.5
+      parent: 2
+  - uid: 3878
+    components:
+    - type: Transform
+      pos: 37.5,35.5
+      parent: 2
+  - uid: 3879
+    components:
+    - type: Transform
+      pos: 38.5,35.5
+      parent: 2
+  - uid: 3880
+    components:
+    - type: Transform
+      pos: 112.5,46.5
+      parent: 2
+  - uid: 3881
+    components:
+    - type: Transform
+      pos: 113.5,46.5
+      parent: 2
+  - uid: 3882
+    components:
+    - type: Transform
+      pos: 114.5,46.5
+      parent: 2
 - proto: TreeMed
   entities:
   - uid: 2919
@@ -12464,11 +12669,6 @@ entities:
     - type: Transform
       pos: 48,47
       parent: 2
-  - uid: 2255
-    components:
-    - type: Transform
-      pos: 114,47
-      parent: 2
   - uid: 2256
     components:
     - type: Transform
@@ -22105,4 +22305,106 @@ entities:
     - type: Transform
       pos: 89.5,35.5
       parent: 2
+- proto: YarrowHealingHerbs
+  entities:
+  - uid: 2255
+    components:
+    - type: Transform
+      pos: 112.36595,46.576748
+      parent: 2
+  - uid: 3883
+    components:
+    - type: Transform
+      pos: 112.3972,46.826748
+      parent: 2
+  - uid: 3884
+    components:
+    - type: Transform
+      pos: 112.55345,46.748623
+      parent: 2
+  - uid: 3885
+    components:
+    - type: Transform
+      pos: 112.8347,46.639248
+      parent: 2
+  - uid: 3886
+    components:
+    - type: Transform
+      pos: 112.63158,46.639248
+      parent: 2
+  - uid: 3887
+    components:
+    - type: Transform
+      pos: 112.35033,46.639248
+      parent: 2
+  - uid: 3888
+    components:
+    - type: Transform
+      pos: 112.30345,46.639248
+      parent: 2
+  - uid: 3889
+    components:
+    - type: Transform
+      pos: 112.44408,46.701748
+      parent: 2
+  - uid: 3890
+    components:
+    - type: Transform
+      pos: 112.44408,46.701748
+      parent: 2
+  - uid: 3916
+    components:
+    - type: Transform
+      pos: 37.485264,35.67806
+      parent: 2
+  - uid: 3917
+    components:
+    - type: Transform
+      pos: 37.485264,35.67806
+      parent: 2
+  - uid: 3918
+    components:
+    - type: Transform
+      pos: 37.65714,35.849934
+      parent: 2
+  - uid: 3919
+    components:
+    - type: Transform
+      pos: 37.829014,35.83431
+      parent: 2
+  - uid: 3920
+    components:
+    - type: Transform
+      pos: 37.860264,35.70931
+      parent: 2
+  - uid: 3921
+    components:
+    - type: Transform
+      pos: 37.735264,35.537434
+      parent: 2
+  - uid: 3922
+    components:
+    - type: Transform
+      pos: 37.53214,35.52181
+      parent: 2
+  - uid: 3923
+    components:
+    - type: Transform
+      pos: 37.53214,35.52181
+      parent: 2
+  - uid: 3924
+    components:
+    - type: Transform
+      pos: 37.56339,35.631184
+      parent: 2
+  - uid: 3925
+    components:
+    - type: Transform
+      pos: 37.56339,35.693684
+      parent: 2
+  - uid: 3926
+    components:
+    - type: Transform
+      pos: 37.56339,35.693684
+      parent: 2
 ...

+ 44 - 197
Resources/Maps/civ/tdm/camp_ww2.yml

@@ -4,8 +4,8 @@ meta:
   engineVersion: 251.0.0
   forkId: ""
   forkVersion: ""
-  time: 05/20/2025 22:19:05
-  entityCount: 3990
+  time: 05/21/2025 14:13:33
+  entityCount: 3959
 maps:
 - 1
 grids:
@@ -3185,164 +3185,6 @@ entities:
       rot: 1.5707963267948966 rad
       pos: 73.50877,23.728542
       parent: 2
-- proto: civ13_magazine_clip_(7.62x54mm)
-  entities:
-  - uid: 3981
-    components:
-    - type: Transform
-      pos: 36.55528,43.318863
-      parent: 2
-  - uid: 3982
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-  - uid: 3983
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-  - uid: 3984
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-  - uid: 3985
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-  - uid: 3986
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-  - uid: 3987
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-  - uid: 3988
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-  - uid: 3989
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-  - uid: 3990
-    components:
-    - type: Transform
-      pos: 36.52403,43.318863
-      parent: 2
-- proto: civ13_magazine_clip_(7.92x57mm)
-  entities:
-  - uid: 3964
-    components:
-    - type: Transform
-      pos: 113.54649,40.365738
-      parent: 2
-  - uid: 3965
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-  - uid: 3966
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-  - uid: 3967
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-  - uid: 3968
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-  - uid: 3969
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-  - uid: 3970
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-  - uid: 3971
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-  - uid: 3972
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-  - uid: 3973
-    components:
-    - type: Transform
-      pos: 113.48399,40.396988
-      parent: 2
-- proto: civ13_magazine_mp40_(9x19mm)
-  entities:
-  - uid: 3957
-    components:
-    - type: Transform
-      pos: 113.60899,43.213223
-      parent: 2
-  - uid: 3960
-    components:
-    - type: Transform
-      pos: 113.46837,43.338223
-      parent: 2
-  - uid: 3961
-    components:
-    - type: Transform
-      pos: 113.32774,43.463223
-      parent: 2
-  - uid: 3962
-    components:
-    - type: Transform
-      pos: 113.32774,43.463223
-      parent: 2
-  - uid: 3963
-    components:
-    - type: Transform
-      pos: 113.32774,43.463223
-      parent: 2
-- proto: civ13_magazine_PPSh_41_drum_magazine_(7.62x25mm)
-  entities:
-  - uid: 3976
-    components:
-    - type: Transform
-      pos: 37.539654,43.475113
-      parent: 2
-  - uid: 3977
-    components:
-    - type: Transform
-      pos: 37.539654,43.459488
-      parent: 2
-  - uid: 3978
-    components:
-    - type: Transform
-      pos: 37.539654,43.459488
-      parent: 2
-  - uid: 3979
-    components:
-    - type: Transform
-      pos: 37.539654,43.459488
-      parent: 2
-  - uid: 3980
-    components:
-    - type: Transform
-      pos: 37.539654,43.459488
-      parent: 2
 - proto: civ13_sword_longsword
   entities:
   - uid: 3875
@@ -3397,11 +3239,6 @@ entities:
       parent: 2
 - proto: CrateWood
   entities:
-  - uid: 2206
-    components:
-    - type: Transform
-      pos: 113.5,40.5
-      parent: 2
   - uid: 3413
     components:
     - type: Transform
@@ -3412,33 +3249,6 @@ entities:
     - type: Transform
       pos: 89.5,32.5
       parent: 2
-  - uid: 3837
-    components:
-    - type: Transform
-      pos: 113.5,43.5
-      parent: 2
-  - uid: 3974
-    components:
-    - type: Transform
-      pos: 36.5,43.5
-      parent: 2
-  - uid: 3975
-    components:
-    - type: Transform
-      pos: 37.5,43.5
-      parent: 2
-- proto: CrateWoodArrows
-  entities:
-  - uid: 3835
-    components:
-    - type: Transform
-      pos: 36.5,37.5
-      parent: 2
-  - uid: 3836
-    components:
-    - type: Transform
-      pos: 36.5,38.5
-      parent: 2
 - proto: CrateWoodBarbedwire
   entities:
   - uid: 3947
@@ -3471,6 +3281,13 @@ entities:
     - type: Transform
       pos: 114.5,37.5
       parent: 2
+- proto: CrateWoodDPAmmo
+  entities:
+  - uid: 2206
+    components:
+    - type: Transform
+      pos: 36.5,44.5
+      parent: 2
 - proto: CrateWoodenGrave
   entities:
   - uid: 3415
@@ -3488,6 +3305,41 @@ entities:
     - type: Transform
       pos: 86.5,48.5
       parent: 2
+- proto: CrateWoodMauserAmmo
+  entities:
+  - uid: 3836
+    components:
+    - type: Transform
+      pos: 112.5,40.5
+      parent: 2
+- proto: CrateWoodMG34Ammo
+  entities:
+  - uid: 3835
+    components:
+    - type: Transform
+      pos: 113.5,44.5
+      parent: 2
+- proto: CrateWoodMosinAmmo
+  entities:
+  - uid: 3957
+    components:
+    - type: Transform
+      pos: 37.5,43.5
+      parent: 2
+- proto: CrateWoodMP40Ammo
+  entities:
+  - uid: 3837
+    components:
+    - type: Transform
+      pos: 113.5,40.5
+      parent: 2
+- proto: CrateWoodPPShAmmo
+  entities:
+  - uid: 2072
+    components:
+    - type: Transform
+      pos: 36.5,43.5
+      parent: 2
 - proto: CrateWoodSandbags
   entities:
   - uid: 3889
@@ -4320,11 +4172,6 @@ entities:
       parent: 2
 - proto: FloorRoad
   entities:
-  - uid: 2072
-    components:
-    - type: Transform
-      pos: 36.5,42.5
-      parent: 2
   - uid: 2073
     components:
     - type: Transform

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1923 - 3028
Resources/Maps/civ/tdm/opushka.yml


+ 11 - 32
Resources/Prototypes/Civ14/Entities/Objects/Explosives/genades.yml → Resources/Prototypes/Civ14/Entities/Objects/Explosives/grenades.yml

@@ -24,7 +24,7 @@
     - type: Sprite
       sprite: Civ14/Objects/grenade.rsi
       layers:
-        - state: stgnade_active #because the unprimed is an overlay
+        - state: stgnade
           map: ["enum.TriggerVisualLayers.Base"]
     - type: GenericVisualizer
       visuals:
@@ -67,7 +67,7 @@
     - type: Sprite
       sprite: Civ14/Objects/grenade.rsi
       layers:
-        - state: f1_active #because the unprimed is an overlay
+        - state: f1
           map: ["enum.TriggerVisualLayers.Base"]
     - type: GenericVisualizer
       visuals:
@@ -93,25 +93,15 @@
   description: A tactical grenade that releases a large, long-lasting cloud of smoke when used.
   components:
     - type: Sprite
-      sprite: Civ14/Objects/grenade.rsi
-      layers:
-        - state: rdg2_yellow_active #because the unprimed is an overlay
-          map: ["enum.TriggerVisualLayers.Base"]
-    - type: GenericVisualizer
-      visuals:
-        enum.Trigger.TriggerVisuals.VisualState:
-          enum.ConstructionVisuals.Layer:
-            Primed: { state: rdg2_yellow_active }
-            Unprimed: { state: rdg2_yellow }
+      sprite: Civ14/Objects/Grenades/rdg2.rsi
+      state: rdg2_yellow
     - type: SmokeOnTrigger
-      duration: 30
-      spreadAmount: 40
+      duration: 25
+      spreadAmount: 30
     - type: SoundOnTrigger
       sound: /Audio/Items/smoke_grenade_smoke.ogg
     - type: DeleteOnTrigger
-    - type: TimerTriggerVisuals
-      primingSound:
-        path: /Audio/Items/smoke_grenade_prime.ogg
+
 - type: entity
   parent: GrenadeBase
   id: SmokeGrenadeNHG39
@@ -119,22 +109,11 @@
   description: A tactical grenade that releases a large, long-lasting cloud of smoke when used.
   components:
     - type: Sprite
-      sprite: Civ14/Objects/grenade.rsi
-      layers:
-        - state: smoke_grenade_active #because the unprimed is an overlay
-          map: ["enum.TriggerVisualLayers.Base"]
-    - type: GenericVisualizer
-      visuals:
-        enum.Trigger.TriggerVisuals.VisualState:
-          enum.ConstructionVisuals.Layer:
-            Primed: { state: smoke_grenade_active }
-            Unprimed: { state: smoke_grenade }
+      sprite: Civ14/Objects/Grenades/smoke_grenade.rsi
+      state: smoke_grenade
     - type: SmokeOnTrigger
-      duration: 30
-      spreadAmount: 40
+      duration: 25
+      spreadAmount: 30
     - type: SoundOnTrigger
       sound: /Audio/Items/smoke_grenade_smoke.ogg
     - type: DeleteOnTrigger
-    - type: TimerTriggerVisuals
-      primingSound:
-        path: /Audio/Items/smoke_grenade_prime.ogg

+ 36 - 0
Resources/Prototypes/Civ14/Entities/Objects/Explosives/mines.yml

@@ -0,0 +1,36 @@
+- type: entity
+  name: mine
+  parent: LandMineExplosive
+  id: LandMineCiv
+  components:
+    - type: Sprite
+      drawdepth: Items
+      sprite: Civ14/Objects/grenade.rsi
+      state: mine_armed
+    - type: LandMine
+      sound:
+        path: /Audio/Weapons/Guns/Cock/shotgun_open.ogg # yes, this is the right sound
+        params:
+          maxDistance: 10
+
+- type: entity
+  name: booby trap
+  parent: LandMineCiv
+  id: LandMineBoobyTrap
+  components:
+    - type: Sprite
+      drawdepth: Items
+      sprite: Civ14/Objects/grenade.rsi
+      state: boobytrap_armed
+    - type: Explosive
+      explosionType: Default
+      maxIntensity: 5
+      intensitySlope: 2
+      totalIntensity: 30
+      canCreateVacuum: false
+    - type: ProjectileGrenade
+      fillPrototype: PelletClusterLethal
+      capacity: 15
+    - type: ContainerContainer
+      containers:
+        cluster-payload: !type:Container

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

@@ -165,6 +165,17 @@
       damage:
         types:
           Piercing: 47
+- type: entity
+  id: civ13_bullet_a762x54_weak
+  name: civ13_bullet_a762x54_weak
+  parent: BaseBullet
+  categories:
+    - HideSpawnMenu
+  components:
+    - type: Projectile
+      damage:
+        types:
+          Piercing: 25
 - type: entity
   id: civ13_bullet_a44
   name: civ13_bullet_a44
@@ -209,6 +220,17 @@
       damage:
         types:
           Piercing: 49
+- type: entity
+  id: civ13_bullet_a792x57_weak
+  name: civ13_bullet_a792x57_weak
+  parent: BaseBullet
+  categories:
+    - HideSpawnMenu
+  components:
+    - type: Projectile
+      damage:
+        types:
+          Piercing: 27
 - type: entity
   id: civ13_bullet_a765x53
   name: civ13_bullet_a765x53

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

@@ -322,6 +322,17 @@
     - type: Tag
       tags:
         - civ13_caliber_a792x57
+#for MGs
+- type: entity
+  id: civ13_caliber_a792x57_weak
+  name: 7.92x57mm Mauser cartridge
+  parent: CartridgeRifle
+  components:
+    - type: CartridgeAmmo
+      proto: civ13_bullet_a792x57_weak
+    - type: Tag
+      tags:
+        - civ13_caliber_a792x57_weak
 - type: entity
   id: civ13_caliber_a765x53
   name: 7.65x53mm Mauser cartridge
@@ -392,6 +403,18 @@
     - type: Tag
       tags:
         - civ13_caliber_a762x54
+# for MGs
+- type: entity
+  id: civ13_caliber_a762x54_weak
+  name: 7.62x54mmR cartridge
+  parent: CartridgeRifle
+  components:
+    - type: CartridgeAmmo
+      proto: civ13_bullet_a762x54_weak
+    - type: Tag
+      tags:
+        - civ13_caliber_a762x54_weak
+
 - type: entity
   id: civ13_caliber_a303
   name: .303 british cartridge

+ 18 - 18
Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/entities_magazines.yml

@@ -451,11 +451,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a762x54
+      proto: civ13_caliber_a762x54_weak
       capacity: 250
       whitelist:
         tags:
-          - civ13_caliber_a762x54
+          - civ13_caliber_a762x54_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:
@@ -473,11 +473,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a792x57
+      proto: civ13_caliber_a792x57_weak
       capacity: 250
       whitelist:
         tags:
-          - civ13_caliber_a792x57
+          - civ13_caliber_a792x57_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:
@@ -561,11 +561,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a792x57
+      proto: civ13_caliber_a792x57_weak
       capacity: 250
       whitelist:
         tags:
-          - civ13_caliber_a792x57
+          - civ13_caliber_a792x57_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:
@@ -1559,11 +1559,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a792x57
+      proto: civ13_caliber_a792x57_weak
       capacity: 50
       whitelist:
         tags:
-          - civ13_caliber_a792x57
+          - civ13_caliber_a792x57_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:
@@ -1581,11 +1581,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a792x57
+      proto: civ13_caliber_a792x57_weak
       capacity: 25
       whitelist:
         tags:
-          - civ13_caliber_a792x57
+          - civ13_caliber_a792x57_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:
@@ -1669,11 +1669,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a762x54
+      proto: civ13_caliber_a762x54_weak
       capacity: 47
       whitelist:
         tags:
-          - civ13_caliber_a762x54
+          - civ13_caliber_a762x54_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:
@@ -2501,11 +2501,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a762x54
+      proto: civ13_caliber_a762x54_weak
       capacity: 250
       whitelist:
         tags:
-          - civ13_caliber_a762x54
+          - civ13_caliber_a762x54_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:
@@ -2523,11 +2523,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a762x54
+      proto: civ13_caliber_a762x54_weak
       capacity: 100
       whitelist:
         tags:
-          - civ13_caliber_a762x54
+          - civ13_caliber_a762x54_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:
@@ -3829,11 +3829,11 @@
   components:
     - type: BallisticAmmoProvider
       mayTransfer: true
-      proto: civ13_caliber_a762x54
+      proto: civ13_caliber_a762x54_weak
       capacity: 100
       whitelist:
         tags:
-          - civ13_caliber_a762x54
+          - civ13_caliber_a762x54_weak
     - type: Sprite
       sprite: Civ14/Objects/ammo.rsi
       layers:

+ 5 - 1
Resources/Prototypes/Civ14/Entities/Objects/Guns/Ammo/magazine_tags.yml

@@ -110,6 +110,9 @@
 - type: Tag
   id: civ13_caliber_a762x54
 
+- type: Tag
+  id: civ13_caliber_a762x54_weak
+
 - type: Tag
   id: civ13_caliber_a765x25
 
@@ -124,7 +127,8 @@
 
 - type: Tag
   id: civ13_caliber_a792x57
-
+- type: Tag
+  id: civ13_caliber_a792x57_weak
 - type: Tag
   id: civ13_caliber_a792x94
 

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

@@ -51,11 +51,11 @@
               - civ13_magazine_PKM_ammo_belt_(7.62x54mmR)
         gun_chamber:
           name: Chamber
-          startingItem: civ13_caliber_a762x54
+          startingItem: civ13_caliber_a762x54_weak
           priority: 1
           whitelist:
             tags:
-              - civ13_caliber_a762x54
+              - civ13_caliber_a762x54_weak
     - type: ChamberMagazineAmmoProvider
       boltClosed: true
       soundRack:
@@ -87,11 +87,11 @@
             tags:
               - civ13_magazine_PKM_ammo_belt_(7.62x54mmR)
         gun_chamber:
-          startingItem: civ13_caliber_a762x54
+          startingItem: civ13_caliber_a762x54_weak
           priority: 1
           whitelist:
             tags:
-              - civ13_caliber_a762x54
+              - civ13_caliber_a762x54_weak
 
 - type: entity
   name: Maschinengewehr 13
@@ -121,11 +121,11 @@
             tags:
               - civ13_magazine_MG34_magazine_(7.92x57mm)
         gun_chamber:
-          startingItem: civ13_caliber_a792x57
+          startingItem: civ13_caliber_a792x57_weak
           priority: 1
           whitelist:
             tags:
-              - civ13_caliber_a792x57
+              - civ13_caliber_a792x57_weak
 
 - type: entity
   name: MG34
@@ -274,11 +274,11 @@
             tags:
               - civ13_magazine_magazine_(7.62x54mm)
         gun_chamber:
-          startingItem: civ13_caliber_a762x54
+          startingItem: civ13_caliber_a762x54_weak
           priority: 1
           whitelist:
             tags:
-              - civ13_caliber_a762x54
+              - civ13_caliber_a762x54_weak
 - type: entity
   name: Type 99 light machinegun
   parent: BaseGunCivMG
@@ -378,11 +378,11 @@
             tags:
               - civ13_magazine_DP_pan_(7.62x54mmR)
         gun_chamber:
-          startingItem: civ13_caliber_a762x54
+          startingItem: civ13_caliber_a762x54_weak
           priority: 1
           whitelist:
             tags:
-              - civ13_caliber_a762x54
+              - civ13_caliber_a762x54_weak
 
 - type: entity
   name: M1918A2 BAR

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

@@ -83,7 +83,7 @@
     - type: Gun # Original minAngle: 52, maxAngle: 70
       projectileSpeed: 18
       minAngle: 12
-      maxAngle: 30
+      maxAngle: 40
       angleIncrease: 3.5
       angleDecay: 17.5
       fireRate: 4
@@ -172,8 +172,8 @@
       sprite: Civ14/Weapons/Guns/ppsh.rsi
     - type: Gun
       projectileSpeed: 18 # Original minAngle: 65, maxAngle: 110
-      minAngle: 25
-      maxAngle: 70
+      minAngle: 10
+      maxAngle: 50
       angleIncrease: 3
       angleDecay: 10
       fireRate: 5

+ 2 - 12
Resources/Prototypes/Civ14/Entities/Objects/Materials/civ_materials.yml

@@ -387,14 +387,9 @@
   components:
     - type: Sprite
       state: barbwire_stack
-      layers:
-        - state: barbwire_stack
-          map: ["base"]
     - type: Stack
       stackType: Barbwire
-      baseLayer: base
-      layerStates:
-        - barbwire_stack
+      baseLayer: barbwire_stack
     - type: Appearance
     - type: Item
       size: Large
@@ -426,14 +421,9 @@
     - type: Sprite
       sprite: Civ14/Objects/items.rsi
       state: sandbag_new
-      layers:
-        - state: sandbag_new
-          map: ["base"]
     - type: Stack
       stackType: Sandbags
-      baseLayer: base
-      layerStates:
-        - sandbag_new
+      baseLayer: sandbag_new
     - type: Appearance
     - type: Item
       size: Ginormous

+ 0 - 33
Resources/Prototypes/Civ14/Entities/Objects/Storage/crates.yml

@@ -16,36 +16,3 @@
         - entity_storage
     - type: StaticPrice
       price: 100
-
-- type: entity
-  parent: CrateWood
-  id: CrateWoodRollerbeds
-  name: rollerbed crate
-  suffix: rollerbeds
-  components:
-    - type: StorageFill
-      contents:
-        - id: CheapRollerBedSpawnFolded
-          amount: 5
-
-- type: entity
-  parent: CrateWood
-  id: CrateWoodBarbedwire
-  name: barbed wire crate
-  suffix: barbed wire
-  components:
-    - type: StorageFill
-      contents:
-        - id: MaterialBarbwire5
-          amount: 5
-
-- type: entity
-  parent: CrateWood
-  id: CrateWoodSandbags
-  name: sandbag crate
-  suffix: sandbags
-  components:
-    - type: StorageFill
-      contents:
-        - id: MaterialSandbags1
-          amount: 10

+ 99 - 0
Resources/Prototypes/Civ14/Entities/Objects/Storage/filled_crates.yml

@@ -8,3 +8,102 @@
       contents:
         - id: ArrowIron
           amount: 12
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodRollerbeds
+  name: rollerbed crate
+  suffix: rollerbeds
+  components:
+    - type: StorageFill
+      contents:
+        - id: CheapRollerBedSpawnFolded
+          amount: 5
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodBarbedwire
+  name: barbed wire crate
+  suffix: barbed wire
+  components:
+    - type: StorageFill
+      contents:
+        - id: MaterialBarbwire5
+          amount: 5
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodSandbags
+  name: sandbag crate
+  suffix: sandbags
+  components:
+    - type: StorageFill
+      contents:
+        - id: MaterialSandbags1
+          amount: 10
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodPPShAmmo
+  name: PPSh ammo crate
+  suffix: PPSh
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_PPSh_41_drum_magazine_(7.62x25mm)
+          amount: 6
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodMP40Ammo
+  name: MP40 ammo crate
+  suffix: MP40
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_mp40_(9x19mm)
+          amount: 10
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodMosinAmmo
+  name: Mosin ammo crate
+  suffix: 7.62x54mm
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_clip_(7.62x54mm)
+          amount: 15
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodMauserAmmo
+  name: Mauser ammo crate
+  suffix: 7.92x57mm
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_clip_(7.92x57mm)
+          amount: 15
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodDPAmmo
+  name: DP ammo crate
+  suffix: DP
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_DP_pan_(7.62x54mmR)
+          amount: 10
+
+- type: entity
+  parent: CrateWood
+  id: CrateWoodMG34Ammo
+  name: MG34 ammo crate
+  suffix: MG34
+  components:
+    - type: StorageFill
+      contents:
+        - id: civ13_magazine_MG34_magazine_(7.92x57mm)
+          amount: 6

+ 18 - 18
Resources/Prototypes/Civ14/Entities/Structures/Craft/shields.yml

@@ -30,7 +30,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 62
+            damage: 100
 
           behaviors:
             - !type:DoActsBehavior
@@ -70,7 +70,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 75
+            damage: 125
 
           behaviors:
             - !type:DoActsBehavior
@@ -108,7 +108,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 62
+            damage: 100
 
           behaviors:
             - !type:DoActsBehavior
@@ -149,7 +149,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 62
+            damage: 130
 
           behaviors:
             - !type:DoActsBehavior
@@ -187,7 +187,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 60
+            damage: 130
 
           behaviors:
             - !type:DoActsBehavior
@@ -226,7 +226,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 60
+            damage: 130
 
           behaviors:
             - !type:DoActsBehavior
@@ -265,7 +265,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 62
+            damage: 110
 
           behaviors:
             - !type:DoActsBehavior
@@ -304,7 +304,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 57
+            damage: 100
 
           behaviors:
             - !type:DoActsBehavior
@@ -343,7 +343,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 57
+            damage: 100
           behaviors:
             - !type:DoActsBehavior
               acts: ["Destruction"]
@@ -381,7 +381,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 57
+            damage: 100
           behaviors:
             - !type:DoActsBehavior
               acts: ["Destruction"]
@@ -419,7 +419,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 57
+            damage: 100
 
           behaviors:
             - !type:DoActsBehavior
@@ -458,7 +458,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 57
+            damage: 100
 
           behaviors:
             - !type:DoActsBehavior
@@ -497,7 +497,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 57
+            damage: 100
 
           behaviors:
             - !type:DoActsBehavior
@@ -536,7 +536,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 57
+            damage: 110
 
           behaviors:
             - !type:DoActsBehavior
@@ -578,7 +578,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 75
+            damage: 110
 
           behaviors:
             - !type:DoActsBehavior
@@ -617,7 +617,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 75
+            damage: 110
 
           behaviors:
             - !type:DoActsBehavior
@@ -664,7 +664,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 50
+            damage: 90
 
           behaviors:
             - !type:DoActsBehavior
@@ -706,7 +706,7 @@
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
-            damage: 50
+            damage: 110
 
           behaviors:
             - !type:DoActsBehavior

+ 188 - 12
Resources/Prototypes/Civ14/Entities/Structures/Walls/walls.yml

@@ -133,11 +133,13 @@
       cost: 5
       time: 8
       material: Clay
+
 - type: entity
   parent: BaseWall
-  id: LogWall
+  id: LogWallIndestructible
   name: log wall
   description: A wall made of stacked hardwood logs. For that rustic feel.
+  suffix: indestructible
   components:
     - type: MeleeSound
       soundGroups:
@@ -151,6 +153,17 @@
       sprite: Civ14/Structures/Walls/oldwood.rsi
     - type: Icon
       sprite: Civ14/Structures/Walls/oldwood.rsi
+    - type: IconSmooth
+      key: walls
+      base: oldwood
+
+- type: entity
+  parent: LogWallIndestructible
+  id: LogWall
+  name: log wall
+  description: A wall made of stacked hardwood logs. For that rustic feel.
+  suffix: ""
+  components:
     - type: Damageable
       damageContainer: StructuralInorganic
       damageModifierSet: Wood
@@ -177,9 +190,6 @@
       cost: 5
       time: 8
       material: WoodPlank
-    - type: IconSmooth
-      key: walls
-      base: oldwood
 
 - type: entity
   parent: BaseWall
@@ -232,9 +242,10 @@
 # stone walls
 - type: entity
   parent: BaseWall
-  id: StoneBlockWall
+  id: StoneBlockWallIndestructible
   name: stone block wall
   description: An ancient wall made of stacked stone blocks.
+  suffix: indestructible
   components:
     - type: Tag
       tags:
@@ -243,6 +254,17 @@
       sprite: Civ14/Structures/Walls/stone_block_wall.rsi
     - type: Icon
       sprite: Civ14/Structures/Walls/stone_block_wall.rsi
+    - type: IconSmooth
+      key: walls
+      base: stone_block_wall
+
+- type: entity
+  parent: StoneBlockWallIndestructible
+  id: StoneBlockWall
+  name: stone block wall
+  description: An ancient wall made of stacked stone blocks.
+  suffix: ""
+  components:
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
@@ -250,9 +272,6 @@
           behaviors:
             - !type:DoActsBehavior
               acts: ["Destruction"]
-    - type: IconSmooth
-      key: walls
-      base: stone_block_wall
     - type: Construction
       agemin: 0
       agemax: 8
@@ -261,6 +280,7 @@
       cost: 6
       time: 8
       material: Stone
+
 - type: entity
   parent: StoneBlockWall
   id: MayanStoneWall
@@ -282,6 +302,21 @@
       cost: 6
       time: 8
       material: Stone
+
+- type: entity
+  parent: StoneBlockWallIndestructible
+  id: StoneBrickWallIndestructible
+  name: stone brick wall
+  description: A wall made of well-stacked stone bricks.
+  components:
+    - type: Sprite
+      sprite: Civ14/Structures/Walls/new_stonebrick.rsi
+    - type: Icon
+      sprite: Civ14/Structures/Walls/new_stonebrick.rsi
+    - type: IconSmooth
+      key: walls
+      base: new_stonebrick
+
 - type: entity
   parent: StoneBlockWall
   id: StoneBrickWall
@@ -303,6 +338,7 @@
       cost: 6
       time: 8
       material: Stone
+
 - type: entity
   parent: StoneBlockWall
   id: MarbleBlockWall
@@ -324,6 +360,22 @@
       cost: 8
       time: 8
       material: Stone
+
+- type: entity
+  parent: StoneBlockWallIndestructible
+  id: FortressBrickWallIndestructible
+  name: fortress stone wall
+  description: A strong, reinforced stone brick wall.
+  suffix: indestructible
+  components:
+    - type: Sprite
+      sprite: Civ14/Structures/Walls/fortress_brickwall.rsi
+    - type: Icon
+      sprite: Civ14/Structures/Walls/fortress_brickwall.rsi
+    - type: IconSmooth
+      key: walls
+      base: fortress_brickwall
+
 - type: entity
   parent: StoneBlockWall
   id: FortressBrickWall
@@ -352,6 +404,7 @@
       cost: 6
       time: 8
       material: Stone
+
 - type: entity
   parent: StoneBlockWall
   id: RomanStoneBrickWall
@@ -397,9 +450,10 @@
 #sandstone walls
 - type: entity
   parent: BaseWall
-  id: SandstoneBlockWall
+  id: SandstoneBlockWallIndestructible
   name: sandstone block wall
   description: An ancient wall made of stacked sandstone blocks.
+  suffix: indestructible
   components:
     - type: Tag
       tags:
@@ -408,6 +462,17 @@
       sprite: Civ14/Structures/Walls/sandstone_block_wall.rsi
     - type: Icon
       sprite: Civ14/Structures/Walls/sandstone_block_wall.rsi
+    - type: IconSmooth
+      key: walls
+      base: sandstone_block_wall
+
+- type: entity
+  parent: SandstoneBlockWallIndestructible
+  id: SandstoneBlockWall
+  name: sandstone block wall
+  description: An ancient wall made of stacked sandstone blocks.
+  suffix: ""
+  components:
     - type: Destructible
       thresholds:
         - trigger: !type:DamageTrigger
@@ -415,9 +480,6 @@
           behaviors:
             - !type:DoActsBehavior
               acts: ["Destruction"]
-    - type: IconSmooth
-      key: walls
-      base: sandstone_block_wall
     - type: Construction
       agemin: 0
       agemax: 8
@@ -426,6 +488,7 @@
       cost: 6
       time: 8
       material: Sandstone
+
 - type: entity
   parent: SandstoneBlockWall
   id: EgyptianSandstoneBrickWall
@@ -447,6 +510,21 @@
       cost: 6
       time: 8
       material: Sandstone
+- type: entity
+  parent: SandstoneBlockWallIndestructible
+  id: SandstoneBrickWallIndestructible
+  name: sandstone brick wall
+  description: A wall made of well-stacked sandstone bricks.
+  suffix: indestructible
+  components:
+    - type: Sprite
+      sprite: Civ14/Structures/Walls/sandstone_brickwall.rsi
+    - type: Icon
+      sprite: Civ14/Structures/Walls/sandstone_brickwall.rsi
+    - type: IconSmooth
+      key: walls
+      base: sandstone_brickwall
+
 - type: entity
   parent: SandstoneBlockWall
   id: SandstoneBrickWall
@@ -468,6 +546,22 @@
       cost: 6
       time: 8
       material: Sandstone
+
+- type: entity
+  parent: SandstoneBlockWallIndestructible
+  id: RedSandstoneBlockWallIndestructible
+  name: red sandstone block wall
+  description: A wall made of red sandstone blocks.
+  suffix: indestructible
+  components:
+    - type: Sprite
+      sprite: Civ14/Structures/Walls/redsandstone_block_wall.rsi
+    - type: Icon
+      sprite: Civ14/Structures/Walls/redsandstone_block_wall.rsi
+    - type: IconSmooth
+      key: walls
+      base: redsandstone_block_wall
+
 - type: entity
   parent: SandstoneBlockWall
   id: RedSandstoneBlockWall
@@ -489,6 +583,22 @@
       cost: 6
       time: 8
       material: Sandstone
+
+- type: entity
+  parent: SandstoneBlockWallIndestructible
+  id: FortressSandstoneBrickWallIndestructible
+  name: fortress sandstone wall
+  description: A fortress wall made of dark sandstone bricks.
+  suffix: indestructible
+  components:
+    - type: Sprite
+      sprite: Civ14/Structures/Walls/sandstone_fortress.rsi
+    - type: Icon
+      sprite: Civ14/Structures/Walls/sandstone_fortress.rsi
+    - type: IconSmooth
+      key: walls
+      base: sandstone_fortress
+
 - type: entity
   parent: SandstoneBlockWall
   id: FortressSandstoneBrickWall
@@ -645,3 +755,69 @@
     - type: IconSmooth
       key: walls
       base: nordic
+
+- type: entity
+  parent: BaseWall
+  id: ConcreteWallIndestructible
+  name: concrete wall
+  description: A modern, sturdy concrete wall.
+  suffix: indestructible
+  components:
+    - type: Tag
+      tags:
+        - Wall
+    - type: Sprite
+      sprite: Civ14/Structures/Walls/concrete.rsi
+    - type: Icon
+      sprite: Civ14/Structures/Walls/concrete.rsi
+    - type: IconSmooth
+      key: walls
+      base: concrete_wall
+
+- type: entity
+  parent: ConcreteWallIndestructible
+  id: ConcreteWall
+  name: concrete wall
+  description: A modern, sturdy concrete wall.
+  suffix: ""
+  components:
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 450
+          behaviors:
+            - !type:DoActsBehavior
+              acts: ["Destruction"]
+
+- type: entity
+  parent: BaseWall
+  id: OldBrickWallIndestructible
+  name: brick wall
+  description: A classic red brick wall.
+  suffix: indestructible
+  components:
+    - type: Tag
+      tags:
+        - Wall
+    - type: Sprite
+      sprite: Structures/Walls/cobblebrick_sand.rsi
+    - type: Icon
+      sprite: Structures/Walls/cobblebrick_sand.rsi
+    - type: IconSmooth
+      key: walls
+      base: cobblebrick
+
+- type: entity
+  parent: OldBrickWallIndestructible
+  id: OldBrickWall
+  name: brick wall
+  description: A classic red brick wall.
+  suffix: ""
+  components:
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 400
+          behaviors:
+            - !type:DoActsBehavior
+              acts: ["Destruction"]

+ 49 - 51
Resources/Prototypes/Entities/Objects/Misc/land_mine.yml

@@ -2,54 +2,52 @@
   id: BaseLandMine
   abstract: true
   components:
-  - type: Clickable
-  - type: InteractionOutline
-  - type: Anchorable
-  - type: Pullable
-  - type: MovedByPressure
-  - type: Physics
-    bodyType: Static
-    fixedRotation: true
-  - type: Fixtures
-    fixtures:
-      slips:
-        shape:
-          !type:PhysShapeAabb
-          bounds: "-0.2,-0.2,0.2,0.2"
-        hard: false
-        layer:
-          - LowImpassable
-  - type: Sprite
-    drawdepth: Items
-    sprite: Objects/Misc/landmine.rsi
-    state: landmine
-  - type: Damageable
-    damageContainer: Inorganic
-  - type: Destructible
-    thresholds:
-    - trigger:
-        !type:DamageTrigger
-        damage: 50
-      behaviors:
-      - !type:TriggerBehavior
-      - !type:DoActsBehavior
-        acts: [ "Destruction" ]
-  - type: LandMine
-    sound:
+    - type: Clickable
+    - type: InteractionOutline
+    - type: Anchorable
+    - type: Pullable
+    - type: MovedByPressure
+    - type: Physics
+      bodyType: Static
+      fixedRotation: true
+    - type: Fixtures
+      fixtures:
+        slips:
+          shape: !type:PhysShapeAabb
+            bounds: "-0.2,-0.2,0.2,0.2"
+          hard: false
+          layer:
+            - LowImpassable
+    - type: Sprite
+      drawdepth: Items
+      sprite: Objects/Misc/landmine.rsi
+      state: landmine
+    - type: Damageable
+      damageContainer: Inorganic
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 50
+          behaviors:
+            - !type:TriggerBehavior
+            - !type:DoActsBehavior
+              acts: ["Destruction"]
+    - type: LandMine
+      sound:
         path: /Audio/Effects/beep_landmine.ogg
         params:
-            maxDistance: 10
-  - type: StepTrigger
-    requiredTriggeredSpeed: 0
-    stepOn: true
+          maxDistance: 10
+    - type: StepTrigger
+      requiredTriggeredSpeed: 0
+      stepOn: true
 
 - type: entity
   name: kick mine
   parent: BaseLandMine
   id: LandMineKick
   components:
-  - type: GhostKickUserOnTrigger
-  - type: DeleteOnTrigger
+    - type: GhostKickUserOnTrigger
+    - type: DeleteOnTrigger
 
 - type: entity
   name: modular mine
@@ -57,20 +55,20 @@
   parent: BaseLandMine
   id: LandMineModular
   components:
-  - type: PayloadCase
-  - type: Construction
-    graph: ModularMineGraph
-    node: emptyCase
+    - type: PayloadCase
+    - type: Construction
+      graph: ModularMineGraph
+      node: emptyCase
 
 - type: entity
   name: explosive mine
   parent: BaseLandMine
   id: LandMineExplosive
   components:
-  - type: ExplodeOnTrigger
-  - type: Explosive
-    explosionType: Default
-    maxIntensity: 10
-    intensitySlope: 3
-    totalIntensity: 120 # about a ~4 tile radius
-    canCreateVacuum: false
+    - type: ExplodeOnTrigger
+    - type: Explosive
+      explosionType: Default
+      maxIntensity: 10
+      intensitySlope: 3
+      totalIntensity: 120 # about a ~4 tile radius
+      canCreateVacuum: false

+ 10 - 10
Resources/Prototypes/Maps/civ/camp.yml

@@ -16,16 +16,16 @@
           availableJobs:
             # English
             EnglishLord: [1, 1]
-            EnglishKnight: [2, 5]
-            EnglishSwordsman: [5, 20]
-            EnglishSpearman: [20, 50]
-            EnglishRanged: [5, 20]
-            EnglishMedic: [1, 3]
+            EnglishKnight: [5, 5]
+            EnglishSwordsman: [20, 20]
+            EnglishSpearman: [50, 50]
+            EnglishRanged: [20, 20]
+            EnglishMedic: [3, 3]
 
             # French
             FrenchLord: [1, 1]
-            FrenchKnight: [2, 5]
-            FrenchSwordsman: [5, 20]
-            FrenchSpearman: [20, 50]
-            FrenchRanged: [5, 20]
-            FrenchMedic: [1, 3]
+            FrenchKnight: [5, 5]
+            FrenchSwordsman: [20, 20]
+            FrenchSpearman: [50, 50]
+            FrenchRanged: [20, 20]
+            FrenchMedic: [3, 3]

+ 11 - 10
Resources/Prototypes/Maps/civ/camp_ww2.yml

@@ -16,15 +16,16 @@
           availableJobs:
             # German
             GermanCaptain: [1, 1]
-            GermanSergeant: [2, 5]
-            GermanSubmachineGunner: [5, 20]
-            GermanRifleman: [20, 50]
-            GermanMachinegunner: [5, 20]
-            GermanMedic: [1, 3]
+            GermanSergeant: [4, 4]
+            GermanSubmachineGunner: [10, 10]
+            GermanRifleman: [40, 40]
+            GermanMachinegunner: [5, 5]
+            GermanMedic: [3, 3]
+
             # Soviet
             SovietCaptain: [1, 1]
-            SovietSergeant: [2, 5]
-            SovietSubmachineGunner: [5, 20]
-            SovietRifleman: [20, 50]
-            SovietMachinegunner: [5, 20]
-            SovietMedic: [1, 3]
+            SovietSergeant: [4, 4]
+            SovietSubmachineGunner: [10, 10]
+            SovietRifleman: [40, 40]
+            SovietMachinegunner: [5, 5]
+            SovietMedic: [3, 3]

+ 11 - 11
Resources/Prototypes/Maps/civ/opushka.yml

@@ -16,16 +16,16 @@
           availableJobs:
             # German
             GermanCaptain: [1, 1]
-            GermanSergeant: [2, 5]
-            GermanSubmachineGunner: [5, 20]
-            GermanRifleman: [20, 50]
-            GermanMachinegunner: [5, 20]
-            GermanMedic: [1, 3]
+            GermanSergeant: [4, 4]
+            GermanSubmachineGunner: [10, 10]
+            GermanRifleman: [40, 40]
+            GermanMachinegunner: [5, 5]
+            GermanMedic: [3, 3]
 
-          # Soviet
+            # Soviet
             SovietCaptain: [1, 1]
-            SovietSergeant: [2, 5]
-            SovietSubmachineGunner: [5, 20]
-            SovietRifleman: [20, 50]
-            SovietMachinegunner: [5, 20]
-            SovietMedic: [1, 3]
+            SovietSergeant: [4, 4]
+            SovietSubmachineGunner: [10, 10]
+            SovietRifleman: [40, 40]
+            SovietMachinegunner: [5, 5]
+            SovietMedic: [3, 3]

+ 0 - 1
Resources/Prototypes/Tiles/floors.yml

@@ -1530,7 +1530,6 @@
     - 1.0
     - 1.0
     - 1.0
-  baseTurf: Plating
   edgeSpritePriority: 2
   edgeSprites:
     SouthEast: /Textures/Tiles/Planet/dirt/single_edge.png

BIN
Resources/Textures/Civ14/Objects/Grenades/rdg2.rsi/base.png


BIN
Resources/Textures/Civ14/Objects/Grenades/rdg2.rsi/icon.png


+ 20 - 0
Resources/Textures/Civ14/Objects/Grenades/rdg2.rsi/meta.json

@@ -0,0 +1,20 @@
+{
+    "version": 1,
+    "license": "AGPLv3",
+    "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
+    "size": {
+        "x": 32,
+        "y": 32
+    },
+    "states": [
+        {
+            "name": "base"
+        },
+        {
+            "name": "primed"
+        },
+        {
+            "name": "icon"
+        }
+    ]
+}

BIN
Resources/Textures/Civ14/Objects/Grenades/rdg2.rsi/primed.png


BIN
Resources/Textures/Civ14/Objects/Grenades/smoke_grenade.rsi/base.png


BIN
Resources/Textures/Civ14/Objects/Grenades/smoke_grenade.rsi/icon.png


+ 20 - 0
Resources/Textures/Civ14/Objects/Grenades/smoke_grenade.rsi/meta.json

@@ -0,0 +1,20 @@
+{
+    "version": 1,
+    "license": "AGPLv3",
+    "copyright": "Taken from Civilization 13 https://github.com/civ13/civ13",
+    "size": {
+        "x": 32,
+        "y": 32
+    },
+    "states": [
+        {
+            "name": "base"
+        },
+        {
+            "name": "primed"
+        },
+        {
+            "name": "icon"
+        }
+    ]
+}

BIN
Resources/Textures/Civ14/Objects/Grenades/smoke_grenade.rsi/primed.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall0.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall1.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall2.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall3.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall4.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall5.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall6.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/concrete_wall7.png


BIN
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/full.png


+ 46 - 0
Resources/Textures/Civ14/Structures/Walls/concrete.rsi/meta.json

@@ -0,0 +1,46 @@
+{
+    "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Created by Valithor for Space Station 14",
+    "size": {
+    "x": 32,
+    "y": 32
+    },
+    "states": [
+    {
+        "name": "full"
+    },
+    {
+        "name": "concrete_wall0",
+        "directions": 4
+    },
+    {
+        "name": "concrete_wall1",
+        "directions": 4
+    },
+    {
+        "name": "concrete_wall2",
+        "directions": 4
+    },
+    {
+        "name": "concrete_wall3",
+        "directions": 4
+    },
+    {
+        "name": "concrete_wall4",
+        "directions": 4
+    },
+    {
+        "name": "concrete_wall5",
+        "directions": 4
+    },
+    {
+        "name": "concrete_wall6",
+        "directions": 4
+    },
+    {
+        "name": "concrete_wall7",
+        "directions": 4
+    }
+    ]
+}

BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/full.png


+ 46 - 0
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/meta.json

@@ -0,0 +1,46 @@
+{
+    "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Created by Valithor for Space Station 14",
+    "size": {
+    "x": 32,
+    "y": 32
+    },
+    "states": [
+    {
+        "name": "full"
+    },
+    {
+        "name": "new_brick0",
+        "directions": 4
+    },
+    {
+        "name": "new_brick1",
+        "directions": 4
+    },
+    {
+        "name": "new_brick2",
+        "directions": 4
+    },
+    {
+        "name": "new_brick3",
+        "directions": 4
+    },
+    {
+        "name": "new_brick4",
+        "directions": 4
+    },
+    {
+        "name": "new_brick5",
+        "directions": 4
+    },
+    {
+        "name": "new_brick6",
+        "directions": 4
+    },
+    {
+        "name": "new_brick7",
+        "directions": 4
+    }
+    ]
+}

BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick0.png


BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick1.png


BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick2.png


BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick3.png


BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick4.png


BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick5.png


BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick6.png


BIN
Resources/Textures/Civ14/Structures/Walls/old_brick.rsi/new_brick7.png


Vissa filer visades inte eftersom för många filer har ändrats