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 |
|
|
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 |
# ------------------- |
# ------------------- |
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 |
|
|
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 = "" |
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 |
|
|
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) |
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 |
|
|
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__'): |