Browse Source

L'edition de creature et la creation de pion fonctionnent
des bugs apparaissent encore

unknown 10 years ago
parent
commit
1a700445eb

+ 2 - 1
lib/Combattant.py

@@ -13,13 +13,14 @@ import regles
 
 class Combattant(Pion):
     """combattant sur un plateau de combat"""
-    def __init__(self, plateau, numero, parent=None):
+    def __init__(self, numero = 0, parent=None):
         super(Combattant, self).__init__()
         #caracs
         self.id = "00"
         
         self.deplacement = 9
         self.vol = 0
+        self.allonge = 1
         
         self.attaques = []   #liste des attaques pre-parametrees du pion
         self.listeAttributs = regles.listeAttributs()

+ 10 - 12
lib/EcranEditionCombattant.py

@@ -91,7 +91,7 @@ class EcranEditionCombattant(QDialog):
         if self.combattant.couleur.isValid():
             self.ui.affichageCouleurCombattant.setStyleSheet("QLabel {backGround:%s}" %(self.combattant.couleur.name()))
         self.ui.imgLogoCombattant.setText(QString.fromUtf8(str(self.combattant.logo)))
-        self.ui.imgTextureCombattant.setText(QString.fromUtf8(str(self.combattant.img.nom)))
+        self.ui.imgTextureCombattant.setText(QString.fromUtf8(str(self.combattant.img.nomFichier)))
         self.ui.imgTailleXCombattant.setValue(self.combattant.img.kx)
         self.ui.imgTailleYCombattant.setValue(self.combattant.img.ky)
         self.ui.imgPosXCombattant.setValue(self.combattant.img.dx)
@@ -153,7 +153,7 @@ class EcranEditionCombattant(QDialog):
             item = QTableWidgetItem(QString.fromUtf8(elt))
             item.setFlags(Qt.NoItemFlags)
             self.ui.listeAttributs.setItem(ligne, 0, item)
-            self.ui.listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.combattant.lstCaracCombattant[elt]))))
+            self.ui.listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.combattant.listeAttributs[elt]))))
             
         self.connect(self.ui.listeAttributs, SIGNAL("cellChanged(int,int)"), self.listeAttributCelluleModifiee)
 
@@ -166,9 +166,9 @@ class EcranEditionCombattant(QDialog):
             nouvelleVal = str(self.ui.listeAttributs.item(ligne, 1).text().toUtf8())
             valVerifiee = regles.listeControle()[attribut].controler(nouvelleVal)
             if valVerifiee != None:
-                self.combattant.lstCaracCombattant[attribut] = valVerifiee
+                self.combattant.listeAttributs[attribut] = valVerifiee
             else:    
-                self.ui.listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.combattant.lstCaracCombattant[attribut]))))
+                self.ui.listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.combattant.listeAttributs[attribut]))))
 
 ##    def majListeInventaire(self):
 ##        """met a jour la liste de l'inventaire de la Combattant"""
@@ -311,7 +311,7 @@ class EcranEditionCombattant(QDialog):
         self.combattant.nom = str(self.ui.nomCombattant.text().toUtf8())
         self.combattant.logo = str(self.ui.imgLogoCombattant.text().toUtf8())
         if len(str(self.ui.imgTextureCombattant.text().toUtf8())) > 0:
-            self.combattant.img.nom = str(self.ui.imgTextureCombattant.text().toUtf8())
+            self.combattant.img.nomFichier = str(self.ui.imgTextureCombattant.text().toUtf8())
             self.combattant.img.kx = self.ui.imgTailleXCombattant.value()
             self.combattant.img.ky = self.ui.imgTailleYCombattant.value()
             self.combattant.img.dx = self.ui.imgPosXCombattant.value()
@@ -320,7 +320,7 @@ class EcranEditionCombattant(QDialog):
             self.combattant.img.pivote = self.ui.imgPivoteCombattant.isChecked()
             self.combattant.img.masqueAuto = self.ui.imgMasqueCombattant.isChecked()
         else:
-            self.combattant.img.nom = str(self.ui.imgLogoCombattant.text().toUtf8())
+            self.combattant.img.nomFichier = str(self.ui.imgLogoCombattant.text().toUtf8())
             self.combattant.img.kx = 10
             self.combattant.img.ky = 10
             self.combattant.img.dx = 0
@@ -342,20 +342,18 @@ class EcranEditionCombattant(QDialog):
         self.combattant.formeDef[self.formeCases] = self.vueForme.formeDef()
 
         self.combattant.notes = str(self.ui.notesCombattant.toPlainText())
+
         #attributs, attaques et inventaire enregistres lors de la modif des listes
-        
         enregistrer(self.combattant.id, self.combattant, "lib\\biblio\\Combattant")
         self.combattant = None
-        self.emit(SIGNAL("majListCombattants()"))
-        self.close()
+        self.done(1)
 
     def supprimer(self):
         """supprimer l'enregistrement de ce terrain"""
         supprSvg("lib\\biblio\\Combattant", self.combattant.id)
