From 3be9b0fdb1fb1f6e62a8dcd662c7eb1251536e82 Mon Sep 17 00:00:00 2001 From: xsn34kzx Date: Fri, 23 Aug 2024 00:50:56 -0400 Subject: [PATCH] Address Initial NITs --- src/data/ability.ts | 14 +++++------ src/test/abilities/beast_boost.test.ts | 17 +++++++------- src/test/abilities/contrary.test.ts | 11 +++++---- src/test/abilities/imposter.test.ts | 15 ++++++------ src/test/abilities/simple.test.ts | 11 +++++---- .../items/temp_stat_stage_booster.test.ts | 23 +++++++++++-------- src/test/moves/guard_split.test.ts | 13 ++++++----- src/test/moves/guard_swap.test.ts | 15 ++++++------ src/test/moves/power_split.test.ts | 13 ++++++----- src/test/moves/power_swap.test.ts | 15 ++++++------ src/test/moves/speed_swap.test.ts | 15 ++++++------ src/test/moves/transform.test.ts | 15 ++++++------ 12 files changed, 95 insertions(+), 82 deletions(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index d39f272a22e..50bce34be75 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -124,7 +124,7 @@ type AbAttrCondition = (pokemon: Pokemon) => boolean; type PokemonAttackCondition = (user: Pokemon | null, target: Pokemon | null, move: Move) => boolean; type PokemonDefendCondition = (target: Pokemon, user: Pokemon, move: Move) => boolean; -type PokemonStatStageChangeCondition = (target: Pokemon, statsChanged: BattleStat[], stages: integer) => boolean; +type PokemonStatStageChangeCondition = (target: Pokemon, statsChanged: BattleStat[], stages: number) => boolean; export abstract class AbAttr { public showAbility: boolean; @@ -206,7 +206,7 @@ export class PostBattleInitStatStageChangeAbAttr extends PostBattleInitAbAttr { private stages: number; private selfTarget: boolean; - constructor(stats: BattleStat[], stages: integer, selfTarget?: boolean) { + constructor(stats: BattleStat[], stages: number, selfTarget?: boolean) { super(); this.stats = stats; @@ -542,7 +542,7 @@ export class FieldPriorityMoveImmunityAbAttr extends PreDefendAbAttr { } export class PostStatStageChangeAbAttr extends AbAttr { - applyPostStatStageChange(pokemon: Pokemon, simulated: boolean, statsChanged: BattleStat[], levelChanged: integer, selfTarget: boolean, args: any[]): boolean | Promise { + applyPostStatStageChange(pokemon: Pokemon, simulated: boolean, statsStagesChanged: BattleStat[], levelChanged: integer, selfTarget: boolean, args: any[]): boolean | Promise { return false; } } @@ -868,7 +868,7 @@ export class PostDefendContactApplyTagChanceAbAttr extends PostDefendAbAttr { export class PostDefendCritStatStageChangeAbAttr extends PostDefendAbAttr { private stat: BattleStat; - private stages: integer; + private stages: number; constructor(stat: BattleStat, stages: number) { super(); @@ -1079,8 +1079,8 @@ export class PostStatStageChangeStatStageChangeAbAttr extends PostStatStageChang this.stages = stages; } - applyPostStatStageChange(pokemon: Pokemon, simulated: boolean, statsChanged: BattleStat[], stagesChanged: integer, selfTarget: boolean, args: any[]): boolean { - if (this.condition(pokemon, statsChanged, stagesChanged) && !selfTarget) { + applyPostStatStageChange(pokemon: Pokemon, simulated: boolean, statStagesChanged: BattleStat[], stagesChanged: number, selfTarget: boolean, args: any[]): boolean { + if (this.condition(pokemon, statStagesChanged, stagesChanged) && !selfTarget) { if (!simulated) { pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, (pokemon).getBattlerIndex(), true, this.statsToChange, this.stages)); } @@ -3570,7 +3570,7 @@ export class StatStageChangeMultiplierAbAttr extends AbAttr { export class StatStageChangeCopyAbAttr extends AbAttr { apply(pokemon: Pokemon, passive: boolean, simulated: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise { if (!simulated) { - pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, (args[0] as BattleStat[]), (args[1] as integer), true, false, false)); + pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, (args[0] as BattleStat[]), (args[1] as number), true, false, false)); } return true; } diff --git a/src/test/abilities/beast_boost.test.ts b/src/test/abilities/beast_boost.test.ts index b781a48267a..3136900a66b 100644 --- a/src/test/abilities/beast_boost.test.ts +++ b/src/test/abilities/beast_boost.test.ts @@ -27,16 +27,17 @@ describe("Abilities - Beast Boost", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.BULBASAUR); - game.override.enemyAbility(Abilities.BEAST_BOOST); - game.override.ability(Abilities.BEAST_BOOST); - game.override.startingLevel(2000); - game.override.moveset([ Moves.FLAMETHROWER ]); - game.override.enemyMoveset(SPLASH_ONLY); + game.override + .battleType("single") + .enemySpecies(Species.BULBASAUR) + .enemyAbility(Abilities.BEAST_BOOST) + .ability(Abilities.BEAST_BOOST) + .startingLevel(2000) + .moveset([ Moves.FLAMETHROWER ]) + .enemyMoveset(SPLASH_ONLY); }); - // Note that both MOXIE and BEAST_BOOST test for their current implementation and not the mainline behavior. + // Note that both MOXIE and BEAST_BOOST test for their current implementation and not their mainline behavior. it("should prefer highest stat to boost its corresponding stat stage by 1 when winning a battle", async() => { // SLOWBRO's highest stat is DEF, so it should be picked here await game.startBattle([ diff --git a/src/test/abilities/contrary.test.ts b/src/test/abilities/contrary.test.ts index 75085874fb6..19ecc7e0240 100644 --- a/src/test/abilities/contrary.test.ts +++ b/src/test/abilities/contrary.test.ts @@ -22,11 +22,12 @@ describe("Abilities - Contrary", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.BULBASAUR); - game.override.enemyAbility(Abilities.CONTRARY); - game.override.ability(Abilities.INTIMIDATE); - game.override.enemyMoveset(SPLASH_ONLY); + game.override + .battleType("single") + .enemySpecies(Species.BULBASAUR) + .enemyAbility(Abilities.CONTRARY) + .ability(Abilities.INTIMIDATE) + .enemyMoveset(SPLASH_ONLY); }); it("should invert stat changes when applied", async() => { diff --git a/src/test/abilities/imposter.test.ts b/src/test/abilities/imposter.test.ts index a37a76e3b54..9daf798ac36 100644 --- a/src/test/abilities/imposter.test.ts +++ b/src/test/abilities/imposter.test.ts @@ -24,13 +24,14 @@ describe("Abilities - Imposter", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.MEW); - game.override.enemyLevel(200); - game.override.enemyAbility(Abilities.BEAST_BOOST); - game.override.enemyMoveset(SPLASH_ONLY); - game.override.ability(Abilities.IMPOSTER); - game.override.moveset([ Moves.TACKLE ]); + game.override + .battleType("single") + .enemySpecies(Species.MEW) + .enemyLevel(200) + .enemyAbility(Abilities.BEAST_BOOST) + .enemyMoveset(SPLASH_ONLY) + .ability(Abilities.IMPOSTER) + .moveset([ Moves.TACKLE ]); }); it("should copy species, ability, gender, all stats except HP, all stat stages, moveset, and types of target", async () => { diff --git a/src/test/abilities/simple.test.ts b/src/test/abilities/simple.test.ts index 45d2cc34b39..4310c5d45d1 100644 --- a/src/test/abilities/simple.test.ts +++ b/src/test/abilities/simple.test.ts @@ -22,11 +22,12 @@ describe("Abilities - Simple", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.BULBASAUR); - game.override.enemyAbility(Abilities.SIMPLE); - game.override.ability(Abilities.INTIMIDATE); - game.override.enemyMoveset(SPLASH_ONLY); + game.override + .battleType("single") + .enemySpecies(Species.BULBASAUR) + .enemyAbility(Abilities.SIMPLE) + .ability(Abilities.INTIMIDATE) + .enemyMoveset(SPLASH_ONLY); }); it("should double stat changes when applied", async() => { diff --git a/src/test/items/temp_stat_stage_booster.test.ts b/src/test/items/temp_stat_stage_booster.test.ts index bb976dcf828..93aa3bca99a 100644 --- a/src/test/items/temp_stat_stage_booster.test.ts +++ b/src/test/items/temp_stat_stage_booster.test.ts @@ -35,12 +35,13 @@ describe("Items - Temporary Stat Stage Boosters", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.SHUCKLE); - game.override.enemyMoveset(SPLASH_ONLY); - game.override.enemyAbility(Abilities.BALL_FETCH); - game.override.moveset([ Moves.TACKLE, Moves.SPLASH, Moves.HONE_CLAWS, Moves.BELLY_DRUM ]); - game.override.startingModifier([{ name: "TEMP_STAT_STAGE_BOOSTER", type: Stat.ATK }]); + game.override + .battleType("single") + .enemySpecies(Species.SHUCKLE) + .enemyMoveset(SPLASH_ONLY) + .enemyAbility(Abilities.BALL_FETCH) + .moveset([ Moves.TACKLE, Moves.SPLASH, Moves.HONE_CLAWS, Moves.BELLY_DRUM ]) + .startingModifier([{ name: "TEMP_STAT_STAGE_BOOSTER", type: Stat.ATK }]); }); it("should provide a x1.3 stat stage multiplier", async() => { @@ -60,8 +61,9 @@ describe("Items - Temporary Stat Stage Boosters", () => { }, 20000); it("should increase existing ACC stat stage by 1 for X_ACCURACY only", async() => { - game.override.startingModifier([{ name: "TEMP_STAT_STAGE_BOOSTER", type: Stat.ACC }]); - game.override.ability(Abilities.SIMPLE); + game.override + .startingModifier([{ name: "TEMP_STAT_STAGE_BOOSTER", type: Stat.ACC }]) + .ability(Abilities.SIMPLE); await game.startBattle([ Species.PIKACHU @@ -131,8 +133,9 @@ describe("Items - Temporary Stat Stage Boosters", () => { }, 20000); it("should renew how many battles are left of existing booster when picking up new booster of same type", async() => { - game.override.startingLevel(200); - game.override.itemRewards([{ name: "TEMP_STAT_STAGE_BOOSTER", type: Stat.ATK }]); + game.override + .startingLevel(200) + .itemRewards([{ name: "TEMP_STAT_STAGE_BOOSTER", type: Stat.ATK }]); await game.startBattle([ Species.PIKACHU diff --git a/src/test/moves/guard_split.test.ts b/src/test/moves/guard_split.test.ts index ec6d9fd5bea..f95d09f726c 100644 --- a/src/test/moves/guard_split.test.ts +++ b/src/test/moves/guard_split.test.ts @@ -24,12 +24,13 @@ describe("Moves - Guard Split", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemyAbility(Abilities.NONE); - game.override.enemySpecies(Species.MEW); - game.override.enemyLevel(200); - game.override.moveset([ Moves.GUARD_SPLIT ]); - game.override.ability(Abilities.NONE); + game.override + .battleType("single") + .enemyAbility(Abilities.NONE) + .enemySpecies(Species.MEW) + .enemyLevel(200) + .moveset([ Moves.GUARD_SPLIT ]) + .ability(Abilities.NONE); }); it("should average the user's DEF and SPDEF stats with those of the target", async () => { diff --git a/src/test/moves/guard_swap.test.ts b/src/test/moves/guard_swap.test.ts index ec49505d048..1f4cafa92de 100644 --- a/src/test/moves/guard_swap.test.ts +++ b/src/test/moves/guard_swap.test.ts @@ -24,13 +24,14 @@ describe("Moves - Guard Swap", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemyAbility(Abilities.BALL_FETCH); - game.override.enemyMoveset(new Array(4).fill(Moves.SHELL_SMASH)); - game.override.enemySpecies(Species.MEW); - game.override.enemyLevel(200); - game.override.moveset([ Moves.GUARD_SWAP ]); - game.override.ability(Abilities.NONE); + game.override + .battleType("single") + .enemyAbility(Abilities.BALL_FETCH) + .enemyMoveset(new Array(4).fill(Moves.SHELL_SMASH)) + .enemySpecies(Species.MEW) + .enemyLevel(200) + .moveset([ Moves.GUARD_SWAP ]) + .ability(Abilities.NONE); }); it("should swap the user's DEF AND SPDEF stat stages with the target's", async () => { diff --git a/src/test/moves/power_split.test.ts b/src/test/moves/power_split.test.ts index 85c2a5f6ba3..a532a90a54d 100644 --- a/src/test/moves/power_split.test.ts +++ b/src/test/moves/power_split.test.ts @@ -24,12 +24,13 @@ describe("Moves - Power Split", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemyAbility(Abilities.NONE); - game.override.enemySpecies(Species.MEW); - game.override.enemyLevel(200); - game.override.moveset([ Moves.POWER_SPLIT ]); - game.override.ability(Abilities.NONE); + game.override + .battleType("single") + .enemyAbility(Abilities.NONE) + .enemySpecies(Species.MEW) + .enemyLevel(200) + .moveset([ Moves.POWER_SPLIT ]) + .ability(Abilities.NONE); }); it("should average the user's ATK and SPATK stats with those of the target", async () => { diff --git a/src/test/moves/power_swap.test.ts b/src/test/moves/power_swap.test.ts index f4b5a364e74..be559143eb0 100644 --- a/src/test/moves/power_swap.test.ts +++ b/src/test/moves/power_swap.test.ts @@ -24,13 +24,14 @@ describe("Moves - Power Swap", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemyAbility(Abilities.BALL_FETCH); - game.override.enemyMoveset(new Array(4).fill(Moves.SHELL_SMASH)); - game.override.enemySpecies(Species.MEW); - game.override.enemyLevel(200); - game.override.moveset([ Moves.POWER_SWAP ]); - game.override.ability(Abilities.NONE); + game.override + .battleType("single") + .enemyAbility(Abilities.BALL_FETCH) + .enemyMoveset(new Array(4).fill(Moves.SHELL_SMASH)) + .enemySpecies(Species.MEW) + .enemyLevel(200) + .moveset([ Moves.POWER_SWAP ]) + .ability(Abilities.NONE); }); it("should swap the user's ATK AND SPATK stat stages with the target's", async () => { diff --git a/src/test/moves/speed_swap.test.ts b/src/test/moves/speed_swap.test.ts index a67b75c52bf..131d506792b 100644 --- a/src/test/moves/speed_swap.test.ts +++ b/src/test/moves/speed_swap.test.ts @@ -24,13 +24,14 @@ describe("Moves - Speed Swap", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemyAbility(Abilities.NONE); - game.override.enemyMoveset(SPLASH_ONLY); - game.override.enemySpecies(Species.MEW); - game.override.enemyLevel(200); - game.override.moveset([ Moves.SPEED_SWAP ]); - game.override.ability(Abilities.NONE); + game.override + .battleType("single") + .enemyAbility(Abilities.NONE) + .enemyMoveset(SPLASH_ONLY) + .enemySpecies(Species.MEW) + .enemyLevel(200) + .moveset([ Moves.SPEED_SWAP ]) + .ability(Abilities.NONE); }); it("should swap the user's SPD and the target's SPD stats", async () => { diff --git a/src/test/moves/transform.test.ts b/src/test/moves/transform.test.ts index 312997fdb49..acada9a9913 100644 --- a/src/test/moves/transform.test.ts +++ b/src/test/moves/transform.test.ts @@ -24,13 +24,14 @@ describe("Moves - Transform", () => { beforeEach(() => { game = new GameManager(phaserGame); - game.override.battleType("single"); - game.override.enemySpecies(Species.MEW); - game.override.enemyLevel(200); - game.override.enemyAbility(Abilities.BEAST_BOOST); - game.override.enemyMoveset(SPLASH_ONLY); - game.override.ability(Abilities.INTIMIDATE); - game.override.moveset([ Moves.TRANSFORM ]); + game.override + .battleType("single") + .enemySpecies(Species.MEW) + .enemyLevel(200) + .enemyAbility(Abilities.BEAST_BOOST) + .enemyMoveset(SPLASH_ONLY) + .ability(Abilities.INTIMIDATE) + .moveset([ Moves.TRANSFORM ]); }); it("should copy species, ability, gender, all stats except HP, all stat stages, moveset, and types of target", async () => {