|
|
@@ -14,10 +14,6 @@ class Case(QGraphicsPolygonItem):
|
|
|
super(Case, self).__init__(parent)
|
|
|
#plateau
|
|
|
self.plateau = plateau
|
|
|
- self.dimPlateauX = self.plateau.nbCasesX
|
|
|
- self.dimPlateauY = self.plateau.nbCasesY
|
|
|
- self.formeCases = self.plateau.formeCases
|
|
|
- self.hCase = self.plateau.hCase
|
|
|
|
|
|
#attributs
|
|
|
self.x = 0
|
|
|
@@ -28,7 +24,6 @@ class Case(QGraphicsPolygonItem):
|
|
|
self.bordure = QColor(85, 85, 85, 85) #couleur de la bordure par defaut
|
|
|
self.estDansChampDeplacement = False #la case est dans le champ de deplacement du pion selectionne
|
|
|
self.centreGraphique = None
|
|
|
- self.formeCases = "H"
|
|
|
|
|
|
self.occupeePar = {} #objet: altitudes occupees (sous forme de tuple, ex: (0,1,2) pour une creature occupant les cases d'altitude 0, 1 et 2)
|
|
|
self.estCache = False #est sous un cache place par le MJ (cache le terrain, les decors, les pions aux joueurs...)
|
|
|
@@ -80,10 +75,10 @@ class Case(QGraphicsPolygonItem):
|
|
|
self.occupeePar = {}
|
|
|
|
|
|
#enregistrement du centre
|
|
|
- if self.formeCases == "H": #refPlateau
|
|
|
- self.centreGraphique = QPointF(((self.x*0.866)+0.5773)*self.hCase, (self.y+0.5)*self.hCase)
|
|
|
+ if self.plateau.formeCases == "H": #refPlateau
|
|
|
+ self.centreGraphique = QPointF(((self.x*0.866)+0.5773)*self.plateau.hCase, (self.y+0.5)*self.plateau.hCase)
|
|
|
else:
|
|
|
- self.centreGraphique = QPointF((self.x+0.5)*self.hCase, (self.y+0.5)*self.hCase)
|
|
|
+ self.centreGraphique = QPointF((self.x+0.5)*self.plateau.hCase, (self.y+0.5)*self.plateau.hCase)
|
|
|
|
|
|
#cree le polygone de la case
|
|
|
self.setPolygon(self.polygone(self.x, self.y))
|
|
|
@@ -137,6 +132,7 @@ class Case(QGraphicsPolygonItem):
|
|
|
|
|
|
def recreer(self, plateau):
|
|
|
## self.plateau = plateau #refPlateau
|
|
|
+ self.plateau = plateau
|
|
|
super(Case, self).__init__()
|
|
|
#polygones d'affichage
|
|
|
self.polygoneEffet = None
|
|
|
@@ -149,31 +145,31 @@ class Case(QGraphicsPolygonItem):
|
|
|
def polygone(self, x, y):
|
|
|
"""renvoie l'objet graphique hexagone de la case"""
|
|
|
polygone = QPolygonF()
|
|
|
- if self.formeCases == "H":
|
|
|
- polygone << QPointF(((x*0.866)+0.2886)*self.hCase, y*self.hCase) \
|
|
|
- << QPointF(((x*0.866)+0.866)*self.hCase, y*self.hCase) \
|
|
|
- << QPointF(((x*0.866)+1.1547)*self.hCase, (y+0.5)*self.hCase) \
|
|
|
- << QPointF(((x*0.866)+0.866)*self.hCase, (y+1)*self.hCase) \
|
|
|
- << QPointF(((x*0.866)+0.2886)*self.hCase, (y+1)*self.hCase) \
|
|
|
- << QPointF( (x*0.866)*self.hCase, (y+0.5)*self.hCase)
|
|
|
+ if self.plateau.formeCases == "H":
|
|
|
+ polygone << QPointF(((x*0.866)+0.2886)*self.plateau.hCase, y*self.plateau.hCase) \
|
|
|
+ << QPointF(((x*0.866)+0.866)*self.plateau.hCase, y*self.plateau.hCase) \
|
|
|
+ << QPointF(((x*0.866)+1.1547)*self.plateau.hCase, (y+0.5)*self.plateau.hCase) \
|
|
|
+ << QPointF(((x*0.866)+0.866)*self.plateau.hCase, (y+1)*self.plateau.hCase) \
|
|
|
+ << QPointF(((x*0.866)+0.2886)*self.plateau.hCase, (y+1)*self.plateau.hCase) \
|
|
|
+ << QPointF( (x*0.866)*self.plateau.hCase, (y+0.5)*self.plateau.hCase)
|
|
|
else:
|
|
|
- polygone << QPointF(x*self.hCase, y*self.hCase) \
|
|
|
- << QPointF((x+1)*self.hCase, y*self.hCase) \
|
|
|
- << QPointF((x+1)*self.hCase, (y+1)*self.hCase) \
|
|
|
- << QPointF(x*self.hCase, (y+1)*self.hCase)
|
|
|
+ polygone << QPointF(x*self.plateau.hCase, y*self.plateau.hCase) \
|
|
|
+ << QPointF((x+1)*self.plateau.hCase, y*self.plateau.hCase) \
|
|
|
+ << QPointF((x+1)*self.plateau.hCase, (y+1)*self.plateau.hCase) \
|
|
|
+ << QPointF(x*self.plateau.hCase, (y+1)*self.plateau.hCase)
|
|
|
return polygone
|
|
|
|
|
|
def lstVoisins(self, x, y):
|
|
|
"""renvoie la liste des cases voisines
|
|
|
seulement cases existantes sur le plateau / seulement cases adjacentes (cas des cases carrees)"""
|
|
|
voisins = []
|
|
|
- if self.formeCases == "H":
|
|
|
+ if self.plateau.formeCases == "H":
|
|
|
lst = [(x, y-1), (x+1, y-0.5), (x+1, y+0.5), (x, y+1), (x-1, y+0.5), (x-1, y-0.5)]
|
|
|
else:
|
|
|
lst = [(x, y-1), (x+1, y-1), (x+1, y), (x+1, y+1), (x, y+1), (x-1, y+1), (x-1, y), (x-1, y-1)]
|
|
|
|
|
|
for coord in lst:
|
|
|
- if (coord[0] >= 0 and coord[1] >= 0 and coord[0] < self.dimPlateauX and coord[1] < self.dimPlateauY):
|
|
|
+ if (coord[0] >= 0 and coord[1] >= 0 and coord[0] < self.plateau.nbCasesX and coord[1] < self.plateau.nbCasesY):
|
|
|
voisins.append(coord)
|
|
|
return voisins
|
|
|
|
|
|
@@ -306,7 +302,7 @@ class Case(QGraphicsPolygonItem):
|
|
|
|
|
|
if len(effet) > 0 and effet != "aucun":
|
|
|
#gradient de couleur
|
|
|
- gradient = QRadialGradient(self.centreGraphique, 0.5*self.hCase)
|
|
|
+ gradient = QRadialGradient(self.centreGraphique, 0.5*self.plateau.hCase)
|
|
|
couleur0 = QColor(0,0,0,0)
|
|
|
couleur20 = self.couleurEffet[effet]
|
|
|
couleur20.setAlpha(70)
|
|
|
@@ -356,7 +352,7 @@ class Case(QGraphicsPolygonItem):
|
|
|
police = QFont("Georgia", 18)
|
|
|
police.setItalic(True)
|
|
|
self.etiquetteAltitude.setFont(police)
|
|
|
- self.etiquetteAltitude.setPos(QPointF(((self.x*0.866)+0.65)*self.hCase, (self.y+0.7)*self.hCase))
|
|
|
+ self.etiquetteAltitude.setPos(QPointF(((self.x*0.866)+0.65)*self.plateau.hCase, (self.y+0.7)*self.plateau.hCase))
|
|
|
if self.altitude >= 0:
|
|
|
couleur = QColor("red").lighter(200-(5*self.altitude))
|
|
|
else:
|