Class StatusBase

java.lang.Object
com.pixelmonmod.pixelmon.battles.attacks.EffectBase
com.pixelmonmod.pixelmon.battles.status.StatusBase
Direct Known Subclasses:
AquaRing, Autotomize, BeakBlastStatus, BerryEaten, BideStatus, Charge, ChiStrikeStatus, Commanded, Confusion, CopiedBoosts, Cursed, DefenseCurl, DestinyBond, Disable, Electrify, Embargo, Encore, EntryHazard, FixatedStatus, Flinch, Flying, Focus, FollowMe, Foresight, FuryCutterStatus, FutureSighted, GastroAcid, GlaiveRushLock, GlobalStatusBase, Grudge, HealBlock, HealingWish, HelpingHand, Imprison, Infatuated, Ingrain, InMouth, InPursuit, LaserFocus, Leech, LockOn, LuckyChant, LunarBlessing, LunarDance, MagicCoat, MagnetRise, MatBlock, MeanLook, MeFirstStatus, Minimize, Mist, MoveOrderModifier, MultiTurn, Nightmare, NoRetreat, ObscuredStatus, Overlord, ParadoxBoost, PartialTrap, Perish, PledgeBase, Powder, PowerShift, PowerTrick, ProtectVariation, Pumped, Raging, Recharge, SafeGuard, SaltCure, Screen, ShellTrapStatus, SkyDropBase, SmackedDown, Snatch, SpeedSwapStatus, Splinters, Split, Spotlight, SpringtideStormStatus, StatusPersist, Stockpile, Submerged, Substitute, SuppressType, SyrupBomb, Tailwind, TarShot, Taunt, Telekinesis, ThroatChop, Torment, Transformed, UnderGround, UproarStatus, Vanish, Wish, Yawn, ZPowerHeal

