PokéRogue
    Preparing search index...

    Phase responsible for resolving, animating, and applying one or more stat changes. they will be split into one phase for raises and one phase for drops.

    Changes to multiple stats may be applied at once. If both raises and drops are provided to the same phase, it will be split into one phase for raises and one phase for drops.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    battlerIndex: number

    The battler index this phase refers to, or the pokemon ID if greater than 3. TODO: Make this either use IDs or BattlerIndexes, not a weird mix of both

    fieldIndex: number

    Remove in favor of battlerIndex pleas for fuck's sake

    isIncrease: boolean = false

    Whether this phase represents a stat stage increase, set after splitting changes by sign

    phaseName: "StatStageChangePhase"

    The string name of the phase, used to identify the phase type for is

    player: boolean
    selfTarget: boolean

    Whether the target caused its own stat changes for this phase

    Methods

    • Apply the resolved changes, queue battle messages, trigger reactive abilities/items, and end the phase.

      Parameters

      • pokemon: Pokemon

        The Pokemon receiving the stat changes

      • applied: readonly StatChange[]

        The clamped per-stat deltas to apply

      Returns void

    • Build a stat change message for a group of changes that share the same magnitude.

      Parameters

      • changes: readonly StatChange[]

        The changes described by this message (all sharing one stages value)

      Returns string

      The localised message string

    • End the current phase and start the next one.

      Returns void

      Phases that override end() are responsible for calling super.end() themselves (after any async operations resolve). Additionally, attempting to call this function multiple times from the same Phase will likely crash the game.

    • Format a list of changes into a localised stat-name fragment (e.g. "Attack, Defense, and Speed").

      Parameters

      • changes: readonly StatChange[]

        The changes whose stat names should be listed

      Returns string

      The localised fragment, or the generic "stats" string for 5+

    • Check whether this Phase is of the given type without requiring instanceof.

      Type Parameters

      • K extends
            | "AddEnemyBuffModifierPhase"
            | "AttemptCapturePhase"
            | "AttemptRunPhase"
            | "BattleEndPhase"
            | "BerryPhase"
            | "CheckInterludePhase"
            | "CheckStatusEffectPhase"
            | "CheckSwitchPhase"
            | "CommandPhase"
            | "CommonAnimPhase"
            | "DamageAnimPhase"
            | "DynamicPhaseMarker"
            | "EggHatchPhase"
            | "EggLapsePhase"
            | "EggSummaryPhase"
            | "EncounterPhase"
            | "EndCardPhase"
            | "EndEvolutionPhase"
            | "EnemyCommandPhase"
            | "EvolutionPhase"
            | "ExpPhase"
            | "FaintPhase"
            | "FormChangePhase"
            | "GameOverPhase"
            | "GameOverModifierRewardPhase"
            | "HideAbilityPhase"
            | "HidePartyExpBarPhase"
            | "InitEncounterPhase"
            | "LearnMovePhase"
            | "LevelCapPhase"
            | "LevelUpPhase"
            | "LoadMoveAnimPhase"
            | "LoginPhase"
            | "MessagePhase"
            | "ModifierRewardPhase"
            | "MoneyRewardPhase"
            | "MoveAnimPhase"
            | "MoveChargePhase"
            | "MoveEffectPhase"
            | "MoveEndPhase"
            | "MoveHeaderPhase"
            | "MoveReflectPhase"
            | "MovePhase"
            | "MysteryEncounterPhase"
            | "MysteryEncounterOptionSelectedPhase"
            | "MysteryEncounterBattlePhase"
            | "MysteryEncounterBattleStartCleanupPhase"
            | "MysteryEncounterRewardsPhase"
            | "PostMysteryEncounterPhase"
            | "NewBattlePhase"
            | "NewBiomeEncounterPhase"
            | "NextEncounterPhase"
            | "ObtainStatusEffectPhase"
            | "PartyExpPhase"
            | "PartyHealPhase"
            | "PokemonAnimPhase"
            | "PokemonHealPhase"
            | "PokemonTransformPhase"
            | "PositionalTagPhase"
            | "PostGameOverPhase"
            | "PostSummonPhase"
            | "PostTurnStatusEffectPhase"
            | "QuietFormChangePhase"
            | "ResetStatusPhase"
            | "ReturnPhase"
            | "RevivalBlessingPhase"
            | "RibbonModifierRewardPhase"
            | "ScanIvsPhase"
            | "SelectBiomePhase"
            | "SelectChallengePhase"
            | "SelectGenderPhase"
            | "SelectModifierPhase"
            | "SelectStarterPhase"
            | "SelectTargetPhase"
            | "ShinySparklePhase"
            | "ShowAbilityPhase"
            | "ShowPartyExpBarPhase"
            | "ShowTrainerPhase"
            | "StatStageChangePhase"
            | "SummonMissingPhase"
            | "SummonPhase"
            | "SwitchBiomePhase"
            | "SwitchPhase"
            | "SwitchSummonPhase"
            | "TeraPhase"
            | "TitlePhase"
            | "ToggleDoublePositionPhase"
            | "TrainerVictoryPhase"
            | "TurnEndPhase"
            | "TurnInitPhase"
            | "TurnStartPhase"
            | "UnavailablePhase"
            | "UnlockPhase"
            | "VictoryPhase"
            | "WeatherEffectPhase"

      Parameters

      • phaseName: K

        The name of the phase to check

      Returns this is PhaseMap[K]

      Whether this Phase is of the provided type.

      This does not check for subclasses! It only checks if the phase is exactly the given type. This method exists to avoid circular import issues, as using instanceof would require importing each phase.