Browse Source

Restructuration terminée: Réussite! Youpi!

unknown 10 years ago
parent
commit
ea1de95e7a

+ 19 - 23
lib/Case.py

@@ -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:

+ 3 - 3
lib/EcranEditionCombattant.py

@@ -131,7 +131,7 @@ class EcranEditionCombattant(QDialog):
 
     def afficheListeAttaques(self):
         """insere la frame d'edition des attaques"""
-        tabAttaques = self.ui.ongletsCreation.widget(1)
+        tabAttaques = self.ui.ongletsCreation.widget(2)
         editionAttaques = EcranEditionAttaques(self.combattant)
         editionAttaques.setParent(tabAttaques)
 
@@ -344,13 +344,13 @@ class EcranEditionCombattant(QDialog):
         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")
+        enregistrer(self.combattant.id, self.combattant, "lib\\biblio\\combattant")
         self.combattant = None
         self.done(1)
 
     def supprimer(self):
         """supprimer l'enregistrement de ce terrain"""
-        supprSvg("lib\\biblio\\Combattant", self.combattant.id)
+        supprSvg("lib\\biblio\\combattant", self.combattant.id)
         self.done(1)
 
     def annuler(self):

+ 5 - 5
lib/EcranGestionCombat.py

@@ -152,7 +152,7 @@ class EcranGestionCombat(QFrame):
             self.ui.gc_liste.setItem(index, self.colonnesBase.index("DetailDes"), QTableWidgetItem(QString.fromUtf8("")))
                                     
             #Icone et nom
-            item = QTableWidgetItem(QIcon("img\\"+self.plateau.combattants[numCombattant].creature.logo), \
+            item = QTableWidgetItem(QIcon("img\\"+self.plateau.combattants[numCombattant].logo), \
                                     QString.fromUtf8(self.plateau.combattants[numCombattant].txtId()))
             self.ui.gc_liste.setItem(index, self.colonnesBase.index("Combattant"), item)
             
@@ -166,9 +166,9 @@ class EcranGestionCombat(QFrame):
             self.ui.gc_liste.setItem(index, self.colonnesBase.index("Alt."), QTableWidgetItem(QString.fromUtf8(str(self.plateau.combattants[numCombattant].z))))
 
             ### parametres supplementaires (issus des regles)
-            for elt in self.plateau.combattants[numCombattant].lstCarac:
+            for elt in self.plateau.combattants[numCombattant].listeAttributs:
                 col = 20 + regles.ordreAttributs().index(elt)
-                self.ui.gc_liste.setItem(index, col , QTableWidgetItem(QString.fromUtf8(str(self.plateau.combattants[numCombattant].lstCarac[elt]))))
+                self.ui.gc_liste.setItem(index, col , QTableWidgetItem(QString.fromUtf8(str(self.plateau.combattants[numCombattant].listeAttributs[elt]))))
         else:
             print ("Combattant {} introuvable, impossible de maj".format(numCombattant))
  
@@ -202,12 +202,12 @@ class EcranGestionCombat(QFrame):
                 attribut = regles.ordreAttributs()[index]
                 valeurAttribut = regles.listeControle()[attribut].controler(str(self.ui.gc_liste.item(ligne, colonne).text().toUtf8()))
                 if valeurAttribut != None:
-                    self.plateau.combattants[numCombattant].lstCarac[attribut] = valeurAttribut
+                    self.plateau.combattants[numCombattant].listeAttributs[attribut] = valeurAttribut
                     if attribut == regles.attributOrdreJeu():
                         self.plateau.majOrdreJeu()
                         self.majTri()
                 else:
-                    self.ui.gc_liste.item(ligne, colonne).setText(QString.fromUtf8(str(self.plateau.combattants[numCombattant].lstCarac[attribut])))
+                    self.ui.gc_liste.item(ligne, colonne).setText(QString.fromUtf8(str(self.plateau.combattants[numCombattant].listeAttributs[attribut])))
                 self.majEnCours = False
                 
             self.emit(SIGNAL("majListesCombattants"), numCombattant)                        

+ 3 - 2
lib/Pion.py

@@ -38,14 +38,15 @@ class Pion(QGraphicsItem):
         self.polygoneGraphique = None
         self.nbRotations = 0        
         
-
     def __getstate__(self):
-        nePasSvg = ["plateau", "brillance", "shadow", "creature", "polygonesForme", "pixGraphique"]
+        nePasSvg = ["plateau", "brillance", "shadow", "creature", "polygonesForme", "pixGraphique", "etiquetteGraphique"]
         state = {key:value for key, value in self.__dict__.items() if not key in nePasSvg}
         return (state)
     
     def __setstate__(self, state):
         self.__dict__ = state
+        self.pixGraphique = None
+        self.etiquetteGraphique = None
         super(Pion, self).__init__()
 
     def paint(self, painter, option, widget = None):

+ 12 - 12
lib/Plateau.py

@@ -422,7 +422,7 @@ class Plateau(QGraphicsScene):
         
     def majListCreatures(self):
         """mise a jour de la liste des creatures depuis la sauvegarde"""
-        dico = afficheSvg("lib\\biblio\\Combattant")
+        dico = afficheSvg("lib\\biblio\\combattant")
         while self.fenetre.ui.cp_listeCreatures.rowCount() > 0:
             self.fenetre.ui.cp_listeCreatures.removeRow(0)
         index = 0    
@@ -444,7 +444,7 @@ class Plateau(QGraphicsScene):
         """ouvre la fenetre 'creatures' en mode edition"""
         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()))
