From 134e7f4345f361e28e84b03cd06e2f51a7de8e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= Date: Sun, 16 Feb 2025 07:26:59 +0000 Subject: [PATCH 01/15] Fix move order prioritization --- sim/battle-queue.ts | 4 ++-- test/sim/moves/round.js | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/sim/battle-queue.ts b/sim/battle-queue.ts index d0085fa76e..2991affbe9 100644 --- a/sim/battle-queue.ts +++ b/sim/battle-queue.ts @@ -19,7 +19,7 @@ import type {Battle} from './battle'; export interface MoveAction { /** action type */ choice: 'move' | 'beforeTurnMove' | 'priorityChargeMove'; - order: 3 | 5 | 200 | 201 | 199 | 106; + order: 3 | 5 | 107 | 199 | 200 | 201; /** priority of the action (lower first) */ priority: number; /** fractional priority of the action (lower first) */ @@ -277,7 +277,7 @@ export class BattleQueue { } } action.sourceEffect = sourceEffect; - action.order = 3; + action.order = action.choice === 'move' ? 199 : 3; this.list.unshift(action); } diff --git a/test/sim/moves/round.js b/test/sim/moves/round.js index ed4e6620b2..4879e28a82 100644 --- a/test/sim/moves/round.js +++ b/test/sim/moves/round.js @@ -18,6 +18,23 @@ describe('Round', function () { battle.makeChoices('move round', 'move rest'); assert.equal(battle.p2.active[0].item, ''); }); + + it.only('should not take priority over abilities', function () { + battle = common.gen(5).createBattle({gameType: 'doubles'}, [[ + {species: "Charizard", moves: ['round']}, + {species: "Venusaur", moves: ['round']}, + ], [ + {species: "Caterpie", item: 'ejectbutton', moves: ['sleeptalk']}, + {species: "Blastoise", moves: ['sleeptalk']}, + {species: "Incineroar", ability: 'intimidate', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + battle.makeChoices(); + const log = battle.getDebugLog(); + const intimidateIndex = log.lastIndexOf('|-ability|p2a: Incineroar|Intimidate|boost'); + const roundIndex = log.lastIndexOf('|move|p1b: Venusaur|Round|p2a: Incineroar|[from] move: Round'); + assert(intimidateIndex < roundIndex, 'Intimidate should activate before the rest of the Round attacks'); + }); }); describe('Round [Gen 5]', function () { From ff507b99e1ffd45910e78a03647353e54f6809e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= Date: Sun, 16 Feb 2025 07:31:28 +0000 Subject: [PATCH 02/15] Fix test --- test/sim/moves/round.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sim/moves/round.js b/test/sim/moves/round.js index 4879e28a82..1469ae638c 100644 --- a/test/sim/moves/round.js +++ b/test/sim/moves/round.js @@ -19,7 +19,7 @@ describe('Round', function () { assert.equal(battle.p2.active[0].item, ''); }); - it.only('should not take priority over abilities', function () { + it('should not take priority over abilities', function () { battle = common.gen(5).createBattle({gameType: 'doubles'}, [[ {species: "Charizard", moves: ['round']}, {species: "Venusaur", moves: ['round']}, From 1a6daee581ecc76934f3637c64ea583fad05d928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= Date: Sun, 16 Feb 2025 07:42:06 +0000 Subject: [PATCH 03/15] A crit in the test --- test/sim/moves/round.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sim/moves/round.js b/test/sim/moves/round.js index 1469ae638c..5151d3f044 100644 --- a/test/sim/moves/round.js +++ b/test/sim/moves/round.js @@ -24,7 +24,7 @@ describe('Round', function () { {species: "Charizard", moves: ['round']}, {species: "Venusaur", moves: ['round']}, ], [ - {species: "Caterpie", item: 'ejectbutton', moves: ['sleeptalk']}, + {species: "Blissey", item: 'ejectbutton', moves: ['sleeptalk']}, {species: "Blastoise", moves: ['sleeptalk']}, {species: "Incineroar", ability: 'intimidate', moves: ['sleeptalk']}, ]]); From 361acf3631c881fd9588359bb919b9a7ecb7049b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= <80102738+andrebastosdias@users.noreply.github.com> Date: Sun, 16 Feb 2025 20:53:26 +0000 Subject: [PATCH 04/15] Modify test --- test/sim/moves/round.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sim/moves/round.js b/test/sim/moves/round.js index 5151d3f044..6d7a08cc5b 100644 --- a/test/sim/moves/round.js +++ b/test/sim/moves/round.js @@ -20,7 +20,7 @@ describe('Round', function () { }); it('should not take priority over abilities', function () { - battle = common.gen(5).createBattle({gameType: 'doubles'}, [[ + battle = common.createBattle({gameType: 'doubles'}, [[ {species: "Charizard", moves: ['round']}, {species: "Venusaur", moves: ['round']}, ], [ From a4ec9750b5e098bbfeb349cbd2b0da5491e47704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= Date: Wed, 26 Feb 2025 20:39:21 +0000 Subject: [PATCH 05/15] Update to ESLint 9 --- test/sim/moves/round.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/sim/moves/round.js b/test/sim/moves/round.js index 8b10ebf540..5ae9c2c6f4 100644 --- a/test/sim/moves/round.js +++ b/test/sim/moves/round.js @@ -19,14 +19,14 @@ describe('Round', () => { assert.equal(battle.p2.active[0].item, ''); }); - it('should not take priority over abilities', function () { - battle = common.createBattle({gameType: 'doubles'}, [[ - {species: "Charizard", moves: ['round']}, - {species: "Venusaur", moves: ['round']}, + it('should not take priority over abilities', () => { + battle = common.createBattle({ gameType: 'doubles' }, [[ + { species: "Charizard", moves: ['round'] }, + { species: "Venusaur", moves: ['round'] }, ], [ - {species: "Blissey", item: 'ejectbutton', moves: ['sleeptalk']}, - {species: "Blastoise", moves: ['sleeptalk']}, - {species: "Incineroar", ability: 'intimidate', moves: ['sleeptalk']}, + { species: "Blissey", item: 'ejectbutton', moves: ['sleeptalk'] }, + { species: "Blastoise", moves: ['sleeptalk'] }, + { species: "Incineroar", ability: 'intimidate', moves: ['sleeptalk'] }, ]]); battle.makeChoices(); battle.makeChoices(); From 02ff291aa7692866cdf734dffdcc46d3fcb20c26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= <80102738+andrebastosdias@users.noreply.github.com> Date: Thu, 6 Mar 2025 11:05:05 +0000 Subject: [PATCH 06/15] Make Round targets explicit --- test/sim/moves/round.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sim/moves/round.js b/test/sim/moves/round.js index 5ae9c2c6f4..395044156a 100644 --- a/test/sim/moves/round.js +++ b/test/sim/moves/round.js @@ -28,7 +28,7 @@ describe('Round', () => { { species: "Blastoise", moves: ['sleeptalk'] }, { species: "Incineroar", ability: 'intimidate', moves: ['sleeptalk'] }, ]]); - battle.makeChoices(); + battle.makeChoices('move round 1, move round 1', 'auto'); battle.makeChoices(); const log = battle.getDebugLog(); const intimidateIndex = log.lastIndexOf('|-ability|p2a: Incineroar|Intimidate|boost'); From a575685eb3eaa0d78b31b01a99adf02cdeea2aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= <80102738+andrebastosdias@users.noreply.github.com> Date: Mon, 17 Mar 2025 00:04:17 +0000 Subject: [PATCH 07/15] Update action orders --- sim/battle-queue.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/sim/battle-queue.ts b/sim/battle-queue.ts index 412adf7023..efcbc57d70 100644 --- a/sim/battle-queue.ts +++ b/sim/battle-queue.ts @@ -19,7 +19,7 @@ import type { Battle } from './battle'; export interface MoveAction { /** action type */ choice: 'move' | 'beforeTurnMove' | 'priorityChargeMove'; - order: 3 | 5 | 107 | 199 | 200 | 201; + order: 3 | 5 | 105 | 199 | 200 | 201; /** priority of the action (lower first) */ priority: number; /** fractional priority of the action (lower first) */ @@ -50,7 +50,7 @@ export interface MoveAction { export interface SwitchAction { /** action type */ choice: 'switch' | 'instaswitch' | 'revivalblessing'; - order: 3 | 6 | 103; + order: 3 | 6 | 101; /** priority of the action (lower first) */ priority: number; /** speed of pokemon switching (higher first if priority tie) */ @@ -173,14 +173,12 @@ export class BattleQueue { beforeTurnMove: 5, revivalblessing: 6, - runSwitch: 101, - switch: 103, - megaEvo: 104, - megaEvoX: 104, - megaEvoY: 104, - runDynamax: 105, - terastallize: 106, - priorityChargeMove: 107, + runSwitch: 100, + switch: 101, + megaEvo: 102, megaEvoX: 102, megaEvoY: 102, + runDynamax: 103, + terastallize: 104, + priorityChargeMove: 105, shift: 200, // default is 200 (for moves) From 75f2ea7a86e750c9f6c05eeffc86a6f80ba4b0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= <80102738+andrebastosdias@users.noreply.github.com> Date: Mon, 19 May 2025 09:15:42 +0000 Subject: [PATCH 08/15] Fix Round boost logic --- data/moves.ts | 5 ++++- sim/battle.ts | 4 ++++ test/sim/moves/round.js | 20 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/data/moves.ts b/data/moves.ts index 03b2615f51..bec83b6f52 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -16087,7 +16087,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { accuracy: 100, basePower: 60, basePowerCallback(target, source, move) { - if (move.sourceEffect === 'round') { + if (this.roundBoost > 1) { this.debug('BP doubled'); return move.basePower * 2; } @@ -16099,6 +16099,9 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { priority: 0, flags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 }, onTry(source, target, move) { + if (this.roundBoost < 2) { + this.roundBoost++; + } for (const action of this.queue.list as MoveAction[]) { if (!action.pokemon || !action.move || action.maxMove || action.zmove) continue; if (action.move.id === 'round') { diff --git a/sim/battle.ts b/sim/battle.ts index 45e94b909d..39e90d031e 100644 --- a/sim/battle.ts +++ b/sim/battle.ts @@ -172,6 +172,8 @@ export class Battle { lastDamage: number; effectOrder: number; quickClawRoll: boolean; + /** 0 = no boost, 1 = boost next instance, 2 = boost */ + roundBoost: number; speedOrder: number[]; teamGenerator: ReturnType | null; @@ -260,6 +262,7 @@ export class Battle { this.lastDamage = 0; this.effectOrder = 0; this.quickClawRoll = false; + this.roundBoost = 0; this.speedOrder = []; for (let i = 0; i < this.activePerHalf * 2; i++) { this.speedOrder.push(i); @@ -1555,6 +1558,7 @@ export class Battle { endTurn() { this.turn++; this.lastSuccessfulMoveThisTurn = null; + this.roundBoost = 0; const dynamaxEnding: Pokemon[] = []; for (const pokemon of this.getAllActive()) { diff --git a/test/sim/moves/round.js b/test/sim/moves/round.js index 395044156a..1566aaceff 100644 --- a/test/sim/moves/round.js +++ b/test/sim/moves/round.js @@ -19,6 +19,26 @@ describe('Round', () => { assert.equal(battle.p2.active[0].item, ''); }); + it('should boost Round used by Instruct or Encore', () => { + battle = common.createBattle({ gameType: 'doubles' }, [[ + { species: "Aurorus", ability: 'refrigerate', moves: ['sleeptalk', 'round'], evs: { spe: 252 } }, + { species: "Aurorus", ability: 'refrigerate', moves: ['sleeptalk', 'round'] }, + ], [ + { species: "Carnivine", moves: ['sleeptalk', 'encore'], evs: { spe: 252 } }, + { species: "Carnivine", moves: ['sleeptalk'] }, + { species: "Carnivine", moves: ['instruct'] }, + { species: "Carnivine", moves: ['sleeptalk'], level: 1 }, + ]]); + battle.makeChoices('move sleeptalk, move round 2', 'move sleeptalk, move sleeptalk'); + battle.makeChoices('move round 2, move sleeptalk', 'move encore 2, move sleeptalk'); + assert.fainted(battle.p2.active[0]); + assert.fainted(battle.p2.active[1]); + battle.makeChoices(); + battle.makeChoices('move sleeptalk, move round 2', 'move instruct 2, move sleeptalk'); + assert.fainted(battle.p2.active[0]); + assert.fainted(battle.p2.active[1]); + }); + it('should not take priority over abilities', () => { battle = common.createBattle({ gameType: 'doubles' }, [[ { species: "Charizard", moves: ['round'] }, From fd497606ddaadef58ffda35bd28a346dfdb081b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= <80102738+andrebastosdias@users.noreply.github.com> Date: Mon, 19 May 2025 10:20:18 +0100 Subject: [PATCH 09/15] Fix test name --- test/sim/moves/round.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sim/moves/round.js b/test/sim/moves/round.js index 1566aaceff..17d6489e12 100644 --- a/test/sim/moves/round.js +++ b/test/sim/moves/round.js @@ -19,7 +19,7 @@ describe('Round', () => { assert.equal(battle.p2.active[0].item, ''); }); - it('should boost Round used by Instruct or Encore', () => { + it('is boosted if it was used prior in the turn and called by Instruct or Encore', () => { battle = common.createBattle({ gameType: 'doubles' }, [[ { species: "Aurorus", ability: 'refrigerate', moves: ['sleeptalk', 'round'], evs: { spe: 252 } }, { species: "Aurorus", ability: 'refrigerate', moves: ['sleeptalk', 'round'] }, From 10309b75f0060f5f334ad81647ed94b9ea78c248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= <80102738+andrebastosdias@users.noreply.github.com> Date: Sat, 7 Jun 2025 13:35:38 +0100 Subject: [PATCH 10/15] Fix order --- sim/battle-queue.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sim/battle-queue.ts b/sim/battle-queue.ts index efcbc57d70..1c493c0b0c 100644 --- a/sim/battle-queue.ts +++ b/sim/battle-queue.ts @@ -19,7 +19,7 @@ import type { Battle } from './battle'; export interface MoveAction { /** action type */ choice: 'move' | 'beforeTurnMove' | 'priorityChargeMove'; - order: 3 | 5 | 105 | 199 | 200 | 201; + order: 5 | 105 | 199 | 200 | 201; /** priority of the action (lower first) */ priority: number; /** fractional priority of the action (lower first) */ From d8bc1f85cdbe0e5759c95299ebe3ea83e5bfdb4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= Date: Sat, 7 Jun 2025 13:43:58 +0100 Subject: [PATCH 11/15] Change roundBoost type --- data/moves.ts | 6 ++---- sim/battle.ts | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/data/moves.ts b/data/moves.ts index bec83b6f52..14037b9e72 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -16087,7 +16087,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { accuracy: 100, basePower: 60, basePowerCallback(target, source, move) { - if (this.roundBoost > 1) { + if (this.roundBoost) { this.debug('BP doubled'); return move.basePower * 2; } @@ -16099,9 +16099,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { priority: 0, flags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 }, onTry(source, target, move) { - if (this.roundBoost < 2) { - this.roundBoost++; - } + this.roundBoost = this.roundBoost != null; for (const action of this.queue.list as MoveAction[]) { if (!action.pokemon || !action.move || action.maxMove || action.zmove) continue; if (action.move.id === 'round') { diff --git a/sim/battle.ts b/sim/battle.ts index 1f7f53f1f9..63c121058e 100644 --- a/sim/battle.ts +++ b/sim/battle.ts @@ -172,8 +172,8 @@ export class Battle { lastDamage: number; effectOrder: number; quickClawRoll: boolean; - /** 0 = no boost, 1 = boost next instance, 2 = boost */ - roundBoost: number; + /** null = no boost, false = boost next instance, true = boost */ + roundBoost: boolean | null; speedOrder: number[]; teamGenerator: ReturnType | null; @@ -262,7 +262,7 @@ export class Battle { this.lastDamage = 0; this.effectOrder = 0; this.quickClawRoll = false; - this.roundBoost = 0; + this.roundBoost = null; this.speedOrder = []; for (let i = 0; i < this.activePerHalf * 2; i++) { this.speedOrder.push(i); @@ -1563,7 +1563,7 @@ export class Battle { endTurn() { this.turn++; this.lastSuccessfulMoveThisTurn = null; - this.roundBoost = 0; + this.roundBoost = null; const dynamaxEnding: Pokemon[] = []; for (const pokemon of this.getAllActive()) { From 67f7acb167d2c9a00a967c39385403b1221624fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= Date: Thu, 24 Jul 2025 00:16:40 +0100 Subject: [PATCH 12/15] Simplify to a Round counter --- data/moves.ts | 4 ++-- sim/battle.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/data/moves.ts b/data/moves.ts index 3989468399..885361eac1 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -16073,7 +16073,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { accuracy: 100, basePower: 60, basePowerCallback(target, source, move) { - if (this.roundBoost) { + if (this.roundCount > 1) { this.debug('BP doubled'); return move.basePower * 2; } @@ -16085,7 +16085,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { priority: 0, flags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 }, onTry(source, target, move) { - this.roundBoost = this.roundBoost != null; + this.roundCount++; for (const action of this.queue.list as MoveAction[]) { if (!action.pokemon || !action.move || action.maxMove || action.zmove) continue; if (action.move.id === 'round') { diff --git a/sim/battle.ts b/sim/battle.ts index 6fcdd5e486..ffd8a7cfb1 100644 --- a/sim/battle.ts +++ b/sim/battle.ts @@ -172,8 +172,8 @@ export class Battle { lastDamage: number; effectOrder: number; quickClawRoll: boolean; - /** null = no boost, false = boost next instance, true = boost */ - roundBoost: boolean | null; + /** number of times Round has been used this turn */ + roundCount: number; speedOrder: number[]; teamGenerator: ReturnType | null; @@ -262,7 +262,7 @@ export class Battle { this.lastDamage = 0; this.effectOrder = 0; this.quickClawRoll = false; - this.roundBoost = null; + this.roundCount = 0; this.speedOrder = []; for (let i = 0; i < this.activePerHalf * 2; i++) { this.speedOrder.push(i); @@ -1580,7 +1580,7 @@ export class Battle { endTurn() { this.turn++; this.lastSuccessfulMoveThisTurn = null; - this.roundBoost = null; + this.roundCount = 0; const dynamaxEnding: Pokemon[] = []; for (const pokemon of this.getAllActive()) { From 1165689123c15828f29d70e2d9feb4224a7a5adb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= <80102738+andrebastosdias@users.noreply.github.com> Date: Fri, 25 Jul 2025 01:39:07 +0100 Subject: [PATCH 13/15] Boost Round even if there is not target https://www.smogon.com/forums/threads/instruct-should-boost-round.3764935/post-10645271 --- data/moves.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/moves.ts b/data/moves.ts index 885361eac1..f3d5497098 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -16084,7 +16084,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { pp: 15, priority: 0, flags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 }, - onTry(source, target, move) { + onTryMove(source, target, move) { this.roundCount++; for (const action of this.queue.list as MoveAction[]) { if (!action.pokemon || !action.move || action.maxMove || action.zmove) continue; From cc5e6d9e4781f1c80081f28ae31ab5e93844930e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bastos=20Dias?= Date: Fri, 25 Jul 2025 10:26:05 +0100 Subject: [PATCH 14/15] Implement like Echoed Voice --- data/moves.ts | 13 +++++++++++-- sim/battle.ts | 4 ---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/data/moves.ts b/data/moves.ts index f3d5497098..10427a46e8 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -16073,7 +16073,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { accuracy: 100, basePower: 60, basePowerCallback(target, source, move) { - if (this.roundCount > 1) { + if (this.field.pseudoWeather.round.boost) { this.debug('BP doubled'); return move.basePower * 2; } @@ -16085,7 +16085,7 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { priority: 0, flags: { protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1 }, onTryMove(source, target, move) { - this.roundCount++; + this.field.addPseudoWeather('round'); for (const action of this.queue.list as MoveAction[]) { if (!action.pokemon || !action.move || action.maxMove || action.zmove) continue; if (action.move.id === 'round') { @@ -16094,6 +16094,15 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { } } }, + condition: { + duration: 1, + onFieldStart() { + this.effectState.boost = false; + }, + onFieldRestart() { + this.effectState.boost = true; + }, + }, secondary: null, target: "normal", type: "Normal", diff --git a/sim/battle.ts b/sim/battle.ts index ffd8a7cfb1..2c39c8a184 100644 --- a/sim/battle.ts +++ b/sim/battle.ts @@ -172,8 +172,6 @@ export class Battle { lastDamage: number; effectOrder: number; quickClawRoll: boolean; - /** number of times Round has been used this turn */ - roundCount: number; speedOrder: number[]; teamGenerator: ReturnType | null; @@ -262,7 +260,6 @@ export class Battle { this.lastDamage = 0; this.effectOrder = 0; this.quickClawRoll = false; - this.roundCount = 0; this.speedOrder = []; for (let i = 0; i < this.activePerHalf * 2; i++) { this.speedOrder.push(i); @@ -1580,7 +1577,6 @@ export class Battle { endTurn() { this.turn++; this.lastSuccessfulMoveThisTurn = null; - this.roundCount = 0; const dynamaxEnding: Pokemon[] = []; for (const pokemon of this.getAllActive()) { From d8ec9e07bbd1aab3c23e16c318bf66dc491158a6 Mon Sep 17 00:00:00 2001 From: andrebastosdias Date: Thu, 19 Mar 2026 21:08:58 +0000 Subject: [PATCH 15/15] The condition doesn't need a Start event --- data/moves.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/data/moves.ts b/data/moves.ts index 2f9bf1734a..53b5f455ba 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -16101,9 +16101,6 @@ export const Moves: import('../sim/dex-moves').MoveDataTable = { }, condition: { duration: 1, - onFieldStart() { - this.effectState.boost = false; - }, onFieldRestart() { this.effectState.boost = true; },