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

Diff of /ambar/dialogonormal.py

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

revision 2.18 by amoyav, Thu Apr 10 15:08:03 2003 UTC revision 2.19 by amoyav, Wed Apr 23 08:03:29 2003 UTC
# Line 446  class DialogoNormal(Dialogo): Line 446  class DialogoNormal(Dialogo):
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, n_orden, n_instancia, cantidad)
450                  self.estado_0()                  self.estado_0()
451                                    
452  #%%                try:  #%%                try:
# Line 465  class DialogoNormal(Dialogo): Line 465  class DialogoNormal(Dialogo):
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, n_orden, n_instancia, cantidad)
469    
470                  self.estado_0()                  self.estado_0()
471    
# Line 473  class DialogoNormal(Dialogo): Line 473  class DialogoNormal(Dialogo):
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, n_orden, n_instancia, cantidad)
477    
478                  self.estado_0()                  self.estado_0()
479    
# Line 500  class DialogoNormal(Dialogo): Line 500  class DialogoNormal(Dialogo):
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)                      self.cmd_esconder(id_objeto, n_orden, n_instancia, cantidad)
                     self.cmd_dejar(id_objeto, cantidad, n_orden, n_instancia, dificultad)  
504    
505                  self.estado_0()                  self.estado_0()
506    
# Line 599  class DialogoNormal(Dialogo): Line 598  class DialogoNormal(Dialogo):
598                  self.estado_0()                  self.estado_0()
599    
600              elif accion == "+noseguir" or accion == "+noseg":              elif accion == "+noseguir" or accion == "+noseg":
601                  self.cmd_noseguir()                  self.cmd_no_seguir()
602                  self.estado_0()                  self.estado_0()
603    
604              elif accion == "+ip":              elif accion == "+ip":
# Line 1290  class DialogoNormal(Dialogo): Line 1289  class DialogoNormal(Dialogo):
1289                                   ", ".join([ i.nombre for i in Idioma_lista ]))                                   ", ".join([ i.nombre for i in Idioma_lista ]))
1290                    
1291    
1292      def cmd_coger(self, id_objeto, cantidad, n_orden, n_instancia):      def cmd_coger(self, id_objeto, n_orden, n_instancia, cantidad):
1293          encontrados = 0          try:
         n_objeto = -1  
   
         # Buscar el objeto en la sala. Puede que haya varios con el mismo identificativo,  
         # discriminamos con el parametro n_orden.  
         for objeto in self.__personaje.sala.objetos:  
             n_objeto = n_objeto + 1  
             instancias = objeto["instancias"]  
             if len(instancias) > 0:  
                 if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):  
                     encontrados = encontrados + 1  
                     if encontrados == n_orden:  
   
                         # Hemos encontrado el objeto, ahora vemos si hay instancias  
                         # suficientes.  
                         if (n_instancia + cantidad - 1) > len(instancias):  
                             self.conn().send("No hay " + str(n_instancia + cantidad - 1) +  
                                              " instancias de ese objeto, solo hay " +  
                                              str(len(instancias)))  
                         else:  
   
                             # Todo ok: cogemos las instancias y las metemos en la mochila  
                             for i in range(0, cantidad):  
                                 instancia = self.__personaje.sala.coger_objeto(n_objeto,  
                                                                                n_instancia - 1)  
                                 self.__personaje.meter_en_mochila(instancia)  
   
                             self.__personaje.actuar("ha cogido " + instancia.nombre)  
                             self.conn().send("Has cogido " + instancia.nombre, 0)  
                             if cantidad > 1:  
                                 self.conn().send(" (" + str(cantidad) + " unidades)")  
                             else:  
                                 self.conn().send("")  