public abstract class StatusBase extends EffectBase
A battle status.
  • Field Details

    • type

      public StatusType type
      The type of the status.
    • battleTurnGained

      public int battleTurnGained
    • turnGained

      public int turnGained
  • Constructor Details

    • StatusBase

      public StatusBase()
    • StatusBase

      public StatusBase(StatusType type)
      Initializes the status with its type.
      Parameters:
      type - The status's type.
  • Method Details

    • applyEffect

      public void applyEffect(PixelmonWrapper user, PixelmonWrapper target)
      Description copied from class: EffectBase
      Causes various effects during the move.
      Specified by:
      applyEffect in class EffectBase
      Parameters:
      user - The move's user.
      target - The move's target.
    • applyOppositeTeamEffect

      public void applyOppositeTeamEffect(PixelmonWrapper user)
      For effects that target the opponent's side of the field. This will only be called once no matter how many targets the user has.
      Parameters:
      user - The move's user.
    • onAttackUsed

      public void onAttackUsed(PixelmonWrapper user, Attack attack)
      Triggers when the Pokémon uses an attack.
      Parameters:
      user - The attack's user.
      attack - The attack.
    • stopsSwitching

      public boolean stopsSwitching()
      Determines whether the status stops switching.
      Returns:
      Whether the status stops switching.
    • stopsForcedSwitches

      public boolean stopsForcedSwitches(PixelmonWrapper cause)
      Determines whether the status prevents another Pokémon from switching them.
      Parameters:
      cause - The Pokémon triggering the switch.
      Returns:
      Whether the status stops the forced switch.
    • skipsTurn

      public boolean skipsTurn()
      Determines whether the user skips their turn due to this status. Skips all actions.
      Returns:
      Whether the turn is skipped
    • applyRepeatedEffect

      public void applyRepeatedEffect(PixelmonWrapper pw)
      Triggered at the end of every turn.
      Parameters:
      pw - The statused Pokémon.
    • onAttackEnd

      public void onAttackEnd(PixelmonWrapper pw)
      Triggered when an attack against the Pokémon finishes.
      Parameters:
      pw - The statused Pokémon.
    • canAttackThisTurn

      public boolean canAttackThisTurn(PixelmonWrapper user, Attack a)
      Determines whether the statused Pokémon can attack.
      Parameters:
      user - The statused Pokémon.
      a - The attack to be used by the Pokémon.
      Returns:
      Whether the Pokémon can attack.
    • stopsSelfStatusMove

      public boolean stopsSelfStatusMove(PixelmonWrapper user, PixelmonWrapper opponent, Attack attack)
      Determines whether the Pokémon's status stops an opponent's status move on itself.
      Parameters:
      user - The statused Pokémon.
      opponent - The attack's user.
      attack - The attack.
      Returns:
      Whether the attack is stopped.
    • onEndOfTurn

      public void onEndOfTurn(PixelmonWrapper pw)
      Occurs at the end of the Pokémon's current turn.
      Parameters:
      pw - The statused Pokémon.
    • onEndOfAttackersTurn

      public void onEndOfAttackersTurn(PixelmonWrapper statusedPokemon, PixelmonWrapper attacker)
      Affects the statuses of the Pokémon defending against this attacking Pokémon. Occurs at the end of the attacking Pokémon's current turn.
      Parameters:
      statusedPokemon - The defending Pokémon that has the status condition.
      attacker - The attacking Pokémon.
    • modifyPowerAndAccuracyUser

      public int[] modifyPowerAndAccuracyUser(int power, int accuracy, PixelmonWrapper user, PixelmonWrapper target, Attack a)
      Modifies the power and accuracy of the attack used by the statused Pokémon.
      Parameters:
      power - The attack's power.
      accuracy - The attack's accuracy.
      user - The attack's user.
      target - The attack's target.
      a - The attack.
      Returns:
      The modified power and accuracy.
    • modifyPowerAndAccuracyTarget

      public int[] modifyPowerAndAccuracyTarget(int power, int accuracy, PixelmonWrapper user, PixelmonWrapper target, Attack a)
      Modifies the power and accuracy of the attack about to hit the statused Pokémon.
      Parameters:
      power - The attack's power.
      accuracy - The attack's accuracy.
      user - The attack's user.
      target - The attack's target.
      a - The attack.
      Returns:
      The modified power and accuracy.
    • modifyMoveEffectChanceUser

      public void modifyMoveEffectChanceUser(PixelmonWrapper user, PixelmonWrapper target, List<EffectBase> effects)
      Allows the user's status to adjust the move's effects
      Parameters:
      user - The attacking Pokemon, with the Status.
      target - The Pokemon being attacked.
      effects - The current effects of the attack.
    • modifyMoveEffectChanceTarget

      @Deprecated(forRemoval=true) public void modifyMoveEffectChanceTarget(PixelmonWrapper user, PixelmonWrapper target, List<EffectBase> effects)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Allows the target's status to adjust the move's effects
      Parameters:
      user - The item holder and attacking Pokemon.
      target - The Pokemon being attacked.
      effects - The current effects of the attack.
    • ignoresAdditionalEffectsFromAttacker

      public boolean ignoresAdditionalEffectsFromAttacker(EffectBase effect, PixelmonWrapper user, PixelmonWrapper attacker)
      When overridden, allows a status to ignore the additional effects of moves.
      Parameters:
      effect - What will potentially be ignored.
      user - The statused, defending Pokémon.
      attacker - The Pokémon attacking.
    • stopsIncomingAttack

      public boolean stopsIncomingAttack(PixelmonWrapper pokemon, PixelmonWrapper user)
      Determines whether the status stops an attack about to hit the statused Pokémon.
      Parameters:
      pokemon - The statused Pokémon.
      user - The attack's user.
      Returns:
      Whether the attack is stopped.
    • stopsIncomingAttackUser

      public boolean stopsIncomingAttackUser(PixelmonWrapper pokemon, PixelmonWrapper user)
      Determines whether the status stops an attack used by the statused Pokémon.
      Parameters:
      pokemon - The statused Pokémon.
      user - The attack's user.
      Returns:
      Whether the attack is stopped.
    • stopsIncomingAttackTeammate

      public boolean stopsIncomingAttackTeammate(PixelmonWrapper statusedAlly, PixelmonWrapper teammate, PixelmonWrapper attackUser)
      Determines whether the status stops an attack about to hit a teammate. Should operate similarly to Ability.allowsIncomingAttackTeammate(PixelmonWrapper, PixelmonWrapper, PixelmonWrapper, Attack).
      Parameters:
      statusedAlly - The ally that has a status that could potentially stop the attack.
      teammate - The target of the attack.
      attackUser - The attack's user.
      Returns:
      Whether the attack is stopped.
    • stopsIncomingAttackMessage

      public void stopsIncomingAttackMessage(PixelmonWrapper pokemon, PixelmonWrapper user)
      Displays a battle message when the status stops an attack.
      Parameters:
      pokemon - The statused Pokémon.
      user - The attack's user.
    • stopsStatusChange

      public boolean stopsStatusChange(StatusType t, PixelmonWrapper target, PixelmonWrapper user)
      Determines whether the status prevents the Pokémon from obtaining other statuses.
      Parameters:
      t - The status to be afflicted
      target - The Pokémon to be afflicted.
      user - The Pokémon afflicting the status.
      Returns:
      Whether the status stops the other status from being afflicted.
    • stopsEvolution

      public boolean stopsEvolution(PixelmonWrapper pw)
      Determines whether the status prevents the Pokémon from evolving.
      Parameters:
      pw - The Pokémon with the status.
      Returns:
      Whether the status stops the pokemon from evolving.
    • onDynamaxTriggered

      public void onDynamaxTriggered(PixelmonWrapper pw)
      Triggers when the statused Pokémon dynamaxes.
      Parameters:
      pw - The Pokémon with the status.
    • onFormChanged

      public void onFormChanged(PixelmonWrapper pw)
      Triggers when the statused Pokémon's form changes.
      Parameters:
      pw - The Pokémon with the status.
    • onDamageReceived

      public void onDamageReceived(PixelmonWrapper userWrapper, PixelmonWrapper pokemon, Attack a, int damage, DamageTypeEnum damageType)
      Triggers when the statused Pokémon takes damage.
      Parameters:
      userWrapper - The attack's user.
      pokemon - The statused Pokémon.
      a - The attack.
      damage - The amount of damage dealt.
      damageType - The type of damage dealt.
    • modifyDamageIncludeFixed

      public int modifyDamageIncludeFixed(int damage, PixelmonWrapper user, PixelmonWrapper target, Attack a, DamageTypeEnum damageType)
      Triggers when the Pokémon takes direct damage, including fixed damage moves.
      Parameters:
      damage - The amount of damage dealt.
      user - The attack's user.
      target - The attack's target.
      a - The attack.
      Returns:
      The modified damage.
    • isTeamStatus

      public boolean isTeamStatus()
      Determines whether the status applies to the Pokémon's position in the battle.
      Returns:
      Whether the status applies to the Pokémon's position in the battle.
    • isWholeTeamStatus

      public boolean isWholeTeamStatus()
      Determines whether the status applies to the Pokémon's side of the battle.
      Returns:
      Whether the status applies to the Pokémon's side of the battle.
    • applySwitchOutEffect

      public void applySwitchOutEffect(PixelmonWrapper outgoing, PixelmonWrapper incoming)
      Triggers when the statused Pokémon switches out.
      Parameters:
      outgoing - The statused Pokémon.
      incoming - The incoming Pokémon.
    • applyEffectOnSwitch

      public void applyEffectOnSwitch(PixelmonWrapper pw)
      Triggers when the statused Pokémon switches in.
      Parameters:
      pw - The statused Pokémon.
    • applyBeforeEffect

      public void applyBeforeEffect(PixelmonWrapper victim, PixelmonWrapper opponent)
      Triggers when the Pokémon gains the status.
      Parameters:
      victim - The statused Pokémon.
      opponent - The attack's target.
    • applyEndOfBattleEffect

      public void applyEndOfBattleEffect(PixelmonWrapper pokemon)
      Triggers when the battle ends.
      Parameters:
      pokemon - The statused Pokémon.
    • modifyEffectiveTypes

      public List<net.minecraft.core.Holder<Type>> modifyEffectiveTypes(PixelmonWrapper user, PixelmonWrapper target, List<net.minecraft.core.Holder<Type>> types)
      Returns the types that will be used in calculating the Pokémon's attack's type effectiveness.
      Parameters:
      user - The attack's user.
      target - The attack's target.
      Returns:
      The target's modified types.
    • modifyBaseStats

      public int[] modifyBaseStats(PixelmonWrapper user, int[] stats)
      Modifies the Pokémon's base stats at the beginning of a battle turn.
      Parameters:
      user - The Pokémon.
      stats - The Pokémon's stats.
      Returns:
      The modified stats.
    • modifyStats

      public int[] modifyStats(PixelmonWrapper user, int[] stats)
      Modifies the Pokémon's stats at the beginning of a battle turn.
      Parameters:
      user - The Pokémon.
      stats - The Pokémon's stats.
      Returns:
      The modified stats.
    • modifyStatsCancellable

      public int[] modifyStatsCancellable(PixelmonWrapper user, int[] stats)
      Modifies the Pokémon's stats at the beginning of a battle turn. Affected by Abilities that negate status.
      Parameters:
      user - The Pokémon.
      stats - The Pokémon's stats.
      Returns:
      The modified stats.
    • ignoreStatus

      public boolean ignoreStatus(PixelmonWrapper user, PixelmonWrapper target)
      Determines whether the status is ignored during the attack.
      Parameters:
      user - The attack's user.
      target - The attack's target.
      Returns:
      Whether the status is ignored.
    • allowsStatChange

      public boolean allowsStatChange(PixelmonWrapper pokemon, PixelmonWrapper user, StatsEffect e)
      Determines whether the status allows stats to be modified
      Parameters:
      pokemon - The statused Pokémon.
      user - The attack's user.
      e - The stat modifier.
      Returns:
      Whether the stat can be modified.
    • adjustCritStage

      public int adjustCritStage(PixelmonWrapper pw)
      Adjusts the number of crit rate stages for an attack.
      Parameters:
      pw - The Pokémon with the status
      Returns:
      The critical stage boost
    • modifyWeight

      public float modifyWeight(float initWeight)
      Modifies the Pokémon's weight.
      Parameters:
      initWeight - The Pokémon's weight.
      Returns:
      The modified weight.
    • redirectAttack

      public boolean redirectAttack(PixelmonWrapper user, PixelmonWrapper targetAlly, Attack attack)
      Determines whether the status causes an incoming attack to be redirected.
      Parameters:
      user - The Pokémon using the attack.
      targetAlly - The Pokémon with the status.
      attack - The attack.
      Returns:
      Whether the attack is redirected to the Pokémon with the status.
    • isImmune

      public boolean isImmune(PixelmonWrapper pokemon)
      Checks if the Pokémon is immune to the status.
      Parameters:
      pokemon - The Pokémon to check.
      Returns:
      Whether the Pokémon is immune to the status.
    • copy

      public StatusBase copy()
      If necessary, makes a deep copy of the status.
      Returns:
      A deep copy of the status.
    • cantMiss

      public boolean cantMiss(PixelmonWrapper user, PixelmonWrapper target)
      Description copied from class: EffectBase
      Determines whether a move cannot miss.
      Specified by:
      cantMiss in class EffectBase
      Parameters:
      user - The move's user.
      target - The move's target.
      Returns:
      Whether the move can't miss.
    • getCureMessage

      public String getCureMessage()
      Gets the lang key for the message that is displayed when the status is cured.
      Returns:
      The lang key for the message that is displayed when the status is cured.
    • getCureMessageItem

      public String getCureMessageItem()
      Gets the lang key for the message that is displayed when the status is cured with a held item.
      Returns:
      The lang key for the message that is displayed when the status is cured with a held item.
    • getNewInstance

      public static StatusBase getNewInstance(Class<? extends StatusBase> statusClass)
      Returns a new instance of the given status class.
      Parameters:
      statusClass - The status class to make a new instance of.
      Returns:
      A new instance of the given status class.
    • allowsStatusTeammate

      public boolean allowsStatusTeammate(StatusType status, PixelmonWrapper abilityUser, PixelmonWrapper teammate, PixelmonWrapper attackUser)
      Fires for all teammates when a status attempts to be applied.
      Parameters:
      status - The status being afflicted.
      abilityUser - The Pokémon with the Ability.
      teammate - The Pokémon who is being afflicted with the status.
      attackUser - The Pokémon inflicting the status.
      Returns:
      Whether the status can be afflicted.
    • onTargetKnockedOut

      public void onTargetKnockedOut(PixelmonWrapper abilityUser, PixelmonWrapper target)
      Triggers if the user of the ability was responsible for knocking out the target.
      Parameters:
      abilityUser - - The Pixelmon with the ability. The one responsible for knocking out the target.
      target - - The Pokémon that fainted. Not necessarily an opponent.
    • onTakeTurn

      public void onTakeTurn(PixelmonWrapper statusedPokemon)
      Triggers upon the statused Pokémon attempting to flee or make an attack, before either of those succeed or fail.

      Created for Destiny Bond, which should be removed upon the start of a Pokémon's turn, even if they are asleep and can't attack.

      Parameters:
      statusedPokemon - The Pokémon affected by this status.