UNPKG

pogo-data-generator

Version:
467 lines (466 loc) 12.1 kB
import type { MiscProto } from './dataTypes'; import type { InvasionInfo } from './pogoinfo'; import type { PokeApi } from './pokeapi'; type StringBool = string | boolean; export interface Options { topLevelName?: string; keys?: { [key: string]: StringBool; }; customFields?: { [key: string]: string; }; customChildObj?: { [key: string]: string; }; makeSingular?: { [key: string]: boolean; }; prefix?: { [key: string]: string; }; questVariables?: { prefix?: string; suffix?: string; }; keyJoiner?: string; genderString?: boolean; snake_case?: boolean; unsetDefaultForm?: boolean; skipNormalIfUnset?: boolean; skipForms?: string[]; includeProtos?: boolean; includeEstimatedPokemon?: { [key: string]: boolean; baseStats?: boolean; } | true; minTrainerLevel?: number; placeholderData?: boolean; masterfileLocale?: StringBool; manualTranslations?: boolean; mergeCategories?: boolean; processFormsSeparately?: boolean; includeRawForms?: boolean; includeBalloons?: boolean; useLanguageAsRef?: StringBool; includeUnset?: boolean; unsetFormName?: string; allUnset?: boolean; pokeApiIds?: number[]; noFormPlaceholders?: boolean; customInvasions?: InvasionInfo | boolean; questTitleTermsToSkip?: string[]; } export interface PokemonTemplate extends Form { pokedexId?: boolean; pokemonName?: boolean; forms?: Form | string; defaultFormId?: boolean; genId?: boolean; generation?: boolean; fleeRate?: boolean; captureRate?: boolean; legendary?: boolean; mythic?: boolean; ultraBeast?: boolean; buddyGroupNumber?: boolean; buddyDistance?: boolean; buddyMegaEnergy?: boolean; thirdMoveStardust?: boolean; thirdMoveCandy?: boolean; gymDefenderEligible?: boolean; unreleased?: boolean; jungle?: boolean; } interface CostumeTemplate { id?: boolean; name?: boolean; proto?: boolean; noEvolve?: boolean; } interface Form extends BaseStats { formName?: boolean; proto?: boolean; formId?: boolean; isCostume?: boolean; evolutions?: { evoId?: boolean; formId?: boolean; genderRequirement?: boolean; candyCost?: boolean; itemRequirement?: boolean | string; tradeBonus?: boolean; mustBeBuddy?: boolean; onlyDaytime?: boolean; onlyNighttime?: boolean; questRequirement?: { target?: boolean; assetsRef?: boolean; i18n?: boolean; questType?: boolean; translated?: boolean; } | StringBool; } | StringBool; formChanges?: FormChange | StringBool; tempEvolutions?: TempEvolution | StringBool; quickMoves?: Move | StringBool; chargedMoves?: Move | StringBool; eliteQuickMoves?: Move | StringBool; eliteChargedMoves?: Move | StringBool; family?: boolean; little?: boolean; purificationCandy?: boolean; purificationDust?: boolean; bonusCandyCapture?: boolean; bonusStardustCapture?: boolean; tradable?: boolean; transferable?: boolean; costumeOverrideEvos?: CostumeOverrideEvo | StringBool; sizeSettings?: { name: boolean; value: boolean; } | string; gmaxMove?: Move | StringBool; } type CostumeOverrideEvo = { costumeId?: boolean; costumeProto?: boolean; costumeName?: boolean; }; type FormChange = { availableForms?: FormChangeAvailableForm | StringBool; candyCost?: boolean; stardustCost?: boolean; itemRequirement?: boolean | string; itemCostCount?: boolean; questRequirements?: FormChangeQuestRequirement | StringBool; componentPokemonSettings?: FormChangeComponentPokemonSettings | StringBool; moveReassignment?: FormChangeMoveReassignmentContainer | StringBool; requiredQuickMoves?: FormChangeMoveRequirement | StringBool; requiredChargedMoves?: FormChangeMoveRequirement | StringBool; requiredBreadMoves?: FormChangeBreadMoveRequirement | StringBool; priority?: boolean; formChangeBonusAttributes?: FormChangeBonusAttributes | StringBool; locationCardSettings?: FormChangeLocationCardSettings | StringBool; }; type FormChangeAvailableForm = { formId?: boolean; formName?: boolean; proto?: boolean; }; type FormChangeQuestRequirement = { questRequirement?: boolean; description?: boolean; target?: boolean; }; type FormChangeComponentPokemonSettings = { pokedexId?: boolean; formId?: boolean; componentCandyCost?: boolean; formChangeType?: boolean; fusionMove1?: Move | StringBool; fusionMove2?: Move | StringBool; familyId?: boolean; locationCardSettings?: FormChangeComponentLocationCardSettings | StringBool; }; type FormChangeComponentLocationCardSettings = { basePokemonLocationCard?: boolean | string; componentPokemonLocationCard?: boolean | string; fusionPokemonLocationCard?: boolean | string; }; type FormChangeMoveReassignmentContainer = { quickMoves?: FormChangeMoveReassignment | StringBool; chargedMoves?: FormChangeMoveReassignment | StringBool; }; type FormChangeMoveReassignment = { existingMoves?: Move | StringBool; replacementMoves?: Move | StringBool; }; type FormChangeMoveRequirement = { requiredMoves?: Move | StringBool; }; type FormChangeBreadMoveRequirement = { moveTypes?: boolean; moveLevel?: boolean; }; type FormChangeBonusAttributes = { targetForm?: FormChangeAvailableForm | StringBool; breadMode?: boolean; clearBreadMode?: boolean; maxMoves?: BreadMoveSlot | StringBool; }; type BreadMoveSlot = { moveType?: boolean; moveLevel?: boolean; }; type FormChangeLocationCardSettings = { existingLocationCard?: boolean | string; replacementLocationCard?: boolean | string; }; type Move = { moveId?: boolean; moveName?: boolean; proto?: boolean; fast?: boolean; type: { typeId?: boolean; type?: boolean; } | StringBool; }; interface TempEvolution extends BaseStats { tempEvoId?: boolean; unreleased?: boolean; firstEnergyCost?: boolean; subsequentEnergyCost?: boolean; } type BaseStats = { attack?: boolean; defense?: boolean; stamina?: boolean; height?: boolean; weight?: boolean; types?: { typeId?: boolean; typeName?: boolean; } | StringBool; }; export interface TypesTempOpt { enabled?: boolean; options?: Options; template?: TypesTemplate; } export interface TypesTemplate { typeId?: boolean; typeName?: boolean; } export interface LocationCardTemplate { id?: boolean; proto?: boolean; formatted?: boolean; imageUrl?: boolean; cardType?: boolean; vfxAddress?: boolean; } export interface MoveTemplate { moveId?: boolean; moveName?: boolean; proto?: boolean; type?: { typeId?: boolean; typeName?: boolean; } | StringBool; power?: boolean; durationMs?: boolean; energyDelta?: boolean; pvpPower?: boolean; pvpDurationTurns?: boolean; pvpEnergyDelta?: boolean; pvpBuffs?: { attackerAttackStatStageChange?: boolean; attackerDefenseStatStageChange?: boolean; targetAttackStatStageChange?: boolean; targetDefenseStatStageChange?: boolean; buffActivationChance: boolean; } | StringBool; } export interface ItemTemplate { itemId?: boolean; itemName?: boolean; proto?: boolean; type?: boolean; category?: boolean; minTrainerLevel?: boolean; } export interface QuestTemplate { id?: boolean; proto?: boolean; formatted?: boolean; } export interface InvasionTemplate { id?: boolean; type?: boolean; gender?: boolean; grunt?: boolean; firstReward?: boolean; secondReward?: boolean; thirdReward?: boolean; proto?: boolean; encounters?: { id?: boolean; formId?: boolean; position?: boolean; } | StringBool; active?: boolean; } export interface WeatherTemplate { weatherId?: boolean; weatherName?: boolean; proto?: boolean; types?: { typeId?: boolean; typeName?: boolean; } | StringBool; } export interface TranslationsTemplate { pokemon?: { names?: boolean; forms?: boolean; descriptions?: boolean; }; moves?: boolean; items?: boolean; types?: boolean; characters?: boolean; gruntQuotes?: boolean; weather?: boolean; misc?: boolean; pokemonCategories?: boolean; bonuses?: boolean; quests?: boolean; } export interface ApkLocaleTexts { [key: string]: string; } export interface ApkTexts { [locale: string]: ApkLocaleTexts; } export interface ApkCacheAdapter { load(expectedFilename?: string): Promise<ApkTexts | null>; save(apkFilename: string, texts: ApkTexts): Promise<void>; } export interface Input { url?: string; translationApkUrl?: string; translationRemoteUrl?: string; template?: FullTemplate; test?: boolean; raw?: boolean; apkCache?: ApkCacheAdapter; pokeApi?: boolean | PokeApi; pokeApiBaseUrl?: string; } export interface PrimeApkCacheInput { force?: boolean; apkCachePath?: string; } export interface NodeApkCacheInput { apkCachePath?: string; } export interface FullTemplate { globalOptions?: { keyJoiner?: string; genderString?: boolean; snake_case?: boolean; customChildObj?: { [key: string]: string; }; customFields?: { [key: string]: string; }; includeProtos?: boolean; }; pokemon?: { enabled?: boolean; options: Options; template: PokemonTemplate | string; }; costumes?: { enabled?: boolean; options: Options; template: CostumeTemplate | string; }; types?: { enabled?: boolean; options: Options; template: TypesTemplate | string; }; moves?: { enabled?: boolean; options: Options; template: MoveTemplate | string; }; items?: { enabled?: boolean; options: Options; template: ItemTemplate | string; }; questTypes?: { enabled?: boolean; options: Options; template: QuestTemplate | string; }; questConditions?: { enabled?: boolean; options: Options; template: QuestTemplate | string; }; questRewardTypes?: { enabled?: boolean; options: Options; template: QuestTemplate | string; }; invasions?: { enabled?: boolean; options: Options; template: InvasionTemplate | string; }; weather?: { enabled?: boolean; options: Options; template: WeatherTemplate | string; }; translations?: { enabled?: boolean; options: Options; template: TranslationsTemplate; locales: { [key in Locales[number]]?: boolean; }; }; raids?: { enabled?: boolean; options: Options; template: MiscProto | keyof MiscProto; }; locationCards?: { enabled?: boolean; options: Options; template: LocationCardTemplate | keyof LocationCardTemplate; }; teams?: { enabled?: boolean; options: Options; template: MiscProto | keyof MiscProto; }; routeTypes?: { enabled?: boolean; options: Options; template: MiscProto | keyof MiscProto; }; } export type Locales = [ 'de', 'en', 'es', 'es-mx', 'fr', 'hi', 'id', 'it', 'ja', 'ko', 'pt-br', 'ru', 'th', 'tr', 'zh-tw' ]; export interface InvasionsOnly { template?: { enabled: boolean; options: Options; template: InvasionTemplate; }; test?: boolean; } export {};