1294    
1295                          break              #%% aqui faltaría lo del sigilo...
1296                                    nombre = self.__personaje.coger(id_objeto, n_orden, n_instancia, cantidad)
1297          if encontrados == 0:  
1298              self.conn().send("No hay en la sala ningún objeto con identificativo " + id_objeto)              self.conn().send("Has cogido " + nombre, 0)
1299          elif encontrados < n_orden:              if cantidad > 1:
1300              self.conn().send("No hay en la sala suficientes objetos con identificativo " +                  self.conn().send(" (" + str(cantidad) + " unidades)")
1301                               id_objeto + ", solo hay " + str(encontrados))              else:
1302                    self.conn().send("")
1303    
1304            except ExcepcionDeJuego, mensaje:
1305    
1306                self.conn().send(mensaje)
1307    
1308            
1309    #%%    def cmd_coger(self, id_objeto, cantidad, n_orden, n_instancia):
1310    #%%     encontrados = 0
1311    #%%     n_objeto = -1
1312    #%%
1313    #%%     # Buscar el objeto en la sala. Puede que haya varios con el mismo identificativo,
1314    #%%     # discriminamos con el parametro n_orden.
1315    #%%     for objeto in self.__personaje.sala.objetos:
1316    #%%         n_objeto = n_objeto + 1
1317    #%%         instancias = objeto["instancias"]
1318    #%%         if len(instancias) > 0:
1319    #%%             if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):
1320    #%%                 encontrados = encontrados + 1
1321    #%%                 if encontrados == n_orden:
1322    #%%
1323    #%%                     # Hemos encontrado el objeto, ahora vemos si hay instancias
1324    #%%                     # suficientes.
1325    #%%                     if (n_instancia + cantidad - 1) > len(instancias):
1326    #%%                         self.conn().send("No hay " + str(n_instancia + cantidad - 1) +
1327    #%%                                          " instancias de ese objeto, solo hay " +
1328    #%%                                          str(len(instancias)))
1329    #%%                     else:
1330    #%%
1331    #%%                         # Todo ok: cogemos las instancias y las metemos en la mochila
1332    #%%                         for i in range(0, cantidad):
1333    #%%                             instancia = self.__personaje.sala.coger_objeto(n_objeto,
1334    #%%                                                                            n_instancia - 1)
1335    #%%                             self.__personaje.meter_en_mochila(instancia)
1336    #%%
1337    #%%                         self.__personaje.actuar("ha cogido " + instancia.nombre)
1338    #%%                         self.conn().send("Has cogido " + instancia.nombre, 0)
1339    #%%                         if cantidad > 1:
1340    #%%                             self.conn().send(" (" + str(cantidad) + " unidades)")
1341    #%%                         else:
1342    #%%                             self.conn().send("")
1343    #%%
1344    #%%                     break
1345    #%%                
1346    #%%     if encontrados == 0:
1347    #%%         self.conn().send("No hay en la sala ningún objeto con identificativo " + id_objeto)
1348    #%%     elif encontrados < n_orden:
1349    #%%         self.conn().send("No hay en la sala suficientes objetos con identificativo " +
1350    #%%                          id_objeto + ", solo hay " + str(encontrados))
1351    
1352    
1353  #%%    def cmd_coger(self, nombre_objeto, cantidad=1):  #%%    def cmd_coger(self, nombre_objeto, cantidad=1):
# Line 1356  class DialogoNormal(Dialogo): Line 1372  class DialogoNormal(Dialogo):
1372  #%%        else:  #%%        else:
1373  #%%            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")
1374    
       
     def cmd_dejar(self, id_objeto, cantidad, n_orden, n_instancia, dificultad = 0):  
         encontrados = 0  
         n_objeto = -1  
   
         # Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo,  
         # discriminamos con el parametro n_orden.  
         for instancias in self.__personaje.mochila:  
             n_objeto = n_objeto + 1  
             if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):  
                 encontrados = encontrados + 1  
                 if encontrados == n_orden:  
   
                     # Hemos encontrado el objeto, ahora vemos si hay instancias  
                     # suficientes.  
                     if (n_instancia + cantidad - 1) > len(instancias):  
                         self.conn().send("No tienes " + str(n_instancia + cantidad - 1) +  
                                          " unidades de ese objeto en la mochila, solo tienes " +  
                                          str(len(instancias)))  
                     else:  
