65 |
|
|
66 |
self.cmd_mirar() |
self.cmd_mirar() |
67 |
|
|
68 |
self.conn().send("\nIMPORTANTE: los comandos se escriben empezando con el carácter +.") |
self.conn().send("IMPORTANTE: los comandos se escriben empezando con el carácter +.") |
69 |
self.conn().send("Escribe +? para leer la ayuda.") |
self.conn().send("Escribe +? para leer la ayuda.") |
70 |
self.conn().send("Para hablar, simplemente escribe algo sin + delante.") |
self.conn().send("Para hablar, simplemente escribe algo sin + delante.") |
71 |
|
|
243 |
def estado_1(self): |
def estado_1(self): |
244 |
self.padre().desconectar() |
self.padre().desconectar() |
245 |
|
|
|
# --------------------- |
|
|
# EJECUCION DE COMANDOS |
|
|
# --------------------- |
|
246 |
|
|
247 |
|
# -------------------- |
248 |
|
# "PARSER" DE COMANDOS |
249 |
|
# -------------------- |
250 |
|
|
251 |
def ejecutar(self, accion, args): |
def ejecutar(self, accion, args): |
252 |
|
|
291 |
# Si no, ver si es el id de una de las salidas. |
# Si no, ver si es el id de una de las salidas. |
292 |
if es_salida == 0: |
if es_salida == 0: |
293 |
for salida in self.__personaje.sala.salidas: |
for salida in self.__personaje.sala.salidas: |
294 |
if accion[1:] == extraer_id(salida["descripcion"]) and \ |
if normalizar_id(accion[1:]) == extraer_id(salida["descripcion"]) and \ |
295 |
self.__tirada_percep_sala >= salida["dificultad"]: |
self.__tirada_percep_sala >= salida["dificultad"]: |
296 |
es_salida = 1 |
es_salida = 1 |
297 |
self.cmd_mover(salida["id"]) |
self.cmd_mover(salida["id"]) |
415 |
self.cmd_mirar(resumen=1) |
self.cmd_mirar(resumen=1) |
416 |
self.estado_0() |
self.estado_0() |
417 |
|
|
418 |
elif accion == "+equipo": |
elif accion == "+mochila": |
419 |
self.cmd_equipo() |
self.cmd_mochila() |
420 |
self.estado_0() |
self.estado_0() |
421 |
|
|
422 |
elif accion == "+silencio": |
elif accion == "+silencio": |
429 |
self.estado_0() |
self.estado_0() |
430 |
|
|
431 |
elif accion == "+c" or accion == "+coger": |
elif accion == "+c" or accion == "+coger": |
432 |
try: |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
433 |
nombre_objeto = (len(args) > 0 and args[0]) or "" |
self.parsear_ident_objeto(args, "coger") |
434 |
cantidad = int((len(args) > 1 and args[1])) or 1 |
if ok: |
435 |
if cantidad > 50: |
self.cmd_coger(id_objeto, cantidad, n_orden, n_instancia) |
436 |
cantidad = 50 |
self.estado_0() |
437 |
self.conn().send("No se permite coger más de 50 objetos por vez.") |
|
438 |
self.cmd_coger(nombre_objeto,cantidad) |
#%% try: |
439 |
self.estado_0() |
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
440 |
except: |
#%% cantidad = int((len(args) > 1 and args[1])) or 1 |
441 |
self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
#%% if cantidad > 50: |
442 |
self.estado_0() |
#%% cantidad = 50 |
443 |
|
#%% self.conn().send("No se permite coger más de 50 objetos por vez.") |
444 |
|
#%% self.cmd_coger(nombre_objeto,cantidad) |
445 |
|
#%% self.estado_0() |
446 |
|
#%% except: |
447 |
|
#%% self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
448 |
|
#%% self.estado_0() |
449 |
|
|
450 |
elif accion == "+d" or accion == "+dejar": |
elif accion == "+d" or accion == "+dejar": |
451 |
try: |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
452 |
nombre_objeto = (len(args) > 0 and args[0]) or "" |
self.parsear_ident_objeto(args, "dejar") |
453 |
cantidad = int((len(args) > 1 and args[1])) or 1 |
if ok: |
454 |
self.cmd_dejar(nombre_objeto,cantidad) |
self.cmd_dejar(id_objeto, cantidad, n_orden, n_instancia) |
455 |
self.estado_0() |
|
456 |
except: |
self.estado_0() |
457 |
self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
|
458 |
self.estado_0() |
#%% try: |
459 |
|
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
460 |
|
#%% cantidad = int((len(args) > 1 and args[1])) or 1 |
461 |
|
#%% self.cmd_dejar(nombre_objeto,cantidad) |
462 |
|
#%% self.estado_0() |
463 |
|
#%% except: |
464 |
|
#%% self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
465 |
|
#%% self.estado_0() |
466 |
|
|
467 |
elif accion == "+esc" or accion == "+esconder": |
elif accion == "+esc" or accion == "+esconder": |
468 |
try: |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
469 |
nombre_objeto = (len(args) > 0 and args[0]) or "" |
self.parsear_ident_objeto(args, "esconder") |
470 |
cantidad = int((len(args) > 1 and args[1])) or 1 |
if ok: |
471 |
self.cmd_dejar(nombre_objeto, cantidad, accion = "escondido", dif=self.__personaje.atrib["inteligencia"]) |
dificultad = self.__personaje.generar_dificultad("inteligencia", 0) |
472 |
self.estado_0() |
self.cmd_dejar(id_objeto, cantidad, n_orden, n_instancia, dificultad) |
473 |
except: |
|
474 |
self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
self.estado_0() |
475 |
self.estado_0() |
|
476 |
|
#%% try: |
477 |
|
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
478 |
|
#%% cantidad = int((len(args) > 1 and args[1])) or 1 |
479 |
|
#%% self.cmd_dejar(nombre_objeto, cantidad, accion = "escondido", dif=self.__personaje.atrib["inteligencia"]) |
480 |
|
#%% self.estado_0() |
481 |
|
#%% except: |
482 |
|
#%% self.conn().send('Ha ocurrido un error. Consulta la sintaxis del comando en la ayuda con +?') |
483 |
|
#%% self.estado_0() |
484 |
|
|
485 |
elif accion == "+ex" or accion == "+examinar": |
elif accion == "+ex" or accion == "+examinar": |
486 |
nombre_objeto = (len(args) > 0 and args[0]) or "" |
(id_objeto, cantidad, n_orden, n_instancia, ok) = \ |
487 |
posicion = int((len(args) > 1 and args[1])) or 1 |
self.parsear_ident_objeto(args, "examinar") |
488 |
if posicion < 1: posicion = 1 |
if ok: |
489 |
self.cmd_examinar(nombre_objeto,posicion) |
if cantidad > 1: |
490 |
|
self.conn().send("El comando no es correcto, consulta la ayuda con +?") |
491 |
|
else: |
492 |
|
self.cmd_examinar(id_objeto, n_orden, n_instancia) |
493 |
|
|
494 |
self.estado_0() |
self.estado_0() |
495 |
|
|
496 |
|
#%% nombre_objeto = (len(args) > 0 and args[0]) or "" |
497 |
|
#%% posicion = int((len(args) > 1 and args[1])) or 1 |
498 |
|
#%% if posicion < 1: posicion = 1 |
499 |
|
#%% self.cmd_examinar(nombre_objeto,posicion) |
500 |
|
#%% self.estado_0() |
501 |
|
|
502 |
|
|
503 |
elif accion == "+u" or accion == "+usar": |
elif accion == "+u" or accion == "+usar": |
584 |
self.cmd_hablar(mensaje, idioma=self.__personaje.idioma_base) |
self.cmd_hablar(mensaje, idioma=self.__personaje.idioma_base) |
585 |
self.estado_0() |
self.estado_0() |
586 |
|
|
587 |
|
|
588 |
|
|
589 |
|
def parsear_ident_objeto(self, args, comando): |
590 |
|
"""Pequeña funcion utilitaria para parsear la secuencia |
591 |
|
[<cantidad>] id_objeto [<n_orden>] [<n_instancia>]. |
592 |
|
|
593 |
|
cantidad, n_orden y n_instancia se reconocen porque son sólo dígitos. |
594 |
|
id_objeto puede tener más de una palabra. |
595 |
|
""" |
596 |
|
cantidad = 1 |
597 |
|
id_objeto = "" |
598 |
|
n_orden = 1 |
599 |
|
n_instancia = 1 |
600 |
|
ok = 0 |
601 |
|
|
602 |
|
i = 0 |
603 |
|
if i < len(args) and args[i].isdigit(): |
604 |
|
cantidad = int(args[i]) |
605 |
|
i = i + 1 |
606 |
|
|
607 |
|
while i < len(args) and not args[i].isdigit(): |
608 |
|
if len(id_objeto) > 0: |
609 |
|
id_objeto += " " |
610 |
|
id_objeto += args[i] |
611 |
|
i = i + 1 |
612 |
|
|
613 |
|
if i < len(args): |
614 |
|
n_orden = int(args[i]) |
615 |
|
i = i + 1 |
616 |
|
|
617 |
|
if i < len(args): |
618 |
|
n_instancia = int(args[i]) |
619 |
|
i = i + 1 |
620 |
|
|
621 |
|
if id_objeto == "": |
622 |
|
self.conn().send("Tienes que indicar qué objeto quieres " + comando + ".") |
623 |
|
elif cantidad < 1: |
624 |
|
self.conn().send("La cantidad tiene que ser igual o mayor que 1.") |
625 |
|
elif n_orden < 1: |
626 |
|
self.conn().send("El número de orden tiene que ser igual o mayor que 1.") |
627 |
|
elif n_instancia < 1: |
628 |
|
self.conn().send("El número de objeto tiene que ser igual o mayor que 1.") |
629 |
|
else: |
630 |
|
ok = 1 |
631 |
|
|
632 |
|
return (id_objeto, cantidad, n_orden, n_instancia, ok) |
633 |
|
|
634 |
|
|
635 |
|
# --------------------- |
636 |
|
# EJECUCION DE COMANDOS |
637 |
|
# --------------------- |
638 |
|
|
639 |
def cmd_doc(self,args): |
def cmd_doc(self,args): |
640 |
self.conn().send("\n"+color(32)+"--------- Documentación de Minë ---------\n"+finl) |
self.conn().send("\n"+color(32)+"--------- Documentación de Minë ---------\n"+finl) |
641 |
if len(args) > 0: |
if len(args) > 0: |
722 |
self.conn().send("Observar a un personaje: " + |
self.conn().send("Observar a un personaje: " + |
723 |
color(31) + '+[ob]servar <personaje>' +finl) |
color(31) + '+[ob]servar <personaje>' +finl) |
724 |
|
|
725 |
self.conn().send("Mirar el equipo (test): " + |
self.conn().send("Mirar el contenido de la mochila: " + |
726 |
color(31) + '+equipo' + finl) |
color(31) + '+mochila' + finl) |
727 |
|
|
728 |
self.conn().send("Limitar el texto recibido sí/no: " + |
self.conn().send("Limitar el texto recibido sí/no: " + |
729 |
color(31) + '+silencio' + finl) |
color(31) + '+silencio' + finl) |
735 |
self.conn().send("Esconder un objeto en la sala (test): " + |
self.conn().send("Esconder un objeto en la sala (test): " + |
736 |
color(31) + '+[esc]onder <nombre> <cantidad>' + finl) |
color(31) + '+[esc]onder <nombre> <cantidad>' + finl) |
737 |
|
|
738 |
self.conn().send("Examinar un objeto de tu equipo (test): " + |
self.conn().send("Examinar un objeto de tu mochila (test): " + |
739 |
color(31) + '+[ex]aminar <nombre> <numero>' + finl) |
color(31) + '+[ex]aminar <nombre> <numero>' + finl) |
740 |
|
|
741 |
self.conn().send("Usar un objeto que porta el personaje (test): " + |
self.conn().send("Usar un objeto que porta el personaje (test): " + |
1094 |
self.conn().send(salida["descripcion"], 0) |
self.conn().send(salida["descripcion"], 0) |
1095 |
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 |
1096 |
# error raro si hago solo uno sumando los tres |
# error raro si hago solo uno sumando los tres |
1097 |
self.conn().send("") # strings (??) |
# strings (??) |
1098 |
|
|
1099 |
if len(sala.personajes) > 1: # siempre habrá al menos uno: nuestro personaje |
if len(sala.personajes) > 1: # siempre habrá al menos uno: nuestro personaje |
1100 |
self.conn().send(color(35) + 'Aquí se encuentran:' + finl) |
self.conn().send(color(35) + '\nAquí se encuentran:' + finl) |
1101 |
for enc in sala.personajes.values(): |
for enc in sala.personajes.values(): |
1102 |
if isinstance(enc, PersonajeNoJugador): |
if isinstance(enc, PersonajeNoJugador): |
1103 |
pass |
pass |
1109 |
self.conn().send(color(35) + enc.get('descripcion') + finl) |
self.conn().send(color(35) + enc.get('descripcion') + finl) |
1110 |
|
|
1111 |
if len(sala.objetos) > 0: |
if len(sala.objetos) > 0: |
1112 |
self.conn().send("Aquí hay:") |
self.conn().send(color(32) + "\nAquí hay:" + finl) |
1113 |
for objeto in sala.objetos[:]: |
for objeto in sala.objetos: |
1114 |
if len(objeto["instancias"]) >0: |
if len(objeto["instancias"]) > 0: |
1115 |
if self.__tirada_percep_sala >= objeto["dificultad"]: |
if self.__tirada_percep_sala >= objeto["dificultad"]: |
1116 |
self.conn().send(objeto["instancias"][0].nombre + " (" + str(len(objeto["instancias"])) + ")"+ " ["+objeto["id"]+"]") |
self.conn().send(color(32) + objeto["instancias"][0].nombre, 0) |
1117 |
|
if len(objeto["instancias"]) > 1: |
1118 |
|
self.conn().send(" (" + str(len(objeto["instancias"])) + ")", 0) |
1119 |
|
self.conn().send(finl) |
1120 |
|
|
1121 |
|
self.conn().send("") |
1122 |
|
|
1123 |
|
|
1124 |
def cmd_equipo(self): |
def cmd_mochila(self): |
1125 |
print self.__personaje.equipo |
self.conn().send(color(31) + "--------- Contenido de la mochila ---------" + finl) |
1126 |
self.conn().send(color(31)+"------------------ Equipo -----------------"+finl) |
if len(self.__personaje.mochila()) == 0: |
1127 |
self.conn().send("ID\t\tNombre\t\tCantidad") |
self.conn().send("(la mochila esta vacia)") |
1128 |
for objeto in self.__personaje.equipo[:]: |
else: |
1129 |
if len(objeto["instancias"]) > 0: |
self.conn().send(color(31) + "%-35s%-8s" % ("Nombre", "Cantidad") + finl) |
1130 |
self.conn().send(objeto["id"]+str((16 - len(objeto["id"]))*' ')+objeto["instancias"][0].nombre+str((21-len(objeto["instancias"][0].nombre))*' ')+str(len(objeto["instancias"]))) |
for objetos in self.__personaje.mochila(): |
1131 |
|
self.conn().send("%-35s%8d" % (objetos[0].nombre, len(objetos))) |
1132 |
|
|
1133 |
|
|
1134 |
def cmd_idioma(self, idioma_base): |
def cmd_idioma(self, idioma_base): |
1135 |
if idioma_base in ['oestron','quenya','enano','orco']: |
if idioma_base in ['oestron','quenya','enano','orco']: |
1145 |
else: |
else: |
1146 |
self.conn().send("Lo siento, has de elegir como idioma base uno de los siguientes: oestron, quenya, enano u orco") |
self.conn().send("Lo siento, has de elegir como idioma base uno de los siguientes: oestron, quenya, enano u orco") |
1147 |
|
|
|
def cmd_coger(self, nombre_objeto, cantidad=1): |
|
1148 |
|
|
1149 |
adquiridos = 0 #número de fallos |
def cmd_coger(self, id_objeto, cantidad, n_orden, n_instancia): |
1150 |
despues = 0 |
encontrados = 0 |
1151 |
antes = 0 |
n_objeto = -1 |
1152 |
|
|
1153 |
for objeto_en_equipo in self.__personaje.equipo: |
# Buscar el objeto en la sala. Puede que haya varios con el mismo identificativo, |
1154 |
if objeto_en_equipo["id"] == nombre_objeto: |
# discriminamos con el parametro n_orden. |
1155 |
antes = len(objeto_en_equipo["instancias"]) |
for objeto in self.__personaje.sala.objetos: |
1156 |
|
n_objeto = n_objeto + 1 |
1157 |
for i in range(cantidad): |
instancias = objeto["instancias"] |
1158 |
self.__personaje.sala.coger_objeto(self.__personaje, nombre_objeto) |
if len(instancias) > 0: |
1159 |
|
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre): |
1160 |
|
encontrados = encontrados + 1 |
1161 |
|
if encontrados == n_orden: |
1162 |
|
|
1163 |
|
# Hemos encontrado el objeto, ahora vemos si hay instancias |
1164 |
|
# suficientes. |
1165 |
|
if (n_instancia + cantidad - 1) > len(instancias): |
1166 |
|
self.conn().send("No hay " + str(n_instancia + cantidad - 1) + |
1167 |
|
" instancias de ese objeto, solo hay " + |
1168 |
|
str(len(instancias))) |
1169 |
|
else: |
1170 |
|
|
1171 |
|
# Todo ok: cogemos las instancias y las metemos en la mochila |
1172 |
|
for i in range(0, cantidad): |
1173 |
|
instancia = self.__personaje.sala.coger_objeto(n_objeto, |
1174 |
|
n_instancia - 1) |
1175 |
|
self.__personaje.meter_en_mochila(instancia) |
1176 |
|
|
1177 |
|
self.__personaje.actuar("ha cogido " + instancia.nombre) |
1178 |
|
self.conn().send("Has cogido " + instancia.nombre, 0) |
1179 |
|
if cantidad > 1: |
1180 |
|
self.conn().send(" (" + str(cantidad) + " unidades)") |
1181 |
|
else: |
1182 |
|
self.conn().send("") |
1183 |
|
|
1184 |
|
break |
1185 |
|
|
1186 |
|
if encontrados == 0: |
1187 |
|
self.conn().send("No hay en la sala ningún objeto con identificativo " + id_objeto) |
1188 |
|
elif encontrados < n_orden: |
1189 |
|
self.conn().send("No hay en la sala suficientes objetos con identificativo " + |
1190 |
|
id_objeto + ", solo hay " + str(encontrados)) |
1191 |
|
|
1192 |
|
|
1193 |
|
#%% def cmd_coger(self, nombre_objeto, cantidad=1): |
1194 |
|
#%% |
1195 |
|
#%% adquiridos = 0 #número de fallos |
1196 |
|
#%% despues = 0 |
1197 |
|
#%% antes = 0 |
1198 |
|
#%% |
1199 |
|
#%% for objeto_en_equipo in self.__personaje.equipo: |
1200 |
|
#%% if objeto_en_equipo["id"] == nombre_objeto: |
1201 |
|
#%% antes = len(objeto_en_equipo["instancias"]) |
1202 |
|
#%% |
1203 |
|
#%% for i in range(cantidad): |
1204 |
|
#%% self.__personaje.sala.coger_objeto(self.__personaje, nombre_objeto) |
1205 |
|
#%% |
1206 |
|
#%% for objeto_en_equipo in self.__personaje.equipo: |
1207 |
|
#%% if objeto_en_equipo["id"] == nombre_objeto: |
1208 |
|
#%% despues = len(objeto_en_equipo["instancias"]) |
1209 |
|
#%% |
1210 |
|
#%% if despues - antes <1: |
1211 |
|
#%% self.conn().send("No hay en la sala un objeto con identificativo "+nombre_objeto) |
1212 |
|
#%% else: |
1213 |
|
#%% self.conn().send("Se cogieron "+str(despues-antes) +" "+nombre_objeto+" de "+str(cantidad)+" indicados") |
1214 |
|
|
|
for objeto_en_equipo in self.__personaje.equipo: |
|
|
if objeto_en_equipo["id"] == nombre_objeto: |
|
|
despues = len(objeto_en_equipo["instancias"]) |
|
|
|
|
|
if despues - antes <1: |
|
|
self.conn().send("No hay en la sala un objeto con identificativo "+nombre_objeto) |
|
|
else: |
|
|
self.conn().send("Se cogieron "+str(despues-antes) +" "+nombre_objeto+" de "+str(cantidad)+" indicados") |
|
1215 |
|
|
1216 |
def cmd_dejar(self, nombre_objeto, cantidad, accion = "dejado",dif=0): |
def cmd_dejar(self, id_objeto, cantidad, n_orden, n_instancia, dificultad = 0): |
1217 |
fallos = 0 |
encontrados = 0 |
1218 |
for i in range(cantidad): |
n_objeto = -1 |
1219 |
encontrar_id = self.__personaje.sala.dejar_objeto(self.__personaje, nombre_objeto, dif) |
|
1220 |
if encontrar_id[0] == 0: |
# Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo, |
1221 |
fallos +=1 |
# discriminamos con el parametro n_orden. |
1222 |
if fallos != cantidad: |
for instancias in self.__personaje.mochila(): |
1223 |
self.conn().send("Has "+accion+" en la sala "+str(cantidad - fallos)+" "+encontrar_id[1]) |
n_objeto = n_objeto + 1 |
1224 |
if fallos !=0: |
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre): |
1225 |
self.conn().send("No fue posible dejar "+str(cantidad)+ " "+ encontrar_id[1]) |
encontrados = encontrados + 1 |
1226 |
self.cmd_actuacion_personaje("deja algo.") |
if encontrados == n_orden: |
1227 |
else: |
|
1228 |
self.conn().send("No hay en tu inventario un objeto con identificativo "+encontrar_id[1]) |
# Hemos encontrado el objeto, ahora vemos si hay instancias |
1229 |
|
# suficientes. |
1230 |
|
if (n_instancia + cantidad - 1) > len(instancias): |
1231 |
|
self.conn().send("No tienes " + str(n_instancia + cantidad - 1) + |
1232 |
|
" instancias de ese objeto en la mochila, solo tienes " + |
1233 |
|
str(len(instancias))) |
1234 |
|
else: |
1235 |
|
|
1236 |
|
# Todo ok: sacamos las instancias de la mochila y las dejamos |
1237 |
|
# en la sala |
1238 |
|
for i in range(0, cantidad): |
1239 |
|
instancia = self.__personaje.sacar_de_mochila(n_objeto, |
1240 |
|
n_instancia - 1) |
1241 |
|
self.__personaje.sala.dejar_objeto(instancia, dificultad) |
1242 |
|
|
1243 |
|
if dificultad == 0: |
1244 |
|
self.__personaje.actuar("ha dejado " + instancia.nombre) |
1245 |
|
self.conn().send("Has dejado " + instancia.nombre, 0) |
1246 |
|
else: |
1247 |
|
self.__personaje.actuar("ha escondido algo") |
1248 |
|
self.conn().send("Has escondido " + instancia.nombre, 0) |
1249 |
|
|
1250 |
|
if cantidad > 1: |
1251 |
|
self.conn().send(" (" + str(cantidad) + " unidades)") |
1252 |
|
else: |
1253 |
|
self.conn().send("") |
1254 |
|
|
1255 |
|
break |
1256 |
|
|
1257 |
|
if encontrados == 0: |
1258 |
|
self.conn().send("No tienes en la mochila ningún objeto con identificativo " + id_objeto) |
1259 |
|
elif encontrados < n_orden: |
1260 |
|
self.conn().send("No tienes en la mochila suficientes objetos con identificativo " + |
1261 |
|
id_objeto + ", solo tienes " + str(encontrados)) |
1262 |
|
|
1263 |
|
#%% def cmd_dejar(self, nombre_objeto, cantidad, accion = "dejado",dif=0): |
1264 |
|
#%% fallos = 0 |
1265 |
|
#%% for i in range(cantidad): |
1266 |
|
#%% encontrar_id = self.__personaje.sala.dejar_objeto(self.__personaje, nombre_objeto, dif) |
1267 |
|
#%% if encontrar_id[0] == 0: |
1268 |
|
#%% fallos +=1 |
1269 |
|
#%% if fallos != cantidad: |
1270 |
|
#%% self.conn().send("Has "+accion+" en la sala "+str(cantidad - fallos)+" "+encontrar_id[1]) |
1271 |
|
#%% if fallos !=0: |
1272 |
|
#%% self.conn().send("No fue posible dejar "+str(cantidad)+ " "+ encontrar_id[1]) |
1273 |
|
#%% self.cmd_actuacion_personaje("deja algo.") |
1274 |
|
#%% else: |
1275 |
|
#%% self.conn().send("No hay en tu inventario un objeto con identificativo "+encontrar_id[1]) |
1276 |
|
|
1277 |
|
|
1278 |
def cmd_usar(self, nombre_objeto): |
def cmd_usar(self, nombre_objeto): |
1287 |
# for efecto in resultado[0][:]: |
# for efecto in resultado[0][:]: |
1288 |
# pass |
# pass |
1289 |
|
|
1290 |
def cmd_examinar(self, nombre_objeto,posicion): |
def cmd_examinar(self, id_objeto, n_orden, n_instancia): |
1291 |
|
encontrados = 0 |
1292 |
|
n_objeto = -1 |
1293 |
|
|
1294 |
|
# Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo, |
1295 |
|
# discriminamos con el parametro n_orden. |
1296 |
|
for instancias in self.__personaje.mochila(): |
1297 |
|
n_objeto = n_objeto + 1 |
1298 |
|
if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre): |
1299 |
|
encontrados = encontrados + 1 |
1300 |
|
if encontrados == n_orden: |
1301 |
|
|
1302 |
|
# Hemos encontrado el objeto, ahora vemos si hay instancias |
1303 |
|
# suficientes. |
1304 |
|
if (n_instancia) > len(instancias): |
1305 |
|
self.conn().send("No tienes " + str(n_instancia) + |
1306 |
|
" instancias de ese objeto en la mochila, solo tienes " + |
1307 |
|
str(len(instancias))) |
1308 |
|
else: |
1309 |
|
|
1310 |
|
# Todo ok: examinamos la instancia |
1311 |
|
instancia = instancias[n_instancia - 1] |
1312 |
|
print dir(instancia) |
1313 |
|
for item in instancia.descripcion: |
1314 |
|
if self.__personaje.prueba("inteligencia", 0, item["dificultad"], 0) >= 0: |
1315 |
|
self.conn().send(item["texto"]) |
1316 |
|
|
1317 |
|
self.conn().send("Valor (me): " + str(instancia.valor) + "," \ |
1318 |
|
" Peso (kg): " + str(instancia.peso) + "," \ |
1319 |
|
" Volumen: " + str(instancia.volumen) + "," \ |
1320 |
|
" Estado (1-100): " + str(instancia.estado)) |
1321 |
|
|
1322 |
|
#%% self.conn().send("Usos posibles:") |
1323 |
|
#%% for uso in instancia.usos: |
1324 |
|
#%% self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion']) |
1325 |
|
|
1326 |
|
|
1327 |
|
#%% def cmd_examinar(self, nombre_objeto,posicion): |
1328 |
|
#%% |
1329 |
|
#%% encontrado = 0 |
1330 |
|
#%% |
1331 |
|
#%% self.conn().send("Examinas "+nombre_objeto+" "+"("+str(posicion)+")") |
1332 |
|
#%% |
1333 |
|
#%% for objeto in self.__personaje.equipo[:]: |
1334 |
|
#%% if objeto["id"] == nombre_objeto: |
1335 |
|
#%% if posicion > len(objeto["instancias"]): |
1336 |
|
#%% self.conn().send("No tienes tanto de eso.") |
1337 |
|
#%% objeto_examinado = 0 |
1338 |
|
#%% else: |
1339 |
|
#%% objeto_examinado = objeto["instancias"][posicion-1] |
1340 |
|
#%% encontrado = 1 |
1341 |
|
#%% break |
1342 |
|
#%% if encontrado == 0: |
1343 |
|
#%% self.conn().send('No tienes un objeto llamado '+nombre_objeto) |
1344 |
|
#%% else: |
1345 |
|
#%% if objeto_examinado == 0: pass |
1346 |
|
#%% else: |
1347 |
|
#%% for item in objeto_examinado.items: |
1348 |
|
#%% if self.__personaje.atrib["inteligencia"] >= item["dificultad"]: |
1349 |
|
#%% self.conn().send(item["texto"]) |
1350 |
|
#%% else: |
1351 |
|
#%% pass |
1352 |
|
#%% self.conn().send("Valor (me): "+str(objeto_examinado.valor)+","\ |
1353 |
|
#%% " Peso (kg): "+str(objeto_examinado.peso)+","\ |
1354 |
|
#%% " Volumen: "+str(objeto_examinado.volumen)+","\ |
1355 |
|
#%% " Estado (1-100): "+str(objeto_examinado.estado)) |
1356 |
|
#%% self.conn().send("Usos posibles:") |
1357 |
|
#%% for uso in objeto_examinado.usos: |
1358 |
|
#%% self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion']) |
1359 |
|
|
|
encontrado = 0 |
|
1360 |
|
|
|
self.conn().send("Examinas "+nombre_objeto+" "+"("+str(posicion)+")") |
|
|
|
|
|
for objeto in self.__personaje.equipo[:]: |
|
|
if objeto["id"] == nombre_objeto: |
|
|
if posicion > len(objeto["instancias"]): |
|
|
self.conn().send("No tienes tanto de eso.") |
|
|
objeto_examinado = 0 |
|
|
else: |
|
|
objeto_examinado = objeto["instancias"][posicion-1] |
|
|
encontrado = 1 |
|
|
break |
|
|
if encontrado == 0: |
|
|
self.conn().send('No tienes un objeto llamado '+nombre_objeto) |
|
|
else: |
|
|
if objeto_examinado == 0: pass |
|
|
else: |
|
|
for item in objeto_examinado.items: |
|
|
if self.__personaje.atrib["inteligencia"] >= item["dificultad"]: |
|
|
self.conn().send(item["texto"]) |
|
|
else: |
|
|
pass |
|
|
self.conn().send("Valor (me): "+str(objeto_examinado.valor)+","\ |
|
|
" Peso (kg): "+str(objeto_examinado.peso)+","\ |
|
|
" Volumen: "+str(objeto_examinado.volumen)+","\ |
|
|
" Estado (1-100): "+str(objeto_examinado.estado)) |
|
|
self.conn().send("Usos posibles:") |
|
|
for uso in objeto_examinado.usos: |
|
|
self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion']) |
|
1361 |
def cmd_observar(self, nombre_oponente): |
def cmd_observar(self, nombre_oponente): |
1362 |
try: |
try: |
1363 |
oponente = self.__personaje.sala.personajes[nombre_oponente] |
oponente = self.__personaje.sala.personajes[nombre_oponente] |