Browse Source

Fin de la restructuration en Modes et en Actions

unknown 10 years ago
parent
commit
c70008be0f
7 changed files with 105 additions and 386 deletions
  1. BIN
      img/cur/cur_dep.png
  2. BIN
      img/cur/cur_doigt.png
  3. BIN
      img/cur/cur_plus.png
  4. BIN
      img/cur/cur_style.png
  5. 30 5
      lib/Actions.py
  6. 12 8
      lib/Modes.py
  7. 63 373
      lib/Plateau.py

BIN
img/cur/cur_dep.png


BIN
img/cur/cur_doigt.png


BIN
img/cur/cur_plus.png


BIN
img/cur/cur_style.png


+ 30 - 5
lib/Actions.py

@@ -12,15 +12,19 @@ class Action(object):
         self._num = None         #no du pion actif
         self._num = None         #no du pion actif
         self._coordCible = None  #coord de la case ciblee par le curseur
         self._coordCible = None  #coord de la case ciblee par le curseur
         self._cible = None       #cible (case ou pion)
         self._cible = None       #cible (case ou pion)
+        self._sourceCurseur = ""
+        self._nomBouton = ""     
 
 
     def activer(self, plateau, numPion):
     def activer(self, plateau, numPion):
         self.plateau = plateau
         self.plateau = plateau
         self._num = numPion
         self._num = numPion
+        self.activerCurseur()
         self.creerItemsGraphiques()
         self.creerItemsGraphiques()
 
 
     def majCoordCible(self, coord):
     def majCoordCible(self, coord):
         """met a jour les coordonnees de la cible,
         """met a jour les coordonnees de la cible,
             cad la case actuellement survolee par la souris"""
             cad la case actuellement survolee par la souris"""
+        self.enfoncerBouton(True)
         if self.plateau.coordonneesValides(coord):
         if self.plateau.coordonneesValides(coord):
             self._coordCible = coord
             self._coordCible = coord
             self.maj()
             self.maj()
@@ -28,6 +32,8 @@ class Action(object):
     def desactiver(self):
     def desactiver(self):
         self.afficherCibles(False)
         self.afficherCibles(False)
         self.detruireItemsGraphiques()
         self.detruireItemsGraphiques()
+        self.desactiverCurseur()
+        self.enfoncerBouton(False)
 
 
     def valider(self):
     def valider(self):
         #envoyer signal
         #envoyer signal
@@ -46,6 +52,21 @@ class Action(object):
     def coordActeur(self):
     def coordActeur(self):
         return self.acteur().position
         return self.acteur().position
 
 
+    def activerCurseur(self):
+        if len(self._sourceCurseur) > 0:
+            curseurPix = QPixmap(self._sourceCurseur)
+            if not curseurPix.isNull():
+                curseur = QCursor(curseurPix, 0, curseurPix.height())
+                self.plateau.fenetre.ui.cbt_vue.setCursor(curseur)   
+
+    def desactiverCurseur(self):
+        self.plateau.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
+
+    def enfoncerBouton(self, actif):
+        for bouton in self.plateau.fenetre.ui.pi_actions.findChildren(QToolButton):
+            if bouton.objectName() == self._nomBouton:
+                bouton.setChecked(actif)
+
     #manipulation des items graphiques
     #manipulation des items graphiques
     def creerItemsGraphiques(self):
     def creerItemsGraphiques(self):
         pass
         pass
@@ -56,9 +77,6 @@ class Action(object):
     def detruireItemsGraphiques(self):
     def detruireItemsGraphiques(self):
         pass
         pass
 
 
-    def activerCurseur(self):
-        pass
-
     #affichage des cibles
     #affichage des cibles
     def afficherCibles(self, actif):
     def afficherCibles(self, actif):
         pass
         pass
@@ -80,6 +98,8 @@ class Deplacement(Action):
         self._chercheurChemin = None
         self._chercheurChemin = None
         self._cout = 0     #cout en points de dep
         self._cout = 0     #cout en points de dep
         self.cible_aConfirmer = None
         self.cible_aConfirmer = None
+        self._sourceCurseur = ""
+        self._nomBouton = "pi_deplacement" 
 
 
     def activer(self, plateau, numPion):
     def activer(self, plateau, numPion):
         super(Deplacement, self).activer(plateau, numPion)
         super(Deplacement, self).activer(plateau, numPion)
@@ -97,7 +117,7 @@ class Deplacement(Action):
             self.cible_aConfirmer = self._coordCible
             self.cible_aConfirmer = self._coordCible
             self.creerChemin()
             self.creerChemin()
         else:
         else:
-            if self.estValide():
+            if self.estValide() and self.plateau.proj.projectionValide():
                 self.acteur().majPosition(self.plateau.proj.coord(), self.plateau.proj.nbRotations())
                 self.acteur().majPosition(self.plateau.proj.coord(), self.plateau.proj.nbRotations())
                 super(Deplacement, self).valider()
                 super(Deplacement, self).valider()
 
 