-        self.emit(SIGNAL("majListCombattants()"))
-        self.close()
+        self.done(1)
 
     def annuler(self):
         """annule la creation/edition"""
         self.combattant = None
-        self.close()
+        self.done(0)

+ 3 - 5
lib/EcranEditionDecors.py

@@ -179,16 +179,14 @@ class EcranEditionDecors(QDialog):
         
         enregistrer(self.decor.id, self.decor, "lib\\biblio\\decor")
         self.decor = None
-        self.emit(SIGNAL("majListDecors()"))
-        self.close()
+        self.done(1)
 
     def supprimer(self):
         """supprimer l'enregistrement de ce terrain"""
         supprSvg("lib\\biblio\\decor", self.decor.id)
-        self.emit(SIGNAL("majListDecors()"))
-        self.close()
+        self.done(1)
 
     def annuler(self):
         """annule la creation/edition"""
         self.decor = None
-        self.close()
+        self.done(0)

+ 3 - 5
lib/EcranEditionTerrain.py

@@ -94,16 +94,14 @@ class EcranEditionTerrain(QDialog):
         self.terrain.franchissable = bool(self.ui.franchissableTerrain.checkState())
         enregistrer(self.terrain.id, self.terrain, "lib\\biblio\\terrain")
         self.terrain = None
-        self.close()
-        self.emit(SIGNAL("majListTerrains()"))
+        self.done(1)
 
     def supprimer(self):
         """supprimer l'enregistrement de ce terrain"""
         supprSvg("terrain", self.terrain.id)
-        self.close()
-        self.emit(SIGNAL("majListTerrains()"))
+        self.done(1)
 
     def annuler(self):
         """annule la creation/edition"""
         self.terrain = None
-        self.close()
+        self.done(0)

+ 12 - 12
lib/Pion.py

@@ -14,9 +14,9 @@ class Pion(QGraphicsItem):
     def __init__(self, parent=None):
         super(Pion, self).__init__()
         #caracteristiques du pion
-        self.nom = nom
-        self.couleur = couleur
-        self.logo = logo
+        self.nom = ""
+        self.couleur = QColor()
+        self.logo = ""
         self.img = ImgPion()
         self.etiquette = EtiquettePion()
 
@@ -81,9 +81,9 @@ class Pion(QGraphicsItem):
         self.plateau = plateau
 
         #definition de la forme (interpretation de formeDef)
+        self.forme = Forme(self.plateau.formeCases)
         if len(self.formeDef[self.plateau.formeCases]) > 0:
-            self.forme = Forme(self.plateau.formeCases)
-            self.forme.definirForme(self.creature.formeDef[self.plateau.formeCases])        
+            self.forme.definirForme(self.formeDef[self.plateau.formeCases])        
 
         #creation du polygone
         polygone = self.plateau.polygoneAgglo(self.forme.listeCases((0,0)))
@@ -104,12 +104,12 @@ class Pion(QGraphicsItem):
         self.setHandlesChildEvents(True)
          
         pinceau = QPen()
-        pinceau.setColor(self.creature.couleur.darker(130))
+        pinceau.setColor(self.couleur.darker(130))
         pinceau.setWidth(10)
         self.polygoneGraphique.setPen(pinceau)
 
-        if self.creature.couleur.isValid():
-             self.polygoneGraphique.setBrush(self.creature.couleur)
+        if self.couleur.isValid():
+             self.polygoneGraphique.setBrush(self.couleur)
         else:
              self.polygoneGraphique.setBrush(QColor(255, 0, 0, 150))
 
@@ -164,8 +164,8 @@ class Pion(QGraphicsItem):
                  
     def majImage(self):
         """met a jour la taille, la position et l'orientation de l'image"""
-        if len(self.img.nom) > 0:
-            pix = QPixmap(QString.fromUtf8("img\\"+self.img.nom))
+        if len(self.img.nomFichier) > 0:
+            pix = QPixmap(QString.fromUtf8("img\\"+self.img.nomFichier))
             if self.img.masqueAuto:
                 pix.setMask(pix.createHeuristicMask())
             if not pix.isNull():
@@ -185,7 +185,7 @@ class Pion(QGraphicsItem):
 
                 deltaX = self.img.dx + 0.5*(self.plateau.hCase*1.1544 - self.largeurOriginale)
                 deltaY = self.img.dy + 0.5*(self.plateau.hCase - self.hauteurOriginale)
-                if self.img.nom != self.logo and self.pivote == True:
+                if self.img.nomFichier != self.logo and self.pivote == True:
                     self.pixGraphique.setParentItem(self.polygoneGraphique)
                 else:
                     self.pixGraphique.setParentItem(self)
@@ -290,7 +290,7 @@ class ImgPion():
         
 class EtiquettePion():
     def __init__(self):
-        self.taille_police = ""     #taille de la police
+        self.taille_police = 8     #taille de la police
         self.gras = False           #en gras
         self.dx = 0                 #decalage horizontal
         self.dy = 0                 #decalage vertical

