Allow selecting and ordering starter moves

This commit is contained in:
Flashfyre committed 2024-02-21 01:03:34 -05:00
1 parent c3983fccb4
commit b054992ffa
6 files changed
+188 -54

No files matched your search

+1 -1
View File
@@ -1,7 +1,7 @@
import { Moves } from "./enums/moves";
import { Species } from "./enums/species";
export type LevelMoves = (integer | Moves)[][];
export type LevelMoves = ([integer, Moves])[];
interface PokemonSpeciesLevelMoves {
[key: integer]: LevelMoves
+14 -1
View File
@@ -4,9 +4,10 @@ import { GrowthRate } from './exp';
import { SpeciesWildEvolutionDelay, pokemonEvolutions, pokemonPrevolutions } from './pokemon-evolutions';
import { Species } from './enums/species';
import { Type } from './type';
import { LevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from './pokemon-level-moves';
import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from './pokemon-level-moves';
import { uncatchableSpecies } from './biomes';
import * as Utils from '../utils';
import { StarterMoveset } from '../system/game-data';
export enum Region {
NORMAL,
@@ -259,6 +260,18 @@ export abstract class PokemonSpeciesForm {
return ret;
}
validateStarterMoveset(moveset: StarterMoveset): boolean {
for (let moveId of moveset) {
if (pokemonFormLevelMoves.hasOwnProperty(this.speciesId) && pokemonFormLevelMoves[this.speciesId].hasOwnProperty(this.formIndex)) {
if (!pokemonFormLevelMoves[this.speciesId][this.formIndex].find(lm => lm[0] <= 5 && lm[1] === moveId))
return false;
} else if (!pokemonSpeciesLevelMoves[this.speciesId].find(lm => lm[0] <= 5 && lm[1] === moveId))
return false;
}
return true;
}
loadAssets(scene: BattleScene, female: boolean, formIndex?: integer, shiny?: boolean, startLoad?: boolean): Promise<void> {
return new Promise(resolve => {
scene.load.audio(this.getCryKey(formIndex), `audio/cry/${this.getCryKey(formIndex)}.ogg`);