@@ -137,7 +157,6 @@ class Deplacement(Action):
     def envoiSignal(self):
     def envoiSignal(self):
         cout = self._chemin[-1][1]  #cout de deplacement retenu pour la derniere case
         cout = self._chemin[-1][1]  #cout de deplacement retenu pour la derniere case
         print "{} s'est deplacé et a utilisé {} points de mouvement".format(self.acteur().txtId(), cout)
         print "{} s'est deplacé et a utilisé {} points de mouvement".format(self.acteur().txtId(), cout)
-        
 
 
 class Attaque(Action):
 class Attaque(Action):
     """attaque pre-parametree affectee a un pion, un personnage ou une creature"""
     """attaque pre-parametree affectee a un pion, un personnage ou une creature"""
@@ -154,6 +173,8 @@ class Cac(Attaque):
         super(Cac, self).__init__()
         super(Cac, self).__init__()
         self.nom = "Attaque au corps-à-corps"
         self.nom = "Attaque au corps-à-corps"
         self._pionCible = None
         self._pionCible = None
+        self._sourceCurseur = ""
+        self._nomBouton = "pi_attaqueCac" 
 
 
     def desactiver(self):
     def desactiver(self):
         self.afficherCibles(False)
         self.afficherCibles(False)
@@ -189,6 +210,8 @@ class Distance(Attaque):
         self.nom = "Attaque à distance"
         self.nom = "Attaque à distance"
         self._itemLigne = None
         self._itemLigne = None
         self._pionCible = None
         self._pionCible = None
+        self._sourceCurseur = ""
+        self._nomBouton = "pi_attaqueDist" 
 
 
     def majCoordCible(self, coord):
     def majCoordCible(self, coord):
         if self._pionCible:
         if self._pionCible:
@@ -255,6 +278,8 @@ class Zone(Attaque):
         self._itemLigne = None
         self._itemLigne = None
         self._itemCible = None
         self._itemCible = None
         self._casesCibles = []
         self._casesCibles = []
+        self._sourceCurseur = ""
+        self._nomBouton = "pi_attaqueZone" 
 
 
     def valider(self):
     def valider(self):
         if self.estValide() and len(self._casesCibles) > 0:
         if self.estValide() and len(self._casesCibles) > 0:

+ 12 - 8
lib/Modes.py

@@ -48,8 +48,8 @@ class ModeBase(object):
         self.plateau.fenetre.ui.cbt_vue.setDragMode(self._activerDragMode)
         self.plateau.fenetre.ui.cbt_vue.setDragMode(self._activerDragMode)
         curseurPix = QPixmap(self._sourceCurseur)
         curseurPix = QPixmap(self._sourceCurseur)
         if not curseurPix.isNull():
         if not curseurPix.isNull():
-            curseurPinceau = QCursor(curseurPix, 0, curseurPix.height())
-            self.plateau.fenetre.ui.cbt_vue.setCursor(curseurPinceau)   
+            curseur = QCursor(curseurPix, 0, curseurPix.height())
+            self.plateau.fenetre.ui.cbt_vue.setCursor(curseur)   
 
 
     def desactiverCurseur(self):
     def desactiverCurseur(self):
         self.plateau.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
         self.plateau.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
@@ -152,10 +152,12 @@ class StandardCp(ModeBaseCp):
         self._focus = False
         self._focus = False
         self._activerDragMode = True
         self._activerDragMode = True
 
 
-    def clic_pion(self, num):
-        pass
-        #doit selectionner le pion
-
+    def clic_combattant(self, num):
+        self.plateau.activerMode(DeplacementPion, num)
+        
+    def clic_decor(self, num):
+        self.plateau.activerMode(DeplacementPion, num)
+        
 class MajCases(ModeBaseCp):
 class MajCases(ModeBaseCp):
     """mode de mise a jour des cases (terrain, couleur, effet special)"""
     """mode de mise a jour des cases (terrain, couleur, effet special)"""
     def __init__(self, plateau):
     def __init__(self, plateau):
@@ -452,7 +454,7 @@ class PionSelectionne(ModeBasePi):
     def nouvelleAction(self, action):
     def nouvelleAction(self, action):
         self._action = action()
         self._action = action()
         self._action.activer(self.plateau, self._num)
         self._action.activer(self.plateau, self._num)
-
+        
     def survol_case(self, coord):
     def survol_case(self, coord):
         if self._action:
         if self._action:
             self._action.majCoordCible(coord)
             self._action.majCoordCible(coord)
@@ -462,10 +464,12 @@ class PionSelectionne(ModeBasePi):
             self._action.valider()        
             self._action.valider()        
            
            
     def clicDroit(self, event):
     def clicDroit(self, event):
-        if self._action:
+        if self._action != None:
             self._action.desactiver()
             self._action.desactiver()
             self._action = None
             self._action = None
+            print "cd ps 1"
         else:
         else:
