From 5a706d7cf872eabeb3965a921b3be9253fa44f46 Mon Sep 17 00:00:00 2001 From: Jakub Hanko <60473007+JakubHanko@users.noreply.github.com> Date: Fri, 17 May 2024 19:07:02 +0200 Subject: [PATCH] Cleanup code --- src/data/battler-tags.ts | 2 +- src/field/pokemon.ts | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 10175034764..6bfc0a7c154 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -1276,7 +1276,7 @@ export class CursedTag extends BattlerTag { } } -export class AuraTag extends BattlerTag { +export abstract class AuraTag extends BattlerTag { constructor(tagType: BattlerTagType, sourceId: number) { super(tagType, BattlerTagLapseType.CUSTOM, 0, undefined, sourceId); } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index eff03633ca9..80e424ebe99 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1455,12 +1455,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { applyPreDefendAbAttrs(ReceivedMoveDamageMultiplierAbAttr, this, source, battlerMove, cancelled, power); - const reducedDamageTag = this.getTag(BattlerTagType.FRIEND_GUARD) as ReceivedMoveDamageMultiplierTag; const abilityBypass = new Utils.BooleanHolder(false); applyAbAttrs(MoveAbilityBypassAbAttr, source, abilityBypass); - if (!abilityBypass.value && reducedDamageTag) { - power.value *= reducedDamageTag.powerMultiplier; + if (!abilityBypass.value) { + const reducedDamageTags = + this.findTags(t => t instanceof ReceivedMoveDamageMultiplierTag) as ReceivedMoveDamageMultiplierTag[]; + const powerMultiplier = reducedDamageTags.reduce((acc, t) => acc * t.powerMultiplier, 1); + power.value *= powerMultiplier; } power.value *= typeChangeMovePowerMultiplier.value;