113 lines
2.9 KiB
TypeScript
113 lines
2.9 KiB
TypeScript
import POGOProtos from 'pogo-protos';
|
|
|
|
export const DEFAULT_POKEMON_NAME = 'MissingNo.';
|
|
|
|
export enum Grade {
|
|
S,
|
|
A,
|
|
B,
|
|
C,
|
|
D,
|
|
F,
|
|
}
|
|
|
|
export enum TypeEffectiveness {
|
|
NEUTRAL = 1,
|
|
SUPER_EFFECTIVE = 1.600000023841858,
|
|
NOT_VERY_EFFECTIVE = 0.625,
|
|
IMMUNE = 0.390625,
|
|
SUPER_EFFECTIVE_X2 = 2.5600000763,
|
|
NOT_VERY_EFFECTIVE_X3 = 0.244140625,
|
|
IMMUNE_X2 = 0.1525878906,
|
|
}
|
|
|
|
export const TypeOrder = [
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_NORMAL,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_FIGHTING,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_FLYING,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_POISON,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_GROUND,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_ROCK,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_BUG,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_GHOST,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_STEEL,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_FIRE ,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_WATER,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_GRASS,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_ELECTRIC,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_PSYCHIC,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_ICE,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_DRAGON,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_DARK,
|
|
POGOProtos.Enums.PokemonType.POKEMON_TYPE_FAIRY,
|
|
];
|
|
|
|
export interface IBaseStats {
|
|
baseAttack : number;
|
|
baseDefense : number;
|
|
baseStamina : number;
|
|
}
|
|
|
|
export interface IBaseStatsRank {
|
|
attackRank : number;
|
|
defenseRank : number;
|
|
staminaRank : number;
|
|
}
|
|
|
|
export interface IMaxStats extends IBaseStats {
|
|
level : number;
|
|
}
|
|
|
|
export interface IPokemonSpecies {
|
|
name : string;
|
|
dex : number;
|
|
order : number;
|
|
genus : string;
|
|
}
|
|
|
|
export interface IPokemonMove {
|
|
id : POGOProtos.Enums.PokemonMove;
|
|
isLegacy : boolean;
|
|
}
|
|
|
|
export interface IPokemon extends IPokemonSpecies {
|
|
id : POGOProtos.Enums.PokemonId;
|
|
form : POGOProtos.Enums.Form;
|
|
family : POGOProtos.Enums.PokemonFamilyId;
|
|
types : {
|
|
type1 : POGOProtos.Enums.PokemonType;
|
|
type2 : POGOProtos.Enums.PokemonType | null;
|
|
};
|
|
effectiveness : Map<POGOProtos.Enums.PokemonType, TypeEffectiveness>;
|
|
stats : IBaseStats;
|
|
statsRank : IBaseStatsRank;
|
|
moves : {
|
|
quick : Array<IPokemonMove>;
|
|
cinematic : Array<IPokemonMove>;
|
|
};
|
|
}
|
|
|
|
export interface IStats {
|
|
cp : number;
|
|
level : number;
|
|
ivHp : number;
|
|
ivAtk : number;
|
|
ivDef : number;
|
|
hp : number;
|
|
atk : number;
|
|
def : number;
|
|
total : number;
|
|
speciesGrade : Grade;
|
|
metaGrade : Grade;
|
|
}
|
|
|
|
export interface ICombatMoveStats {
|
|
id : POGOProtos.Enums.PokemonMove;
|
|
name : string;
|
|
type : POGOProtos.Enums.PokemonType;
|
|
power : number;
|
|
energyDelta : number;
|
|
}
|
|
|
|
export type CombatMoveStats = Map<POGOProtos.Enums.PokemonMove, ICombatMoveStats>;
|