+            print "cd ps 2"
             super(PionSelectionne, self).clicDroit(event)
             super(PionSelectionne, self).clicDroit(event)
 
 
     def toucheClavier(self, event):
     def toucheClavier(self, event):

+ 63 - 373
lib/Plateau.py

@@ -703,29 +703,18 @@ class Plateau(QGraphicsScene):
     def majModeCombatDeplacement(self):
     def majModeCombatDeplacement(self):
         """active le mode de combat 'deplacement' (mode standard)"""
         """active le mode de combat 'deplacement' (mode standard)"""
         self.modeActif.nouvelleAction(Actions.Deplacement)
         self.modeActif.nouvelleAction(Actions.Deplacement)
-##        self.majModeCombat("combatDeplacement")
 
 
     def majModeCombatAttaqueCaC(self):
     def majModeCombatAttaqueCaC(self):
         """active le mode de combat 'corps-a-corps'"""
         """active le mode de combat 'corps-a-corps'"""
         self.modeActif.nouvelleAction(Actions.Cac)
         self.modeActif.nouvelleAction(Actions.Cac)
-##        self.majModeCombat("combatAttaqueCaC")
 
 
     def majModeCombatAttaqueDist(self):
     def majModeCombatAttaqueDist(self):
         """active le mode de combat 'attaque a distance'"""
         """active le mode de combat 'attaque a distance'"""
         self.modeActif.nouvelleAction(Actions.Distance)
         self.modeActif.nouvelleAction(Actions.Distance)
-##        self.majModeCombat("combatAttaqueDist")
 
 
     def majModeCombatZone(self):
     def majModeCombatZone(self):
         if not len(self.modeParam["typeAttaqueZone"]) > 0: self.modeParam["typeAttaqueZone"] = "ligne"
         if not len(self.modeParam["typeAttaqueZone"]) > 0: self.modeParam["typeAttaqueZone"] = "ligne"
-        self.modeActif.nouvelleAction(Actions.Ligne)
-##        self.majModeCombat("combatAttaqueZone")        
-
-    def majModeCombatZoneForme(self):
-        pass
-##        if self.modeCombat == "combatAttaqueZone":
-##            origine = self.sender().objectName()
-##            self.modeParam["typeAttaqueZone"] = str(origine).split("_")[1]
-##            self.majModeCombat("combatAttaqueZone")
+        self.modeActif.nouvelleAction(Actions.Ligne)      
 
 
     def majModeDefinirEntree(self):
     def majModeDefinirEntree(self):
         entree = EntreeSortie(self, "E")
         entree = EntreeSortie(self, "E")
@@ -738,125 +727,7 @@ class Plateau(QGraphicsScene):
     def majModeZonePlacement(self):
     def majModeZonePlacement(self):
         self.activerMode(Modes.ZonePlacement)
         self.activerMode(Modes.ZonePlacement)
     
     
