mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-06 08:22:16 +02:00
Address Minor Manual NITs
This commit is contained in:
parent
2edb67b56d
commit
24338efe63
@ -2062,22 +2062,22 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
if (critOnly.value || critAlways) {
|
||||
isCritical = true;
|
||||
} else {
|
||||
const critLevel = new Utils.IntegerHolder(0);
|
||||
applyMoveAttrs(HighCritAttr, source, this, move, critLevel);
|
||||
this.scene.applyModifiers(CritBoosterModifier, source.isPlayer(), source, critLevel);
|
||||
this.scene.applyModifiers(TempCritBoosterModifier, source.isPlayer(), critLevel);
|
||||
const critStage = new Utils.IntegerHolder(0);
|
||||
applyMoveAttrs(HighCritAttr, source, this, move, critStage);
|
||||
this.scene.applyModifiers(CritBoosterModifier, source.isPlayer(), source, critStage);
|
||||
this.scene.applyModifiers(TempCritBoosterModifier, source.isPlayer(), critStage);
|
||||
const bonusCrit = new Utils.BooleanHolder(false);
|
||||
//@ts-ignore
|
||||
if (applyAbAttrs(BonusCritAbAttr, source, null, bonusCrit)) { // TODO: resolve ts-ignore. This is a promise. Checking a promise is bogus.
|
||||
if (bonusCrit.value) {
|
||||
critLevel.value += 1;
|
||||
critStage.value += 1;
|
||||
}
|
||||
}
|
||||
if (source.getTag(BattlerTagType.CRIT_BOOST)) {
|
||||
critLevel.value += 2;
|
||||
critStage.value += 2;
|
||||
}
|
||||
console.log(`crit stage: +${critLevel.value}`);
|
||||
const critChance = [24, 8, 2, 1][Math.max(0, Math.min(critLevel.value, 3))];
|
||||
console.log(`crit stage: +${critStage.value}`);
|
||||
const critChance = [24, 8, 2, 1][Math.max(0, Math.min(critStage.value, 3))];
|
||||
isCritical = critChance === 1 || !this.scene.randBattleSeedInt(critChance);
|
||||
if (Overrides.NEVER_CRIT_OVERRIDE) {
|
||||
isCritical = false;
|
||||
|
@ -58,16 +58,16 @@ describe("Items - Leek", () => {
|
||||
const partyMember = game.scene.getPlayerPokemon()!;
|
||||
|
||||
// Making sure modifier is not applied without holding item
|
||||
const critLevel = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
const critStage = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(0);
|
||||
expect(critStage.value).toBe(0);
|
||||
|
||||
// Giving Leek to party member and testing if it applies
|
||||
partyMember.scene.addModifier(modifierTypes.LEEK().newModifier(partyMember), true);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(2);
|
||||
expect(critStage.value).toBe(2);
|
||||
}, 20000);
|
||||
|
||||
it("LEEK held by GALAR_FARFETCHD", async() => {
|
||||
@ -78,16 +78,16 @@ describe("Items - Leek", () => {
|
||||
const partyMember = game.scene.getPlayerPokemon()!;
|
||||
|
||||
// Making sure modifier is not applied without holding item
|
||||
const critLevel = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
const critStage = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(0);
|
||||
expect(critStage.value).toBe(0);
|
||||
|
||||
// Giving Leek to party member and testing if it applies
|
||||
partyMember.scene.addModifier(modifierTypes.LEEK().newModifier(partyMember), true);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(2);
|
||||
expect(critStage.value).toBe(2);
|
||||
}, 20000);
|
||||
|
||||
it("LEEK held by SIRFETCHD", async() => {
|
||||
@ -98,16 +98,16 @@ describe("Items - Leek", () => {
|
||||
const partyMember = game.scene.getPlayerPokemon()!;
|
||||
|
||||
// Making sure modifier is not applied without holding item
|
||||
const critLevel = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
const critStage = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(0);
|
||||
expect(critStage.value).toBe(0);
|
||||
|
||||
// Giving Leek to party member and testing if it applies
|
||||
partyMember.scene.addModifier(modifierTypes.LEEK().newModifier(partyMember), true);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(2);
|
||||
expect(critStage.value).toBe(2);
|
||||
}, 20000);
|
||||
|
||||
it("LEEK held by fused FARFETCHD line (base)", async() => {
|
||||
@ -133,16 +133,16 @@ describe("Items - Leek", () => {
|
||||
partyMember.fusionLuck = ally.luck;
|
||||
|
||||
// Making sure modifier is not applied without holding item
|
||||
const critLevel = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
const critStage = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(0);
|
||||
expect(critStage.value).toBe(0);
|
||||
|
||||
// Giving Leek to party member and testing if it applies
|
||||
partyMember.scene.addModifier(modifierTypes.LEEK().newModifier(partyMember), true);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(2);
|
||||
expect(critStage.value).toBe(2);
|
||||
}, 20000);
|
||||
|
||||
it("LEEK held by fused FARFETCHD line (part)", async() => {
|
||||
@ -168,16 +168,16 @@ describe("Items - Leek", () => {
|
||||
partyMember.fusionLuck = ally.luck;
|
||||
|
||||
// Making sure modifier is not applied without holding item
|
||||
const critLevel = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
const critStage = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(0);
|
||||
expect(critStage.value).toBe(0);
|
||||
|
||||
// Giving Leek to party member and testing if it applies
|
||||
partyMember.scene.addModifier(modifierTypes.LEEK().newModifier(partyMember), true);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(2);
|
||||
expect(critStage.value).toBe(2);
|
||||
}, 20000);
|
||||
|
||||
it("LEEK not held by FARFETCHD line", async() => {
|
||||
@ -188,15 +188,15 @@ describe("Items - Leek", () => {
|
||||
const partyMember = game.scene.getPlayerPokemon()!;
|
||||
|
||||
// Making sure modifier is not applied without holding item
|
||||
const critLevel = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
const critStage = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(0);
|
||||
expect(critStage.value).toBe(0);
|
||||
|
||||
// Giving Leek to party member and testing if it applies
|
||||
partyMember.scene.addModifier(modifierTypes.LEEK().newModifier(partyMember), true);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(0);
|
||||
expect(critStage.value).toBe(0);
|
||||
}, 20000);
|
||||
});
|
||||
|
@ -58,15 +58,15 @@ describe("Items - Scope Lens", () => {
|
||||
const partyMember = game.scene.getPlayerPokemon()!;
|
||||
|
||||
// Making sure modifier is not applied without holding item
|
||||
const critLevel = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
const critStage = new Utils.IntegerHolder(0);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(0);
|
||||
expect(critStage.value).toBe(0);
|
||||
|
||||
// Giving Scope Lens to party member and testing if it applies
|
||||
partyMember.scene.addModifier(modifierTypes.SCOPE_LENS().newModifier(partyMember), true);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critLevel);
|
||||
partyMember.scene.applyModifiers(CritBoosterModifier, true, partyMember, critStage);
|
||||
|
||||
expect(critLevel.value).toBe(1);
|
||||
expect(critStage.value).toBe(1);
|
||||
}, 20000);
|
||||
});
|
||||
|
@ -40,7 +40,7 @@ describe("Moves - FILLET AWAY", () => {
|
||||
|
||||
//Bulbapedia Reference: https://bulbapedia.bulbagarden.net/wiki/fillet_away_(move)
|
||||
|
||||
test("Fillet Away raises the user's Attack, Special Attack, and Speed by two stages each, at the cost of 1/2 of its maximum HP",
|
||||
test("raises the user's ATK, SPATK, and SPD stat stages by 2 each, at the cost of 1/2 of its maximum HP",
|
||||
async() => {
|
||||
await game.startBattle([Species.MAGIKARP]);
|
||||
|
||||
@ -57,7 +57,7 @@ describe("Moves - FILLET AWAY", () => {
|
||||
}, TIMEOUT
|
||||
);
|
||||
|
||||
test("Fillet Away will still take effect if one or more of the involved stats are not at max",
|
||||
test("still takes effect if one or more of the involved stat stages are not at max",
|
||||
async() => {
|
||||
await game.startBattle([Species.MAGIKARP]);
|
||||
|
||||
@ -78,7 +78,7 @@ describe("Moves - FILLET AWAY", () => {
|
||||
}, TIMEOUT
|
||||
);
|
||||
|
||||
test("Fillet Away fails if all stats involved are at max",
|
||||
test("fails if all stat stages involved are at max",
|
||||
async() => {
|
||||
await game.startBattle([Species.MAGIKARP]);
|
||||
|
||||
@ -98,7 +98,7 @@ describe("Moves - FILLET AWAY", () => {
|
||||
}, TIMEOUT
|
||||
);
|
||||
|
||||
test("Fillet Away fails if the user's health is less than 1/2",
|
||||
test("fails if the user's health is less than 1/2",
|
||||
async() => {
|
||||
await game.startBattle([Species.MAGIKARP]);
|
||||
|
||||
|
@ -1,13 +1,12 @@
|
||||
import BattleScene from "../battle-scene";
|
||||
import { addBBCodeTextObject, addTextObject, getTextColor, TextStyle } from "./text";
|
||||
import { Mode } from "./ui";
|
||||
import * as Utils from "../utils";
|
||||
import MessageUiHandler from "./message-ui-handler";
|
||||
import { addWindow } from "./ui-theme";
|
||||
import BBCodeText from "phaser3-rex-plugins/plugins/bbcodetext";
|
||||
import {Button} from "#enums/buttons";
|
||||
import i18next from "i18next";
|
||||
import { Stat, getStatKey, PERMANENT_STATS } from "#app/enums/stat.js";
|
||||
import { Stat, PERMANENT_STATS, getStatKey } from "#app/enums/stat.js";
|
||||
|
||||
export default class BattleMessageUiHandler extends MessageUiHandler {
|
||||
private levelUpStatsContainer: Phaser.GameObjects.Container;
|
||||
@ -171,8 +170,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
|
||||
}
|
||||
const newStats = (this.scene as BattleScene).getParty()[partyMemberIndex].stats;
|
||||
let levelUpStatsValuesText = "";
|
||||
const stats = Utils.getEnumValues(Stat);
|
||||
for (const s of stats) {
|
||||
for (const s of PERMANENT_STATS) {
|
||||
levelUpStatsValuesText += `${showTotals ? newStats[s] : newStats[s] - prevStats[s]}\n`;
|
||||
}
|
||||
this.levelUpStatsValuesContent.text = levelUpStatsValuesText;
|
||||
@ -194,10 +192,9 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
|
||||
return new Promise(resolve => {
|
||||
this.scene.executeWithSeedOffset(() => {
|
||||
let levelUpStatsValuesText = "";
|
||||
const stats = Utils.getEnumValues(Stat);
|
||||
const shownStats = this.getTopIvs(ivs, shownIvsCount);
|
||||
for (const s of stats) {
|
||||
levelUpStatsValuesText += `${shownStats.indexOf(s) > -1 ? this.getIvDescriptor(ivs[s], s, pokemonId) : "???"}\n`;
|
||||
for (const s of PERMANENT_STATS) {
|
||||
levelUpStatsValuesText += `${shownStats.includes(s) ? this.getIvDescriptor(ivs[s], s, pokemonId) : "???"}\n`;
|
||||
}
|
||||
this.levelUpStatsValuesContent.text = levelUpStatsValuesText;
|
||||
this.levelUpStatsIncrContent.setVisible(false);
|
||||
@ -212,26 +209,17 @@ export default class BattleMessageUiHandler extends MessageUiHandler {
|
||||
}
|
||||
|
||||
getTopIvs(ivs: integer[], shownIvsCount: integer): Stat[] {
|
||||
const stats = Utils.getEnumValues(Stat);
|
||||
let shownStats: Stat[] = [];
|
||||
if (shownIvsCount < 6) {
|
||||
const statsPool = stats.slice(0);
|
||||
for (let i = 0; i < shownIvsCount; i++) {
|
||||
let shownStat: Stat | null = null;
|
||||
let highestIv = -1;
|
||||
statsPool.map(s => {
|
||||
if (ivs[s] > highestIv) {
|
||||
shownStat = s as Stat;
|
||||
highestIv = ivs[s];
|
||||
}
|
||||
});
|
||||
if (shownStat) {
|
||||
shownStats.push(shownStat);
|
||||
statsPool.splice(statsPool.indexOf(shownStat), 1);
|
||||
for (let i = 0; i < shownIvsCount; i++) {
|
||||
if (ivs[i] > highestIv) {
|
||||
shownStats.push(PERMANENT_STATS[i]);
|
||||
highestIv = ivs[i];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
shownStats = stats;
|
||||
shownStats = PERMANENT_STATS.slice();
|
||||
}
|
||||
return shownStats;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user