1375    
1376                          # Todo ok: sacamos las instancias de la mochila y las dejamos      def cmd_esconder(self, id_objeto, n_orden, n_instancia, cantidad):
1377                          # en la sala          try:
                         for i in range(0, cantidad):  
                             instancia = self.__personaje.sacar_de_mochila(n_objeto,  
                                                                           n_instancia - 1)  
                             self.__personaje.sala.dejar_objeto(instancia, dificultad)              
   
                         if dificultad == 0:  
                             self.__personaje.actuar("ha dejado " + instancia.nombre)  
                             self.conn().send("Has dejado " + instancia.nombre, 0)  
                         else:  
                             self.__personaje.actuar("ha escondido algo")  
                             self.conn().send("Has escondido " + instancia.nombre, 0)  
   
                         if cantidad > 1:  
                             self.conn().send(" (" + str(cantidad) + " unidades)")  
                         else:  
                             self.conn().send("")  
1378    
1379                      break              #%% aqui faltaría lo del sigilo...
1380                                    nombre = self.__personaje.esconder(id_objeto, n_orden, n_instancia, cantidad)
         if encontrados == 0:  
             self.conn().send("No tienes en la mochila ningún objeto con identificativo " +  
                              id_objeto)  
         elif encontrados < n_orden:  
             self.conn().send("No tienes en la mochila suficientes objetos con identificativo " +  
                              id_objeto + ", solo tienes " + str(encontrados))  
1381    
1382                self.conn().send("Has escondido " + nombre, 0)
1383                if cantidad > 1:
1384                    self.conn().send(" (" + str(cantidad) + " unidades)")
1385                else:
1386                    self.conn().send("")
1387    
1388      def cmd_dar(self, id_receptor, id_objeto, cantidad, n_orden, n_instancia):          except ExcepcionDeJuego, mensaje:
         encontrados = 0  
         n_objeto = -1  
1389    
1390          # Buscar el id_receptor en la sala actual.              self.conn().send(mensaje)
         if self.__personaje.sala != None:  
             receptor_encontrado = 0  
             for personaje in  self.__personaje.sala.personajes.values():  
                 if personaje != self.__personaje and personaje.controlador != None and string.lower(personaje.id) == string.lower(id_receptor):  
                     receptor_encontrado = 1  
                     receptor = personaje  
                     break  
             if receptor_encontrado == 0:  
                 self.conn().send('No hay nadie aquí que se llame '+id_receptor)  
                 return  
               
         # Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo,  
         # discriminamos con el parametro n_orden.  
         for instancias in self.__personaje.mochila:  
             n_objeto = n_objeto + 1  
             if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):  
                 encontrados = encontrados + 1  
                 if encontrados == n_orden:  
   
                     # Hemos encontrado el objeto, ahora vemos si hay instancias  
                     # suficientes.  
                     if (n_instancia + cantidad - 1) > len(instancias):  
                         self.conn().send("No tienes " + str(n_instancia + cantidad - 1) +  
                                          " unidades de ese objeto en la mochila, solo tienes " +  
                                          str(len(instancias)))  
                     else:  
                         #Comprobar antes de seguir que el personaje que da el objeto se encuentra  
                         #en la lista de confianza del receptor (salvo que el que da sea un Maia...)  
1391    
                         if not self.__personaje.es_maia:  
                             try:  
                                 confianza = receptor.ids_amigos[self.__personaje.id]  
                                 if confianza < 1:  
                                     raise KeyError  
                             except KeyError, e:  
                                 self.conn().send(receptor.nombre + " no acepta tu objeto.\n",0)  
                                 self.__personaje.actuar_individual(receptor, "te ha intentado dar " + id_objeto + " pero te has negado.")  
                                 break  
                           
                         # Todo ok: sacamos las instancias de la mochila  
                         for i in range(0, cantidad):  
                             instancia = self.__personaje.sacar_de_mochila(n_objeto,  
                                                                           n_instancia - 1)  
                             receptor.meter_en_mochila(instancia)  
   
                         #mensajes  
                         self.__personaje.actuar("ha dado " + instancia.nombre + " a " + receptor.nombre)  
                         self.conn().send("Has dado " + instancia.nombre + " a " + receptor.nombre, 0)  
                         self.__personaje.actuar_individual(receptor, "te ha dado " + instancia.nombre +' ('+str(cantidad)+' unidad[es])')  
                         if cantidad > 1:  
                             self.conn().send(" (" + str(cantidad) + " unidades)")  
                         else:  
                             self.conn().send("")  
