#===============================================================================
# Perfiles de Personajes / Character Profiles
# Creado por Clara. Compatibilidad con Essentials BES
# Al más puro estilo de Trails from Cold Steel
#===============================================================================
# GUIA DE USO
#===============================================================================
=begin

ABRIR EL SCRIPT
``clOpenCharacterScene`` Abre una lista con todos los personajes desbloqueados por el jugador.

``clCharacterPage(:SimboloPersonaje)`` Omite la lista, para abrir la página del personaje. 
  Cambia el parametro  por el Símbolo del personaje en el hash. 
  Ej: clCharacterPage(:Hoja)

DESBLOQUEO DE PERSONAJES
``clUnlockCharacter(:SimboloPersonaje)`` Desbloquea el personaje identificado por :SimboloPersonaje.
  Ej: clUnlockCharacter(:Rojo)
  
``clCharacterUnlocked?(:SimboloPersonaje)`` Verifica si el personaje está desbloqueado.
  Devuelve true si está desbloqueado, false si no.
  Ej: clCharacterUnlocked?(:Rojo)
  
``clUnlockAllCharacters`` [PARA PRUEBAS] Desbloquea todos los personajes existentes.

ACTUALIZAR Y DESBLOQUEAR DATOS
  
``clUpdateData(:SimboloPersonaje, indiceDato, version)`` 
  Desbloquea un dato específico (1, 2, o 3) en una versión dada (1 o 2) para el personaje.
  Ej: clUpdateData(:Rojo, 1, 2)

  Tambien puedes actualizar otros atributos del perfil.
``clUpdateAge(:SimboloPersonaje, "edad")                # Actualiza la edad
``clUpdateName(:SimboloPersonaje, "NuevoNombre")        # Actualiza el nombre
``clUpdateFullname(:SimboloPersonaje, "NombreCompleto") # Actualiza el nombre completo
``clUpdateHometown(:SimboloPersonaje, "NuevoLugar")     # Actualiza el lugar de origen
``clUpdatePartner(:SimboloPersonaje, :POKEMON)          # Cambia el Pokémon compañero
``clUpdateDesc(:SimboloPersonaje, "Nueva descripción")  # Actualiza la descripción
``clUpdateSprite(:SimboloPersonaje, "sprite")           # Cambia el minisprite
``clUpdateAlliance(:SimboloPersonaje, 1)                # Cambia la alianza, 1=Aliado, 2=Enemigo, 0=Neutral

OTRAS UTILIDADES
``clGetProfile(:SimboloPersonaje)`` Carga y devulve el perfil del personaje específico.
  Se puede usar para obtener el dato del hash o el dato actualizado.
  Ej: perfil = clGetProfile(:Rojo) 
      p perfil.name

CONFIGURACIÓN DE LOS PERSONAJES
Cada personaje se define en el módulo CharacterProfilesData como una constante 
con un hash que contiene sus atributos básicos y desbloqueables. 
Puedes ver varios ejemplos con una explicación más detallada debajo.

=end
#===============================================================================

