From dfde4f844026e648f16fc6a2ba97bfef085321ec Mon Sep 17 00:00:00 2001 From: fiish Date: Sat, 29 Nov 2025 03:34:51 -0500 Subject: [PATCH 1/3] Fix Torque Animations --- .../src/battle-animations-moves.ts | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/play.pokemonshowdown.com/src/battle-animations-moves.ts b/play.pokemonshowdown.com/src/battle-animations-moves.ts index cdae57c24d4..aa3754d1342 100644 --- a/play.pokemonshowdown.com/src/battle-animations-moves.ts +++ b/play.pokemonshowdown.com/src/battle-animations-moves.ts @@ -37438,14 +37438,14 @@ export const BattleMoveAnims: AnimTable = { z: attacker.z + offset1 * stepZ, scale: size[i % 2], opacity: opct[i % 2], - time: i * tick, + time: 0, }, { x: attacker.x + offset2 * stepX, y: attacker.y + offset2 * stepY + tallerBy, z: attacker.z + offset2 * stepZ, scale: size[(i + 1) % 2], opacity: opct[(i + 1) % 2], - time: (i + 1) * tick, + time: tick, }, 'swing', i === 6 ? 'explode' : 'gone', { filter: 'hue-rotate(-12deg)' }]; ball = ball! ? scene.animateEffect(ball, ...ballArgs) : scene.showEffect(...ballArgs); @@ -37455,14 +37455,14 @@ export const BattleMoveAnims: AnimTable = { z: attacker.z + offset1 * stepZ, scale: size[i % 2], opacity: opct[(i + 1) % 2], - time: i * tick, + time: 0, }, { x: attacker.x + offset2 * stepX, y: attacker.y + offset2 * stepY + tallerBy, z: attacker.z + offset2 * stepZ, scale: size[(i + 1) % 2], opacity: opct[i % 2], - time: (i + 1) * tick, + time: tick, }, 'swing', i === 6 ? 'explode' : 'gone']; wisp = wisp! ? scene.animateEffect(wisp, ...wispArgs) : scene.showEffect(...wispArgs); @@ -37538,14 +37538,14 @@ export const BattleMoveAnims: AnimTable = { z: attacker.z + offset1 * stepZ, scale: size[i % 2], opacity: opct[i % 2], - time: i * tick, + time: 0, }, { x: attacker.x + offset2 * stepX, y: attacker.y + offset2 * stepY + tallerBy, z: attacker.z + offset2 * stepZ, scale: size[(i + 1) % 2], opacity: opct[(i + 1) % 2], - time: (i + 1) * tick, + time: tick, }, 'swing', i === 6 ? 'explode' : 'gone', { filter: 'brightness(1.5)' }]; ball = ball! ? scene.animateEffect(ball, ...ballArgs) : scene.showEffect(...ballArgs); @@ -37555,14 +37555,14 @@ export const BattleMoveAnims: AnimTable = { z: attacker.z + offset1 * stepZ, scale: size[i % 2], opacity: opct[(i + 1) % 2] * 0.75, - time: i * tick, + time: 0, }, { x: attacker.x + offset2 * stepX, y: attacker.y + offset2 * stepY + tallerBy, z: attacker.z + offset2 * stepZ, scale: size[(i + 1) % 2], opacity: opct[i % 2] * 0.75, - time: (i + 1) * tick, + time: tick, }, 'swing', i === 6 ? 'explode' : 'gone']; wisp = wisp! ? scene.animateEffect(wisp, ...wispArgs) : scene.showEffect(...wispArgs); @@ -37638,14 +37638,14 @@ export const BattleMoveAnims: AnimTable = { z: attacker.z + offset1 * stepZ, scale: size[i % 2], opacity: opct[i % 2], - time: i * tick, + time: 0, }, { x: attacker.x + offset2 * stepX, y: attacker.y + offset2 * stepY + tallerBy, z: attacker.z + offset2 * stepZ, scale: size[(i + 1) % 2], opacity: opct[(i + 1) % 2], - time: (i + 1) * tick, + time: tick, }, 'swing', ...(i === 6 ? ['explode'] : ['gone', { filter: 'saturate(300%)' }]) as [string, JQuery.PlainObject]]; ball = ball! ? scene.animateEffect(ball, ...ballArgs) : scene.showEffect(...ballArgs); @@ -37655,14 +37655,14 @@ export const BattleMoveAnims: AnimTable = { z: attacker.z + offset1 * stepZ, scale: size[i % 2], opacity: opct[(i + 1) % 2], - time: i * tick, + time: 0, }, { x: attacker.x + offset2 * stepX, y: attacker.y + offset2 * stepY + tallerBy, z: attacker.z + offset2 * stepZ, scale: size[(i + 1) % 2], opacity: opct[i % 2], - time: (i + 1) * tick, + time: tick, }, 'swing', i === 6 ? 'explode' : 'gone']; wisp = wisp! ? scene.animateEffect(wisp, ...wispArgs) : scene.showEffect(...wispArgs); @@ -37740,14 +37740,14 @@ export const BattleMoveAnims: AnimTable = { z: attacker.z + offset1 * stepZ, scale: size[i % 2], opacity: opct[i % 2], - time: i * tick, + time: 0, }, { x: attacker.x + offset2 * stepX, y: attacker.y + offset2 * stepY + tallerBy, z: attacker.z + offset2 * stepZ, scale: size[(i + 1) % 2], opacity: opct[(i + 1) % 2], - time: (i + 1) * tick, + time: tick, }, 'swing', i === 6 ? 'explode' : '']; ball = ball! ? scene.animateEffect(ball, ...ballArgs) : scene.showEffect(...ballArgs); @@ -37757,14 +37757,14 @@ export const BattleMoveAnims: AnimTable = { z: attacker.z + offset1 * stepZ, scale: size[i % 2], opacity: opct[(i + 1) % 2], - time: i * tick, + time: 0, }, { x: attacker.x + offset2 * stepX, y: attacker.y + offset2 * stepY + tallerBy, z: attacker.z + offset2 * stepZ, scale: size[(i + 1) % 2], opacity: opct[i % 2], - time: (i + 1) * tick, + time: tick, }, 'swing', i === 6 ? 'explode' : '', { filter: 'brightness(1.5)' }]; wisp = wisp! ? scene.animateEffect(wisp, ...wispArgs) : scene.showEffect(...wispArgs); From f412efd1a46f25caaafa580a2b8f193daad7d025 Mon Sep 17 00:00:00 2001 From: fiish Date: Sun, 14 Dec 2025 01:09:13 -0500 Subject: [PATCH 2/3] Don't Show Incorrect Tooltips For CFZs --- play.pokemonshowdown.com/src/battle.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/play.pokemonshowdown.com/src/battle.ts b/play.pokemonshowdown.com/src/battle.ts index 71c56a7c8de..77c1d761ab0 100644 --- a/play.pokemonshowdown.com/src/battle.ts +++ b/play.pokemonshowdown.com/src/battle.ts @@ -1520,11 +1520,13 @@ export class Battle { if (!fromeffect.id || callerMoveForPressure || fromeffect.id === 'pursuit') { let moveName = move.name; if (!callerMoveForPressure) { - if (move.isZ) { + let previousLine = this.stepQueue[this.currentStep - 1]; + let zPower = previousLine.startsWith('|-zpower') + if (move.isZ && zPower) { pokemon.item = move.isZ; let item = Dex.items.get(move.isZ); if (item.zMoveFrom) moveName = item.zMoveFrom; - } else if (move.name.startsWith('Z-')) { + } else if (move.name.startsWith('Z-') && zPower) { moveName = moveName.slice(2); move = Dex.moves.get(moveName); if (window.BattleItems) { From 8554a926ff8a57a279c29da06f598c58b6abeb1b Mon Sep 17 00:00:00 2001 From: fiish Date: Sun, 14 Dec 2025 01:18:39 -0500 Subject: [PATCH 3/3] Revert "Don't Show Incorrect Tooltips For CFZs" This reverts commit f412efd1a46f25caaafa580a2b8f193daad7d025. --- play.pokemonshowdown.com/src/battle.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/play.pokemonshowdown.com/src/battle.ts b/play.pokemonshowdown.com/src/battle.ts index 77c1d761ab0..71c56a7c8de 100644 --- a/play.pokemonshowdown.com/src/battle.ts +++ b/play.pokemonshowdown.com/src/battle.ts @@ -1520,13 +1520,11 @@ export class Battle { if (!fromeffect.id || callerMoveForPressure || fromeffect.id === 'pursuit') { let moveName = move.name; if (!callerMoveForPressure) { - let previousLine = this.stepQueue[this.currentStep - 1]; - let zPower = previousLine.startsWith('|-zpower') - if (move.isZ && zPower) { + if (move.isZ) { pokemon.item = move.isZ; let item = Dex.items.get(move.isZ); if (item.zMoveFrom) moveName = item.zMoveFrom; - } else if (move.name.startsWith('Z-') && zPower) { + } else if (move.name.startsWith('Z-')) { moveName = moveName.slice(2); move = Dex.moves.get(moveName); if (window.BattleItems) {