+ 48 - 46
lib/Plateau.py

@@ -34,11 +34,9 @@ from lancer import jet, estJetValide
 from operator import itemgetter, attrgetter
 from math import *
 
-
 m_couleursRapides = [(255,255,255), (200,200,200), (130,130,130), (90,90,90), (15,15,15), \
                    (0,85,0), (170,255,0), (170,255,127), (85,85,0), (85,0,0), (170,85,0), (100,50,0), \
                    (255,255,127), (240,80,0), (85,170,255), (85,85,255), (85,0,255), (0,255,255)]
-
         
 class Plateau(QGraphicsScene):
     """plateau de jeu contenant les cases, decors et pions"""
@@ -206,13 +204,13 @@ class Plateau(QGraphicsScene):
         self.fenetre.connect(self.fenetre.ui.inf_listeOrdreJeu, SIGNAL("cellClicked(int,int)"), self.clicListOrdreJeu, Qt.UniqueConnection)
         
         self.fenetre.connect(self.fenetre.ui.cp_listeTerrains, SIGNAL("cellClicked(int,int)"), self.modeMajTerrainCase, Qt.UniqueConnection)
-        self.fenetre.connect(self.fenetre.ui.cp_listeCombattants, SIGNAL("cellClicked(int,int)"), self.modeCreationCombattant, Qt.UniqueConnection)
+        self.fenetre.connect(self.fenetre.ui.cp_listeCreatures, SIGNAL("cellClicked(int,int)"), self.modeCreationCombattant, Qt.UniqueConnection)
         self.fenetre.connect(self.fenetre.ui.cp_listeDecors, SIGNAL("cellClicked(int,int)"), self.modeCreationDecor, Qt.UniqueConnection)
         
 ##        self.fenetre.connect(self.fenetre.ui.terrainEdit, SIGNAL("clicked()"), self.terrainEdit, Qt.UniqueConnection)
 ##        self.fenetre.connect(self.fenetre.ui.terrainNouveau, SIGNAL("clicked()"), self.terrainNouveau, Qt.UniqueConnection)
-##        self.fenetre.connect(self.fenetre.ui.creatureEdit, SIGNAL("clicked()"), self.creatureEdit, Qt.UniqueConnection)
-##        self.fenetre.connect(self.fenetre.ui.creatureNouveau, SIGNAL("clicked()"), self.creatureNouveau, Qt.UniqueConnection)
+        self.fenetre.connect(self.fenetre.ui.cp_editerCombattant, SIGNAL("clicked()"), self.creatureEdit, Qt.UniqueConnection)
+        self.fenetre.connect(self.fenetre.ui.cp_nouveauCombattant, SIGNAL("clicked()"), self.creatureNouveau, Qt.UniqueConnection)
 ##        self.fenetre.connect(self.fenetre.ui.decorEdit, SIGNAL("clicked()"), self.decorEdit, Qt.UniqueConnection)
 ##        self.fenetre.connect(self.fenetre.ui.decorNouveau, SIGNAL("clicked()"), self.decorNouveau, Qt.UniqueConnection)
 ##        self.fenetre.connect(self.fenetre.ui.editerAttaques, SIGNAL("clicked()"), self.afficheEcranEditionAttaques, Qt.UniqueConnection)
@@ -232,7 +230,7 @@ class Plateau(QGraphicsScene):
 ##        self.fenetre.connect(self.fenetre.ui.cachePlacer, SIGNAL("clicked()"), self.placerCacheEnCours, Qt.UniqueConnection)
 
 ##        self.fenetre.connect(self.fenetre.ui.notesMjPlateau, SIGNAL("textChanged()"), self.majNotesPlateau, Qt.UniqueConnection)
-        self.fenetre.connect(self.fenetre.ui.pi_notesCombattant, SIGNAL("textChanged()"), self.majNotesCombattant, Qt.UniqueConnection)
+        self.fenetre.connect(self.fenetre.ui.pi_notes, SIGNAL("textChanged()"), self.majNotesCombattant, Qt.UniqueConnection)
 
         #formes (dessin)
         self.fenetre.connect(self.fenetre.ui.cp_formeSimple, SIGNAL("clicked()"), self.majModeForme, Qt.UniqueConnection)
@@ -374,11 +372,11 @@ class Plateau(QGraphicsScene):
     ##### affichage de la liste des terrains enregistres, et fonctions d'acces aux donnees""""     
     def afficheEcranEditionTerrains(self, terrain = None):
         """affiche l'ecran d'edition/creation de terrains"""
-        self.editionTerrain = EcranEditionTerrain(terrain)
-        self.connect(self.fenetre, SIGNAL("majListTerrains()"), self.majListTerrains)
-        self.connect(self.editionTerrain, SIGNAL("majListTerrains()"), self.majListTerrains)        
+        self.editionTerrain = EcranEditionTerrain(terrain)     
         self.editionTerrain.setAttribute(Qt.WA_DeleteOnClose)
         r = self.editionTerrain.exec_()
