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

Diff of /ambar/dialogorecuperar.py

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

revision 2.2 by amoyav, Fri Aug 23 13:42:20 2002 UTC revision 2.3 by pabloruiz, Tue Nov 5 22:58:22 2002 UTC
# Line 1  Line 1 
1  #!/usr/bin/env python  #!/usr/bin/env python
2  #  #
3  #Minë. Mundo Interactivo-Narrativo en Español [Tierra-Media]  #Minë. Mundo Interactivo-Narrativo en Español [Tierra-Media]
4  #Copyright (C) 2002  Pablo Ruiz Múzquiz  #Copyright (C) 2002  Pablo Ruiz Múzquiz
5  #  #
6  #  #
7  #This program is free software; you can redistribute it and/or modify  #This program is free software; you can redistribute it and/or modify
8  #it under the terms of the GNU General Public License as published by  #it under the terms of the GNU General Public License as published by
9  #the Free Software Foundation; either version 2 of the License, or  #the Free Software Foundation; either version 2 of the License, or
10  #(at your option) any later version.  #(at your option) any later version.
11  #  #
12  #This program is distributed in the hope that it will be useful,  #This program is distributed in the hope that it will be useful,
13  #but WITHOUT ANY WARRANTY; without even the implied warranty of  #but WITHOUT ANY WARRANTY; without even the implied warranty of
14  #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  #GNU General Public License for more details.  #GNU General Public License for more details.
16  #  #
17  #You should have received a copy of the GNU General Public License  #You should have received a copy of the GNU General Public License
18  #along with this program; if not, write to the Free Software  #along with this program; if not, write to the Free Software
19  #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  #  #
21  #  #
22  #Fichero: dialogorecuperar.py  #Fichero: dialogorecuperar.py
23    
24  """Clase DialogoRecuperar."""  """Clase DialogoRecuperar."""
25    
26  from dialogo import *  from dialogo import *
27  from utils import *  from utils import *
28  from mundo import *  from mundo import *
29    
30    
31  class DialogoRecuperar(Dialogo):  class DialogoRecuperar(Dialogo):
32      """Dialogo mantenido con el jugador cuando quiere cargar un personaje      """Dialogo mantenido con el jugador cuando quiere cargar un personaje
33      ya existente.      ya existente.
34      """      """
35    
36      def __init__(self, padre, conn):      def __init__(self, padre, conn):
37          Dialogo.__init__(self, padre, conn)          Dialogo.__init__(self, padre, conn)
38          self.__personaje = None          self.__personaje = None
39          self.estado_0()          self.estado_0()
40    
41    
42      def estado_0(self):      def estado_0(self):
43          self.poner_estado(0)          self.poner_estado(0)
44          self.conn().send('¿Cómo se llama (pulsa intro para salir)?: ', 0)          self.conn().send('¿Cómo se llama (pulsa intro para salir)?: ', 0)
45    
46    
47      def comando_0(self, cmd_list):      def comando_0(self, cmd_list):
48          from dialogoinicial import DialogoInicial          from dialogoinicial import DialogoInicial
49          from dialogonormal import DialogoNormal          from dialogonormal import DialogoNormal
50    
51          dlg_siguiente = None          dlg_siguiente = None
52    
53          if len(cmd_list) == 0:          if len(cmd_list) == 0:
54              dlg_siguiente = DialogoInicial(self.padre(), self.conn())              dlg_siguiente = DialogoInicial(self.padre(), self.conn())
55          else:          else:
56              id = cmd_list[0]              id = cmd_list[0]
57              escribir("Intentando recuperar personaje " + id)              escribir("Intentando recuperar personaje " + id)
58              if Mundo.pjs_activos.has_key(id):              if Mundo.pjs_activos.has_key(id):
59                  self.conn().send("Ese personaje ya se encuentra en juego en este momento. Debes elegir otro.")                  self.conn().send("Ese personaje ya se encuentra en juego en este momento. Debes elegir otro.")
60                  escribir("Personaje llamado " + id + " no recuperado por encontrarse ya en juego.")                  escribir("Personaje llamado " + id + " no recuperado por encontrarse ya en juego.")
61                  self.estado_0()                  self.estado_0()
62              else:                else:  
63                  limbo = Mundo_localizar_sala(Mundo.ID_SALA_LIMBO)                  limbo = Mundo_localizar_sala(Mundo.ID_SALA_LIMBO)
64                  if not limbo.personajes.has_key(id):                  if not limbo.personajes.has_key(id):
65                      self.conn().send("No existe ningún personaje con ese id. Debes elegir otro.")                      self.conn().send("No existe ningún personaje con ese id. Debes elegir otro.")
66                      escribir("Personaje llamado " + id + " no recuperado porque no existe.")                      escribir("Personaje llamado " + id + " no recuperado porque no existe.")
67                      self.estado_0()                      self.estado_0()
68                  else:                  else:
69                      self.__personaje = limbo.personajes[id]                      self.__personaje = limbo.personajes[id]
70                      if self.__personaje.estado != 'vivo':                      if self.__personaje.estado != 'vivo':
71                          self.conn().send("Lo sentimos, " + id + " ya está muerto...")                          self.conn().send("Lo sentimos, " + id + " ya está muerto...")
72                          escribir( "Personaje llamado " + id + " no recuperado porque estaba muerto.")                          escribir( "Personaje llamado " + id + " no recuperado porque estaba muerto.")
73                          self.estado_0()                          self.estado_0()
74                      else:                      else:
75                          escribir("Personaje llamado " + self.__personaje.id + " encontrado en el limbo. Comprobando clave...")                          escribir("Personaje llamado " + self.__personaje.id + " encontrado en el limbo. Comprobando clave...")
76                          self.estado_1()                          self.estado_1()
77    
78          return dlg_siguiente          return dlg_siguiente
79    
80    
81      def estado_1(self):      def estado_1(self):
82          self.poner_estado(1)          self.poner_estado(1)
83          self.conn().send('')          self.conn().send('')
84          self.conn().send('¿Qué clave está asociada a este personaje (pulsa intro para salir)?: ', 0)          self.conn().send('¿Qué clave está asociada a este personaje (pulsa intro para salir)?: ', 0)
85    
86    
87      def comando_1(self, cmd_list):      def comando_1(self, cmd_list):
88          from dialogoinicial import DialogoInicial          from dialogoinicial import DialogoInicial
89          from dialogonormal import DialogoNormal          from dialogonormal import DialogoNormal
90    
91          dlg_siguiente = None          dlg_siguiente = None
92    
93          if len(cmd_list) == 0:          if len(cmd_list) == 0:
94              dlg_siguiente = DialogoInicial(self.padre(), self.conn())              dlg_siguiente = DialogoInicial(self.padre(), self.conn())
95          else:          else:
96              clave = cmd_list[0]              clave = cmd_list[0]
97              escribir("Verificando clave con personaje " + self.__personaje.id)              escribir("Verificando clave con personaje " + self.__personaje.id)
98              if clave != self.__personaje.clave():              if clave != self.__personaje.clave():
99                  self.conn().send("¡Clave incorrecta!")                  self.conn().send("¡Clave incorrecta!")
100                  escribir("Personaje llamado " + self.__personaje.id + " no recuperado debido a clave errónea.")                  escribir("Personaje llamado " + self.__personaje.id + " no recuperado debido a clave errónea.")
101                  self.estado_1()                  self.estado_1()
102              else:              else:
103                  self.conn().send("¡Clave correcta!")                  self.conn().send("¡Clave correcta!")
104                  self.padre().controlar_personaje(self.__personaje)                  self.padre().controlar_personaje(self.__personaje)
105                  escribir("Personaje llamado " + self.__personaje.id + " recuperado con éxito. Clave correcta.")                  escribir("Personaje llamado " + self.__personaje.id + " recuperado con éxito. Clave correcta.")
106                  dlg_siguiente = DialogoNormal(self.padre(), self.conn(), self.__personaje)                  dlg_siguiente = DialogoNormal(self.padre(), self.conn(), self.__personaje)
107    
108          return dlg_siguiente          return dlg_siguiente
109                            
110                            
111  # Código para pruebas unitarias del módulo.  # Código para pruebas unitarias del módulo.
112    
113  if (__name__ == '__main__'):  if (__name__ == '__main__'):
114      print "No hay código para pruebas unitarias del módulo."      print "No hay código para pruebas unitarias del módulo."
115      print "Para probar, ejecutar mine.py y conectarse via telnet."      print "Para probar, ejecutar mine.py y conectarse via telnet."
116    

Legend:
Removed from v.2.2  
changed lines
  Added in v.2.3

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