-    def majMode(self, mode = "standard", param = None):
-        """modifie ou reinitialise le type d'interaction avec le plateau"""   
-        reinit = True    #doit-on reinitialiser a la fin de l'operation
-        ##on desactive le mode precedent
-        if self.pionSelectionne() != None:
-            self.pionSelectionne().afficheOmbreSelection(False)
-            if self.modeActif_old == "pionSelectionne":    
-                 self.majModeCombat("")   
-            self.modeParam["numPionSelectionne"] = 0
-        elif self.pionDecorSelectionne() != None:
-            self.pionDecorSelectionne().afficheOmbreSelection(False)
-            self.modeParam["numPionSelectionne"] = 0
-
-        if self.modeActif_old == "pionSelectionne" or self.modeActif_old == "pionDecorSelectionne":  
-            self.proj.desactiver()
-                
-        if self.modeActif_old == "cachePlacer":
-            self.pinceau.reinit()
-   
-        ### definition du nouveau mode
-        if mode != "standard":
-            self.modeActif_old = mode
-            reinit = False
-            if mode == "caseMajEffet":
-                #on met a jour l'effet actif sur les cases
-                if param != None:
-                    self.curseurPinceau()
-                    self.fenetre.ui.cbt_vue.setDragMode(0)
-                    self.modeParam["effet"] = param                
-
-            elif mode == "caseMajAltitude":
-                self.curseurPinceau()
-                self.fenetre.ui.cbt_vue.setDragMode(0)                           
-
-            elif mode == "cachePlacer":
-                self.curseurPinceau()
-                self.fenetre.ui.cbt_vue.setDragMode(0)
-                self.pinceau.majForme("rectP")
-                self.pinceau.verrouillerForme(True)                    
-
-
-        ##on reinitialise si necessaire    
-        if reinit:
-            #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.majInfosPion()
-            self.majInfosDecor()
-
-##            self.fenetre.majVisibiliteBarreCombat("menu")
-            QApplication.processEvents()
-            self.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
-            self.fenetre.ui.cbt_vue.setDragMode(1)
-        else:
-            self.fenetre.ui.cbt_vue.setFocus()
-
-    def majModeCombat(self, mode = ""):
-        """met a jour le mode de combat actif pour le pion selectionne"""
-        ## on desactive le mode precedent si besoin
-        #la projection de position
-        
-        if self.modeCombat == "combatDeplacement":
-            #le champ de deplacement
-            if self.modePrincipal == "combat":
-                self.afficherChampDeplacement(False)
-            self.proj.desactiver()
-                
-        elif self.modeCombat == "combatAttaqueCaC":        
-            #la zone d'attaque au cac
-            self.materialiserPions(True)
-            self.majZoneAttaqueCaC(False)
-            self.modeParam["zoneAttaqueCaC"] = []
-            if self.modeParam["cibleAttaqueCaC"] != None:
-                self.modeParam["cibleAttaqueCaC"].estCibleAttaque(False)
-                self.modeParam["cibleAttaqueCaC"] = None
-                
-        elif self.modeCombat == "combatAttaqueDist":
-            self.materialiserPions(True)
-            self.majLigneMireAttaqueDist()
-            
-        elif self.modeCombat == "combatAttaqueZone":  
-            #l'attaque de zone
-            self.materialiserPions(True)
-            QApplication.processEvents()
-            self.reinitAttaqueZone()
-##            if mode != "combatAttaqueZone": self.fenetre.majVisibiliteBarreCombat("menu")
-            self.modeParam["listeCasesAttaqueZone"] = []
-
-        ## definition du nouveau mode de combat
-        if self.pionSelectionne() != None:
-            self.modeCombat = mode
-            self.fenetre.ui.cbt_vue.setDragMode(0)
-            if mode == "aucun":
-                self.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
-            
-            if mode == "combatDeplacement":
-                self.fenetre.ui.cbt_vue.setCursor(QCursor(Qt.ArrowCursor))
-                self.proj.creer(self.pionSelectionne())
 
 
-                if self.modePrincipal == "combat":
-                    #si mode combat, affichage de la zone de deplacement
-                    self.afficherChampDeplacement(True)
-                         
-            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, 1, True, True)
-                self.majZoneAttaqueCaC(True)
-                
-            elif mode == "combatAttaqueDist":
-                self.curseurArc()
-                self.materialiserPions(False)
-
-            elif mode == "combatAttaqueZone":
-                self.curseurBaguette()
-                self.materialiserPions(False)
-                self.majFormeAttaqueZone()
-            
     ###############
     ###############
 
 
     ########## Gestion du combat ##############
     ########## Gestion du combat ##############
@@ -864,23 +735,8 @@ class Plateau(QGraphicsScene):
         """met a jour l'affichage du tour en cours"""
         """met a jour l'affichage du tour en cours"""
         self.fenetre.ui.cbt_tour.majTexte("Tour: {}".format(self.tour))
         self.fenetre.ui.cbt_tour.majTexte("Tour: {}".format(self.tour))
 
 
-    def majAffichagePionSelectionne(self):
-        """affiche le nom et le logo du pion actuellement selectionne"""
-        if self.pionSelectionne() != None:
-            self.fenetre.ui.pi_nom.majTexte(self.pionSelectionne().txtId())
-            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:    
-                self.fenetre.ui.pi_img.setPixmap(QPixmap())    
-        else:
-            self.fenetre.ui.pi_img.setPixmap(QPixmap())  
-            self.fenetre.ui.pi_nom.majTexte("Pas de pion\nselectionné")
-
     def initListeOrdreJeu(self):
     def initListeOrdreJeu(self):
         """cree les colonnes et met en forme la table ordre jeu"""
         """cree les colonnes et met en forme la table ordre jeu"""
-##        self.fenetre.ui.infoOrdreJeu.setColumnWidth(0, 20)
         self.fenetre.ui.inf_listeOrdreJeu.setColumnWidth(2, 30)
         self.fenetre.ui.inf_listeOrdreJeu.setColumnWidth(2, 30)
         self.fenetre.ui.inf_listeOrdreJeu.hideColumn(0)
         self.fenetre.ui.inf_listeOrdreJeu.hideColumn(0)
         self.fenetre.ui.inf_listeOrdreJeu.hideColumn(2)      
         self.fenetre.ui.inf_listeOrdreJeu.hideColumn(2)      
@@ -934,7 +790,6 @@ class Plateau(QGraphicsScene):
         self.pionSaisir(numCombattant)        
         self.pionSaisir(numCombattant)        
  
  
     def afficheEcranGestionCombat(self):
     def afficheEcranGestionCombat(self):
-        #*egc
         """affiche l'ecran de gestion du combat"""
         """affiche l'ecran de gestion du combat"""
         self.gestionCombat = EcranGestionCombat(self)
         self.gestionCombat = EcranGestionCombat(self)
         self.gestionCombat.show()
         self.gestionCombat.show()
@@ -1168,6 +1023,59 @@ class Plateau(QGraphicsScene):
             
             
     ###############
     ###############
 
 
