[Dev] Enable Biome checking of pokemon.ts (#5720)

* [Dev] Enable biome parsing of `pokemon.ts`

* Apply unsafe fixes

* Add + apply rule disallowing the use of the `integer` type alias

* Fix typo in comment; remove unnecessary `!!`

* Re-apply Biome after merge

* Re-apply Biome "unsafe" fixes after merge

* Fix import

* Add comment to `getFusionIconAtlasKey` too
This commit is contained in:
NightKev 2025-05-27 07:50:54 -07:00 committed by GitHub
parent 65a90a3a8d
commit 68dddbc424
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 891 additions and 1946 deletions

View File

@ -32,7 +32,6 @@
// TODO: these files are too big and complex, ignore them until their respective refactors // TODO: these files are too big and complex, ignore them until their respective refactors
"src/data/moves/move.ts", "src/data/moves/move.ts",
"src/data/abilities/ability.ts", "src/data/abilities/ability.ts",
"src/field/pokemon.ts",
// this file is just too big: // this file is just too big:
"src/data/balance/tms.ts" "src/data/balance/tms.ts"
@ -92,6 +91,19 @@
"noUselessSwitchCase": "off", // Explicit > Implicit "noUselessSwitchCase": "off", // Explicit > Implicit
"noUselessConstructor": "warn", // TODO: Refactor and make this an error "noUselessConstructor": "warn", // TODO: Refactor and make this an error
"noBannedTypes": "warn" // TODO: Refactor and make this an error "noBannedTypes": "warn" // TODO: Refactor and make this an error
},
"nursery": {
"noRestrictedTypes": {
"level": "error",
"options": {
"types": {
"integer": {
"message": "This is an alias for 'number' that can provide false impressions of what values can actually be contained in this variable. Use 'number' instead.",
"use": "number"
}
}
}
}
} }
} }
}, },

View File

@ -3,7 +3,7 @@ import {
transitionMysteryEncounterIntroVisuals, transitionMysteryEncounterIntroVisuals,
updatePlayerMoney, updatePlayerMoney,
} from "#app/data/mystery-encounters/utils/encounter-phase-utils"; } from "#app/data/mystery-encounters/utils/encounter-phase-utils";
import { isNullOrUndefined, NumberHolder, randSeedInt, randSeedItem } from "#app/utils/common"; import { isNullOrUndefined, randSeedInt, randSeedItem } from "#app/utils/common";
import { MysteryEncounterType } from "#enums/mystery-encounter-type"; import { MysteryEncounterType } from "#enums/mystery-encounter-type";
import { globalScene } from "#app/global-scene"; import { globalScene } from "#app/global-scene";
import type MysteryEncounter from "#app/data/mystery-encounters/mystery-encounter"; import type MysteryEncounter from "#app/data/mystery-encounters/mystery-encounter";
@ -88,7 +88,7 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = MysteryEncounterBui
const r = randSeedInt(SHINY_MAGIKARP_WEIGHT); const r = randSeedInt(SHINY_MAGIKARP_WEIGHT);
let validEventEncounters = timedEventManager const validEventEncounters = timedEventManager
.getEventEncounters() .getEventEncounters()
.filter( .filter(
s => s =>
@ -111,22 +111,26 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = MysteryEncounterBui
if ( if (
r === 0 || r === 0 ||
((isNullOrUndefined(species.abilityHidden) || species.abilityHidden === Abilities.NONE) && ((isNullOrUndefined(species.abilityHidden) || species.abilityHidden === Abilities.NONE) &&
(validEventEncounters.length === 0)) validEventEncounters.length === 0)
) { ) {
// If you roll 1%, give shiny Magikarp with random variant // If you roll 1%, give shiny Magikarp with random variant
species = getPokemonSpecies(Species.MAGIKARP); species = getPokemonSpecies(Species.MAGIKARP);
pokemon = new PlayerPokemon(species, 5, 2, undefined, undefined, true); pokemon = new PlayerPokemon(species, 5, 2, undefined, undefined, true);
} } else if (
else if ( validEventEncounters.length > 0 &&
(validEventEncounters.length > 0 && (r <= EVENT_THRESHOLD || (r <= EVENT_THRESHOLD || isNullOrUndefined(species.abilityHidden) || species.abilityHidden === Abilities.NONE)
(isNullOrUndefined(species.abilityHidden) || species.abilityHidden === Abilities.NONE)))
) { ) {
tries = 0; tries = 0;
do { do {
// If you roll 20%, give event encounter with 3 extra shiny rolls and its HA, if it has one // If you roll 20%, give event encounter with 3 extra shiny rolls and its HA, if it has one
const enc = randSeedItem(validEventEncounters); const enc = randSeedItem(validEventEncounters);
species = getPokemonSpecies(enc.species); species = getPokemonSpecies(enc.species);
pokemon = new PlayerPokemon(species, 5, species.abilityHidden === Abilities.NONE ? undefined : 2, enc.formIndex); pokemon = new PlayerPokemon(
species,
5,
species.abilityHidden === Abilities.NONE ? undefined : 2,
enc.formIndex,
);
pokemon.trySetShinySeed(); pokemon.trySetShinySeed();
pokemon.trySetShinySeed(); pokemon.trySetShinySeed();
pokemon.trySetShinySeed(); pokemon.trySetShinySeed();
@ -145,15 +149,13 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = MysteryEncounterBui
pokemon.trySetShinySeed(); pokemon.trySetShinySeed();
pokemon.trySetShinySeed(); pokemon.trySetShinySeed();
pokemon.trySetShinySeed(); pokemon.trySetShinySeed();
} } else {
else {
// If there's, and this would never happen, no eligible event encounters with a hidden ability, just do Magikarp // If there's, and this would never happen, no eligible event encounters with a hidden ability, just do Magikarp
species = getPokemonSpecies(Species.MAGIKARP); species = getPokemonSpecies(Species.MAGIKARP);
pokemon = new PlayerPokemon(species, 5, 2, undefined, undefined, true); pokemon = new PlayerPokemon(species, 5, 2, undefined, undefined, true);
} }
} }
} } else {
else {
pokemon = new PlayerPokemon(species, 5, 2, species.formIndex); pokemon = new PlayerPokemon(species, 5, 2, species.formIndex);
} }
pokemon.generateAndPopulateMoveset(); pokemon.generateAndPopulateMoveset();

