Use nature override property instead of overwriting base nature
parent
b248209743
commit
84f6456972
|
@ -1503,7 +1503,7 @@ export class SyncEncounterNatureAbAttr extends AbAttr {
|
||||||
}
|
}
|
||||||
|
|
||||||
apply(pokemon: Pokemon, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
apply(pokemon: Pokemon, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
||||||
(args[0] as Pokemon).setNature(pokemon.nature);
|
(args[0] as Pokemon).setNature(pokemon.getNature());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ function getDailyRunStarter(scene: BattleScene, starterSpeciesForm: PokemonSpeci
|
||||||
const starter: Starter = {
|
const starter: Starter = {
|
||||||
species: starterSpecies,
|
species: starterSpecies,
|
||||||
dexAttr: pokemon.getDexAttr(),
|
dexAttr: pokemon.getDexAttr(),
|
||||||
nature: pokemon.nature,
|
nature: pokemon.getNature(),
|
||||||
pokerus: pokemon.pokerus
|
pokerus: pokemon.pokerus
|
||||||
};
|
};
|
||||||
pokemon.destroy();
|
pokemon.destroy();
|
||||||
|
|
|
@ -1038,7 +1038,7 @@ export const pokemonEvolutions: PokemonEvolutions = {
|
||||||
],
|
],
|
||||||
[Species.TOXEL]: [
|
[Species.TOXEL]: [
|
||||||
new SpeciesFormEvolution(Species.TOXTRICITY, '', 'lowkey', 30, null,
|
new SpeciesFormEvolution(Species.TOXTRICITY, '', 'lowkey', 30, null,
|
||||||
new SpeciesEvolutionCondition(p => [ Nature.LONELY, Nature.BOLD, Nature.RELAXED, Nature.TIMID, Nature.SERIOUS, Nature.MODEST, Nature.MILD, Nature.QUIET, Nature.BASHFUL, Nature.CALM, Nature.GENTLE, Nature.CAREFUL ].indexOf(p.nature) > -1)),
|
new SpeciesEvolutionCondition(p => [ Nature.LONELY, Nature.BOLD, Nature.RELAXED, Nature.TIMID, Nature.SERIOUS, Nature.MODEST, Nature.MILD, Nature.QUIET, Nature.BASHFUL, Nature.CALM, Nature.GENTLE, Nature.CAREFUL ].indexOf(p.getNature()) > -1)),
|
||||||
new SpeciesFormEvolution(Species.TOXTRICITY, '', 'amped', 30, null, null)
|
new SpeciesFormEvolution(Species.TOXTRICITY, '', 'amped', 30, null, null)
|
||||||
],
|
],
|
||||||
[Species.SIZZLIPEDE]: [
|
[Species.SIZZLIPEDE]: [
|
||||||
|
|
|
@ -293,7 +293,7 @@ export class SpeciesDefaultFormMatchTrigger extends SpeciesFormChangeTrigger {
|
||||||
}
|
}
|
||||||
|
|
||||||
canChange(pokemon: Pokemon): boolean {
|
canChange(pokemon: Pokemon): boolean {
|
||||||
return this.formKey === pokemon.species.forms[pokemon.scene.getSpeciesFormIndex(pokemon.species, pokemon.gender, pokemon.nature, true)].formKey;
|
return this.formKey === pokemon.species.forms[pokemon.scene.getSpeciesFormIndex(pokemon.species, pokemon.gender, pokemon.getNature(), true)].formKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
public stats: integer[];
|
public stats: integer[];
|
||||||
public ivs: integer[];
|
public ivs: integer[];
|
||||||
public nature: Nature;
|
public nature: Nature;
|
||||||
|
public natureOverride: Nature | -1;
|
||||||
public moveset: PokemonMove[];
|
public moveset: PokemonMove[];
|
||||||
public status: Status;
|
public status: Status;
|
||||||
public friendship: integer;
|
public friendship: integer;
|
||||||
|
@ -125,6 +126,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
this.stats = dataSource.stats;
|
this.stats = dataSource.stats;
|
||||||
this.ivs = dataSource.ivs;
|
this.ivs = dataSource.ivs;
|
||||||
this.nature = dataSource.nature || 0 as Nature;
|
this.nature = dataSource.nature || 0 as Nature;
|
||||||
|
this.natureOverride = dataSource.natureOverride !== undefined ? dataSource.natureOverride : -1;
|
||||||
this.moveset = dataSource.moveset;
|
this.moveset = dataSource.moveset;
|
||||||
this.status = dataSource.status;
|
this.status = dataSource.status;
|
||||||
this.friendship = dataSource.friendship !== undefined ? dataSource.friendship : this.species.baseFriendship;
|
this.friendship = dataSource.friendship !== undefined ? dataSource.friendship : this.species.baseFriendship;
|
||||||
|
@ -152,18 +154,18 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
this.gender = Gender.FEMALE;
|
this.gender = Gender.FEMALE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.formIndex === undefined)
|
|
||||||
this.formIndex = this.scene.getSpeciesFormIndex(species, this.gender, this.nature, this.isPlayer());
|
|
||||||
|
|
||||||
if (this.shiny === undefined)
|
|
||||||
this.trySetShiny();
|
|
||||||
|
|
||||||
if (nature !== undefined)
|
if (nature !== undefined)
|
||||||
this.setNature(nature);
|
this.setNature(nature);
|
||||||
else
|
else
|
||||||
this.generateNature();
|
this.generateNature();
|
||||||
|
|
||||||
|
if (this.formIndex === undefined)
|
||||||
|
this.formIndex = this.scene.getSpeciesFormIndex(species, this.gender, this.getNature(), this.isPlayer());
|
||||||
|
|
||||||
|
if (this.shiny === undefined)
|
||||||
|
this.trySetShiny();
|
||||||
|
|
||||||
this.friendship = species.baseFriendship;
|
this.friendship = species.baseFriendship;
|
||||||
this.metLevel = level;
|
this.metLevel = level;
|
||||||
this.metBiome = scene.currentBattle ? scene.arena.biomeType : -1;
|
this.metBiome = scene.currentBattle ? scene.arena.biomeType : -1;
|
||||||
|
@ -560,6 +562,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getNature(): Nature {
|
||||||
|
return this.natureOverride !== -1 ? this.natureOverride : this.nature;
|
||||||
|
}
|
||||||
|
|
||||||
setNature(nature: Nature): void {
|
setNature(nature: Nature): void {
|
||||||
this.nature = nature;
|
this.nature = nature;
|
||||||
this.calculateStats();
|
this.calculateStats();
|
||||||
|
@ -887,7 +893,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
this.fusionGender = Gender.FEMALE;
|
this.fusionGender = Gender.FEMALE;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.fusionFormIndex = this.scene.getSpeciesFormIndex(this.fusionSpecies, this.fusionGender, this.nature, true);
|
this.fusionFormIndex = this.scene.getSpeciesFormIndex(this.fusionSpecies, this.fusionGender, this.getNature(), true);
|
||||||
|
|
||||||
this.generateName();
|
this.generateName();
|
||||||
}
|
}
|
||||||
|
@ -2119,6 +2125,7 @@ export class PlayerPokemon extends Pokemon {
|
||||||
const newEvolution = pokemonEvolutions[this.species.speciesId][1];
|
const newEvolution = pokemonEvolutions[this.species.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, this.gender, this.shiny, this.ivs, this.nature);
|
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, this.gender, this.shiny, this.ivs, this.nature);
|
||||||
|
newPokemon.natureOverride = this.natureOverride;
|
||||||
this.scene.getParty().push(newPokemon);
|
this.scene.getParty().push(newPokemon);
|
||||||
newPokemon.evolve(newEvolution);
|
newPokemon.evolve(newEvolution);
|
||||||
const modifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
|
const modifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier
|
||||||
|
|
|
@ -271,7 +271,7 @@ export class PokemonNatureChangeModifierType extends PokemonModifierType {
|
||||||
constructor(nature: Nature) {
|
constructor(nature: Nature) {
|
||||||
super(`${getNatureName(nature)} Mint`, `Changes a Pokémon\'s nature to ${getNatureName(nature, true, true, true)}`, ((_type, args) => new Modifiers.PokemonNatureChangeModifier(this, (args[0] as PlayerPokemon).id, this.nature)),
|
super(`${getNatureName(nature)} Mint`, `Changes a Pokémon\'s nature to ${getNatureName(nature, true, true, true)}`, ((_type, args) => new Modifiers.PokemonNatureChangeModifier(this, (args[0] as PlayerPokemon).id, this.nature)),
|
||||||
((pokemon: PlayerPokemon) => {
|
((pokemon: PlayerPokemon) => {
|
||||||
if (pokemon.nature === this.nature)
|
if (pokemon.getNature() === this.nature)
|
||||||
return PartyUiHandler.NoEffectMessage;
|
return PartyUiHandler.NoEffectMessage;
|
||||||
return null;
|
return null;
|
||||||
}), `mint_${Utils.getEnumKeys(Stat).find(s => getNatureStatMultiplier(nature, Stat[s]) > 1)?.toLowerCase() || 'neutral' }`, 'mint');
|
}), `mint_${Utils.getEnumKeys(Stat).find(s => getNatureStatMultiplier(nature, Stat[s]) > 1)?.toLowerCase() || 'neutral' }`, 'mint');
|
||||||
|
|
|
@ -1105,7 +1105,7 @@ export class PokemonNatureChangeModifier extends ConsumablePokemonModifier {
|
||||||
|
|
||||||
apply(args: any[]): boolean {
|
apply(args: any[]): boolean {
|
||||||
const pokemon = args[0] as Pokemon;
|
const pokemon = args[0] as Pokemon;
|
||||||
pokemon.nature = this.nature;
|
pokemon.natureOverride = this.nature;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ export default class PokemonData {
|
||||||
public stats: integer[];
|
public stats: integer[];
|
||||||
public ivs: integer[];
|
public ivs: integer[];
|
||||||
public nature: Nature;
|
public nature: Nature;
|
||||||
|
public natureOverride: Nature | -1;
|
||||||
public moveset: PokemonMove[];
|
public moveset: PokemonMove[];
|
||||||
public status: Status;
|
public status: Status;
|
||||||
public friendship: integer;
|
public friendship: integer;
|
||||||
|
@ -64,6 +65,7 @@ export default class PokemonData {
|
||||||
this.stats = source.stats;
|
this.stats = source.stats;
|
||||||
this.ivs = source.ivs;
|
this.ivs = source.ivs;
|
||||||
this.nature = source.nature !== undefined ? source.nature : 0 as Nature;
|
this.nature = source.nature !== undefined ? source.nature : 0 as Nature;
|
||||||
|
this.natureOverride = source.natureOverride !== undefined ? source.natureOverride : -1;
|
||||||
this.friendship = source.friendship !== undefined ? source.friendship : getPokemonSpecies(this.species).baseFriendship;
|
this.friendship = source.friendship !== undefined ? source.friendship : getPokemonSpecies(this.species).baseFriendship;
|
||||||
this.metLevel = source.metLevel || 5;
|
this.metLevel = source.metLevel || 5;
|
||||||
this.metBiome = source.metBiome !== undefined ? source.metBiome : -1;
|
this.metBiome = source.metBiome !== undefined ? source.metBiome : -1;
|
||||||
|
|
|
@ -121,7 +121,7 @@ export default class PokemonInfoContainer extends Phaser.GameObjects.Container {
|
||||||
this.pokemonGenderText.setVisible(false);
|
this.pokemonGenderText.setVisible(false);
|
||||||
|
|
||||||
this.pokemonAbilityText.setText(pokemon.getAbility(true).name);
|
this.pokemonAbilityText.setText(pokemon.getAbility(true).name);
|
||||||
this.pokemonNatureText.setText(getNatureName(pokemon.nature, true));
|
this.pokemonNatureText.setText(getNatureName(pokemon.getNature(), true));
|
||||||
|
|
||||||
const originalIvs: integer[] = this.scene.gameData.dexData[pokemon.species.speciesId].caughtAttr
|
const originalIvs: integer[] = this.scene.gameData.dexData[pokemon.species.speciesId].caughtAttr
|
||||||
? this.scene.gameData.dexData[pokemon.species.speciesId].ivs
|
? this.scene.gameData.dexData[pokemon.species.speciesId].ivs
|
||||||
|
|
|
@ -574,7 +574,7 @@ export default class SummaryUiHandler extends UiHandler {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let memoString = `${getBBCodeFrag(Utils.toReadableString(Nature[this.pokemon.nature]), TextStyle.SUMMARY_RED)}${getBBCodeFrag(' nature,', TextStyle.WINDOW_ALT)}\n${getBBCodeFrag(`${this.pokemon.metBiome === -1 ? 'apparently ' : ''}met at Lv`, TextStyle.WINDOW_ALT)}${getBBCodeFrag(this.pokemon.metLevel.toString(), TextStyle.SUMMARY_RED)}${getBBCodeFrag(',', TextStyle.WINDOW_ALT)}\n${getBBCodeFrag(getBiomeName(this.pokemon.metBiome), TextStyle.SUMMARY_RED)}${getBBCodeFrag('.', TextStyle.WINDOW_ALT)}`;
|
let memoString = `${getBBCodeFrag(Utils.toReadableString(Nature[this.pokemon.getNature()]), TextStyle.SUMMARY_RED)}${getBBCodeFrag(' nature,', TextStyle.WINDOW_ALT)}\n${getBBCodeFrag(`${this.pokemon.metBiome === -1 ? 'apparently ' : ''}met at Lv`, TextStyle.WINDOW_ALT)}${getBBCodeFrag(this.pokemon.metLevel.toString(), TextStyle.SUMMARY_RED)}${getBBCodeFrag(',', TextStyle.WINDOW_ALT)}\n${getBBCodeFrag(getBiomeName(this.pokemon.metBiome), TextStyle.SUMMARY_RED)}${getBBCodeFrag('.', TextStyle.WINDOW_ALT)}`;
|
||||||
|
|
||||||
const memoText = addBBCodeTextObject(this.scene, 7, 113, memoString, TextStyle.WINDOW_ALT);
|
const memoText = addBBCodeTextObject(this.scene, 7, 113, memoString, TextStyle.WINDOW_ALT);
|
||||||
memoText.setOrigin(0, 0);
|
memoText.setOrigin(0, 0);
|
||||||
|
@ -593,7 +593,7 @@ export default class SummaryUiHandler extends UiHandler {
|
||||||
const rowIndex = s % 3;
|
const rowIndex = s % 3;
|
||||||
const colIndex = Math.floor(s / 3);
|
const colIndex = Math.floor(s / 3);
|
||||||
|
|
||||||
const natureStatMultiplier = getNatureStatMultiplier(this.pokemon.nature, s);
|
const natureStatMultiplier = getNatureStatMultiplier(this.pokemon.getNature(), s);
|
||||||
|
|
||||||
const statLabel = addTextObject(this.scene, 27 + 115 * colIndex, 56 + 16 * rowIndex, statName, natureStatMultiplier === 1 ? TextStyle.SUMMARY : natureStatMultiplier > 1 ? TextStyle.SUMMARY_PINK : TextStyle.SUMMARY_BLUE);
|
const statLabel = addTextObject(this.scene, 27 + 115 * colIndex, 56 + 16 * rowIndex, statName, natureStatMultiplier === 1 ? TextStyle.SUMMARY : natureStatMultiplier > 1 ? TextStyle.SUMMARY_PINK : TextStyle.SUMMARY_BLUE);
|
||||||
statLabel.setOrigin(0.5, 0);
|
statLabel.setOrigin(0.5, 0);
|
||||||
|
|
Loading…
Reference in New Issue