+    ### panneau d'info
+    def majInfosPion(self, pionSurvole=None):
+        """met a jour les informations d'un pion dans la zone prevue"""
+        if pionSurvole != None:
+            pion = pionSurvole
+        else:
+            if self.pionSelectionne() != None:
+                pion = self.pionSelectionne()
+            else:
+                pion = None
+
+        if pion != None:  
+            self.fenetre.ui.inf_pionNom.majTexte(pion.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)
+            self.fenetre.ui.inf_pionEffet.setVisible(False)
+        else:
+            self.fenetre.ui.inf_boitePion.setVisible(False)
+
+    def majInfosCase(self, case=None):
+        """met a jour les informations d'un pion dans la zone prevue"""
+        if case != None:
+            if len(case.terrain.nom) > 0:
+                self.fenetre.ui.inf_caseTerrain.majTexte(case.terrain.nom)
+            else:
+                self.fenetre.ui.inf_caseTerrain.majTexte("Case")
+            self.fenetre.ui.inf_caseCoord.majTexte("X: {}  Y: {}".format(case.x, case.y))
+            self.fenetre.ui.inf_caseAltitude.majTexte("Alt.: {}".format(case.altitude))
+            if case.effetActif != "":
+                pix = QPixmap(QString.fromUtf8("img\\"+case.imgEffet[case.effetActif]))
+                pix = pix.scaled(21, 21, Qt.KeepAspectRatio, Qt.SmoothTransformation)
+                self.fenetre.ui.inf_caseEffet.setPixmap(pix)                
+            else:
+                self.fenetre.ui.inf_caseEffet.clear()
+            self.fenetre.ui.inf_boiteCase.setVisible(True)
+        else:
+            self.fenetre.ui.inf_boiteCase.setVisible(False)
+
+    def majInfosDecor(self, pionDecor=None):
+        """met a jour les informations d'un pion dans la zone prevue"""
+        if pionDecor != None:  
+            self.fenetre.ui.inf_decorNom.majTexte(pionDecor.nom)
+            if len(pionDecor.img.nom) > 0:
+                pix = QPixmap(QString.fromUtf8("img\\"+pionDecor.img.nom))
+                pix = pix.scaled(61, 51, Qt.KeepAspectRatio, Qt.SmoothTransformation)
+                self.fenetre.ui.infoDecorEnCours_image.setPixmap(pix)
+            self.fenetre.ui.inf_boiteDecor.setVisible(True)
+        else:
+            self.fenetre.ui.inf_boiteDecor.setVisible(False)
+
     ############### fonctions de calcul ################ 
     ############### fonctions de calcul ################ 
     def zone(self, origine, distance, z=0, conditionFranchissable = False, conditionVisible = False):
     def zone(self, origine, distance, z=0, conditionFranchissable = False, conditionVisible = False):
         """renvoie un dictionnaire representant la liste des coordonnees des cases comprises dans la zone
         """renvoie un dictionnaire representant la liste des coordonnees des cases comprises dans la zone
@@ -1372,53 +1280,7 @@ class Plateau(QGraphicsScene):
         return preSelection                         
         return preSelection                         
 
 
 
 
-##    def majLigneMireAttaqueDist(self, coordCible = None):
-##        """met a jour la ligne de mire representant l'attaque a distance"""
-##        if self.modeParam["cibleAttaqueDist"] != None and self.modeParam["cibleAttaqueDist"] != coordCible:
-##            self.cases[self.modeParam["cibleAttaqueDist"]].majEstCibleCurseur(False)
-##
-##        if self.modeParam["pionCibleAttaqueDist"] != None:
-##            self.modeParam["pionCibleAttaqueDist"].estCibleAttaque(False)
-##            
-##        if coordCible != None and self.pionSelectionne() != None and self.modeCombat == "combatAttaqueDist":
-##            if coordCible == None:
-##                coordCible = pion.position
-##                
-##            if coordCible != self.modeParam["cibleAttaqueDist"]:
-##                if self.modeParam["ligneAttaqueDist"] == None:
-##                    self.modeParam["ligneAttaqueDist"] = QGraphicsLineItem()
-##                    self.modeParam["ligneAttaqueDist"].setZValue(100)
-##                    pinceau = QPen()
-##                    pinceau.setWidth(6)
-##                    self.modeParam["ligneAttaqueDist"].setPen(pinceau)
-##                    self.modeParam["ligneAttaqueDist"].prepareGeometryChange()
-##                    self.addItem(self.modeParam["ligneAttaqueDist"])
-##
-##                z = 0
-##                pionSurCase = self.cases[coordCible].pionOccupant()
-##                if pionSurCase != None:
-##                    z = pionSurCase.z
-##                cibleValide = self.estCibleAttaqueDistValide(self.pionSelectionne().position, coordCible, z)
-##
-##                if pionSurCase != None:
-##                    pionSurCase.estCibleAttaque(True, cibleValide)
-##                    self.modeParam["pionCibleAttaqueDist"] = pionSurCase
-##                else:
-##                    self.cases[coordCible].majEstCibleCurseur(True, cibleValide)
-##                self.modeParam["cibleAttaqueDist"] = coordCible
-##                    
-##                point1 = self.cases[self.pionSelectionne().position].centreGraphique
-##                point2 = self.cases[coordCible].centreGraphique
-##                ligne = QLineF(point1, point2)
-##                self.modeParam["ligneAttaqueDist"].setLine(ligne)
-##        else:
-##            if self.modeParam["ligneAttaqueDist"] != None:
-##                self.modeParam["ligneAttaqueDist"].prepareGeometryChange()
-##                self.removeItem(self.modeParam["ligneAttaqueDist"])
-##            self.modeParam["ligneAttaqueDist"] = None
-##            self.modeParam["cibleAttaqueDist"] = None
-            
-                
+
     def estCibleAttaqueDistValide(self, coordOrigine, coordCible, zPion = 0):
     def estCibleAttaqueDistValide(self, coordOrigine, coordCible, zPion = 0):
          """la case cible est elle valide pour une attaque a distance depuis la position et hauteur
          """la case cible est elle valide pour une attaque a distance depuis la position et hauteur
             du pion selectionne? on compare pour ce faire les altitudes des cases sur la ligne de mire"""
             du pion selectionne? on compare pour ce faire les altitudes des cases sur la ligne de mire"""
