mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-21 14:59:26 +02:00
fix session migration for PokemonCustomData
This commit is contained in:
parent
eea0f4b3ee
commit
f1993b2c84
@ -33,7 +33,6 @@ 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 | null)[];
|
public moveset: (PokemonMove | null)[];
|
||||||
public status: Status | null;
|
public status: Status | null;
|
||||||
public friendship: integer;
|
public friendship: integer;
|
||||||
@ -54,14 +53,20 @@ export default class PokemonData {
|
|||||||
public fusionVariant: Variant;
|
public fusionVariant: Variant;
|
||||||
public fusionGender: Gender;
|
public fusionGender: Gender;
|
||||||
public fusionLuck: integer;
|
public fusionLuck: integer;
|
||||||
public fusionCustomPokemonData: CustomPokemonData;
|
|
||||||
|
|
||||||
public boss: boolean;
|
public boss: boolean;
|
||||||
public bossSegments?: integer;
|
public bossSegments?: integer;
|
||||||
|
|
||||||
public summonData: PokemonSummonData;
|
public summonData: PokemonSummonData;
|
||||||
|
|
||||||
/** Data that can customize a Pokemon in non-standard ways from its Species */
|
/** Data that can customize a Pokemon in non-standard ways from its Species */
|
||||||
public customPokemonData: CustomPokemonData;
|
public customPokemonData: CustomPokemonData;
|
||||||
|
public fusionCustomPokemonData: CustomPokemonData;
|
||||||
|
|
||||||
|
// Deprecated attributes, needed for now to allow SessionData migration (see PR#4619 comments)
|
||||||
|
public natureOverride: Nature | -1;
|
||||||
|
public mysteryEncounterPokemonData: CustomPokemonData | null;
|
||||||
|
public fusionMysteryEncounterPokemonData: CustomPokemonData | null;
|
||||||
|
|
||||||
constructor(source: Pokemon | any, forHistory: boolean = false) {
|
constructor(source: Pokemon | any, forHistory: boolean = false) {
|
||||||
const sourcePokemon = source instanceof Pokemon ? source : null;
|
const sourcePokemon = source instanceof Pokemon ? source : null;
|
||||||
@ -112,6 +117,9 @@ export default class PokemonData {
|
|||||||
|
|
||||||
this.customPokemonData = new CustomPokemonData(source.customPokemonData);
|
this.customPokemonData = new CustomPokemonData(source.customPokemonData);
|
||||||
|
|
||||||
|
this.mysteryEncounterPokemonData = new CustomPokemonData(source.mysteryEncounterPokemonData);
|
||||||
|
this.fusionMysteryEncounterPokemonData = new CustomPokemonData(source.fusionMysteryEncounterPokemonData);
|
||||||
|
|
||||||
if (!forHistory) {
|
if (!forHistory) {
|
||||||
this.boss = (source instanceof EnemyPokemon && !!source.bossSegments) || (!this.player && !!source.boss);
|
this.boss = (source instanceof EnemyPokemon && !!source.bossSegments) || (!this.player && !!source.boss);
|
||||||
this.bossSegments = source.bossSegments;
|
this.bossSegments = source.bossSegments;
|
||||||
|
@ -14,15 +14,18 @@ export const sessionMigrators = [
|
|||||||
function migrateCustomPokemonDataAndNatureOverrides(data: SessionSaveData) {
|
function migrateCustomPokemonDataAndNatureOverrides(data: SessionSaveData) {
|
||||||
// Fix Pokemon nature overrides and custom data migration
|
// Fix Pokemon nature overrides and custom data migration
|
||||||
data.party.forEach(pokemon => {
|
data.party.forEach(pokemon => {
|
||||||
if (pokemon["mysteryEncounterData"]) {
|
if (pokemon["mysteryEncounterPokemonData"]) {
|
||||||
pokemon.customPokemonData = new CustomPokemonData(pokemon["mysteryEncounterData"]);
|
pokemon.customPokemonData = new CustomPokemonData(pokemon["mysteryEncounterPokemonData"]);
|
||||||
|
pokemon["mysteryEncounterPokemonData"] = null;
|
||||||
}
|
}
|
||||||
if (pokemon["fusionMysteryEncounterData"]) {
|
if (pokemon["fusionMysteryEncounterPokemonData"]) {
|
||||||
pokemon.fusionCustomPokemonData = new CustomPokemonData(pokemon["fusionMysteryEncounterData"]);
|
pokemon.fusionCustomPokemonData = new CustomPokemonData(pokemon["fusionMysteryEncounterPokemonData"]);
|
||||||
|
pokemon["fusionMysteryEncounterPokemonData"] = null;
|
||||||
}
|
}
|
||||||
pokemon.customPokemonData = pokemon.customPokemonData ?? new CustomPokemonData();
|
pokemon.customPokemonData = pokemon.customPokemonData ?? new CustomPokemonData();
|
||||||
if (pokemon["natureOverride"]) {
|
if (pokemon["natureOverride"] && pokemon["natureOverride"] >= 0) {
|
||||||
pokemon.customPokemonData.nature = pokemon["natureOverride"];
|
pokemon.customPokemonData.nature = pokemon["natureOverride"];
|
||||||
|
pokemon["natureOverride"] = -1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user