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

Diff of /ambar/dialogonormal.py

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

revision 2.31 by amoyav, Wed Sep 17 15:49:46 2003 UTC revision 2.32 by amoyav, Mon Sep 22 19:08:38 2003 UTC
# Line 49  class DialogoNormal(Dialogo): Line 49  class DialogoNormal(Dialogo):
49                           '+atacar','+coger','+dejar','+esconder','+mochila','+examinar','+usar',                           '+atacar','+coger','+dejar','+esconder','+mochila','+examinar','+usar',
50                           '+comer','+beber','+estadisticas','+mirar','+mr','+area','+observar',                           '+comer','+beber','+estadisticas','+mirar','+mr','+area','+observar',
51                           '+silencio','+confiar','+noconfiar','+dar','+amigos','+recapitular','+reloj',                           '+silencio','+confiar','+noconfiar','+dar','+amigos','+recapitular','+reloj',
52                           '+poner','+quitar']                           '+poner','+quitar','+pagar','+comprar']
53    
54      COMANDOS_MAIAR =  ['+entorno','+ent','+listar','+localizar','+loc']      COMANDOS_MAIAR =  ['+entorno','+ent','+listar','+localizar','+loc']
55    
# Line 195  class DialogoNormal(Dialogo): Line 195  class DialogoNormal(Dialogo):
195              self.__personaje.salas_visitadas.update({self.__personaje.sala.id:'si'})              self.__personaje.salas_visitadas.update({self.__personaje.sala.id:'si'})
196              #Ganamos un punto de experiencia (hay que premiar la exploración)              #Ganamos un punto de experiencia (hay que premiar la exploración)
197              self.__personaje.cambiar_experiencia(+1)              self.__personaje.cambiar_experiencia(+1)
198                            
199                            
200        def paga_personaje(self, personaje, monedas):
201            if isinstance(personaje, PersonajeJugador):
202                self.conn().send('')
203                self.conn().send(personaje.id + " te ha pagado " + str(monedas) + " monedas")
204            else:
205                self.conn().send('')
206                self.conn().send(personaje.nombre + " te ha pagado " + str(monedas) + " monedas")
207    
208    
209      # -------------------      # -------------------
# Line 683  class DialogoNormal(Dialogo): Line 692  class DialogoNormal(Dialogo):
692                      self.cmd_reloj()                      self.cmd_reloj()
693                      self.estado_0()                      self.estado_0()
694    
695                    elif accion == "+pagar":
696                        if len(args) < 1:
697                            self.conn().send('Tienes que decir a quien quieres pagar')
698                        elif len(args) < 2:
699                            self.conn().send('Tienes que decir cuanto quieres pagar')
700                        else:
701                            try:
702                                nombre_otro_personaje = args[0]
703                                monedas = int(args[1])
704                                self.cmd_pagar(nombre_otro_personaje, monedas)
705                            except ValueError:
706                                self.conn().send('La cantidad de monedas debe ser un número')
707                        self.estado_0()
708    
709                    elif accion == "+comprar":
710                        (id_vendedor, id_objeto, cantidad, n_orden, n_instancia, ok) = \
711                            self.parsear_ident_objeto(args, "comprar")
712                        if ok:
713                            self.cmd_comprar(id_vendedor, id_objeto, cantidad, n_orden, n_instancia)
714    
715                        self.estado_0()
716    
717                  elif accion == "":                  elif accion == "":
718                      self.estado_0()                      self.estado_0()
719    
# Line 710  class DialogoNormal(Dialogo): Line 741  class DialogoNormal(Dialogo):
741          cantidad, n_orden y n_instancia se reconocen porque son sólo dígitos.          cantidad, n_orden y n_instancia se reconocen porque son sólo dígitos.
742          id_objeto puede tener más de una palabra.          id_objeto puede tener más de una palabra.
743          id_receptor sólo puede tener una palabra.          id_receptor sólo puede tener una palabra.
744          id_receptor sólo se parsea si el comando es "dar"          id_receptor sólo se parsea si el comando es "dar" o "comprar"
745          Los elementos detrás de +con sólo se parsean si el comando es "usar"          Los elementos detrás de +con sólo se parsean si el comando es "usar"
746          """          """
747          id_receptor = ""          id_receptor = ""
# Line 725  class DialogoNormal(Dialogo): Line 756  class DialogoNormal(Dialogo):
756    
757          i = 0          i = 0
758    
759          if comando == 'dar' and i < len(args) and not args[i].isdigit():          if (comando == 'dar' or comando == 'comprar') \
760               and i < len(args) and not args[i].isdigit():
761              id_receptor = args[i]              id_receptor = args[i]
762              i = i + 1              i = i + 1
763                    
# Line 792  class DialogoNormal(Dialogo): Line 824  class DialogoNormal(Dialogo):
824                          self.conn().send("El número de objeto 2 tiene que ser igual o mayor que 1.")                          self.conn().send("El número de objeto 2 tiene que ser igual o mayor que 1.")
825                          ok = 0                          ok = 0
826                                    
827          if comando == 'dar':          if comando == 'dar' or comando == 'comprar':
828              return (id_receptor, id_objeto, cantidad, n_orden, n_instancia, ok)              return (id_receptor, id_objeto, cantidad, n_orden, n_instancia, ok)
829          elif comando == 'usar':          elif comando == 'usar':
830              return (id_objeto, cantidad, n_orden, n_instancia, id_objeto2, n_orden2, n_instancia2, ok)              return (id_objeto, cantidad, n_orden, n_instancia, id_objeto2, n_orden2, n_instancia2, ok)
# Line 1353  class DialogoNormal(Dialogo): Line 1385  class DialogoNormal(Dialogo):
1385                           (self.__personaje.color_de_pelo,                           (self.__personaje.color_de_pelo,
1386                            self.__personaje.idiomas[Idioma_oestron],                            self.__personaje.idiomas[Idioma_oestron],
1387                            self.__personaje.atrib["carisma"]))                            self.__personaje.atrib["carisma"]))
1388          self.conn().send("El idioma en el que hablas es: %s " % (self.__personaje.idioma_base.nombre))          self.conn().send("El idioma en el que hablas es: %s " % (self.__personaje.idioma_base.nombre))
1389          self.conn().send(self.__personaje.mensaje_hambre)          self.conn().send(self.__personaje.mensaje_hambre)
1390          self.conn().send(self.__personaje.mensaje_sed)          self.conn().send(self.__personaje.mensaje_sed)
1391            self.conn().send("Dinero: %d monedas" % self.__personaje.dinero)
1392          self.conn().send(color(31) + "-------------------------------------------------------------------" + finl)          self.conn().send(color(31) + "-------------------------------------------------------------------" + finl)
1393                    
1394                    
# Line 1960  class DialogoNormal(Dialogo): Line 1993  class DialogoNormal(Dialogo):
1993          self.conn().send("%s (%s)" % (str(ahora), ahora.desc_seccion()))          self.conn().send("%s (%s)" % (str(ahora), ahora.desc_seccion()))
1994    
1995                            
1996        def cmd_pagar(self, nombre_otro_personaje, monedas):
1997            if self.__personaje.id == nombre_otro_personaje:
1998                self.conn().send('no tiene sentido que te pagues a ti mismo')
1999            else:
2000                if self.__personaje.sala != None:
2001                    encontrado = 0
2002                    for personaje in self.__personaje.sala.personajes.values():
2003                        if personaje != self.__personaje \
2004                           and personaje.controlador != None \
2005                           and personaje.id == nombre_otro_personaje:
2006                            encontrado = 1
2007                            self.__personaje.pagar(personaje, monedas)
2008                            self.conn().send('Has pagado %d monedas a %s' % (monedas, personaje.id))
2009                    if encontrado == 0:
2010                        self.conn().send('no hay nadie aquí que se llame ' + nombre_otro_personaje)
2011    
2012    
2013        def cmd_comprar(self, id_vendedor, id_objeto, cantidad, n_orden, n_instancia):
2014            encontrados = 0
2015            n_objeto = -1
2016    
2017            # Buscar el id_vendedor en la sala actual.
2018            if self.__personaje.sala != None:
2019                vendedor_encontrado = 0
2020                for personaje in  self.__personaje.sala.personajes.values():
2021                    if personaje != self.__personaje and personaje.controlador != None and string.lower(personaje.id.split("%")[0]) == string.lower(id_vendedor):
2022                        vendedor_encontrado = 1
2023                        vendedor = personaje
2024                        break
2025                if vendedor_encontrado == 0:
2026                    self.conn().send('No hay nadie aquí que se llame '+id_vendedor)
2027                    return
2028    
2029            self.__personaje.comprar(vendedor, id_objeto, n_orden, n_instancia, cantidad)
2030            self.conn().send("Has comprado %s a %s." % (id_objeto, id_vendedor))
2031    
2032                
2033  # Código para pruebas unitarias del módulo.  # Código para pruebas unitarias del módulo.
2034    
2035  if (__name__ == '__main__'):  if (__name__ == '__main__'):

Legend:
Removed from v.2.31  
changed lines
  Added in v.2.32

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