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

Diff of /ambar/personaje.py

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

revision 2.2 by amoyav, Fri Aug 23 13:42:20 2002 UTC revision 2.3 by pabloruiz, Mon Aug 26 18:59:53 2002 UTC
# Line 66  class Personaje: Line 66  class Personaje:
66                                ninguna compañia o va el último)                                ninguna compañia o va el último)
67       - anterior (Personaje): el personaje que va delante de el en la compañia (None si no está en       - anterior (Personaje): el personaje que va delante de el en la compañia (None si no está en
68                               ninguna compañía o va el primero)                               ninguna compañía o va el primero)
69         - __ids_amigos (Diccionario): Se trata de un diccionario de la forma {id:int} en donde id es un
70                                   string que identifica a un personaje e int es el grado de confianza
71                                   siendo 0 nada, 1 toda (de momento).
72       - __mochila (Objeto[][]): lista de todos los objetos que va cargando el personaje. Es lista       - __mochila (Objeto[][]): lista de todos los objetos que va cargando el personaje. Es lista
73                                 doble porque si hay varios objetos con el mismo id, van agrupados.                                 doble porque si hay varios objetos con el mismo id, van agrupados.
74       - __cuerpo ({String:Objeto}): mapa con las partes del cuerpo del PJ, indicando el objeto que       - __cuerpo ({String:Objeto}): mapa con las partes del cuerpo del PJ, indicando el objeto que
# Line 116  class Personaje: Line 119  class Personaje:
119        siguiente != None -> siguiente.anterior == self        siguiente != None -> siguiente.anterior == self
120        anterior != None -> anterior.siguiente == self        anterior != None -> anterior.siguiente == self
121        controlador == None -> ( siguiente == None and anterior == None )        controlador == None -> ( siguiente == None and anterior == None )
122          ids_amigos != None
123    
124        __mochila != None        __mochila != None
125        __mochila[i] != None        __mochila[i] != None
# Line 128  class Personaje: Line 132  class Personaje:
132    
133      # Versión del sistema de personajes (se incrementa al cambiar cualquiera      # Versión del sistema de personajes (se incrementa al cambiar cualquiera
134      # de Personaje, PersonajeJugador o PersonajeNoJugador)      # de Personaje, PersonajeJugador o PersonajeNoJugador)
135      VERSION = '1.3'      VERSION = '1.4'
136    
137      # Resultados de comparar otro personaje con este      # Resultados de comparar otro personaje con este
138      COMP_INF_MAS_FUERTE   = 9      COMP_INF_MAS_FUERTE   = 9
# Line 175  class Personaje: Line 179  class Personaje:
179          self.__dict__["atrib"] = None          self.__dict__["atrib"] = None
180          self.__dict__["idiomas"] = None          self.__dict__["idiomas"] = None
181    
182    
183          self.siguiente = None          self.siguiente = None
184          self.anterior = None          self.anterior = None
185            self.ids_amigos = {}
186          self.salas_visitadas = {}          self.salas_visitadas = {}
187    
188          from objeto import Objeto          from objeto import Objeto
# Line 263  class Personaje: Line 269  class Personaje:
269          self.__dict__["idiomas"] = idiomas_instancias          self.__dict__["idiomas"] = idiomas_instancias
270    
271          # Verificar la versión.          # Verificar la versión.
272          assert(Personaje.VERSION == "1.3")                  assert(Personaje.VERSION == "1.4")        
273          while self.version != "1.3":          while self.version != "1.4":
274                            
275              if not self.__dict__.has_key("version"):              if not self.__dict__.has_key("version"):
276                  raise ValueError("Cargado personaje " + self.id + " obsoleto: sin versión" +                  raise ValueError("Cargado personaje " + self.id + " obsoleto: sin versión" +
# Line 315  class Personaje: Line 321  class Personaje:
321                                    
322                  self.version = "1.3"                  self.version = "1.3"
323                  escribir("Convertido personaje " + self.id + " a versión 1.3")                  escribir("Convertido personaje " + self.id + " a versión 1.3")
324                elif self.version == "1.3":
325                    # Versión 1.3 -> 1.4: añadir ids_amigos
326                    self.ids_amigos = {}
327                    self.version = "1.4"
328                    escribir("Convertido personaje " + self.id + " a versión 1.4")
329              else:              else:
330                  raise ValueError("Cargado personaje " + self.id + " con versión desconocida: " +                  raise ValueError("Cargado personaje " + self.id + " con versión desconocida: " +
331                                   self.version + " cuando se esperaba " + Personaje.VERSION)                                                                   self.version + " cuando se esperaba " + Personaje.VERSION)                                
# Line 326  class Personaje: Line 337  class Personaje:
337    
338      def cuerpo(self):      def cuerpo(self):
339          return self.__cuerpo          return self.__cuerpo
340    
341        
342                                    
343        def dar_objeto(self, objeto, receptor):
344            """Transfiere un objeto del personaje al receptor.
345    
346            Requiere:
347               objeto != None
348            Asegura:
349               receptor.__mochila.append([objeto])
350            """
351    
352            receptor.meter_en_mochila(objeto)
353                                                            
354      def poner_experiencia(self, experiencia):      def poner_experiencia(self, experiencia):
355          """Modifica los puntos de experiencia del personaje.          """Modifica los puntos de experiencia del personaje.
# Line 669  class Personaje: Line 692  class Personaje:
692          msg_f = self.mensaje_filtrado(mensaje, idioma, oyente)          msg_f = self.mensaje_filtrado(mensaje, idioma, oyente)
693          oyente.controlador.susurra_personaje(self, msg_f)          oyente.controlador.susurra_personaje(self, msg_f)
694    
695        def comunicar_evento(self, oyente, mensaje):
696            """Comunica un evento protagonizado por un personaje a otro personaje """
697            oyente.controlador.comunicar_evento_personaje(self, mensaje)
698    
699      def hablar(self, mensaje, idioma=Idioma_oestron):      def hablar(self, mensaje, idioma=Idioma_oestron):
700          """Dice un texto en voz alta de forma que lo oigan todos los que estan en la sala."""          """Dice un texto en voz alta de forma que lo oigan todos los que estan en la sala."""

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

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