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

Diff of /ambar/dialogocrear.py

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

revision 2.2 by pabloruiz, Sun Aug 25 19:01:09 2002 UTC revision 2.3 by pabloruiz, Mon Aug 26 01:35:30 2002 UTC
# Line 32  from profesion import * Line 32  from profesion import *
32  from idioma import *  from idioma import *
33  from copy import *  from copy import *
34    
   
35  class DialogoCrear(Dialogo):  class DialogoCrear(Dialogo):
36      """Dialogo mantenido con el jugador para crear un personaje nuevo.      """Dialogo mantenido con el jugador para crear un personaje nuevo.
37    
# Line 168  class DialogoCrear(Dialogo): Line 167  class DialogoCrear(Dialogo):
167                  dlg = self.estado_2()                  dlg = self.estado_2()
168          else:          else:
169              id = cmd_list[0]              id = cmd_list[0]
170              if Mundo.pjs_activos.has_key(id) or \              #Comprobamos que no es un nombre raro
171                no_valido = 0
172                caracteres_no_validos = ''
173                for i in id:
174                    if (i not in string.letters) and (i not in string.digits):
175                        no_valido = 1
176                        caracteres_no_validos += ' '+i
177                    elif len(id) > 25:
178                        no_valido = 1
179                        caracteres_no_validos = 'El nombre es demasiado largo'
180    
181                if no_valido:
182                    self.conn().send("El nombre introducido contiene caracteres que no son letras o dígitos")
183                    self.conn().send("o es demasiado largo.")
184                    self.conn().send("Caracteres no válidos: "+caracteres_no_validos)
185                    dlg = self.estado_1()
186                        
187                #Comprobamos que no existe ya un pj con mismo ID
188                elif Mundo.pjs_activos.has_key(id) or \
189                 Mundo_localizar_sala(Mundo.ID_SALA_LIMBO).personajes.has_key(id):                 Mundo_localizar_sala(Mundo.ID_SALA_LIMBO).personajes.has_key(id):
190                  self.conn().send('Ya existe en juego un personaje con el nombre de ' + id + ', prueba con otro...')                  self.conn().send('Ya existe en juego un personaje con el nombre de ' + id + ', prueba con otro...')
191                  dlg = self.estado_1()                  dlg = self.estado_1()
192    
193                #Procedemos a crear el pj
194              else:              else:
195                  self.__id = id                  self.__id = id
196                  self.conn().send('El nombre de tu personaje es ' + str(self.__id))                  self.conn().send('El nombre de tu personaje es ' + str(self.__id))
# Line 317  class DialogoCrear(Dialogo): Line 336  class DialogoCrear(Dialogo):
336          if len(cmd_list) == 0:          if len(cmd_list) == 0:
337              self.conn().send('Debes introducir una edad. Pulsa ? para ayuda.')              self.conn().send('Debes introducir una edad. Pulsa ? para ayuda.')
338              dlg = self.estado_3()              dlg = self.estado_3()
339          elif cmd_list[0] < 25:  
             self.conn().send('Esta edad no es válida. Prueba con una edad mayor')  
             dlg = self.estado_3()  
