pogo-data-generator
Version:
Pokemon GO project data generator
193 lines (192 loc) • 4.57 kB
TypeScript
import PokeApi from '../classes/PokeApi';
export interface AllWeather {
[id: string]: {
weatherId: number;
weatherName: string;
proto: string;
types: number[];
};
}
export interface AllTypes {
[id: string]: {
typeId?: number;
typeName?: string;
strengths?: number[];
weaknesses?: number[];
veryWeakAgainst?: number[];
immunes?: number[];
weakAgainst?: number[];
resistances?: number[];
};
}
export interface AllInvasions {
[id: string]: SingleInvasion;
}
type SingleInvasion = {
id: number;
type: string;
gender: number | string;
grunt: string;
firstReward: boolean;
secondReward: boolean;
thirdReward: boolean;
encounters?: InvasionTeam[];
active: boolean;
proto: string;
};
type InvasionTeam = {
id?: number;
formId?: number;
position?: string;
};
export interface AllMoves {
[id: string]: SingleMove;
}
export interface SingleMove {
moveId: number;
moveName: string;
proto?: string;
type?: number;
power?: number;
fast?: boolean;
durationMs?: number;
energyDelta?: number;
pvpPower?: number;
pvpDurationTurns?: number;
pvpEnergyDelta?: number;
pvpBuffs?: {
attackerAttackStatStageChange?: number;
attackerDefenseStatStageChange?: number;
targetAttackStatStageChange?: number;
targetDefenseStatStageChange?: number;
buffActivationChance: number;
}[];
}
export interface AllItems {
[id: string]: {
itemId: number;
itemName: string;
proto: string;
type: string;
category: string;
minTrainerLevel: number;
};
}
export interface MiscProto {
id: number;
proto: string;
formatted: string;
}
export interface AllQuests {
[id: string]: QuestSubCategory;
}
type QuestSubCategory = {
questId: number;
proto: string;
formatted: string;
};
export interface AllPokemon {
[id: string]: SinglePokemon;
}
export interface AllForms {
[id: string]: SingleForm;
}
export interface SinglePokemon extends SingleForm {
pokedexId?: number;
pokemonName?: string;
forms?: number[];
defaultFormId?: number;
genId?: number;
generation?: string;
fleeRate?: number;
captureRate?: number;
legendary?: boolean;
mythic?: boolean;
ultraBeast?: boolean;
buddyGroupNumber?: number;
buddyDistance?: number;
buddyMegaEnergy?: number;
thirdMoveStardust?: number;
thirdMoveCandy?: number;
gymDefenderEligible?: boolean;
unreleased?: boolean;
jungle?: boolean;
}
interface SingleForm extends BaseStats {
formName?: string;
proto?: string;
formId?: number;
isCostume?: boolean;
evolutions?: Evolutions[];
tempEvolutions?: TempEvolutions[];
quickMoves?: number[];
chargedMoves?: number[];
eliteQuickMoves?: number[];
eliteChargedMoves?: number[];
family?: number;
little?: boolean;
purificationDust?: number;
purificationCandy?: number;
bonusCandyCapture?: number;
bonusStardustCapture?: number;
tradable?: boolean;
transferable?: boolean;
costumeOverrideEvos?: {
costumeId: number;
costumeProto: string;
costumeName: string;
}[];
sizeSettings?: {
name: string;
value: number;
}[];
gmaxMove?: number;
}
export interface TempEvolutions extends BaseStats {
tempEvoId: number | string;
unreleased?: boolean;
firstEnergyCost?: number;
subsequentEnergyCost?: number;
}
export interface Evolutions {
evoId?: number;
formId?: number;
genderRequirement?: number | string;
candyCost?: number;
itemRequirement?: number;
tradeBonus?: boolean;
mustBeBuddy?: boolean;
onlyDaytime?: boolean;
onlyNighttime?: boolean;
questRequirement?: string;
}
type BaseStats = {
attack?: number;
defense?: number;
stamina?: number;
height?: number;
weight?: number;
types?: number[];
};
export interface TranslationKeys {
[category: string]: {
[key: string]: string;
};
}
export interface FinalResult {
[category: string]: any;
pokemon?: AllPokemon;
forms?: AllForms;
items?: AllItems;
moves?: AllMoves;
types?: AllTypes;
weather?: AllWeather;
questRewardTypes?: AllQuests;
questConditions?: AllQuests;
invasions?: AllInvasions;
translations?: {
[locale: string]: TranslationKeys;
};
AllPokeApi?: PokeApi;
}
export {};