#3722 broke up function into pieces

This commit is contained in:
Jesse Chung 2024-08-29 21:42:17 -07:00
parent 5c543367aa
commit 1ad474438d
2 changed files with 15 additions and 4 deletions

View File

@ -1950,11 +1950,13 @@ export class StatusEffectAttr extends MoveEffectAttr {
return false; return false;
} }
} }
if (!pokemon.status || (pokemon.status.effect === this.effect && moveChance < 0)) { if (!pokemon.status || (pokemon.status.effect === this.effect && moveChance < 0)) {
pokemon.canSetStatus(this.effect, false, false, user); pokemon.checkIfCanSetStatus(this.effect, false, false, user);
} }
if ((!pokemon.status || (pokemon.status.effect === this.effect && moveChance < 0)) if ((!pokemon.status || (pokemon.status.effect === this.effect && moveChance < 0))
&& pokemon.trySetStatus(this.effect, true, user, this.cureTurn)) { && pokemon.trySetStatus(this.effect, true, user, this.cureTurn, null)) {
applyPostAttackAbAttrs(ConfusionOnStatusEffectAbAttr, user, target, move, null, false, this.effect); applyPostAttackAbAttrs(ConfusionOnStatusEffectAbAttr, user, target, move, null, false, this.effect);
return true; return true;
} }

View File

@ -2736,7 +2736,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
return this.gender !== Gender.GENDERLESS && pokemon.gender === (this.gender === Gender.MALE ? Gender.FEMALE : Gender.MALE); return this.gender !== Gender.GENDERLESS && pokemon.gender === (this.gender === Gender.MALE ? Gender.FEMALE : Gender.MALE);
} }
canSetStatus(effect: StatusEffect | undefined, quiet: boolean = false, overrideStatus: boolean = false, sourcePokemon: Pokemon | null = null): boolean { // This function only checks if it is possible to set status. If will not apply anything or do anything, just check if possible.
checkIfCanSetStatus(effect: StatusEffect | undefined, quiet: boolean = false, overrideStatus: boolean = false, sourcePokemon: Pokemon | null = null): boolean {
if (effect !== StatusEffect.FAINT) { if (effect !== StatusEffect.FAINT) {
if (overrideStatus ? this.status?.effect === effect : this.status) { if (overrideStatus ? this.status?.effect === effect : this.status) {
return false; return false;
@ -2801,6 +2802,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
break; break;
} }
return true;
}
canSetStatus(effect: StatusEffect | undefined, quiet: boolean = false, overrideStatus: boolean = false, sourcePokemon: Pokemon | null = null): boolean {
const checker = this.checkIfCanSetStatus(effect, quiet, overrideStatus, sourcePokemon);
const cancelled = new Utils.BooleanHolder(false); const cancelled = new Utils.BooleanHolder(false);
applyPreSetStatusAbAttrs(StatusEffectImmunityAbAttr, this, effect, cancelled, quiet); applyPreSetStatusAbAttrs(StatusEffectImmunityAbAttr, this, effect, cancelled, quiet);
@ -2811,7 +2820,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
return false; return false;
} }
return true; return checker;
} }
trySetStatus(effect: StatusEffect | undefined, asPhase: boolean = false, sourcePokemon: Pokemon | null = null, cureTurn: integer | null = 0, sourceText: string | null = null): boolean { trySetStatus(effect: StatusEffect | undefined, asPhase: boolean = false, sourcePokemon: Pokemon | null = null, cureTurn: integer | null = 0, sourceText: string | null = null): boolean {