pogo-data-generator
Version:
Pokemon GO project data generator
269 lines (268 loc) • 6.93 kB
TypeScript
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 {};