mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-20 07:12:32 +02:00
Fixes based on Kev's suggestions
This commit is contained in:
parent
49011c4e5e
commit
3dfeabe46a
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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");
|
||||
|
@ -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();
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user