+        if r == 1:
+            self.majListeTerrains()
  
     def majListTerrains(self):
         """mise a jour de la liste des terrains depuis la sauvegarde"""
@@ -414,17 +412,17 @@ class Plateau(QGraphicsScene):
     ###############
 
     ##### affichage de la liste des creatures enregistrees, et fonctions d'acces aux donnees""""     
-    def afficheEcranEditionCreatures(self, creature = None):
+    def afficheEcranEditionCombattants(self, creature = None):
         """affiche l'ecran d'edition/creation de creatures"""
-        self.editionCreature = EcranEditionCreature(creature, self.formeCases)
+        self.editionCreature = EcranEditionCombattant(creature, self.formeCases)
         self.editionCreature.setAttribute(Qt.WA_DeleteOnClose)
-        self.connect(self.fenetre, SIGNAL("majListCreatures()"), self.majListCreatures)
-        self.connect(self.editionCreature, SIGNAL("majListCreatures()"), self.majListCreatures)        
-        r = self.editionCreature.exec_()       
+        r = self.editionCreature.exec_()
+        if r == 1:
+            self.majListCreatures()
         
     def majListCreatures(self):
         """mise a jour de la liste des creatures depuis la sauvegarde"""
-        dico = afficheSvg("lib\\biblio\\creature")
+        dico = afficheSvg("lib\\biblio\\Combattant")
         while self.fenetre.ui.cp_listeCreatures.rowCount() > 0:
             self.fenetre.ui.cp_listeCreatures.removeRow(0)
         index = 0    
@@ -447,11 +445,11 @@ class Plateau(QGraphicsScene):
         index = self.fenetre.ui.cp_listeCreatures.item(self.fenetre.ui.cp_listeCreatures.currentRow(), 0)
         if index > 0:
             creature = charger("lib\\biblio\\creature", str(index.text().toUtf8()))
-            self.afficheEcranEditionCreatures(creature)
+            self.afficheEcranEditionCombattants(creature)
         
     def creatureNouveau(self):
         """ouvre la fenetre 'creatures' en mode edition"""
-        self.afficheEcranEditionCreatures()
+        self.afficheEcranEditionCombattants()
         
     ###############
 
@@ -460,10 +458,10 @@ class Plateau(QGraphicsScene):
         """affiche l'ecran d'edition/creation de decors"""
         self.editionDecor = EcranEditionDecors(decor, self.formeCases)
         self.editionDecor.setAttribute(Qt.WA_DeleteOnClose)
-        self.connect(self.fenetre, SIGNAL("majListDecors()"), self.majListDecors)
-        self.connect(self.editionDecor, SIGNAL("majListDecors()"), self.majListDecors)
         r = self.editionDecor.exec_()
-        
+        if r == 1:
+            self.majListDecors()
+            
     def majListDecors(self):
         """mise a jour de la liste des decors depuis la sauvegarde"""
         dico = afficheSvg("lib\\biblio\\decor")
@@ -629,7 +627,7 @@ class Plateau(QGraphicsScene):
         self.majMode("pionDecorCreation", decor)
         self.fenetre.ui.cbt_vue.setFocus()
         
-    def modeCreationCreaturePion(self, ligne, col):
+    def modeCreationCombattant(self, ligne, col):
         """enclenche le mode de creation de pions depuis la liste des creatures"""
         index = self.fenetre.ui.cp_listeCreatures.item(ligne, 0)
         creature = charger("lib\\biblio\\creature", str(index.text().toUtf8()))
@@ -805,7 +803,7 @@ class Plateau(QGraphicsScene):
                 self.modeParam["formeProjectionPosition"] = Forme(self.formeCases)
                 self.modeParam["nbRotations"] = 0
                 if param != None:
-                    if param.__class__.__name__ == "Creature":
+                    if param.__class__.__name__ == "Combattant":
                          self.modeParam["creature"] = param
                          self.modeParam["formeProjectionPosition"].definirForme(self.modeParam["creature"].formeDef[self.formeCases])
                 
@@ -826,7 +824,7 @@ class Plateau(QGraphicsScene):
                             
                     self.majAffichagePionSelectionne()
                     self.majListeAttributs()
-                    self.afficherNotesPion()
+                    self.afficherNotesCombattant()
                     self.majListeAttaques()
                     self.majModeCombat("aucun")                  
 
@@ -842,7 +840,7 @@ class Plateau(QGraphicsScene):
             self.majInfosDecor()
             self.majListeAttributs()
             self.majListeAttaques()
-            self.afficherNotesPion()
+            self.afficherNotesCombattant()
 ##            self.fenetre.majVisibiliteBarreCombat("menu")
             QApplication.processEvents()
             self.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
@@ -906,7 +904,7 @@ class Plateau(QGraphicsScene):
             elif mode == "combatAttaqueCaC":
                 self.curseurEpee()
                 self.materialiserPions(False)
