Actions.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #from __future__ import unicode_literals
  2. # -*- coding: utf-8 -*-
  3. class Action():
  4. """action effectuee par un combattant sur le plateau de jeu"""
  5. def __init__(self):
  6. self._num = None #no du pion actif
  7. self._coordCible = None #coord de la case ciblee par le curseur
  8. self._cible = None #cible (case ou pion)
  9. def activer(self, plateau):
  10. self.plateau = plateau
  11. def majCoordCible(self, coord):
  12. """met a jour les coordonnees de la cible,
  13. cad la case actuellement survolee par la souris"""
  14. if self.plateau.estCoordonneeValide(coord):
  15. self._coordCible = coord
  16. self.maj()
  17. def desactiver(self):
  18. pass
  19. def valider(self):
  20. #envoyer signal
  21. self.desactiver()
  22. def estValide(self):
  23. return True
  24. def maj(self):
  25. pass
  26. def acteur(self):
  27. return self.plateau.combattants[self._num]
  28. def coordActeur(self):
  29. return self.acteur().position
  30. #manipulation des items graphiques
  31. def creerItemsGraphiques(self):
  32. pass
  33. def majItemsGraphiques(self):
  34. pass
  35. def detruireItemsGraphiques(self):
  36. pass
  37. #affichage des cibles
  38. def afficherCibles(self, actif):
  39. pass
  40. class Deplacement(Action):
  41. def __init__(self):
  42. super(Deplacement, self).__init__(self)
  43. self._chemin = [] #liste des coord des cases a traverser
  44. self._cout = 0 #cout en points de dep
  45. def activer(self, plateau):
  46. super(Deplacement, self).activer(self, plateau)
  47. def majCoordCible(self, coord):
  48. if coord != self.coordActeur():
  49. super(Deplacement, self).majCoordCible(self, coord)
  50. def maj(self):
  51. self.afficherCibles(False)
  52. self._chemin = []
  53. self._cout = 0
  54. coordInit = self.coordActeur()
  55. ki = 0
  56. fil = []
  57. self.afficherCibles(True)