diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-10-13 12:04:38 +0200 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2014-10-13 12:04:38 +0200 | 
| commit | 4b85e3f75e765a4240e2d206636824650074d26b (patch) | |
| tree | b5a624a43df174574efc24e1a3ec6fa858b1f2df /core/src/ch/asynk/tankontank/game | |
| parent | 9f12b0c465f07c110a5f75c032b1943fc1d36080 (diff) | |
| download | RustAndDust-4b85e3f75e765a4240e2d206636824650074d26b.zip RustAndDust-4b85e3f75e765a4240e2d206636824650074d26b.tar.gz | |
Tile,Hex: add int defenseFor(Pawn, List<Pawn>)
Diffstat (limited to 'core/src/ch/asynk/tankontank/game')
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/Hex.java | 33 | 
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; +    }  } | 