-                self.modeParam["zoneAttaqueCaC"] = self.zone(self.pionSelectionne().position, self.pionSelectionne().creature.allonge, True, True)
+                self.modeParam["zoneAttaqueCaC"] = self.zone(self.pionSelectionne().position, self.pionSelectionne().allonge, True, True)
                 self.majZoneAttaqueCaC(True)
                 
             elif mode == "combatAttaqueDist":
@@ -929,8 +927,8 @@ class Plateau(QGraphicsScene):
         """affiche le nom et le logo du pion actuellement selectionne"""
         if self.pionSelectionne() != None:
             self.fenetre.ui.pi_nom.setText(QString.fromUtf8(self.pionSelectionne().txtId()))
-            if len(self.pionSelectionne().creature.img["nom"]) > 0:
-                pix = QPixmap(QString.fromUtf8("img\\"+self.pionSelectionne().creature.img["nom"]))
+            if len(self.pionSelectionne().img.nomFichier) > 0:
+                pix = QPixmap(QString.fromUtf8("img\\"+self.pionSelectionne().img.nomFichier))
                 pix = pix.scaled(44, 44, Qt.KeepAspectRatio, Qt.SmoothTransformation)
                 self.fenetre.ui.pi_img.setPixmap(pix)
             else:    
@@ -955,7 +953,7 @@ class Plateau(QGraphicsScene):
         for num in self.ordreJeu:
             self.fenetre.ui.inf_listeOrdreJeu.insertRow(int(index))
             self.fenetre.ui.inf_listeOrdreJeu.setItem(int(index), 0, QTableWidgetItem(QString.fromUtf8(str(num))))
-            icon = QIcon("img\\"+self.combattants[num].creature.logo)
+            icon = QIcon("img\\"+self.combattants[num].logo)
             item = QTableWidgetItem(icon,QString.fromUtf8(self.combattants[num].txtId()))
             self.fenetre.ui.inf_listeOrdreJeu.setItem(int(index), 1, item)
             self.fenetre.ui.inf_listeOrdreJeu.setItem(int(index), 2, QTableWidgetItem(QString.fromUtf8(str(self.ordreJeu[num]))))
@@ -1011,7 +1009,7 @@ class Plateau(QGraphicsScene):
         if attribut != None:
             dico = {}
             for numCombattant in self.combattants:
-                dico[numCombattant] = int(self.combattants[numCombattant].lstCarac[attribut])
+                dico[numCombattant] = int(self.combattants[numCombattant].listeAttributs[attribut])
             ordre = sorted(dico, key = dico.get, reverse=(regles.sensTriOrdreJeu() == 1)) 
             self.ordreJeu = {}    
             for numCombattant in self.combattants:
@@ -1076,7 +1074,7 @@ class Plateau(QGraphicsScene):
                 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().lstCarac[elt]))))
+                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)
             
@@ -1094,11 +1092,11 @@ class Plateau(QGraphicsScene):
                 nouvelleVal = str(self.fenetre.ui.pi_listeAttributs.item(ligne, 1).text().toUtf8())
                 valVerifiee = regles.listeControle()[attribut].controler(nouvelleVal)
                 if valVerifiee != None:
-                    self.pionSelectionne().lstCarac[attribut] = valVerifiee
+                    self.pionSelectionne().listeAttributs[attribut] = valVerifiee
                     if attribut == regles.attributOrdreJeu():
                         print("maj ordre (a implementer)")
                 else:    
-                    self.fenetre.ui.pi_listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().lstCarac[attribut]))))
+                    self.fenetre.ui.pi_listeAttributs.setItem(ligne, 1, QTableWidgetItem(QString.fromUtf8(str(self.pionSelectionne().listeAttributs[attribut]))))
 
     def initListeAttaques(self):
         """met en forme et connecte la liste des attaques du pion"""
@@ -1217,18 +1215,18 @@ class Plateau(QGraphicsScene):
             del self.editionAttaques
             self.majListeAttaques()
 
-    def majNotesPion(self):
+    def majNotesCombattant(self):
         """les notes du pion ont ete mises a jour"""
         if self.pionSelectionne() != None:
-            self.pionSelectionne().notes = str(self.fenetre.ui.pi_notesPion.toPlainText().toUtf8())
+            self.pionSelectionne().notes = str(self.fenetre.ui.pi_notes.toPlainText().toUtf8())
         else:
             pass
 
-    def afficherNotesPion(self):
+    def afficherNotesCombattant(self):
         """affiche les notes du pion selectionne dans le QTextEdit dedie"""
-        self.fenetre.ui.pi_notesPion.setVisible((self.pionSelectionne() != None))
+        self.fenetre.ui.pi_notes.setVisible((self.pionSelectionne() != None))
         if self.pionSelectionne() != None:
-            self.fenetre.ui.pi_notesPion.setText(QString.fromUtf8(self.pionSelectionne().notes))
+            self.fenetre.ui.pi_notes.setText(QString.fromUtf8(self.pionSelectionne().notes))
             
     ###############
 
