mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-12-24 18:49:16 +01:00
Moved customPokemonData into types folder + fixed comments
This commit is contained in:
parent
70dbabe281
commit
95690be3c9
@ -14,12 +14,40 @@ import type { Species } from "#enums/species";
|
||||
import { PokemonMove } from "#app/field/pokemon";
|
||||
import type { TurnMove } from "#app/@types/turn-move";
|
||||
import type { AttackMoveResult } from "#app/@types/attack-move-result";
|
||||
import type { Nature } from "#enums/nature";
|
||||
|
||||
/**
|
||||
* Permanent data that can customize a Pokemon in non-standard ways from its Species.
|
||||
* Includes abilities, nature, changed types, etc.
|
||||
*/
|
||||
export class CustomPokemonData {
|
||||
// TODO: Change the default value for all these from -1 to something a bit more sensible
|
||||
/**
|
||||
* The scale at which to render this Pokemon's sprite.
|
||||
*/
|
||||
public spriteScale = -1;
|
||||
public ability: Abilities | -1;
|
||||
public passive: Abilities | -1;
|
||||
public nature: Nature | -1;
|
||||
public types: PokemonType[];
|
||||
/** Deprecated but needed for session save migration */
|
||||
// TODO: Remove this once pre-session migration is implemented
|
||||
public hitsRecCount: number | null = null;
|
||||
|
||||
constructor(data?: CustomPokemonData | Partial<CustomPokemonData>) {
|
||||
this.spriteScale = data?.spriteScale ?? -1;
|
||||
this.ability = data?.ability ?? -1;
|
||||
this.passive = data?.passive ?? -1;
|
||||
this.nature = data?.nature ?? -1;
|
||||
this.types = data?.types ?? [];
|
||||
this.hitsRecCount = data?.hitsRecCount ?? null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Persistent in-battle data for a {@linkcode Pokemon}.
|
||||
* Resets on switch or new battle.
|
||||
*/
|
||||
|
||||
export class PokemonSummonData {
|
||||
/** [Atk, Def, SpAtk, SpDef, Spd, Acc, Eva] */
|
||||
public statStages: number[] = [0, 0, 0, 0, 0, 0, 0];
|
||||
@ -80,6 +108,7 @@ export class PokemonSummonData {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Illusion property
|
||||
*/
|
||||
@ -115,8 +144,8 @@ export interface IllusionData {
|
||||
/** The level of the illusion (not used currently) */
|
||||
level?: number;
|
||||
}
|
||||
// TODO: Merge this inside `summmonData` but exclude from save if/when a save data serializer is added
|
||||
|
||||
// TODO: Merge this inside `summmonData` but exclude from save if/when a save data serializer is added
|
||||
export class PokemonTempSummonData {
|
||||
/**
|
||||
* The number of turns this pokemon has spent without switching out.
|
||||
@ -134,11 +163,11 @@ export class PokemonTempSummonData {
|
||||
*/
|
||||
waveTurnCount = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Persistent data for a {@linkcode Pokemon}.
|
||||
* Resets at the start of a new battle (but not on switch).
|
||||
*/
|
||||
|
||||
export class PokemonBattleData {
|
||||
/** Counter tracking direct hits this Pokemon has received during this battle; used for {@linkcode Moves.RAGE_FIST} */
|
||||
public hitCount = 0;
|
||||
@ -155,11 +184,11 @@ export class PokemonBattleData {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Temporary data for a {@linkcode Pokemon}.
|
||||
* Resets on new wave/battle start (but not on switch).
|
||||
*/
|
||||
|
||||
export class PokemonWaveData {
|
||||
/** Whether the pokemon has endured due to a {@linkcode BattlerTagType.ENDURE_TOKEN} */
|
||||
public endured = false;
|
||||
@ -171,11 +200,11 @@ export class PokemonWaveData {
|
||||
/** Whether the pokemon's ability has been revealed or not */
|
||||
public abilityRevealed = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Temporary data for a {@linkcode Pokemon}.
|
||||
* Resets at the start of a new turn, as well as on switch.
|
||||
*/
|
||||
|
||||
export class PokemonTurnData {
|
||||
public flinched = false;
|
||||
public acted = false;
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
import type { Abilities } from "#enums/abilities";
|
||||
import type { PokemonType } from "#enums/pokemon-type";
|
||||
import type { Nature } from "#enums/nature";
|
||||
|
||||
/**
|
||||
* Data that can customize a Pokemon in non-standard ways from its Species.
|
||||
* Includes abilities, nature, changed types, etc.
|
||||
*/
|
||||
export class CustomPokemonData {
|
||||
// TODO: Change the default value for all these from -1 to something a bit more sensible
|
||||
/**
|
||||
* The scale at which to render this Pokemon's sprite.
|
||||
*/
|
||||
public spriteScale = -1;
|
||||
public ability: Abilities | -1;
|
||||
public passive: Abilities | -1;
|
||||
public nature: Nature | -1;
|
||||
public types: PokemonType[];
|
||||
/** Deprecated but needed for session save migration */
|
||||
// TODO: Remove this once pre-session migration is implemented
|
||||
public hitsRecCount: number | null = null;
|
||||
|
||||
constructor(data?: CustomPokemonData | Partial<CustomPokemonData>) {
|
||||
this.spriteScale = data?.spriteScale ?? -1;
|
||||
this.ability = data?.ability ?? -1;
|
||||
this.passive = data?.passive ?? -1;
|
||||
this.nature = data?.nature ?? -1;
|
||||
this.types = data?.types ?? [];
|
||||
this.hitsRecCount = data?.hitsRecCount ?? null;
|
||||
}
|
||||
}
|
||||
@ -45,7 +45,7 @@ import { BattlerIndex } from "#app/battle";
|
||||
import { Moves } from "#enums/moves";
|
||||
import { EncounterBattleAnim } from "#app/data/battle-anims";
|
||||
import { MoveCategory } from "#enums/MoveCategory";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants";
|
||||
import { EncounterAnim } from "#enums/encounter-anims";
|
||||
import { Challenges } from "#enums/challenges";
|
||||
|
||||
@ -29,7 +29,7 @@ import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode
|
||||
import { PartyHealPhase } from "#app/phases/party-heal-phase";
|
||||
import { BerryType } from "#enums/berry-type";
|
||||
import { Stat } from "#enums/stat";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import { randSeedInt } from "#app/utils/common";
|
||||
|
||||
/** i18n namespace for the encounter */
|
||||
@ -133,14 +133,12 @@ export const SlumberingSnorlaxEncounter: MysteryEncounter = MysteryEncounterBuil
|
||||
guaranteedModifierTypeFuncs: [modifierTypes.LEFTOVERS],
|
||||
fillRemaining: true,
|
||||
});
|
||||
encounter.startOfBattleEffects.push(
|
||||
{
|
||||
sourceBattlerIndex: BattlerIndex.ENEMY,
|
||||
targets: [BattlerIndex.PLAYER],
|
||||
move: new PokemonMove(Moves.SNORE),
|
||||
ignorePp: true,
|
||||
},
|
||||
);
|
||||
encounter.startOfBattleEffects.push({
|
||||
sourceBattlerIndex: BattlerIndex.ENEMY,
|
||||
targets: [BattlerIndex.PLAYER],
|
||||
move: new PokemonMove(Moves.SNORE),
|
||||
ignorePp: true,
|
||||
});
|
||||
await initBattleWithEnemyConfig(encounter.enemyPartyConfigs[0]);
|
||||
},
|
||||
)
|
||||
|
||||
@ -25,7 +25,7 @@ import { BattlerIndex } from "#app/battle";
|
||||
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||
import { BerryType } from "#enums/berry-type";
|
||||
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import { Stat } from "#enums/stat";
|
||||
import { StatStageChangePhase } from "#app/phases/stat-stage-change-phase";
|
||||
import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants";
|
||||
|
||||
@ -49,7 +49,7 @@ import { TrainerSlot } from "#enums/trainer-slot";
|
||||
import type PokemonSpecies from "#app/data/pokemon-species";
|
||||
import type { IEggOptions } from "#app/data/egg";
|
||||
import { Egg } from "#app/data/egg";
|
||||
import type { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import type { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import type HeldModifierConfig from "#app/interfaces/held-modifier-config";
|
||||
import { MovePhase } from "#app/phases/move-phase";
|
||||
import { EggLapsePhase } from "#app/phases/egg-lapse-phase";
|
||||
|
||||
@ -34,7 +34,7 @@ import { Gender } from "#app/data/gender";
|
||||
import type { PermanentStat } from "#enums/stat";
|
||||
import { VictoryPhase } from "#app/phases/victory-phase";
|
||||
import { SummaryUiMode } from "#app/ui/summary-ui-handler";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import type { Abilities } from "#enums/abilities";
|
||||
import type { PokeballType } from "#enums/pokeball";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
|
||||
@ -242,7 +242,7 @@ import { SwitchSummonPhase } from "#app/phases/switch-summon-phase";
|
||||
import { Challenges } from "#enums/challenges";
|
||||
import { PokemonAnimType } from "#enums/pokemon-anim-type";
|
||||
import { PLAYER_PARTY_MAX_SIZE } from "#app/constants";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import { SwitchType } from "#enums/switch-type";
|
||||
import { SpeciesFormKey } from "#enums/species-form-key";
|
||||
import { getStatusEffectOverlapText } from "#app/data/status-effect";
|
||||
|
||||
@ -12,7 +12,7 @@ import type { Variant } from "#app/sprites/variant";
|
||||
import type { Biome } from "#enums/biome";
|
||||
import type { Moves } from "#enums/moves";
|
||||
import type { Species } from "#enums/species";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import type { PokemonType } from "#enums/pokemon-type";
|
||||
|
||||
export default class PokemonData {
|
||||
|
||||
@ -2,7 +2,7 @@ import { SettingKeys } from "#app/system/settings/settings";
|
||||
import type { SystemSaveData, SessionSaveData } from "#app/system/game-data";
|
||||
import { AbilityAttr, defaultStarterSpecies, DexAttr } from "#app/system/game-data";
|
||||
import { allSpecies } from "#app/data/pokemon-species";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import { isNullOrUndefined } from "#app/utils/common";
|
||||
import type { SystemSaveMigrator } from "#app/@types/SystemSaveMigrator";
|
||||
import type { SettingsSaveMigrator } from "#app/@types/SettingsSaveMigrator";
|
||||
|
||||
@ -5,7 +5,7 @@ import { PokeballType } from "#enums/pokeball";
|
||||
import type BattleScene from "#app/battle-scene";
|
||||
import { Moves } from "#app/enums/moves";
|
||||
import { PokemonType } from "#enums/pokemon-type";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
|
||||
describe("Spec - Pokemon", () => {
|
||||
let phaserGame: Phaser.Game;
|
||||
|
||||
@ -24,7 +24,7 @@ import { BerryModifier, PokemonBaseStatTotalModifier } from "#app/modifier/modif
|
||||
import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode";
|
||||
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
|
||||
import { initSceneWithoutEncounterPhase } from "#test/testUtils/gameManagerUtils";
|
||||
import { CustomPokemonData } from "#app/data/custom-pokemon-data";
|
||||
import { CustomPokemonData } from "#app/@types/pokemon-data";
|
||||
import { CommandPhase } from "#app/phases/command-phase";
|
||||
import { MovePhase } from "#app/phases/move-phase";
|
||||
import { SelectModifierPhase } from "#app/phases/select-modifier-phase";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user