|
|
@@ -484,10 +484,12 @@ class Plateau(QGraphicsScene):
|
|
|
def plateauModeCreation(self):
|
|
|
self.fenetre.majVisibilitePanneauxPlateau("creation")
|
|
|
self.modePrincipal = "creation"
|
|
|
+ self.activerMode(Modes.StandardCp)
|
|
|
|
|
|
def plateauModeCombat(self):
|
|
|
self.fenetre.majVisibilitePanneauxPlateau("combat")
|
|
|
self.modePrincipal = "combat"
|
|
|
+ self.activerMode(Modes.StandardPi)
|
|
|
|
|
|
def activerMode(self, mode, param = None):
|
|
|
"""desactive le mode actif et active le nouveau a la place"""
|
|
|
@@ -675,46 +677,7 @@ class Plateau(QGraphicsScene):
|
|
|
self.curseurPinceau()
|
|
|
self.fenetre.ui.cbt_vue.setDragMode(0)
|
|
|
self.pinceau.majForme("rectP")
|
|
|
- self.pinceau.verrouillerForme(True)
|
|
|
-
|
|
|
- elif mode == "pionDecorCreation":
|
|
|
- #curseur 'plus', on cree de nouveaux decors
|
|
|
- self.modeParam["decor"] = None
|
|
|
- self.fenetre.ui.cbt_vue.setDragMode(0)
|
|
|
-
|
|
|
- if param != None:
|
|
|
- if param.__class__.__name__ == "Decor":
|
|
|
- self.modeParam["decor"] = param
|
|
|
- self.proj.creer(param)
|
|
|
-
|
|
|
- elif mode == "pionDecorSelectionne":
|
|
|
- #un pion decor est selectionne
|
|
|
- if param != None:
|
|
|
- self.modeParam["numPionSelectionne"] = param
|
|
|
- self.pionDecorSelectionne().afficheOmbreSelection(True)
|
|
|
- self.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
|
|
|
- self.proj.creer(self.pionDecorSelectionne())
|
|
|
-
|
|
|
- elif mode == "pionSupprimer":
|
|
|
- #mode suppression de pions/pions decors
|
|
|
- self.curseurGomme()
|
|
|
- self.fenetre.ui.cbt_vue.setDragMode(0)
|
|
|
-
|
|
|
- elif mode == "pionSelectionne":
|
|
|
- #un pion est selectionne, on affiche les deplacements possibles
|
|
|
- if param != None:
|
|
|
- self.modeParam["numPionSelectionne"] = param
|
|
|
- self.pionSelectionne().afficheOmbreSelection(True)
|
|
|
- self.numPionEnCours = param
|
|
|
- for i in range(0, self.fenetre.ui.inf_listeOrdreJeu.rowCount()):
|
|
|
- if str(self.fenetre.ui.inf_listeOrdreJeu.item(i, 0).text().toUtf8()) == str(param):
|
|
|
- self.fenetre.ui.inf_listeOrdreJeu.setCurrentCell(i,0)
|
|
|
- #bobby
|
|
|
- self.majAffichagePionSelectionne()
|
|
|
- self.majListeAttributs()
|
|
|
- self.afficherNotesCombattant()
|
|
|
- self.majListeAttaques()
|
|
|
- self.majModeCombat("aucun")
|
|
|
+ self.pinceau.verrouillerForme(True)
|
|
|
|
|
|
|
|
|
##on reinitialise si necessaire
|
|
|
@@ -722,12 +685,9 @@ class Plateau(QGraphicsScene):
|
|
|
#mode standard : pas d'interaction avec les cases, on deplace le plateau en le saisissant ou les pions en cliquant dessus
|
|
|
self.modeActif_old = "standard"
|
|
|
|
|
|
- self.majAffichagePionSelectionne()
|
|
|
self.majInfosPion()
|
|
|
self.majInfosDecor()
|
|
|
- self.majListeAttributs()
|
|
|
- self.majListeAttaques()
|
|
|
- self.afficherNotesCombattant()
|
|
|
+
|
|
|
## self.fenetre.majVisibiliteBarreCombat("menu")
|
|
|
QApplication.processEvents()
|
|
|
self.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
|
|
|
@@ -921,44 +881,44 @@ class Plateau(QGraphicsScene):
|
|
|
self.ordreJeu[numCombattant] = 1
|
|
|
self.majOrdreJeu()
|
|
|
|
|
|
- def majListeAttributs(self):
|
|
|
- """met a jour la liste des attributs dans le panneau de combat"""
|
|
|
- self.fenetre.ui.pi_listeAttributs.setColumnWidth(0, 50)
|
|
|
- self.disconnect(self.fenetre.ui.pi_listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee)
|
|
|
-
|
|
|
- #on vide la liste
|
|
|
- while self.fenetre.ui.pi_listeAttributs.rowCount() > 0:
|
|
|
- self.fenetre.ui.pi_listeAttributs.removeRow(0)
|
|
|
- self.fenetre.ui.pi_listeAttributs.setVisible((self.pionSelectionne() != None))
|
|
|
- if self.pionSelectionne() != None:
|
|
|
- #creation des lignes de base
|
|
|
- lignesBase = ["Nom","Etat","Alt."] #attention: modifier aussi dans listeAttributCelluleModifiee
|
|
|
- for i in range(0, 10): #10 premieres colonnes reservees pour les infos de base
|
|
|
- self.fenetre.ui.pi_listeAttributs.insertRow(i)
|
|
|
- item = QTableWidgetItem()
|
|
|
- if i < len(lignesBase):
|
|
|
- item.setText(QString.fromUtf8(lignesBase[i]))
|
|
|
- item.setFlags(Qt.NoItemFlags)
|
|
|
- self.fenetre.ui.pi_listeAttributs.setItem(i, 0, item)
|
|
|
- self.fenetre.ui.pi_listeAttributs.setRowHidden(i, (i >= len(lignesBase)))
|
|
|
-
|
|
|
- #maj des donnees de base
|
|
|
- self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Nom"), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().nom))))
|
|
|
- self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Etat"), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().etat))))
|
|
|
- self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Alt."), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().z))))
|
|
|
-
|
|
|
- #attributs issus des regles utilisees
|
|
|
- ordre = regles.ordreAttributs()
|
|
|
- for elt in ordre:
|
|
|
- ligne = 10 + ordre.index(elt)
|
|
|
- self.fenetre.ui.pi_listeAttributs.insertRow(ligne)
|
|
|
- item = QTableWidgetItem(QString.fromUtf8(elt))
|
|
|
- item.setFlags(Qt.NoItemFlags)
|
|
|
- self.fenetre.ui.pi_listeAttributs.setItem(ligne, 0, item)
|
|
|
- self.fenetre.ui.pi_listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().listeAttributs[elt]))))
|
|
|
-
|
|
|
- self.connect(self.fenetre.ui.pi_listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee)
|
|
|
-
|
|
|
+## def majListeAttributs(self):
|
|
|
+## """met a jour la liste des attributs dans le panneau de combat"""
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setColumnWidth(0, 50)
|
|
|
+## self.disconnect(self.fenetre.ui.pi_listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee)
|
|
|
+##
|
|
|
+## #on vide la liste
|
|
|
+## while self.fenetre.ui.pi_listeAttributs.rowCount() > 0:
|
|
|
+## self.fenetre.ui.pi_listeAttributs.removeRow(0)
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setVisible((self.pionSelectionne() != None))
|
|
|
+## if self.pionSelectionne() != None:
|
|
|
+## #creation des lignes de base
|
|
|
+## lignesBase = ["Nom","Etat","Alt."] #attention: modifier aussi dans listeAttributCelluleModifiee
|
|
|
+## for i in range(0, 10): #10 premieres colonnes reservees pour les infos de base
|
|
|
+## self.fenetre.ui.pi_listeAttributs.insertRow(i)
|
|
|
+## item = QTableWidgetItem()
|
|
|
+## if i < len(lignesBase):
|
|
|
+## item.setText(QString.fromUtf8(lignesBase[i]))
|
|
|
+## item.setFlags(Qt.NoItemFlags)
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setItem(i, 0, item)
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setRowHidden(i, (i >= len(lignesBase)))
|
|
|
+##
|
|
|
+## #maj des donnees de base
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Nom"), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().nom))))
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Etat"), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().etat))))
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setItem(lignesBase.index("Alt."), 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().z))))
|
|
|
+##
|
|
|
+## #attributs issus des regles utilisees
|
|
|
+## ordre = regles.ordreAttributs()
|
|
|
+## for elt in ordre:
|
|
|
+## ligne = 10 + ordre.index(elt)
|
|
|
+## self.fenetre.ui.pi_listeAttributs.insertRow(ligne)
|
|
|
+## item = QTableWidgetItem(QString.fromUtf8(elt))
|
|
|
+## item.setFlags(Qt.NoItemFlags)
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setItem(ligne, 0, item)
|
|
|
+## self.fenetre.ui.pi_listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().listeAttributs[elt]))))
|
|
|
+##
|
|
|
+## self.connect(self.fenetre.ui.pi_listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee)
|
|
|
+##
|
|
|
def listeAttributCelluleModifiee(self, ligne, colonne):
|
|
|
"""une cellule de la liste des attributs a ete modifiee"""
|
|
|
if colonne != 1:
|
|
|
@@ -1038,7 +998,6 @@ class Plateau(QGraphicsScene):
|
|
|
self.majModeCombat("combatAttaqueZone")
|
|
|
|
|
|
def majInfosAttaqueEC(self):
|
|
|
- #*aec
|
|
|
"""met a jour les infos de l'attaque en cours (selectionnee)"""
|
|
|
selection = self.fenetre.ui.pi_listeAttaques.selectedItems()
|
|
|
self.fenetre.ui.pi_panneauAttaqueEC.setVisible(self.pionSelectionne() != None and len(selection) > 0)
|
|
|
@@ -1102,11 +1061,11 @@ class Plateau(QGraphicsScene):
|
|
|
else:
|
|
|
pass
|
|
|
|
|
|
- def afficherNotesCombattant(self):
|
|
|
- """affiche les notes du pion selectionne dans le QTextEdit dedie"""
|
|
|
- self.fenetre.ui.pi_notes.setVisible((self.pionSelectionne() != None))
|
|
|
- if self.pionSelectionne() != None:
|
|
|
- self.fenetre.ui.pi_notes.setText(QString.fromUtf8(self.pionSelectionne().notes))
|
|
|
+## def afficherNotesCombattant(self):
|
|
|
+## """affiche les notes du pion selectionne dans le QTextEdit dedie"""
|
|
|
+## self.fenetre.ui.pi_notes.setVisible((self.pionSelectionne() != None))
|
|
|
+## if self.pionSelectionne() != None:
|
|
|
+## self.fenetre.ui.pi_notes.setText(QString.fromUtf8(self.pionSelectionne().notes))
|
|
|
|
|
|
###############
|
|
|
|
|
|
@@ -1406,20 +1365,20 @@ class Plateau(QGraphicsScene):
|
|
|
break
|
|
|
return valide
|
|
|
|
|
|
- def validerAttaqueDist(self):
|
|
|
- """on essaie de valider une attaque a distance vers un pion ou une case"""
|
|
|
- if self.modeParam["pionCibleAttaqueDist"] != None:
|
|
|
- msg = "{} attaque a distance le pion {}".format(self.pionSelectionne().txtId(),
|
|
|
- self.modeParam["pionCibleAttaqueDist"].txtId())
|
|
|
- valide = self.estCibleAttaqueDistValide(self.pionSelectionne().position, self.modeParam["cibleAttaqueDist"], self.modeParam["pionCibleAttaqueDist"].z)
|
|
|
- else:
|
|
|
- msg = "{} attaque a distance la case {}".format(self.pionSelectionne().txtId(),
|
|
|
- self.modeParam["cibleAttaqueDist"])
|
|
|
- valide = self.estCibleAttaqueDistValide(self.pionSelectionne().position, self.modeParam["cibleAttaqueDist"])
|
|
|
- if not valide:
|
|
|
- msg += " [INVALIDE]"
|
|
|
- print(msg)
|
|
|
- self.majModeCombat("aucun")
|
|
|
+## def validerAttaqueDist(self):
|
|
|
+## """on essaie de valider une attaque a distance vers un pion ou une case"""
|
|
|
+## if self.modeParam["pionCibleAttaqueDist"] != None:
|
|
|
+## msg = "{} attaque a distance le pion {}".format(self.pionSelectionne().txtId(),
|
|
|
+## self.modeParam["pionCibleAttaqueDist"].txtId())
|
|
|
+## valide = self.estCibleAttaqueDistValide(self.pionSelectionne().position, self.modeParam["cibleAttaqueDist"], self.modeParam["pionCibleAttaqueDist"].z)
|
|
|
+## else:
|
|
|
+## msg = "{} attaque a distance la case {}".format(self.pionSelectionne().txtId(),
|
|
|
+## self.modeParam["cibleAttaqueDist"])
|
|
|
+## valide = self.estCibleAttaqueDistValide(self.pionSelectionne().position, self.modeParam["cibleAttaqueDist"])
|
|
|
+## if not valide:
|
|
|
+## msg += " [INVALIDE]"
|
|
|
+## print(msg)
|
|
|
+## self.majModeCombat("aucun")
|
|
|
|
|
|
## def rectEllipseCirculaire(self, centre, rayon):
|
|
|
## """renvoie le QRectF definissant une ellipse ayant le QPointF pour centre et le rayon en cases entres en param
|
|
|
@@ -1646,6 +1605,7 @@ class Plateau(QGraphicsScene):
|
|
|
if coord != self.pionSelectionne().position:
|
|
|
self.pionDeposer(coord)
|
|
|
accepte = True
|
|
|
+
|
|
|
elif self.modeCombat == "combatAttaqueCaC":
|
|
|
if self.modeParam["cibleAttaqueCaC"] in self.modeParam["zoneAttaqueCaC"]:
|
|
|
print("{} attaque {} au corps a corps".format(self.pionSelectionne().nom, self.modeParam["cibleAttaqueCaC"]))
|
|
|
@@ -1680,6 +1640,7 @@ class Plateau(QGraphicsScene):
|
|
|
|
|
|
elif self.modeActif_old == "pionSelectionne" and self.modeCombat == "combatAttaqueDist" and self.modeParam["cibleAttaqueDist"] != (case.x, case.y):
|
|
|
self.majLigneMireAttaqueDist((case.x,case.y))
|
|
|
+
|
|
|
elif self.modeActif_old == "pionSelectionne" and self.pionSelectionne() != None and self.modeCombat == "combatAttaqueZone":
|
|
|
if case.centreGraphique != self.modeParam["point2AttaqueZone"]:
|
|
|
self.cases[self.coordonneesAuPoint(self.modeParam["point2AttaqueZone"])].majEstCibleCurseur(False)
|
|
|
@@ -1713,18 +1674,14 @@ class Plateau(QGraphicsScene):
|
|
|
def pionClique(self, num):
|
|
|
"""on a clique sur ce pion"""
|
|
|
if num < 10000:
|
|
|
- pion = self.combattants[num]
|
|
|
self.modeActif.clic_combattant(num)
|
|
|
-
|
|
|
|
|
|
accepte = False
|
|
|
if self.pionSelectionne() != None and self.modeCombat == "combatAttaqueDist":
|
|
|
self.validerAttaqueDist()
|
|
|
accepte = True
|
|
|
|
|
|
-
|
|
|
else:
|
|
|
- pion = self.decors[num]
|
|
|
self.modeActif.clic_decor(num)
|
|
|
|
|
|
if self.modeActif.nom() == "Standard":
|