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: dialogocrear.py |
#Fichero: dialogocrear.py |
23 |
|
|
24 |
"""Clase DialogoCrear.""" |
"""Clase DialogoCrear.""" |
25 |
|
|
26 |
from dialogo import * |
from dialogo import * |
27 |
from utils import * |
from utils import * |
28 |
from mundo import * |
from mundo import * |
29 |
from sala import * |
from sala import * |
30 |
from raza import * |
from raza import * |
31 |
from profesion import * |
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 |
|
|
38 |
Contiene los siguientes atributos: |
Contiene los siguientes atributos: |
39 |
- __id |
- __id |
40 |
- __clave |
- __clave |
41 |
- __esMaia |
- __esMaia |
42 |
- __nombre |
- __nombre |
43 |
- __descripcion |
- __descripcion |
44 |
- __descripcion_ok |
- __descripcion_ok |
45 |
- __descripcion_especial_ok |
- __descripcion_especial_ok |
46 |
- __experiencia |
- __experiencia |
47 |
- __nivel |
- __nivel |
48 |
- __vida |
- __vida |
49 |
- __volumen |
- __volumen |
50 |
- __estado_pj |
- __estado_pj |
51 |
- __sala |
- __sala |
52 |
- __atrib |
- __atrib |
53 |
- __atrib_ok |
- __atrib_ok |
54 |
- __idiomas |
- __idiomas |
55 |
- __idiomas_ok |
- __idiomas_ok |
56 |
- __raza |
- __raza |
57 |
- __profesion |
- __profesion |
58 |
- __sexo |
- __sexo |
59 |
- __edad |
- __edad |
60 |
- __altura |
- __altura |
61 |
- __peso |
- __peso |
62 |
- __color_de_ojos |
- __color_de_ojos |
63 |
- __color_de_pelo |
- __color_de_pelo |
64 |
- __aura |
- __aura |
65 |
- __ptos_atrib |
- __ptos_atrib |
66 |
- __ptos_atrib_max |
- __ptos_atrib_max |
67 |
- __ptos_idiomas |
- __ptos_idiomas |
68 |
- __ptos_idiomas_max |
- __ptos_idiomas_max |
69 |
""" |
""" |
70 |
|
|
71 |
def __init__(self, padre, conn): |
def __init__(self, padre, conn): |
72 |
Dialogo.__init__(self, padre, conn) |
Dialogo.__init__(self, padre, conn) |
73 |
self.__id = None |
self.__id = None |
74 |
self.__clave = None |
self.__clave = None |
75 |
self.__esMaia = None |
self.__esMaia = None |
76 |
self.__nombre = None |
self.__nombre = None |
77 |
self.__descripcion = None |
self.__descripcion = None |
78 |
self.__descripcion_ok = None |
self.__descripcion_ok = None |
79 |
self.__descripcion_especial_ok = None |
self.__descripcion_especial_ok = None |
80 |
self.__experiencia = None |
self.__experiencia = None |
81 |
self.__nivel = None |
self.__nivel = None |
82 |
self.__vida = None |
self.__vida = None |
83 |
self.__volumen = None |
self.__volumen = None |
84 |
self.__estado_pj = None |
self.__estado_pj = None |
85 |
self.__sala = None |
self.__sala = None |
86 |
self.__atrib = None |
self.__atrib = None |
87 |
self.__atrib_ok = None |
self.__atrib_ok = None |
88 |
self.__idiomas = None |
self.__idiomas = None |
89 |
self.__idiomas_ok = None |
self.__idiomas_ok = None |
90 |
self.__raza = None |
self.__raza = None |
91 |
self.__profesion = None |
self.__profesion = None |
92 |
self.__sexo = None |
self.__sexo = None |
93 |
self.__edad = None |
self.__edad = None |
94 |
self.__altura = None |
self.__altura = None |
95 |
self.__peso = None |
self.__peso = None |
96 |
self.__color_de_ojos = None |
self.__color_de_ojos = None |
97 |
self.__color_de_pelo = None |
self.__color_de_pelo = None |
98 |
self.__aura = None |
self.__aura = None |
99 |
self.__ptos_atrib = None |
self.__ptos_atrib = None |
100 |
self.__ptos_atrib_max = None |
self.__ptos_atrib_max = None |
101 |
self.__ptos_idiomas = None |
self.__ptos_idiomas = None |
102 |
self.__ptos_idiomas_max = None |
self.__ptos_idiomas_max = None |
103 |
|
|
104 |
self.estado_0() |
self.estado_0() |
105 |
|
|
106 |
|
|
107 |
def estado_0(self): |
def estado_0(self): |
108 |
self.poner_estado(0) |
self.poner_estado(0) |
109 |
|
|
110 |
self.conn().send('Creación de personaje') |
self.conn().send('Creación de personaje') |
111 |
self.conn().send('') |
self.conn().send('') |
112 |
self.conn().send('¡Bienvenido a la Tierra Media! Tu cuerpo está tomando forma') |
self.conn().send('¡Bienvenido a la Tierra Media! Tu cuerpo está tomando forma') |
113 |
self.conn().send('pero es necesario el hálito vital de Eru para conseguir') |
self.conn().send('pero es necesario el hálito vital de Eru para conseguir') |
114 |
self.conn().send('que abras los ojos y respires.') |
self.conn().send('que abras los ojos y respires.') |
115 |
self.conn().send('') |
self.conn().send('') |
116 |
self.conn().send('Desde el primer momento serás testigo de maravillas sólo') |
self.conn().send('Desde el primer momento serás testigo de maravillas sólo') |
117 |
self.conn().send('posibles en este universo mágico que te permitirán viajar a') |
self.conn().send('posibles en este universo mágico que te permitirán viajar a') |
118 |
|
|
119 |
self.conn().send('lugares fantásticos y conocer a gente real en una Arda ') |
self.conn().send('lugares fantásticos y conocer a gente real en una Arda ') |
120 |
self.conn().send('tan real como tu imaginación...') |
self.conn().send('tan real como tu imaginación...') |
121 |
self.conn().send('') |
self.conn().send('') |
122 |
self.conn().send('Estás a punto de entrar en la aventura literaria más emocionante') |
self.conn().send('Estás a punto de entrar en la aventura literaria más emocionante') |
123 |
self.conn().send('de tu vida pues participarás, junto con otra mucha gente, del') |
self.conn().send('de tu vida pues participarás, junto con otra mucha gente, del') |
124 |
self.conn().send('trabajo de decenas de amantes de la obra de Tolkien que han') |
self.conn().send('trabajo de decenas de amantes de la obra de Tolkien que han') |
125 |
self.conn().send('conseguido poco a poco reconstruir una Tierra Media para todos.') |
self.conn().send('conseguido poco a poco reconstruir una Tierra Media para todos.') |
126 |
self.conn().send('') |
self.conn().send('') |
127 |
self.conn().send('Es necesario hacerte algunas preguntas para saber qué personaje') |
self.conn().send('Es necesario hacerte algunas preguntas para saber qué personaje') |
128 |
self.conn().send('deseas ser. tómate el tiempo que necesites para responder cada') |
self.conn().send('deseas ser. tómate el tiempo que necesites para responder cada') |
129 |
self.conn().send('una de ellas.') |
self.conn().send('una de ellas.') |
130 |
self.conn().send('') |
self.conn().send('') |
131 |
self.conn().send('') |
self.conn().send('') |
132 |
self.conn().send(color(32) + 'En todo momento puedes escribir ? para recibir ayuda' + finl) |
self.conn().send(color(32) + 'En todo momento puedes escribir ? para recibir ayuda' + finl) |
133 |
self.conn().send(color(32) + ' - para retroceder al paso anterior' + finl) |
self.conn().send(color(32) + ' - para retroceder al paso anterior' + finl) |
134 |
self.conn().send(color(32) + ' + para avanzar al paso siguiente' + finl) |
self.conn().send(color(32) + ' + para avanzar al paso siguiente' + finl) |
135 |
self.conn().send('') |
self.conn().send('') |
136 |
|
|
137 |
self.estado_1() |
self.estado_1() |
138 |
escribir('Creando un personaje...') |
escribir('Creando un personaje...') |
139 |
return None |
return None |
140 |
|
|
141 |
|
|
142 |
def estado_1(self): |
def estado_1(self): |
143 |
self.poner_estado(1) |
self.poner_estado(1) |
144 |
self.conn().send(color(33) + '¿Qué nombre deseas tener? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + '¿Qué nombre deseas tener? ' + color(32) + '(? - +): ' + finl, 0) |
145 |
return None |
return None |
146 |
|
|
147 |
|
|
148 |
def comando_1(self, cmd_list): |
def comando_1(self, cmd_list): |
149 |
dlg = None |
dlg = None |
150 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
151 |
self.conn().send('Debes introducir un nombre (1 sola palabra). Pulsa ? para ayuda.') |
self.conn().send('Debes introducir un nombre (1 sola palabra). Pulsa ? para ayuda.') |
152 |
dlg = self.estado_1() |
dlg = self.estado_1() |
153 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
154 |
self.conn().send('El nombre es el identificador de tu personaje. Consiste en') |
self.conn().send('El nombre es el identificador de tu personaje. Consiste en') |
155 |
self.conn().send('UNA SOLA palabra, que puede contener letras y números, pero no') |
self.conn().send('UNA SOLA palabra, que puede contener letras y números, pero no') |
156 |
self.conn().send('espacios o símbolos especiales.') |
self.conn().send('espacios o símbolos especiales.') |
157 |
dlg = self.estado_1() |
dlg = self.estado_1() |
158 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
159 |
self.conn().send('No puedes retroceder, estás en el primer paso.') |
self.conn().send('No puedes retroceder, estás en el primer paso.') |
160 |
dlg = self.estado_1() |
dlg = self.estado_1() |
161 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
162 |
if self.__id == None: |
if self.__id == None: |
163 |
self.conn().send('Antes de avanzar tienes que introducir un nombre.') |
self.conn().send('Antes de avanzar tienes que introducir un nombre.') |
164 |
dlg = self.estado_1() |
dlg = self.estado_1() |
165 |
else: |
else: |
166 |
self.conn().send('') |
self.conn().send('') |
167 |
dlg = self.estado_2() |
dlg = self.estado_2() |
168 |
else: |
else: |
169 |
id = cmd_list[0] |
id = cmd_list[0] |
170 |
#Comprobamos que no es un nombre raro |
#Comprobamos que no es un nombre raro |
171 |
no_valido = 0 |
no_valido = 0 |
172 |
caracteres_no_validos = '' |
caracteres_no_validos = '' |
173 |
for i in id: |
for i in id: |
174 |
if (i not in string.letters) and (i not in string.digits): |
if (i not in string.letters) and (i not in string.digits): |
175 |
no_valido = 1 |
no_valido = 1 |
176 |
caracteres_no_validos += ' '+i |
caracteres_no_validos += ' '+i |
177 |
elif len(id) > 25: |
elif len(id) > 25: |
178 |
no_valido = 1 |
no_valido = 1 |
179 |
caracteres_no_validos = 'El nombre es demasiado largo' |
caracteres_no_validos = 'El nombre es demasiado largo' |
180 |
|
|
181 |
if no_valido: |
if no_valido: |
182 |
self.conn().send("El nombre introducido contiene caracteres que no son letras o dígitos") |
self.conn().send("El nombre introducido contiene caracteres que no son letras o dígitos") |
183 |
self.conn().send("o es demasiado largo.") |
self.conn().send("o es demasiado largo.") |
184 |
self.conn().send("Caracteres no válidos: "+caracteres_no_validos) |
self.conn().send("Caracteres no válidos: "+caracteres_no_validos) |
185 |
dlg = self.estado_1() |
dlg = self.estado_1() |
186 |
|
|
187 |
#Comprobamos que no existe ya un pj con mismo ID |
#Comprobamos que no existe ya un pj con mismo ID |
188 |
elif Mundo.pjs_activos.has_key(id) or \ |
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 |
#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)) |
197 |
escribir('El nombre que ha elegido el jugador es: ' + self.__id) |
escribir('El nombre que ha elegido el jugador es: ' + self.__id) |
198 |
self.conn().send('') |
self.conn().send('') |
199 |
dlg = self.estado_101() |
dlg = self.estado_101() |
200 |
return dlg |
return dlg |
201 |
|
|
202 |
def estado_101(self): |
def estado_101(self): |
203 |
self.poner_estado(101) |
self.poner_estado(101) |
204 |
self.conn().send(color(33) + 'Introduce una clave: ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + 'Introduce una clave: ' + color(32) + '(? - +): ' + finl, 0) |
205 |
return None |
return None |
206 |
|
|
207 |
|
|
208 |
def comando_101(self, cmd_list): |
def comando_101(self, cmd_list): |
209 |
dlg = None |
dlg = None |
210 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
211 |
self.conn().send('Debes introducir una clave/contraseña tan larga como quieras [una palabra].') |
self.conn().send('Debes introducir una clave/contraseña tan larga como quieras [una palabra].') |
212 |
self.conn().send('Intenta que no sea fácil de adivinar. Pulsa ? para ayuda.') |
self.conn().send('Intenta que no sea fácil de adivinar. Pulsa ? para ayuda.') |
213 |
dlg = self.estado_101() |
dlg = self.estado_101() |
214 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
215 |
self.conn().send('La clave es un dato personal y que está asociada a un personaje.') |
self.conn().send('La clave es un dato personal y que está asociada a un personaje.') |
216 |
self.conn().send('Necesitarás introducir la clave cada vez que desees recuperar') |
self.conn().send('Necesitarás introducir la clave cada vez que desees recuperar') |
217 |
self.conn().send('a tu personaje. Para ello evita claves fácil de adivinar o cortas') |
self.conn().send('a tu personaje. Para ello evita claves fácil de adivinar o cortas') |
218 |
dlg = self.estado_101() |
dlg = self.estado_101() |
219 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
220 |
self.conn().send('') |
self.conn().send('') |
221 |
dlg = self.estado_1() |
dlg = self.estado_1() |
222 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
223 |
|
|
224 |
if self.__clave == None: |
if self.__clave == None: |
225 |
self.conn().send('Antes de avanzar tienes que introducir una clave.') |
self.conn().send('Antes de avanzar tienes que introducir una clave.') |
226 |
dlg = self.estado_101() |
dlg = self.estado_101() |
227 |
else: |
else: |
228 |
self.conn().send('') |
self.conn().send('') |
229 |
dlg = self.estado_2() |
dlg = self.estado_2() |
230 |
else: |
else: |
231 |
clave = cmd_list[0] |
clave = cmd_list[0] |
232 |
self.__clave = clave |
self.__clave = clave |
233 |
escribir('La clave que ha elegido el jugador es: ' + self.__clave) |
escribir('La clave que ha elegido el jugador es: ' + self.__clave) |
234 |
self.conn().send('La clave no se muestra.\n') |
self.conn().send('La clave no se muestra.\n') |
235 |
|
|
236 |
#Es la clave de los Maiar? |
#Es la clave de los Maiar? |
237 |
|
|
238 |
if clave == file('clave_maiar.txt','r').readlines()[0][:-1]: |
if clave == file('clave_maiar.txt','r').readlines()[0][:-1]: |
239 |
self.__esMaia = 1 |
self.__esMaia = 1 |
240 |
else: |
else: |
241 |
self.__esMaia = 0 |
self.__esMaia = 0 |
242 |
|
|
243 |
dlg = self.estado_2() |
dlg = self.estado_2() |
244 |
return dlg |
return dlg |
245 |
|
|
246 |
def estado_2(self): |
def estado_2(self): |
247 |
self.poner_estado(2) |
self.poner_estado(2) |
248 |
self.conn().send(color(33) + '¿A qué raza quieres pertenecer? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + '¿A qué raza quieres pertenecer? ' + color(32) + '(? - +): ' + finl, 0) |
249 |
return None |
return None |
250 |
|
|
251 |
|
|
252 |
def comando_2(self, cmd_list): |
def comando_2(self, cmd_list): |
253 |
dlg = None |
dlg = None |
254 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
255 |
self.conn().send('Debes introducir una raza. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir una raza. Pulsa ? para ayuda.') |
256 |
dlg = self.estado_2() |
dlg = self.estado_2() |
257 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
258 |
self.conn().send('La raza determina totalmente las cualidades y caracterización') |
self.conn().send('La raza determina totalmente las cualidades y caracterización') |
259 |
self.conn().send('del personaje. Existen las siguientes razas:') |
self.conn().send('del personaje. Existen las siguientes razas:') |
260 |
self.conn().send('\n'.join([raza.nombre for raza in Raza_lista])) |
self.conn().send('\n'.join([raza.nombre for raza in Raza_lista])) |
261 |
dlg = self.estado_2() |
dlg = self.estado_2() |
262 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
263 |
self.conn().send('') |
self.conn().send('') |
264 |
dlg = self.estado_101() |
dlg = self.estado_101() |
265 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
266 |
if self.__raza == None: |
if self.__raza == None: |
267 |
self.conn().send('Antes de avanzar tienes que introducir una raza.') |
self.conn().send('Antes de avanzar tienes que introducir una raza.') |
268 |
dlg = self.estado_2() |
dlg = self.estado_2() |
269 |
else: |
else: |
270 |
self.conn().send('') |
self.conn().send('') |
271 |
dlg = self.estado_3() |
dlg = self.estado_3() |
272 |
else: |
else: |
273 |
raza = Raza_buscar(cmd_list[0]) |
raza = Raza_buscar(cmd_list[0]) |
274 |
if raza == None: |
if raza == None: |
275 |
self.conn().send('La raza ' + cmd_list[0] + ' no existe.') |
self.conn().send('La raza ' + cmd_list[0] + ' no existe.') |
276 |
dlg = self.estado_2() |
dlg = self.estado_2() |
277 |
else: |
else: |
278 |
self.__raza = raza |
self.__raza = raza |
279 |
self.conn().send('La raza de tu personaje es ' + str(self.__raza.nombre)) |
self.conn().send('La raza de tu personaje es ' + str(self.__raza.nombre)) |
280 |
escribir('La raza que ha elegido el jugador es: ' + self.__raza.nombre) |
escribir('La raza que ha elegido el jugador es: ' + self.__raza.nombre) |
281 |
self.conn().send('') |
self.conn().send('') |
282 |
dlg = self.estado_201() |
dlg = self.estado_201() |
283 |
return dlg |
return dlg |
284 |
|
|
285 |
|
|
286 |
def estado_201(self): |
def estado_201(self): |
287 |
self.poner_estado(201) |
self.poner_estado(201) |
288 |
self.conn().send(color(33) + '¿De qué sexo es tu personaje (m/f)? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + '¿De qué sexo es tu personaje (m/f)? ' + color(32) + '(? - +): ' + finl, 0) |
289 |
return None |
return None |
290 |
|
|
291 |
|
|
292 |
def comando_201(self, cmd_list): |
def comando_201(self, cmd_list): |
293 |
dlg = None |
dlg = None |
294 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
295 |
self.conn().send('Debes introducir "m" o "f". Pulsa ? para ayuda.') |
self.conn().send('Debes introducir "m" o "f". Pulsa ? para ayuda.') |
296 |
dlg = self.estado_201() |
dlg = self.estado_201() |
297 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
298 |
self.conn().send('El sexo no tiene efecto práctico en el juego, pero') |
self.conn().send('El sexo no tiene efecto práctico en el juego, pero') |
299 |
self.conn().send('forma parte de la caracterización del personaje.') |
self.conn().send('forma parte de la caracterización del personaje.') |
300 |
self.conn().send('Los posibles valores son "m" para masculino y "f" para femenino') |
self.conn().send('Los posibles valores son "m" para masculino y "f" para femenino') |
301 |
dlg = self.estado_201() |
dlg = self.estado_201() |
302 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
303 |
self.conn().send('') |
self.conn().send('') |
304 |
dlg = self.estado_2() |
dlg = self.estado_2() |
305 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
306 |
if self.__sexo == None: |
if self.__sexo == None: |
307 |
self.conn().send('Antes de avanzar tienes que introducir un sexo válido.') |
self.conn().send('Antes de avanzar tienes que introducir un sexo válido.') |
308 |
dlg = self.estado_201() |
dlg = self.estado_201() |
309 |
else: |
else: |
310 |
self.conn().send('') |
self.conn().send('') |
311 |
dlg = self.estado_3() |
dlg = self.estado_3() |
312 |
else: |
else: |
313 |
sexo = cmd_list[0] |
sexo = cmd_list[0] |
314 |
|
|
315 |
if sexo != "m" and sexo != "f": |
if sexo != "m" and sexo != "f": |
316 |
self.conn().send('Debes introducir un sexo válido. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir un sexo válido. Pulsa ? para ayuda.') |
317 |
dlg = self.estado_201() |
dlg = self.estado_201() |
318 |
else: |
else: |
319 |
if sexo == "m": |
if sexo == "m": |
320 |
self.__sexo = "masculino" |
self.__sexo = "masculino" |
321 |
else: |
else: |
322 |
self.__sexo = "femenino" |
self.__sexo = "femenino" |
323 |
self.conn().send('El sexo de tu personaje es ' + str(self.__sexo)) |
self.conn().send('El sexo de tu personaje es ' + str(self.__sexo)) |
324 |
escribir('El sexo que ha elegido el jugador es: ' + self.__sexo) |
escribir('El sexo que ha elegido el jugador es: ' + self.__sexo) |
325 |
self.conn().send('') |
self.conn().send('') |
326 |
dlg = self.estado_3() |
dlg = self.estado_3() |
327 |
return dlg |
return dlg |
328 |
|
|
329 |
|
|
330 |
def estado_3(self): |
def estado_3(self): |
331 |
self.poner_estado(3) |
self.poner_estado(3) |
332 |
self.conn().send(color(33) + '¿Qué edad tiene tu personaje (en años)? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + '¿Qué edad tiene tu personaje (en años)? ' + color(32) + '(? - +): ' + finl, 0) |
333 |
return None |
return None |
334 |
|
|
335 |
|
|
336 |
def comando_3(self, cmd_list): |
def comando_3(self, cmd_list): |
337 |
dlg = None |
dlg = None |
338 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
339 |
self.conn().send('Debes introducir una edad. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir una edad. Pulsa ? para ayuda.') |
340 |
dlg = self.estado_3() |
dlg = self.estado_3() |
341 |
|
|
342 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
343 |
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') |
344 |
self.conn().send('forma parte de la caracterización del personaje.') |
self.conn().send('forma parte de la caracterización del personaje.') |
345 |
self.conn().send('Intenta ser coherente con la raza elegida.') |
self.conn().send('Intenta ser coherente con la raza elegida.') |
346 |
dlg = self.estado_3() |
dlg = self.estado_3() |
347 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
348 |
self.conn().send('') |
self.conn().send('') |
349 |
dlg = self.estado_201() |
dlg = self.estado_201() |
350 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
351 |
if self.__edad == None: |
if self.__edad == None: |
352 |
self.conn().send('Antes de avanzar tienes que introducir una edad.') |
self.conn().send('Antes de avanzar tienes que introducir una edad.') |
353 |
dlg = self.estado_3() |
dlg = self.estado_3() |
354 |
else: |
else: |
355 |
self.conn().send('') |
self.conn().send('') |
356 |
dlg = self.estado_4() |
dlg = self.estado_4() |
357 |
else: |
else: |
358 |
try: |
try: |
359 |
self.__edad = int(cmd_list[0]) |
self.__edad = int(cmd_list[0]) |
360 |
|
|
361 |
#Casos de edades para diferentes razas |
#Casos de edades para diferentes razas |
362 |
if self.__raza.nombre == 'elfo' and self.__edad < 25: |
if self.__raza.nombre == 'elfo' and self.__edad < 25: |
363 |
self.conn().send('Esta edad no es válida para un elfo. Prueba con una edad mayor') |
self.conn().send('Esta edad no es válida para un elfo. Prueba con una edad mayor') |
364 |
raise ValueError |
raise ValueError |
365 |
elif self.__raza.nombre == 'elfo' and self.__edad > 3000: |
elif self.__raza.nombre == 'elfo' and self.__edad > 3000: |
366 |
self.conn().send('Esta edad no es válida para un elfo joven. Prueba con una edad menor') |
self.conn().send('Esta edad no es válida para un elfo joven. Prueba con una edad menor') |
367 |
raise ValueError |
raise ValueError |
368 |
elif self.__raza.nombre == 'enano' and self.__edad < 25: |
elif self.__raza.nombre == 'enano' and self.__edad < 25: |
369 |
self.conn().send('Esta edad no es válida para un enano. Prueba con una edad mayor') |
self.conn().send('Esta edad no es válida para un enano. Prueba con una edad mayor') |
370 |
raise ValueError |
raise ValueError |
371 |
elif self.__raza.nombre == 'enano' and self.__edad > 300: |
elif self.__raza.nombre == 'enano' and self.__edad > 300: |
372 |
self.conn().send('Esta edad no es válida para un enano joven. Prueba con una edad menor') |
self.conn().send('Esta edad no es válida para un enano joven. Prueba con una edad menor') |
373 |
raise ValueError |
raise ValueError |
374 |
elif self.__raza.nombre == 'orco' and self.__edad < 15: |
elif self.__raza.nombre == 'orco' and self.__edad < 15: |
375 |
self.conn().send('Esta edad no es válida para un orco. Prueba con una edad mayor') |
self.conn().send('Esta edad no es válida para un orco. Prueba con una edad mayor') |
376 |
raise ValueError |
raise ValueError |
377 |
elif self.__raza.nombre == 'orco' and self.__edad > 55: |
elif self.__raza.nombre == 'orco' and self.__edad > 55: |
378 |
self.conn().send('Esta edad no es válida para un orco joven. Prueba con una edad menor') |
self.conn().send('Esta edad no es válida para un orco joven. Prueba con una edad menor') |
379 |
raise ValueError |
raise ValueError |
380 |
elif self.__raza.nombre == 'humano' and self.__edad < 18: |
elif self.__raza.nombre == 'humano' and self.__edad < 18: |
381 |
self.conn().send('Esta edad no es válida para un humano. Prueba con una edad mayor') |
self.conn().send('Esta edad no es válida para un humano. Prueba con una edad mayor') |
382 |
raise ValueError |
raise ValueError |
383 |
elif self.__raza.nombre == 'humano' and self.__edad > 70: |
elif self.__raza.nombre == 'humano' and self.__edad > 70: |
384 |
self.conn().send('Esta edad no es válida para un humano joven. Prueba con una edad menor') |
self.conn().send('Esta edad no es válida para un humano joven. Prueba con una edad menor') |
385 |
raise ValueError |
raise ValueError |
386 |
elif self.__raza.nombre == 'hobbit' and self.__edad < 18: |
elif self.__raza.nombre == 'hobbit' and self.__edad < 18: |
387 |
self.conn().send('Esta edad no es válida para un hobbit. Prueba con una edad mayor') |
self.conn().send('Esta edad no es válida para un hobbit. Prueba con una edad mayor') |
388 |
raise ValueError |
raise ValueError |
389 |
elif self.__raza.nombre == 'hobbit' and self.__edad > 70: |
elif self.__raza.nombre == 'hobbit' and self.__edad > 70: |
390 |
self.conn().send('Esta edad no es válida para un hobbit joven. Prueba con una edad menor') |
self.conn().send('Esta edad no es válida para un hobbit joven. Prueba con una edad menor') |
391 |
raise ValueError |
raise ValueError |
392 |
|
|
393 |
else: |
else: |
394 |
self.conn().send('La edad de tu personaje es ' + str(self.__edad) + " años.") |
self.conn().send('La edad de tu personaje es ' + str(self.__edad) + " años.") |
395 |
escribir('La edad que ha elegido el jugador es: ' + str(self.__edad)) |
escribir('La edad que ha elegido el jugador es: ' + str(self.__edad)) |
396 |
self.conn().send('') |
self.conn().send('') |
397 |
dlg = self.estado_4() |
dlg = self.estado_4() |
398 |
except ValueError: |
except ValueError: |
399 |
self.conn().send('Debes introducir una edad válida. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir una edad válida. Pulsa ? para ayuda.') |
400 |
dlg = self.estado_3() |
dlg = self.estado_3() |
401 |
return dlg |
return dlg |
402 |
|
|
403 |
|
|
404 |
def estado_4(self): |
def estado_4(self): |
405 |
self.poner_estado(4) |
self.poner_estado(4) |
406 |
self.conn().send(color(33) + '¿Qué altura tiene tu personaje (m.cm)? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + '¿Qué altura tiene tu personaje (m.cm)? ' + color(32) + '(? - +): ' + finl, 0) |
407 |
return None |
return None |
408 |
|
|
409 |
|
|
410 |
def comando_4(self, cmd_list): |
def comando_4(self, cmd_list): |
411 |
dlg = None |
dlg = None |
412 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
413 |
self.conn().send('Debes introducir una altura. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir una altura. Pulsa ? para ayuda.') |
414 |
dlg = self.estado_4() |
dlg = self.estado_4() |
415 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
416 |
self.conn().send('La altura no tiene efecto en las tiradas del juego, pero') |
self.conn().send('La altura no tiene efecto en las tiradas del juego, pero') |
417 |
self.conn().send('forma parte de la caracterización del personaje.') |
self.conn().send('forma parte de la caracterización del personaje.') |
418 |
self.conn().send('El formato es metros punto centímetros (por ejemplo,') |
self.conn().send('El formato es metros punto centímetros (por ejemplo,') |
419 |
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).') |
420 |
self.conn().send('Ten en cuenta las limitaciones de la raza escogida.') |
self.conn().send('Ten en cuenta las limitaciones de la raza escogida.') |
421 |
dlg = self.estado_4() |
dlg = self.estado_4() |
422 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
423 |
self.conn().send('') |
self.conn().send('') |
424 |
dlg = self.estado_3() |
dlg = self.estado_3() |
425 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
426 |
if self.__altura == None: |
if self.__altura == None: |
427 |
self.conn().send('Antes de avanzar tienes que introducir una altura.') |
self.conn().send('Antes de avanzar tienes que introducir una altura.') |
428 |
dlg = self.estado_4() |
dlg = self.estado_4() |
429 |
else: |
else: |
430 |
self.conn().send('') |
self.conn().send('') |
431 |
dlg = self.estado_5() |
dlg = self.estado_5() |
432 |
else: |
else: |
433 |
try: |
try: |
434 |
self.__altura = float(cmd_list[0]) |
self.__altura = float(cmd_list[0]) |
435 |
#Casos de alturas para diferentes razas |
#Casos de alturas para diferentes razas |
436 |
if self.__raza.nombre == 'elfo' and (self.__altura > 2.30 or self.__altura < 1.75): |
if self.__raza.nombre == 'elfo' and (self.__altura > 2.30 or self.__altura < 1.75): |
437 |
raise ValueError |
raise ValueError |
438 |
elif self.__raza.nombre == 'enano' and (self.__altura > 1.70 or self.__altura < 1.00): |
elif self.__raza.nombre == 'enano' and (self.__altura > 1.70 or self.__altura < 1.00): |
439 |
raise ValueError |
raise ValueError |
440 |
elif self.__raza.nombre == 'hobbit' and (self.__altura > 1.70 or self.__altura < 0.80): |
elif self.__raza.nombre == 'hobbit' and (self.__altura > 1.70 or self.__altura < 0.80): |
441 |
raise ValueError |
raise ValueError |
442 |
elif self.__raza.nombre == 'orco' and (self.__altura > 1.65 or self.__altura < 0.90): |
elif self.__raza.nombre == 'orco' and (self.__altura > 1.65 or self.__altura < 0.90): |
443 |
raise ValueError |
raise ValueError |
444 |
elif self.__raza.nombre == 'humano' and (self.__altura > 2.10 or self.__altura < 1.50): |
elif self.__raza.nombre == 'humano' and (self.__altura > 2.10 or self.__altura < 1.50): |
445 |
raise ValueError |
raise ValueError |
446 |
else: |
else: |
447 |
self.conn().send('La altura de tu personaje es %0.2f metros' % self.__altura) |
self.conn().send('La altura de tu personaje es %0.2f metros' % self.__altura) |
448 |
escribir('La altura que ha elegido el jugador es: ' + str(self.__altura)) |
escribir('La altura que ha elegido el jugador es: ' + str(self.__altura)) |
449 |
self.conn().send('') |
self.conn().send('') |
450 |
dlg = self.estado_5() |
dlg = self.estado_5() |
451 |
except ValueError: |
except ValueError: |
452 |
self.conn().send('Esta altura no es válida para un '+self.__raza.nombre+'.') |
self.conn().send('Esta altura no es válida para un '+self.__raza.nombre+'.') |
453 |
self.conn().send('Debes introducir una altura válida. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir una altura válida. Pulsa ? para ayuda.') |
454 |
dlg = self.estado_4() |
dlg = self.estado_4() |
455 |
return dlg |
return dlg |
456 |
|
|
457 |
|
|
458 |
def estado_5(self): |
def estado_5(self): |
459 |
self.poner_estado(5) |
self.poner_estado(5) |
460 |
self.conn().send(color(33) + '¿Cuánto pesa tu personaje (kg)? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + '¿Cuánto pesa tu personaje (kg)? ' + color(32) + '(? - +): ' + finl, 0) |
461 |
return None |
return None |
462 |
|
|
463 |
|
|
464 |
def comando_5(self, cmd_list): |
def comando_5(self, cmd_list): |
465 |
dlg = None |
dlg = None |
466 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
467 |
self.conn().send('Debes introducir un peso. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir un peso. Pulsa ? para ayuda.') |
468 |
dlg = self.estado_5() |
dlg = self.estado_5() |
469 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
470 |
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') |
471 |
self.conn().send('forma parte de la caracterización del personaje.') |
self.conn().send('forma parte de la caracterización del personaje.') |
472 |
self.conn().send('Intenta ser coherente con la raza elegida.') |
self.conn().send('Intenta ser coherente con la raza elegida.') |
473 |
dlg = self.estado_5() |
dlg = self.estado_5() |
474 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
475 |
self.conn().send('') |
self.conn().send('') |
476 |
dlg = self.estado_4() |
dlg = self.estado_4() |
477 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
478 |
if self.__peso == None: |
if self.__peso == None: |
479 |
self.conn().send('Antes de avanzar tienes que introducir un peso.') |
self.conn().send('Antes de avanzar tienes que introducir un peso.') |
480 |
dlg = self.estado_5() |
dlg = self.estado_5() |
481 |
else: |
else: |
482 |
self.conn().send('') |
self.conn().send('') |
483 |
dlg = self.estado_6() |
dlg = self.estado_6() |
484 |
else: |
else: |
485 |
try: |
try: |
486 |
self.__peso = int(cmd_list[0]) |
self.__peso = int(cmd_list[0]) |
487 |
#Casos de pesos para diferentes razas |
#Casos de pesos para diferentes razas |
488 |
if self.__raza.nombre == 'elfo' and (self.__peso > 120 or self.__peso < 40): |
if self.__raza.nombre == 'elfo' and (self.__peso > 120 or self.__peso < 40): |
489 |
raise ValueError |
raise ValueError |
490 |
elif self.__raza.nombre == 'enano' and (self.__peso > 350 or self.__peso < 70): |
elif self.__raza.nombre == 'enano' and (self.__peso > 350 or self.__peso < 70): |
491 |
raise ValueError |
raise ValueError |
492 |
elif self.__raza.nombre == 'orco' and (self.__peso > 150 or self.__peso < 35): |
elif self.__raza.nombre == 'orco' and (self.__peso > 150 or self.__peso < 35): |
493 |
raise ValueError |
raise ValueError |
494 |
elif self.__raza.nombre == 'humano' and (self.__peso > 200 or self.__peso < 40): |
elif self.__raza.nombre == 'humano' and (self.__peso > 200 or self.__peso < 40): |
495 |
raise ValueError |
raise ValueError |
496 |
elif self.__raza.nombre == 'hobbit' and (self.__peso > 200 or self.__peso < 35): |
elif self.__raza.nombre == 'hobbit' and (self.__peso > 200 or self.__peso < 35): |
497 |
raise ValueError |
raise ValueError |
498 |
else: |
else: |
499 |
self.conn().send('El peso de tu personaje es ' + str(self.__peso) + ' kilos.') |
self.conn().send('El peso de tu personaje es ' + str(self.__peso) + ' kilos.') |
500 |
escribir('El peso que ha elegido el jugador es: ' + str(self.__peso)) |
escribir('El peso que ha elegido el jugador es: ' + str(self.__peso)) |
501 |
self.conn().send('') |
self.conn().send('') |
502 |
dlg = self.estado_6() |
dlg = self.estado_6() |
503 |
except ValueError: |
except ValueError: |
504 |
self.conn().send('Este peso no es válido para un '+self.__raza.nombre+'.') |
self.conn().send('Este peso no es válido para un '+self.__raza.nombre+'.') |
505 |
self.conn().send('Debes introducir un peso válido. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir un peso válido. Pulsa ? para ayuda.') |
506 |
dlg = self.estado_5() |
dlg = self.estado_5() |
507 |
return dlg |
return dlg |
508 |
|
|
509 |
|
|
510 |
def estado_6(self): |
def estado_6(self): |
511 |
self.poner_estado(6) |
self.poner_estado(6) |
512 |
self.conn().send(color(33) + '¿Cuál es el color de ojos de tu personaje? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + '¿Cuál es el color de ojos de tu personaje? ' + color(32) + '(? - +): ' + finl, 0) |
513 |
return None |
return None |
514 |
|
|
515 |
|
|
516 |
def comando_6(self, cmd_list): |
def comando_6(self, cmd_list): |
517 |
dlg = None |
dlg = None |
518 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
519 |
self.conn().send('Debes introducir un color. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir un color. Pulsa ? para ayuda.') |
520 |
dlg = self.estado_6() |
dlg = self.estado_6() |
521 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
522 |
self.conn().send('El color de ojos no tiene efecto en las tiradas del juego,') |
self.conn().send('El color de ojos no tiene efecto en las tiradas del juego,') |
523 |
self.conn().send('pero forma parte de la caracterización del personaje.') |
self.conn().send('pero forma parte de la caracterización del personaje.') |
524 |
self.conn().send('Introducir el color en masculino y singular. Por ejemplo,') |
self.conn().send('Introducir el color en masculino y singular. Por ejemplo,') |
525 |
self.conn().send('negro, verde, azul.') |
self.conn().send('negro, verde, azul.') |
526 |
dlg = self.estado_6() |
dlg = self.estado_6() |
527 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
528 |
self.conn().send('') |
self.conn().send('') |
529 |
dlg = self.estado_5() |
dlg = self.estado_5() |
530 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
531 |
if self.__color_de_ojos == None: |
if self.__color_de_ojos == None: |
532 |
self.conn().send('Antes de avanzar tienes que introducir un color.') |
self.conn().send('Antes de avanzar tienes que introducir un color.') |
533 |
dlg = self.estado_6() |
dlg = self.estado_6() |
534 |
else: |
else: |
535 |
self.conn().send('') |
self.conn().send('') |
536 |
dlg = self.estado_7() |
dlg = self.estado_7() |
537 |
else: |
else: |
538 |
if not cmd_list[0].isalpha(): |
if not cmd_list[0].isalpha(): |
539 |
self.conn().send('Debes introducir un color válido. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir un color válido. Pulsa ? para ayuda.') |
540 |
dlg = self.estado_6() |
dlg = self.estado_6() |
541 |
else: |
else: |
542 |
self.__color_de_ojos = cmd_list[0] |
self.__color_de_ojos = cmd_list[0] |
543 |
self.conn().send('El personaje tiene los ojos de color ' + self.__color_de_ojos) |
self.conn().send('El personaje tiene los ojos de color ' + self.__color_de_ojos) |
544 |
escribir('El color de ojos que ha elegido el jugador es: ' + self.__color_de_ojos) |
escribir('El color de ojos que ha elegido el jugador es: ' + self.__color_de_ojos) |
545 |
self.conn().send('') |
self.conn().send('') |
546 |
dlg = self.estado_7() |
dlg = self.estado_7() |
547 |
return dlg |
return dlg |
548 |
|
|
549 |
|
|
550 |
def estado_7(self): |
def estado_7(self): |
551 |
self.poner_estado(7) |
self.poner_estado(7) |
552 |
self.conn().send(color(33)+'¿Cuál es el color de pelo de tu personaje? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33)+'¿Cuál es el color de pelo de tu personaje? ' + color(32) + '(? - +): ' + finl, 0) |
553 |
return None |
return None |
554 |
|
|
555 |
|
|
556 |
def comando_7(self, cmd_list): |
def comando_7(self, cmd_list): |
557 |
dlg = None |
dlg = None |
558 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
559 |
self.conn().send('Debes introducir un color. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir un color. Pulsa ? para ayuda.') |
560 |
dlg = self.estado_7() |
dlg = self.estado_7() |
561 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
562 |
self.conn().send('El color de pelo no tiene efecto en las tiradas del juego,') |
self.conn().send('El color de pelo no tiene efecto en las tiradas del juego,') |
563 |
self.conn().send('pero forma parte de la caracterización del personaje.') |
self.conn().send('pero forma parte de la caracterización del personaje.') |
564 |
self.conn().send('Introducir el color en masculino y singular. Por ejemplo,') |
self.conn().send('Introducir el color en masculino y singular. Por ejemplo,') |
565 |
self.conn().send('negro, rubio, castaño.') |
self.conn().send('negro, rubio, castaño.') |
566 |
dlg = self.estado_7() |
dlg = self.estado_7() |
567 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
568 |
self.conn().send('') |
self.conn().send('') |
569 |
dlg = self.estado_6() |
dlg = self.estado_6() |
570 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
571 |
if self.__color_de_pelo == None: |
if self.__color_de_pelo == None: |
572 |
self.conn().send('Antes de avanzar tienes que introducir un color.') |
self.conn().send('Antes de avanzar tienes que introducir un color.') |
573 |
dlg = self.estado_7() |
dlg = self.estado_7() |
574 |
else: |
else: |
575 |
self.conn().send('') |
self.conn().send('') |
576 |
dlg = self.estado_8() |
dlg = self.estado_8() |
577 |
else: |
else: |
578 |
if not cmd_list[0].isalpha(): |
if not cmd_list[0].isalpha(): |
579 |
self.conn().send('Debes introducir un color válido. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir un color válido. Pulsa ? para ayuda.') |
580 |
dlg = self.estado_7() |
dlg = self.estado_7() |
581 |
else: |
else: |
582 |
self.__color_de_pelo = cmd_list[0] |
self.__color_de_pelo = cmd_list[0] |
583 |
self.conn().send('El personaje tiene el pelo de color ' + self.__color_de_pelo) |
self.conn().send('El personaje tiene el pelo de color ' + self.__color_de_pelo) |
584 |
escribir('El color de pelo que ha elegido el jugador es: ' + self.__color_de_pelo) |
escribir('El color de pelo que ha elegido el jugador es: ' + self.__color_de_pelo) |
585 |
self.conn().send('') |
self.conn().send('') |
586 |
dlg = self.estado_8() |
dlg = self.estado_8() |
587 |
return dlg |
return dlg |
588 |
|
|
589 |
|
|
590 |
def estado_8(self): |
def estado_8(self): |
591 |
self.poner_estado(8) |
self.poner_estado(8) |
592 |
self.conn().send(color(33) + '¿Qué profesión se ajusta mejor a tu personaje? ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send(color(33) + '¿Qué profesión se ajusta mejor a tu personaje? ' + color(32) + '(? - +): ' + finl, 0) |
593 |
return None |
return None |
594 |
|
|
595 |
|
|
596 |
def comando_8(self, cmd_list): |
def comando_8(self, cmd_list): |
597 |
dlg = None |
dlg = None |
598 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
599 |
self.conn().send('Debes introducir una profesion. Pulsa ? para ayuda.') |
self.conn().send('Debes introducir una profesion. Pulsa ? para ayuda.') |
600 |
dlg = self.estado_8() |
dlg = self.estado_8() |
601 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
602 |
self.conn().send('La profesión complementa la raza para determinar') |
self.conn().send('La profesión complementa la raza para determinar') |
603 |
self.conn().send('las cualidades y caracterización del personaje. ') |
self.conn().send('las cualidades y caracterización del personaje. ') |
604 |
self.conn().send('Existen las siguientes profesiones:') |
self.conn().send('Existen las siguientes profesiones:') |
605 |
for profesion in Profesion_lista: |
for profesion in Profesion_lista: |
606 |
self.conn().send(profesion.nombre) |
self.conn().send(profesion.nombre) |
607 |
dlg = self.estado_8() |
dlg = self.estado_8() |
608 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
609 |
self.conn().send('') |
self.conn().send('') |
610 |
dlg = self.estado_7() |
dlg = self.estado_7() |
611 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
612 |
if self.__profesion == None: |
if self.__profesion == None: |
613 |
self.conn().send('Antes de avanzar tienes que introducir una profesion.') |
self.conn().send('Antes de avanzar tienes que introducir una profesion.') |
614 |
dlg = self.estado_8() |
dlg = self.estado_8() |
615 |
else: |
else: |
616 |
self.conn().send('') |
self.conn().send('') |
617 |
dlg = self.estado_9() |
dlg = self.estado_9() |
618 |
else: |
else: |
619 |
profesion = Profesion_buscar(cmd_list[0]) |
profesion = Profesion_buscar(cmd_list[0]) |
620 |
if profesion == None: |
if profesion == None: |
621 |
self.conn().send('La profesion ' + cmd_list[0] + ' no existe.') |
self.conn().send('La profesion ' + cmd_list[0] + ' no existe.') |
622 |
dlg = self.estado_8() |
dlg = self.estado_8() |
623 |
elif profesion.nombre in self.__raza.profesiones_prohibidas: |
elif profesion.nombre in self.__raza.profesiones_prohibidas: |
624 |
self.conn().send('Un ' + self.__raza.nombre + ' no puede ser ' + |
self.conn().send('Un ' + self.__raza.nombre + ' no puede ser ' + |
625 |
profesion.nombre + ".") |
profesion.nombre + ".") |
626 |
dlg = self.estado_8() |
dlg = self.estado_8() |
627 |
else: |
else: |
628 |
|
|
629 |
# Caso particular: si cambiamos la profesion una vez que ya se han |
# Caso particular: si cambiamos la profesion una vez que ya se han |
630 |
# definido los atributos, hay que volver a recalcularlos. |
# definido los atributos, hay que volver a recalcularlos. |
631 |
if self.__profesion != None and self.__profesion != profesion: |
if self.__profesion != None and self.__profesion != profesion: |
632 |
self.__atrib_ok = None |
self.__atrib_ok = None |
633 |
|
|
634 |
self.__profesion = profesion |
self.__profesion = profesion |
635 |
self.conn().send('La profesion del personaje es ' + profesion.nombre) |
self.conn().send('La profesion del personaje es ' + profesion.nombre) |
636 |
escribir('La profesión que ha elegido el jugador es: ' + profesion.nombre) |
escribir('La profesión que ha elegido el jugador es: ' + profesion.nombre) |
637 |
self.conn().send('') |
self.conn().send('') |
638 |
dlg = self.estado_9() |
dlg = self.estado_9() |
639 |
return dlg |
return dlg |
640 |
|
|
641 |
|
|
642 |
def estado_9(self): |
def estado_9(self): |
643 |
self.poner_estado(9) |
self.poner_estado(9) |
644 |
|
|
645 |
# La variable atrib_ok indica si el jugador ya ha terminado de |
# La variable atrib_ok indica si el jugador ya ha terminado de |
646 |
# definir sus atributos. |
# definir sus atributos. |
647 |
if self.__atrib_ok == None: |
if self.__atrib_ok == None: |
648 |
self.__atrib_ok = 0 |
self.__atrib_ok = 0 |
649 |
|
|
650 |
# Aqui se inicializa el nivel, los valores iniciales de los atributos |
# Aqui se inicializa el nivel, los valores iniciales de los atributos |
651 |
# y los puntos para repartir. |
# y los puntos para repartir. |
652 |
self.__nivel = 1 |
self.__nivel = 1 |
653 |
self.__experiencia = 0 |
self.__experiencia = 0 |
654 |
self.__ptos_atrib = 0 |
self.__ptos_atrib = 0 |
655 |
self.__ptos_atrib_max = 72 - PersonajeJugador_ptos_obligatorios(self.__raza, |
self.__ptos_atrib_max = 72 - PersonajeJugador_ptos_obligatorios(self.__raza, |
656 |
self.__profesion) |
self.__profesion) |
657 |
|
|
658 |
# El nivel inicial de cada atributo es 12 más el modificador por raza y |
# El nivel inicial de cada atributo es 12 más el modificador por raza y |
659 |
# por profesión. |
# por profesión. |
660 |
self.__atrib = {} |
self.__atrib = {} |
661 |
for atributo in self.__raza.modif_atrib.keys(): |
for atributo in self.__raza.modif_atrib.keys(): |
662 |
self.__atrib[atributo] = 12 + \ |
self.__atrib[atributo] = 12 + \ |
663 |
PersonajeJugador_modif_atrib_total(atributo, |
PersonajeJugador_modif_atrib_total(atributo, |
664 |
self.__raza, |
self.__raza, |
665 |
self.__profesion) |
self.__profesion) |
666 |
|
|
667 |
self.conn().send('Tienes 72 puntos para repartir entre los atributos de') |
self.conn().send('Tienes 72 puntos para repartir entre los atributos de') |
668 |
self.conn().send('Fuerza, Destreza, Constitución, Inteligencia, Sabiduría') |
self.conn().send('Fuerza, Destreza, Constitución, Inteligencia, Sabiduría') |
669 |
self.conn().send('y Carisma.') |
self.conn().send('y Carisma.') |
670 |
self.conn().send('') |
self.conn().send('') |
671 |
self.conn().send('Los niveles mínimos y maximos dependen de la raza') |
self.conn().send('Los niveles mínimos y maximos dependen de la raza') |
672 |
self.conn().send('y profesion. Los atributos ya han sido rellenados') |
self.conn().send('y profesion. Los atributos ya han sido rellenados') |
673 |
self.conn().send('hasta el nivel medio. Si quieres aumentar un atributo,') |
self.conn().send('hasta el nivel medio. Si quieres aumentar un atributo,') |
674 |
self.conn().send('tendras que reducir otro primero.') |
self.conn().send('tendras que reducir otro primero.') |
675 |
self.conn().send('') |
self.conn().send('') |
676 |
self.conn().send(color(31)+'------ Pulsa ENTER ------ '+finl,0) |
self.conn().send(color(31)+'------ Pulsa ENTER ------ '+finl,0) |
677 |
|
|
678 |
return None |
return None |
679 |
|
|
680 |
|
|
681 |
def comando_9(self, cmd_list): |
def comando_9(self, cmd_list): |
682 |
return self.estado_10() |
return self.estado_10() |
683 |
|
|
684 |
|
|
685 |
def estado_10(self): |
def estado_10(self): |
686 |
self.poner_estado(10) |
self.poner_estado(10) |
687 |
self.conn().send('') |
self.conn().send('') |
688 |
self.conn().send(color(32) + 'Tus niveles actuales de atributos son:') |
self.conn().send(color(32) + 'Tus niveles actuales de atributos son:') |
689 |
for atributo in self.__atrib.keys(): |
for atributo in self.__atrib.keys(): |
690 |
self.conn().send("%-13s" % (atributo), 0) |
self.conn().send("%-13s" % (atributo), 0) |
691 |
self.conn().send(" [" + str(PersonajeJugador_min_atrib(atributo, |
self.conn().send(" [" + str(PersonajeJugador_min_atrib(atributo, |
692 |
self.__raza, |
self.__raza, |
693 |
self.__profesion)), 0) |
self.__profesion)), 0) |
694 |
self.conn().send("-" + str(PersonajeJugador_max_atrib(atributo, |
self.conn().send("-" + str(PersonajeJugador_max_atrib(atributo, |
695 |
self.__raza, |
self.__raza, |
696 |
self.__profesion)), 0) |
self.__profesion)), 0) |
697 |
self.conn().send("]: " + str(self.__atrib[atributo])) |
self.conn().send("]: " + str(self.__atrib[atributo])) |
698 |
self.conn().send(finl) |
self.conn().send(finl) |
699 |
self.conn().send(color(33) + 'Tienes ' + str(self.__ptos_atrib) + ' puntos para repartir') |
self.conn().send(color(33) + 'Tienes ' + str(self.__ptos_atrib) + ' puntos para repartir') |
700 |
self.conn().send('Atributo a modificar (escribe "fin" para terminar) ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send('Atributo a modificar (escribe "fin" para terminar) ' + color(32) + '(? - +): ' + finl, 0) |
701 |
return None |
return None |
702 |
|
|
703 |
|
|
704 |
def comando_10(self, cmd_list): |
def comando_10(self, cmd_list): |
705 |
dlg = None |
dlg = None |
706 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
707 |
self.conn().send('') |
self.conn().send('') |
708 |
dlg = self.estado_10() |
dlg = self.estado_10() |
709 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
710 |
self.conn().send('Introduce el nombre de un atributo y el numero de puntos') |
self.conn().send('Introduce el nombre de un atributo y el numero de puntos') |
711 |
self.conn().send('que quieres sumarle (o restar si es negativo).') |
self.conn().send('que quieres sumarle (o restar si es negativo).') |
712 |
self.conn().send('Por ejemplo, fuerza 12 o destreza -4.') |
self.conn().send('Por ejemplo, fuerza 12 o destreza -4.') |
713 |
self.conn().send('') |
self.conn().send('') |
714 |
self.conn().send('El significado de los atributos es el siguiente:') |
self.conn().send('El significado de los atributos es el siguiente:') |
715 |
self.conn().send('Fuerza: indica la capacidad del personaje para acciones') |
self.conn().send('Fuerza: indica la capacidad del personaje para acciones') |
716 |
self.conn().send(' como levantar cargas, romper cosas y golpear.') |
self.conn().send(' como levantar cargas, romper cosas y golpear.') |
717 |
self.conn().send('Destreza: indica la capacidad del personaje para acciones') |
self.conn().send('Destreza: indica la capacidad del personaje para acciones') |
718 |
self.conn().send(' como manipular mecanismos, combatir con armas') |
self.conn().send(' como manipular mecanismos, combatir con armas') |
719 |
self.conn().send(' de mano, disparar o abrir cerraduras.') |
self.conn().send(' de mano, disparar o abrir cerraduras.') |
720 |
self.conn().send('Constitucion: indica la capacidad del personaje para') |
self.conn().send('Constitucion: indica la capacidad del personaje para') |
721 |
self.conn().send(' soportar esfuerzos y heridas.') |
self.conn().send(' soportar esfuerzos y heridas.') |
722 |
self.conn().send('Inteligencia: indica la capacidad del personaje para') |
self.conn().send('Inteligencia: indica la capacidad del personaje para') |
723 |
self.conn().send(' aprender, descifrar enigmas, observar el') |
self.conn().send(' aprender, descifrar enigmas, observar el') |
724 |
self.conn().send(' entorno y encontrar cosas escondidas.') |
self.conn().send(' entorno y encontrar cosas escondidas.') |
725 |
self.conn().send('Sabiduría: refleja el conocimiento del mundo que tiene el') |
self.conn().send('Sabiduría: refleja el conocimiento del mundo que tiene el') |
726 |
self.conn().send(' personaje, incluyendo reconocer lugares,') |
self.conn().send(' personaje, incluyendo reconocer lugares,') |
727 |
self.conn().send(' conocer propiedades de objetos y entender') |
self.conn().send(' conocer propiedades de objetos y entender') |
728 |
self.conn().send(' la magia.') |
self.conn().send(' la magia.') |
729 |
self.conn().send('Carisma: indica la capacidad del personaje para interactuar') |
self.conn().send('Carisma: indica la capacidad del personaje para interactuar') |
730 |
self.conn().send(' con otros personajes, caerles bien, hacerse obedecer,') |
self.conn().send(' con otros personajes, caerles bien, hacerse obedecer,') |
731 |
self.conn().send(' y ¿por que no? tambien engañar.') |
self.conn().send(' y ¿por que no? tambien engañar.') |
732 |
dlg = self.estado_10() |
dlg = self.estado_10() |
733 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
734 |
self.conn().send('') |
self.conn().send('') |
735 |
dlg = self.estado_8() |
dlg = self.estado_8() |
736 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
737 |
if self.__atrib_ok == 0: |
if self.__atrib_ok == 0: |
738 |
self.conn().send('Antes de avanzar tienes que terminar de definir los atributos.') |
self.conn().send('Antes de avanzar tienes que terminar de definir los atributos.') |
739 |
dlg = self.estado_10() |
dlg = self.estado_10() |
740 |
else: |
else: |
741 |
self.conn().send('') |
self.conn().send('') |
742 |
dlg = self.estado_12() |
dlg = self.estado_12() |
743 |
elif len(cmd_list) == 1 and cmd_list[0] == "fin": |
elif len(cmd_list) == 1 and cmd_list[0] == "fin": |
744 |
dlg = self.estado_11() |
dlg = self.estado_11() |
745 |
elif len(cmd_list) != 2: |
elif len(cmd_list) != 2: |
746 |
self.conn().send('Introduce un nombre de atributo y un numero.') |
self.conn().send('Introduce un nombre de atributo y un numero.') |
747 |
dlg = self.estado_10() |
dlg = self.estado_10() |
748 |
else: |
else: |
749 |
try: |
try: |
750 |
atributo = cmd_list[0] |
atributo = cmd_list[0] |
751 |
if not self.__atrib.has_key(atributo): |
if not self.__atrib.has_key(atributo): |
752 |
self.conn().send(atributo + " no es un atributo.") |
self.conn().send(atributo + " no es un atributo.") |
753 |
raise ValueError |
raise ValueError |
754 |
|
|
755 |
try: |
try: |
756 |
valor = int(cmd_list[1]) |
valor = int(cmd_list[1]) |
757 |
except ValueError: |
except ValueError: |
758 |
self.conn().send(cmd_list[1] + " no es un numero valido.") |
self.conn().send(cmd_list[1] + " no es un numero valido.") |
759 |
raise ValueError |
raise ValueError |
760 |
|
|
761 |
if self.__ptos_atrib - valor < 0: |
if self.__ptos_atrib - valor < 0: |
762 |
self.conn().send("No tienes tantos puntos para repartir. Quita de otro atributo primero.") |
self.conn().send("No tienes tantos puntos para repartir. Quita de otro atributo primero.") |
763 |
raise ValueError |
raise ValueError |
764 |
|
|
765 |
if self.__ptos_atrib - valor > self.__ptos_atrib_max: |
if self.__ptos_atrib - valor > self.__ptos_atrib_max: |
766 |
self.conn().send("No puedes quitar tantos puntos. Añade algunos a otro atributo.") |
self.conn().send("No puedes quitar tantos puntos. Añade algunos a otro atributo.") |
767 |
raise ValueError |
raise ValueError |
768 |
|
|
769 |
valor_atrib = self.__atrib[atributo] |
valor_atrib = self.__atrib[atributo] |
770 |
|
|
771 |
if valor_atrib + valor < PersonajeJugador_min_atrib(atributo, |
if valor_atrib + valor < PersonajeJugador_min_atrib(atributo, |
772 |
self.__raza, |
self.__raza, |
773 |
self.__profesion): |
self.__profesion): |
774 |
self.conn().send("Ese atributo no puede ser tan pequeño") |
self.conn().send("Ese atributo no puede ser tan pequeño") |
775 |
raise ValueError |
raise ValueError |
776 |
|
|
777 |
if valor_atrib + valor > PersonajeJugador_max_atrib(atributo, |
if valor_atrib + valor > PersonajeJugador_max_atrib(atributo, |
778 |
self.__raza, |
self.__raza, |
779 |
self.__profesion): |
self.__profesion): |
780 |
self.conn().send("Ese atributo no puede ser tan grande") |
self.conn().send("Ese atributo no puede ser tan grande") |
781 |
raise ValueError |
raise ValueError |
782 |
|
|
783 |
self.__atrib[atributo] = valor_atrib + valor |
self.__atrib[atributo] = valor_atrib + valor |
784 |
self.__ptos_atrib -= valor |
self.__ptos_atrib -= valor |
785 |
|
|
786 |
except ValueError: |
except ValueError: |
787 |
pass |
pass |
788 |
|
|
789 |
dlg = self.estado_10() |
dlg = self.estado_10() |
790 |
|
|
791 |
return dlg |
return dlg |
792 |
|
|
793 |
|
|
794 |
def estado_11(self): |
def estado_11(self): |
795 |
dlg = None |
dlg = None |
796 |
self.poner_estado(11) |
self.poner_estado(11) |
797 |
if self.__ptos_atrib != 0: |
if self.__ptos_atrib != 0: |
798 |
self.conn().send("\nTodavía tienes puntos por repartir.") |
self.conn().send("\nTodavía tienes puntos por repartir.") |
799 |
self.conn().send("¿Seguro que quieres terminar?") |
self.conn().send("¿Seguro que quieres terminar?") |
800 |
else: |
else: |
801 |
self.__atrib_ok = 1 |
self.__atrib_ok = 1 |
802 |
dlg = self.estado_12() |
dlg = self.estado_12() |
803 |
return dlg |
return dlg |
804 |
|
|
805 |
|
|
806 |
def comando_11(self, cmd_list): |
def comando_11(self, cmd_list): |
807 |
dlg = None |
dlg = None |
808 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
809 |
dlg = self.estado_11() |
dlg = self.estado_11() |
810 |
elif cmd_list[0] == "no": |
elif cmd_list[0] == "no": |
811 |
dlg = self.estado_10() |
dlg = self.estado_10() |
812 |
elif cmd_list[0] == "si": |
elif cmd_list[0] == "si": |
813 |
self.__atrib_ok = 1 |
self.__atrib_ok = 1 |
814 |
dlg = self.estado_12() |
dlg = self.estado_12() |
815 |
else: |
else: |
816 |
self.conn().send("Introduce si o no, por favor") |
self.conn().send("Introduce si o no, por favor") |
817 |
dlg = self.estado_11() |
dlg = self.estado_11() |
818 |
return dlg |
return dlg |
819 |
|
|
820 |
|
|
821 |
def estado_12(self): |
def estado_12(self): |
822 |
self.poner_estado(12) |
self.poner_estado(12) |
823 |
|
|
824 |
# La variable idiomas_ok indica si el jugador ya ha terminado de |
# La variable idiomas_ok indica si el jugador ya ha terminado de |
825 |
# definir sus idiomas. |
# definir sus idiomas. |
826 |
if self.__idiomas_ok == None: |
if self.__idiomas_ok == None: |
827 |
self.__idiomas_ok = 0 |
self.__idiomas_ok = 0 |
828 |
|
|
829 |
# Ahora inicializamos los niveles iniciales de idiomas, que dependen de |
# Ahora inicializamos los niveles iniciales de idiomas, que dependen de |
830 |
# la raza. OJO-> no se puede usar el método copy() sobre idiomas_base porque |
# la raza. OJO-> no se puede usar el método copy() sobre idiomas_base porque |
831 |
# posiblemente crearía instancias nuevas de la clase idioma. Comprobar. |
# posiblemente crearía instancias nuevas de la clase idioma. Comprobar. |
832 |
self.__idiomas = {} |
self.__idiomas = {} |
833 |
for idioma in self.__raza.idiomas_base.keys(): |
for idioma in self.__raza.idiomas_base.keys(): |
834 |
self.__idiomas[idioma] = self.__raza.idiomas_base[idioma] |
self.__idiomas[idioma] = self.__raza.idiomas_base[idioma] |
835 |
|
|
836 |
# Y los puntos para repartir en idiomas. |
# Y los puntos para repartir en idiomas. |
837 |
self.__ptos_idiomas_max = 13 |
self.__ptos_idiomas_max = 13 |
838 |
self.__ptos_idiomas = 13 |
self.__ptos_idiomas = 13 |
839 |
for idioma in self.__idiomas.keys(): |
for idioma in self.__idiomas.keys(): |
840 |
self.__ptos_idiomas -= self.__idiomas[idioma] |
self.__ptos_idiomas -= self.__idiomas[idioma] |
841 |
|
|
842 |
self.conn().send('') |
self.conn().send('') |
843 |
self.conn().send('Ahora tienes otros 13 puntos para repartir entre los') |
self.conn().send('Ahora tienes otros 13 puntos para repartir entre los') |
844 |
self.conn().send('idiomas que conoce tu personaje.') |
self.conn().send('idiomas que conoce tu personaje.') |
845 |
self.conn().send('') |
self.conn().send('') |
846 |
self.conn().send('Los niveles mínimos y maximos son 0 y 5 para todos') |
self.conn().send('Los niveles mínimos y maximos son 0 y 5 para todos') |
847 |
self.conn().send('los idiomas. Los niveles iniciales ya han sido rellenados') |
self.conn().send('los idiomas. Los niveles iniciales ya han sido rellenados') |
848 |
self.conn().send('segun la raza, pero no se han gastado todos los puntos.') |
self.conn().send('segun la raza, pero no se han gastado todos los puntos.') |
849 |
self.conn().send('Puedes aumentar niveles en los idiomas que quieras.') |
self.conn().send('Puedes aumentar niveles en los idiomas que quieras.') |
850 |
self.conn().send('No es recomendable bajar mucho el oestron ni el') |
self.conn().send('No es recomendable bajar mucho el oestron ni el') |
851 |
self.conn().send('idioma natal del personaje (los que lo tengan).') |
self.conn().send('idioma natal del personaje (los que lo tengan).') |
852 |
self.conn().send('') |
self.conn().send('') |
853 |
self.conn().send(color(31) + '------ Pulsa ENTER ------ ' + finl, 0) |
self.conn().send(color(31) + '------ Pulsa ENTER ------ ' + finl, 0) |
854 |
|
|
855 |
return None |
return None |
856 |
|
|
857 |
|
|
858 |
def comando_12(self, cmd_list): |
def comando_12(self, cmd_list): |
859 |
return self.estado_13() |
return self.estado_13() |
860 |
|
|
861 |
|
|
862 |
def estado_13(self): |
def estado_13(self): |
863 |
self.poner_estado(13) |
self.poner_estado(13) |
864 |
self.conn().send('') |
self.conn().send('') |
865 |
self.conn().send(color(32) + 'Tus niveles actuales de idiomas son:') |
self.conn().send(color(32) + 'Tus niveles actuales de idiomas son:') |
866 |
for idioma in self.__idiomas.keys(): |
for idioma in self.__idiomas.keys(): |
867 |
self.conn().send("%-10s" % (idioma.nombre), 0) |
self.conn().send("%-10s" % (idioma.nombre), 0) |
868 |
self.conn().send("[0-5]: " + str(self.__idiomas[idioma])) |
self.conn().send("[0-5]: " + str(self.__idiomas[idioma])) |
869 |
self.conn().send(finl) |
self.conn().send(finl) |
870 |
self.conn().send(color(33) + 'Tienes '+ str(self.__ptos_idiomas)+' puntos para repartir') |
self.conn().send(color(33) + 'Tienes '+ str(self.__ptos_idiomas)+' puntos para repartir') |
871 |
self.conn().send('Idioma a modificar (escribe "fin" para terminar) ' + color(32) + '(? - +): ' + finl, 0) |
self.conn().send('Idioma a modificar (escribe "fin" para terminar) ' + color(32) + '(? - +): ' + finl, 0) |
872 |
return None |
return None |
873 |
|
|
874 |
|
|
875 |
def comando_13(self, cmd_list): |
def comando_13(self, cmd_list): |
876 |
dlg = None |
dlg = None |
877 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
878 |
self.conn().send('') |
self.conn().send('') |
879 |
dlg = self.estado_13() |
dlg = self.estado_13() |
880 |
elif cmd_list[0] == '?': |
elif cmd_list[0] == '?': |
881 |
self.conn().send('Introduce el nombre de un idioma y el numero de puntos') |
self.conn().send('Introduce el nombre de un idioma y el numero de puntos') |
882 |
self.conn().send('que quieres sumarle (o restar si es negativo).') |
self.conn().send('que quieres sumarle (o restar si es negativo).') |
883 |
self.conn().send('Por ejemplo, enano 3 o quenya -1.') |
self.conn().send('Por ejemplo, enano 3 o quenya -1.') |
884 |
dlg = self.estado_13() |
dlg = self.estado_13() |
885 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
886 |
self.conn().send('') |
self.conn().send('') |
887 |
dlg = self.estado_9() |
dlg = self.estado_9() |
888 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
889 |
if self.__idiomas_ok == 0: |
if self.__idiomas_ok == 0: |
890 |
self.conn().send('Antes de avanzar tienes que terminar de definir los idiomas.') |
self.conn().send('Antes de avanzar tienes que terminar de definir los idiomas.') |
891 |
dlg = self.estado_13() |
dlg = self.estado_13() |
892 |
else: |
else: |
893 |
self.conn().send('') |
self.conn().send('') |
894 |
dlg = self.estado_16() |
dlg = self.estado_16() |
895 |
elif len(cmd_list) == 1 and cmd_list[0] == "fin": |
elif len(cmd_list) == 1 and cmd_list[0] == "fin": |
896 |
dlg = self.estado_14() |
dlg = self.estado_14() |
897 |
elif len(cmd_list) != 2: |
elif len(cmd_list) != 2: |
898 |
self.conn().send('Introduce un nombre de idioma y un numero.') |
self.conn().send('Introduce un nombre de idioma y un numero.') |
899 |
dlg = self.estado_13() |
dlg = self.estado_13() |
900 |
else: |
else: |
901 |
try: |
try: |
902 |
idioma = Idioma_buscar(cmd_list[0]) |
idioma = Idioma_buscar(cmd_list[0]) |
903 |
if idioma == None: |
if idioma == None: |
904 |
self.conn().send(cmd_list[0] + " no es un idioma.") |
self.conn().send(cmd_list[0] + " no es un idioma.") |
905 |
raise ValueError |
raise ValueError |
906 |
|
|
907 |
try: |
try: |
908 |
valor = int(cmd_list[1]) |
valor = int(cmd_list[1]) |
909 |
except ValueError: |
except ValueError: |
910 |
self.conn().send(cmd_list[1] + " no es un numero valido.") |
self.conn().send(cmd_list[1] + " no es un numero valido.") |
911 |
raise ValueError |
raise ValueError |
912 |
|
|
913 |
if self.__ptos_idiomas - valor < 0: |
if self.__ptos_idiomas - valor < 0: |
914 |
self.conn().send("No tienes tantos puntos para repartir. Quita puntos de otro idioma primero.") |
self.conn().send("No tienes tantos puntos para repartir. Quita puntos de otro idioma primero.") |
915 |
raise ValueError |
raise ValueError |
916 |
|
|
917 |
if self.__ptos_idiomas - valor > self.__ptos_idiomas_max: |
if self.__ptos_idiomas - valor > self.__ptos_idiomas_max: |
918 |
self.conn().send("No puedes quitar tantos puntos. Añade algunos a otro idioma.") |
self.conn().send("No puedes quitar tantos puntos. Añade algunos a otro idioma.") |
919 |
raise ValueError |
raise ValueError |
920 |
|
|
921 |
valor_idioma = self.__idiomas[idioma] |
valor_idioma = self.__idiomas[idioma] |
922 |
|
|
923 |
if valor_idioma + valor < 0: |
if valor_idioma + valor < 0: |
924 |
self.conn().send("El valor de un idioma no puede ser menor que 0") |
self.conn().send("El valor de un idioma no puede ser menor que 0") |
925 |
raise ValueError |
raise ValueError |
926 |
|
|
927 |
if valor_idioma + valor > 5: |
if valor_idioma + valor > 5: |
928 |
self.conn().send("El valor de un idioma no puede ser mayor que 5") |
self.conn().send("El valor de un idioma no puede ser mayor que 5") |
929 |
raise ValueError |
raise ValueError |
930 |
|
|
931 |
self.__idiomas[idioma] = valor_idioma + valor |
self.__idiomas[idioma] = valor_idioma + valor |
932 |
self.__ptos_idiomas -= valor |
self.__ptos_idiomas -= valor |
933 |
|
|
934 |
except ValueError: |
except ValueError: |
935 |
pass |
pass |
936 |
|
|
937 |
dlg = self.estado_13() |
dlg = self.estado_13() |
938 |
|
|
939 |
return dlg |
return dlg |
940 |
|
|
941 |
|
|
942 |
def estado_14(self): |
def estado_14(self): |
943 |
dlg = None |
dlg = None |
944 |
self.poner_estado(14) |
self.poner_estado(14) |
945 |
if self.__ptos_idiomas != 0: |
if self.__ptos_idiomas != 0: |
946 |
self.conn().send("\nTodavía tienes puntos por repartir.") |
self.conn().send("\nTodavía tienes puntos por repartir.") |
947 |
self.conn().send("¿Estas seguro de que quieres terminar?") |
self.conn().send("¿Estas seguro de que quieres terminar?") |
948 |
else: |
else: |
949 |
self.__idiomas_ok = 1 |
self.__idiomas_ok = 1 |
950 |
dlg = self.estado_16() |
dlg = self.estado_16() |
951 |
return dlg |
return dlg |
952 |
|
|
953 |
|
|
954 |
def comando_14(self, cmd_list): |
def comando_14(self, cmd_list): |
955 |
dlg = None |
dlg = None |
956 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
957 |
dlg = self.estado_14() |
dlg = self.estado_14() |
958 |
elif cmd_list[0] == "no": |
elif cmd_list[0] == "no": |
959 |
dlg = self.estado_13() |
dlg = self.estado_13() |
960 |
elif cmd_list[0] == "si": |
elif cmd_list[0] == "si": |
961 |
self.__idiomas_ok = 1 |
self.__idiomas_ok = 1 |
962 |
dlg = self.estado_16() |
dlg = self.estado_16() |
963 |
else: |
else: |
964 |
self.conn().send("Introduce si o no, por favor") |
self.conn().send("Introduce si o no, por favor") |
965 |
dlg = self.estado_14() |
dlg = self.estado_14() |
966 |
return dlg |
return dlg |
967 |
|
|
968 |
|
|
969 |
def estado_16(self): |
def estado_16(self): |
970 |
self.poner_estado(16) |
self.poner_estado(16) |
971 |
|
|
972 |
if self.__descripcion_ok == None: |
if self.__descripcion_ok == None: |
973 |
self.__descripcion_ok = 0 |
self.__descripcion_ok = 0 |
974 |
self.__descripcion_especial_ok = 0 |
self.__descripcion_especial_ok = 0 |
975 |
self.__descripcion = deepcopy(self.__raza.descripcion_base) |
self.__descripcion = deepcopy(self.__raza.descripcion_base) |
976 |
|
|
977 |
self.conn().send('\n\nHemos llegado a la parte final de la creación del personaje.') |
self.conn().send('\n\nHemos llegado a la parte final de la creación del personaje.') |
978 |
self.conn().send('') |
self.conn().send('') |
979 |
self.conn().send('Queda tan sólo que escribas una descripción de entre 3 y 6') |
self.conn().send('Queda tan sólo que escribas una descripción de entre 3 y 6') |
980 |
self.conn().send('líneas de cómo te ven los demás. A continuación te presentamos') |
self.conn().send('líneas de cómo te ven los demás. A continuación te presentamos') |
981 |
self.conn().send('una descripción. Puedes aceptarla o redactar otra tú mismo.') |
self.conn().send('una descripción. Puedes aceptarla o redactar otra tú mismo.') |
982 |
self.conn().send('') |
self.conn().send('') |
983 |
|
|
984 |
if len(self.__descripcion) > 0: |
if len(self.__descripcion) > 0: |
985 |
self.conn().send(color(31) + self.__descripcion[0]["texto"] + finl + '\n') |
self.conn().send(color(31) + self.__descripcion[0]["texto"] + finl + '\n') |
986 |
else: |
else: |
987 |
self.conn().send(color(31) + "(vacia)" + finl + '\n') |
self.conn().send(color(31) + "(vacia)" + finl + '\n') |
988 |
|
|
989 |
self.conn().send(color(33) + '¿Deseas conservar esta descripción (S/n)? ' + color(32) + '(? - +): '+ finl, 0) |
self.conn().send(color(33) + '¿Deseas conservar esta descripción (S/n)? ' + color(32) + '(? - +): '+ finl, 0) |
990 |
return None |
return None |
991 |
|
|
992 |
|
|
993 |
def comando_16(self, cmd_list): |
def comando_16(self, cmd_list): |
994 |
dlg = None |
dlg = None |
995 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
996 |
cmd_list = ['s'] |
cmd_list = ['s'] |
997 |
|
|
998 |
if cmd_list[0] == 'n' or cmd_list[0] == 'no': |
if cmd_list[0] == 'n' or cmd_list[0] == 'no': |
999 |
self.__descripcion = [] |
self.__descripcion = [] |
1000 |
dlg = self.estado_17() |
dlg = self.estado_17() |
1001 |
elif cmd_list[0] == 's' or cmd_list[0] == 'si': |
elif cmd_list[0] == 's' or cmd_list[0] == 'si': |
1002 |
self.__descripcion_ok = 1 |
self.__descripcion_ok = 1 |
1003 |
dlg = self.estado_18() |
dlg = self.estado_18() |
1004 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
1005 |
self.conn().send('') |
self.conn().send('') |
1006 |
dlg = self.estado_12() |
dlg = self.estado_12() |
1007 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
1008 |
if self.__descripcion_ok == 0: |
if self.__descripcion_ok == 0: |
1009 |
self.conn().send('Antes de avanzar tienes que terminar de definir tu descripcion.') |
self.conn().send('Antes de avanzar tienes que terminar de definir tu descripcion.') |
1010 |
dlg = self.estado_16() |
dlg = self.estado_16() |
1011 |
else: |
else: |
1012 |
self.conn().send('') |
self.conn().send('') |
1013 |
dlg = self.estado_18() |
dlg = self.estado_18() |
1014 |
else: |
else: |
1015 |
self.conn().send('Por favor, responde "si" o "no"') |
self.conn().send('Por favor, responde "si" o "no"') |
1016 |
dlg = self.estado_16() |
dlg = self.estado_16() |
1017 |
|
|
1018 |
return None |
return None |
1019 |
|
|
1020 |
|
|
1021 |
def estado_17(self): |
def estado_17(self): |
1022 |
self.poner_estado(17) |
self.poner_estado(17) |
1023 |
self.conn().send(color(33) + '\nEscribe tu descripción: ', 0) |
self.conn().send(color(33) + '\nEscribe tu descripción: ', 0) |
1024 |
return None |
return None |
1025 |
|
|
1026 |
|
|
1027 |
def comando_17(self, cmd_list): |
def comando_17(self, cmd_list): |
1028 |
dlg = None |
dlg = None |
1029 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
1030 |
self.conn().send('La descripcion no puede ir vacia') |
self.conn().send('La descripcion no puede ir vacia') |
1031 |
dlg = self.estado_17() |
dlg = self.estado_17() |
1032 |
else: |
else: |
1033 |
texto = " ".join(cmd_list) |
texto = " ".join(cmd_list) |
1034 |
self.__descripcion.append({"dificultad":0, "texto":texto}) |
self.__descripcion.append({"dificultad":0, "texto":texto}) |
1035 |
dlg = self.estado_16() |
dlg = self.estado_16() |
1036 |
return dlg |
return dlg |
1037 |
|
|
1038 |
|
|
1039 |
def estado_18(self): |
def estado_18(self): |
1040 |
self.poner_estado(18) |
self.poner_estado(18) |
1041 |
self.conn().send('\n\nMinë te permite, al comienzo, incluir una pequeña descripción') |
self.conn().send('\n\nMinë te permite, al comienzo, incluir una pequeña descripción') |
1042 |
self.conn().send('especial algo difícil de detectar por la gente. Puede referirse a') |
self.conn().send('especial algo difícil de detectar por la gente. Puede referirse a') |
1043 |
self.conn().send('una marca especial, un rasgo característico, un objeto particular, etc,') |
self.conn().send('una marca especial, un rasgo característico, un objeto particular, etc,') |
1044 |
self.conn().send('que sea relevante para la historia de tu personaje aunque no tenga') |
self.conn().send('que sea relevante para la historia de tu personaje aunque no tenga') |
1045 |
self.conn().send('repecursión "práctica" en Minë. Tu descripcion especial actual es:') |
self.conn().send('repecursión "práctica" en Minë. Tu descripcion especial actual es:') |
1046 |
self.conn().send('') |
self.conn().send('') |
1047 |
|
|
1048 |
if len(self.__descripcion) > 1: |
if len(self.__descripcion) > 1: |
1049 |
self.conn().send(color(31) + self.__descripcion[1]["texto"] + finl + '\n') |
self.conn().send(color(31) + self.__descripcion[1]["texto"] + finl + '\n') |
1050 |
else: |
else: |
1051 |
self.conn().send(color(31) + "(vacia)" + finl + '\n') |
self.conn().send(color(31) + "(vacia)" + finl + '\n') |
1052 |
|
|
1053 |
self.conn().send(color(33) + '¿Deseas conservar esta descripción especial (S/n)? ' + color(32) + '(? - +): '+ finl, 0) |
self.conn().send(color(33) + '¿Deseas conservar esta descripción especial (S/n)? ' + color(32) + '(? - +): '+ finl, 0) |
1054 |
return None |
return None |
1055 |
|
|
1056 |
|
|
1057 |
def comando_18(self, cmd_list): |
def comando_18(self, cmd_list): |
1058 |
dlg = None |
dlg = None |
1059 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
1060 |
cmd_list = ['s'] |
cmd_list = ['s'] |
1061 |
|
|
1062 |
if cmd_list[0] == 'n' or cmd_list[0] == 'no': |
if cmd_list[0] == 'n' or cmd_list[0] == 'no': |
1063 |
if len(self.__descripcion) > 1: |
if len(self.__descripcion) > 1: |
1064 |
del self.__descripcion[1] |
del self.__descripcion[1] |
1065 |
dlg = self.estado_19() |
dlg = self.estado_19() |
1066 |
elif cmd_list[0] == 's' or cmd_list[0] == 'si': |
elif cmd_list[0] == 's' or cmd_list[0] == 'si': |
1067 |
self.__descripcion_especial_ok = 1 |
self.__descripcion_especial_ok = 1 |
1068 |
dlg = self.estado_20() |
dlg = self.estado_20() |
1069 |
elif cmd_list[0] == '-': |
elif cmd_list[0] == '-': |
1070 |
self.conn().send('') |
self.conn().send('') |
1071 |
dlg = self.estado_16() |
dlg = self.estado_16() |
1072 |
elif cmd_list[0] == '+': |
elif cmd_list[0] == '+': |
1073 |
if self.__descripcion_especial_ok == 0: |
if self.__descripcion_especial_ok == 0: |
1074 |
self.conn().send('Antes de avanzar tienes que definir tu descripcion especial.') |
self.conn().send('Antes de avanzar tienes que definir tu descripcion especial.') |
1075 |
dlg = self.estado_18() |
dlg = self.estado_18() |
1076 |
else: |
else: |
1077 |
self.conn().send('') |
self.conn().send('') |
1078 |
dlg = self.estado_20() |
dlg = self.estado_20() |
1079 |
else: |
else: |
1080 |
self.conn().send('Por favor, responde "si" o "no"') |
self.conn().send('Por favor, responde "si" o "no"') |
1081 |
dlg = self.estado_18() |
dlg = self.estado_18() |
1082 |
|
|
1083 |
return dlg |
return dlg |
1084 |
|
|
1085 |
|
|
1086 |
def estado_19(self): |
def estado_19(self): |
1087 |
self.poner_estado(19) |
self.poner_estado(19) |
1088 |
self.conn().send(color(33)+'\nEscribe tu descripción especial: ', 0) |
self.conn().send(color(33)+'\nEscribe tu descripción especial: ', 0) |
1089 |
return None |
return None |
1090 |
|
|
1091 |
|
|
1092 |
def comando_19(self, cmd_list): |
def comando_19(self, cmd_list): |
1093 |
dlg = None |
dlg = None |
1094 |
if len(cmd_list) == 0: |
if len(cmd_list) == 0: |
1095 |
if len(self.__descripcion) > 1: |
if len(self.__descripcion) > 1: |
1096 |
del self.__descripcion[1] |
del self.__descripcion[1] |
1097 |
dlg = self.estado_18() |
dlg = self.estado_18() |
1098 |
else: |
else: |
1099 |
texto = " ".join(cmd_list) |
texto = " ".join(cmd_list) |
1100 |
self.__descripcion.append({"dificultad":30, "texto":texto}) |
self.__descripcion.append({"dificultad":30, "texto":texto}) |
1101 |
dlg = self.estado_18() |
dlg = self.estado_18() |
1102 |
return dlg |
return dlg |
1103 |
|
|
1104 |
|
|
1105 |
def estado_20(self): |
def estado_20(self): |
1106 |
from dialogonormal import DialogoNormal |
from dialogonormal import DialogoNormal |
1107 |
|
|
1108 |
self.poner_estado(20) |
self.poner_estado(20) |
1109 |
|
|
1110 |
#%%self.conn().send('Los puntos de vida son el doble que la Constitucion',0) |
#%%self.conn().send('Los puntos de vida son el doble que la Constitucion',0) |
1111 |
self.__vida = self.__atrib["constitucion"] * 2 |
self.__vida = self.__atrib["constitucion"] * 2 |
1112 |
|
|
1113 |
# El nombre largo del personaje será el id seguido de su raza (teniendo |
# El nombre largo del personaje será el id seguido de su raza (teniendo |
1114 |
# en cuenta masculino y femenino). |
# en cuenta masculino y femenino). |
1115 |
self.__nombre = self.__id + " " + \ |
self.__nombre = self.__id + " " + \ |
1116 |
self.__raza.nombre_genero[self.__sexo] |
self.__raza.nombre_genero[self.__sexo] |
1117 |
|
|
1118 |
self.__volumen = self.__raza.volumen_base |
self.__volumen = self.__raza.volumen_base |
1119 |
self.__estado_pj = "vivo" |
self.__estado_pj = "vivo" |
1120 |
self.__idioma_base = Idioma_oestron |
self.__idioma_base = Idioma_oestron |
1121 |
|
|
1122 |
self.__aura = self.__raza.aura_base |
self.__aura = self.__raza.aura_base |
1123 |
self.__sala = Mundo_localizar_sala(Mundo.ID_SALA_ENTRADA) |
self.__sala = Mundo_localizar_sala(Mundo.ID_SALA_ENTRADA) |
1124 |
|
|
1125 |
# Ya tenemos todos los datos, podemos crear el personaje |
# Ya tenemos todos los datos, podemos crear el personaje |
1126 |
# y pasar por fin al estado normal. |
# y pasar por fin al estado normal. |
1127 |
|
|
1128 |
personaje = PersonajeJugador(self.__id, |
personaje = PersonajeJugador(self.__id, |
1129 |
self.__clave, |
self.__clave, |
1130 |
self.__esMaia, |
self.__esMaia, |
1131 |
self.__nombre, |
self.__nombre, |
1132 |
self.__descripcion, |
self.__descripcion, |
1133 |
self.__experiencia, |
self.__experiencia, |
1134 |
self.__nivel, |
self.__nivel, |
1135 |
self.__vida, |
self.__vida, |
1136 |
self.__volumen, |
self.__volumen, |
1137 |
self.__estado_pj, |
self.__estado_pj, |
1138 |
self.__sala, |
self.__sala, |
1139 |
None, |
None, |
1140 |
self.__atrib, |
self.__atrib, |
1141 |
self.__idiomas, |
self.__idiomas, |
1142 |
self.__idioma_base, |
self.__idioma_base, |
1143 |
self.__raza, |
self.__raza, |
1144 |
self.__profesion, |
self.__profesion, |
1145 |
self.__sexo, |
self.__sexo, |
1146 |
self.__edad, |
self.__edad, |
1147 |
self.__altura, |
self.__altura, |
1148 |
self.__peso, |
self.__peso, |
1149 |
self.__color_de_ojos, |
self.__color_de_ojos, |
1150 |
self.__color_de_pelo, |
self.__color_de_pelo, |
1151 |
self.__aura) |
self.__aura) |
1152 |
|
|
1153 |
self.padre().controlar_personaje(personaje) |
self.padre().controlar_personaje(personaje) |
1154 |
|
|
1155 |
escribir("Personaje llamado " + personaje.id + " creado.") |
escribir("Personaje llamado " + personaje.id + " creado.") |
1156 |
|
|
1157 |
Mundo_salvar_todo() |
Mundo_salvar_todo() |
1158 |
|
|
1159 |
return DialogoNormal(self.padre(), self.conn(), self.padre().personaje()) |
return DialogoNormal(self.padre(), self.conn(), self.padre().personaje()) |
1160 |
|
|
1161 |
|
|
1162 |
# Código para pruebas unitarias del módulo. |
# Código para pruebas unitarias del módulo. |
1163 |
|
|
1164 |
if (__name__ == '__main__'): |
if (__name__ == '__main__'): |
1165 |
print "No hay código para pruebas unitarias del módulo." |
print "No hay código para pruebas unitarias del módulo." |
1166 |
print "Para probar, ejecutar mine.py y conectarse via telnet." |
print "Para probar, ejecutar mine.py y conectarse via telnet." |
1167 |
|
|