Saltar al contenido principal

IMonsterDatabase

Contrato de solo lectura para consultar la base de datos de monstruos. Esta es la superficie de API publica para todas las consultas de base de datos.

Namespace: OpenMon.MCE.SDK

Definicion

public interface IMonsterDatabase
{
MonsterEntry GetMonster(uint dexNumber);
MonsterEntry GetMonster(string name);
IReadOnlyList<MonsterEntry> GetAllMonsters();

Move GetMove(string name);
IReadOnlyList<Move> GetAllMoves();

Ability GetAbility(string name);
IReadOnlyList<Ability> GetAllAbilities();

Item GetItem(string name);
IReadOnlyList<Item> GetAllItems();

IReadOnlyList<MonsterType> GetAllTypes();
float GetTypeEffectiveness(MonsterType attackingType, MonsterType defendingType);

IReadOnlyList<Form> GetAllForms();

int MonsterCount { get; }
}

Metodos

GetMonster(uint dexNumber)

Obtener una entrada de monstruo por su numero de dex nacional.

ParametroTipoDescripcion
dexNumberuintEl numero de dex unico

Devuelve: MonsterEntry o null si no se encuentra.

GetMonster(string name)

Obtener una entrada de monstruo por el nombre de su especie.

ParametroTipoDescripcion
namestringEl nombre de la especie (distingue mayusculas)

Devuelve: MonsterEntry o null si no se encuentra.

GetAllMonsters()

Obtener todas las entradas de monstruos registradas en la base de datos.

Devuelve: IReadOnlyList<MonsterEntry> -- todas las especies, ordenadas por numero de dex.

GetMove(string name)

Obtener un movimiento por su nombre.

Devuelve: Move o null si no se encuentra.

GetAllMoves()

Obtener todos los movimientos registrados.

Devuelve: IReadOnlyList<Move> -- los mas de 668 movimientos.

GetAbility(string name)

Obtener una habilidad por su nombre.

Devuelve: Ability o null si no se encuentra.

GetAllAbilities()

Obtener todas las habilidades registradas.

Devuelve: IReadOnlyList<Ability>.

GetItem(string name)

Obtener un objeto por su nombre.

Devuelve: Item o null si no se encuentra.

GetAllItems()

Obtener todos los objetos registrados.

Devuelve: IReadOnlyList<Item>.

GetAllTypes()

Obtener todos los tipos de monstruos registrados.

Devuelve: IReadOnlyList<MonsterType> -- los 18 tipos estandar (o tipos personalizados si se modificaron).

GetTypeEffectiveness(MonsterType, MonsterType)

Obtener el multiplicador de efectividad de tipo para un tipo atacando a otro.

ParametroTipoDescripcion
attackingTypeMonsterTypeEl tipo del movimiento
defendingTypeMonsterTypeEl tipo del objetivo (tipo unico)

Devuelve: float -- 0.0 (inmune), 0.5 (poco efectivo), 1.0 (neutral) o 2.0 (super efectivo).

Tipos duales

Este metodo verifica un tipo atacante contra un tipo defensor. Para defensores de tipo dual, llamelo dos veces y multiplique los resultados:

float effectiveness = db.GetTypeEffectiveness(moveType, defenderType1)
* db.GetTypeEffectiveness(moveType, defenderType2);

GetAllForms()

Obtener todas las formas registradas.

Devuelve: IReadOnlyList<Form>.

Propiedades

MonsterCount

Numero total de entradas de monstruos en la base de datos.

Tipo: int

Ejemplo de uso

[Inject] private IMonsterDatabase db;

// Find a specific monster
MonsterEntry sparkbit = db.GetMonster("Sparkbit");
MonsterEntry starter = db.GetMonster(1);

// Check type matchup
float eff = db.GetTypeEffectiveness(MonsterType.Water, MonsterType.Fire);
Debug.Log($"Water vs Fire: {eff}x"); // 2.0x

// Count all Fire-type monsters
int fireCount = db.GetAllMonsters()
.Count(m => m.Type1 == MonsterType.Fire || m.Type2 == MonsterType.Fire);