1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
package ch.asynk.tankontank.game;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import ch.asynk.tankontank.engine.Pawn;
import ch.asynk.tankontank.engine.Tile;
import ch.asynk.tankontank.engine.HeadedPawn;
public class Unit extends HeadedPawn
{
public static final int DISABLED = 0;
public int rng;
public int def;
public int cdef;
public int mp;
public boolean hq;
public boolean ht;
public Army army;
@Override
public int getMovementPoints()
{
return mp;
}
@Override
public int getRoadMarchBonus()
{
return 1;
}
@Override
public int getAttackRangeFrom(Tile tile)
{
if (ht && ((Hex) tile).terrain == Hex.Terrain.HILLS) return rng + 1;
return rng;
}
@Override
public int getAngleOfAttack()
{
return orientation.getFrontSides();
}
@Override
public boolean isUnit()
{
return true;
}
@Override
public boolean isEnemy(Pawn other)
{
return army.isEnemy(((Unit) other).army);
}
@Override
public boolean canAttack(Pawn other)
{
return isEnemy(other);
}
// hard tager
public Unit(Army army, boolean hq, int range, int defense, int movementPoints, TextureAtlas atlas, String unit, String head)
{
super(atlas, unit, head);
this.army = army;
this.hq = hq;
this.rng = range;
this.def = defense;
this.mp = movementPoints;
this.ht = true;
}
// soft tager
public Unit(Army army, boolean hq, int range, int defense, int concealedDefense, int movementPoints, TextureAtlas atlas, String unit, String head)
{
super(atlas, unit, head);
this.army = army;
this.hq = hq;
this.rng = range;
this.def = defense;
this.cdef = concealedDefense;
this.mp = movementPoints;
this.ht = false;
}
}
|