@@ -1627,7 +1625,7 @@ class Plateau(QGraphicsScene):
              casesLigneMireDistance[coord] = distance
 
          #on compare enfin les altitudes de chaque case en fonction de la distance
-         zOrigine = self.cases[coordOrigine].altitude + self.pionSelectionne().z + self.pionSelectionne().creature.hauteur 
+         zOrigine = self.cases[coordOrigine].altitude + self.pionSelectionne().z + self.pionSelectionne().hauteur 
          zCible = self.cases[coordCible].altitude + zPion
          distanceTot = sqrt((coordCible[0] - coordOrigine[0])**2 + (coordCible[1] - coordOrigine[1])**2)
          valide = True
@@ -2018,6 +2016,7 @@ class Plateau(QGraphicsScene):
             accepte = True
             
         elif self.modeActif == "standard" and self.pionSelectionne() == None:
+            print numCombattant
             self.pionSaisir(numCombattant)
             accepte = True
         return accepte    
@@ -2058,12 +2057,15 @@ class Plateau(QGraphicsScene):
             numero = 1
             if len(self.combattants) > 0:
                 numero = max(self.combattants) + 1   
-            pion = Pion(self, numero)
-            if self.modeParam["creature"] != None:
-                nom = self.modeParam["creature"].nom     
-            numTxt = self.numeroterNom(nom)
-            self.combattants[numero] = pion
-            pion.creer(coordCase[0], coordCase[1], nom, numTxt, self.modeParam["creature"], self.modeParam["couleurPion"], self.modeParam["nbRotations"])
+            combattant = Combattant(numero)
+            numComplementaire = self.numeroterNom(combattant.nom)
+            
+            combattant.position = coordCase
+            combattant.numComplementaire = numComplementaire
+            combattant.nbRotations = self.modeParam["nbRotations"]
+            combattant.ajouterAuPlateau(self)
+            
+            self.combattants[numero] = combattant
             self.pionDeplacerDansOrdreJeu(numero, len(self.ordreJeu) + 2)
 
     def numeroterNom(self, nom):
@@ -2138,8 +2140,8 @@ class Plateau(QGraphicsScene):
 
         if pion != None:  
             self.fenetre.ui.inf_pionNom.setText(QString.fromUtf8(pion.nom))
-            if len(pion.creature.img["nom"]) > 0:
-                pix = QPixmap(QString.fromUtf8("img\\"+pion.creature.img["nom"]))
+            if len(pion.img.nomFichier) > 0:
+                pix = QPixmap(QString.fromUtf8("img\\"+pion.img.nomFichier))
                 pix = pix.scaled(61, 51, Qt.KeepAspectRatio, Qt.SmoothTransformation)
                 self.fenetre.ui.inf_pionImage.setPixmap(pix)
             self.fenetre.ui.inf_boitePion.setVisible(True)

BIN
lib/biblio/creature


BIN
lib/biblio/decor


BIN
lib/biblio/terrain


+ 16 - 16
lib/ui/ecran_editionCombattant.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'editionCombattant.ui'
 #
-# Created: Mon May 18 17:28:15 2015
+# Created: Tue May 19 10:11:02 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -36,9 +36,9 @@ class Ui_editionCombattant(object):
         self.label_11 = QtGui.QLabel(editionCombattant)
         self.label_11.setGeometry(QtCore.QRect(30, 120, 141, 20))
         self.label_11.setObjectName(_fromUtf8("label_11"))
-        self.annulerCreature = QtGui.QPushButton(editionCombattant)
-        self.annulerCreature.setGeometry(QtCore.QRect(490, 520, 81, 23))
-        self.annulerCreature.setObjectName(_fromUtf8("annulerCreature"))
+        self.annulerCombattant = QtGui.QPushButton(editionCombattant)
+        self.annulerCombattant.setGeometry(QtCore.QRect(490, 520, 81, 23))
+        self.annulerCombattant.setObjectName(_fromUtf8("annulerCombattant"))
         self.label_3 = QtGui.QLabel(editionCombattant)
         self.label_3.setGeometry(QtCore.QRect(30, 20, 46, 16))
         self.label_3.setObjectName(_fromUtf8("label_3"))
@@ -81,14 +81,14 @@ class Ui_editionCombattant(object):
         self.label = QtGui.QLabel(editionCombattant)
         self.label.setGeometry(QtCore.QRect(30, 90, 141, 20))
         self.label.setObjectName(_fromUtf8("label"))
-        self.enregistrerCreature = QtGui.QPushButton(editionCombattant)
-        self.enregistrerCreature.setEnabled(False)
-        self.enregistrerCreature.setGeometry(QtCore.QRect(120, 520, 101, 23))
+        self.enregistrerCombattant = QtGui.QPushButton(editionCombattant)
+        self.enregistrerCombattant.setEnabled(False)
+        self.enregistrerCombattant.setGeometry(QtCore.QRect(120, 520, 101, 23))
         font = QtGui.QFont()
         font.setBold(True)
         font.setWeight(75)
