pogo-data-generator
Version:
Pokemon GO project data generator
283 lines (282 loc) • 8.51 kB
TypeScript
import type { Rpc } from '@na-ji/pogo-protos';
export interface GuessedMega {
attack?: number;
defense?: number;
stamina?: number;
tempEvoId?: number;
type1?: string;
type2?: string;
}
export interface Generation {
[id: string]: {
name: string;
range: number[];
};
}
export interface EvolutionQuest {
questType?: number;
target?: number;
assetsRef?: string;
i18n?: string;
translated?: string;
}
export interface NiaMfObj {
templateId: string;
data: {
templateId: string;
pokemonSettings?: {
pokemonId: string;
modelScale: number;
type: string;
type2: string;
encounter: {
baseCaptureRate: number;
baseFleeRate: number;
bonusCandyCaptureReward: number;
bonusStardustCaptureReward: number;
};
stats: {
baseStamina: number;
baseAttack: number;
baseDefense: number;
};
quickMoves: string[];
cinematicMoves: string[];
eliteQuickMove: string[];
eliteCinematicMove: string[];
evolutionIds: string[];
evolutionPips: number;
pokedexHeightM: number;
pokedexWeightKg: number;
familyId: string;
candyToEvolve: number;
kmBuddyDistance: number;
evolutionBranch: EvoBranch[];
tempEvoOverrides: TempEvo[];
formChange?: RawFormChange[];
thirdMove: {
stardustToUnlock: number;
candyToUnlock: number;
};
isTransferable: boolean;
isDeployable: boolean;
isTradable: boolean;
buddyGroupNumber: number;
buddyWalkedMegaEnergyAward: number;
rarity: string;
pokemonClass: keyof typeof Rpc.HoloPokemonClass;
shadow: {
purificationStardustNeeded: number;
purificationCandyNeeded: number;
};
allowNoevolveEvolution: string[];
};
formSettings?: {
pokemon: string;
forms: {
form?: string | number;
isCostume: boolean;
}[];
};
moveSettings?: {
movementId: string;
pokemonType: string;
power?: number;
durationMs: number;
energyDelta?: number;
vfxName: string;
obMoveSettingsNumber18: number[];
};
combatMove?: {
uniqueId: string | number;
type: string;
power: number;
durationTurns?: number;
energyDelta: number;
buffs?: {
attackerAttackStatStageChange?: number;
attackerDefenseStatStageChange?: number;
targetAttackStatStageChange?: number;
targetDefenseStatStageChange?: number;
buffActivationChance: number;
}[];
};
sourdoughMoveMappingSettings?: {
mappings: {
pokemonId: string;
form?: string | number;
move: string;
}[];
};
smeargleMovesSettings?: {
quickMoves: string[];
cinematicMoves: string[];
};
itemSettings?: {
itemId: string | number;
itemType: string | number;
category: string;
dropTrainerLevel: number;
};
combatLeague?: {
bannedPokemon: string[];
pokemonCondition: {
type: string;
withPokemonCpLimit: {
maxCp: number;
};
withPokemonType: {
pokemonType: string[];
};
}[];
};
weatherAffinities?: {
weatherCondition: string;
pokemonType: string[];
};
evolutionQuestTemplate?: {
questTemplateId: string;
questType: string;
goals: {
condition: {
type: string;
withThrowType: {
throwType: string;
};
withPokemonType: {
pokemonType: string[];
};
}[];
target: number;
}[];
context: string;
display: {
description: string;
title: string;
};
};
pokemonExtendedSettings?: {
uniqueId: string;
form?: string | number;
sizeSettings: PokemonSizeSettings;
};
locationCardSettings?: {
locationCard: string | number;
imageUrl?: string;
cardType?: string;
vfxAddress?: string;
};
};
}
export interface PokemonSizeSettings {
xxsLowerBound: number;
xsLowerBound: number;
mLowerBound: number;
mUpperBound: number;
xlUpperBound: number;
xxlUpperBound: number;
disablePokedexRecordDisplayForForms: boolean;
}
export interface TempEvo {
tempEvoId: string;
stats: {
baseStamina: number;
baseAttack: number;
baseDefense: number;
};
averageHeightM: number;
averageWeightKg: number;
typeOverride1: string;
typeOverride2?: string;
}
export interface RawFormChange {
availableForm?: (string | number)[];
candyCost?: number;
stardustCost?: number;
item?: string | number;
questRequirement?: RawFormChangeQuestRequirement[];
itemCostCount?: number;
componentPokemonSettings?: RawFormChangeComponentPokemonSettings;
moveReassignment?: RawFormChangeMoveReassignment;
requiredQuickMoves?: RawFormChangeMoveRequirement[];
requiredCinematicMoves?: RawFormChangeMoveRequirement[];
requiredBreadMoves?: RawFormChangeBreadMoveRequirement[];
priority?: number;
formChangeBonusAttributes?: RawFormChangeBonusAttributes[];
locationCardSettings?: RawFormChangeLocationCardBasicSettings[];
}
export interface RawFormChangeQuestRequirement {
questRequirementTemplateId?: string;
description?: string;
target?: number;
}
export interface RawFormChangeComponentPokemonSettings {
pokedexId?: string | number;
form?: string | number;
componentCandyCost?: number;
formChangeType?: string;
fusionMove1?: string | number;
fusionMove2?: string | number;
locationCardSettings?: RawFormChangeLocationCardSettings[];
familyId?: string | number;
}
export interface RawFormChangeMoveReassignment {
quickMoves?: RawMoveReassignment[];
cinematicMoves?: RawMoveReassignment[];
}
export interface RawMoveReassignment {
existingMoves?: (string | number)[];
replacementMoves?: (string | number)[];
}
export interface RawFormChangeMoveRequirement {
requiredMoves?: (string | number)[];
}
export interface RawFormChangeBreadMoveRequirement {
moveTypes?: string[];
moveLevel?: string;
}
export interface RawFormChangeBonusAttributes {
targetForm?: string | number;
breadMode?: string;
clearBreadMode?: boolean;
maxMoves?: RawBreadMoveSlot[];
}
export interface RawBreadMoveSlot {
moveType?: string;
moveLevel?: string;
}
export interface RawFormChangeLocationCardBasicSettings {
existingLocationCard?: string | number;
replacementLocationCard?: string | number;
}
export interface RawFormChangeLocationCardSettings {
basePokemonLocationCard?: string | number;
componentPokemonLocationCard?: string | number;
fusionPokemonLocationCard?: string | number;
}
export interface EvoBranch {
evolution: string;
candyCost: number;
form: string | number;
genderRequirement: string;
evolutionItemRequirement: string;
temporaryEvolution: string;
temporaryEvolutionEnergyCost: number;
temporaryEvolutionEnergyCostSubsequent: number;
noCandyCostViaTrade: boolean;
buddyDistance: boolean;
mustBeBuddy: boolean;
onlyDaytime: boolean;
onlyNighttime: boolean;
questDisplay: {
questRequirementTemplateId: string;
}[];
}
export interface SpeciesApi {
evolves_from_species?: {
name: string;
url: string;
} | null;
is_legendary: boolean;
is_mythical: boolean;
}