module CharacterProfilesData
  
  Rojo = {
    # Datos requeridos
    :ID => "1",
    :Name => "Rojo",
    :NameFull => _INTL("Rojo Fuego"),
    :Charsprite => "trchar000", #Minisprite del personaje.

    :CommonEvent => 1, #Evento comun, usado en el listado. [OPCIONAL]
                       #Funciona de forma similar al telefono.
    # Página 1
    :Description => "Descripción del Personaje. No es necesaria, pero muy recomendable.<br><i>Puedes formatear el texto como quieras.</i><s>¡Mira cuantas opciones!</s>",
    :Age => "10", #[OPCIONAL]Muestra la edad del personaje.
    :Gender => "♂", #[OPCIONAL]Muestra el sexo del personaje, si usas los signos, luego se colorean automaticamente.
    :Hometown => _INTL("Pueblo Paleta"), #[OPCIONAL]Muestra el pueblo o Ciudad de Origen.
    :Partner => :PIKACHU, #[OPCIONAL] Muestra el nombre y el minisprite del Pokémon(Si existe el gráfico).
    :TrainerClass => :POKEMONTRAINER_Red, #[OPCIONAL] Clase de entrenador, muestra su sprite en la pagina de datos.
    :AllyStatus => 0,  #[OPCIONAL] 1=Aliado, 2=Enemigo, 0=Neutral
    
    # Página 2 (datos desbloqueables)
    :Data1_1 => _INTL("<b>¡Soy yo!</b><br>Prueba para ver cuanto texto entra en esta wea. <s>Jueguen pokemon bizarre</s>. <i>Me gustan los trenes.</i>"),
    :Data1_2 => _INTL("               <br>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."),
    
    :Data2_1 => _INTL("<b>Rojo</b><br>Prueba de datos 2"),
    :Data2_2 => _INTL("<b>Rojo</b><br>Prueba de datos 2 actualizada"),
    
    :Data3_1 => _INTL("<b>Fuego</b><br>Prueba de datos 3"),
    :Data3_2 => _INTL("<b>Fuego</b><br>Prueba de datos 3 actualizada"),

    # Estado inicial de desbloqueo de cada dato.
    :InitialUnlocks => {1 => 1, 2 => 2, 3 => 0}
    # Dato 1 en fase 1, Dato 2 en fase 2, Dato 3 sin desbloquear
  }
  
  Hoja = {
    :ID => "2",
    :Name => "Verde",
    :NameFull => _INTL("Verde Hoja"),
    
    :Charsprite => "trchar001",
    :CommonEvent => 1,
    
    # Página 1
    :Age => "10",
    :Gender => "♀",
    :Hometown => _INTL("Pueblo Paleta"),
    :Partner => :BLASTOISE,
    :Description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
    :TrainerClass => :POKEMONTRAINER_Leaf,
    
    :AllyStatus => 1,
    
    # Página 2 (datos desbloqueables)
    :Data1_1 => _INTL("<b>¡Un dato más!</b><br>Prueba para ver cuanto texto entra en esta wea. <s>Jueguen pokemon bizarre</s>. <i>Me gustan los trenes.</i>"),
    :Data1_2 => _INTL("               <br>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."),
    
    :Data2_1 => _INTL("<b>Verde</b><br>Prueba de datos 2"),
    :Data2_2 => _INTL("<b>Verde</b><br>Prueba de datos 2 actualizada"),
    
    :Data3_1 => _INTL("<b>Hoja</b><br>Prueba de datos 3"),
    :Data3_2 => _INTL("<b>Hoja</b><br>Prueba de datos 3 actualizada"),


    # Estado inicial de desbloqueo

    :InitialUnlocks => {1 => 0, 2 => 0, 3 => 0} # Dato 1 en fase 1, Dato 2 en fase 2, Dato 3 sin desbloquear
  }
  
  Giovanni = {
    :ID => "3",
    :Name => "Giovanni",
    :NameFull => _INTL("Giovanni Rocket"),
    
    :Charsprite => "trchar058",
    :CommonEvent => 1,
    
    # Página 1
    :Age => "50",
    :Gender => "♂",
    :Hometown => _INTL("Ciudad Verde"),
    :Partner => :PERSIAN,
    :Description => "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
    :TrainerClass => :ROCKETBOSS,
    
    :AllyStatus => 2,
    
    # Página 2 (datos desbloqueables)
    :Data1_1 => _INTL("<b>¡Un dato más!</b><br>Prueba para ver cuanto texto entra en esta wea. <s>Jueguen pokemon bizarre</s>. <i>Me gustan los trenes.</i>"),
    :Data1_2 => _INTL("               <br>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."),
    
    :Data2_1 => _INTL("Prueba de datos 2"),
    :Data2_2 => _INTL("Prueba de datos 2 actualizada"),
    
    :Data3_1 => _INTL("Prueba de datos 3"),
    :Data3_2 => _INTL("Prueba de datos 3 actualizada"),


    # Estado inicial de desbloqueo

    :InitialUnlocks => {1 => 0, 2 => 0, 3 => 0} # Dato 1 en fase 1, Dato 2 en fase 2, Dato 3 sin desbloquear
  }
  
end