1392    
1393                      break      def cmd_dejar(self, id_objeto, n_orden, n_instancia, cantidad):
1394                                try:
1395          if encontrados == 0:  
1396              self.conn().send("No tienes en la mochila ningún objeto con identificativo " +              #%% aqui faltaría lo del sigilo...
1397                               id_objeto)              nombre = self.__personaje.dejar(id_objeto, n_orden, n_instancia, cantidad)
1398          elif encontrados < n_orden:  
1399              self.conn().send("No tienes en la mochila suficientes objetos con identificativo " +              self.conn().send("Has dejado " + nombre, 0)
1400                               id_objeto + ", solo tienes " + str(encontrados))              if cantidad > 1:
1401                    self.conn().send(" (" + str(cantidad) + " unidades)")
1402                else:
1403                    self.conn().send("")
1404    
1405            except ExcepcionDeJuego, mensaje:
1406    
1407                self.conn().send(mensaje)
1408    
1409    
1410            
1411    #%%    def cmd_dejar(self, id_objeto, cantidad, n_orden, n_instancia, dificultad = 0):
1412    #%%     encontrados = 0
1413    #%%     n_objeto = -1
1414    #%%
1415    #%%     # Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo,
1416    #%%     # discriminamos con el parametro n_orden.
1417    #%%     for instancias in self.__personaje.mochila:
1418    #%%         n_objeto = n_objeto + 1
1419    #%%         if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):
1420    #%%             encontrados = encontrados + 1
1421    #%%             if encontrados == n_orden:
1422    #%%
1423    #%%                 # Hemos encontrado el objeto, ahora vemos si hay instancias
1424    #%%                 # suficientes.
1425    #%%                 if (n_instancia + cantidad - 1) > len(instancias):
1426    #%%                     self.conn().send("No tienes " + str(n_instancia + cantidad - 1) +
1427    #%%                                      " unidades de ese objeto en la mochila, solo tienes " +
1428    #%%                                      str(len(instancias)))
1429    #%%                 else:
1430    #%%
1431    #%%                     # Todo ok: sacamos las instancias de la mochila y las dejamos
1432    #%%                     # en la sala
1433    #%%                     for i in range(0, cantidad):
1434    #%%                         instancia = self.__personaje.sacar_de_mochila(n_objeto,
1435    #%%                                                                       n_instancia - 1)
1436    #%%                         self.__personaje.sala.dejar_objeto(instancia, dificultad)            
1437    #%%
1438    #%%                     if dificultad == 0:
1439    #%%                         self.__personaje.actuar("ha dejado " + instancia.nombre)
1440    #%%                         self.conn().send("Has dejado " + instancia.nombre, 0)
1441    #%%                     else:
1442    #%%                         self.__personaje.actuar("ha escondido algo")
1443    #%%                         self.conn().send("Has escondido " + instancia.nombre, 0)
1444    #%%
1445    #%%                     if cantidad > 1:
1446    #%%                         self.conn().send(" (" + str(cantidad) + " unidades)")
1447    #%%                     else:
1448    #%%                         self.conn().send("")
1449    #%%
1450    #%%                 break
1451    #%%                
1452    #%%     if encontrados == 0:
1453    #%%         self.conn().send("No tienes en la mochila ningún objeto con identificativo " +
1454    #%%                          id_objeto)
1455    #%%     elif encontrados < n_orden:
1456    #%%         self.conn().send("No tienes en la mochila suficientes objetos con identificativo " +
1457    #%%                          id_objeto + ", solo tienes " + str(encontrados))
1458    
1459    
1460  #%%    def cmd_dejar(self, nombre_objeto, cantidad, accion = "dejado",dif=0):  #%%    def cmd_dejar(self, nombre_objeto, cantidad, accion = "dejado",dif=0):
# Line 1489  class DialogoNormal(Dialogo): Line 1471  class DialogoNormal(Dialogo):
1471  #%%        else:  #%%        else:
1472  #%%            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])
1473    
1474            
1475        def cmd_dar(self, id_receptor, id_objeto, n_orden, n_instancia, cantidad):
1476    
1477            # Buscar el id_receptor en la sala actual.
1478            receptor = None
1479            for personaje in  self.__personaje.sala.personajes.values():
1480                if personaje != self.__personaje and personaje.controlador != None and string.lower(personaje.id) == string.lower(id_receptor):
1481                    receptor = personaje
1482                    break
1483            if receptor == None:
1484                self.conn().send('No hay nadie aquí que se llame ' + id_receptor)
1485                return
1486    
1487            try:
1488    
1489                #%% aqui faltaría lo del sigilo...
1490                nombre = self.__personaje.dar(receptor, id_objeto, n_orden, n_instancia, cantidad)
1491    
1492                self.conn().send("Has dado " + nombre, 0)
1493                if cantidad > 1:
1494                    self.conn().send(" (" + str(cantidad) + " unidades)", 0)
1495                self.conn().send(" a " + receptor.nombre)
1496    
1497            except ExcepcionDeJuego, mensaje:
1498    
1499                self.conn().send(mensaje)
1500    
1501    
1502    #%%    def cmd_dar(self, id_receptor, id_objeto, cantidad, n_orden, n_instancia):
1503    #%%     encontrados = 0
1504    #%%     n_objeto = -1
1505    #%%
1506    #%%        # Buscar el id_receptor en la sala actual.
1507    #%%        if self.__personaje.sala != None:
1508    #%%            receptor_encontrado = 0
1509    #%%            for personaje in  self.__personaje.sala.personajes.values():
1510    #%%                if personaje != self.__personaje and personaje.controlador != None and string.lower(personaje.id) == string.lower(id_receptor):
1511    #%%                    receptor_encontrado = 1
1512    #%%                    receptor = personaje
1513    #%%                    break
1514    #%%            if receptor_encontrado == 0:
1515    #%%                self.conn().send('No hay nadie aquí que se llame '+id_receptor)
1516    #%%                return
1517    #%%            
1518    #%%     # Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo,
1519    #%%     # discriminamos con el parametro n_orden.
1520    #%%     for instancias in self.__personaje.mochila:
1521    #%%         n_objeto = n_objeto + 1
1522    #%%         if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):
1523    #%%             encontrados = encontrados + 1
1524    #%%             if encontrados == n_orden:
1525    #%%
1526    #%%                 # Hemos encontrado el objeto, ahora vemos si hay instancias
1527    #%%                 # suficientes.
1528    #%%                 if (n_instancia + cantidad - 1) > len(instancias):
1529    #%%                     self.conn().send("No tienes " + str(n_instancia + cantidad - 1) +
1530    #%%                                      " unidades de ese objeto en la mochila, solo tienes " +
1531    #%%                                      str(len(instancias)))
1532    #%%                 else:
1533    #%%                        #Comprobar antes de seguir que el personaje que da el objeto se encuentra
1534    #%%                        #en la lista de confianza del receptor (salvo que el que da sea un Maia...)
1535    #%%
1536    #%%                        if not self.__personaje.es_maia:
1537    #%%                            try:
1538    #%%                                confianza = receptor.ids_amigos[self.__personaje.id]
1539    #%%                                if confianza < 1:
1540    #%%                                    raise KeyError
1541    #%%                            except KeyError, e:
1542    #%%                                self.conn().send(receptor.nombre + " no acepta tu objeto.\n",0)
1543    #%%                                self.__personaje.actuar_individual(receptor, "te ha intentado dar " + id_objeto + " pero te has negado.")
1544    #%%                                break
1545    #%%                        
1546    #%%                     # Todo ok: sacamos las instancias de la mochila
1547    #%%                     for i in range(0, cantidad):
1548    #%%                         instancia = self.__personaje.sacar_de_mochila(n_objeto,
1549    #%%                                                                       n_instancia - 1)
1550    #%%                         receptor.meter_en_mochila(instancia)
1551    #%%
1552    #%%                        #mensajes
1553    #%%                        self.__personaje.actuar("ha dado " + instancia.nombre + " a " + receptor.nombre)
1554    #%%                        self.conn().send("Has dado " + instancia.nombre + " a " + receptor.nombre, 0)
1555    #%%                        self.__personaje.actuar_individual(receptor, "te ha dado " + instancia.nombre +' ('+str(cantidad)+' unidad[es])')
1556    #%%                     if cantidad > 1:
1557    #%%                         self.conn().send(" (" + str(cantidad) + " unidades)")
1558    #%%                     else:
1559    #%%                         self.conn().send("")
1560    #%%
1561    #%%                 break
1562    #%%                
1563    #%%     if encontrados == 0:
1564    #%%            self.conn().send("No tienes en la mochila ningún objeto con identificativo " +
1565    #%%                          id_objeto)
1566    #%%     elif encontrados < n_orden:
1567    #%%         self.conn().send("No tienes en la mochila suficientes objetos con identificativo " +
1568    #%%                          id_objeto + ", solo tienes " + str(encontrados))
1569    
1570      def cmd_usar(self, id_objeto, n_orden, n_instancia):      def cmd_usar(self, id_objeto, n_orden, n_instancia):
1571          encontrados = 0          try:
         n_objeto = -1  
