-
Notifications
You must be signed in to change notification settings - Fork 1
/
Terrain.java
135 lines (107 loc) · 3.53 KB
/
Terrain.java
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import java.awt.Graphics;
import java.awt.Image;
/**
* Cette classe gere les terrains du jeu, qui comporte les differents types de terrains et
* les batiments
*
*@author Ngoc
*@version 1.0
*/
public class Terrain extends Entite{
protected TypeTerrain aType;
protected int aPVMax;
protected int aPV;
protected Unite aUnite;
/**
* Constructeur des terrains et des batiment
*/
public Terrain(final int pX,final int pY,final int pJoueur,final TypeTerrain pType)
{
super(pX,pY,pJoueur);
aType = pType;
aPVMax = pType.getPVMax();
aPV = pType.getPVMax();
}
public Terrain(final int pX,final int pY,final int pJoueur,final TypeTerrain pType,final int pPV)
{
super(pX,pY,pJoueur);
aType = pType;
aPVMax = pType.getPVMax();
aPV = pPV;
}
/**
* Retourner l'unite se trouvant sur le terrain
* @return aUnite
*/
public Unite getUnite(){
return aUnite;
}
/**
* Retourner l'unite se trouvant sur le terrain
* @return aUnite
*/
public int getPV(){
return aPV;
}
public void setPV(final int pPV){
aPV=pPV;
}
/**
* Attribut une unite à un terrain
* @return aUnite
*/
public void setUnite(final Unite pUnite){
aUnite = pUnite;
}
public boolean estUneUnite()
{
return false;
}
/**
* Retourner le type de terrain
* @return aType
*/
public TypeTerrain getType(){
return aType;
}
public int getCout(Unite unite)
{
return this.aType.aCoutDeplacement.get(unite.getType().getTypeDeplacement().getNom());
}
@Override
public void dessine (final Graphics g, PanelMatrice pPanel) {
int pPosHautGaucheX = super.getCoordonneeX()*pPanel.getaLargeurCarreau();
int pPosHautGaucheY = super.getCoordonneeY()*pPanel.getaHauteurCarreau();
int pPosBasDroiteX = (super.getCoordonneeX()+1)*pPanel.getaLargeurCarreau();
int pPosBasDroiteY = (super.getCoordonneeY()+1)*pPanel.getaHauteurCarreau();
Image img;
if(aType.getDependance()){
img = Slatch.partie.getMap().isDesert() ? Slatch.aImages.get("DESERT"+ aType.getImage() + getJoueur()) : Slatch.aImages.get("TERRE"+ aType.getImage() + getJoueur());
}
else{
img = Slatch.aImages.get(""+ aType.getImage()+"0");
}
g.drawImage(img, pPosHautGaucheX, pPosHautGaucheY, pPosBasDroiteX-pPosHautGaucheX, pPosBasDroiteY-pPosHautGaucheY, pPanel);
if(super.getSurbrillance()) {
Image surbrillance = Slatch.aImages.get("5");
g.drawImage(surbrillance, pPosHautGaucheX, pPosHautGaucheY, pPosBasDroiteX-pPosHautGaucheX, pPosBasDroiteY-pPosHautGaucheY, pPanel);
}
if(super.getBrouillard()) {
Image surbrillance = Slatch.aImages.get("brouillard");
g.drawImage(surbrillance, pPosHautGaucheX, pPosHautGaucheY, pPosBasDroiteX-pPosHautGaucheX, pPosBasDroiteY-pPosHautGaucheY, pPanel);
}
}
public boolean estCapturable()
{
return this.aType.dependDuJoueur();
}
public boolean estUnBatimentAuJoueur(int joueur)
{
return (this.estCapturable() && this.appartientAuJoueur(joueur));
}
@Override
public String toString()
{
return this.aType.getNom();
}
}