Fixes based on Kev's suggestions

This commit is contained in:
Christopher Schmidt 2025-03-06 18:55:13 -05:00
parent 49011c4e5e
commit 3dfeabe46a
8 changed files with 25 additions and 25 deletions

View File

@ -3063,7 +3063,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
* We explicitly require to ignore the faint phase here, as we want to show the messages
* about the critical hit and the super effective/not very effective messages before the faint phase.
*/
const damage = this.damageAndUpdate(isBlockedBySubstitute ? 0 : dmg, { result: result as DamageResult, critical: isCritical, ignoreSegments: false, ignoreFaintPhase: true, source: source });
const damage = this.damageAndUpdate(isBlockedBySubstitute ? 0 : dmg, { result: result as DamageResult, isCritical, ignoreFaintPhase: true, source });
if (damage > 0) {
if (source.isPlayer()) {
@ -3179,14 +3179,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
*/
damageAndUpdate(damage: number,
{
result = HitResult.EFFECTIVE, critical = false, ignoreSegments = false, ignoreFaintPhase = false, source = undefined,
result = HitResult.EFFECTIVE, isCritical = false, ignoreSegments = false, ignoreFaintPhase = false, source = undefined,
}:
{
result?: DamageResult, critical?: boolean, ignoreSegments?: boolean, ignoreFaintPhase?: boolean, source?: Pokemon,
}
result?: DamageResult, isCritical?: boolean, ignoreSegments?: boolean, ignoreFaintPhase?: boolean, source?: Pokemon,
} = {}
): number {
const isIndirectDamage = [ HitResult.INDIRECT, HitResult.INDIRECT_KO ].includes(result);
const damagePhase = new DamageAnimPhase(this.getBattlerIndex(), damage, result as DamageResult, critical);
const damagePhase = new DamageAnimPhase(this.getBattlerIndex(), damage, result as DamageResult, isCritical);
globalScene.unshiftPhase(damagePhase);
if (this.switchOutStatus && source) {
damage = 0;

View File

@ -259,7 +259,7 @@ describe("Abilities - Wimp Out", () => {
const wimpod = game.scene.getPlayerPokemon()!;
wimpod.damageAndUpdate(toDmgValue(wimpod.getMaxHp() * 0.4), {});
wimpod.damageAndUpdate(toDmgValue(wimpod.getMaxHp() * 0.4));
game.move.select(Moves.DOUBLE_EDGE);
game.doSelectPartyPokemon(1);

View File

@ -125,7 +125,7 @@ describe("Boss Pokemon / Shields", () => {
expect(boss1.bossSegmentIndex).toBe(4);
// Not enough damage to break through all shields
boss1.damageAndUpdate(Math.floor(requiredDamageBoss1 - 5), {});
boss1.damageAndUpdate(Math.floor(requiredDamageBoss1 - 5));
expect(boss1.bossSegmentIndex).toBe(1);
expect(boss1.hp).toBe(boss1.getMaxHp() - toDmgValue(boss1SegmentHp * 3));
@ -137,7 +137,7 @@ describe("Boss Pokemon / Shields", () => {
expect(boss2.bossSegments).toBe(5);
// Enough damage to break through all shields
boss2.damageAndUpdate(Math.ceil(requiredDamageBoss2), {});
boss2.damageAndUpdate(Math.ceil(requiredDamageBoss2));
expect(boss2.bossSegmentIndex).toBe(0);
expect(boss2.hp).toBe(boss2.getMaxHp() - toDmgValue(boss2SegmentHp * 4));
@ -165,7 +165,7 @@ describe("Boss Pokemon / Shields", () => {
// Break the shields one by one
for (let i = 1; i <= shieldsToBreak; i++) {
boss1.damageAndUpdate(singleShieldDamage, {});
boss1.damageAndUpdate(singleShieldDamage);
expect(boss1.bossSegmentIndex).toBe(shieldsToBreak - i);
expect(boss1.hp).toBe(boss1.getMaxHp() - toDmgValue(boss1SegmentHp * i));
// Do nothing and go to next turn so that the StatStageChangePhase gets applied
@ -186,7 +186,7 @@ describe("Boss Pokemon / Shields", () => {
expect(getTotalStatStageBoosts(boss2)).toBe(0);
// Enough damage to break all shields at once
boss2.damageAndUpdate(Math.ceil(requiredDamage), {});
boss2.damageAndUpdate(Math.ceil(requiredDamage));
expect(boss2.bossSegmentIndex).toBe(0);
expect(boss2.hp).toBe(boss2.getMaxHp() - toDmgValue(boss2SegmentHp * shieldsToBreak));
// Do nothing and go to next turn so that the StatStageChangePhase gets applied

View File

@ -55,7 +55,7 @@ describe("Items - Reviver Seed", () => {
.enemyMoveset(move);
await game.classicMode.startBattle([ Species.MAGIKARP, Species.FEEBAS ]);
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.hp - 1, {});
player.damageAndUpdate(player.hp - 1);
const reviverSeed = player.getHeldItems()[0] as PokemonInstantReviveModifier;
vi.spyOn(reviverSeed, "apply");
@ -73,7 +73,7 @@ describe("Items - Reviver Seed", () => {
.enemyMoveset(Moves.SPLASH);
await game.classicMode.startBattle([ Species.MAGIKARP, Species.FEEBAS ]);
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.hp - 1, {});
player.damageAndUpdate(player.hp - 1);
player.addTag(BattlerTagType.CONFUSED, 3);
const reviverSeed = player.getHeldItems()[0] as PokemonInstantReviveModifier;
@ -102,7 +102,7 @@ describe("Items - Reviver Seed", () => {
.enemyMoveset(Moves.ENDURE);
await game.classicMode.startBattle([ Species.MAGIKARP, Species.FEEBAS ]);
const enemy = game.scene.getEnemyPokemon()!;
enemy.damageAndUpdate(enemy.hp - 1, {});
enemy.damageAndUpdate(enemy.hp - 1);
game.move.select(move);
await game.phaseInterceptor.to("TurnEndPhase");
@ -126,7 +126,7 @@ describe("Items - Reviver Seed", () => {
.enemyMoveset(Moves.SPLASH);
await game.classicMode.startBattle([ Species.GASTLY, Species.FEEBAS ]);
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.hp - 1, {});
player.damageAndUpdate(player.hp - 1);
const playerSeed = player.getHeldItems()[0] as PokemonInstantReviveModifier;
vi.spyOn(playerSeed, "apply");
@ -147,7 +147,7 @@ describe("Items - Reviver Seed", () => {
.enemyMoveset(Moves.TACKLE);
await game.classicMode.startBattle([ Species.MAGIKARP, Species.FEEBAS ]);
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.hp - 1, {});
player.damageAndUpdate(player.hp - 1);
const enemy = game.scene.getEnemyPokemon()!;
game.move.select(Moves.DESTINY_BOND);

View File

@ -76,7 +76,7 @@ describe("Moves - Endure", () => {
.enemyMoveset(Moves.ENDURE);
await game.classicMode.startBattle([ Species.MAGIKARP, Species.FEEBAS ]);
const enemy = game.scene.getEnemyPokemon()!;
enemy.damageAndUpdate(enemy.hp - 1, {});
enemy.damageAndUpdate(enemy.hp - 1);
game.move.select(move);
await game.phaseInterceptor.to("TurnEndPhase");

View File

@ -52,7 +52,7 @@ describe("Moves - Fake Out", () => {
await game.classicMode.startBattle([ Species.FEEBAS ]);
const enemy = game.scene.getEnemyPokemon()!;
enemy.damageAndUpdate(enemy.getMaxHp() - 1, {});
enemy.damageAndUpdate(enemy.getMaxHp() - 1);
game.move.select(Moves.FAKE_OUT);
await game.toNextWave();

View File

@ -43,7 +43,7 @@ describe("Moves - Heal Block", () => {
const player = game.scene.getPlayerPokemon()!;
const enemy = game.scene.getEnemyPokemon()!;
player.damageAndUpdate(enemy.getMaxHp() - 1, {});
player.damageAndUpdate(enemy.getMaxHp() - 1);
game.move.select(Moves.ABSORB);
await game.setTurnOrder([ BattlerIndex.ENEMY, BattlerIndex.PLAYER ]);
@ -74,7 +74,7 @@ describe("Moves - Heal Block", () => {
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.getMaxHp() - 1, {});
player.damageAndUpdate(player.getMaxHp() - 1);
game.move.select(Moves.WISH);
await game.phaseInterceptor.to("TurnEndPhase");
@ -95,7 +95,7 @@ describe("Moves - Heal Block", () => {
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.getMaxHp() - 1, {});
player.damageAndUpdate(player.getMaxHp() - 1);
game.move.select(Moves.SPLASH);
await game.phaseInterceptor.to("TurnEndPhase");
@ -108,7 +108,7 @@ describe("Moves - Heal Block", () => {
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.getMaxHp() - 1, {});
player.damageAndUpdate(player.getMaxHp() - 1);
game.move.select(Moves.AQUA_RING);
await game.phaseInterceptor.to("TurnEndPhase");
@ -126,7 +126,7 @@ describe("Moves - Heal Block", () => {
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.getMaxHp() - 1, {});
player.damageAndUpdate(player.getMaxHp() - 1);
game.move.select(Moves.SPLASH);
await game.phaseInterceptor.to("TurnEndPhase");
@ -140,7 +140,7 @@ describe("Moves - Heal Block", () => {
await game.classicMode.startBattle([ Species.CHARIZARD ]);
const player = game.scene.getPlayerPokemon()!;
player.damageAndUpdate(player.getMaxHp() - 1, {});
player.damageAndUpdate(player.getMaxHp() - 1);
game.move.select(Moves.SPLASH);
await game.phaseInterceptor.to("TurnEndPhase");

View File

@ -121,7 +121,7 @@ describe("Moves - Safeguard", () => {
game.move.select(Moves.SPLASH);
await game.setTurnOrder([ BattlerIndex.ENEMY, BattlerIndex.PLAYER ]);
await game.toNextTurn();
enemyPokemon.damageAndUpdate(1, {});
enemyPokemon.damageAndUpdate(1);
expect(enemyPokemon.status?.effect).toEqual(StatusEffect.BURN);
@ -130,7 +130,7 @@ describe("Moves - Safeguard", () => {
// TODO: Remove after enemy AI rework is in
enemyPokemon.getMoveset();
game.move.select(Moves.SPLASH);
enemyPokemon.damageAndUpdate(1, {});
enemyPokemon.damageAndUpdate(1);
await game.toNextTurn();
expect(enemyPokemon.status?.effect).toEqual(StatusEffect.SLEEP);