/[ambar]/ambar/interfazpnj.py
ViewVC logotype

Diff of /ambar/interfazpnj.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.3 by amoyav, Thu Aug 29 12:18:21 2002 UTC revision 2.4 by amoyav, Sun Oct 27 10:16:28 2002 UTC
# Line 29  from personajejugador import * Line 29  from personajejugador import *
29  from personajenojugador import *  from personajenojugador import *
30  from sala import *  from sala import *
31  from utils import *  from utils import *
32  from timer import *  from cronomine import *
33    
34    
35  class InterfazPNJ(Controlador):  class InterfazPNJ(Controlador):
# Line 46  class InterfazPNJ(Controlador): Line 46  class InterfazPNJ(Controlador):
46       - __personaje (Personaje): el personaje que controlamos       - __personaje (Personaje): el personaje que controlamos
47       - __estado (string): el estado en el que se encuentra el interfaz       - __estado (string): el estado en el que se encuentra el interfaz
48       - __sub_estado (int): algunos estados tienen fases intermedias. Si no, None.       - __sub_estado (int): algunos estados tienen fases intermedias. Si no, None.
49       - __timer (Timer): temporizador usado opcionalmente       - __crono (CronoMine): cronometro usado opcionalmente
50       - __oponente (Personaje): otro personaje con quien el nuestro está combatiendo       - __oponente (Personaje): otro personaje con quien el nuestro está combatiendo
51            
52       Los siguientes atributos provocan ajustes automáticos al ser modificados:       Los siguientes atributos provocan ajustes automáticos al ser modificados:
# Line 61  class InterfazPNJ(Controlador): Line 61  class InterfazPNJ(Controlador):
61          self.__personaje = None          self.__personaje = None
62          self.__estado = ""          self.__estado = ""
63          self.__sub_estado = None          self.__sub_estado = None
64          self.__timer = None          self.__crono = None
65          self.__oponente = None          self.__oponente = None
66          self.estado_normal()          self.estado_normal()
67                            
# Line 157  class InterfazPNJ(Controlador): Line 157  class InterfazPNJ(Controlador):
157  #%%            func(personaje, result)  #%%            func(personaje, result)
158                    
159                    
160      def lanzar_timer(self, segundos):      def lanzar_crono(self, segundos_vencimiento):
161          """Lanza un temporizador que vence al cabo del numero de segundos indicado.          """Lanza un cronometro que vence al cabo del numero de segundos indicado.
162                    
163          Se admiten decimales.          Se admiten decimales.
164          """          """
165          from mundo import Mundo          from mundo import Mundo
166          if self.timer != None: self.timer.stop()          if self.crono != None: self.crono.parar()
167          self.timer = Timer(Mundo.timer_handler, segundos, self.timeout)          self.crono = CronoMine(Mundo.cronoMine_control,
168                                   FechaHoraMineRel(segundos=segundos_vencimiento),
169                                   self.vencimiento)
170                    
171                    
172      def timeout(self, timer):      def vencimiento(self, crono):
173          """Metodo llamado cuando vence el temporizador."""          """Metodo llamado cuando vence el cronometro."""
174                    
175          self.timer = None          self.crono = None
176                    
177          # Llamar a la función correspondiente según estado          # Llamar a la función correspondiente según estado
178          nombre_func = "timeout_" + self.estado          nombre_func = "vencimiento_" + self.estado
179          if self.sub_estado != None: nombre_func += "_" + str(self.sub_estado)          if self.sub_estado != None: nombre_func += "_" + str(self.sub_estado)
180    
181          func = getattr(self, nombre_func, None)          func = getattr(self, nombre_func, None)
182          if func == None:          if func == None:
183              print "ERROR: recibido timeout en estado " + self.estado + \              print "ERROR: recibido vencimiento en estado " + self.estado + \
184                    ((self.sub_estado != None and "_" + str(self.sub_estado)) or "") + \                    ((self.sub_estado != None and "_" + str(self.sub_estado)) or "") + \
185                    ((self.personaje != None and  "(" + self.personaje.nombre + ")") or "")                    ((self.personaje != None and  "(" + self.personaje.nombre + ")") or "")
186          else:          else:
# Line 207  class InterfazPNJ(Controlador): Line 209  class InterfazPNJ(Controlador):
209  #%%            self.cbt_termina_combate()  #%%            self.cbt_termina_combate()
210  #%%            self.estado_normal()  #%%            self.estado_normal()
211  #%%        else:  #%%        else:
212  #%%            # Al poner un timer de 3 segundos, el combate funciona como  #%%            # Al poner un crono de 3 segundos, el combate funciona como
213  #%%            # una sucesion de golpes alternados cada 3 segundos.  #%%            # una sucesion de golpes alternados cada 3 segundos.
214  #%%            self.lanzar_timer(3)  #%%            self.lanzar_crono(3)
215  #%%            self.estado_combate()  #%%            self.estado_combate()
216  #%%  #%%
217  #%%  #%%
# Line 232  class InterfazPNJ(Controlador): Line 234  class InterfazPNJ(Controlador):
234  #%%            self.estado_combate()  #%%            self.estado_combate()
235  #%%              #%%            
236  #%%          #%%        
237  #%%    def timeout_combate(self):  #%%    def vencimiento_combate(self):
238  #%%        self.cbt_pegar()          #%%        self.cbt_pegar()        
239  #%%        if (self.personaje.estado == "muerto") or (self.oponente.estado == "muerto"):  #%%        if (self.personaje.estado == "muerto") or (self.oponente.estado == "muerto"):
240  #%%            self.cbt_termina_combate()  #%%            self.cbt_termina_combate()
241  #%%            self.estado_normal()  #%%            self.estado_normal()
242  #%%        else:  #%%        else:
243  #%%            self.lanzar_timer(6)  #%%            self.lanzar_crono(6)
244  #%%            self.estado_combate()            #%%            self.estado_combate()          
245  #%%          #%%        
246  #%%          #%%        
# Line 295  class InterfazPNJ(Controlador): Line 297  class InterfazPNJ(Controlador):
297  #%%          #%%        
298  #%%    def cbt_termina_combate(self):  #%%    def cbt_termina_combate(self):
299  #%%        self.oponente = None  #%%        self.oponente = None
300  #%%        if self.timer != None:  #%%        if self.crono != None:
301  #%%            self.timer.stop()  #%%            self.crono.parar()
302  #%%            self.timer = None  #%%            self.crono = None
303    
304    
305  # Código para pruebas unitarias del módulo.  # Código para pruebas unitarias del módulo.

Legend:
Removed from v.2.3  
changed lines
  Added in v.2.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26