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 |
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 |
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 |
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 |
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" + |
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) |
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. |
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.""" |