UNPKG

pogo-data-generator

Version:
269 lines (268 loc) 6.93 kB
import type 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 LocationCardInfo extends MiscProto { imageUrl?: string; cardType?: string; vfxAddress?: string; } export interface AllLocationCards { [id: string]: LocationCardInfo; } 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 { _hiddenOnlyChargedMoves?: boolean; formName?: string; proto?: string; formId?: number; isCostume?: boolean; evolutions?: Evolutions[]; formChanges?: FormChanges[]; 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 FormChanges { availableForms?: number[]; candyCost?: number; stardustCost?: number; itemRequirement?: number; itemCostCount?: number; questRequirements?: FormChangeQuestRequirement[]; componentPokemonSettings?: FormChangeComponentPokemonSettings; moveReassignment?: FormChangeMoveReassignment; requiredQuickMoves?: FormChangeMoveRequirement[]; requiredChargedMoves?: FormChangeMoveRequirement[]; requiredBreadMoves?: FormChangeBreadMoveRequirement[]; priority?: number; formChangeBonusAttributes?: FormChangeBonusAttributes[]; locationCardSettings?: FormChangeLocationCardSettings[]; } export interface FormChangeQuestRequirement { questRequirement?: string; description?: string; target?: number; } export interface FormChangeComponentPokemonSettings { pokedexId?: number; formId?: number; componentCandyCost?: number; formChangeType?: string; fusionMove1?: number; fusionMove2?: number; locationCardSettings?: FormChangeComponentLocationCardSettings[]; familyId?: number; } export interface FormChangeMoveReassignment { quickMoves?: MoveReassignment[]; chargedMoves?: MoveReassignment[]; } export interface MoveReassignment { existingMoves?: number[]; replacementMoves?: number[]; } export interface FormChangeMoveRequirement { requiredMoves?: number[]; } export interface FormChangeBreadMoveRequirement { moveTypes?: string[]; moveLevel?: string; } export interface FormChangeBonusAttributes { targetForm?: number; breadMode?: string; clearBreadMode?: boolean; maxMoves?: BreadMoveSlot[]; } export interface BreadMoveSlot { moveType?: string; moveLevel?: string; } export interface FormChangeLocationCardSettings { existingLocationCard?: number; replacementLocationCard?: number; } export interface FormChangeComponentLocationCardSettings { basePokemonLocationCard?: number; componentPokemonLocationCard?: number; fusionPokemonLocationCard?: 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; locationCards?: AllLocationCards; invasions?: AllInvasions; translations?: { [locale: string]: TranslationKeys; }; AllPokeApi?: PokeApi; } export {};