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

Diff of /ambar/accion.py

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

revision 2.1 by amoyav, Sat May 31 21:24:44 2003 UTC revision 2.2 by amoyav, Mon Jun 16 05:54:12 2003 UTC
# Line 303  class Accion(object): Line 303  class Accion(object):
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.
# Line 311  class Accion(object): Line 311  class Accion(object):
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 == "-*":
# Line 320  class Accion(object): Line 327  class Accion(object):
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

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

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