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 |
|
|
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)) |
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('') |
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() |
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('') |
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 |
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('') |
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 |