38 |
|
|
39 |
Contiene los siguientes atributos: |
Contiene los siguientes atributos: |
40 |
- __personaje (PersonajeJugador): copia del personaje controlado. |
- __personaje (PersonajeJugador): copia del personaje controlado. |
|
- __tirada_percep_sala (int): resultado de una tirada de inteligencia que se |
|
|
hace cada vez que se entra en una sala, para ver |
|
|
si se perciben los items con dificultad > 0 |
|
41 |
|
|
42 |
Invariantes: |
Invariantes: |
43 |
__personaje != None |
__personaje != None |
64 |
def __init__(self, padre, conn, personaje): |
def __init__(self, padre, conn, personaje): |
65 |
Dialogo.__init__(self, padre, conn) |
Dialogo.__init__(self, padre, conn) |
66 |
self.__personaje = personaje |
self.__personaje = personaje |
|
self.__tirada_percep_sala = 0 |
|
67 |
|
|
68 |
self.lanzar_tirada_percep_sala() |
self.lanzar_tirada_percep_sala() |
69 |
|
|
87 |
def lanzar_tirada_percep_sala(self): |
def lanzar_tirada_percep_sala(self): |
88 |
"""Método llamado cada vez que se entra en una sala nueva, |
"""Método llamado cada vez que se entra en una sala nueva, |
89 |
para hacer la tirada.""" |
para hacer la tirada.""" |
90 |
self.__tirada_percep_sala = self.__personaje.tirada_atributo("inteligencia", 0) |
self.__personaje.tirar_atributo("percepcion_sala", "inteligencia", 0) |
91 |
|
|
92 |
|
|
93 |
# ------------------------------------------- |
# ------------------------------------------- |
286 |
|
|
287 |
for salida in self.__personaje.sala.salidas: |
for salida in self.__personaje.sala.salidas: |
288 |
if direccion == salida["direccion"] and \ |
if direccion == salida["direccion"] and \ |
289 |
self.__tirada_percep_sala >= salida["dificultad"]: |
self.__personaje.resultado_tirada("percepcion_sala", salida["dificultad"]) > 0: |
290 |
encontrado = 1 |
encontrado = 1 |
291 |
self.cmd_mover(salida["id"]) |
self.cmd_mover(salida["id"]) |
292 |
#En cuanto hayamos encontrado una sala que esté en esa dirección |
#En cuanto hayamos encontrado una sala que esté en esa dirección |
303 |
if es_salida == 0: |
if es_salida == 0: |
304 |
for salida in self.__personaje.sala.salidas: |
for salida in self.__personaje.sala.salidas: |
305 |
if normalizar_id(accion[1:]) == extraer_id(salida["descripcion"]) and \ |
if normalizar_id(accion[1:]) == extraer_id(salida["descripcion"]) and \ |
306 |
self.__tirada_percep_sala >= salida["dificultad"]: |
self.__personaje.resultado_tirada("percepcion_sala", salida["dificultad"]) > 0: |
307 |
es_salida = 1 |
es_salida = 1 |
308 |
self.cmd_mover(salida["id"]) |
self.cmd_mover(salida["id"]) |
309 |
self.estado_0() |
self.estado_0() |
1110 |
disponible = color(32) |
disponible = color(32) |
1111 |
duplicados.append(disponible + item.tema().nombre()) |
duplicados.append(disponible + item.tema().nombre()) |
1112 |
for nombretema in item.relacionados(): |
for nombretema in item.relacionados(): |
1113 |
dado = self.__personaje.tirada_atributo("inteligencia", 0) |
self.__personaje.tirar_atributo("recapitular", "inteligencia", 0) |
1114 |
if dado > 27: |
exitos = self.__personaje.resultado_tirada("recapitular", 20) |
1115 |
|
if exitos > 1: |
1116 |
tema = visita._conversacion.contexto(item.relacionados()[nombretema]).tema(nombretema) |
tema = visita._conversacion.contexto(item.relacionados()[nombretema]).tema(nombretema) |
1117 |
if tema.agotado_en(visita): |
if tema.agotado_en(visita): |
1118 |
disponible = color(31) |
disponible = color(31) |
1382 |
self.conn().send("\n------- Descripción del lugar -------") |
self.conn().send("\n------- Descripción del lugar -------") |
1383 |
|
|
1384 |
for item in sala.descripcion: |
for item in sala.descripcion: |
1385 |
if self.__tirada_percep_sala >= item["dificultad"]: |
if self.__personaje.resultado_tirada("percepcion_sala", item["dificultad"]) > 0: |
1386 |
self.conn().send("\n" + item["texto"]) |
self.conn().send("\n" + item["texto"]) |
1387 |
|
|
1388 |
self.conn().send("\n--------------------------------------\n") |
self.conn().send("\n--------------------------------------\n") |
1391 |
self.conn().send(color(36) + "No hay ninguna salida. ¡¡Estás atrapado!!" + finl) |
self.conn().send(color(36) + "No hay ninguna salida. ¡¡Estás atrapado!!" + finl) |
1392 |
else: |
else: |
1393 |
for salida in sala.salidas: |
for salida in sala.salidas: |
1394 |
if self.__tirada_percep_sala >= salida["dificultad"]: |
if self.__personaje.resultado_tirada("percepcion_sala", salida["dificultad"]) > 0: |
1395 |
direccion = salida["direccion"] |
direccion = salida["direccion"] |
1396 |
if direccion in ["arriba", "abajo"]: |
if direccion in ["arriba", "abajo"]: |
1397 |
self.conn().send(color(36) + "Hacia " + direccion + " ves ", 0) |
self.conn().send(color(36) + "Hacia " + direccion + " ves ", 0) |
1423 |
primero = 1 |
primero = 1 |
1424 |
for objeto in sala.objetos: |
for objeto in sala.objetos: |
1425 |
if len(objeto["instancias"]) > 0: |
if len(objeto["instancias"]) > 0: |
1426 |
if self.__tirada_percep_sala >= objeto["dificultad"]: |
if self.__personaje.resultado_tirada("percepcion_sala", objeto["dificultad"]) > 0: |
1427 |
if primero: |
if primero: |
1428 |
self.conn().send(color(32) + "\nAquí hay:" + finl) |
self.conn().send(color(32) + "\nAquí hay:" + finl) |
1429 |
primero = 0 |
primero = 0 |
1937 |
self.conn().send("¡" + nombre_oponente + " ya está muerto/a!") |
self.conn().send("¡" + nombre_oponente + " ya está muerto/a!") |
1938 |
self.estado_0() |
self.estado_0() |
1939 |
else: |
else: |
1940 |
if self.__personaje.competicion(self.oponente, "carisma", "sabiduria"): |
self.__personaje.tirar_competicion("evaluar_oponente", self.oponente, "carisma", "sabiduria") |
1941 |
|
if self.__personaje.resultado_competicion("evaluar_oponente"): |
1942 |
self.cmd_observar(nombre_oponente) |
self.cmd_observar(nombre_oponente) |
1943 |
self.estado_combate_0() |
self.estado_combate_0() |
1944 |
else: |
else: |