diff --git a/src/interfaces/calc/CalcdexPokemon.ts b/src/interfaces/calc/CalcdexPokemon.ts index 57b1c4b5..217a13d1 100644 --- a/src/interfaces/calc/CalcdexPokemon.ts +++ b/src/interfaces/calc/CalcdexPokemon.ts @@ -859,6 +859,13 @@ export interface CalcdexPokemon extends CalcdexLeanPokemon { */ criticalHit?: boolean; + /** + * Volatile status conditions Pokemon has. + * + * * Currently only useful for Tar Shot damage calculation, but could be useful for other moves like it in the future, too. + */ + volatileStatus?: Showdown.PokemonVolatile; + /** * User-modified non-volatile status condition. * diff --git a/src/utils/calc/calcMoveBasePower.ts b/src/utils/calc/calcMoveBasePower.ts index 0c784f3c..6a08d68e 100644 --- a/src/utils/calc/calcMoveBasePower.ts +++ b/src/utils/calc/calcMoveBasePower.ts @@ -242,6 +242,10 @@ export const calcMoveBasePower = ( basePowerMods.push(2); } + if ('tarshot' in opponentPokemon?.volatiles && moveType === 'Fire') { + basePowerMods.push(2); + } + if (basePowerMods.length) { basePower = basePowerMods.reduce((bp, mod) => Math.floor(bp * clamp(0, mod)), basePower); }