diff --git a/src/view/GamePanel.java b/src/view/GamePanel.java
index b8d0afbc315f9d882104d163bae059ca6d2ed1de..92f881eb2c4d47dd07648e24b294c650f205c241 100644
--- a/src/view/GamePanel.java
+++ b/src/view/GamePanel.java
@@ -111,7 +111,7 @@ public class GamePanel extends JPanel {
 				Point fPoint = getFieldAt(new Point(arg0.getX(), arg0.getY()));
 				final Field f = world.getField(fPoint.x, fPoint.y);
 				if (f.isRoad() && f.getDefense() == null) {
-					JMenuItem menuItem = new JMenuItem("Build Obstacle");
+					JMenuItem menuItem = new JMenuItem("Build Obstacle" + " cost: " + 5);
 					menuItem.addActionListener(new ActionListener() {
 						public void actionPerformed(ActionEvent e) {
 							world.getPlayer().buildObstacle(f);
@@ -119,7 +119,7 @@ public class GamePanel extends JPanel {
 					});
 					popup.add(menuItem);
 				} else if (!f.isRoad() && f.getDefense() == null) {
-					JMenuItem menuItem = new JMenuItem("Build Tower");
+					JMenuItem menuItem = new JMenuItem("Build Tower" + " cost: " + 10);
 					menuItem.addActionListener(new ActionListener() {
 						public void actionPerformed(ActionEvent e) {
 							world.getPlayer().buildTower(f);
@@ -130,7 +130,7 @@ public class GamePanel extends JPanel {
 					final IUpgradeable u = f.getDefense();
 					ArrayList<IMagicrock> mrs = u.getAvailableMagicRocks();
 					for (final IMagicrock mr : mrs) {
-						JMenuItem menuItem = new JMenuItem(mr.getDisplayName());
+						JMenuItem menuItem = new JMenuItem(mr.getDisplayName() + " cost: " + mr.getCost());
 						menuItem.addActionListener(new ActionListener() {
 							public void actionPerformed(ActionEvent e) {
 								world.getPlayer().upgradeDefense(u, mr);
diff --git a/src/world/Player.java b/src/world/Player.java
index 9b203ae6f067670871a3df6d2b34355b29d456ec..a1351fc8be2fca3dd96ab595937b48dea1b392cf 100644
--- a/src/world/Player.java
+++ b/src/world/Player.java
@@ -7,7 +7,7 @@ import interfaces.IUpgradeable;
 public class Player implements IEnemyObserver
 {
 	private int magic;
-	private final int enemyMagic = 1;
+	private final int enemyMagic = 5;
 
 	public Player()
 	{
diff --git a/src/world/SpawnManager.java b/src/world/SpawnManager.java
index 70d17347652145aad388f441416160e61c1fbdb9..802698a02f721df2280c0bf3dd81ae51ad5241a2 100644
--- a/src/world/SpawnManager.java
+++ b/src/world/SpawnManager.java
@@ -37,8 +37,9 @@ public class SpawnManager implements ITickable, IEnemyObserver
 
 	private int nextSpawnNum()
 	{
-		int num = (int) Math.round(Math.pow((currentTime / 120.f), 2));
+		int num = (int) Math.round(Math.pow((currentTime / 300.f), 2));
 		num =  num < 1 ? 1 : num;
+		num = num > 5 ? 5 : num;
 		if (enemiesLeft < num) {
 			num = enemiesLeft;
 		}
@@ -105,6 +106,7 @@ public class SpawnManager implements ITickable, IEnemyObserver
 			spawnEnemies();
 			spawnTimeLeft = nextSpawnTime();
 		}
+		currentTime++;
 	}
 
 	public void enemyMoved(Enemy enemy)
diff --git a/src/world/Tower.java b/src/world/Tower.java
index e3e33185b733e3484384d6b6d112ae96be6f0a30..1d1706a705e8f77d2db4968678489dc6c9028941 100644
--- a/src/world/Tower.java
+++ b/src/world/Tower.java
@@ -42,7 +42,7 @@ public class Tower extends Placeable implements ITickable, IEnemyObserver,
 		damage.put(EnemyType.ELF, 20);
 		damage.put(EnemyType.HOBBIT, 20);
 		enemiesInRange = new ArrayList<Enemy>();
-		recoilTime = 10;
+		recoilTime = 5;
 		range = 1;
 	}
 
@@ -98,6 +98,7 @@ public class Tower extends Placeable implements ITickable, IEnemyObserver,
 				continue;
 			enemiesInRange.addAll(field.getEnemies());
 		}
+		target = null;
 	}
 
 	public void enemyDied(Enemy enemy) {
@@ -112,7 +113,7 @@ public class Tower extends Placeable implements ITickable, IEnemyObserver,
 
 	public void tick() {
 		if (!fogDescends) {
-			if ((new Random()).nextInt(100) % 20 == 0) {
+			if ((new Random()).nextInt(50) == 0) {
 				fogDescends = true;
 				fogTimeLeft = 3 + (new Random()).nextInt(20);
 			}