-        self.enregistrerCreature.setFont(font)
-        self.enregistrerCreature.setObjectName(_fromUtf8("enregistrerCreature"))
+        self.enregistrerCombattant.setFont(font)
+        self.enregistrerCombattant.setObjectName(_fromUtf8("enregistrerCombattant"))
         self.imgTextureCombattant = QtGui.QLineEdit(editionCombattant)
         self.imgTextureCombattant.setGeometry(QtCore.QRect(180, 120, 191, 20))
         self.imgTextureCombattant.setObjectName(_fromUtf8("imgTextureCombattant"))
@@ -98,10 +98,10 @@ class Ui_editionCombattant(object):
         self.couleurCombattant = QtGui.QPushButton(editionCombattant)
         self.couleurCombattant.setGeometry(QtCore.QRect(20, 50, 75, 23))
         self.couleurCombattant.setObjectName(_fromUtf8("couleurCombattant"))
-        self.supprimerCreature = QtGui.QPushButton(editionCombattant)
-        self.supprimerCreature.setEnabled(False)
-        self.supprimerCreature.setGeometry(QtCore.QRect(400, 520, 75, 23))
-        self.supprimerCreature.setObjectName(_fromUtf8("supprimerCreature"))
+        self.supprimerCombattant = QtGui.QPushButton(editionCombattant)
+        self.supprimerCombattant.setEnabled(False)
+        self.supprimerCombattant.setGeometry(QtCore.QRect(400, 520, 75, 23))
+        self.supprimerCombattant.setObjectName(_fromUtf8("supprimerCombattant"))
         self.label_6 = QtGui.QLabel(editionCombattant)
         self.label_6.setGeometry(QtCore.QRect(480, 20, 81, 21))
         self.label_6.setObjectName(_fromUtf8("label_6"))
@@ -327,16 +327,16 @@ class Ui_editionCombattant(object):
     def retranslateUi(self, editionCombattant):
         editionCombattant.setWindowTitle(_translate("editionCombattant", "Dialog", None))
         self.label_11.setText(_translate("editionCombattant", "Image (.png, .jpg) : ...img\\", None))
-        self.annulerCreature.setText(_translate("editionCombattant", "Annuler", None))
+        self.annulerCombattant.setText(_translate("editionCombattant", "Annuler", None))
         self.label_3.setText(_translate("editionCombattant", "Id : ", None))
         self.label_10.setText(_translate("editionCombattant", "Taille (en cases) : ", None))
         self.volCombattant.setText(_translate("editionCombattant", "Vole", None))
         self.label_2.setText(_translate("editionCombattant", "...img\\", None))
         self.label.setText(_translate("editionCombattant", "Logo (.png, .jpg) : ", None))
-        self.enregistrerCreature.setText(_translate("editionCombattant", "Enregistrer", None))
+        self.enregistrerCombattant.setText(_translate("editionCombattant", "Enregistrer", None))
         self.label_4.setText(_translate("editionCombattant", "Nom : ", None))
         self.couleurCombattant.setText(_translate("editionCombattant", "Couleur", None))
-        self.supprimerCreature.setText(_translate("editionCombattant", "Supprimer", None))
+        self.supprimerCombattant.setText(_translate("editionCombattant", "Supprimer", None))
         self.label_6.setText(_translate("editionCombattant", "Déplacement : ", None))
         self.groupBox_2.setTitle(_translate("editionCombattant", "Texte", None))
         self.label_17.setText(_translate("editionCombattant", "Taille de la police", None))

+ 15 - 7
lib/ui/ecran_principal.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'mainwindow.ui'
 #
-# Created: Mon May 18 14:03:21 2015
+# Created: Tue May 19 10:09:32 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -650,6 +650,12 @@ class Ui_principal(object):
         self.cp_listeCreatures.horizontalHeader().setVisible(False)
         self.cp_listeCreatures.verticalHeader().setVisible(False)
         self.verticalLayout_6.addWidget(self.cp_listeCreatures)
