303 |
pass |
pass |
304 |
|
|
305 |
else: |
else: |
306 |
|
|
307 |
# Resolver los parámetros, y colocarlos en un diccionario {nombre: valor}. |
# Resolver los parámetros, y colocarlos en un diccionario {nombre: valor}. |
308 |
# El parámetro llamado "id" no es en realidad un parámetro, sino el objeto |
# El parámetro llamado "id" no es en realidad un parámetro, sino el objeto |
309 |
# base sobre el cual se aplicará la operación. |
# base sobre el cual se aplicará la operación. |
311 |
objeto_base = None |
objeto_base = None |
312 |
for parametro in self.__parametros: |
for parametro in self.__parametros: |
313 |
|
|
314 |
if parametro["tipo"] == "numero": |
t = parametro["tipo"] |
315 |
valor_str = parametro["valor"] |
v = parametro["valor"] |
316 |
|
|
317 |
|
if t == "numero": |
318 |
|
if v and v[0] == "$": |
319 |
|
valor_str = macros[v] |
320 |
|
else: |
321 |
|
valor_str = v |
322 |
|
|
323 |
if valor_str == "*": |
if valor_str == "*": |
324 |
valor = sys.maxint |
valor = sys.maxint |
325 |
elif valor_str == "-*": |
elif valor_str == "-*": |
327 |
else: |
else: |
328 |
valor = float(valor_str) |
valor = float(valor_str) |
329 |
|
|
330 |
elif parametro["tipo"] == "string": |
elif t == "string": |
331 |
valor = parametro["valor"] |
if v and v[0] == "$": |
332 |
|
valor = macros[v] |
333 |
|
else: |
334 |
|
valor = v |
335 |
|
|
336 |
elif parametro["tipo"] == "si_no": |
elif t == "si_no": |
337 |
valor_str = parametro["valor"].lower() |
if v and v[0] == "$": |
338 |
|
valor_str = macros[v].lower() |
339 |
|
else: |
340 |
|
valor_str = v.lower() |
341 |
if valor_str == 's' or valor_str == 'si' or valor_str == 'sí' \ |
if valor_str == 's' or valor_str == 'si' or valor_str == 'sí' \ |
342 |
or valor_str == '1': |
or valor_str == '1': |
343 |
valor = 1 |
valor = 1 |
344 |
else: |
else: |
345 |
valor = 0 |
valor = 0 |
346 |
|
|
347 |
elif parametro["tipo"] == "Personaje": |
elif t == "Personaje": |
348 |
if parametro["valor"][0] == "$": |
if v and v[0] == "$": |
349 |
valor = macros[parametro["valor"]] |
valor = macros[v] |
350 |
else: |
else: |
351 |
sala = macros["$sala"] |
sala = macros["$sala"] |
352 |
valor = sala.personajes[parametro["valor"]] |
valor = sala.personajes[v] |
353 |
|
|
354 |
elif parametro["tipo"] == "Sala": |
elif t == "Sala": |
355 |
if parametro["valor"][0] == "$": |
if v and v[0] == "$": |
356 |
valor = macros[parametro["valor"]] |
valor = macros[v] |
357 |
else: |
else: |
358 |
valor = Mundo.localizar_sala(parametro["valor"]) |
valor = Mundo.localizar_sala(v) |
359 |
|
|
360 |
elif parametro["tipo"] == "Objeto": |
elif t == "Objeto": |
361 |
if parametro["valor"][0] == "$": |
if v and v[0] == "$": |
362 |
valor = macros[parametro["valor"]] |
valor = macros[v] |
363 |
else: |
else: |
364 |
valor = None # %% La verdad, no sé qué hacer aquí :-? |
valor = None # %% La verdad, no sé qué hacer aquí :-? |
365 |
|
|
366 |
elif parametro["tipo"] == "Idioma": |
elif t == "Idioma": |
367 |
if parametro["valor"][0] == "$": |
if v and v[0] == "$": |
368 |
valor = macros[parametro["valor"]] |
valor = macros[v] |
369 |
else: |
else: |
370 |
valor = Idioma_buscar(parametro["valor"]) |
valor = Idioma_buscar(v) |
371 |
|
|
372 |
else: |
else: |
373 |
raise ValueError("Encontrado parametro %s con tipo desconocido: %s" % |
raise ValueError("Encontrado parametro %s con tipo desconocido: %s" % |
374 |
(parametro["nombre"], parametro["tipo"])) |
(parametro["nombre"], t)) |
375 |
|
|
376 |
if parametro["nombre"] == "id": |
if parametro["nombre"] == "id": |
377 |
objeto_base = valor |
objeto_base = valor |