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.
| Parametro | Tipo | Descripcion |
|---|---|---|
dexNumber | uint | El 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.
| Parametro | Tipo | Descripcion |
|---|---|---|
name | string | El 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.
| Parametro | Tipo | Descripcion |
|---|---|---|
attackingType | MonsterType | El tipo del movimiento |
defendingType | MonsterType | El tipo del objetivo (tipo unico) |
Devuelve: float -- 0.0 (inmune), 0.5 (poco efectivo), 1.0 (neutral) o 2.0 (super efectivo).
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);