pogo-data-generator
Version:
Pokemon GO project data generator
362 lines (361 loc) • 8.7 kB
TypeScript
import { MiscProto } from './dataTypes';
import { InvasionInfo } from './pogoinfo';
import { 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;
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 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 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;
weather?: boolean;
misc?: boolean;
pokemonCategories?: boolean;
quests?: boolean;
}
export interface Input {
url?: string;
translationApkUrl?: string;
translationRemoteUrl?: string;
template?: FullTemplate;
test?: boolean;
raw?: boolean;
pokeApi?: boolean | PokeApi;
}
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;
};
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 {};