1572    
1573          # Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo,              #%% aqui faltaría lo del sigilo...
1574          # discriminamos con el parametro n_orden.              nombre = self.__personaje.usar(id_objeto, n_orden, n_instancia)
         for instancias in self.__personaje.mochila:  
             n_objeto = n_objeto + 1  
             if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):  
                 encontrados = encontrados + 1  
                 if encontrados == n_orden:  
   
                     # Hemos encontrado el objeto, ahora vemos si hay instancias  
                     # suficientes.  
                     if (n_instancia) > len(instancias):  
                         self.conn().send("No tienes " + str(n_instancia) +  
                                          " instancias de ese objeto en la mochila, solo tienes " +  
                                          str(len(instancias)))  
                     else:  
1575    
1576                          # Todo ok: usamos la instancia          except ExcepcionDeJuego, mensaje:
1577                          instancia = instancias[n_instancia - 1]  
1578                self.conn().send(mensaje)
1579    
1580            
1581    #%%    def cmd_usar(self, id_objeto, n_orden, n_instancia):
1582    #%%     encontrados = 0
1583    #%%     n_objeto = -1
1584    #%%
1585    #%%     # Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo,
1586    #%%     # discriminamos con el parametro n_orden.
1587    #%%     for instancias in self.__personaje.mochila:
1588    #%%         n_objeto = n_objeto + 1
1589    #%%         if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):
1590    #%%             encontrados = encontrados + 1
1591    #%%             if encontrados == n_orden:
1592    #%%
1593    #%%                 # Hemos encontrado el objeto, ahora vemos si hay instancias
1594    #%%                 # suficientes.
1595    #%%                 if (n_instancia) > len(instancias):
1596    #%%                     self.conn().send("No tienes " + str(n_instancia) +
1597    #%%                                      " instancias de ese objeto en la mochila, solo tienes " +
1598    #%%                                      str(len(instancias)))
1599    #%%                 else:
1600    #%%
1601    #%%                     # Todo ok: usamos la instancia
1602    #%%                     instancia = instancias[n_instancia - 1]
1603    #%%
1604    #%%                     if not instancia.puede_usar(self.__personaje):
1605    #%%                         self.conn().send("No puedes usar este objeto.")
1606    #%%                     else:
1607    #%%                         instancia.usar(self.__personaje)
1608    #%%                                      
1609    #%%        #self.conn().send("Aún no se pueden usar objetos...")
1610    #%%        #if nombre_objeto == "":
1611    #%%        #    self.conn.send("Debes especificar un objeto")
1612    #%%        #else:
1613    #%%        #    resultado =  encontrar_en_equipo(nombre_objeto, self.personaje.equipo)
1614    #%%        #if resultado[1] == 0:
1615    #%%        #    self.conn().send('No tienes un objeto llamado '+nombre_objeto)
1616    #%%        #else:
1617    #%%        #    for efecto in resultado[0][:]:
1618    #%%        #        pass
1619    
                         if not instancia.puede_usar(self.__personaje):  
                             self.conn().send("No puedes usar este objeto.")  
                         else:  
                             instancia.usar(self.__personaje)  
                                           
         #self.conn().send("Aún no se pueden usar objetos...")  
         #if nombre_objeto == "":  
         #    self.conn.send("Debes especificar un objeto")  
         #else:  
         #    resultado =  encontrar_en_equipo(nombre_objeto, self.personaje.equipo)  
         #if resultado[1] == 0:  
         #    self.conn().send('No tienes un objeto llamado '+nombre_objeto)  
         #else:  
         #    for efecto in resultado[0][:]:  
         #        pass  
