#!/usr/bin/env python
# encoding: iso-8859-15
#
#Minë. Mundo Interactivo-Narrativo en Español [Tierra-Media]
#Copyright (C) 2002  Pablo Ruiz Múzquiz
#
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
#Fichero: idioma.py

"""Clase Idioma."""

class Idioma(object):
    """Información sobre los idiomas que conocen los personajes.
    
    Un idioma se caracteriza por:
        - nombre (string): identificador del idioma
	- lista_letras (int[]): lista de codigos ASCII de las letras que sustituyen al texto
                                de los mensajes cuando se filtran para alguien que no conoce
				el idioma.
    """
    def __init__(self, nombre, lista_letras):
        self.nombre = nombre
	self.lista_letras = lista_letras

#%%    def __repr__(self):
#%%	return self.nombre

#%%    def __str__(self):
#%%	return self.nombre

    
# Lista de todos los idiomas definidos
lista = [ Idioma("oestron", range(97, 122)),              # todas las letras del alfabeto

          Idioma("enano", [106,107,114,97,117,122]),      # letras guturales

          Idioma("quenya", [108,108,108,115,115,115,108,  # letras l, m, s y vocales
		            97,97,97,97,97,101,101,101,105,108,111,108,108,   # sobre todo
		            108,108,117,109,109,110,110]),

          Idioma("orco", [106,116,116,120,103,107,114,    # letras guturales
		          97,117,122])
 	]


# Constantes para acceder a los idiomas de forma fija desde dentro del código
oestron = lista[0]
enano = lista[1]
quenya = lista[2]
orco = lista[3]


def buscar(nombre):
    """Obtiene un idioma a partir de su nombre."""
    for idioma in lista:
        if idioma.nombre == nombre:
	    return idioma
    return None


# Código para pruebas unitarias del módulo.

if (__name__ == '__main__'):
    print oestron, oestron.lista_letras
    print enano, enano.lista_letras
    print quenya, quenya.lista_letras
    print orco, orco.lista_letras

