|
|
@@ -17,6 +17,7 @@ from ProjectionDep import ProjectionDep
|
|
|
from Cache import Cache
|
|
|
from Terrain import Terrain
|
|
|
|
|
|
+from EcranCreerPlateau import EcranCreerPlateau
|
|
|
from EcranEditionCombattant import EcranEditionCombattant
|
|
|
from EcranEditionDecor import EcranEditionDecor
|
|
|
from EcranEditionTerrain import EcranEditionTerrain
|
|
|
@@ -48,18 +49,21 @@ class Plateau(QGraphicsScene):
|
|
|
##partie et infos plateau
|
|
|
self.nom = ""
|
|
|
self.chapitre = 0
|
|
|
- self.tour = 1
|
|
|
+ self.tour = 0
|
|
|
|
|
|
self.enCours = False
|
|
|
self.public = False
|
|
|
self.dateCreation = ""
|
|
|
self.dateSvg = ""
|
|
|
self.notes = ""
|
|
|
+ self.presentation = ""
|
|
|
+ self.description = ""
|
|
|
|
|
|
#carac
|
|
|
self.nbCasesX = 0
|
|
|
self.nbCasesY = 0
|
|
|
self.hCase = 0
|
|
|
+ self.couleurInit = QColor(0, 255, 0, 80)
|
|
|
|
|
|
#objets
|
|
|
self.pinceau = Pinceau(self)
|
|
|
@@ -93,26 +97,22 @@ class Plateau(QGraphicsScene):
|
|
|
def vue(self):
|
|
|
return self.fenetre.ui.cbt_vue
|
|
|
|
|
|
- def creer(self, idPlateau, nom, chapitre, formeCases, nbCasesX, nbCasesY, couleur = QColor(0, 255, 0, 80)):
|
|
|
+# def creer(self, idPlateau, nom, chapitre, formeCases, nbCasesX, nbCasesY, \
|
|
|
+# couleur = QColor(0, 255, 0, 80), description = "", presentation = ""):
|
|
|
+ def creer(self):
|
|
|
"""cree le plateau"""
|
|
|
- self.id = idPlateau
|
|
|
- self.nom = nom
|
|
|
- self.chapitre = chapitre
|
|
|
self.dateCreation = time()
|
|
|
self.hCase = 120 #hauteur d'une case
|
|
|
- self.nbCasesX = nbCasesX #nb cases en x
|
|
|
- self.nbCasesY = nbCasesY #nb cases en y
|
|
|
- self.formeCases = formeCases
|
|
|
self.modeActif = Modes.ModeBase(self)
|
|
|
self.gestionCombat = None
|
|
|
self.initialisationGraphique()
|
|
|
self.connexions()
|
|
|
|
|
|
#cree les cases hexagonales
|
|
|
- for x in range(nbCasesX):
|
|
|
- for y in range(nbCasesY):
|
|
|
+ for x in range(self.nbCasesX):
|
|
|
+ for y in range(self.nbCasesY):
|
|
|
c = Case(self)
|
|
|
- c.creer(x, y, couleur)
|
|
|
+ c.creer(x, y, self.couleurInit)
|
|
|
self.cases[(x,y)] = c
|
|
|
|
|
|
self.plateauModeCreation()
|
|
|
@@ -180,7 +180,11 @@ class Plateau(QGraphicsScene):
|
|
|
self.fenetre.connect(self.fenetre.ui.cbt_modeCombat, SIGNAL("clicked()"), self.plateauModeCombat, Qt.UniqueConnection)
|
|
|
## self.fenetre.connect(self.fenetre.ui.modeAffichagePlateau, SIGNAL("currentIndexChanged(int)"), self.majModeAffichage, Qt.UniqueConnection)
|
|
|
|
|
|
+ #etapes du combat
|
|
|
+ self.fenetre.connect(self.fenetre.ui.cbt_etapeSuivante, SIGNAL("clicked()"), self.etapeSuivante, Qt.UniqueConnection)
|
|
|
+
|
|
|
#affichage de fenetres
|
|
|
+ self.fenetre.connect(self.fenetre.ui.cbt_nom, SIGNAL("clicked()"), self.afficherEcranPlateau, Qt.UniqueConnection)
|
|
|
self.fenetre.connect(self.fenetre.ui.cbt_afficherGestion, SIGNAL("clicked()"), self.afficheEcranGestionCombat, Qt.UniqueConnection)
|
|
|
self.fenetre.connect(self.fenetre.ui.pi_listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee, Qt.UniqueConnection)
|
|
|
|
|
|
@@ -255,7 +259,7 @@ class Plateau(QGraphicsScene):
|
|
|
|
|
|
#mise a jour de l'interface de creation
|
|
|
self.fenetre.afficherPanneauxPlateau(True)
|
|
|
- self.fenetre.ui.cbt_nom.setText(QString().fromUtf8(" {} ".format(self.nom)))
|
|
|
+ self.majNomPlateau()
|
|
|
self.majBoutonsCouleursPerso()
|
|
|
self.fenetre.ui.cp_listeTerrains.defFichier("lib\\biblio\\terrain")
|
|
|
self.fenetre.ui.cp_listeTerrains.initAffichage()
|
|
|
@@ -270,6 +274,7 @@ class Plateau(QGraphicsScene):
|
|
|
|
|
|
self.initListeOrdreJeu()
|
|
|
self.initListeAttaques()
|
|
|
+ self.majBoutonEtape()
|
|
|
|
|
|
self.fenetre.ui.pi_deplacement.setCheckable(True)
|
|
|
self.fenetre.ui.pi_attaqueCac.setCheckable(True)
|
|
|
@@ -284,6 +289,58 @@ class Plateau(QGraphicsScene):
|
|
|
"""renvoie vrai si des cases ont ete creees"""
|
|
|
return (len(self.cases) > 0)
|
|
|
|
|
|
+ def afficherEcranPlateau(self):
|
|
|
+ """affiche la fenetre de description du plateau"""
|
|
|
+ ecran = EcranCreerPlateau()
|
|
|
+ ecran.afficher(self)
|
|
|
+ r = ecran.exec_()
|
|
|
+ if r == 1:
|
|
|
+ res = ecran.resultat()
|
|
|
+ self.nom = res.nom
|
|
|
+ self.chapitre = res.chapitre
|
|
|
+ self.description = res.description
|
|
|
+ self.presentation = res.presentation
|
|
|
+ self.majNomPlateau()
|
|
|
+
|
|
|
+ def majNomPlateau(self):
|
|
|
+ """met a jour l'affichage du nom du plateau"""
|
|
|
+ txt = self.nom
|
|
|
+ if not self.public:
|
|
|
+ txt += " [Non Publié]"
|
|
|
+ self.fenetre.ui.cbt_nom.setText(QString().fromUtf8(" {} ".format(txt)))
|
|
|
+
|
|
|
+ def majBoutonEtape(self):
|
|
|
+ """met a jour le label et l'effet du bouton d'etape (en bas a droite)"""
|
|
|
+ if not self.public:
|
|
|
+ self.fenetre.ui.cbt_etapeSuivante.setText(QString().fromUtf8("Publier le plateau"))
|
|
|
+ return
|
|
|
+
|
|
|
+ if not self.tour > 0:
|
|
|
+ self.fenetre.ui.cbt_etapeSuivante.setText(QString().fromUtf8("Démarrer le combat"))
|
|
|
+ return
|
|
|
+
|
|
|
+ self.fenetre.ui.cbt_etapeSuivante.setText(QString().fromUtf8("Tour {}\nFinir son tour".format(self.tour)))
|
|
|
+
|
|
|
+ def etapeSuivante(self):
|
|
|
+ """apres clic sur le bouton d'etape, on passe a l'etape suivante (publication, demarrage du combat...)"""
|
|
|
+ if not self.public:
|
|
|
+ self.publier()
|
|
|
+ return
|
|
|
+
|
|
|
+ if not self.tour > 0:
|
|
|
+ self.demarrer()
|
|
|
+ return
|
|
|
+
|
|
|
+ self.pionSuivant()
|
|
|
+
|
|
|
+ def publier(self):
|
|
|
+ self.public = True
|
|
|
+ self.majBoutonEtape()
|
|
|
+
|
|
|
+ def demarrer(self):
|
|
|
+ self.tour = 1
|
|
|
+ self.majBoutonEtape()
|
|
|
+
|
|
|
def majBoutonsCouleursPerso(self):
|
|
|
"""met a jour l'affichage des couleurs customisees dans la boite de dialogue de selection de couleur"""
|
|
|
for i in range(0,18):
|
|
|
@@ -711,6 +768,8 @@ class Plateau(QGraphicsScene):
|
|
|
|
|
|
def pionSuivant(self):
|
|
|
"""selection du pion suivant dans la liste d'ordre de jeu"""
|
|
|
+ if not len(self.combattants) > 0: return
|
|
|
+
|
|
|
if self.numPionEnCours in self.combattants:
|
|
|
suivant = self.ordreJeu[self.numPionEnCours] + 1
|
|
|
else:
|