Fix issues with out of bounds form indexes
parent
355fbac9c3
commit
0917049fea
|
@ -284,7 +284,7 @@ export class SelectStarterPhase extends BattlePhase {
|
||||||
const loadPokemonAssets: Promise<void>[] = [];
|
const loadPokemonAssets: Promise<void>[] = [];
|
||||||
for (let starter of starters) {
|
for (let starter of starters) {
|
||||||
const starterProps = this.scene.gameData.getSpeciesDexAttrProps(starter.species, starter.dexAttr);
|
const starterProps = this.scene.gameData.getSpeciesDexAttrProps(starter.species, starter.dexAttr);
|
||||||
const starterFormIndex = Math.min(starterProps.formIndex, starter.species.forms.length - 1);
|
const starterFormIndex = Math.min(starterProps.formIndex, Math.max(starter.species.forms.length - 1, 0));
|
||||||
const starterGender = starter.species.malePercent !== null
|
const starterGender = starter.species.malePercent !== null
|
||||||
? !starterProps.female ? Gender.MALE : Gender.FEMALE
|
? !starterProps.female ? Gender.MALE : Gender.FEMALE
|
||||||
: Gender.GENDERLESS;
|
: Gender.GENDERLESS;
|
||||||
|
|
|
@ -352,7 +352,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm {
|
||||||
|
|
||||||
getName(formIndex?: integer): string {
|
getName(formIndex?: integer): string {
|
||||||
if (formIndex !== undefined && this.forms.length) {
|
if (formIndex !== undefined && this.forms.length) {
|
||||||
const form = this.forms[Math.min(formIndex, this.forms.length - 1)];
|
const form = this.forms[formIndex];
|
||||||
switch (form.formKey) {
|
switch (form.formKey) {
|
||||||
case SpeciesFormKey.MEGA:
|
case SpeciesFormKey.MEGA:
|
||||||
case SpeciesFormKey.ETERNAMAX:
|
case SpeciesFormKey.ETERNAMAX:
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { PokeballType } from "../data/pokeball";
|
||||||
import { getPokemonSpecies } from "../data/pokemon-species";
|
import { getPokemonSpecies } from "../data/pokemon-species";
|
||||||
import { Species } from "../data/enums/species";
|
import { Species } from "../data/enums/species";
|
||||||
import { Status } from "../data/status-effect";
|
import { Status } from "../data/status-effect";
|
||||||
import Pokemon, { EnemyPokemon, PlayerPokemon, PokemonMove, PokemonSummonData } from "../pokemon";
|
import Pokemon, { EnemyPokemon, PokemonMove, PokemonSummonData } from "../pokemon";
|
||||||
|
|
||||||
export default class PokemonData {
|
export default class PokemonData {
|
||||||
public id: integer;
|
public id: integer;
|
||||||
|
@ -48,7 +48,7 @@ export default class PokemonData {
|
||||||
this.id = source.id;
|
this.id = source.id;
|
||||||
this.player = sourcePokemon ? sourcePokemon.isPlayer() : source.player;
|
this.player = sourcePokemon ? sourcePokemon.isPlayer() : source.player;
|
||||||
this.species = sourcePokemon ? sourcePokemon.species.speciesId : source.species;
|
this.species = sourcePokemon ? sourcePokemon.species.speciesId : source.species;
|
||||||
this.formIndex = source.formIndex;
|
this.formIndex = Math.max(Math.min(source.formIndex, getPokemonSpecies(this.species).forms.length - 1), 0);
|
||||||
this.abilityIndex = source.abilityIndex;
|
this.abilityIndex = source.abilityIndex;
|
||||||
this.shiny = source.shiny;
|
this.shiny = source.shiny;
|
||||||
this.pokeball = source.pokeball;
|
this.pokeball = source.pokeball;
|
||||||
|
|
Loading…
Reference in New Issue