adding all moves to smeargle (broken)

This commit is contained in:
Jeff Colombo 2019-03-29 14:46:46 -04:00
parent c923b21a78
commit c9cbcbf11d
8 changed files with 39 additions and 9 deletions

2
dist/app.css vendored

File diff suppressed because one or more lines are too long

2
dist/db/order.json vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
dist/main-bundle.js vendored

File diff suppressed because one or more lines are too long

View File

@ -10,6 +10,7 @@ import { ILeaguePokemon, League, MaxCpByLeague } from 'app/models/League';
import { Grade, IMaxStats, IStats } from 'app/models/Pokemon';
import * as PVPogoProtos from 'common/models/PVPogoProtos';
import { POGOProtos } from 'externals/generated/PVPogoProtos';
type ICpAndTotalFound = Record<number, Array<IStats>>;
interface IStatsDistribution {
@ -36,6 +37,8 @@ fs.mkdirSync(outPokemonPath, { recursive: true });
const Pokemon = result.flatOrderedPokemon;
const attackTypeEffectiveness = result.pokemonTypeEffectiveness;
const combatMoves = result.combatMoves;
const quickMoveIds = result.quickMoveIds;
const chargeMoveIds = result.quickMoveIds;
Pokemon.forEach((mon) => {
const baseHp = mon.stats.baseStamina;
@ -109,6 +112,12 @@ fs.mkdirSync(outPokemonPath, { recursive: true });
},
};
// SMEARGLE is a special case and gets all the moves (set on the server, not the client)
if (mon.id === POGOProtos.Enums.PokemonId.SMEARGLE) {
mon.moves.quick = Array.from(quickMoveIds).map((id) => ({ id, isLegacy: false }));
mon.moves.cinematic = Array.from(chargeMoveIds).map((id) => ({ id, isLegacy: false }));
}
maxPossibleStats.baseStamina = Math.max(baseHp, maxPossibleStats.baseStamina);
maxPossibleStats.baseAttack = Math.max(baseAtk, maxPossibleStats.baseAttack);
maxPossibleStats.baseDefense = Math.max(baseDef, maxPossibleStats.baseDefense);

View File

@ -23,6 +23,8 @@ export const parseGameMaster = async () => {
const pokemonTypeWeaknesses : Map<PVPogoProtos.PokemonType, Map<PVPogoProtos.PokemonType, TypeEffectiveness>> = new Map();
const pokemonTypes : Map<PVPogoProtos.PokemonType, Array<number>> = new Map();
const combatMoves : CombatMoveStats = new Map();
const quickMoveIds : Set<POGOProtos.Enums.PokemonMove> = new Set();
const chargeMoveIds : Set<POGOProtos.Enums.PokemonMove> = new Set();
const pokemonBaseStamina : Array<ICalculateRelativeStats> = [];
const pokemonBaseAttack : Array<ICalculateRelativeStats> = [];
@ -146,6 +148,11 @@ export const parseGameMaster = async () => {
// COMBAT MOVES
} else if (entry.template_id.indexOf('COMBAT_V') === 0 && entry.combat_move && entry.combat_move.unique_id) {
const combatMoveId = entry.combat_move.unique_id || PVPogoProtos.PokemonMove.MOVE_UNSET;
const isFastMove = (moveId : string) => {
const fastMove = '_FAST';
const fastMoveIndex = moveId.lastIndexOf(fastMove);
return fastMoveIndex > -1 && fastMoveIndex + fastMove.length === moveId.length;
}
const formatMoveName = (moveId : string) => {
let moveName = moveId;
@ -157,9 +164,9 @@ export const parseGameMaster = async () => {
moveName = moveName.substr(0, blastoiseMoveIndex);
}
const fastMove = '_FAST';
const fastMoveIndex = moveName.lastIndexOf(fastMove);
if (fastMoveIndex > -1 && fastMoveIndex + fastMove.length === moveName.length) {
if (isFastMove(moveName)) {
const fastMove = '_FAST';
const fastMoveIndex = moveName.lastIndexOf(fastMove);
moveName = moveName.substr(0, fastMoveIndex);
}
@ -171,7 +178,17 @@ export const parseGameMaster = async () => {
type: entry.combat_move.type || PVPogoProtos.PokemonType.POKEMON_TYPE_NONE,
power: entry.combat_move.power || 0,
energyDelta: entry.combat_move.energy_delta || 0,
// TODO: features like those of ominous wind...
// "accuracy_chance": 1,
// "critical_chance": 0.05000000074505806,
// "stamina_loss_scalar": 0.05999999865889549,
});
if (isFastMove(PVPogoProtos.PokemonMove[combatMoveId])) {
quickMoveIds.add(combatMoveId);
} else {
chargeMoveIds.add(combatMoveId);
}
}
}
@ -310,5 +327,7 @@ export const parseGameMaster = async () => {
flatOrderedPokemon,
pokemonTypeEffectiveness,
combatMoves,
quickMoveIds,
chargeMoveIds,
};
};

View File

@ -41,6 +41,8 @@ interface IRowFactory {
style : React.CSSProperties;
}
const MAXIMUM_TABLE_HEIGHT = 350;
export class MovesDropdown extends React.Component<IMovesDropdownProps, IState> {
public static getDerivedStateFromProps(nextProps : IMovesDropdownProps, previousState : IState) {
@ -99,7 +101,7 @@ export class MovesDropdown extends React.Component<IMovesDropdownProps, IState>
this.setState({
dimensions: {
...contentRect.bounds,
height: Math.min(450, contentRect.bounds.height),
height: Math.min(MAXIMUM_TABLE_HEIGHT, contentRect.bounds.height),
}
});
}

View File

@ -20,7 +20,7 @@
.menu {
width: map-get($container-width, 'desktop');
max-height: 450px + 8px; // +4 for top/bottom border offset causing issue with .nes-container
max-height: 350px + 8px; // +4 for top/bottom border offset causing issue with .nes-container
position: fixed;
z-index: 2;
top: 25%;