pogo-data-generator
Version:
Pokemon GO project data generator
84 lines (83 loc) • 3.42 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const pogo_protos_1 = require("@na-ji/pogo-protos");
const Masterfile_1 = __importDefault(require("./Masterfile"));
class Moves extends Masterfile_1.default {
constructor() {
super();
this.parsedMoves = {};
}
protoMoves() {
Object.entries(pogo_protos_1.Rpc.HoloPokemonMove).forEach((proto) => {
const [name, id] = proto;
if (!this.parsedMoves[id] && (id || id === 0)) {
this.parsedMoves[id] = {
moveId: +id,
moveName: this.capitalize(name.replace('_FAST', '')),
proto: name,
fast: name.endsWith('_FAST'),
};
}
});
}
addMoveSettings(object) {
const { templateId, data: { moveSettings }, } = object;
try {
const isMax = templateId.startsWith('VN_BM_');
const proto = isMax ? templateId : templateId.substring(11);
const id = pogo_protos_1.Rpc.HoloPokemonMove[proto];
if (id || id === 0) {
if (!this.parsedMoves[id]) {
this.parsedMoves[id] = {
moveId: id,
moveName: this.capitalize(isMax ? moveSettings.vfxName : proto.replace('_FAST', '')),
proto,
fast: templateId.endsWith('_FAST'),
};
}
this.parsedMoves[id].type =
pogo_protos_1.Rpc.HoloPokemonType[moveSettings.pokemonType];
this.parsedMoves[id].power = isMax
? moveSettings.obMoveSettingsNumber18[2] : moveSettings.power;
this.parsedMoves[id].durationMs = moveSettings.durationMs;
this.parsedMoves[id].energyDelta = moveSettings.energyDelta;
}
}
catch (e) {
console.warn(e, '\n', object);
}
}
addCombatMove(object) {
const { templateId, data: { combatMove }, } = object;
try {
const id = pogo_protos_1.Rpc.HoloPokemonMove[templateId.substring(18)];
if (id || id === 0) {
if (!this.parsedMoves[id]) {
this.parsedMoves[id] = {
moveId: id,
moveName: this.capitalize(templateId.substring(18).replace('_FAST', '')),
proto: templateId.substring(18),
fast: templateId.endsWith('_FAST'),
};
}
this.parsedMoves[id].type =
pogo_protos_1.Rpc.HoloPokemonType[combatMove.type];
this.parsedMoves[id].pvpPower = combatMove.power;
this.parsedMoves[id].pvpEnergyDelta = combatMove.energyDelta;
if (combatMove.durationTurns) {
this.parsedMoves[id].pvpDurationTurns = combatMove.durationTurns;
}
if (combatMove.buffs) {
this.parsedMoves[id].pvpBuffs = combatMove.buffs;
}
}
}
catch (e) {
console.warn(e, '\n', object);
}
}
}
exports.default = Moves;