Fix Shedinja Luck and Crash
Shedinja wasn't taking the luck value from Ninjask so when it calculated its luck it just took the entire fused Pokemon's luck somehow. This has been fixed so it takes both the first and second part of the fusion's luck values instead. Also fixes an issue where Shedinja crashed the game if it was the second part of a fusion combo. Now the correct pokemon species gets checked against and the correct pokemon evolution occurs to create Shedinja.pull/274/merge
parent
991f097e9e
commit
fec8771830
|
@ -2457,12 +2457,17 @@ export class PlayerPokemon extends Pokemon {
|
||||||
|
|
||||||
private handleSpecialEvolutions(evolution: SpeciesFormEvolution) {
|
private handleSpecialEvolutions(evolution: SpeciesFormEvolution) {
|
||||||
const isFusion = evolution instanceof FusionSpeciesFormEvolution;
|
const isFusion = evolution instanceof FusionSpeciesFormEvolution;
|
||||||
if ((!isFusion ? this.species : this.fusionSpecies).speciesId === Species.NINCADA && evolution.speciesId === Species.NINJASK) {
|
|
||||||
const newEvolution = pokemonEvolutions[this.species.speciesId][1];
|
const evoSpecies = (!isFusion ? this.species : this.fusionSpecies)
|
||||||
|
if (evoSpecies.speciesId === Species.NINCADA && evolution.speciesId === Species.NINJASK) {
|
||||||
|
const newEvolution = pokemonEvolutions[evoSpecies.speciesId][1];
|
||||||
|
|
||||||
if (newEvolution.condition.predicate(this)) {
|
if (newEvolution.condition.predicate(this)) {
|
||||||
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, undefined, this.shiny, this.variant, this.ivs, this.nature);
|
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, undefined, this.shiny, this.variant, this.ivs, this.nature);
|
||||||
newPokemon.natureOverride = this.natureOverride;
|
newPokemon.natureOverride = this.natureOverride;
|
||||||
newPokemon.moveset = this.moveset.slice();
|
newPokemon.moveset = this.moveset.slice();
|
||||||
|
newPokemon.luck = this.luck;
|
||||||
|
|
||||||
newPokemon.fusionSpecies = this.fusionSpecies;
|
newPokemon.fusionSpecies = this.fusionSpecies;
|
||||||
newPokemon.fusionFormIndex = this.fusionFormIndex;
|
newPokemon.fusionFormIndex = this.fusionFormIndex;
|
||||||
newPokemon.fusionAbilityIndex = this.fusionAbilityIndex;
|
newPokemon.fusionAbilityIndex = this.fusionAbilityIndex;
|
||||||
|
@ -2470,8 +2475,9 @@ export class PlayerPokemon extends Pokemon {
|
||||||
newPokemon.fusionVariant = this.fusionVariant;
|
newPokemon.fusionVariant = this.fusionVariant;
|
||||||
newPokemon.fusionGender = this.fusionGender;
|
newPokemon.fusionGender = this.fusionGender;
|
||||||
newPokemon.fusionLuck = this.fusionLuck;
|
newPokemon.fusionLuck = this.fusionLuck;
|
||||||
|
|
||||||
this.scene.getParty().push(newPokemon);
|
this.scene.getParty().push(newPokemon);
|
||||||
newPokemon.evolve(newEvolution);
|
newPokemon.evolve(!isFusion ? newEvolution : new FusionSpeciesFormEvolution(this.id, newEvolution));
|
||||||
const modifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
|
const modifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
|
||||||
&& (m as PokemonHeldItemModifier).pokemonId === this.id, true) as PokemonHeldItemModifier[];
|
&& (m as PokemonHeldItemModifier).pokemonId === this.id, true) as PokemonHeldItemModifier[];
|
||||||
modifiers.forEach(m => {
|
modifiers.forEach(m => {
|
||||||
|
|
Loading…
Reference in New Issue