diff --git a/Assets/Scenes/Simulation.unity b/Assets/Scenes/Simulation.unity
index 220b73672343ac19a706893f6487cdfc7ad31b94..665cb3b0801edc187bd4ae77801414ce934a9455 100644
--- a/Assets/Scenes/Simulation.unity
+++ b/Assets/Scenes/Simulation.unity
@@ -471,7 +471,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 519420028}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 2, y: -5, z: -10}
+  m_LocalPosition: {x: 2, y: -4, z: -10}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 0}
diff --git a/Assets/Scripts/Logic/Data/World/Unit.cs b/Assets/Scripts/Logic/Data/World/Unit.cs
index 3dfee4546147523ee85217e8484a17811ff5c0a3..b9424df66e27e93563881ddf3e4ff2d50fd56629 100644
--- a/Assets/Scripts/Logic/Data/World/Unit.cs
+++ b/Assets/Scripts/Logic/Data/World/Unit.cs
@@ -1,5 +1,4 @@
-ďťżusing System;
-using System.Collections.Generic;
+ďťżusing System.Collections.Generic;
 using System.Linq;
 using Logic.Event.World.Unit;
 
@@ -102,8 +101,13 @@ public class Unit {
 	}
 
 	internal void InflictDamage(Tower attacker, float damage) {
-		CurrentHealth = Math.Max(CurrentHealth - damage, 0);
-		World.Overview.Events.Raise(new UnitDamagedEvent(this, attacker));
+		if (damage >= CurrentHealth) {
+			damage = CurrentHealth;
+			CurrentHealth = 0;
+		} else {
+			CurrentHealth -= damage;
+		}
+		World.Overview.Events.Raise(new UnitDamagedEvent(this, damage, attacker));
 	}
 
 	internal void DestroyWithoutDamage() {
diff --git a/Assets/Scripts/Logic/Event/World/Unit/UnitDamagedEvent.cs b/Assets/Scripts/Logic/Event/World/Unit/UnitDamagedEvent.cs
index bcc0ac41713bf0504e7ddf7df306c698d4b498d8..34a20be1ff70eb5f2062d70afd0dca7fac058528 100644
--- a/Assets/Scripts/Logic/Event/World/Unit/UnitDamagedEvent.cs
+++ b/Assets/Scripts/Logic/Event/World/Unit/UnitDamagedEvent.cs
@@ -8,11 +8,12 @@ namespace Logic.Event.World.Unit {
 public class UnitDamagedEvent : BaseEvent, IUnitEvent {
 	public IUnitTypeData Type => Unit.Type;
 	public Data.World.Unit Unit { get; }
-
+	public float Damage { get; }
 	public Data.World.Tower Attacker { get; }
 
-	public UnitDamagedEvent(Data.World.Unit unit, Data.World.Tower attacker) {
+	public UnitDamagedEvent(Data.World.Unit unit, float damage, Data.World.Tower attacker) {
 		Unit = unit;
+		Damage = damage;
 		Attacker = attacker;
 	}
 }
diff --git a/Assets/Scripts/LogicTests/GameOverviewTest.cs b/Assets/Scripts/LogicTests/GameOverviewTest.cs
index 44b07a610c1715dd15a4b7581c2447014a987776..0ac2cdcfc58180f9179e181cba3404371ea9d090 100644
--- a/Assets/Scripts/LogicTests/GameOverviewTest.cs
+++ b/Assets/Scripts/LogicTests/GameOverviewTest.cs
@@ -1,7 +1,6 @@
 ďťżusing System;
 using System.Linq;
 using Logic.Command;
-using Logic.Command.Unit;
 using Logic.Data;
 using NUnit.Framework;
 
diff --git a/Assets/Scripts/LogicTests/GameTestUtils.cs b/Assets/Scripts/LogicTests/GameTestUtils.cs
index aba6a1dc98280c7c1133d2646d1ed3b6d2ec7510..a6d6740d65964602e92854bb4b3127ecdbbc614a 100644
--- a/Assets/Scripts/LogicTests/GameTestUtils.cs
+++ b/Assets/Scripts/LogicTests/GameTestUtils.cs
@@ -154,7 +154,7 @@ public static class GameTestUtils {
 		public int BuildingCost { get; set; } = 3;
 		public int DestroyRefund { get; set; } = 1;
 		public int UpgradeCost { get; set; } = 2;
-		public ITowerTypeData AfterUpgradeType { get; set; } = null;
+		public ITowerTypeData AfterUpgradeType { get; set; }
 	}
 }
 }
diff --git a/Assets/Scripts/Presentation/UI/MainMenu.cs b/Assets/Scripts/Presentation/UI/MainMenu.cs
index ce5f73d2c873b1faec9dff17350c768099104873..3d33e16b8f987ca50d54d1e58137e87c9ef7bf85 100644
--- a/Assets/Scripts/Presentation/UI/MainMenu.cs
+++ b/Assets/Scripts/Presentation/UI/MainMenu.cs
@@ -46,7 +46,7 @@ public class MainMenu : MonoBehaviour {
 		textContent.Clear();
 		foreach (string entry in gameRules.Split('\n')) {
 			bool isTitle = entry.StartsWith("#");
-			var label = new Label() { text = isTitle ? entry.Substring(1) : entry };
+			var label = new Label { text = isTitle ? entry.Substring(1) : entry };
 			label.AddToClassList(isTitle ? TitleStyle : ParagraphStyle);
 			textContent.Add(label);
 		}
diff --git a/Assets/Scripts/Presentation/UI/TowerPlacingUI.cs b/Assets/Scripts/Presentation/UI/TowerPlacingUI.cs
index 23db44127046c53151585cdfd5e420da8eeac803..5986fa6ea838597f5e12c3af058ccfb83a594f67 100644
--- a/Assets/Scripts/Presentation/UI/TowerPlacingUI.cs
+++ b/Assets/Scripts/Presentation/UI/TowerPlacingUI.cs
@@ -168,7 +168,7 @@ public class TowerPlacingUI : MonoBehaviour {
 	private void ShowTowerTypeStats(ITowerData towerType, VisualElement statsContainer) {
 		statsContainer.Clear();
 		if (towerType != null) {
-			string[] stats = new[] {
+			string[] stats = {
 				$"Damage: {towerType.Damage}", $"Range: {towerType.Range}", $"Building Cost: {towerType.BuildingCost}",
 				$"Destroy Refund: {towerType.DestroyRefund}", $"Cooldown Time: {towerType.CooldownTime}",
 				$"UpgradeCost: {towerType.UpgradeCost}"
@@ -255,7 +255,7 @@ public class TowerPlacingUI : MonoBehaviour {
 	public event Action<Tower> OnTowerUpgraded;
 
 	/// <summary>
-	///     Invoked when the next button is clicke
+	///     Invoked when the next button is clicked
 	/// </summary>
 	public event Action OnNextClicked;
 
diff --git a/Assets/Scripts/Presentation/World/SimulationManager.cs b/Assets/Scripts/Presentation/World/SimulationManager.cs
index db2dd02ce43c5df55ad6db9aeb202cca6b0a8dd4..1d73bb98a77a3443946f57934136996bb2f37a7c 100644
--- a/Assets/Scripts/Presentation/World/SimulationManager.cs
+++ b/Assets/Scripts/Presentation/World/SimulationManager.cs
@@ -39,8 +39,12 @@ public class SimulationManager : MonoBehaviour {
 			Debug.LogError($"[Logic Exception]: ${e} {e.InnerException}");
 		}
 
+		//Clone the ScriptableObject: it calculates and caches a random value,
+		//  which shouldn't be persisted between separate games.
+		WorldConfig worldConfigClone = Instantiate(worldConfig);
+
 		GameOverview = new GameOverview(ExceptionHandler, Random.Range(0, 9999),
-			overviewConfig, economyConfig, worldConfig);
+			overviewConfig, economyConfig, worldConfigClone);
 	}
 
 	private void Start() {