summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/game/Hex.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/tankontank/game/Hex.java')
-rw-r--r--core/src/ch/asynk/tankontank/game/Hex.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Hex.java b/core/src/ch/asynk/tankontank/game/Hex.java
index d61d601..e54574d 100644
--- a/core/src/ch/asynk/tankontank/game/Hex.java
+++ b/core/src/ch/asynk/tankontank/game/Hex.java
@@ -1,5 +1,6 @@
package ch.asynk.tankontank.game;
+import java.util.List;
import java.util.Iterator;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
@@ -100,4 +101,36 @@ public class Hex extends Tile
return c;
}
+
+ @Override
+ public int defenseFor(Pawn target, List<Pawn> foes)
+ {
+ Unit u = (Unit) target;
+ boolean terrainBonus = true;
+
+ for (Pawn foe : foes) {
+ if (((Unit) foe).type == Unit.UnitType.INFANTRY)
+ terrainBonus = false;
+ }
+
+ int def = u.def;
+ switch(terrain) {
+ case HILLS:
+ if (u.type != Unit.UnitType.HARD_TARGET)
+ def = u.cdef;
+ break;
+ case WOODS:
+ case TOWN:
+ if (u.type != Unit.UnitType.HARD_TARGET)
+ def = u.cdef;
+ if (terrainBonus)
+ def += 1;
+ break;
+ default:
+ def = ((Unit) target).def;
+ break;
+ }
+
+ return def;
+ }
}