1620    
1621      def cmd_examinar(self, id_objeto, n_orden, n_instancia):      def cmd_examinar(self, id_objeto, n_orden, n_instancia):
1622          encontrados = 0          try:
         n_objeto = -1  
1623    
1624          # Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo,              n_objeto = self.__personaje.buscar_en_mochila(id_objeto, n_orden)
1625          # discriminamos con el parametro n_orden.  
1626          for instancias in self.__personaje.mochila:              instancias = self.__personaje.mochila[n_objeto]
1627              n_objeto = n_objeto + 1              if (n_instancia) > len(instancias):
1628              if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):                  raise ExcepcionDeJuego("No tienes " + str(n_instancia) +
1629                  encontrados = encontrados + 1                                         " unidades de ese objeto en la mochila, solo tienes " +
1630                  if encontrados == n_orden:                                         str(len(instancias)))
1631    
1632                      # Hemos encontrado el objeto, ahora vemos si hay instancias              objeto = instancias[n_instancia]
1633                      # suficientes.  
1634                      if (n_instancia) > len(instancias):              for item in objeto.descripcion:
1635                          self.conn().send("No tienes " + str(n_instancia) +                  if self.__personaje.prueba("inteligencia", 0, item["dificultad"], 0) >= 0:
1636                                           " instancias de ese objeto en la mochila, solo tienes " +                      self.conn().send(item["texto"])
                                          str(len(instancias)))  
                     else:  
