From 6b78c366c7db9ba236c4efdd4eaf66b6a73680c8 Mon Sep 17 00:00:00 2001 From: Frederico Santos Date: Sat, 11 May 2024 05:40:19 +0100 Subject: [PATCH] Update MultiHitAttr power calculation for power-up attack --- src/data/move.ts | 2 +- src/field/pokemon.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index cada55e6441..befa44c898c 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1004,7 +1004,7 @@ export class StrengthSapHealAttr extends MoveEffectAttr { } export class MultiHitAttr extends MoveAttr { - private multiHitType: MultiHitType; + public multiHitType: MultiHitType; constructor(multiHitType?: MultiHitType) { super(); diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 8afff1b2724..7906100238d 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -4,7 +4,7 @@ import { Variant, VariantSet, variantColorCache } from '#app/data/variant'; import { variantData } from '#app/data/variant'; import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info'; import { Moves } from "../data/enums/moves"; -import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr, IgnoreWeatherTypeDebuffAttr } from "../data/move"; +import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr, CounterDamageAttr, IgnoreWeatherTypeDebuffAttr, MultiHitType } from "../data/move"; import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from '../data/pokemon-species'; import * as Utils from '../utils'; import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from '../data/type'; @@ -1311,6 +1311,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { case MoveCategory.SPECIAL: const isPhysical = moveCategory === MoveCategory.PHYSICAL; const power = new Utils.NumberHolder(move.power); + if(move.getAttrs(MultiHitAttr).length && move.getAttrs(MultiHitAttr).find(attr => (attr as MultiHitAttr).multiHitType === MultiHitType._3_INCR)){ + power.value *= this.battleData.hitCount + 1; + } const sourceTeraType = source.getTeraType(); if (sourceTeraType !== Type.UNKNOWN && sourceTeraType === type && power.value < 60 && move.priority <= 0 && !move.getAttrs(MultiHitAttr).length && !this.scene.findModifier(m => m instanceof PokemonMultiHitModifier && m.pokemonId === source.id)) power.value = 60;