mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-04 15:32:18 +02:00
Fixes bug with Status Cure moves only curing player pokemon, refactors PartyStatusCureAttr, removes PartyStatusCurePhase
This commit is contained in:
parent
6a58d1b928
commit
abfbb57c7f
@ -1,5 +1,5 @@
|
|||||||
import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./battle-anims";
|
import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./battle-anims";
|
||||||
import { BattleEndPhase, MoveEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase } from "../phases";
|
import { BattleEndPhase, MoveEndPhase, MovePhase, NewBattlePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase } from "../phases";
|
||||||
import { BattleStat, getBattleStatName } from "./battle-stat";
|
import { BattleStat, getBattleStatName } from "./battle-stat";
|
||||||
import { EncoreTag, HelpingHandTag, SemiInvulnerableTag, StockpilingTag, TypeBoostTag } from "./battler-tags";
|
import { EncoreTag, HelpingHandTag, SemiInvulnerableTag, StockpilingTag, TypeBoostTag } from "./battler-tags";
|
||||||
import { getPokemonNameWithAffix } from "../messages";
|
import { getPokemonNameWithAffix } from "../messages";
|
||||||
@ -1426,11 +1426,27 @@ export class PartyStatusCureAttr extends MoveEffectAttr {
|
|||||||
if (!this.canApply(user, target, move, args)) {
|
if (!this.canApply(user, target, move, args)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
this.addPartyCurePhase(user);
|
const partyPokemon = user.isPlayer() ? user.scene.getParty() : user.scene.getEnemyParty();
|
||||||
|
partyPokemon.forEach(p => this.cureStatus(p));
|
||||||
|
|
||||||
|
if (this.message) {
|
||||||
|
user.scene.queueMessage(this.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
addPartyCurePhase(user: Pokemon) {
|
cureStatus(pokemon: Pokemon) {
|
||||||
user.scene.unshiftPhase(new PartyStatusCurePhase(user.scene, user, this.message, this.abilityCondition));
|
if (!pokemon.isOnField()) {
|
||||||
|
pokemon.resetStatus(false);
|
||||||
|
pokemon.updateInfo();
|
||||||
|
} else if (!pokemon.hasAbility(this.abilityCondition)) {
|
||||||
|
pokemon.resetStatus();
|
||||||
|
pokemon.updateInfo();
|
||||||
|
}
|
||||||
|
// else {
|
||||||
|
// pokemon.scene.unshiftPhase(new ShowAbilityPhase(pokemon.scene, pokemon.id, pokemon.getPassiveAbility()?.id === this.abilityCondition));
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5415,49 +5415,6 @@ export class AddEnemyBuffModifierPhase extends Phase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Cures the party of all non-volatile status conditions, shows a message
|
|
||||||
* @param {BattleScene} scene The current scene
|
|
||||||
* @param {Pokemon} user The user of the move that cures the party
|
|
||||||
* @param {string} message The message that should be displayed
|
|
||||||
* @param {Abilities} abilityCondition Pokemon with this ability will not be affected ie. Soundproof
|
|
||||||
*/
|
|
||||||
export class PartyStatusCurePhase extends BattlePhase {
|
|
||||||
private user: Pokemon;
|
|
||||||
private message: string;
|
|
||||||
private abilityCondition: Abilities;
|
|
||||||
|
|
||||||
constructor(scene: BattleScene, user: Pokemon, message: string, abilityCondition: Abilities) {
|
|
||||||
super(scene);
|
|
||||||
|
|
||||||
this.user = user;
|
|
||||||
this.message = message;
|
|
||||||
this.abilityCondition = abilityCondition;
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
super.start();
|
|
||||||
for (const pokemon of this.scene.getParty()) {
|
|
||||||
if (!pokemon.isOnField() || pokemon === this.user) {
|
|
||||||
pokemon.resetStatus(false);
|
|
||||||
pokemon.updateInfo(true);
|
|
||||||
} else {
|
|
||||||
if (!pokemon.hasAbility(this.abilityCondition)) {
|
|
||||||
pokemon.resetStatus();
|
|
||||||
pokemon.updateInfo(true);
|
|
||||||
} else {
|
|
||||||
// Manually show ability bar, since we're not hooked into the targeting system
|
|
||||||
pokemon.scene.unshiftPhase(new ShowAbilityPhase(pokemon.scene, pokemon.id, pokemon.getPassiveAbility()?.id === this.abilityCondition));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (this.message) {
|
|
||||||
this.scene.queueMessage(this.message);
|
|
||||||
}
|
|
||||||
this.end();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class PartyHealPhase extends BattlePhase {
|
export class PartyHealPhase extends BattlePhase {
|
||||||
private resumeBgm: boolean;
|
private resumeBgm: boolean;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user