@@ -1539,39 +1401,7 @@ class Plateau(QGraphicsScene):
     def caseCliquee(self, x, y):
     def caseCliquee(self, x, y):
         """on a clique sur la case (clic gauche)"""
         """on a clique sur la case (clic gauche)"""
         coord = (x, y)
         coord = (x, y)
-        self.modeActif.clic_case(coord)
-        accepte = False
-        if coord in self.cases:
-            case = self.cases[coord]
-            if self.modeActif_old == "pionDecorSelectionne":
-                if coord != self.pionDecorSelectionne().position:
-                    self.pionDeposer(coord)
-                    accepte = True
-                    
-            elif self.modeActif_old == "pionSelectionne":
-                if self.modeCombat == "combatDeplacement":
-                    if self.pionSelectionne() != None:
-                        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"]))
-                        self.majMode("pionSelectionne", None)
-                        accepte = True
-                    else:
-                        print("cette case est invalide pour une corps a corps")
-                        accepte = True
-                elif self.modeCombat == "combatAttaqueDist":
-                    self.validerAttaqueDist()
-                    accepte = True
-                        
-                elif self.modeCombat == "combatAttaqueZone":
-                    self.validerAttaqueZone()
-                    accepte = True
-                    
-        return accepte       
+        self.modeActif.clic_case(coord)     
 
 
     def caseSurvolClicEnfonce(self, coord):
     def caseSurvolClicEnfonce(self, coord):
         """une case est survolee par le curseur (le clic gauche est enfonce)"""
         """une case est survolee par le curseur (le clic gauche est enfonce)"""
@@ -1579,90 +1409,39 @@ class Plateau(QGraphicsScene):
 
 
     def caseSurvol(self, x, y):
     def caseSurvol(self, x, y):
         """une case est survole par le curseur, on affiche ses informations dans la zone prevue"""
         """une case est survole par le curseur, on affiche ses informations dans la zone prevue"""
+        self.majInfosCase(self.cases[(x,y)]) 
         self.modeActif.survol_case((x,y))
         self.modeActif.survol_case((x,y))
-        
-        case = self.cases[(x, y)]
-        self.majInfosCase(case)
-        if (self.modeActif_old == "pionSelectionne" and self.modeCombat == "combatDeplacement") or self.modeActif_old == "pionCreation"\
-           or self.modeActif_old == "pionDecorSelectionne" or self.modeActif_old == "pionDecorCreation":
-            self.proj.majCoord((x, y))
-            
-        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)
-                self.modeParam["point2AttaqueZone"] = case.centreGraphique
-                self.majFormeAttaqueZone()                       
-
+                         
     def afficherListeCases(self, listeCases, actif):
     def afficherListeCases(self, listeCases, actif):
         """met ou non en evidence les cases selectionnees"""
         """met ou non en evidence les cases selectionnees"""
         for coord in listeCases:
         for coord in listeCases:
             self.cases[coord].majEstCibleCurseur(actif)
             self.cases[coord].majEstCibleCurseur(actif)