1637    
1638                          # Todo ok: examinamos la instancia              self.conn().send("Valor (me): " + str(objeto.valor) + "," \
1639                          instancia = instancias[n_instancia - 1]                               " Peso (kg): " + str(objeto.peso) + "," \
1640                          for item in instancia.descripcion:                               " Volumen: " + str(objeto.volumen) + "," \
1641                              if self.__personaje.prueba("inteligencia", 0, item["dificultad"], 0) >= 0:                               " Estado (1-100): " + str(objeto.estado))
                                 self.conn().send(item["texto"])  
   
                         self.conn().send("Valor (me): " + str(instancia.valor) + "," \  
                                          " Peso (kg): " + str(instancia.peso) + "," \  
                                          " Volumen: " + str(instancia.volumen) + "," \  
                                          " Estado (1-100): " + str(instancia.estado))  
1642    
1643                self.conn().send("Usos posibles:")
1644                for uso in objeto.usos:
1645                    self.conn().send('Tipo: ' + uso['tipo'] + '\t Posición: ' + uso['posicion'])
1646    
1647            except ExcepcionDeJuego, mensaje:
1648    
1649                self.conn().send(mensaje)
1650    
1651    
1652    #%%    def cmd_examinar(self, id_objeto, n_orden, n_instancia):
1653    #%%     encontrados = 0
1654    #%%     n_objeto = -1
1655    #%%
1656    #%%     # Buscar el objeto en la mochila. Puede que haya varios con el mismo identificativo,
1657    #%%     # discriminamos con el parametro n_orden.
1658    #%%     for instancias in self.__personaje.mochila:
1659    #%%         n_objeto = n_objeto + 1
1660    #%%         if normalizar_id(id_objeto) == extraer_id(instancias[0].nombre):
1661    #%%             encontrados = encontrados + 1
1662    #%%             if encontrados == n_orden:
1663    #%%
1664    #%%                 # Hemos encontrado el objeto, ahora vemos si hay instancias
1665    #%%                 # suficientes.
1666    #%%                 if (n_instancia) > len(instancias):
1667    #%%                     self.conn().send("No tienes " + str(n_instancia) +
1668    #%%                                      " instancias de ese objeto en la mochila, solo tienes " +
1669    #%%                                      str(len(instancias)))
1670    #%%                 else:
1671    #%%
1672    #%%                     # Todo ok: examinamos la instancia
1673    #%%                     instancia = instancias[n_instancia - 1]
1674    #%%                     for item in instancia.descripcion:
1675    #%%                         if self.__personaje.prueba("inteligencia", 0, item["dificultad"], 0) >= 0:
1676    #%%                             self.conn().send(item["texto"])
1677    #%%
1678    #%%                     self.conn().send("Valor (me): " + str(instancia.valor) + "," \
1679    #%%                                      " Peso (kg): " + str(instancia.peso) + "," \
1680    #%%                                      " Volumen: " + str(instancia.volumen) + "," \
1681    #%%                                      " Estado (1-100): " + str(instancia.estado))
1682    #%%
1683  #%%                     self.conn().send("Usos posibles:")  #%%                     self.conn().send("Usos posibles:")
1684  #%%                     for uso in instancia.usos:  #%%                     for uso in instancia.usos:
1685  #%%                         self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion'])  #%%                         self.conn().send('Tipo: '+uso['tipo']+'\t Posición: '+uso['posicion'])
# Line 1657  class DialogoNormal(Dialogo): Line 1777  class DialogoNormal(Dialogo):
1777          else:          else:
1778              if self.__personaje.anterior != None:              if self.__personaje.anterior != None:
1779                  self.conn().send('Ya no estas siguiendo a ' + self.__personaje.anterior.id)                  self.conn().send('Ya no estas siguiendo a ' + self.__personaje.anterior.id)
1780                  self.__personaje.noseguir()                  self.__personaje.no_seguir()
1781    
1782              lider = self.__personaje.sala.personajes[id_lider]              lider = self.__personaje.sala.personajes[id_lider]
1783              self.__personaje.seguir(lider)              self.__personaje.seguir(lider)
1784              self.conn().send('Ahora estas siguiendo a ' + lider.id)              self.conn().send('Ahora estas siguiendo a ' + lider.id)
1785                                                    
1786    
1787      def cmd_noseguir(self):      def cmd_no_seguir(self):
1788          if self.__personaje.anterior == None:          if self.__personaje.anterior == None:
1789              self.conn().send('¡No estabas siguiendo a nadie!')              self.conn().send('¡No estabas siguiendo a nadie!')
1790          else:          else:
1791              self.conn().send('Ya no estas siguiendo a ' + self.__personaje.anterior.id)              self.conn().send('Ya no estas siguiendo a ' + self.__personaje.anterior.id)
1792              self.__personaje.noseguir()              self.__personaje.no_seguir()
1793    
1794    
1795      def cmd_ip(self):      def cmd_ip(self):

Legend:
Removed from v.2.18  
changed lines
  Added in v.2.19

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