View File

@ -224,16 +224,16 @@ export const trainerPartyTemplates = {
*/ */
export function getEvilGruntPartyTemplate(): TrainerPartyTemplate { export function getEvilGruntPartyTemplate(): TrainerPartyTemplate {
const waveIndex = globalScene.currentBattle?.waveIndex; const waveIndex = globalScene.currentBattle?.waveIndex;
if (waveIndex <= ClassicFixedBossWaves.EVIL_GRUNT_1){ if (waveIndex <= ClassicFixedBossWaves.EVIL_GRUNT_1) {
return trainerPartyTemplates.TWO_AVG; return trainerPartyTemplates.TWO_AVG;
} }
if (waveIndex <= ClassicFixedBossWaves.EVIL_GRUNT_2){ if (waveIndex <= ClassicFixedBossWaves.EVIL_GRUNT_2) {
return trainerPartyTemplates.THREE_AVG; return trainerPartyTemplates.THREE_AVG;
} }
if (waveIndex <= ClassicFixedBossWaves.EVIL_GRUNT_3){ if (waveIndex <= ClassicFixedBossWaves.EVIL_GRUNT_3) {
return trainerPartyTemplates.TWO_AVG_ONE_STRONG; return trainerPartyTemplates.TWO_AVG_ONE_STRONG;
} }
if (waveIndex <= ClassicFixedBossWaves.EVIL_ADMIN_1){ if (waveIndex <= ClassicFixedBossWaves.EVIL_ADMIN_1) {
return trainerPartyTemplates.GYM_LEADER_4; // 3avg 1 strong 1 stronger return trainerPartyTemplates.GYM_LEADER_4; // 3avg 1 strong 1 stronger
} }
return trainerPartyTemplates.GYM_LEADER_5; // 3 avg 2 strong 1 stronger return trainerPartyTemplates.GYM_LEADER_5; // 3 avg 2 strong 1 stronger
@ -251,7 +251,7 @@ export function getGymLeaderPartyTemplate() {
switch (gameMode.modeId) { switch (gameMode.modeId) {
case GameModes.DAILY: case GameModes.DAILY:
if (currentBattle?.waveIndex <= 20) { if (currentBattle?.waveIndex <= 20) {
return trainerPartyTemplates.GYM_LEADER_2 return trainerPartyTemplates.GYM_LEADER_2;
} }
return trainerPartyTemplates.GYM_LEADER_3; return trainerPartyTemplates.GYM_LEADER_3;
case GameModes.CHALLENGE: // In the future, there may be a ChallengeType to call here. For now, use classic's. case GameModes.CHALLENGE: // In the future, there may be a ChallengeType to call here. For now, use classic's.
@ -259,13 +259,15 @@ export function getGymLeaderPartyTemplate() {
if (currentBattle?.waveIndex <= 20) { if (currentBattle?.waveIndex <= 20) {
return trainerPartyTemplates.GYM_LEADER_1; // 1 avg 1 strong return trainerPartyTemplates.GYM_LEADER_1; // 1 avg 1 strong
} }
else if (currentBattle?.waveIndex <= 30) { if (currentBattle?.waveIndex <= 30) {
return trainerPartyTemplates.GYM_LEADER_2; // 1 avg 1 strong 1 stronger return trainerPartyTemplates.GYM_LEADER_2; // 1 avg 1 strong 1 stronger
} }
else if (currentBattle?.waveIndex <= 60) { // 50 and 60 // 50 and 60
if (currentBattle?.waveIndex <= 60) {
return trainerPartyTemplates.GYM_LEADER_3; // 2 avg 1 strong 1 stronger return trainerPartyTemplates.GYM_LEADER_3; // 2 avg 1 strong 1 stronger
} }
else if (currentBattle?.waveIndex <= 90) { // 80 and 90 // 80 and 90
if (currentBattle?.waveIndex <= 90) {
return trainerPartyTemplates.GYM_LEADER_4; // 3 avg 1 strong 1 stronger return trainerPartyTemplates.GYM_LEADER_4; // 3 avg 1 strong 1 stronger
} }
// 110+ // 110+

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,7 @@ export class RevivalBlessingPhase extends BattlePhase {
UiMode.PARTY, UiMode.PARTY,
PartyUiMode.REVIVAL_BLESSING, PartyUiMode.REVIVAL_BLESSING,
this.user.getFieldIndex(), this.user.getFieldIndex(),
(slotIndex: integer, _option: PartyOption) => { (slotIndex: number, _option: PartyOption) => {
if (slotIndex >= 0 && slotIndex < 6) { if (slotIndex >= 0 && slotIndex < 6) {
const pokemon = globalScene.getPlayerParty()[slotIndex]; const pokemon = globalScene.getPlayerParty()[slotIndex];
if (!pokemon || !pokemon.isFainted()) { if (!pokemon || !pokemon.isFainted()) {