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

Diff of /ambar/objeto.py

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

revision 2.13 by amoyav, Sun Aug 31 20:43:27 2003 UTC revision 2.14 by amoyav, Mon Sep 22 19:08:38 2003 UTC
# Line 53  class Objeto(object): Line 53  class Objeto(object):
53    
54      # Version del sistema de objetos (se incrementa cada vez que varian los atributos      # Version del sistema de objetos (se incrementa cada vez que varian los atributos
55      # de la clase Objeto)      # de la clase Objeto)
56      VERSION_OBJETO = '1.0.4'      VERSION_OBJETO = '1.0.5'
57    
58      DIR_DESC_OBJETOS = 'desc_objetos'      DIR_DESC_OBJETOS = 'desc_objetos'
59      EXT_DESC_OBJETOS = '.xml'      EXT_DESC_OBJETOS = '.xml'
# Line 232  class Objeto(object): Line 232  class Objeto(object):
232                              aura in range(0,100)                              aura in range(0,100)
233                          """)                          """)
234    
235        def __leer_propietario(self): return self.__propietario
236    
237        propietario = property(__leer_propietario,
238                               doc="""(string): el id del personaje que posee este objeto.
239                               Este personaje es el único que tiene derecho a usarlo y
240                               llevarlo de un lado a otro.
241    
242                               Si el propietario es un PNJ, esta propiedad contiene el id
243                               sin el '%' ni el código único (el propietario es cualquier
244                               instancia de ese PNJ).
245    
246                               Puede valer None si no tiene propietario.
247                               """)
248    
249      def __leer_sucesos(self): return self.__sucesos      def __leer_sucesos(self): return self.__sucesos
250    
251      sucesos = property(__leer_sucesos,      sucesos = property(__leer_sucesos,
# Line 481  class Objeto(object): Line 495  class Objeto(object):
495              self.__aura = int(extraer_atributo_xml(elem_propiedades,'aura'))              self.__aura = int(extraer_atributo_xml(elem_propiedades,'aura'))
496          else:          else:
497              self.__aura = 1              self.__aura = 1
498            if elem_propiedades.hasAttribute('propietario'):
499                self.__propietario = extraer_atributo_xml(elem_propiedades,'propietario')
500            else:
501                self.__propietario = None
502    
503    
504      def __parsear_sucesos(self, elem_sucesos):      def __parsear_sucesos(self, elem_sucesos):
# Line 596  class Objeto(object): Line 614  class Objeto(object):
614              raise ValueError("Cargado objeto " + self.id + " obsoleto: sin versión," +              raise ValueError("Cargado objeto " + self.id + " obsoleto: sin versión," +
615                               " cuando se esperaba " + Objeto.VERSION_OBJETO)                               " cuando se esperaba " + Objeto.VERSION_OBJETO)
616    
617          assert(Objeto.VERSION_OBJETO == "1.0.4")          assert(Objeto.VERSION_OBJETO == "1.0.5")
618          while self.__version != "1.0.4":          while self.__version != "1.0.5":
619    
620              # La versión 1.0.1 produce una ruptura con las anteriores ya que se migra al formato              # La versión 1.0.1 produce una ruptura con las anteriores ya que se migra al formato
621              # de clases de Python 2.2, y no es compatible con el anterior. Hay que borrar todas              # de clases de Python 2.2, y no es compatible con el anterior. Hay que borrar todas
# Line 627  class Objeto(object): Line 645  class Objeto(object):
645                      item["personaje_mira"] = None                      item["personaje_mira"] = None
646                  self.__version = "1.0.4"                  self.__version = "1.0.4"
647                  escribir("Convertido objeto " + self.__id + " a versión 1.0.4")                  escribir("Convertido objeto " + self.__id + " a versión 1.0.4")
648                elif self.__version == "1.0.4":
649                    # Versión 1.0.4 -> 1.0.5: añadir propietario
650                    self.__propietario = None
651                    self.__version = "1.0.5"
652                    escribir("Convertido objeto " + self.__id + " a versión 1.0.5")
653              else:              else:
654                  raise ValueError("Cargado objeto " + self.__id + " con versión desconocida: " +                  raise ValueError("Cargado objeto " + self.__id + " con versión desconocida: " +
655                                   self.__version + " cuando se esperaba " + Objeto.VERSION_OBJETO)                                   self.__version + " cuando se esperaba " + Objeto.VERSION_OBJETO)
# Line 725  class Objeto(object): Line 748  class Objeto(object):
748              personaje.controlador.suceso_entorno(texto)              personaje.controlador.suceso_entorno(texto)
749    
750    
751        def cambiar_propietario(self, nuevo_propietario):
752            """Cambia el propietario del objeto a un nuevo personaje.
753    
754            Si nuevo_propietario es None, el objeto pasa a ser sin dueño.
755            """
756            if nuevo_propietario == None:
757                self.__propietario = None
758            else:
759                self.__propietario = nuevo_propietario.id.split("%")[0]
760    
761    
762      def personaje_mira(self, observador, sala):      def personaje_mira(self, observador, sala):
763          """Responde al suceso de que un personaje mira la descripción de este objeto.          """Responde al suceso de que un personaje mira la descripción de este objeto.
764    

Legend:
Removed from v.2.13  
changed lines
  Added in v.2.14

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