mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-01-30 20:57:13 +00:00
Add battler stat multiplier ability attribute
This commit is contained in:
parent
f6c7a2906d
commit
60f191e60d
@ -222,6 +222,27 @@ export class RecoilMovePowerBoostAbAttr extends VariableMovePowerAbAttr {
|
||||
}
|
||||
}
|
||||
|
||||
export class BattleStatMultiplierAbAttr extends AbAttr {
|
||||
private battleStat: BattleStat;
|
||||
private multiplier: number;
|
||||
|
||||
constructor(battleStat: BattleStat, multiplier: number) {
|
||||
super();
|
||||
|
||||
this.battleStat = battleStat;
|
||||
this.multiplier = multiplier;
|
||||
}
|
||||
|
||||
applyBattleStat(pokemon: Pokemon, battleStat: BattleStat, statValue: Utils.NumberHolder, args: any[]) {
|
||||
if (battleStat === this.battleStat) {
|
||||
statValue.value *= this.multiplier;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export class PreStatChangeAbAttr extends AbAttr {
|
||||
applyPreStatChange(pokemon: Pokemon, stat: BattleStat, cancelled: Utils.BooleanHolder, args: any[]): boolean {
|
||||
return false;
|
||||
@ -360,6 +381,28 @@ export function applyPreDefendAbAttrs(attrType: { new(...args: any[]): PreDefend
|
||||
pokemon.scene.clearPhaseQueueSplice();
|
||||
}
|
||||
|
||||
export function applyBattleStatMultiplierAbAttrs(attrType: { new(...args: any[]): BattleStatMultiplierAbAttr },
|
||||
pokemon: Pokemon, battleStat: BattleStat, statValue: Utils.NumberHolder, ...args: any[]) {
|
||||
if (!pokemon.canApplyAbility())
|
||||
return;
|
||||
|
||||
const ability = pokemon.getAbility();
|
||||
const attrs = ability.getAttrs(attrType) as BattleStatMultiplierAbAttr[];
|
||||
for (let attr of attrs) {
|
||||
if (!canApplyAttr(pokemon, attr))
|
||||
continue;
|
||||
pokemon.scene.setPhaseQueueSplice();
|
||||
if (attr.applyBattleStat(pokemon, battleStat, statValue, args)) {
|
||||
queueShowAbility(pokemon);
|
||||
const message = attr.getTriggerMessage(pokemon);
|
||||
if (message)
|
||||
pokemon.scene.queueMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
pokemon.scene.clearPhaseQueueSplice();
|
||||
}
|
||||
|
||||
export function applyPreAttackAbAttrs(attrType: { new(...args: any[]): PreAttackAbAttr },
|
||||
pokemon: Pokemon, defender: Pokemon, move: PokemonMove, ...args: any[]): void {
|
||||
if (!pokemon.canApplyAbility())
|
||||
|
Loading…
x
Reference in New Issue
Block a user