+            creature = charger("lib\\biblio\\combattant", str(index.text().toUtf8()))
             self.afficheEcranEditionCombattants(creature)
         
     def creatureNouveau(self):
@@ -630,7 +630,7 @@ class Plateau(QGraphicsScene):
     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()))
+        creature = charger("lib\\biblio\\combattant", str(index.text().toUtf8()))
         self.majMode("pionCreation", creature)
         self.fenetre.ui.cbt_vue.setFocus()
 
@@ -821,7 +821,7 @@ class Plateau(QGraphicsScene):
                     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()
@@ -904,7 +904,8 @@ class Plateau(QGraphicsScene):
             elif mode == "combatAttaqueCaC":
                 self.curseurEpee()
                 self.materialiserPions(False)
-                self.modeParam["zoneAttaqueCaC"] = self.zone(self.pionSelectionne().position, self.pionSelectionne().allonge, True, True)
+##                self.modeParam["zoneAttaqueCaC"] = self.zone(self.pionSelectionne().position, self.pionSelectionne().allonge, True, True)
+                self.modeParam["zoneAttaqueCaC"] = self.zone(self.pionSelectionne().position, 1, True, True)
                 self.majZoneAttaqueCaC(True)
                 
             elif mode == "combatAttaqueDist":
@@ -1041,8 +1042,7 @@ class Plateau(QGraphicsScene):
         
     def majListeAttributs(self):
         """met a jour la liste des attributs dans le panneau de combat"""
-        self.fenetre.ui.pi_listeAttributs.setColumnWidth(0, (0.4*self.fenetre.ui.pi_listeAttributs.width())) 
-        self.fenetre.ui.pi_listeAttributs.setColumnWidth(1, (0.4*self.fenetre.ui.pi_listeAttributs.width()))
+        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
@@ -2016,7 +2016,6 @@ class Plateau(QGraphicsScene):
             accepte = True
             
         elif self.modeActif == "standard" and self.pionSelectionne() == None:
-            print numCombattant
             self.pionSaisir(numCombattant)
             accepte = True
         return accepte    
@@ -2056,10 +2055,11 @@ class Plateau(QGraphicsScene):
         if valide:
             numero = 1
             if len(self.combattants) > 0:
-                numero = max(self.combattants) + 1   
-            combattant = Combattant(numero)
+                numero = max(self.combattants) + 1
+                
+            combattant = self.modeParam["creature"]
             numComplementaire = self.numeroterNom(combattant.nom)
-            
+            combattant.numero = numero
             combattant.position = coordCase
             combattant.numComplementaire = numComplementaire
             combattant.nbRotations = self.modeParam["nbRotations"]
@@ -2246,7 +2246,7 @@ class Plateau(QGraphicsScene):
             self.pionSurvol(None)     
             self.pionDeplacerDansOrdreJeu(num, 0)
             pionSuppr = self.combattants.pop(num)
-            pionSuppr.supprimer()
+            pionSuppr.retirerDuPlateau()
         else:
             print("erreur: ce pion n'est pas dans la liste des pions")
             

BIN
lib/biblio/combattant


+ 2 - 2
lib/ui/ecran_principal.py

@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'mainwindow.ui'
 #
-# Created: Tue May 19 10:09:32 2015
+# Created: Tue May 19 11:36:05 2015
 #      by: PyQt4 UI code generator 4.10.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -343,7 +343,7 @@ class Ui_principal(object):
         self.histo_agrandir.setMaximumSize(QtCore.QSize(16777215, 12))
         self.histo_agrandir.setText(_fromUtf8(""))
         icon9 = QtGui.QIcon()
-        icon9.addPixmap(QtGui.QPixmap(_fromUtf8("../../img/flecheHaut.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        icon9.addPixmap(QtGui.QPixmap(_fromUtf8("img/flecheHaut.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
         self.histo_agrandir.setIcon(icon9)
         self.histo_agrandir.setCheckable(False)
         self.histo_agrandir.setChecked(False)

+ 3 - 3
lib/ui/mainwindow.ui

@@ -1057,7 +1057,7 @@
                 </property>
                 <property name="icon">
                  <iconset>
-                  <normaloff>../../img/flecheHaut.png</normaloff>../../img/flecheHaut.png</iconset>
+                  <normaloff>img/flecheHaut.png</normaloff>img/flecheHaut.png</iconset>
                 </property>
                 <property name="checkable">
                  <bool>false</bool>
@@ -2668,7 +2668,7 @@ selectionné</string>
                   </size>
                  </property>
                  <property name="currentIndex">
-                  <number>3</number>
+                  <number>0</number>
                  </property>
                  <widget class="QWidget" name="pi_afficherAttributs">
                   <attribute name="icon">
@@ -2747,7 +2747,7 @@ selectionné</string>
                      </attribute>
                      <column>
                       <property name="text">
-                       <string>Nouvelle colonne</string>
+                       <string>Id</string>
                       </property>
                      </column>
                      <column>

BIN
parties/partie1/svg/0.p


BIN
parties/partie1/svg/1.p


+ 0 - 6
parties/partie1/svg/infos_sauvegarde

@@ -1,6 +0,0 @@
-€}q(U1}q(Unomqcsip
-_unpickle_type
-qUPyQt4.QtCoreqU
-QByteArrayUdfg…‡RqUdateCreationqGAÕUè_—l‹UdateSvgqGAÕUèi�¾wUchapitreq	U1UenCoursq
-‰Upublicq‰uU0}q(UnomhhU
-QByteArrayUtest…‡Rq
UdateCreationGAÕTÒuñªUdateSvgGAÕTÒut¬UchapitreU1UenCours‰Upublic‰uu.