340          elif cmd_list[0] == '?':          elif cmd_list[0] == '?':
341              self.conn().send('La edad no tiene efecto en las tiradas del juego, pero')              self.conn().send('La edad no tiene efecto en las tiradas del juego, pero')
342              self.conn().send('forma parte de la caracterización del personaje.')              self.conn().send('forma parte de la caracterización del personaje.')
343                self.conn().send('Intenta ser coherente con la raza elegida.')
344              dlg = self.estado_3()              dlg = self.estado_3()
345          elif cmd_list[0] == '-':          elif cmd_list[0] == '-':
346              self.conn().send('')              self.conn().send('')
# Line 337  class DialogoCrear(Dialogo): Line 355  class DialogoCrear(Dialogo):
355          else:          else:
356              try:              try:
357                  self.__edad = int(cmd_list[0])                  self.__edad = int(cmd_list[0])
358                  self.conn().send('La edad de tu personaje es ' + str(self.__edad) + " años.")                  
359                  self.conn().send('')                  #Casos de edades para diferentes razas
360                  dlg = self.estado_4()                  if self.__raza.nombre == 'elfo' and self.__edad < 25:
361                        self.conn().send('Esta edad no es válida para un elfo. Prueba con una edad mayor')
362                        raise ValueError
363                    elif self.__raza.nombre == 'elfo' and self.__edad > 3000:
364                        self.conn().send('Esta edad no es válida para un elfo joven. Prueba con una edad menor')
365                        raise ValueError
366                    elif self.__raza.nombre == 'enano' and self.__edad < 25:
367                        self.conn().send('Esta edad no es válida para un enano. Prueba con una edad mayor')
368                        raise ValueError
369                    elif self.__raza.nombre == 'enano' and self.__edad > 300:
370                        self.conn().send('Esta edad no es válida para un enano joven. Prueba con una edad menor')
371                        raise ValueError
372                    elif self.__raza.nombre == 'orco' and self.__edad < 15:
373                        self.conn().send('Esta edad no es válida para un orco. Prueba con una edad mayor')
374                        raise ValueError
375                    elif self.__raza.nombre == 'orco' and self.__edad > 55:
376                        self.conn().send('Esta edad no es válida para un orco joven. Prueba con una edad menor')
377                        raise ValueError
378                    elif self.__raza.nombre == 'humano' and self.__edad < 18:
379                        self.conn().send('Esta edad no es válida para un humano. Prueba con una edad mayor')
380                        raise ValueError
381                    elif self.__raza.nombre == 'humano' and self.__edad > 70:
382                        self.conn().send('Esta edad no es válida para un humano joven. Prueba con una edad menor')
383                        raise ValueError
384    
385                    else:
386                        self.conn().send('La edad de tu personaje es ' + str(self.__edad) + " años.")
387                        self.conn().send('')
388                        dlg = self.estado_4()
389              except ValueError:              except ValueError:
390                  self.conn().send('Debes introducir una edad válida. Pulsa ? para ayuda.')                  self.conn().send('Debes introducir una edad válida. Pulsa ? para ayuda.')
391                  dlg = self.estado_3()                  dlg = self.estado_3()
# Line 362  class DialogoCrear(Dialogo): Line 408  class DialogoCrear(Dialogo):
408              self.conn().send('forma parte de la caracterización del personaje.')              self.conn().send('forma parte de la caracterización del personaje.')
409              self.conn().send('El formato es metros punto centímetros (por ejemplo,')              self.conn().send('El formato es metros punto centímetros (por ejemplo,')
410              self.conn().send('introducir 1.80 significa 1 metro y 80 centímetros).')              self.conn().send('introducir 1.80 significa 1 metro y 80 centímetros).')
411                self.conn().send('Ten en cuenta las limitaciones de la raza escogida.')
412              dlg = self.estado_4()              dlg = self.estado_4()
413          elif cmd_list[0] == '-':          elif cmd_list[0] == '-':
414              self.conn().send('')              self.conn().send('')
# Line 376  class DialogoCrear(Dialogo): Line 423  class DialogoCrear(Dialogo):
423          else:          else:
424              try:              try:
425                  self.__altura = float(cmd_list[0])                  self.__altura = float(cmd_list[0])
426                  self.conn().send('La altura de tu personaje es %0.2f metros' % self.__altura)                  #Casos de alturas para diferentes razas
427                  self.conn().send('')                  if self.__raza.nombre == 'elfo' and (self.__altura > 2.30 or self.__altura < 1.75):
428                  dlg = self.estado_5()                      raise ValueError
429                    elif self.__raza.nombre == 'enano' and (self.__altura > 1.70 or self.__altura < 1.00):
430                        raise ValueError
431                    elif self.__raza.nombre == 'orco' and (self.__altura > 1.65 or self.__altura < 0.90):
432                        raise ValueError
433                    elif self.__raza.nombre == 'humano' and (self.__altura > 2.10 or self.__altura < 1.50):
434                        raise ValueError
435                    else:
436                        self.conn().send('La altura de tu personaje es %0.2f metros' % self.__altura)
437                        self.conn().send('')
438                        dlg = self.estado_5()
439              except ValueError:              except ValueError:
440                    self.conn().send('Esta altura no es válida para un '+self.__raza.nombre+'.')
441                  self.conn().send('Debes introducir una altura válida. Pulsa ? para ayuda.')                  self.conn().send('Debes introducir una altura válida. Pulsa ? para ayuda.')
442                  dlg = self.estado_4()                  dlg = self.estado_4()
443          return dlg          return dlg
# Line 399  class DialogoCrear(Dialogo): Line 457  class DialogoCrear(Dialogo):
457          elif cmd_list[0] == '?':          elif cmd_list[0] == '?':
458              self.conn().send('El peso no tiene efecto en las tiradas del juego, pero')              self.conn().send('El peso no tiene efecto en las tiradas del juego, pero')
459              self.conn().send('forma parte de la caracterización del personaje.')              self.conn().send('forma parte de la caracterización del personaje.')
460                self.conn().send('Intenta ser coherente con la raza elegida.')
461              dlg = self.estado_5()              dlg = self.estado_5()
462          elif cmd_list[0] == '-':          elif cmd_list[0] == '-':
463              self.conn().send('')              self.conn().send('')
# Line 413  class DialogoCrear(Dialogo): Line 472  class DialogoCrear(Dialogo):
472          else:          else:
473              try:              try:
474                  self.__peso = int(cmd_list[0])                  self.__peso = int(cmd_list[0])
475                  self.conn().send('El peso de tu personaje es ' + str(self.__peso) + ' kilos.')                  #Casos de alturas para diferentes razas
476                  self.conn().send('')                  if self.__raza.nombre == 'elfo' and (self.__peso > 120 or self.__peso < 40):
477                  dlg = self.estado_6()                      raise ValueError
478                    elif self.__raza.nombre == 'enano' and (self.__peso > 350 or self.__peso < 70):
479                        raise ValueError
480                    elif self.__raza.nombre == 'orco' and (self.__peso > 150 or self.__peso < 35):
481                        raise ValueError
482                    elif self.__raza.nombre == 'humano' and (self.__peso > 200 or self.__peso < 40):
483                        raise ValueError
484                    else:
485                        self.conn().send('El peso de tu personaje es ' + str(self.__peso) + ' kilos.')
486                        self.conn().send('')
487                        dlg = self.estado_6()
488              except ValueError:              except ValueError:
489                    self.conn().send('Este peso no es válido para un '+self.__raza.nombre+'.')
490                  self.conn().send('Debes introducir un peso válido. Pulsa ? para ayuda.')                  self.conn().send('Debes introducir un peso válido. Pulsa ? para ayuda.')
491                  dlg = self.estado_5()                  dlg = self.estado_5()
492          return dlg          return dlg

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