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

Diff of /ambar/dialogonormal.py

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

revision 1.35 by amoyav, Thu Aug 15 13:09:07 2002 UTC revision 1.36 by amoyav, Fri Aug 16 08:41:13 2002 UTC
# Line 65  class DialogoNormal(Dialogo): Line 65  class DialogoNormal(Dialogo):
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    
# Line 243  class DialogoNormal(Dialogo): Line 243  class DialogoNormal(Dialogo):
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    
# Line 291  class DialogoNormal(Dialogo): Line 291  class DialogoNormal(Dialogo):
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"])
# Line 415  class DialogoNormal(Dialogo): Line 415  class DialogoNormal(Dialogo):
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":
# Line 429  class DialogoNormal(Dialogo): Line 429  class DialogoNormal(Dialogo):
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":
# Line 553  class DialogoNormal(Dialogo): Line 584  class DialogoNormal(Dialogo):
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:
# Line 639  class DialogoNormal(Dialogo): Line 722  class DialogoNormal(Dialogo):
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)
# Line 652  class DialogoNormal(Dialogo): Line 735  class DialogoNormal(Dialogo):
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): " +
# Line 1011  class DialogoNormal(Dialogo): Line 1094  class DialogoNormal(Dialogo):
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
# Line 1026  class DialogoNormal(Dialogo): Line 1109  class DialogoNormal(Dialogo):
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']:
# Line 1055  class DialogoNormal(Dialogo): Line 1145  class DialogoNormal(Dialogo):
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):
# Line 1104  class DialogoNormal(Dialogo): Line 1287  class DialogoNormal(Dialogo):
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]

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

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