+        self.cp_nouveauCombattant = QtGui.QPushButton(self.cp_afficherCreatures)
+        self.cp_nouveauCombattant.setObjectName(_fromUtf8("cp_nouveauCombattant"))
+        self.verticalLayout_6.addWidget(self.cp_nouveauCombattant)
+        self.cp_editerCombattant = QtGui.QPushButton(self.cp_afficherCreatures)
+        self.cp_editerCombattant.setObjectName(_fromUtf8("cp_editerCombattant"))
+        self.verticalLayout_6.addWidget(self.cp_editerCombattant)
         icon21 = QtGui.QIcon()
         icon21.addPixmap(QtGui.QPixmap(_fromUtf8("img/creature.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
         self.cp_ongletsListes.addTab(self.cp_afficherCreatures, icon21, _fromUtf8(""))
@@ -1001,10 +1007,10 @@ class Ui_principal(object):
         self.pi_afficherNotes.setObjectName(_fromUtf8("pi_afficherNotes"))
         self.verticalLayout_8 = QtGui.QVBoxLayout(self.pi_afficherNotes)
         self.verticalLayout_8.setObjectName(_fromUtf8("verticalLayout_8"))
-        self.pi_notesPion = QtGui.QTextEdit(self.pi_afficherNotes)
-        self.pi_notesPion.setDocumentTitle(_fromUtf8(""))
-        self.pi_notesPion.setObjectName(_fromUtf8("pi_notesPion"))
-        self.verticalLayout_8.addWidget(self.pi_notesPion)
+        self.pi_notes = QtGui.QTextEdit(self.pi_afficherNotes)
+        self.pi_notes.setDocumentTitle(_fromUtf8(""))
+        self.pi_notes.setObjectName(_fromUtf8("pi_notes"))
+        self.verticalLayout_8.addWidget(self.pi_notes)
         self.pi_ongletsListes.addTab(self.pi_afficherNotes, icon31, _fromUtf8(""))
         self.verticalLayout_10.addWidget(self.pi_ongletsListes)
         self.pi_finTour = QtGui.QPushButton(self.pi_panneau)
@@ -1327,8 +1333,8 @@ class Ui_principal(object):
 
         self.retranslateUi(principal)
         self.dm_panneauCentre.setCurrentIndex(0)
-        self.cp_ongletsListes.setCurrentIndex(3)
-        self.pi_ongletsListes.setCurrentIndex(0)
+        self.cp_ongletsListes.setCurrentIndex(2)
+        self.pi_ongletsListes.setCurrentIndex(3)
         self.tabStatutAppli.setCurrentIndex(2)
         QtCore.QMetaObject.connectSlotsByName(principal)
 
@@ -1428,6 +1434,8 @@ class Ui_principal(object):
         item.setText(_translate("principal", "code", None))
         item = self.cp_listeCreatures.horizontalHeaderItem(1)
         item.setText(_translate("principal", "Creature", None))
+        self.cp_nouveauCombattant.setText(_translate("principal", "Nouveau", None))
+        self.cp_editerCombattant.setText(_translate("principal", "Editer", None))
         self.cp_ongletsListes.setTabToolTip(self.cp_ongletsListes.indexOf(self.cp_afficherCreatures), _translate("principal", "Afficher la liste des créatures", None))
         item = self.cp_listeCaches.horizontalHeaderItem(0)
         item.setText(_translate("principal", "N°", None))

+ 3 - 3
lib/ui/editionCombattant.ui

@@ -45,7 +45,7 @@
     <string>Image (.png, .jpg) : ...img\</string>
    </property>
   </widget>
-  <widget class="QPushButton" name="annulerCreature">
+  <widget class="QPushButton" name="annulerCombattant">
    <property name="geometry">
     <rect>
      <x>490</x>
@@ -209,7 +209,7 @@
     <string>Logo (.png, .jpg) : </string>
    </property>
   </widget>
-  <widget class="QPushButton" name="enregistrerCreature">
+  <widget class="QPushButton" name="enregistrerCombattant">
    <property name="enabled">
     <bool>false</bool>
    </property>
@@ -267,7 +267,7 @@
     <string>Couleur</string>
    </property>
   </widget>
-  <widget class="QPushButton" name="supprimerCreature">
+  <widget class="QPushButton" name="supprimerCombattant">
    <property name="enabled">
     <bool>false</bool>
    </property>

+ 17 - 3
lib/ui/mainwindow.ui

@@ -1852,7 +1852,7 @@
                   </size>
                  </property>
                  <property name="currentIndex">
-                  <number>3</number>
+                  <number>2</number>
                  </property>
                  <widget class="QWidget" name="cp_afficherTerrains">
                   <attribute name="icon">
@@ -2029,6 +2029,20 @@
                      </column>
                     </widget>
                    </item>
+                   <item>
+                    <widget class="QPushButton" name="cp_nouveauCombattant">
+                     <property name="text">
+                      <string>Nouveau</string>
+                     </property>
+                    </widget>
+                   </item>
+                   <item>
+                    <widget class="QPushButton" name="cp_editerCombattant">
+                     <property name="text">
+                      <string>Editer</string>
+                     </property>
+                    </widget>
+                   </item>
                   </layout>
                  </widget>
                  <widget class="QWidget" name="cp_afficherCaches">
@@ -2654,7 +2668,7 @@ selectionné</string>
                   </size>
                  </property>
                  <property name="currentIndex">
-                  <number>0</number>
+                  <number>3</number>
                  </property>
                  <widget class="QWidget" name="pi_afficherAttributs">
                   <attribute name="icon">
@@ -3077,7 +3091,7 @@ selectionné</string>
                   </attribute>
                   <layout class="QVBoxLayout" name="verticalLayout_8">
                    <item>
-                    <widget class="QTextEdit" name="pi_notesPion">
+                    <widget class="QTextEdit" name="pi_notes">
                      <property name="documentTitle">
                       <string/>
                      </property>