1 |
#!/usr/bin/env python |
#!/usr/bin/env python |
2 |
# |
# |
3 |
#Minë. Mundo Interactivo-Narrativo en Español [Tierra-Media] |
#Minë. Mundo Interactivo-Narrativo en Español [Tierra-Media] |
4 |
#Copyright (C) 2002 Pablo Ruiz Múzquiz |
#Copyright (C) 2002 Pablo Ruiz Múzquiz |
5 |
# |
# |
6 |
# |
# |
7 |
#This program is free software; you can redistribute it and/or modify |
#This program is free software; you can redistribute it and/or modify |
8 |
#it under the terms of the GNU General Public License as published by |
#it under the terms of the GNU General Public License as published by |
9 |
#the Free Software Foundation; either version 2 of the License, or |
#the Free Software Foundation; either version 2 of the License, or |
10 |
#(at your option) any later version. |
#(at your option) any later version. |
11 |
# |
# |
12 |
#This program is distributed in the hope that it will be useful, |
#This program is distributed in the hope that it will be useful, |
13 |
#but WITHOUT ANY WARRANTY; without even the implied warranty of |
#but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 |
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 |
#GNU General Public License for more details. |
#GNU General Public License for more details. |
16 |
# |
# |
17 |
#You should have received a copy of the GNU General Public License |
#You should have received a copy of the GNU General Public License |
18 |
#along with this program; if not, write to the Free Software |
#along with this program; if not, write to the Free Software |
19 |
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 |
# |
# |
21 |
# |
# |
22 |
#Fichero: dialogonormal.py |
#Fichero: dialogonormal.py |
23 |
|
|
24 |
"""Clase DialogoNormal.""" |
"""Clase DialogoNormal.""" |
25 |
|
|
26 |
from dialogo import * |
from dialogo import * |
27 |
from mundo import * |
from mundo import * |
28 |
from sala import * |
from sala import * |
29 |
from logo import * |
from logo import * |
30 |
from utils import * |
from utils import * |
31 |
from idioma import * |
from idioma import * |
32 |
from personajejugador import * |
from personajejugador import * |
33 |
from fechahoramine import * |
from fechahoramine import * |
34 |
import ayuda |
import ayuda |
35 |
|
|
36 |
class DialogoNormal(Dialogo): |
class DialogoNormal(Dialogo): |
37 |
"""Dialogo principal del jugador, con la mayoría de los comandos. |
"""Dialogo principal del jugador, con la mayoría de los comandos. |
38 |
|
|
39 |
Contiene los siguientes atributos: |
Contiene los siguientes atributos: |
40 |
- __personaje (PersonajeJugador): copia del pesonaje controlado. |
- __personaje (PersonajeJugador): copia del pesonaje controlado. |
41 |
- __tirada_percep_sala (int): resultado de una tirada de inteligencia que se |
- __tirada_percep_sala (int): resultado de una tirada de inteligencia que se |
42 |
hace cada vez que se entra en una sala, para ver |
hace cada vez que se entra en una sala, para ver |
43 |
si se perciben los items con dificultad > 0 |
si se perciben los items con dificultad > 0 |
44 |
|
|
45 |
Invariantes: |
Invariantes: |
46 |
__personaje != None |
__personaje != None |
47 |
""" |
""" |
48 |
|
|
49 |
COMANDOS_POSIBLES = ['+salir','+doc','+ip','+seguir','+noseguir','+hablar','+hablarq','+hablaro','+hablare',\ |
COMANDOS_POSIBLES = ['+salir','+doc','+ip','+seguir','+noseguir','+hablar','+hablarq','+hablaro','+hablare',\ |
50 |
'+susurrar','+susurrarq','+susurrare','+susurraro','+gritar','+gritarq','+gritare','+gritaro',\ |
'+susurrar','+susurrarq','+susurrare','+susurraro','+gritar','+gritarq','+gritare','+gritaro',\ |
51 |
'+idioma','+actuar','+decir','+preguntar','+atacar','+coger','+dejar','+esconder','+mochila',\ |
'+idioma','+actuar','+decir','+preguntar','+atacar','+coger','+dejar','+esconder','+mochila',\ |
52 |
'+examinar','+usar','+estadisticas','+mirar','+mr','+area','+observar','+silencio','+confiar','+noconfiar',\ |
'+examinar','+usar','+estadisticas','+mirar','+mr','+area','+observar','+silencio','+confiar','+noconfiar',\ |
53 |
'+dar','+amigos', '+recapitular', '+reloj'] |
'+dar','+amigos', '+recapitular', '+reloj'] |
54 |
|
|
55 |
COMANDOS_MAIAR = ['+entorno','+ent','+listar','+localizar','+loc'] |
COMANDOS_MAIAR = ['+entorno','+ent','+listar','+localizar','+loc'] |
56 |
|
|
57 |
COMANDOS_DIRECCIONES = ['+norte', '+noreste', '+este', '+sureste', '+sur', |
COMANDOS_DIRECCIONES = ['+norte', '+noreste', '+este', '+sureste', '+sur', |
58 |
'+suroeste', '+oeste', '+noroeste', '+arriba', '+abajo'] |
'+suroeste', '+oeste', '+noroeste', '+arriba', '+abajo'] |
59 |
|
|
60 |
COMANDOS_ABREV_DIR = {'+n':'+norte', '+ne':'+noreste', '+e':'+este', '+se':'+sureste', |
COMANDOS_ABREV_DIR = {'+n':'+norte', '+ne':'+noreste', '+e':'+este', '+se':'+sureste', |
61 |
'+s':'+sur', '+so': '+suroeste', '+o':'+oeste', '+no':'+noroeste', |
'+s':'+sur', '+so': '+suroeste', '+o':'+oeste', '+no':'+noroeste', |
62 |
'+ar':'+arriba', '+ab':'+abajo'} |
'+ar':'+arriba', '+ab':'+abajo'} |
63 |
|
|
64 |
|
|
65 |
def __init__(self, padre, conn, personaje): |
def __init__(self, padre, conn, personaje): |
66 |
Dialogo.__init__(self, padre, conn) |
Dialogo.__init__(self, padre, conn) |
67 |
self.__personaje = personaje |
self.__personaje = personaje |
68 |
self.__tirada_percep_sala = 0 |
self.__tirada_percep_sala = 0 |
69 |
|
|
70 |
self.lanzar_tirada_percep_sala() |
self.lanzar_tirada_percep_sala() |
71 |
|
|
72 |
self.cmd_estadisticas() |
self.cmd_estadisticas() |
73 |
|
|
74 |
self.conn().send('La apariencia de tu personaje es:') |
self.conn().send('La apariencia de tu personaje es:') |
75 |
for item in self.__personaje.descripcion: |
for item in self.__personaje.descripcion: |
76 |
self.conn().send(color(31) + item["texto"] + "\n" + finl) |
self.conn().send(color(31) + item["texto"] + "\n" + finl) |
77 |
|
|
78 |
self.cmd_mirar() |
self.cmd_mirar() |
79 |
|
|
80 |
self.conn().send("IMPORTANTE: los comandos se escriben empezando con el carácter +.") |
self.conn().send("IMPORTANTE: los comandos se escriben empezando con el carácter +.") |
81 |
self.conn().send("Escribe +? para leer la ayuda.") |
self.conn().send("Escribe +? para leer la ayuda.") |
82 |
self.conn().send("Para hablar, simplemente escribe algo sin + delante.") |
self.conn().send("Para hablar, simplemente escribe algo sin + delante.") |
83 |
self.conn().send('') |
self.conn().send('') |
84 |
if self.__personaje.esMaia(): self.conn().send("Eres un Maia de Minë.") |
if self.__personaje.esMaia(): self.conn().send("Eres un Maia de Minë.") |
85 |
self.conn().send('') |
self.conn().send('') |
86 |
self.estado_0() |
self.estado_0() |
87 |
|
|
88 |
|
|
89 |
def lanzar_tirada_percep_sala(self): |
def lanzar_tirada_percep_sala(self): |
90 |
"""Método llamado cada vez que se entra en una sala nueva, |
"""Método llamado cada vez que se entra en una sala nueva, |
91 |
para hacer la tirada.""" |
para hacer la tirada.""" |
92 |
self.__tirada_percep_sala = self.__personaje.tirada_atributo("inteligencia", 0) |
self.__tirada_percep_sala = self.__personaje.tirada_atributo("inteligencia", 0) |
93 |
|
|
94 |
|
|
95 |
# ------------------------------------------- |
# ------------------------------------------- |
96 |
# EVENTOS DE CONTROLADOR (ver controlador.py) |
# EVENTOS DE CONTROLADOR (ver controlador.py) |
97 |
# ------------------------------------------- |
# ------------------------------------------- |
98 |
|
|
99 |
def entra_personaje(self, personaje): |
def entra_personaje(self, personaje): |
100 |
if self.__personaje.silencio == "no": |
if self.__personaje.silencio == "no": |
101 |
if isinstance(personaje, PersonajeJugador): |
if isinstance(personaje, PersonajeJugador): |
102 |
self.conn().send(color(35) + personaje.id + " ha entrado" + finl) |
self.conn().send(color(35) + personaje.id + " ha entrado" + finl) |
103 |
else: |
else: |
104 |
self.conn().send(color(35) + personaje.nombre + " ha entrado" + finl) |
self.conn().send(color(35) + personaje.nombre + " ha entrado" + finl) |
105 |
|
|
106 |
|
|
107 |
def sale_personaje(self, personaje, nombre_sala_destino): |
def sale_personaje(self, personaje, nombre_sala_destino): |
108 |
if self.__personaje.silencio == "no": |
if self.__personaje.silencio == "no": |
109 |
if isinstance(personaje, PersonajeJugador): |
if isinstance(personaje, PersonajeJugador): |
110 |
self.conn().send(color(35) + personaje.id + " se va hacia " + |
self.conn().send(color(35) + personaje.id + " se va hacia " + |
111 |
nombre_sala_destino + finl) |
nombre_sala_destino + finl) |
112 |
else: |
else: |
113 |
self.conn().send(color(35) + personaje.nombre + " se va hacia " + |
self.conn().send(color(35) + personaje.nombre + " se va hacia " + |
114 |
nombre_sala_destino + finl) |
nombre_sala_destino + finl) |
115 |
|
|
116 |
|
|
117 |
def habla_personaje(self, personaje, mensaje): |
def habla_personaje(self, personaje, mensaje): |
118 |
if isinstance(personaje, PersonajeJugador): |
if isinstance(personaje, PersonajeJugador): |
119 |
self.conn().send("\n"+ personaje.id + " dice: " + personaje.color_texto() + mensaje +' ' + finl) |
self.conn().send("\n"+ personaje.id + " dice: " + personaje.color_texto() + mensaje +' ' + finl) |
120 |
else: |
else: |
121 |
self.conn().send("\n"+ personaje.nombre + " dice: " + personaje.color_texto() + mensaje +' ' + finl) |
self.conn().send("\n"+ personaje.nombre + " dice: " + personaje.color_texto() + mensaje +' ' + finl) |
122 |
|
|
123 |
|
|
124 |
def susurra_personaje(self, personaje, mensaje): |
def susurra_personaje(self, personaje, mensaje): |
125 |
if isinstance(personaje, PersonajeJugador): |
if isinstance(personaje, PersonajeJugador): |
126 |
self.conn().send(personaje.id + " susurra: " + personaje.color_texto() + mensaje + finl) |
self.conn().send(personaje.id + " susurra: " + personaje.color_texto() + mensaje + finl) |
127 |
else: |
else: |
128 |
self.conn().send(personaje.nombre + " susurra: " + personaje.color_texto() + mensaje + finl) |
self.conn().send(personaje.nombre + " susurra: " + personaje.color_texto() + mensaje + finl) |
129 |
|
|
130 |
|
|
131 |
def grita_personaje(self, personaje, mensaje): |
def grita_personaje(self, personaje, mensaje): |
132 |
if self.__personaje.silencio == "no": |
if self.__personaje.silencio == "no": |
133 |
if isinstance(personaje, PersonajeJugador): |
if isinstance(personaje, PersonajeJugador): |
134 |
self.conn().send("\n" + color(35) + personaje.id + " grita: " + personaje.color_texto() + mensaje + finl) |
self.conn().send("\n" + color(35) + personaje.id + " grita: " + personaje.color_texto() + mensaje + finl) |
135 |
else: |
else: |
136 |
self.conn().send("\n" + color(35) + personaje.nombre + " grita: " + personaje.color_texto() + mensaje + finl) |
self.conn().send("\n" + color(35) + personaje.nombre + " grita: " + personaje.color_texto() + mensaje + finl) |
137 |
|
|
138 |
|
|
139 |
def actua_personaje(self, personaje, accion): |
def actua_personaje(self, personaje, accion): |
140 |
if self.__personaje.silencio == "no": |
if self.__personaje.silencio == "no": |
141 |
if isinstance(personaje, PersonajeJugador): |
if isinstance(personaje, PersonajeJugador): |
142 |
self.conn().send(personaje.id + " " + accion) |
self.conn().send(personaje.id + " " + accion) |
143 |
else: |
else: |
144 |
self.conn().send(personaje.nombre + " " + accion) |
self.conn().send(personaje.nombre + " " + accion) |
145 |
|
|
146 |
|
|
147 |
def actua_individual_personaje(self, personaje, accion): |
def actua_individual_personaje(self, personaje, accion): |
148 |
if isinstance(personaje, PersonajeJugador): |
if isinstance(personaje, PersonajeJugador): |
149 |
self.conn().send(personaje.color_texto() + personaje.id + ' ' + accion + finl) |
self.conn().send(personaje.color_texto() + personaje.id + ' ' + accion + finl) |
150 |
else: |
else: |
151 |
self.conn().send(personaje.color_texto() + personaje.nombre + ' ' + accion + finl) |
self.conn().send(personaje.color_texto() + personaje.nombre + ' ' + accion + finl) |
152 |
|
|
153 |
|
|
154 |
def actua_uno_mismo(self, accion): |
def actua_uno_mismo(self, accion): |
155 |
self.conn().send(accion) |
self.conn().send(accion) |
156 |
|
|
157 |
|
|
158 |
def actua_global_personaje(self, personaje, accion): |
def actua_global_personaje(self, personaje, accion): |
159 |
if self.__personaje.silencio == "no": |
if self.__personaje.silencio == "no": |
160 |
if isinstance(personaje, PersonajeJugador): |
if isinstance(personaje, PersonajeJugador): |
161 |
self.conn().send(color(35) + personaje.id + " " + accion + finl) |
self.conn().send(color(35) + personaje.id + " " + accion + finl) |
162 |
else: |
else: |
163 |
self.conn().send(color(35) + personaje.nombre + " " + accion + finl) |
self.conn().send(color(35) + personaje.nombre + " " + accion + finl) |
164 |
|
|
165 |
|
|
166 |
def suceso_entorno(self, suceso): |
def suceso_entorno(self, suceso): |
167 |
if self.__personaje.silencio == "no": |
if self.__personaje.silencio == "no": |
168 |
self.conn().send('...'+ suceso + '...') |
self.conn().send('...'+ suceso + '...') |
169 |
|
|
170 |
|
|
171 |
def ataca_personaje(self, personaje, result): |
def ataca_personaje(self, personaje, result): |
172 |
# Llamar a la función correspondiente según estado |
# Llamar a la función correspondiente según estado |
173 |
nombre_func = "ataque_" + self.estado |
nombre_func = "ataque_" + self.estado |
174 |
if self.sub_estado != None: nombre_func += "_" + str(self.sub_estado) |
if self.sub_estado != None: nombre_func += "_" + str(self.sub_estado) |
175 |
|
|
176 |
func = getattr(self, nombre_func, None) |
func = getattr(self, nombre_func, None) |
177 |
if func == None: |
if func == None: |
178 |
((self.sub_estado != None and "_" + str(self.sub_estado)) or "") + \ |
((self.sub_estado != None and "_" + str(self.sub_estado)) or "") + \ |
179 |
((self.personaje != None and "(" + self.personaje.id + ")") or "") |
((self.personaje != None and "(" + self.personaje.id + ")") or "") |
180 |
else: |
else: |
181 |
func(personaje, result) |
func(personaje, result) |
182 |
|
|
183 |
|
|
184 |
def movimiento_automatico(self): |
def movimiento_automatico(self): |
185 |
self.conn().send("Te mueves siguiendo a " + self.__personaje.anterior.id) |
self.conn().send("Te mueves siguiendo a " + self.__personaje.anterior.id) |
186 |
self.lanzar_tirada_percep_sala() |
self.lanzar_tirada_percep_sala() |
187 |
self.cmd_mirar() |
self.cmd_mirar() |
188 |
|
|
189 |
if self.__personaje.salas_visitadas.get(self.__personaje.sala.id) != 'si': |
if self.__personaje.salas_visitadas.get(self.__personaje.sala.id) != 'si': |
190 |
self.conn().send("Es la primera vez que estás aquí...") |
self.conn().send("Es la primera vez que estás aquí...") |
191 |
self.__personaje.salas_visitadas.update({self.__personaje.sala.id:'si'}) |
self.__personaje.salas_visitadas.update({self.__personaje.sala.id:'si'}) |
192 |
#Ganamos un punto de experiencia (hay que premiar la exploración) |
#Ganamos un punto de experiencia (hay que premiar la exploración) |
193 |
self.__personaje.poner_experiencia(self.__personaje.experiencia + 1) |
self.__personaje.poner_experiencia(self.__personaje.experiencia + 1) |
194 |
|
|
195 |
|
|
196 |
# ------------------- |
# ------------------- |
197 |
# ESTADOS DEL DIALOGO |
# ESTADOS DEL DIALOGO |
198 |
# ------------------- |
# ------------------- |
199 |
|
|
200 |
def estado_0(self): |
def estado_0(self): |
201 |
self.poner_estado(0) |
self.poner_estado(0) |
202 |
self.conn().send(color(33)+'? ' + finl, 0) |
self.conn().send(color(33)+'? ' + finl, 0) |
203 |
|
|
204 |
|
|
205 |
def comando_0(self, cmd_list): |
def comando_0(self, cmd_list): |
206 |
""" |
""" |
207 |
Esta función se encarga de preparar el input introducido |
Esta función se encarga de preparar el input introducido |
208 |
en una serie de comandos independientes si procede. |
en una serie de comandos independientes si procede. |
209 |
""" |
""" |
210 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
211 |
accion = '' |
accion = '' |
212 |
args = [] |
args = [] |
213 |
self.ejecutar(accion, args) |
self.ejecutar(accion, args) |
214 |
else: |
else: |
215 |
acciones_temp = ' '.join(cmd_list) |
acciones_temp = ' '.join(cmd_list) |
216 |
acciones = acciones_temp.split('&&')[:] |
acciones = acciones_temp.split('&&')[:] |
217 |
for una_accion in acciones: |
for una_accion in acciones: |
218 |
una_accion = una_accion.split() |
una_accion = una_accion.split() |
219 |
accion = una_accion[0] |
accion = una_accion[0] |
220 |
try: |
try: |
221 |
args = una_accion[1:] |
args = una_accion[1:] |
222 |
except: |
except: |
223 |
args = [] |
args = [] |
224 |
|
|
225 |
self.ejecutar(accion, args) |
self.ejecutar(accion, args) |
226 |
|
|
227 |
|
|
228 |
def tick_0(self, tick_ahora, tick_anterior): |
def tick_0(self, tick_ahora, tick_anterior): |
229 |
"""Durante el dialogo normal, los ticks del reloj se usan para ir 'cantando' |
"""Durante el dialogo normal, los ticks del reloj se usan para ir 'cantando' |
230 |
el tiempo, como los serenos. |
el tiempo, como los serenos. |
231 |
""" |
""" |
232 |
if tick_ahora.hora() != tick_anterior.hora(): |
if tick_ahora.hora() != tick_anterior.hora(): |
233 |
self.conn().send(color(35) + "El tiempo pasa. Son las %d horas (%s)." % |
self.conn().send(color(35) + "El tiempo pasa. Son las %d horas (%s)." % |
234 |
(tick_ahora.hora(), tick_ahora.desc_seccion()) + finl) |
(tick_ahora.hora(), tick_ahora.desc_seccion()) + finl) |
235 |
|
|
236 |
|
|
237 |
def ataque_normal_0(self, personaje, result): |
def ataque_normal_0(self, personaje, result): |
238 |
# Al recibir un ataque, pasamos inmediantamente a estado combate. |
# Al recibir un ataque, pasamos inmediantamente a estado combate. |
239 |
|
|
240 |
self.oponente = personaje |
self.oponente = personaje |
241 |
self.cbt_empieza_combate_defiendes() |
self.cbt_empieza_combate_defiendes() |
242 |
self.cbt_te_pegan(result) |
self.cbt_te_pegan(result) |
243 |
|
|
244 |
if (self.__personaje.estado == "muerto") or (self.oponente.estado == "muerto"): |
if (self.__personaje.estado == "muerto") or (self.oponente.estado == "muerto"): |
245 |
self.cbt_termina_combate() |
self.cbt_termina_combate() |
246 |
self.estado_0() |
self.estado_0() |
247 |
else: |
else: |
248 |
# Al poner un crono de 3 segundos, el combate funciona como |
# Al poner un crono de 3 segundos, el combate funciona como |
249 |
# una sucesion de golpes alternados cada 3 segundos. |
# una sucesion de golpes alternados cada 3 segundos. |
250 |
self.lanzar_crono(3) |
self.lanzar_crono(3) |
251 |
self.estado_combate_1() |
self.estado_combate_1() |
252 |
|
|
253 |
|
|
254 |
def estado_1(self): |
def estado_1(self): |
255 |
self.padre().desconectar() |
self.padre().desconectar() |
256 |
|
|
257 |
|
|
258 |
# -------------------- |
# -------------------- |
259 |
# "PARSER" DE COMANDOS |
# "PARSER" DE COMANDOS |
260 |
# -------------------- |
# -------------------- |
261 |
|
|
262 |
def ejecutar(self, accion, args): |
def ejecutar(self, accion, args): |
263 |
|
|
264 |
#Debido a la necesidad de loggear la actividad |
#Debido a la necesidad de loggear la actividad |
265 |
#se escribe tanto en pantalla como en el fichero de log |
#se escribe tanto en pantalla como en el fichero de log |
266 |
#la orden dada. |
#la orden dada. |
267 |
comando_dado = ' '.join([self.__personaje.nombre+' ejecuta: ',accion,' '.join(args)]) |
comando_dado = ' '.join([self.__personaje.nombre+' ejecuta: ',accion,' '.join(args)]) |
268 |
escribir(comando_dado) |
escribir(comando_dado) |
269 |
|
|
270 |
es_salida = 0 |
es_salida = 0 |
271 |
|
|
272 |
# Primero se ve si el comando es en realidad una de las |
# Primero se ve si el comando es en realidad una de las |
273 |
# posibles direcciones. Notar que la direccion "otro" no aparece en |
# posibles direcciones. Notar que la direccion "otro" no aparece en |
274 |
# esta lista (si alguna sala tiene una salida en esta direccion, hay |
# esta lista (si alguna sala tiene una salida en esta direccion, hay |
275 |
# que usar el id de la salida para moverse a ella). |
# que usar el id de la salida para moverse a ella). |
276 |
|
|
277 |
if accion in DialogoNormal.COMANDOS_DIRECCIONES: |
if accion in DialogoNormal.COMANDOS_DIRECCIONES: |
278 |
es_salida = 1 |
es_salida = 1 |
279 |
direccion = accion[1:] |
direccion = accion[1:] |
280 |
elif accion in DialogoNormal.COMANDOS_ABREV_DIR.keys(): |
elif accion in DialogoNormal.COMANDOS_ABREV_DIR.keys(): |
281 |
es_salida = 1 |
es_salida = 1 |
282 |
direccion = DialogoNormal.COMANDOS_ABREV_DIR[accion][1:] |
direccion = DialogoNormal.COMANDOS_ABREV_DIR[accion][1:] |
283 |
|
|
284 |
if es_salida == 1: |
if es_salida == 1: |
285 |
encontrado = 0 |
encontrado = 0 |
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.__tirada_percep_sala >= salida["dificultad"]: |
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 |
293 |
#nos vamos a ella. De otra forma, Minë te presenta todas, una por una |
#nos vamos a ella. De otra forma, Minë te presenta todas, una por una |
294 |
#y te deja en la última del búcle |
#y te deja en la última del búcle |
295 |
break |
break |
296 |
|
|
297 |
if encontrado == 0: |
if encontrado == 0: |
298 |
self.conn().send("No puedes ir por ahi.") |
self.conn().send("No puedes ir por ahi.") |
299 |
|
|
300 |
self.estado_0() |
self.estado_0() |
301 |
|
|
302 |
# Si no, ver si es el id de una de las salidas. |
# Si no, ver si es el id de una de las salidas. |
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.__tirada_percep_sala >= salida["dificultad"]: |
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() |
310 |
|
|
311 |
# Si no, ver si es un comando. En ese caso, llamar a la función |
# Si no, ver si es un comando. En ese caso, llamar a la función |
312 |
# especializada en ejecutar cada comando. |
# especializada en ejecutar cada comando. |
313 |
if es_salida == 0: |
if es_salida == 0: |
314 |
|
|
315 |
#Comprobamos que un jugador normal no intenta ejecutar una acción de Maia |
#Comprobamos que un jugador normal no intenta ejecutar una acción de Maia |
316 |
if accion in DialogoNormal.COMANDOS_MAIAR and self.__personaje.esMaia() == 0: |
if accion in DialogoNormal.COMANDOS_MAIAR and self.__personaje.esMaia() == 0: |
317 |
self.conn().send("Error, comando no reconocido. Escribe '+?' y pulsa ENTER") |
self.conn().send("Error, comando no reconocido. Escribe '+?' y pulsa ENTER") |
318 |
self.conn().send("para una lista de comandos.") |
self.conn().send("para una lista de comandos.") |
319 |
self.estado_0() |
self.estado_0() |
320 |
|
|
321 |
#Miramos cada acción por separado. |
#Miramos cada acción por separado. |
322 |
|
|
323 |
elif accion == "+decir": |
elif accion == "+decir": |
324 |
self.cmd_hablar_pnj("decir", args) |
self.cmd_hablar_pnj("decir", args) |
325 |
self.estado_0() |
self.estado_0() |
326 |
|
|
327 |
elif accion == "+preguntar" or accion == "+p": |
elif accion == "+preguntar" or accion == "+p": |
328 |
self.cmd_hablar_pnj("preguntar", args) |
self.cmd_hablar_pnj("preguntar", args) |
329 |
self.estado_0() |
self.estado_0() |
330 |
|
|
331 |
elif accion == "+recapitular" or accion == "+recap": |
elif accion == "+recapitular" or accion == "+recap": |
332 |
self.cmd_recapitular(args) |
self.cmd_recapitular(args) |
333 |
self.estado_0() |
self.estado_0() |
334 |
|
|
335 |
elif accion == "+creditos": |
elif accion == "+creditos": |
336 |
for linea in creditos.splitlines(): |
for linea in creditos.splitlines(): |
337 |
self.conn().send(linea) |
self.conn().send(linea) |
338 |
self.estado_0() |
self.estado_0() |
339 |
|
|
340 |
elif accion == "+sus" or accion == "+susurrar": |
elif accion == "+sus" or accion == "+susurrar": |
341 |
try: |
try: |
342 |
oyente = args[0] |
oyente = args[0] |
343 |
mensaje = " ".join(args[1:]) |
mensaje = " ".join(args[1:]) |
344 |
self.cmd_susurrar(oyente, mensaje, idioma=self.__personaje.idioma_base) |
self.cmd_susurrar(oyente, mensaje, idioma=self.__personaje.idioma_base) |
345 |
except: |
except: |
346 |
self.conn().send('Tienes que decir algo a alguien') |
self.conn().send('Tienes que decir algo a alguien') |
347 |
self.estado_0() |
self.estado_0() |
348 |
self.estado_0() |
self.estado_0() |
349 |
|
|
350 |
elif accion == "+susq" or accion == "+susurrarq": |
elif accion == "+susq" or accion == "+susurrarq": |
351 |
try: |
try: |
352 |
oyente = args[0] |
oyente = args[0] |
353 |
mensaje = " ".join(args[1:]) |
mensaje = " ".join(args[1:]) |
354 |
self.cmd_susurrar(oyente, mensaje, idioma=Idioma_quenya) |
self.cmd_susurrar(oyente, mensaje, idioma=Idioma_quenya) |
355 |
except: |
except: |
356 |
self.conn().send('Tienes que decir algo a alguien') |
self.conn().send('Tienes que decir algo a alguien') |
357 |
self.estado_0() |
self.estado_0() |
358 |
self.estado_0() |
self.estado_0() |
359 |
|
|
360 |
elif accion == "+suse" or accion == "+susurrare": |
elif accion == "+suse" or accion == "+susurrare": |
361 |
try: |
try: |
362 |
oyente = args[0] |
oyente = args[0] |
363 |
mensaje = " ".join(args[1:]) |
mensaje = " ".join(args[1:]) |
364 |
self.cmd_susurrar(oyente, mensaje, idioma=Idioma_enano) |
self.cmd_susurrar(oyente, mensaje, idioma=Idioma_enano) |
365 |
except: |
except: |
366 |
self.conn().send('Tienes que decir algo a alguien') |
self.conn().send('Tienes que decir algo a alguien') |
367 |
self.estado_0() |
self.estado_0() |
368 |
self.estado_0() |
self.estado_0() |
369 |
|
|
370 |
elif accion == "+suso" or accion == "+susurraro": |
elif accion == "+suso" or accion == "+susurraro": |
371 |
try: |
try: |
372 |
oyente = args[0] |
oyente = args[0] |
373 |
mensaje = " ".join(args[1:]) |
mensaje = " ".join(args[1:]) |
374 |
self.cmd_susurrar(oyente, mensaje, idioma=Idioma_orco) |
self.cmd_susurrar(oyente, mensaje, idioma=Idioma_orco) |
375 |
except: |
except: |
376 |
self.conn().send('Tienes que decir algo a alguien') |
self.conn().send('Tienes que decir algo a alguien') |
377 |
self.estado_0() |
self.estado_0() |
378 |
self.estado_0() |
self.estado_0() |
379 |
|
|
380 |
elif accion == "+h" or accion == "+hablar": |
elif accion == "+h" or accion == "+hablar": |
381 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
382 |
self.cmd_hablar(mensaje, idioma=Idioma_oestron) |
self.cmd_hablar(mensaje, idioma=Idioma_oestron) |
383 |
self.estado_0() |
self.estado_0() |
384 |
|
|
385 |
elif accion == "+hq" or accion == "+hablarq": |
elif accion == "+hq" or accion == "+hablarq": |
386 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
387 |
self.cmd_hablar(mensaje, idioma=Idioma_quenya) |
self.cmd_hablar(mensaje, idioma=Idioma_quenya) |
388 |
self.estado_0() |
self.estado_0() |
389 |
|
|
390 |
elif accion == "+he" or accion == "+hablare": |
elif accion == "+he" or accion == "+hablare": |
391 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
392 |
self.cmd_hablar(mensaje, idioma=Idioma_enano) |
self.cmd_hablar(mensaje, idioma=Idioma_enano) |
393 |
self.estado_0() |
self.estado_0() |
394 |
|
|
395 |
elif accion == "+ho" or accion == "+hablaro": |
elif accion == "+ho" or accion == "+hablaro": |
396 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
397 |
self.cmd_hablar(mensaje, idioma=Idioma_orco) |
self.cmd_hablar(mensaje, idioma=Idioma_orco) |
398 |
self.estado_0() |
self.estado_0() |
399 |
|
|
400 |
elif accion == "+g" or accion == "+gritar": |
elif accion == "+g" or accion == "+gritar": |
401 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
402 |
self.cmd_gritar(mensaje) |
self.cmd_gritar(mensaje) |
403 |
self.estado_0() |
self.estado_0() |
404 |
|
|
405 |
elif accion == "+gq" or accion == "+gritarq": |
elif accion == "+gq" or accion == "+gritarq": |
406 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
407 |
self.cmd_gritar(mensaje, idioma=Idioma_quenya) |
self.cmd_gritar(mensaje, idioma=Idioma_quenya) |
408 |
self.estado_0() |
self.estado_0() |
409 |
|
|
410 |
elif accion == "+ge" or accion == "+gritare": |
elif accion == "+ge" or accion == "+gritare": |
411 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
412 |
self.cmd_gritar(mensaje, idioma=Idioma_enano) |
self.cmd_gritar(mensaje, idioma=Idioma_enano) |
413 |
self.estado_0() |
self.estado_0() |
414 |
|
|
415 |
elif accion == "+go" or accion == "+gritaro": |
elif accion == "+go" or accion == "+gritaro": |
416 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
417 |
self.cmd_gritar(mensaje, idioma=Idioma_orco) |
self.cmd_gritar(mensaje, idioma=Idioma_orco) |
418 |
self.estado_0() |
self.estado_0() |
419 |
|
|
420 |
elif accion == "+est" or accion == "+estadisticas": |
elif accion == "+est" or accion == "+estadisticas": |
421 |
self.cmd_estadisticas() |
self.cmd_estadisticas() |
422 |
self.estado_0() |
self.estado_0() |
423 |
|
|
424 |
elif accion == "+m" or accion == "+mirar": |
elif accion == "+m" or accion == "+mirar": |
425 |
self.cmd_mirar() |
self.cmd_mirar() |
426 |
self.estado_0() |
self.estado_0() |
427 |
|
|
428 |
elif accion == "+mr": |
elif accion == "+mr": |
429 |
self.cmd_mirar(resumen=1) |
self.cmd_mirar(resumen=1) |
430 |
self.estado_0() |
self.estado_0() |
431 |
|
|
432 |
elif accion == "+mochila" or accion == "+mo": |
elif accion == "+mochila" or accion == "+mo": |
433 |
self.cmd_mochila() |
self.cmd_mochila() |
434 |
self.estado_0() |
self.estado_0() |
435 |
|
|
436 |
elif accion == "+silencio": |
elif accion == "+silencio": |
437 |
self.cmd_silencio() |
self.cmd_silencio() |
438 |
self.estado_0() |
self.estado_0() |
439 |
|
|
440 |
elif accion == "+idioma": |
elif accion == "+idioma": |
441 |
nombre_idioma_base = (len(args) > 0 and args[0]) or "" |
nombre_idioma_base = (len(args) > 0 and args[0]) or "" |
442 |
self.cmd_idioma(nombre_idioma_base) |
self.cmd_idioma(nombre_idioma_base) |
443 |
self.estado_0() |
self.estado_0() |
444 |
|
|
445 |
elif accion == "+c" or accion == "+coger": |
elif accion == "+c" or accion == "+coger": |
446 |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
447 |
self.parsear_ident_objeto(args, "coger") |
self.parsear_ident_objeto(args, "coger") |
448 |
if ok: |
if ok: |
449 |
self.cmd_coger(id_objeto, cantidad, n_orden, n_instancia) |
self.cmd_coger(id_objeto, cantidad, n_orden, n_instancia) |
450 |
self.estado_0() |
self.estado_0() |
451 |
|
|
452 |
#%% try: |
#%% try: |
453 |
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
454 |
#%% cantidad = int((len(args) > 1 and args[1])) or 1 |
#%% cantidad = int((len(args) > 1 and args[1])) or 1 |
455 |
#%% if cantidad > 50: |
#%% if cantidad > 50: |
456 |
#%% cantidad = 50 |
#%% cantidad = 50 |
457 |
#%% self.conn().send("No se permite coger más de 50 objetos por vez.") |
#%% self.conn().send("No se permite coger más de 50 objetos por vez.") |
458 |
#%% self.cmd_coger(nombre_objeto,cantidad) |
#%% self.cmd_coger(nombre_objeto,cantidad) |
459 |
#%% self.estado_0() |
#%% self.estado_0() |
460 |
#%% except: |
#%% except: |
461 |
#%% self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
#%% self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
462 |
#%% self.estado_0() |
#%% self.estado_0() |
463 |
|
|
464 |
elif accion == "+d" or accion == "+dejar": |
elif accion == "+d" or accion == "+dejar": |
465 |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
466 |
self.parsear_ident_objeto(args, "dejar") |
self.parsear_ident_objeto(args, "dejar") |
467 |
if ok: |
if ok: |
468 |
self.cmd_dejar(id_objeto, cantidad, n_orden, n_instancia) |
self.cmd_dejar(id_objeto, cantidad, n_orden, n_instancia) |
469 |
|
|
470 |
self.estado_0() |
self.estado_0() |
471 |
|
|
472 |
elif accion == "+dar": |
elif accion == "+dar": |
473 |
(id_receptor, id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
(id_receptor, id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
474 |
self.parsear_ident_objeto(args, "dar") |
self.parsear_ident_objeto(args, "dar") |
475 |
if ok: |
if ok: |
476 |
self.cmd_dar(id_receptor, id_objeto, cantidad, n_orden, n_instancia) |
self.cmd_dar(id_receptor, id_objeto, cantidad, n_orden, n_instancia) |
477 |
|
|
478 |
self.estado_0() |
self.estado_0() |
479 |
|
|
480 |
elif accion == "+confiar": |
elif accion == "+confiar": |
481 |
id_personaje_de_confianza = args[0] |
id_personaje_de_confianza = args[0] |
482 |
self.__personaje.ids_amigos.update({id_personaje_de_confianza:1}) |
self.__personaje.ids_amigos.update({id_personaje_de_confianza:1}) |
483 |
self.conn().send("A partir de ahora confías en "+id_personaje_de_confianza) |
self.conn().send("A partir de ahora confías en "+id_personaje_de_confianza) |
484 |
|
|
485 |
self.estado_0() |
self.estado_0() |
486 |
|
|
487 |
elif accion == "+noconfiar": |
elif accion == "+noconfiar": |
488 |
id_personaje_de_no_confianza = args[0] |
id_personaje_de_no_confianza = args[0] |
489 |
self.__personaje.ids_amigos.update({id_personaje_de_no_confianza:0}) |
self.__personaje.ids_amigos.update({id_personaje_de_no_confianza:0}) |
490 |
self.conn().send("A partir de ahora no confías en "+id_personaje_de_no_confianza) |
self.conn().send("A partir de ahora no confías en "+id_personaje_de_no_confianza) |
491 |
|
|
492 |
self.estado_0() |
self.estado_0() |
493 |
|
|
494 |
elif accion == "+amigos": |
elif accion == "+amigos": |
495 |
self.cmd_listar_amigos() |
self.cmd_listar_amigos() |
496 |
self.estado_0() |
self.estado_0() |
497 |
|
|
498 |
|
|
499 |
elif accion == "+esc" or accion == "+esconder": |
elif accion == "+esc" or accion == "+esconder": |
500 |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
501 |
self.parsear_ident_objeto(args, "esconder") |
self.parsear_ident_objeto(args, "esconder") |
502 |
if ok: |
if ok: |
503 |
dificultad = self.__personaje.generar_dificultad("inteligencia", 0) |
dificultad = self.__personaje.generar_dificultad("inteligencia", 0) |
504 |
self.cmd_dejar(id_objeto, cantidad, n_orden, n_instancia, dificultad) |
self.cmd_dejar(id_objeto, cantidad, n_orden, n_instancia, dificultad) |
505 |
|
|
506 |
self.estado_0() |
self.estado_0() |
507 |
|
|
508 |
#%% try: |
#%% try: |
509 |
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
510 |
#%% cantidad = int((len(args) > 1 and args[1])) or 1 |
#%% cantidad = int((len(args) > 1 and args[1])) or 1 |
511 |
#%% self.cmd_dejar(nombre_objeto, cantidad, accion = "escondido", dif=self.__personaje.atrib["inteligencia"]) |
#%% self.cmd_dejar(nombre_objeto, cantidad, accion = "escondido", dif=self.__personaje.atrib["inteligencia"]) |
512 |
#%% self.estado_0() |
#%% self.estado_0() |
513 |
#%% except: |
#%% except: |
514 |
#%% self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
#%% self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
515 |
#%% self.estado_0() |
#%% self.estado_0() |
516 |
|
|
517 |
elif accion == "+ex" or accion == "+examinar": |
elif accion == "+ex" or accion == "+examinar": |
518 |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
519 |
self.parsear_ident_objeto(args, "examinar") |
self.parsear_ident_objeto(args, "examinar") |
520 |
if ok: |
if ok: |
521 |
if cantidad > 1: |
if cantidad > 1: |
522 |
self.conn().send("El comando no es correcto, consulta la ayuda con +?") |
self.conn().send("El comando no es correcto, consulta la ayuda con +?") |
523 |
else: |
else: |
524 |
self.cmd_examinar(id_objeto, n_orden, n_instancia) |
self.cmd_examinar(id_objeto, n_orden, n_instancia) |
525 |
|
|
526 |
self.estado_0() |
self.estado_0() |
527 |
|
|
528 |
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
529 |
#%% posicion = int((len(args) > 1 and args[1])) or 1 |
#%% posicion = int((len(args) > 1 and args[1])) or 1 |
530 |
#%% if posicion < 1: posicion = 1 |
#%% if posicion < 1: posicion = 1 |
531 |
#%% self.cmd_examinar(nombre_objeto,posicion) |
#%% self.cmd_examinar(nombre_objeto,posicion) |
532 |
#%% self.estado_0() |
#%% self.estado_0() |
533 |
|
|
534 |
|
|
535 |
elif accion == "+u" or accion == "+usar": |
elif accion == "+u" or accion == "+usar": |
536 |
nombre_objeto = (len(args) > 0 and args[0]) or "" |
nombre_objeto = (len(args) > 0 and args[0]) or "" |
537 |
self.cmd_usar(nombre_objeto) |
self.cmd_usar(nombre_objeto) |
538 |
self.estado_0() |
self.estado_0() |
539 |
|
|
540 |
elif accion == "+ob" or accion == "+observar": |
elif accion == "+ob" or accion == "+observar": |
541 |
nombre_oponente = (len(args) > 0 and args[0]) or "" |
nombre_oponente = (len(args) > 0 and args[0]) or "" |
542 |
self.cmd_observar(nombre_oponente) |
self.cmd_observar(nombre_oponente) |
543 |
self.estado_0() |
self.estado_0() |
544 |
|
|
545 |
elif accion == "+a" or accion == "+atacar": |
elif accion == "+a" or accion == "+atacar": |
546 |
self.conn().send("Comando deshabilitado temporalmente. Lo sentimos.") |
self.conn().send("Comando deshabilitado temporalmente. Lo sentimos.") |
547 |
self.estado_0() |
self.estado_0() |
548 |
|
|
549 |
elif accion == "+sal" or accion == "+salir" or accion == "/q" or accion == "+q": |
elif accion == "+sal" or accion == "+salir" or accion == "/q" or accion == "+q": |
550 |
self.estado_1() |
self.estado_1() |
551 |
|
|
552 |
elif accion == "+": |
elif accion == "+": |
553 |
self.estado_0() |
self.estado_0() |
554 |
|
|
555 |
elif accion == "+help" or accion == "+ayuda" or accion == "+?": |
elif accion == "+help" or accion == "+ayuda" or accion == "+?": |
556 |
self.cmd_ayuda(args) |
self.cmd_ayuda(args) |
557 |
self.estado_0() |
self.estado_0() |
558 |
|
|
559 |
elif accion == "+doc": |
elif accion == "+doc": |
560 |
self.cmd_doc(args) |
self.cmd_doc(args) |
561 |
self.estado_0() |
self.estado_0() |
562 |
|
|
563 |
elif accion == "+actuar" or accion == "+act": |
elif accion == "+actuar" or accion == "+act": |
564 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
565 |
self.cmd_actuar(mensaje) |
self.cmd_actuar(mensaje) |
566 |
self.estado_0() |
self.estado_0() |
567 |
|
|
568 |
elif accion == "+entorno" or accion == "+ent": |
elif accion == "+entorno" or accion == "+ent": |
569 |
mensaje = " ".join(args) |
mensaje = " ".join(args) |
570 |
self.cmd_entorno(mensaje) |
self.cmd_entorno(mensaje) |
571 |
self.estado_0() |
self.estado_0() |
572 |
|
|
573 |
elif accion == "+listar": |
elif accion == "+listar": |
574 |
self.cmd_listar_personajes() |
self.cmd_listar_personajes() |
575 |
self.estado_0() |
self.estado_0() |
576 |
|
|
577 |
elif accion == "+localizar" or accion == "+loc": |
elif accion == "+localizar" or accion == "+loc": |
578 |
try: |
try: |
579 |
self.cmd_localizar(args[0]) |
self.cmd_localizar(args[0]) |
580 |
except: |
except: |
581 |
self.conn().send('Tienes que especificar un personaje para localizar') |
self.conn().send('Tienes que especificar un personaje para localizar') |
582 |
|
|
583 |
self.estado_0() |
self.estado_0() |
584 |
|
|
585 |
elif accion == "+seguir" or accion == "+seg": |
elif accion == "+seguir" or accion == "+seg": |
586 |
if len(args) == 0: |
if len(args) == 0: |
587 |
self.conn().send('Tienes que especificar un personaje para seguir') |
self.conn().send('Tienes que especificar un personaje para seguir') |
588 |
else: |
else: |
589 |
self.cmd_seguir(args[0]) |
self.cmd_seguir(args[0]) |
590 |
self.estado_0() |
self.estado_0() |
591 |
|
|
592 |
elif accion == "+noseguir" or accion == "+noseg": |
elif accion == "+noseguir" or accion == "+noseg": |
593 |
self.cmd_noseguir() |
self.cmd_noseguir() |
594 |
self.estado_0() |
self.estado_0() |
595 |
|
|
596 |
elif accion == "+ip": |
elif accion == "+ip": |
597 |
self.cmd_ip() |
self.cmd_ip() |
598 |
self.estado_0() |
self.estado_0() |
599 |
|
|
600 |
elif accion == "+area": |
elif accion == "+area": |
601 |
self.cmd_area() |
self.cmd_area() |
602 |
self.estado_0() |
self.estado_0() |
603 |
|
|
604 |
elif accion == "+reloj": |
elif accion == "+reloj": |
605 |
self.cmd_reloj() |
self.cmd_reloj() |
606 |
self.estado_0() |
self.estado_0() |
607 |
|
|
608 |
elif accion == "": |
elif accion == "": |
609 |
self.estado_0() |
self.estado_0() |
610 |
|
|
611 |
elif accion[0] == "+" or accion == "+": |
elif accion[0] == "+" or accion == "+": |
612 |
self.conn().send("Error, comando no reconocido. Escribe '+?' y pulsa ENTER") |
self.conn().send("Error, comando no reconocido. Escribe '+?' y pulsa ENTER") |
613 |
self.conn().send("para una lista de comandos.") |
self.conn().send("para una lista de comandos.") |
614 |
self.estado_0() |
self.estado_0() |
615 |
|
|
616 |
else: |
else: |
617 |
mensaje = accion + ' ' + " ".join(args) |
mensaje = accion + ' ' + " ".join(args) |
618 |
self.cmd_hablar(mensaje, idioma=self.__personaje.idioma_base) |
self.cmd_hablar(mensaje, idioma=self.__personaje.idioma_base) |
619 |
self.estado_0() |
self.estado_0() |
620 |
|
|
621 |
|
|
622 |
def parsear_ident_objeto(self, args, comando): |
def parsear_ident_objeto(self, args, comando): |
623 |
"""Pequeña funcion utilitaria para parsear la secuencia |
"""Pequeña funcion utilitaria para parsear la secuencia |
624 |
[<id_receptor>] [<cantidad>] id_objeto [<n_orden>] [<n_instancia>]. |
[<id_receptor>] [<cantidad>] id_objeto [<n_orden>] [<n_instancia>]. |
625 |
|
|
626 |
cantidad, n_orden y n_instancia se reconocen porque son sólo dígitos. |
cantidad, n_orden y n_instancia se reconocen porque son sólo dígitos. |
627 |
id_objeto puede tener más de una palabra. |
id_objeto puede tener más de una palabra. |
628 |
receptor sólo puede tener una palabra. |
receptor sólo puede tener una palabra. |
629 |
""" |
""" |
630 |
cantidad = 1 |
cantidad = 1 |
631 |
id_objeto = "" |
id_objeto = "" |
632 |
id_receptor = "" |
id_receptor = "" |
633 |
n_orden = 1 |
n_orden = 1 |
634 |
n_instancia = 1 |
n_instancia = 1 |
635 |
ok = 0 |
ok = 0 |
636 |
|
|
637 |
i = 0 |
i = 0 |
638 |
|
|
639 |
if comando == 'dar' and i < len(args) and not args[i].isdigit(): |
if comando == 'dar' and i < len(args) and not args[i].isdigit(): |
640 |
id_receptor = args[i] |
id_receptor = args[i] |
641 |
i = i + 1 |
i = i + 1 |
642 |
|
|
643 |
if i < len(args) and args[i].isdigit(): |
if i < len(args) and args[i].isdigit(): |
644 |
cantidad = int(args[i]) |
cantidad = int(args[i]) |
645 |
i = i + 1 |
i = i + 1 |
646 |
|
|
647 |
while i < len(args) and not args[i].isdigit(): |
while i < len(args) and not args[i].isdigit(): |
648 |
if len(id_objeto) > 0: |
if len(id_objeto) > 0: |
649 |
id_objeto += " " |
id_objeto += " " |
650 |
id_objeto += args[i] |
id_objeto += args[i] |
651 |
i = i + 1 |
i = i + 1 |
652 |
|
|
653 |
if i < len(args): |
if i < len(args): |
654 |
n_orden = int(args[i]) |
n_orden = int(args[i]) |
655 |
i = i + 1 |
i = i + 1 |
656 |
|
|
657 |
if i < len(args): |
if i < len(args): |
658 |
n_instancia = int(args[i]) |
n_instancia = int(args[i]) |
659 |
i = i + 1 |
i = i + 1 |
660 |
|
|
661 |
if id_objeto == "": |
if id_objeto == "": |
662 |
self.conn().send("Tienes que indicar qué objeto quieres " + comando + ".") |
self.conn().send("Tienes que indicar qué objeto quieres " + comando + ".") |
663 |
elif cantidad < 1: |
elif cantidad < 1: |
664 |
self.conn().send("La cantidad tiene que ser igual o mayor que 1.") |
self.conn().send("La cantidad tiene que ser igual o mayor que 1.") |
665 |
elif n_orden < 1: |
elif n_orden < 1: |
666 |
self.conn().send("El número de orden tiene que ser igual o mayor que 1.") |
self.conn().send("El número de orden tiene que ser igual o mayor que 1.") |
667 |
elif n_instancia < 1: |
elif n_instancia < 1: |
668 |
self.conn().send("El número de objeto tiene que ser igual o mayor que 1.") |
self.conn().send("El número de objeto tiene que ser igual o mayor que 1.") |
669 |
else: |
else: |
670 |
ok = 1 |
ok = 1 |
671 |
|
|
672 |
if comando == 'dar': |
if comando == 'dar': |
673 |
return (id_receptor, id_objeto, cantidad, n_orden, n_instancia, ok) |
return (id_receptor, id_objeto, cantidad, n_orden, n_instancia, ok) |
674 |
else: |
else: |
675 |
return (id_objeto, cantidad, n_orden, n_instancia, ok) |
return (id_objeto, cantidad, n_orden, n_instancia, ok) |
676 |
|
|
677 |
|
|
678 |
# --------------------- |
# --------------------- |
679 |
# EJECUCION DE COMANDOS |
# EJECUCION DE COMANDOS |
680 |
# --------------------- |
# --------------------- |
681 |
|
|
682 |
def cmd_doc(self,args): |
def cmd_doc(self,args): |
683 |
self.conn().send("\n"+color(32)+"--------- Documentación de Minë ---------\n"+finl) |
self.conn().send("\n"+color(32)+"--------- Documentación de Minë ---------\n"+finl) |
684 |
if len(args) > 0: |
if len(args) > 0: |
685 |
|
|
686 |
if args[0] == "instalacion" or args[0] == "inst": |
if args[0] == "instalacion" or args[0] == "inst": |
687 |
|
|
688 |
self.conn().send(ayuda.como_instalar_mine) |
self.conn().send(ayuda.como_instalar_mine) |
689 |
|
|
690 |
|
|
691 |
elif args[0] == "tolkien" or args[0] == "jrrt": |
elif args[0] == "tolkien" or args[0] == "jrrt": |
692 |
|
|
693 |
self.conn().send(ayuda.tolkien) |
self.conn().send(ayuda.tolkien) |
694 |
|
|
695 |
|
|
696 |
elif args[0] == "gpl" or args[0] == "gnu": |
elif args[0] == "gpl" or args[0] == "gnu": |
697 |
|
|
698 |
self.conn().send(ayuda.gpl) |
self.conn().send(ayuda.gpl) |
699 |
|
|
700 |
else: |
else: |
701 |
self.conn().send("Los documentos disponibles actualmente son:\n") |
self.conn().send("Los documentos disponibles actualmente son:\n") |
702 |
self.conn().send("[ instalacion | tolkien | gpl ]") |
self.conn().send("[ instalacion | tolkien | gpl ]") |
703 |
|
|
704 |
|
|
705 |
def cmd_ayuda(self,args): |
def cmd_ayuda(self,args): |
706 |
|
|
707 |
self.conn().send("\n"+color(32)+"------------------------ Ayuda de Minë ------------------------\n"+finl) |
self.conn().send("\n"+color(32)+"------------------------ Ayuda de Minë ------------------------\n"+finl) |
708 |
self.conn().send("Las letras en corchete y las letras tras el signo '/' indican") |
self.conn().send("Las letras en corchete y las letras tras el signo '/' indican") |
709 |
self.conn().send("una abreviatura alternativa válida para la orden\n") |
self.conn().send("una abreviatura alternativa válida para la orden\n") |
710 |
if len(args) > 0: |
if len(args) > 0: |
711 |
|
|
712 |
if args[0] == "movimiento": |
if args[0] == "movimiento": |
713 |
|
|
714 |
self.conn().send(color(33)+" Movimiento\n"+finl) |
self.conn().send(color(33)+" Movimiento\n"+finl) |
715 |
self.conn().send("Moverse a otra sala, hay tres posibilidades: ") |
self.conn().send("Moverse a otra sala, hay tres posibilidades: ") |
716 |
self.conn().send("- Direccion (" + color(31) + "+norte" + finl + ", " + |
self.conn().send("- Direccion (" + color(31) + "+norte" + finl + ", " + |
717 |
color(31) + "+sur" + finl + ", " + |
color(31) + "+sur" + finl + ", " + |
718 |
color(31) + "+este" + finl + ", ") |
color(31) + "+este" + finl + ", ") |
719 |
self.conn().send(" " + color(31) + "+oeste" + finl + ", " + |
self.conn().send(" " + color(31) + "+oeste" + finl + ", " + |
720 |
color(31) + "+noreste" + finl + ", " + |
color(31) + "+noreste" + finl + ", " + |
721 |
color(31) + "+noroeste" + finl + ", ") |
color(31) + "+noroeste" + finl + ", ") |
722 |
self.conn().send(" " + color(31) + "+sureste" + finl + ", " + |
self.conn().send(" " + color(31) + "+sureste" + finl + ", " + |
723 |
color(31) + "+suroeste" + finl + ", ") |
color(31) + "+suroeste" + finl + ", ") |
724 |
self.conn().send(" " + color(31) + "+arriba" + finl + ", " + |
self.conn().send(" " + color(31) + "+arriba" + finl + ", " + |
725 |
color(31) + "+abajo" + finl + ")") |
color(31) + "+abajo" + finl + ")") |
726 |
self.conn().send("- Abreviatura (" + color(31) + "+n" + finl + ", "+ |
self.conn().send("- Abreviatura (" + color(31) + "+n" + finl + ", "+ |
727 |
color(31) + "+s" + finl + ", " + |
color(31) + "+s" + finl + ", " + |
728 |
color(31) + "+e" + finl + ", " + |
color(31) + "+e" + finl + ", " + |
729 |
color(31) + "+o" + finl + ", ") |
color(31) + "+o" + finl + ", ") |
730 |
self.conn().send(" " + color(31) + "+ne" + finl + ", " + |
self.conn().send(" " + color(31) + "+ne" + finl + ", " + |
731 |
color(31) + "+no" + finl + ", " + |
color(31) + "+no" + finl + ", " + |
732 |
color(31) + "+se" + finl + ", ") |
color(31) + "+se" + finl + ", ") |
733 |
self.conn().send(" " + color(31) + "+so" + finl + ", " + |
self.conn().send(" " + color(31) + "+so" + finl + ", " + |
734 |
color(31) + "+ar" + finl + ", " + |
color(31) + "+ar" + finl + ", " + |
735 |
color(31) + "+ab" + finl + ")") |
color(31) + "+ab" + finl + ")") |
736 |
self.conn().send("- Palabra entre corchetes (" + color(31) + "+casa" + finl + ")") |
self.conn().send("- Palabra entre corchetes (" + color(31) + "+casa" + finl + ")") |
737 |
self.conn().send(" 'Hacia el sur ves una [casa] vieja'") |
self.conn().send(" 'Hacia el sur ves una [casa] vieja'") |
738 |
self.conn().send("") |
self.conn().send("") |
739 |
self.conn().send("Seguir a otro personaje para moverse con el") |
self.conn().send("Seguir a otro personaje para moverse con el") |
740 |
self.conn().send(" " + color(31) + "+[seg]uir <nombre>" + finl) |
self.conn().send(" " + color(31) + "+[seg]uir <nombre>" + finl) |
741 |
self.conn().send("Dejar de seguir a otro personaje") |
self.conn().send("Dejar de seguir a otro personaje") |
742 |
self.conn().send(" " + color(31) + "+[noseg]uir" + finl) |
self.conn().send(" " + color(31) + "+[noseg]uir" + finl) |
743 |
|
|
744 |
elif args[0] == "general": |
elif args[0] == "general": |
745 |
|
|
746 |
self.conn().send(color(33)+" General\n"+finl) |
self.conn().send(color(33)+" General\n"+finl) |
747 |
self.conn().send(" +[sal]ir :Salir del juego") |
self.conn().send(" +[sal]ir :Salir del juego") |
748 |
self.conn().send(" +doc :Documentos de Minë") |
self.conn().send(" +doc :Documentos de Minë") |
749 |
self.conn().send(" +ip :Dirección IP del cliente") |
self.conn().send(" +ip :Dirección IP del cliente") |
750 |
self.conn().send('') |
self.conn().send('') |
751 |
|
|
752 |
elif args[0] == "objetos": |
elif args[0] == "objetos": |
753 |
|
|
754 |
self.conn().send(color(33)+" Objetos\n"+finl) |
self.conn().send(color(33)+" Objetos\n"+finl) |
755 |
self.conn().send(" Coger un objeto de la sala y meterlo en la mochila:") |
self.conn().send(" Coger un objeto de la sala y meterlo en la mochila:") |
756 |
self.conn().send(color(31) + ' +[c]oger [<cantidad>] <id_objeto> [ <n_orden> [<n_unidad>] ]' + finl) |
self.conn().send(color(31) + ' +[c]oger [<cantidad>] <id_objeto> [ <n_orden> [<n_unidad>] ]' + finl) |
757 |
self.conn().send(" Dejar un objeto de la mochila en la sala:") |
self.conn().send(" Dejar un objeto de la mochila en la sala:") |
758 |
self.conn().send(color(31) + ' +[d]ejar [<cantidad>] <id_objeto> [ <n_orden> [<n_unidad>] ]' + finl) |
self.conn().send(color(31) + ' +[d]ejar [<cantidad>] <id_objeto> [ <n_orden> [<n_unidad>] ]' + finl) |
759 |
self.conn().send(" Esconder un objeto de la mochila en la sala:") |
self.conn().send(" Esconder un objeto de la mochila en la sala:") |
760 |
self.conn().send(color(31) + ' +[esc]onder [<cantidad>] <id_objeto> [ <n_orden> [<n_unidad>] ]' + finl) |
self.conn().send(color(31) + ' +[esc]onder [<cantidad>] <id_objeto> [ <n_orden> [<n_unidad>] ]' + finl) |
761 |
|
|
762 |
self.conn().send(" Dar un objeto a alguien en la sala:") |
self.conn().send(" Dar un objeto a alguien en la sala:") |
763 |
self.conn().send(color(31) + ' +dar <nombre> [<cantidad>] <id_objeto> [ <n_orden> [<n_unidad>] ]' + finl) |
self.conn().send(color(31) + ' +dar <nombre> [<cantidad>] <id_objeto> [ <n_orden> [<n_unidad>] ]' + finl) |
764 |
|
|
765 |
self.conn().send(" Mirar el contenido de la mochila:") |
self.conn().send(" Mirar el contenido de la mochila:") |
766 |
self.conn().send(color(31) + ' +[mo]chila' + finl) |
self.conn().send(color(31) + ' +[mo]chila' + finl) |
767 |
|
|
768 |
self.conn().send(" Examinar un objeto de la mochila:") |
self.conn().send(" Examinar un objeto de la mochila:") |
769 |
self.conn().send(color(31) + ' +[ex]aminar <nombre> [ <n_orden> [<n_instancia>] ]' + finl) |
self.conn().send(color(31) + ' +[ex]aminar <nombre> [ <n_orden> [<n_instancia>] ]' + finl) |
770 |
|
|
771 |
self.conn().send(" Usar un objeto que porta el personaje (test):") |
self.conn().send(" Usar un objeto que porta el personaje (test):") |
772 |
self.conn().send(color(31) + ' +[u]sar <nombre>' + finl) |
self.conn().send(color(31) + ' +[u]sar <nombre>' + finl) |
773 |
|
|
774 |
self.conn().send("") |
self.conn().send("") |
775 |
|
|
776 |
self.conn().send(" -> el identificador del objeto es la primera palabra de su nombre, o la") |
self.conn().send(" -> el identificador del objeto es la primera palabra de su nombre, o la") |
777 |
self.conn().send(" palabra que haya entre corchetes.") |
self.conn().send(" palabra que haya entre corchetes.") |
778 |
|
|
779 |
self.conn().send(" -> si en la sala hay varios objetos DIFERENTES pero con el mismo id,") |
self.conn().send(" -> si en la sala hay varios objetos DIFERENTES pero con el mismo id,") |
780 |
self.conn().send(" puedes indicar cual quieres con el parametro n_orden (1 el primero,") |
self.conn().send(" puedes indicar cual quieres con el parametro n_orden (1 el primero,") |
781 |
self.conn().send(" 2 el segundo...)") |
self.conn().send(" 2 el segundo...)") |
782 |
|
|
783 |
self.conn().send(" -> si en la sala hay varias unidades del MISMO objeto (la cantidad de") |
self.conn().send(" -> si en la sala hay varias unidades del MISMO objeto (la cantidad de") |
784 |
self.conn().send(" unidades se indica entre parentesis detras de la descripcion del objeto),") |
self.conn().send(" unidades se indica entre parentesis detras de la descripcion del objeto),") |
785 |
self.conn().send(" puedes indicar cual quieres con el parametro n_unidad.") |
self.conn().send(" puedes indicar cual quieres con el parametro n_unidad.") |
786 |
|
|
787 |
self.conn().send("") |
self.conn().send("") |
788 |
self.conn().send(" ej. si en la sala hay") |
self.conn().send(" ej. si en la sala hay") |
789 |
self.conn().send(" - una espada") |
self.conn().send(" - una espada") |
790 |
self.conn().send(" - una botella de [vino] (3)") |
self.conn().send(" - una botella de [vino] (3)") |
791 |
self.conn().send(" - una botella de [cerveza]") |
self.conn().send(" - una botella de [cerveza]") |
792 |
self.conn().send(" - una jarra de [cerveza] (5)") |
self.conn().send(" - una jarra de [cerveza] (5)") |
793 |
|
|
794 |
self.conn().send("") |
self.conn().send("") |
795 |
self.conn().send(" +coger espada -> coge una espada") |
self.conn().send(" +coger espada -> coge una espada") |
796 |
self.conn().send(" +coger 2 vino -> coge dos botellas de vino") |
self.conn().send(" +coger 2 vino -> coge dos botellas de vino") |
797 |
self.conn().send(" +coger cerveza 2 -> coge una jarra de cerveza") |
self.conn().send(" +coger cerveza 2 -> coge una jarra de cerveza") |
798 |
self.conn().send(" +coger cerveza 2 3 -> coge la tercera jarra de cerveza") |
self.conn().send(" +coger cerveza 2 3 -> coge la tercera jarra de cerveza") |
799 |
|
|
800 |
|
|
801 |
elif args[0] == "otros": |
elif args[0] == "otros": |
802 |
|
|
803 |
self.conn().send(color(33)+" Otros\n"+finl) |
self.conn().send(color(33)+" Otros\n"+finl) |
804 |
self.conn().send("Mostrar estadísticas de un personaje: " + |
self.conn().send("Mostrar estadísticas de un personaje: " + |
805 |
color(31) + '+[est]adisticas' + finl) |
color(31) + '+[est]adisticas' + finl) |
806 |
self.conn().send("Actuar en la sala: " + |
self.conn().send("Actuar en la sala: " + |
807 |
color(31) + '+[act]uar <texto>' + finl) |
color(31) + '+[act]uar <texto>' + finl) |
808 |
|
|
809 |
self.conn().send("Mirar la sala actual: " + |
self.conn().send("Mirar la sala actual: " + |
810 |
color(31) + '+[m]irar' + finl) |
color(31) + '+[m]irar' + finl) |
811 |
self.conn().send("Mirar la sala actual de forma resumida: " + |
self.conn().send("Mirar la sala actual de forma resumida: " + |
812 |
color(31) + '+mr' + finl) |
color(31) + '+mr' + finl) |
813 |
|
|
814 |
self.conn().send("Nombre del área en la que te encuentras: " + |
self.conn().send("Nombre del área en la que te encuentras: " + |
815 |
color(31) + '+area' + finl) |
color(31) + '+area' + finl) |
816 |
|
|
817 |
self.conn().send("Observar a un personaje: " + |
self.conn().send("Observar a un personaje: " + |
818 |
color(31) + '+[ob]servar <personaje>' +finl) |
color(31) + '+[ob]servar <personaje>' +finl) |
819 |
|
|
820 |
self.conn().send("Confiar en un personaje (necesario para recibir objetos): " + |
self.conn().send("Confiar en un personaje (necesario para recibir objetos): " + |
821 |
color(31) + '+confiar <personaje>' +finl) |
color(31) + '+confiar <personaje>' +finl) |
822 |
|
|
823 |
self.conn().send("Dejar de confiar en un personaje (rechazas propuestas personales): " + |
self.conn().send("Dejar de confiar en un personaje (rechazas propuestas personales): " + |
824 |
color(31) + '+noconfiar <personaje>' +finl) |
color(31) + '+noconfiar <personaje>' +finl) |
825 |
|
|
826 |
self.conn().send("Listas personas de confianza: " + |
self.conn().send("Listas personas de confianza: " + |
827 |
color(31) + '+amigos' +finl) |
color(31) + '+amigos' +finl) |
828 |
|
|
829 |
self.conn().send("Limitar el texto recibido sí/no: " + |
self.conn().send("Limitar el texto recibido sí/no: " + |
830 |
color(31) + '+silencio' + finl) |
color(31) + '+silencio' + finl) |
831 |
|
|
832 |
self.conn().send("Mostrar la fecha y hora en Minë: " + |
self.conn().send("Mostrar la fecha y hora en Minë: " + |
833 |
color(31) + '+reloj' + finl) |
color(31) + '+reloj' + finl) |
834 |
|
|
835 |
self.conn().send("Localizar a un personaje (Sólo Maiar): " + |
self.conn().send("Localizar a un personaje (Sólo Maiar): " + |
836 |
color(31) + '+[loc]alizar <nombre>' + finl) |
color(31) + '+[loc]alizar <nombre>' + finl) |
837 |
|
|
838 |
self.conn().send("Lista de jugadores de Minë (Sólo Maiar): " + |
self.conn().send("Lista de jugadores de Minë (Sólo Maiar): " + |
839 |
color(31) + '+listar' + finl) |
color(31) + '+listar' + finl) |
840 |
|
|
841 |
elif args[0] == "hablar": |
elif args[0] == "hablar": |
842 |
|
|
843 |
self.conn().send(color(33)+" Hablar\n"+finl) |
self.conn().send(color(33)+" Hablar\n"+finl) |
844 |
self.conn().send("Hablar en oestron en la sala actual: " + |
self.conn().send("Hablar en oestron en la sala actual: " + |
845 |
color(31) + '+[h]ablar <texto>' + finl) |
color(31) + '+[h]ablar <texto>' + finl) |
846 |
self.conn().send("en quenya: " + |
self.conn().send("en quenya: " + |
847 |
color(31) + '+hablarq/hq <texto>' + finl) |
color(31) + '+hablarq/hq <texto>' + finl) |
848 |
self.conn().send("en enano: " + |
self.conn().send("en enano: " + |
849 |
color(31) + '+hablare/he <texto>' + finl) |
color(31) + '+hablare/he <texto>' + finl) |
850 |
self.conn().send("en orco: " + |
self.conn().send("en orco: " + |
851 |
color(31) + '+hablaro/ho <texto>' + finl) |
color(31) + '+hablaro/ho <texto>' + finl) |
852 |
|
|
853 |
self.conn().send("Susurrar en oestron a alguien en la sala actual:") |
self.conn().send("Susurrar en oestron a alguien en la sala actual:") |
854 |
self.conn().send(color(31) + ' +[sus]urrar <nombre> <texto>' + finl) |
self.conn().send(color(31) + ' +[sus]urrar <nombre> <texto>' + finl) |
855 |
self.conn().send("en quenya:") |
self.conn().send("en quenya:") |
856 |
self.conn().send(color(31) + ' +susurrarq/susq <nombre> <texto>' + finl) |
self.conn().send(color(31) + ' +susurrarq/susq <nombre> <texto>' + finl) |
857 |
self.conn().send("en enano:") |
self.conn().send("en enano:") |
858 |
self.conn().send(color(31) + ' +susurrare/suse <nombre> <texto>' + finl) |
self.conn().send(color(31) + ' +susurrare/suse <nombre> <texto>' + finl) |
859 |
self.conn().send("en orco:") |
self.conn().send("en orco:") |
860 |
self.conn().send(color(31) + ' +susurraro/suso <nombre> <texto>' + finl) |
self.conn().send(color(31) + ' +susurraro/suso <nombre> <texto>' + finl) |
861 |
|
|
862 |
self.conn().send("Gritar en oestron a todo el mundo: " + |
self.conn().send("Gritar en oestron a todo el mundo: " + |
863 |
color(31) + '+[g]ritar <texto>' + finl) |
color(31) + '+[g]ritar <texto>' + finl) |
864 |
self.conn().send("en quenya: " + |
self.conn().send("en quenya: " + |
865 |
color(31) + '+gritarq/gq <texto>' + finl) |
color(31) + '+gritarq/gq <texto>' + finl) |
866 |
self.conn().send("en enano: " + |
self.conn().send("en enano: " + |
867 |
color(31) + '+gritare/ge <texto>' + finl) |
color(31) + '+gritare/ge <texto>' + finl) |
868 |
self.conn().send("en orco: " + |
self.conn().send("en orco: " + |
869 |
color(31) + '+gritaro/go <texto>' + finl) |
color(31) + '+gritaro/go <texto>' + finl) |
870 |
self.conn().send("Elegir idioma por defecto: " + |
self.conn().send("Elegir idioma por defecto: " + |
871 |
color(31) + "+idioma <idioma>" + finl) |
color(31) + "+idioma <idioma>" + finl) |
872 |
self.conn().send("Describir sucesos del entorno (Sólo Maiar): " + |
self.conn().send("Describir sucesos del entorno (Sólo Maiar): " + |
873 |
color(31) + '+[ent]orno <texto>' + finl) |
color(31) + '+[ent]orno <texto>' + finl) |
874 |
|
|
875 |
self.conn().send("Entablar una conversación con un PNJ: " + |
self.conn().send("Entablar una conversación con un PNJ: " + |
876 |
color(31) + '+decir <pnj> <texto>' + finl) |
color(31) + '+decir <pnj> <texto>' + finl) |
877 |
self.conn().send("Preguntar al PNJ por un tema: " + |
self.conn().send("Preguntar al PNJ por un tema: " + |
878 |
color(31) + '+[p]reguntar <pnj> <texto>' + finl) |
color(31) + '+[p]reguntar <pnj> <texto>' + finl) |
879 |
self.conn().send("Recordar los temas hablados con un PNJ: " + |
self.conn().send("Recordar los temas hablados con un PNJ: " + |
880 |
color(31) + '+[recap]itular <pnj>' + finl) |
color(31) + '+[recap]itular <pnj>' + finl) |
881 |
|
|
882 |
elif args[0] == "ataque": |
elif args[0] == "ataque": |
883 |
|
|
884 |
self.conn().send(color(33)+" Ataque\n"+finl) |
self.conn().send(color(33)+" Ataque\n"+finl) |
885 |
self.conn().send("Atacar a un personaje [deshabiltado]: " + |
self.conn().send("Atacar a un personaje [deshabiltado]: " + |
886 |
color(31) + '+[a]tacar <nombre>' + finl) |
color(31) + '+[a]tacar <nombre>' + finl) |
887 |
|
|
888 |
else: |
else: |
889 |
|
|
890 |
self.conn().send("Categoría de comandos no reconocida. Escribe '+?'.") |
self.conn().send("Categoría de comandos no reconocida. Escribe '+?'.") |
891 |
|
|
892 |
else: |
else: |
893 |
|
|
894 |
self.conn().send("Debido al gran número de acciones que puede realizar un") |
self.conn().send("Debido al gran número de acciones que puede realizar un") |
895 |
self.conn().send("personaje, las hemos agrupado en diferentes categorías a las") |
self.conn().send("personaje, las hemos agrupado en diferentes categorías a las") |
896 |
self.conn().send("que puedes llamar con '+? [categoria]'.") |
self.conn().send("que puedes llamar con '+? [categoria]'.") |
897 |
|
|
898 |
self.conn().send(color(31)+"\nCategorías de comandos:\n"+finl) |
self.conn().send(color(31)+"\nCategorías de comandos:\n"+finl) |
899 |
|
|
900 |
self.conn().send(color(33),0) |
self.conn().send(color(33),0) |
901 |
self.conn().send(" general :%s" % ('Órdenes básicas de Minë')) |
self.conn().send(" general :%s" % ('Órdenes básicas de Minë')) |
902 |
self.conn().send(" movimiento :%s" % ('Movimiento de PJs')) |
self.conn().send(" movimiento :%s" % ('Movimiento de PJs')) |
903 |
self.conn().send(" hablar :%s" % ('Comunicación entre PJs y PNJs')) |
self.conn().send(" hablar :%s" % ('Comunicación entre PJs y PNJs')) |
904 |
self.conn().send(" ataque :%s" % ('Combate y defensa entre PJs y PNJs')) |
self.conn().send(" ataque :%s" % ('Combate y defensa entre PJs y PNJs')) |
905 |
self.conn().send(" objetos :%s" % ('Manejo de objetos')) |
self.conn().send(" objetos :%s" % ('Manejo de objetos')) |
906 |
self.conn().send(" otros :%s" % ('Otras órdenes')) |
self.conn().send(" otros :%s" % ('Otras órdenes')) |
907 |
self.conn().send(finl) |
self.conn().send(finl) |
908 |
|
|
909 |
self.conn().send("Si lo que deseas es leer la documentación disponible acerca de Minë,") |
self.conn().send("Si lo que deseas es leer la documentación disponible acerca de Minë,") |
910 |
self.conn().send("entonces escribe '+doc' en la línea de comandos.\n") |
self.conn().send("entonces escribe '+doc' en la línea de comandos.\n") |
911 |
|
|
912 |
|
|
913 |
def cmd_recapitular(self, argumentos): |
def cmd_recapitular(self, argumentos): |
914 |
|
|
915 |
if len(argumentos) != 1: |
if len(argumentos) != 1: |
916 |
self.conn().send("Debes decir de qué personaje quieres recapitular.") |
self.conn().send("Debes decir de qué personaje quieres recapitular.") |
917 |
return |
return |
918 |
|
|
919 |
pnjs = self.__personaje.sala.personajes |
pnjs = self.__personaje.sala.personajes |
920 |
|
|
921 |
encontrado = 0 |
encontrado = 0 |
922 |
for pnj in pnjs.values(): |
for pnj in pnjs.values(): |
923 |
if normalizar_id(argumentos[0]) == extraer_id(pnj.nombre): |
if normalizar_id(argumentos[0]) == extraer_id(pnj.nombre): |
924 |
argumentos = argumentos[1:] |
argumentos = argumentos[1:] |
925 |
encontrado = 1 |
encontrado = 1 |
926 |
break |
break |
927 |
|
|
928 |
if encontrado == 0: |
if encontrado == 0: |
929 |
self.conn().send("No conoces a nadie llamado " + argumentos[0]) |
self.conn().send("No conoces a nadie llamado " + argumentos[0]) |
930 |
return |
return |
931 |
|
|
932 |
from interfazpnjhablante import InterfazPNJHablante |
from interfazpnjhablante import InterfazPNJHablante |
933 |
if not isinstance(pnj.controlador, InterfazPNJHablante): |
if not isinstance(pnj.controlador, InterfazPNJHablante): |
934 |
self.conn().send(pnj.nombre + " no responde.\n") |
self.conn().send(pnj.nombre + " no responde.\n") |
935 |
return |
return |
936 |
|
|
937 |
try: |
try: |
938 |
visita = pnj.controlador._visitas[0] |
visita = pnj.controlador._visitas[0] |
939 |
items = visita.items()[:] |
items = visita.items()[:] |
940 |
items.reverse() |
items.reverse() |
941 |
duplicados = [] |
duplicados = [] |
942 |
for item in items: |
for item in items: |
943 |
if item.tema().agotado_en(visita): |
if item.tema().agotado_en(visita): |
944 |
disponible = color(31) |
disponible = color(31) |
945 |
else: |
else: |
946 |
disponible = color(32) |
disponible = color(32) |
947 |
duplicados.append(disponible + item.tema().nombre()) |
duplicados.append(disponible + item.tema().nombre()) |
948 |
for nombretema in item.relacionados(): |
for nombretema in item.relacionados(): |
949 |
dado = self.__personaje.tirada_atributo("inteligencia", 0) |
dado = self.__personaje.tirada_atributo("inteligencia", 0) |
950 |
if dado > 27: |
if dado > 27: |
951 |
tema = visita._conversacion.contexto(item.relacionados()[nombretema]).tema(nombretema) |
tema = visita._conversacion.contexto(item.relacionados()[nombretema]).tema(nombretema) |
952 |
if tema.agotado_en(visita): |
if tema.agotado_en(visita): |
953 |
disponible = color(31) |
disponible = color(31) |
954 |
else: |
else: |
955 |
disponible = color(32) |
disponible = color(32) |
956 |
duplicados.append(disponible + tema.nombre()) |
duplicados.append(disponible + tema.nombre()) |
957 |
temas = [] |
temas = [] |
958 |
for tema in duplicados: |
for tema in duplicados: |
959 |
if tema not in temas: |
if tema not in temas: |
960 |
temas.append(tema) |
temas.append(tema) |
961 |
self.conn().send(disponible + tema) |
self.conn().send(disponible + tema) |
962 |
|
|
963 |
except Exception: |
except Exception: |
964 |
# Conviene protegerse contra errores en carga de salas. No es bueno que por |
# Conviene protegerse contra errores en carga de salas. No es bueno que por |
965 |
# un fichero de sala mal escrito pete el servidor entero o te eche de la |
# un fichero de sala mal escrito pete el servidor entero o te eche de la |
966 |
# conexión. |
# conexión. |
967 |
escribir( "Ha saltado una excepcion al intentar recapitular") |
escribir( "Ha saltado una excepcion al intentar recapitular") |
968 |
escribir_excepcion() |
escribir_excepcion() |
969 |
if self.conn().is_open: |
if self.conn().is_open: |
970 |
self.conn().send("Ha habido un error interno del programa referente a esta conversación.") |
self.conn().send("Ha habido un error interno del programa referente a esta conversación.") |
971 |
self.conn().send("No puedes recapitular esta conversación. Por favor, habla con algun administrador de Mine.") |
self.conn().send("No puedes recapitular esta conversación. Por favor, habla con algun administrador de Mine.") |
972 |
return |
return |
973 |
|
|
974 |
|
|
975 |
def cmd_hablar_pnj(self, comando, argumentos): |
def cmd_hablar_pnj(self, comando, argumentos): |
976 |
|
|
977 |
if len(argumentos) < 2: |
if len(argumentos) < 2: |
978 |
self.conn().send("Debes decir o preguntar a alguien por algo.") |
self.conn().send("Debes decir o preguntar a alguien por algo.") |
979 |
return |
return |
980 |
|
|
981 |
pnjs = self.__personaje.sala.personajes |
pnjs = self.__personaje.sala.personajes |
982 |
|
|
983 |
encontrado = 0 |
encontrado = 0 |
984 |
for pnj in pnjs.values(): |
for pnj in pnjs.values(): |
985 |
if normalizar_id(argumentos[0]) == extraer_id(pnj.nombre): |
if normalizar_id(argumentos[0]) == extraer_id(pnj.nombre): |
986 |
argumentos = argumentos[1:] |
argumentos = argumentos[1:] |
987 |
encontrado = 1 |
encontrado = 1 |
988 |
break |
break |
989 |
|
|
990 |
if encontrado == 0: |
if encontrado == 0: |
991 |
self.conn().send("No has indicado correctamente con quién deseas hablar\n") |
self.conn().send("No has indicado correctamente con quién deseas hablar\n") |
992 |
return |
return |
993 |
|
|
994 |
from interfazpnjhablante import InterfazPNJHablante |
from interfazpnjhablante import InterfazPNJHablante |
995 |
if not isinstance(pnj.controlador, InterfazPNJHablante): |
if not isinstance(pnj.controlador, InterfazPNJHablante): |
996 |
self.conn().send(pnj.nombre + " no responde.\n") |
self.conn().send(pnj.nombre + " no responde.\n") |
997 |
return |
return |
998 |
|
|
999 |
try: |
try: |
1000 |
pnj.controlador.conversa_personaje(self.__personaje, comando, |
pnj.controlador.conversa_personaje(self.__personaje, comando, |
1001 |
string.join(argumentos, ' ')) |
string.join(argumentos, ' ')) |
1002 |
except Exception: |
except Exception: |
1003 |
# Conviene protegerse contra errores en carga de pnjs. No es bueno que por |
# Conviene protegerse contra errores en carga de pnjs. No es bueno que por |
1004 |
# un fichero de pnj mal escrito pete el servidor entero o te eche de la |
# un fichero de pnj mal escrito pete el servidor entero o te eche de la |
1005 |
# conexión. |
# conexión. |
1006 |
escribir( "Ha saltado una excepcion al intentar " + comando) |
escribir( "Ha saltado una excepcion al intentar " + comando) |
1007 |
escribir_excepcion() |
escribir_excepcion() |
1008 |
if self.conn().is_open: |
if self.conn().is_open: |
1009 |
self.conn().send("Ha habido un error interno del programa referente a esta conversación.") |
self.conn().send("Ha habido un error interno del programa referente a esta conversación.") |
1010 |
self.conn().send("No puedes hacer esta pregunta. Por favor, habla con algun administrador de Mine. Puedes escribir a mine_ste@yahoogroups.com.") |
self.conn().send("No puedes hacer esta pregunta. Por favor, habla con algun administrador de Mine. Puedes escribir a mine_ste@yahoogroups.com.") |
1011 |
|
|
1012 |
|
|
1013 |
def cmd_mover(self, id_sala_destino): |
def cmd_mover(self, id_sala_destino): |
1014 |
|
|
1015 |
# Comprobar si la puerta está cerrada y si podemos abrirla |
# Comprobar si la puerta está cerrada y si podemos abrirla |
1016 |
podemos_pasar = 1 |
podemos_pasar = 1 |
1017 |
cierre = self.__personaje.sala.salida_cerrada(id_sala_destino) |
cierre = self.__personaje.sala.salida_cerrada(id_sala_destino) |
1018 |
id_llave = cierre[0] |
id_llave = cierre[0] |
1019 |
msg_cerrado = cierre[1] |
msg_cerrado = cierre[1] |
1020 |
if id_llave != None: |
if id_llave != None: |
1021 |
podemos_pasar = 0 |
podemos_pasar = 0 |
1022 |
for objeto in self.__personaje.mochila(): |
for objeto in self.__personaje.mochila(): |
1023 |
if objeto[0].id() == id_llave: |
if objeto[0].id() == id_llave: |
1024 |
self.conn().send(color(35) + "Abres el paso con " + objeto[0].nombre() + finl) |
self.conn().send(color(35) + "Abres el paso con " + objeto[0].nombre() + finl) |
1025 |
podemos_pasar = 1 |
podemos_pasar = 1 |
1026 |
|
|
1027 |
if not podemos_pasar: |
if not podemos_pasar: |
1028 |
self.conn().send(msg_cerrado) |
self.conn().send(msg_cerrado) |
1029 |
else: |
else: |
1030 |
try: |
try: |
1031 |
nueva_sala = Mundo_localizar_sala(id_sala_destino) |
nueva_sala = Mundo_localizar_sala(id_sala_destino) |
1032 |
except Exception: |
except Exception: |
1033 |
# Conviene protegerse contra errores en carga de salas. No es bueno que por |
# Conviene protegerse contra errores en carga de salas. No es bueno que por |
1034 |
# un fichero de sala mal escrito pete el servidor entero o te eche de la |
# un fichero de sala mal escrito pete el servidor entero o te eche de la |
1035 |
# conexión. |
# conexión. |
1036 |
escribir( "Ha saltado una excepcion al intentar entrar en " + id_sala_destino) |
escribir( "Ha saltado una excepcion al intentar entrar en " + id_sala_destino) |
1037 |
escribir_excepcion() |
escribir_excepcion() |
1038 |
if self.conn().is_open: |
if self.conn().is_open: |
1039 |
self.conn().send("Ha habido un error interno del programa referente a esta sala.") |
self.conn().send("Ha habido un error interno del programa referente a esta sala.") |
1040 |
self.conn().send("No puedes ir ahi. Por favor, habla con algun administrador de Mine.") |
self.conn().send("No puedes ir ahi. Por favor, habla con algun administrador de Mine.") |
1041 |
else: |
else: |
1042 |
|
|
1043 |
if nueva_sala.volumen_ocupado() + self.__personaje.volumen_total() > nueva_sala.volumen: |
if nueva_sala.volumen_ocupado() + self.__personaje.volumen_total() > nueva_sala.volumen: |
1044 |
|
|
1045 |
self.conn().send("Ese lugar está al límite de su capacidad y no cabes. No puedes ir allí.") |
self.conn().send("Ese lugar está al límite de su capacidad y no cabes. No puedes ir allí.") |
1046 |
|
|
1047 |
else: |
else: |
1048 |
|
|
1049 |
if self.__personaje.anterior != None: |
if self.__personaje.anterior != None: |
1050 |
id_lider = self.__personaje.anterior.id |
id_lider = self.__personaje.anterior.id |
1051 |
else: |
else: |
1052 |
id_lider = None |
id_lider = None |
1053 |
|
|
1054 |
self.__personaje.mover(nueva_sala) # aqui se deja de seguir al lider, si lo hay |
self.__personaje.mover(nueva_sala) # aqui se deja de seguir al lider, si lo hay |
1055 |
self.lanzar_tirada_percep_sala() |
self.lanzar_tirada_percep_sala() |
1056 |
self.cmd_mirar() |
self.cmd_mirar() |
1057 |
|
|
1058 |
if self.__personaje.salas_visitadas.get(id_sala_destino) != 'si': |
if self.__personaje.salas_visitadas.get(id_sala_destino) != 'si': |
1059 |
self.conn().send("Es la primera vez que estás aquí...") |
self.conn().send("Es la primera vez que estás aquí...") |
1060 |
self.__personaje.salas_visitadas.update({id_sala_destino:'si'}) |
self.__personaje.salas_visitadas.update({id_sala_destino:'si'}) |
1061 |
#Ganamos un punto de experiencia (hay que premiar la exploración) |
#Ganamos un punto de experiencia (hay que premiar la exploración) |
1062 |
self.__personaje.poner_experiencia(self.__personaje.experiencia + 1) |
self.__personaje.poner_experiencia(self.__personaje.experiencia + 1) |
1063 |
|
|
1064 |
if id_lider != None: |
if id_lider != None: |
1065 |
self.conn().send('Ya no estas siguiendo a ' + id_lider) |
self.conn().send('Ya no estas siguiendo a ' + id_lider) |
1066 |
|
|
1067 |
|
|
1068 |
def cmd_amigos(self, id_amigo): |
def cmd_amigos(self, id_amigo): |
1069 |
self.__personaje.ids_amigos.append(id_amigo) |
self.__personaje.ids_amigos.append(id_amigo) |
1070 |
self.conn().send("Has añadido a "+id_amigo+" a tu lista de personas de confianza.") |
self.conn().send("Has añadido a "+id_amigo+" a tu lista de personas de confianza.") |
1071 |
|
|
1072 |
|
|
1073 |
def cmd_listar_amigos(self): |
def cmd_listar_amigos(self): |
1074 |
self.conn().send("-> Lista de personas de confianza <-") |
self.conn().send("-> Lista de personas de confianza <-") |
1075 |
self.conn().send('') |
self.conn().send('') |
1076 |
for key in self.__personaje.ids_amigos.keys(): |
for key in self.__personaje.ids_amigos.keys(): |
1077 |
if self.__personaje.ids_amigos[key] > 0: |
if self.__personaje.ids_amigos[key] > 0: |
1078 |
self.conn().send(self.__personaje.color_texto() + '\t'+ key + finl) |
self.conn().send(self.__personaje.color_texto() + '\t'+ key + finl) |
1079 |
|
|
1080 |
|
|
1081 |
def cmd_silencio(self): |
def cmd_silencio(self): |
1082 |
if self.__personaje.silencio == 'no': |
if self.__personaje.silencio == 'no': |
1083 |
self.__personaje.silencio = 'sí' |
self.__personaje.silencio = 'sí' |
1084 |
else: |
else: |
1085 |
self.__personaje.silencio = 'no' |
self.__personaje.silencio = 'no' |
1086 |
|
|
1087 |
self.conn().send("Has elegido que "+self.__personaje.silencio+" haya silencio") |
self.conn().send("Has elegido que "+self.__personaje.silencio+" haya silencio") |
1088 |
|
|
1089 |
|
|
1090 |
def cmd_susurrar(self, nombre_oyente, mensaje, idioma=Idioma_oestron): |
def cmd_susurrar(self, nombre_oyente, mensaje, idioma=Idioma_oestron): |
1091 |
if len(mensaje) == 0: |
if len(mensaje) == 0: |
1092 |
self.conn().send('Tienes que decir algo...') |
self.conn().send('Tienes que decir algo...') |
1093 |
elif self.__personaje.id == nombre_oyente: |
elif self.__personaje.id == nombre_oyente: |
1094 |
self.conn().send('no tiene sentido que te hables a ti mismo') |
self.conn().send('no tiene sentido que te hables a ti mismo') |
1095 |
else: |
else: |
1096 |
if self.__personaje.sala != None: |
if self.__personaje.sala != None: |
1097 |
encontrado = 0 |
encontrado = 0 |
1098 |
for personaje in self.__personaje.sala.personajes.values(): |
for personaje in self.__personaje.sala.personajes.values(): |
1099 |
if personaje !=self.__personaje and personaje.controlador != None and personaje.id == nombre_oyente: |
if personaje !=self.__personaje and personaje.controlador != None and personaje.id == nombre_oyente: |
1100 |
encontrado = 1 |
encontrado = 1 |
1101 |
self.__personaje.susurrar(personaje,mensaje,idioma) |
self.__personaje.susurrar(personaje,mensaje,idioma) |
1102 |
self.conn().send("Susurras a "+personaje.id+": "+mensaje) |
self.conn().send("Susurras a "+personaje.id+": "+mensaje) |
1103 |
if encontrado == 0: |
if encontrado == 0: |
1104 |
self.conn().send('no hay nadie aquí que se llame '+nombre_oyente) |
self.conn().send('no hay nadie aquí que se llame '+nombre_oyente) |
1105 |
|
|
1106 |
|
|
1107 |
def cmd_localizar(self, id_personaje): |
def cmd_localizar(self, id_personaje): |
1108 |
try: |
try: |
1109 |
personaje = Mundo.pjs_activos[id_personaje] |
personaje = Mundo.pjs_activos[id_personaje] |
1110 |
self.conn().send(id_personaje + |
self.conn().send(id_personaje + |
1111 |
' está en ' + personaje.sala.nombre + |
' está en ' + personaje.sala.nombre + |
1112 |
' en el area de ' + personaje.sala.area) |
' en el area de ' + personaje.sala.area) |
1113 |
except KeyError: |
except KeyError: |
1114 |
self.conn().send('No existe ningun personaje con ese nombre jugando en Minë en este momento') |
self.conn().send('No existe ningun personaje con ese nombre jugando en Minë en este momento') |
1115 |
|
|
1116 |
|
|
1117 |
def cmd_listar_personajes(self): |
def cmd_listar_personajes(self): |
1118 |
ids_personajes = [ personaje.id for personaje in Mundo.pjs_activos.values() ] |
ids_personajes = [ personaje.id for personaje in Mundo.pjs_activos.values() ] |
1119 |
|
|
1120 |
self.conn().send('En este momento hay ' + `len(ids_personajes)` + |
self.conn().send('En este momento hay ' + `len(ids_personajes)` + |
1121 |
' personajes en Mine:\n' + |
' personajes en Mine:\n' + |
1122 |
'\n'.join(ids_personajes)) |
'\n'.join(ids_personajes)) |
1123 |
|
|
1124 |
|
|
1125 |
def cmd_hablar(self, mensaje, idioma=Idioma_oestron): |
def cmd_hablar(self, mensaje, idioma=Idioma_oestron): |
1126 |
if len(mensaje) > 0: |
if len(mensaje) > 0: |
1127 |
self.__personaje.hablar(mensaje,idioma) |
self.__personaje.hablar(mensaje,idioma) |
1128 |
self.conn().send('Dices: '+ self.__personaje.color_texto() + mensaje) |
self.conn().send('Dices: '+ self.__personaje.color_texto() + mensaje) |
1129 |
else: |
else: |
1130 |
self.conn().send('Tienes que decir algo...') |
self.conn().send('Tienes que decir algo...') |
1131 |
|
|
1132 |
|
|
1133 |
def cmd_entorno(self, suceso): |
def cmd_entorno(self, suceso): |
1134 |
if len(suceso) > 0: |
if len(suceso) > 0: |
1135 |
self.__personaje.describir_entorno(suceso) |
self.__personaje.describir_entorno(suceso) |
1136 |
else: |
else: |
1137 |
self.conn().send('Tienes que describir algo...') |
self.conn().send('Tienes que describir algo...') |
1138 |
|
|
1139 |
|
|
1140 |
def cmd_actuar(self, mensaje): |
def cmd_actuar(self, mensaje): |
1141 |
if len(mensaje) > 0: |
if len(mensaje) > 0: |
1142 |
self.__personaje.actuar(mensaje) |
self.__personaje.actuar(mensaje) |
1143 |
self.conn().send(self.__personaje.id+' '+mensaje) |
self.conn().send(self.__personaje.id+' '+mensaje) |
1144 |
else: |
else: |
1145 |
self.conn().send('Tienes que hacer algo...') |
self.conn().send('Tienes que hacer algo...') |
1146 |
|
|
1147 |
|
|
1148 |
def cmd_gritar(self, mensaje, idioma=Idioma_oestron): |
def cmd_gritar(self, mensaje, idioma=Idioma_oestron): |
1149 |
if len(mensaje) > 0: |
if len(mensaje) > 0: |
1150 |
self.__personaje.gritar(mensaje,idioma) |
self.__personaje.gritar(mensaje,idioma) |
1151 |
self.conn().send("Gritas: "+mensaje) |
self.conn().send("Gritas: "+mensaje) |
1152 |
else: |
else: |
1153 |
self.conn().send('Tienes que decir algo...') |
self.conn().send('Tienes que decir algo...') |
1154 |
|
|
1155 |
|
|
1156 |
def cmd_estadisticas(self): |
def cmd_estadisticas(self): |
1157 |
self.conn().send(color(31)) |
self.conn().send(color(31)) |
1158 |
self.conn().send("Estadísticas de " + self.__personaje.nombre) |
self.conn().send("Estadísticas de " + self.__personaje.nombre) |
1159 |
self.conn().send("-------------------------------------------------------------------") |
self.conn().send("-------------------------------------------------------------------") |
1160 |
|
|
1161 |
self.conn().send(color(32), 0) |
self.conn().send(color(32), 0) |
1162 |
self.conn().send("Nombre: %-17s Aura: %-17d Nivel: %10d" % |
self.conn().send("Nombre: %-17s Aura: %-17d Nivel: %10d" % |
1163 |
(self.__personaje.id, |
(self.__personaje.id, |
1164 |
self.__personaje.aura, |
self.__personaje.aura, |
1165 |
self.__personaje.nivel)) |
self.__personaje.nivel)) |
1166 |
self.conn().send("Raza: %-17s Vida: %-17d Experiencia: %4d" % |
self.conn().send("Raza: %-17s Vida: %-17d Experiencia: %4d" % |
1167 |
(self.__personaje.raza.nombre, |
(self.__personaje.raza.nombre, |
1168 |
self.__personaje.vida, |
self.__personaje.vida, |
1169 |
self.__personaje.experiencia)) |
self.__personaje.experiencia)) |
1170 |
self.conn().send("Edad: %-17d Profesion: %-12s Fuerza: %3d" % |
self.conn().send("Edad: %-17d Profesion: %-12s Fuerza: %3d" % |
1171 |
(self.__personaje.edad, |
(self.__personaje.edad, |
1172 |
self.__personaje.profesion.nombre, |
self.__personaje.profesion.nombre, |
1173 |
self.__personaje.atrib["fuerza"])) |
self.__personaje.atrib["fuerza"])) |
1174 |
self.conn().send("Sexo: %-17s Idiomas: Destreza: %3d" % |
self.conn().send("Sexo: %-17s Idiomas: Destreza: %3d" % |
1175 |
(self.__personaje.sexo, |
(self.__personaje.sexo, |
1176 |
self.__personaje.atrib["destreza"])) |
self.__personaje.atrib["destreza"])) |
1177 |
self.conn().send("Altura: %-17.2f quenya: %-12s Constitución: %3d" % |
self.conn().send("Altura: %-17.2f quenya: %-12s Constitución: %3d" % |
1178 |
(self.__personaje.altura, |
(self.__personaje.altura, |
1179 |
self.__personaje.idiomas[Idioma_quenya], |
self.__personaje.idiomas[Idioma_quenya], |
1180 |
self.__personaje.atrib["constitucion"])) |
self.__personaje.atrib["constitucion"])) |
1181 |
self.conn().send("Peso: %-17d orco: %-12s Inteligencia: %3d" % |
self.conn().send("Peso: %-17d orco: %-12s Inteligencia: %3d" % |
1182 |
(self.__personaje.peso, |
(self.__personaje.peso, |
1183 |
self.__personaje.idiomas[Idioma_orco], |
self.__personaje.idiomas[Idioma_orco], |
1184 |
self.__personaje.atrib["inteligencia"])) |
self.__personaje.atrib["inteligencia"])) |
1185 |
self.conn().send("Color de ojos: %-11s enano: %-12s Sabiduria: %3d" % |
self.conn().send("Color de ojos: %-11s enano: %-12s Sabiduria: %3d" % |
1186 |
(self.__personaje.color_de_ojos, |
(self.__personaje.color_de_ojos, |
1187 |
self.__personaje.idiomas[Idioma_enano], |
self.__personaje.idiomas[Idioma_enano], |
1188 |
self.__personaje.atrib["sabiduria"])) |
self.__personaje.atrib["sabiduria"])) |
1189 |
self.conn().send("Color de pelo: %-11s oestron: %-12s Carisma: %3d" % |
self.conn().send("Color de pelo: %-11s oestron: %-12s Carisma: %3d" % |
1190 |
(self.__personaje.color_de_pelo, |
(self.__personaje.color_de_pelo, |
1191 |
self.__personaje.idiomas[Idioma_oestron], |
self.__personaje.idiomas[Idioma_oestron], |
1192 |
self.__personaje.atrib["carisma"])) |
self.__personaje.atrib["carisma"])) |
1193 |
self.conn().send("El idioma en el que hablas es: %s " % (self.__personaje.idioma_base.nombre)) |
self.conn().send("El idioma en el que hablas es: %s " % (self.__personaje.idioma_base.nombre)) |
1194 |
self.conn().send(color(31) + "-------------------------------------------------------------------" + finl) |
self.conn().send(color(31) + "-------------------------------------------------------------------" + finl) |
1195 |
|
|
1196 |
|
|
1197 |
def cmd_mirar(self, resumen=0): |
def cmd_mirar(self, resumen=0): |
1198 |
|
|
1199 |
sala = self.__personaje.sala |
sala = self.__personaje.sala |
1200 |
self.conn().send(color(31) + "\nEstás en " + sala.nombre + finl) |
self.conn().send(color(31) + "\nEstás en " + sala.nombre + finl) |
1201 |
|
|
1202 |
if not resumen: |
if not resumen: |
1203 |
|
|
1204 |
self.conn().send("\n------- Descripción del lugar -------") |
self.conn().send("\n------- Descripción del lugar -------") |
1205 |
|
|
1206 |
for item in sala.descripcion: |
for item in sala.descripcion: |
1207 |
if self.__tirada_percep_sala >= item["dificultad"]: |
if self.__tirada_percep_sala >= item["dificultad"]: |
1208 |
self.conn().send("\n" + item["texto"]) |
self.conn().send("\n" + item["texto"]) |
1209 |
|
|
1210 |
self.conn().send("\n--------------------------------------\n") |
self.conn().send("\n--------------------------------------\n") |
1211 |
|
|
1212 |
if len(sala.salidas) == 0: |
if len(sala.salidas) == 0: |
1213 |
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) |
1214 |
else: |
else: |
1215 |
for salida in sala.salidas: |
for salida in sala.salidas: |
1216 |
if self.__tirada_percep_sala >= salida["dificultad"]: |
if self.__tirada_percep_sala >= salida["dificultad"]: |
1217 |
direccion = salida["direccion"] |
direccion = salida["direccion"] |
1218 |
if direccion in ["arriba", "abajo"]: |
if direccion in ["arriba", "abajo"]: |
1219 |
self.conn().send(color(36) + "Hacia " + direccion + " ves ", 0) |
self.conn().send(color(36) + "Hacia " + direccion + " ves ", 0) |
1220 |
self.conn().send(salida["descripcion"], 0) |
self.conn().send(salida["descripcion"], 0) |
1221 |
self.conn().send(finl) |
self.conn().send(finl) |
1222 |
elif direccion == "otro": |
elif direccion == "otro": |
1223 |
self.conn().send(color(36) + "También puedes ver ", 0) |
self.conn().send(color(36) + "También puedes ver ", 0) |
1224 |
self.conn().send(salida["descripcion"], 0) |
self.conn().send(salida["descripcion"], 0) |
1225 |
self.conn().send(finl) |
self.conn().send(finl) |
1226 |
else: |
else: |
1227 |
self.conn().send(color(36) + "Hacia el " + direccion + " ves ", 0) |
self.conn().send(color(36) + "Hacia el " + direccion + " ves ", 0) |
1228 |
self.conn().send(salida["descripcion"], 0) |
self.conn().send(salida["descripcion"], 0) |
1229 |
self.conn().send(finl) # hay que hacer tres send, porque a veces sale un |
self.conn().send(finl) # hay que hacer tres send, porque a veces sale un |
1230 |
# error raro si hago solo uno sumando los tres |
# error raro si hago solo uno sumando los tres |
1231 |
# strings (??) |
# strings (??) |
1232 |
|
|
1233 |
if len(sala.personajes) > 1: # siempre habrá al menos uno: nuestro personaje |
if len(sala.personajes) > 1: # siempre habrá al menos uno: nuestro personaje |
1234 |
self.conn().send(color(35) + '\nAquí se encuentran:' + finl) |
self.conn().send(color(35) + '\nAquí se encuentran:' + finl) |
1235 |
for enc in sala.personajes.values(): |
for enc in sala.personajes.values(): |
1236 |
if isinstance(enc, PersonajeNoJugador): |
if isinstance(enc, PersonajeNoJugador): |
1237 |
pass |
pass |
1238 |
# self.conn().send(color(35) + "Encuentras " + enc.id + finl) |
# self.conn().send(color(35) + "Encuentras " + enc.id + finl) |
1239 |
else: |
else: |
1240 |
if enc != self.__personaje: |
if enc != self.__personaje: |
1241 |
self.conn().send(color(35) + enc.nombre + finl) |
self.conn().send(color(35) + enc.nombre + finl) |
1242 |
for enc in sala.encuentros: |
for enc in sala.encuentros: |
1243 |
self.conn().send(color(35) + enc.get('descripcion') + finl) |
self.conn().send(color(35) + enc.get('descripcion') + finl) |
1244 |
|
|
1245 |
primero = 1 |
primero = 1 |
1246 |
for objeto in sala.objetos: |
for objeto in sala.objetos: |
1247 |
if len(objeto["instancias"]) > 0: |
if len(objeto["instancias"]) > 0: |
1248 |
if self.__tirada_percep_sala >= objeto["dificultad"]: |
if self.__tirada_percep_sala >= objeto["dificultad"]: |
1249 |
if primero: |
if primero: |
1250 |
self.conn().send(color(32) + "\nAquí hay:" + finl) |
self.conn().send(color(32) + "\nAquí hay:" + finl) |
1251 |
primero = 0 |
primero = 0 |
1252 |
self.conn().send(color(32) + objeto["instancias"][0].nombre(), 0) |
self.conn().send(color(32) + objeto["instancias"][0].nombre(), 0) |
1253 |
if len(objeto["instancias"]) > 1: |
if len(objeto["instancias"]) > 1: |
1254 |
self.conn().send(" (" + str(len(objeto["instancias"])) + ")", 0) |
self.conn().send(" (" + str(len(objeto["instancias"])) + ")", 0) |
1255 |
self.conn().send(finl) |
self.conn().send(finl) |
1256 |
|
|
1257 |
self.conn().send("") |
self.conn().send("") |
1258 |
|
|
1259 |
|
|
1260 |
def cmd_mochila(self): |
def cmd_mochila(self): |
1261 |
self.conn().send(color(31) + "--------- Contenido de la mochila ---------" + finl) |
self.conn().send(color(31) + "--------- Contenido de la mochila ---------" + finl) |
1262 |
if len(self.__personaje.mochila()) == 0: |
if len(self.__personaje.mochila()) == 0: |
1263 |
self.conn().send("(la mochila esta vacia)") |
self.conn().send("(la mochila esta vacia)") |
1264 |
else: |
else: |
1265 |
self.conn().send(color(31) + "%-35s%-8s" % ("Nombre", "Cantidad") + finl) |
self.conn().send(color(31) + "%-35s%-8s" % ("Nombre", "Cantidad") + finl) |
1266 |
for objetos in self.__personaje.mochila(): |
for objetos in self.__personaje.mochila(): |
1267 |
self.conn().send("%-35s%8d" % (objetos[0].nombre(), len(objetos))) |
self.conn().send("%-35s%8d" % (objetos[0].nombre(), len(objetos))) |
1268 |
|
|
1269 |
|
|
1270 |
def cmd_idioma(self, nombre_idioma_base): |
def cmd_idioma(self, nombre_idioma_base): |
1271 |
if len(nombre_idioma_base) == 0: |
if len(nombre_idioma_base) == 0: |
1272 |
self.conn().send("Tu idioma base actual es " + self.__personaje.idioma_base.nombre) |
self.conn().send("Tu idioma base actual es " + self.__personaje.idioma_base.nombre) |
1273 |
else: |
else: |
1274 |
idioma_base = Idioma_buscar(nombre_idioma_base) |
idioma_base = Idioma_buscar(nombre_idioma_base) |
1275 |
if idioma_base != None: |
if idioma_base != None: |
1276 |
self.__personaje.idioma_base = idioma_base |
self.__personaje.idioma_base = idioma_base |
1277 |
self.conn().send("Tu idioma por defecto es ahora " + idioma_base.nombre) |
self.conn().send("Tu idioma por defecto es ahora " + idioma_base.nombre) |
1278 |
else: |
else: |
1279 |
self.conn().send("Lo siento, has de elegir como idioma base uno " + |
self.conn().send("Lo siento, has de elegir como idioma base uno " + |
1280 |
"de los siguientes: " + |
"de los siguientes: " + |
1281 |
", ".join([ i.nombre for i in Idioma_lista ])) |
", ".join([ i.nombre for i in Idioma_lista ])) |
1282 |
|
|
1283 |
|
|
1284 |
def cmd_coger(self, id_objeto, cantidad, n_orden, n_instancia): |
def cmd_coger(self, id_objeto, cantidad, n_orden, n_instancia): |
1285 |
encontrados = 0 |
encontrados = 0 |
1286 |
n_objeto = -1 |
n_objeto = -1 |
1287 |
|
|
1288 |
# Buscar el objeto en la sala. Puede que haya varios con el mismo identificativo, |
# Buscar el objeto en la sala. Puede que haya varios con el mismo identificativo, |
1289 |
# discriminamos con el parametro n_orden. |
# discriminamos con el parametro n_orden. |
1290 |
for objeto in self.__personaje.sala.objetos: |
for objeto in self.__personaje.sala.objetos: |
1291 |
n_objeto = n_objeto + 1 |
n_objeto = n_objeto + 1 |
1292 |
instancias = objeto["instancias"] |
instancias = objeto["instancias"] |
1293 |
if len(instancias) > 0: |
if len(instancias) > 0: |
1294 |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre()): |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre()): |
1295 |
encontrados = encontrados + 1 |
encontrados = encontrados + 1 |
1296 |
if encontrados == n_orden: |
if encontrados == n_orden: |
1297 |
|
|
1298 |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
1299 |
# suficientes. |
# suficientes. |
1300 |
if (n_instancia + cantidad - 1) > len(instancias): |
if (n_instancia + cantidad - 1) > len(instancias): |
1301 |
self.conn().send("No hay " + str(n_instancia + cantidad - 1) + |
self.conn().send("No hay " + str(n_instancia + cantidad - 1) + |
1302 |
" instancias de ese objeto, solo hay " + |
" instancias de ese objeto, solo hay " + |
1303 |
str(len(instancias))) |
str(len(instancias))) |
1304 |
else: |
else: |
1305 |
|
|
1306 |
# Todo ok: cogemos las instancias y las metemos en la mochila |
# Todo ok: cogemos las instancias y las metemos en la mochila |
1307 |
for i in range(0, cantidad): |
for i in range(0, cantidad): |
1308 |
instancia = self.__personaje.sala.coger_objeto(n_objeto, |
instancia = self.__personaje.sala.coger_objeto(n_objeto, |
1309 |
n_instancia - 1) |
n_instancia - 1) |
1310 |
self.__personaje.meter_en_mochila(instancia) |
self.__personaje.meter_en_mochila(instancia) |
1311 |
|
|
1312 |
self.__personaje.actuar("ha cogido " + instancia.nombre()) |
self.__personaje.actuar("ha cogido " + instancia.nombre()) |
1313 |
self.conn().send("Has cogido " + instancia.nombre(), 0) |
self.conn().send("Has cogido " + instancia.nombre(), 0) |
1314 |
if cantidad > 1: |
if cantidad > 1: |
1315 |
self.conn().send(" (" + str(cantidad) + " unidades)") |
self.conn().send(" (" + str(cantidad) + " unidades)") |
1316 |
else: |
else: |
1317 |
self.conn().send("") |
self.conn().send("") |
1318 |
|
|
1319 |
break |
break |
1320 |
|
|
1321 |
if encontrados == 0: |
if encontrados == 0: |
1322 |
self.conn().send("No hay en la sala ningún objeto con identificativo " + id_objeto) |
self.conn().send("No hay en la sala ningún objeto con identificativo " + id_objeto) |
1323 |
elif encontrados < n_orden: |
elif encontrados < n_orden: |
1324 |
self.conn().send("No hay en la sala suficientes objetos con identificativo " + |
self.conn().send("No hay en la sala suficientes objetos con identificativo " + |
1325 |
id_objeto + ", solo hay " + str(encontrados)) |
id_objeto + ", solo hay " + str(encontrados)) |
1326 |
|
|
1327 |
|
|
1328 |
#%% def cmd_coger(self, nombre_objeto, cantidad=1): |
#%% def cmd_coger(self, nombre_objeto, cantidad=1): |
1329 |
#%% |
#%% |
1330 |
#%% adquiridos = 0 #número de fallos |
#%% adquiridos = 0 #número de fallos |
1331 |
#%% despues = 0 |
#%% despues = 0 |
1332 |
#%% antes = 0 |
#%% antes = 0 |
1333 |
#%% |
#%% |
1334 |
#%% for objeto_en_equipo in self.__personaje.equipo: |
#%% for objeto_en_equipo in self.__personaje.equipo: |
1335 |
#%% if objeto_en_equipo["id"] == nombre_objeto: |
#%% if objeto_en_equipo["id"] == nombre_objeto: |
1336 |
#%% antes = len(objeto_en_equipo["instancias"]) |
#%% antes = len(objeto_en_equipo["instancias"]) |
1337 |
#%% |
#%% |
1338 |
#%% for i in range(cantidad): |
#%% for i in range(cantidad): |
1339 |
#%% self.__personaje.sala.coger_objeto(self.__personaje, nombre_objeto) |
#%% self.__personaje.sala.coger_objeto(self.__personaje, nombre_objeto) |
1340 |
#%% |
#%% |
1341 |
#%% for objeto_en_equipo in self.__personaje.equipo: |
#%% for objeto_en_equipo in self.__personaje.equipo: |
1342 |
#%% if objeto_en_equipo["id"] == nombre_objeto: |
#%% if objeto_en_equipo["id"] == nombre_objeto: |
1343 |
#%% despues = len(objeto_en_equipo["instancias"]) |
#%% despues = len(objeto_en_equipo["instancias"]) |
1344 |
#%% |
#%% |
1345 |
#%% if despues - antes <1: |
#%% if despues - antes <1: |
1346 |
#%% self.conn().send("No hay en la sala un objeto con identificativo "+nombre_objeto) |
#%% self.conn().send("No hay en la sala un objeto con identificativo "+nombre_objeto) |
1347 |
#%% else: |
#%% else: |
1348 |
#%% self.conn().send("Se cogieron "+str(despues-antes) +" "+nombre_objeto+" de "+str(cantidad)+" indicados") |
#%% self.conn().send("Se cogieron "+str(despues-antes) +" "+nombre_objeto+" de "+str(cantidad)+" indicados") |
1349 |
|
|
1350 |
|
|
1351 |
def cmd_dejar(self, id_objeto, cantidad, n_orden, n_instancia, dificultad = 0): |
def cmd_dejar(self, id_objeto, cantidad, n_orden, n_instancia, dificultad = 0): |
1352 |
encontrados = 0 |
encontrados = 0 |
1353 |
n_objeto = -1 |
n_objeto = -1 |
1354 |
|
|
1355 |
# Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo, |
# Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo, |
1356 |
# discriminamos con el parametro n_orden. |
# discriminamos con el parametro n_orden. |
1357 |
for instancias in self.__personaje.mochila(): |
for instancias in self.__personaje.mochila(): |
1358 |
n_objeto = n_objeto + 1 |
n_objeto = n_objeto + 1 |
1359 |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre()): |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre()): |
1360 |
encontrados = encontrados + 1 |
encontrados = encontrados + 1 |
1361 |
if encontrados == n_orden: |
if encontrados == n_orden: |
1362 |
|
|
1363 |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
1364 |
# suficientes. |
# suficientes. |
1365 |
if (n_instancia + cantidad - 1) > len(instancias): |
if (n_instancia + cantidad - 1) > len(instancias): |
1366 |
self.conn().send("No tienes " + str(n_instancia + cantidad - 1) + |
self.conn().send("No tienes " + str(n_instancia + cantidad - 1) + |
1367 |
" unidades de ese objeto en la mochila, solo tienes " + |
" unidades de ese objeto en la mochila, solo tienes " + |
1368 |
str(len(instancias))) |
str(len(instancias))) |
1369 |
else: |
else: |
1370 |
|
|
1371 |
# Todo ok: sacamos las instancias de la mochila y las dejamos |
# Todo ok: sacamos las instancias de la mochila y las dejamos |
1372 |
# en la sala |
# en la sala |
1373 |
for i in range(0, cantidad): |
for i in range(0, cantidad): |
1374 |
instancia = self.__personaje.sacar_de_mochila(n_objeto, |
instancia = self.__personaje.sacar_de_mochila(n_objeto, |
1375 |
n_instancia - 1) |
n_instancia - 1) |
1376 |
self.__personaje.sala.dejar_objeto(instancia, dificultad) |
self.__personaje.sala.dejar_objeto(instancia, dificultad) |
1377 |
|
|
1378 |
if dificultad == 0: |
if dificultad == 0: |
1379 |
self.__personaje.actuar("ha dejado " + instancia.nombre()) |
self.__personaje.actuar("ha dejado " + instancia.nombre()) |
1380 |
self.conn().send("Has dejado " + instancia.nombre(), 0) |
self.conn().send("Has dejado " + instancia.nombre(), 0) |
1381 |
else: |
else: |
1382 |
self.__personaje.actuar("ha escondido algo") |
self.__personaje.actuar("ha escondido algo") |
1383 |
self.conn().send("Has escondido " + instancia.nombre(), 0) |
self.conn().send("Has escondido " + instancia.nombre(), 0) |
1384 |
|
|
1385 |
if cantidad > 1: |
if cantidad > 1: |
1386 |
self.conn().send(" (" + str(cantidad) + " unidades)") |
self.conn().send(" (" + str(cantidad) + " unidades)") |
1387 |
else: |
else: |
1388 |
self.conn().send("") |
self.conn().send("") |
1389 |
|
|
1390 |
break |
break |
1391 |
|
|
1392 |
if encontrados == 0: |
if encontrados == 0: |
1393 |
self.conn().send("No tienes en la mochila ningún objeto con identificativo " + |
self.conn().send("No tienes en la mochila ningún objeto con identificativo " + |
1394 |
id_objeto) |
id_objeto) |
1395 |
elif encontrados < n_orden: |
elif encontrados < n_orden: |
1396 |
self.conn().send("No tienes en la mochila suficientes objetos con identificativo " + |
self.conn().send("No tienes en la mochila suficientes objetos con identificativo " + |
1397 |
id_objeto + ", solo tienes " + str(encontrados)) |
id_objeto + ", solo tienes " + str(encontrados)) |
1398 |
|
|
1399 |
|
|
1400 |
def cmd_dar(self, id_receptor, id_objeto, cantidad, n_orden, n_instancia): |
def cmd_dar(self, id_receptor, id_objeto, cantidad, n_orden, n_instancia): |
1401 |
encontrados = 0 |
encontrados = 0 |
1402 |
n_objeto = -1 |
n_objeto = -1 |
1403 |
|
|
1404 |
# Buscar el id_receptor en la sala actual. |
# Buscar el id_receptor en la sala actual. |
1405 |
if self.__personaje.sala != None: |
if self.__personaje.sala != None: |
1406 |
receptor_encontrado = 0 |
receptor_encontrado = 0 |
1407 |
for personaje in self.__personaje.sala.personajes.values(): |
for personaje in self.__personaje.sala.personajes.values(): |
1408 |
if personaje != self.__personaje and personaje.controlador != None and string.lower(personaje.id) == string.lower(id_receptor): |
if personaje != self.__personaje and personaje.controlador != None and string.lower(personaje.id) == string.lower(id_receptor): |
1409 |
receptor_encontrado = 1 |
receptor_encontrado = 1 |
1410 |
receptor = personaje |
receptor = personaje |
1411 |
break |
break |
1412 |
if receptor_encontrado == 0: |
if receptor_encontrado == 0: |
1413 |
self.conn().send('No hay nadie aquí que se llame '+id_receptor) |
self.conn().send('No hay nadie aquí que se llame '+id_receptor) |
1414 |
return |
return |
1415 |
|
|
1416 |
# Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo, |
# Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo, |
1417 |
# discriminamos con el parametro n_orden. |
# discriminamos con el parametro n_orden. |
1418 |
for instancias in self.__personaje.mochila(): |
for instancias in self.__personaje.mochila(): |
1419 |
n_objeto = n_objeto + 1 |
n_objeto = n_objeto + 1 |
1420 |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre()): |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre()): |
1421 |
encontrados = encontrados + 1 |
encontrados = encontrados + 1 |
1422 |
if encontrados == n_orden: |
if encontrados == n_orden: |
1423 |
|
|
1424 |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
1425 |
# suficientes. |
# suficientes. |
1426 |
if (n_instancia + cantidad - 1) > len(instancias): |
if (n_instancia + cantidad - 1) > len(instancias): |
1427 |
self.conn().send("No tienes " + str(n_instancia + cantidad - 1) + |
self.conn().send("No tienes " + str(n_instancia + cantidad - 1) + |
1428 |
" unidades de ese objeto en la mochila, solo tienes " + |
" unidades de ese objeto en la mochila, solo tienes " + |
1429 |
str(len(instancias))) |
str(len(instancias))) |
1430 |
else: |
else: |
1431 |
#Comprobar antes de seguir que el personaje que da el objeto se encuentra |
#Comprobar antes de seguir que el personaje que da el objeto se encuentra |
1432 |
#en la lista de confianza del receptor (salvo que el que da sea un Maia...) |
#en la lista de confianza del receptor (salvo que el que da sea un Maia...) |
1433 |
|
|
1434 |
if not self.__personaje.esMaia(): |
if not self.__personaje.esMaia(): |
1435 |
try: |
try: |
1436 |
confianza = receptor.ids_amigos[self.__personaje.id] |
confianza = receptor.ids_amigos[self.__personaje.id] |
1437 |
if confianza < 1: |
if confianza < 1: |
1438 |
raise KeyError |
raise KeyError |
1439 |
except KeyError, e: |
except KeyError, e: |
1440 |
self.conn().send(receptor.nombre + " no acepta tu objeto.\n",0) |
self.conn().send(receptor.nombre + " no acepta tu objeto.\n",0) |
1441 |
self.__personaje.actuar_individual(receptor, "te ha intentado dar " + id_objeto + " pero te has negado.") |
self.__personaje.actuar_individual(receptor, "te ha intentado dar " + id_objeto + " pero te has negado.") |
1442 |
break |
break |
1443 |
|
|
1444 |
# Todo ok: sacamos las instancias de la mochila |
# Todo ok: sacamos las instancias de la mochila |
1445 |
for i in range(0, cantidad): |
for i in range(0, cantidad): |
1446 |
instancia = self.__personaje.sacar_de_mochila(n_objeto, |
instancia = self.__personaje.sacar_de_mochila(n_objeto, |
1447 |
n_instancia - 1) |
n_instancia - 1) |
1448 |
receptor.meter_en_mochila(instancia) |
receptor.meter_en_mochila(instancia) |
1449 |
|
|
1450 |
#mensajes |
#mensajes |
1451 |
self.__personaje.actuar("ha dado " + instancia.nombre() + " a " + receptor.nombre) |
self.__personaje.actuar("ha dado " + instancia.nombre() + " a " + receptor.nombre) |
1452 |
self.conn().send("Has dado " + instancia.nombre() + " a " + receptor.nombre, 0) |
self.conn().send("Has dado " + instancia.nombre() + " a " + receptor.nombre, 0) |
1453 |
self.__personaje.actuar_individual(receptor, "te ha dado " + instancia.nombre() +' ('+str(cantidad)+' unidad[es])') |
self.__personaje.actuar_individual(receptor, "te ha dado " + instancia.nombre() +' ('+str(cantidad)+' unidad[es])') |
1454 |
if cantidad > 1: |
if cantidad > 1: |
1455 |
self.conn().send(" (" + str(cantidad) + " unidades)") |
self.conn().send(" (" + str(cantidad) + " unidades)") |
1456 |
else: |
else: |
1457 |
self.conn().send("") |
self.conn().send("") |
1458 |
|
|
1459 |
break |
break |
1460 |
|
|
1461 |
if encontrados == 0: |
if encontrados == 0: |
1462 |
self.conn().send("No tienes en la mochila ningún objeto con identificativo " + |
self.conn().send("No tienes en la mochila ningún objeto con identificativo " + |
1463 |
id_objeto) |
id_objeto) |
1464 |
elif encontrados < n_orden: |
elif encontrados < n_orden: |
1465 |
self.conn().send("No tienes en la mochila suficientes objetos con identificativo " + |
self.conn().send("No tienes en la mochila suficientes objetos con identificativo " + |
1466 |
id_objeto + ", solo tienes " + str(encontrados)) |
id_objeto + ", solo tienes " + str(encontrados)) |
1467 |
|
|
1468 |
|
|
1469 |
#%% def cmd_dejar(self, nombre_objeto, cantidad, accion = "dejado",dif=0): |
#%% def cmd_dejar(self, nombre_objeto, cantidad, accion = "dejado",dif=0): |
1470 |
#%% fallos = 0 |
#%% fallos = 0 |
1471 |
#%% for i in range(cantidad): |
#%% for i in range(cantidad): |
1472 |
#%% encontrar_id = self.__personaje.sala.dejar_objeto(self.__personaje, nombre_objeto, dif) |
#%% encontrar_id = self.__personaje.sala.dejar_objeto(self.__personaje, nombre_objeto, dif) |
1473 |
#%% if encontrar_id[0] == 0: |
#%% if encontrar_id[0] == 0: |
1474 |
#%% fallos +=1 |
#%% fallos +=1 |
1475 |
#%% if fallos != cantidad: |
#%% if fallos != cantidad: |
1476 |
#%% self.conn().send("Has "+accion+" en la sala "+str(cantidad - fallos)+" "+encontrar_id[1]) |
#%% self.conn().send("Has "+accion+" en la sala "+str(cantidad - fallos)+" "+encontrar_id[1]) |
1477 |
#%% if fallos !=0: |
#%% if fallos !=0: |
1478 |
#%% self.conn().send("No fue posible dejar "+str(cantidad)+ " "+ encontrar_id[1]) |
#%% self.conn().send("No fue posible dejar "+str(cantidad)+ " "+ encontrar_id[1]) |
1479 |
#%% self.cmd_actuar("deja algo.") |
#%% self.cmd_actuar("deja algo.") |
1480 |
#%% else: |
#%% else: |
1481 |
#%% self.conn().send("No hay en tu inventario un objeto con identificativo "+encontrar_id[1]) |
#%% self.conn().send("No hay en tu inventario un objeto con identificativo "+encontrar_id[1]) |
1482 |
|
|
1483 |
|
|
1484 |
def cmd_usar(self, nombre_objeto): |
def cmd_usar(self, nombre_objeto): |
1485 |
self.conn().send("Aún no se pueden usar objetos...") |
self.conn().send("Aún no se pueden usar objetos...") |
1486 |
#if nombre_objeto == "": |
#if nombre_objeto == "": |
1487 |
# self.conn.send("Debes especificar un objeto") |
# self.conn.send("Debes especificar un objeto") |
1488 |
#else: |
#else: |
1489 |
# resultado = encontrar_en_equipo(nombre_objeto, self.personaje.equipo) |
# resultado = encontrar_en_equipo(nombre_objeto, self.personaje.equipo) |
1490 |
#if resultado[1] == 0: |
#if resultado[1] == 0: |
1491 |
# self.conn().send('No tienes un objeto llamado '+nombre_objeto) |
# self.conn().send('No tienes un objeto llamado '+nombre_objeto) |
1492 |
#else: |
#else: |
1493 |
# for efecto in resultado[0][:]: |
# for efecto in resultado[0][:]: |
1494 |
# pass |
# pass |
1495 |
|
|
1496 |
def cmd_examinar(self, id_objeto, n_orden, n_instancia): |
def cmd_examinar(self, id_objeto, n_orden, n_instancia): |
1497 |
encontrados = 0 |
encontrados = 0 |
1498 |
n_objeto = -1 |
n_objeto = -1 |
1499 |
|
|
1500 |
# Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo, |
# Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo, |
1501 |
# discriminamos con el parametro n_orden. |
# discriminamos con el parametro n_orden. |
1502 |
for instancias in self.__personaje.mochila(): |
for instancias in self.__personaje.mochila(): |
1503 |
n_objeto = n_objeto + 1 |
n_objeto = n_objeto + 1 |
1504 |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre()): |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre()): |
1505 |
encontrados = encontrados + 1 |
encontrados = encontrados + 1 |
1506 |
if encontrados == n_orden: |
if encontrados == n_orden: |
1507 |
|
|
1508 |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
1509 |
# suficientes. |
# suficientes. |
1510 |
if (n_instancia) > len(instancias): |
if (n_instancia) > len(instancias): |
1511 |
self.conn().send("No tienes " + str(n_instancia) + |
self.conn().send("No tienes " + str(n_instancia) + |
1512 |
" instancias de ese objeto en la mochila, solo tienes " + |
" instancias de ese objeto en la mochila, solo tienes " + |
1513 |
str(len(instancias))) |
str(len(instancias))) |
1514 |
else: |
else: |
1515 |
|
|
1516 |
# Todo ok: examinamos la instancia |
# Todo ok: examinamos la instancia |
1517 |
instancia = instancias[n_instancia - 1] |
instancia = instancias[n_instancia - 1] |
1518 |
for item in instancia.descripcion(): |
for item in instancia.descripcion(): |
1519 |
if self.__personaje.prueba("inteligencia", 0, item["dificultad"], 0) >= 0: |
if self.__personaje.prueba("inteligencia", 0, item["dificultad"], 0) >= 0: |
1520 |
self.conn().send(item["texto"]) |
self.conn().send(item["texto"]) |
1521 |
|
|
1522 |
self.conn().send("Valor (me): " + str(instancia.valor()) + "," \ |
self.conn().send("Valor (me): " + str(instancia.valor()) + "," \ |
1523 |
" Peso (kg): " + str(instancia.peso()) + "," \ |
" Peso (kg): " + str(instancia.peso()) + "," \ |
1524 |
" Volumen: " + str(instancia.volumen()) + "," \ |
" Volumen: " + str(instancia.volumen()) + "," \ |
1525 |
" Estado (1-100): " + str(instancia.estado())) |
" Estado (1-100): " + str(instancia.estado())) |
1526 |
|
|
1527 |
#%% self.conn().send("Usos posibles:") |
#%% self.conn().send("Usos posibles:") |
1528 |
#%% for uso in instancia.usos: |
#%% for uso in instancia.usos: |
1529 |
#%% self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion']) |
#%% self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion']) |
1530 |
|
|
1531 |
|
|
1532 |
#%% def cmd_examinar(self, nombre_objeto,posicion): |
#%% def cmd_examinar(self, nombre_objeto,posicion): |
1533 |
#%% |
#%% |
1534 |
#%% encontrado = 0 |
#%% encontrado = 0 |
1535 |
#%% |
#%% |
1536 |
#%% self.conn().send("Examinas "+nombre_objeto+" "+"("+str(posicion)+")") |
#%% self.conn().send("Examinas "+nombre_objeto+" "+"("+str(posicion)+")") |
1537 |
#%% |
#%% |
1538 |
#%% for objeto in self.__personaje.equipo[:]: |
#%% for objeto in self.__personaje.equipo[:]: |
1539 |
#%% if objeto["id"] == nombre_objeto: |
#%% if objeto["id"] == nombre_objeto: |
1540 |
#%% if posicion > len(objeto["instancias"]): |
#%% if posicion > len(objeto["instancias"]): |
1541 |
#%% self.conn().send("No tienes tanto de eso.") |
#%% self.conn().send("No tienes tanto de eso.") |
1542 |
#%% objeto_examinado = 0 |
#%% objeto_examinado = 0 |
1543 |
#%% else: |
#%% else: |
1544 |
#%% objeto_examinado = objeto["instancias"][posicion-1] |
#%% objeto_examinado = objeto["instancias"][posicion-1] |
1545 |
#%% encontrado = 1 |
#%% encontrado = 1 |
1546 |
#%% break |
#%% break |
1547 |
#%% if encontrado == 0: |
#%% if encontrado == 0: |
1548 |
#%% self.conn().send('No tienes un objeto llamado '+nombre_objeto) |
#%% self.conn().send('No tienes un objeto llamado '+nombre_objeto) |
1549 |
#%% else: |
#%% else: |
1550 |
#%% if objeto_examinado == 0: pass |
#%% if objeto_examinado == 0: pass |
1551 |
#%% else: |
#%% else: |
1552 |
#%% for item in objeto_examinado.items: |
#%% for item in objeto_examinado.items: |
1553 |
#%% if self.__personaje.atrib["inteligencia"] >= item["dificultad"]: |
#%% if self.__personaje.atrib["inteligencia"] >= item["dificultad"]: |
1554 |
#%% self.conn().send(item["texto"]) |
#%% self.conn().send(item["texto"]) |
1555 |
#%% else: |
#%% else: |
1556 |
#%% pass |
#%% pass |
1557 |
#%% self.conn().send("Valor (me): "+str(objeto_examinado.valor)+","\ |
#%% self.conn().send("Valor (me): "+str(objeto_examinado.valor)+","\ |
1558 |
#%% " Peso (kg): "+str(objeto_examinado.peso)+","\ |
#%% " Peso (kg): "+str(objeto_examinado.peso)+","\ |
1559 |
#%% " Volumen: "+str(objeto_examinado.volumen)+","\ |
#%% " Volumen: "+str(objeto_examinado.volumen)+","\ |
1560 |
#%% " Estado (1-100): "+str(objeto_examinado.estado)) |
#%% " Estado (1-100): "+str(objeto_examinado.estado)) |
1561 |
#%% self.conn().send("Usos posibles:") |
#%% self.conn().send("Usos posibles:") |
1562 |
#%% for uso in objeto_examinado.usos: |
#%% for uso in objeto_examinado.usos: |
1563 |
#%% self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion']) |
#%% self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion']) |
1564 |
|
|
1565 |
|
|
1566 |
def cmd_observar(self, nombre_oponente): |
def cmd_observar(self, nombre_oponente): |
1567 |
|
|
1568 |
encontrado = 0 |
encontrado = 0 |
1569 |
for oponente in self.__personaje.sala.personajes.values(): |
for oponente in self.__personaje.sala.personajes.values(): |
1570 |
print oponente.id, oponente.nombre |
print oponente.id, oponente.nombre |
1571 |
if isinstance(oponente, PersonajeJugador): |
if isinstance(oponente, PersonajeJugador): |
1572 |
nombre = oponente.id |
nombre = oponente.id |
1573 |
else: |
else: |
1574 |
nombre = oponente.nombre |
nombre = oponente.nombre |
1575 |
|
|
1576 |
if normalizar_id(nombre_oponente) == extraer_id(nombre): |
if normalizar_id(nombre_oponente) == extraer_id(nombre): |
1577 |
encontrado = 1 |
encontrado = 1 |
1578 |
break |
break |
1579 |
|
|
1580 |
if encontrado == 0: |
if encontrado == 0: |
1581 |
self.conn().send("Aquí no hay nadie llamado " + nombre_oponente) |
self.conn().send("Aquí no hay nadie llamado " + nombre_oponente) |
1582 |
return |
return |
1583 |
|
|
1584 |
result = self.__personaje.comparar(oponente) |
result = self.__personaje.comparar(oponente) |
1585 |
|
|
1586 |
if result == Personaje.COMP_INF_MAS_FUERTE: |
if result == Personaje.COMP_INF_MAS_FUERTE: |
1587 |
adjetivo = "infinitamente más fuerte" |
adjetivo = "infinitamente más fuerte" |
1588 |
elif result == Personaje.COMP_MUCHO_MAS_FUERTE: |
elif result == Personaje.COMP_MUCHO_MAS_FUERTE: |
1589 |
adjetivo = "mucho más fuerte" |
adjetivo = "mucho más fuerte" |
1590 |
elif result == Personaje.COMP_BAST_MAS_FUERTE: |
elif result == Personaje.COMP_BAST_MAS_FUERTE: |
1591 |
adjetivo = "bastante más fuerte" |
adjetivo = "bastante más fuerte" |
1592 |
elif result == Personaje.COMP_ALGO_MAS_FUERTE: |
elif result == Personaje.COMP_ALGO_MAS_FUERTE: |
1593 |
adjetivo = "algo más fuerte" |
adjetivo = "algo más fuerte" |
1594 |
elif result == Personaje.COMP_POR_EL_ESTILO: |
elif result == Personaje.COMP_POR_EL_ESTILO: |
1595 |
adjetivo = "por el estilo" |
adjetivo = "por el estilo" |
1596 |
elif result == Personaje.COMP_ALGO_MAS_DEBIL: |
elif result == Personaje.COMP_ALGO_MAS_DEBIL: |
1597 |
adjetivo = "algo más débil" |
adjetivo = "algo más débil" |
1598 |
elif result == Personaje.COMP_BAST_MAS_DEBIL: |
elif result == Personaje.COMP_BAST_MAS_DEBIL: |
1599 |
adjetivo = "bastante más débil" |
adjetivo = "bastante más débil" |
1600 |
elif result == Personaje.COMP_MUCHO_MAS_DEBIL: |
elif result == Personaje.COMP_MUCHO_MAS_DEBIL: |
1601 |
adjetivo = "mucho más débil" |
adjetivo = "mucho más débil" |
1602 |
elif result == Personaje.COMP_INF_MAS_DEBIL: |
elif result == Personaje.COMP_INF_MAS_DEBIL: |
1603 |
adjetivo = "infinitamente más débil" |
adjetivo = "infinitamente más débil" |
1604 |
|
|
1605 |
self.conn().send(oponente.nombre + " es " + adjetivo + " que tú") |
self.conn().send(oponente.nombre + " es " + adjetivo + " que tú") |
1606 |
|
|
1607 |
if oponente == self.__personaje: |
if oponente == self.__personaje: |
1608 |
self.conn().send('Tu descripción:') |
self.conn().send('Tu descripción:') |
1609 |
for key in self.__personaje.descripcion: |
for key in self.__personaje.descripcion: |
1610 |
self.conn().send(color(31)+key["texto"]+finl) |
self.conn().send(color(31)+key["texto"]+finl) |
1611 |
else: |
else: |
1612 |
self.conn().send('Descripción:') |
self.conn().send('Descripción:') |
1613 |
for key in oponente.descripcion: |
for key in oponente.descripcion: |
1614 |
if self.__personaje.atrib["inteligencia"] + tirar_dados(3) > key["dificultad"]: |
if self.__personaje.atrib["inteligencia"] + tirar_dados(3) > key["dificultad"]: |
1615 |
self.conn().send(color(31)+key["texto"]+finl) |
self.conn().send(color(31)+key["texto"]+finl) |
1616 |
|
|
1617 |
|
|
1618 |
def cmd_seguir(self, id_lider): |
def cmd_seguir(self, id_lider): |
1619 |
if not self.__personaje.sala.personajes.has_key(id_lider): |
if not self.__personaje.sala.personajes.has_key(id_lider): |
1620 |
self.conn().send('Aqui no hay nadie llamado ' + id_lider) |
self.conn().send('Aqui no hay nadie llamado ' + id_lider) |
1621 |
else: |
else: |
1622 |
if self.__personaje.anterior != None: |
if self.__personaje.anterior != None: |
1623 |
self.conn().send('Ya no estas siguiendo a ' + self.__personaje.anterior.id) |
self.conn().send('Ya no estas siguiendo a ' + self.__personaje.anterior.id) |
1624 |
self.__personaje.noseguir() |
self.__personaje.noseguir() |
1625 |
|
|
1626 |
lider = self.__personaje.sala.personajes[id_lider] |
lider = self.__personaje.sala.personajes[id_lider] |
1627 |
self.__personaje.seguir(lider) |
self.__personaje.seguir(lider) |
1628 |
self.conn().send('Ahora estas siguiendo a ' + lider.id) |
self.conn().send('Ahora estas siguiendo a ' + lider.id) |
1629 |
|
|
1630 |
|
|
1631 |
def cmd_noseguir(self): |
def cmd_noseguir(self): |
1632 |
if self.__personaje.anterior == None: |
if self.__personaje.anterior == None: |
1633 |
self.conn().send('¡No estabas siguiendo a nadie!') |
self.conn().send('¡No estabas siguiendo a nadie!') |
1634 |
else: |
else: |
1635 |
self.conn().send('Ya no estas siguiendo a ' + self.__personaje.anterior.id) |
self.conn().send('Ya no estas siguiendo a ' + self.__personaje.anterior.id) |
1636 |
self.__personaje.noseguir() |
self.__personaje.noseguir() |
1637 |
|
|
1638 |
|
|
1639 |
def cmd_ip(self): |
def cmd_ip(self): |
1640 |
self.conn().send('Estás conectado desde la dirección ' + self.conn().ip) |
self.conn().send('Estás conectado desde la dirección ' + self.conn().ip) |
1641 |
|
|
1642 |
|
|
1643 |
def cmd_area(self): |
def cmd_area(self): |
1644 |
self.conn().send('Estás en el área ' + self.__personaje.sala.area) |
self.conn().send('Estás en el área ' + self.__personaje.sala.area) |
1645 |
|
|
1646 |
|
|
1647 |
def cmd_atacar(self, nombre_oponente): |
def cmd_atacar(self, nombre_oponente): |
1648 |
|
|
1649 |
if not self.__personaje.sala.personajes.has_key(nombre_oponente): |
if not self.__personaje.sala.personajes.has_key(nombre_oponente): |
1650 |
self.conn().send("Aquí no hay nadie llamado " + nombre_oponente) |
self.conn().send("Aquí no hay nadie llamado " + nombre_oponente) |
1651 |
self.estado_0() |
self.estado_0() |
1652 |
else: |
else: |
1653 |
self.oponente = self.__personaje.sala.personajes[nombre_oponente] |
self.oponente = self.__personaje.sala.personajes[nombre_oponente] |
1654 |
|
|
1655 |
if self.oponente.estado == "muerto": |
if self.oponente.estado == "muerto": |
1656 |
self.conn().send("¡" + nombre_oponente + " ya está muerto/a!") |
self.conn().send("¡" + nombre_oponente + " ya está muerto/a!") |
1657 |
self.estado_0() |
self.estado_0() |
1658 |
else: |
else: |
1659 |
if self.__personaje.competicion(self.oponente, "carisma", "sabiduria"): |
if self.__personaje.competicion(self.oponente, "carisma", "sabiduria"): |
1660 |
self.cmd_observar(nombre_oponente) |
self.cmd_observar(nombre_oponente) |
1661 |
self.estado_combate_0() |
self.estado_combate_0() |
1662 |
else: |
else: |
1663 |
self.cbt_empieza_combate_atacas() |
self.cbt_empieza_combate_atacas() |
1664 |
self.cbt_pegar() |
self.cbt_pegar() |
1665 |
if self.oponente.estado == "muerto": |
if self.oponente.estado == "muerto": |
1666 |
self.cbt_oponente_muerto() |
self.cbt_oponente_muerto() |
1667 |
self.cbt_termina_combate() |
self.cbt_termina_combate() |
1668 |
self.estado_0() |
self.estado_0() |
1669 |
elif self.__personaje.estado == "muerto": |
elif self.__personaje.estado == "muerto": |
1670 |
self.cbt_personaje_muerto() |
self.cbt_personaje_muerto() |
1671 |
self.cbt_termina_combate() |
self.cbt_termina_combate() |
1672 |
self.estado_0() |
self.estado_0() |
1673 |
else: |
else: |
1674 |
self.estado_combate_1() |
self.estado_combate_1() |
1675 |
|
|
1676 |
|
|
1677 |
def cmd_reloj(self): |
def cmd_reloj(self): |
1678 |
ahora = FechaHoraMine_ahora() |
ahora = FechaHoraMine_ahora() |
1679 |
self.conn().send("%s (%s)" % (str(ahora), ahora.desc_seccion())) |
self.conn().send("%s (%s)" % (str(ahora), ahora.desc_seccion())) |
1680 |
|
|
1681 |
|
|
1682 |
# Código para pruebas unitarias del módulo. |
# Código para pruebas unitarias del módulo. |
1683 |
|
|
1684 |
if (__name__ == '__main__'): |
if (__name__ == '__main__'): |
1685 |
print "No hay código para pruebas unitarias del módulo." |
print "No hay código para pruebas unitarias del módulo." |
1686 |
print "Para probar, ejecutar mine.py y conectarse via telnet." |
print "Para probar, ejecutar mine.py y conectarse via telnet." |
1687 |
|
|