-        
-    def majInfosCase(self, case=None):
-        """met a jour les informations d'un pion dans la zone prevue"""
-        if case != None:
-            if len(case.terrain.nom) > 0:
-                self.fenetre.ui.inf_caseTerrain.majTexte(case.terrain.nom)
-            else:
-                self.fenetre.ui.inf_caseTerrain.majTexte("Case")
-            self.fenetre.ui.inf_caseCoord.majTexte("X: {}  Y: {}".format(case.x, case.y))
-            self.fenetre.ui.inf_caseAltitude.majTexte("Alt.: {}".format(case.altitude))
-            if case.effetActif != "":
-                pix = QPixmap(QString.fromUtf8("img\\"+case.imgEffet[case.effetActif]))
-                pix = pix.scaled(21, 21, Qt.KeepAspectRatio, Qt.SmoothTransformation)
-                self.fenetre.ui.inf_caseEffet.setPixmap(pix)                
-            else:
-                self.fenetre.ui.inf_caseEffet.clear()
-            self.fenetre.ui.inf_boiteCase.setVisible(True)
-        else:
-            self.fenetre.ui.inf_boiteCase.setVisible(False)
 
 
     def pionClique(self, num):
     def pionClique(self, num):
         """on a clique sur ce pion"""
         """on a clique sur ce pion"""
         accepte = False
         accepte = False
         if num < 10000:
         if num < 10000:
             self.modeActif.clic_combattant(num)
             self.modeActif.clic_combattant(num)
-            
-            accepte = False
-            if self.pionSelectionne() != None and self.modeCombat == "combatAttaqueDist":    
-                self.validerAttaqueDist()
-                accepte = True
-
         else:
         else:
             self.modeActif.clic_decor(num)
             self.modeActif.clic_decor(num)
-        
-        if self.modeActif.nom() == "Standard":
-            self.activerMode(Modes.DeplacementPion, num)
-        
-        return accepte    
 
 
     def pionSurvol(self, numCombattant):
     def pionSurvol(self, numCombattant):
         """le pion est survole par le curseur, on affiche ses informations dans la zone prevue"""
         """le pion est survole par le curseur, on affiche ses informations dans la zone prevue"""
         self.modeActif.survol_combattant(numCombattant)
         self.modeActif.survol_combattant(numCombattant)
+
         if numCombattant in self.combattants:
         if numCombattant in self.combattants:
             pion = self.combattants[numCombattant]
             pion = self.combattants[numCombattant]
         else:
         else:
             pion = None
             pion = None
+            
         self.majInfosPion(pion)
         self.majInfosPion(pion)
-        if self.pionSelectionne() != None and self.modeCombat == "combatAttaqueCaC":
-            self.majProjectionAttaqueCaC(pion)
-            pass
+
         if numCombattant in self.combattants:
         if numCombattant in self.combattants:
-##            case = self.cases[self.combattants[numCombattant].position]
             self.caseSurvol(self.combattants[numCombattant].position[0], self.combattants[numCombattant].position[1])
             self.caseSurvol(self.combattants[numCombattant].position[0], self.combattants[numCombattant].position[1])
 
 
     def pionDoubleClic(self, numCombattant):
     def pionDoubleClic(self, numCombattant):
         """on a double-clique sur le pion"""
         """on a double-clique sur le pion"""
-        self.modeActif.doubleClic_combattant(numCombattant)
-        accepte = False
-        if self.pionSelectionne() == self.combattants[numCombattant] and self.modeCombat == "aucun":
-##            self.pionSaisir(numCombattant)
-            self.majModeCombat("combatDeplacement")
-            accepte = True
-        return accepte          
+        self.modeActif.doubleClic_combattant(numCombattant)       
 
 
     def creerPion(self, pionModele):
     def creerPion(self, pionModele):
         """creer un pion (combattant ou decor) aux coordonnees indiquees"""
         """creer un pion (combattant ou decor) aux coordonnees indiquees"""
@@ -1710,11 +1489,6 @@ class Plateau(QGraphicsScene):
         else:
         else:
             retour = str(i)
             retour = str(i)
         return retour
         return retour
-    
-    def pionSaisir(self, numCombattant):
-        """on saisit un pion"""
-        if numCombattant != self.modeParam["numPionSelectionne"]:
-            self.majMode("pionSelectionne", numCombattant)
         
         
     def pionDeposer(self, coordCase):
     def pionDeposer(self, coordCase):
         """on depose le pion sur la case voulue"""
         """on depose le pion sur la case voulue"""
@@ -1727,40 +1501,6 @@ class Plateau(QGraphicsScene):
            if self.proj.projectionValide():        
            if self.proj.projectionValide():        
                pion.majPosition(self.proj.coord(), self.proj.nbRotations())
                pion.majPosition(self.proj.coord(), self.proj.nbRotations())
 
 
-    def afficherChampDeplacement(self, actif):
-        """cree et affiche ou efface et detruit le champ de deplacement du pion selectionne"""
-        if self.pionSelectionne() != None:
-            if actif:
-                self.pionSelectionne().champDeplacement = self.zone(self.pionSelectionne().position, \
-                                                                           self.pionSelectionne().deplacementRestant, \
-                                                                           True)
-            for coord in self.pionSelectionne().champDeplacement:
-                 self.cases[coord].majEstDansChampDeplacement(actif)
-             
-            if not actif:
-                self.pionSelectionne().champDeplacement = {}
-            
-    def majInfosPion(self, pionSurvole=None):
-        """met a jour les informations d'un pion dans la zone prevue"""
-        if pionSurvole != None:
-            pion = pionSurvole
-        else:
-            if self.pionSelectionne() != None:
-                pion = self.pionSelectionne()
-            else:
-                pion = None
-
-        if pion != None:  
-            self.fenetre.ui.inf_pionNom.majTexte(pion.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)
-            self.fenetre.ui.inf_pionEffet.setVisible(False)
-        else:
-            self.fenetre.ui.inf_boitePion.setVisible(False)
-
     def majZPion(self, valeur):
     def majZPion(self, valeur):
         """met a jour l'altitude du pion selectionne"""
         """met a jour l'altitude du pion selectionne"""
         if self.pionSelectionne() != None:
         if self.pionSelectionne() != None:
@@ -1778,18 +1518,6 @@ class Plateau(QGraphicsScene):
         if numPionDecor != self.modeParam["numPionSelectionne"]:
         if numPionDecor != self.modeParam["numPionSelectionne"]:
             self.majMode("pionDecorSelectionne", numPionDecor)
             self.majMode("pionDecorSelectionne", numPionDecor)
 
 
-    def majInfosDecor(self, pionDecor=None):
-        """met a jour les informations d'un pion dans la zone prevue"""
-        if pionDecor != None:  
-            self.fenetre.ui.inf_decorNom.majTexte(pionDecor.nom)
-            if len(pionDecor.img.nom) > 0:
-                pix = QPixmap(QString.fromUtf8("img\\"+pionDecor.img.nom))
-                pix = pix.scaled(61, 51, Qt.KeepAspectRatio, Qt.SmoothTransformation)
-                self.fenetre.ui.infoDecorEnCours_image.setPixmap(pix)
-            self.fenetre.ui.inf_boiteDecor.setVisible(True)
-        else:
-            self.fenetre.ui.inf_boiteDecor.setVisible(False)
-
 
 
     def majProjectionAttaqueCaC(self, pionCible):
     def majProjectionAttaqueCaC(self, pionCible):
         """affiche ou non la cible de l'attaque au corps a corps, selon sa validite ou non"""
         """affiche ou non la cible de l'attaque au corps a corps, selon sa validite ou non"""
@@ -1898,29 +1626,9 @@ class Plateau(QGraphicsScene):
         super(Plateau, self).mousePressEvent(event)
         super(Plateau, self).mousePressEvent(event)
         if event.button() == 1:
         if event.button() == 1:
             self.modeActif.clicGauche(event)
             self.modeActif.clicGauche(event)
-        
-        if event.button() == 1 and self.fenetre.ui.cbt_vue.dragMode() != QGraphicsView.ScrollHandDrag:
-            if self.modeActif_old == "pionSupprimer":
-                for item in self.items(event.scenePos()):
-                    if item.__class__.__name__ == "PionDecor":
-                        self.pionDecorSupprimer(item.numero)
-                        break  
-                    elif item.parentItem().__class__.__name__ == "Pion":
-                        self.pionSupprimer(item.parentItem().numero)
-                        break
-                      
-            else:
-##                if not event.isAccepted():
-##                    self.caseCliquee(self.coordonneesAuPoint(event.scenePos()))
-                event.ignore()
         elif event.button() == 2:
         elif event.button() == 2:
-            if self.pionSelectionne() != None and self.modeCombat != "" and self.modeCombat != "aucun":
-                self.majModeCombat("aucun")
-            else:    
-                self.majMode("standard")
-                self.modeActif.clicDroit(event)
+            self.modeActif.clicDroit(event)
             event.accept()
             event.accept()
-        #event.ignore()
 
 
     def mouseReleaseEvent(self, event):
     def mouseReleaseEvent(self, event):
         super(Plateau, self).mouseReleaseEvent(event)
         super(Plateau, self).mouseReleaseEvent(event)
@@ -1930,24 +1638,6 @@ class Plateau(QGraphicsScene):
         """gestion des evenements clavier"""
         """gestion des evenements clavier"""
         toucheClavier = event.key()
         toucheClavier = event.key()
         self.modeActif.toucheClavier(event)
         self.modeActif.toucheClavier(event)
-        
-        if self.modeActif_old == "pionCreation" or self.modeActif_old == "pionSelectionne" or self.modeActif_old == "pionDecorSelectionne" or self.modeActif_old == "pionDecorCreation":
-            #pivots de la projection du deplacement
-            if toucheClavier == Qt.Key_Right:
-                self.proj.majRotation(1)
-                event.accept()
-            elif toucheClavier == Qt.Key_Left:
-                self.proj.majRotation(-1)
-                event.accept()
-
-        if toucheClavier == Qt.Key_Delete:
-            if self.pionSelectionne() != None:
-                num = self.pionSelectionne().numero
-                if self.modeActif_old == "pionSelectionne":
-                    self.pionSupprimer(num)
-                elif self.modeActif_old == "pionDecorSelectionne":            
-                    self.pionDecorSupprimer(num)
-                self.majMode("standard")    
             
             
     ################   
     ################