From 1ff45687c5259dfc109bf2bf96d64a61da78b22e Mon Sep 17 00:00:00 2001
From: Bertie690 <136088738+Bertie690@users.noreply.github.com>
Date: Sat, 7 Jun 2025 20:28:01 -0400
Subject: [PATCH 01/16] [Refactor] Merged `interfaces/` into `@types/`; removed
runtime orphan modules
https://github.com/pagefaultgames/pokerogue/pull/5951
---
src/@types/{DexData.ts => dex-data.ts} | 11 ++++------
.../held-modifier-config.ts | 0
src/{interfaces => @types}/locales.ts | 3 ---
.../typedefs.ts => @types/trainer-funcs.ts} | 4 ++--
src/battle-scene.ts | 4 ++--
src/data/abilities/ability-class.ts | 2 +-
src/data/egg-hatch-data.ts | 3 ++-
src/data/moves/move.ts | 2 +-
.../encounters/absolute-avarice-encounter.ts | 2 +-
.../encounters/training-session-encounter.ts | 2 +-
.../encounters/weird-dream-encounter.ts | 2 +-
.../utils/encounter-phase-utils.ts | 2 +-
src/data/pokemon-species.ts | 2 +-
src/data/trainers/evil-admin-trainer-pools.ts | 2 +-
src/data/trainers/trainer-config.ts | 2 +-
src/debug.js | 17 --------------
src/global-vars/starter-colors.ts | 5 ++---
src/starter-colors.ts | 4 ----
src/system/game-data.ts | 16 ++------------
src/system/session-history.ts | 22 -------------------
src/ui/pokedex-page-ui-handler.ts | 3 ++-
src/ui/pokedex-ui-handler.ts | 3 ++-
src/ui/pokemon-info-container.ts | 3 ++-
src/ui/starter-select-ui-handler.ts | 9 ++------
24 files changed, 31 insertions(+), 94 deletions(-)
rename src/@types/{DexData.ts => dex-data.ts} (82%)
rename src/{interfaces => @types}/held-modifier-config.ts (100%)
rename src/{interfaces => @types}/locales.ts (95%)
rename src/{data/trainers/typedefs.ts => @types/trainer-funcs.ts} (83%)
delete mode 100644 src/debug.js
delete mode 100644 src/starter-colors.ts
delete mode 100644 src/system/session-history.ts
diff --git a/src/@types/DexData.ts b/src/@types/dex-data.ts
similarity index 82%
rename from src/@types/DexData.ts
rename to src/@types/dex-data.ts
index 19bb0357471..88cc16886bd 100644
--- a/src/@types/DexData.ts
+++ b/src/@types/dex-data.ts
@@ -1,6 +1,7 @@
-/**
- * Dex entry for a single Pokemon Species
- */
+export interface DexData {
+ [key: number]: DexEntry;
+}
+
export interface DexEntry {
seenAttr: bigint;
caughtAttr: bigint;
@@ -10,7 +11,3 @@ export interface DexEntry {
hatchedCount: number;
ivs: number[];
}
-
-export interface DexData {
- [key: number]: DexEntry;
-}
diff --git a/src/interfaces/held-modifier-config.ts b/src/@types/held-modifier-config.ts
similarity index 100%
rename from src/interfaces/held-modifier-config.ts
rename to src/@types/held-modifier-config.ts
diff --git a/src/interfaces/locales.ts b/src/@types/locales.ts
similarity index 95%
rename from src/interfaces/locales.ts
rename to src/@types/locales.ts
index 2d26911f82f..3b5a1477e19 100644
--- a/src/interfaces/locales.ts
+++ b/src/@types/locales.ts
@@ -2,9 +2,6 @@ export interface Localizable {
localize(): void;
}
-export interface TranslationEntries {
- [key: string]: string | { [key: string]: string };
-}
export interface SimpleTranslationEntries {
[key: string]: string;
}
diff --git a/src/data/trainers/typedefs.ts b/src/@types/trainer-funcs.ts
similarity index 83%
rename from src/data/trainers/typedefs.ts
rename to src/@types/trainer-funcs.ts
index 3df2ba3f5f8..0546dd53024 100644
--- a/src/data/trainers/typedefs.ts
+++ b/src/@types/trainer-funcs.ts
@@ -2,8 +2,8 @@ import type { EnemyPokemon } from "#app/field/pokemon";
import type { PersistentModifier } from "#app/modifier/modifier";
import type { PartyMemberStrength } from "#enums/party-member-strength";
import type { SpeciesId } from "#enums/species-id";
-import type { TrainerConfig } from "./trainer-config";
-import type { TrainerPartyTemplate } from "./TrainerPartyTemplate";
+import type { TrainerConfig } from "../data/trainers/trainer-config";
+import type { TrainerPartyTemplate } from "../data/trainers/TrainerPartyTemplate";
export type PartyTemplateFunc = () => TrainerPartyTemplate;
export type PartyMemberFunc = (level: number, strength: PartyMemberStrength) => EnemyPokemon;
diff --git a/src/battle-scene.ts b/src/battle-scene.ts
index 9a46baba899..598ab64881a 100644
--- a/src/battle-scene.ts
+++ b/src/battle-scene.ts
@@ -120,7 +120,7 @@ import { SceneBase } from "#app/scene-base";
import CandyBar from "#app/ui/candy-bar";
import type { Variant } from "#app/sprites/variant";
import { variantData, clearVariantData } from "#app/sprites/variant";
-import type { Localizable } from "#app/interfaces/locales";
+import type { Localizable } from "#app/@types/locales";
import Overrides from "#app/overrides";
import { InputsController } from "#app/inputs-controller";
import { UiInputs } from "#app/ui-inputs";
@@ -169,7 +169,7 @@ import {
import { MysteryEncounterSaveData } from "#app/data/mystery-encounters/mystery-encounter-save-data";
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
-import type HeldModifierConfig from "#app/interfaces/held-modifier-config";
+import type HeldModifierConfig from "#app/@types/held-modifier-config";
import { ExpPhase } from "#app/phases/exp-phase";
import { ShowPartyExpBarPhase } from "#app/phases/show-party-exp-bar-phase";
import { MysteryEncounterMode } from "#enums/mystery-encounter-mode";
diff --git a/src/data/abilities/ability-class.ts b/src/data/abilities/ability-class.ts
index 9da83a32c4d..10bd01f3987 100644
--- a/src/data/abilities/ability-class.ts
+++ b/src/data/abilities/ability-class.ts
@@ -2,7 +2,7 @@ import { AbilityId } from "#enums/ability-id";
import type { AbAttrCondition } from "#app/@types/ability-types";
import type { AbAttr } from "#app/data/abilities/ab-attrs/ab-attr";
import i18next from "i18next";
-import type { Localizable } from "#app/interfaces/locales";
+import type { Localizable } from "#app/@types/locales";
import type { Constructor } from "#app/utils/common";
export class Ability implements Localizable {
diff --git a/src/data/egg-hatch-data.ts b/src/data/egg-hatch-data.ts
index 949ed1af063..e81ae69515c 100644
--- a/src/data/egg-hatch-data.ts
+++ b/src/data/egg-hatch-data.ts
@@ -1,6 +1,7 @@
import { globalScene } from "#app/global-scene";
import type { PlayerPokemon } from "#app/field/pokemon";
-import type { DexEntry, StarterDataEntry } from "#app/system/game-data";
+import type { StarterDataEntry } from "#app/system/game-data";
+import type { DexEntry } from "#app/@types/dex-data";
/**
* Stores data associated with a specific egg and the hatched pokemon
diff --git a/src/data/moves/move.ts b/src/data/moves/move.ts
index e98b28e2a48..1bd6db97005 100644
--- a/src/data/moves/move.ts
+++ b/src/data/moves/move.ts
@@ -81,7 +81,7 @@ import { TerrainType } from "../terrain";
import { ModifierPoolType } from "#app/modifier/modifier-type";
import { Command } from "../../ui/command-ui-handler";
import i18next from "i18next";
-import type { Localizable } from "#app/interfaces/locales";
+import type { Localizable } from "#app/@types/locales";
import { getBerryEffectFunc } from "../berry";
import { AbilityId } from "#enums/ability-id";
import { ArenaTagType } from "#enums/arena-tag-type";
diff --git a/src/data/mystery-encounters/encounters/absolute-avarice-encounter.ts b/src/data/mystery-encounters/encounters/absolute-avarice-encounter.ts
index f46e1360b0d..b14caa4e2c3 100644
--- a/src/data/mystery-encounters/encounters/absolute-avarice-encounter.ts
+++ b/src/data/mystery-encounters/encounters/absolute-avarice-encounter.ts
@@ -33,7 +33,7 @@ import {
} from "#app/data/mystery-encounters/utils/encounter-pokemon-utils";
import { TrainerSlot } from "#enums/trainer-slot";
import { PokeballType } from "#enums/pokeball";
-import type HeldModifierConfig from "#app/interfaces/held-modifier-config";
+import type HeldModifierConfig from "#app/@types/held-modifier-config";
import type { BerryType } from "#enums/berry-type";
import { StatStageChangePhase } from "#app/phases/stat-stage-change-phase";
import { Stat } from "#enums/stat";
diff --git a/src/data/mystery-encounters/encounters/training-session-encounter.ts b/src/data/mystery-encounters/encounters/training-session-encounter.ts
index 597a6b009b3..b17a39ae694 100644
--- a/src/data/mystery-encounters/encounters/training-session-encounter.ts
+++ b/src/data/mystery-encounters/encounters/training-session-encounter.ts
@@ -25,7 +25,7 @@ import { MysteryEncounterOptionBuilder } from "#app/data/mystery-encounters/myst
import { queueEncounterMessage, showEncounterText } from "#app/data/mystery-encounters/utils/encounter-dialogue-utils";
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode";
-import type HeldModifierConfig from "#app/interfaces/held-modifier-config";
+import type HeldModifierConfig from "#app/@types/held-modifier-config";
import i18next from "i18next";
import { getStatKey } from "#enums/stat";
import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants";
diff --git a/src/data/mystery-encounters/encounters/weird-dream-encounter.ts b/src/data/mystery-encounters/encounters/weird-dream-encounter.ts
index 25be75b9d5a..2b1f775b78e 100644
--- a/src/data/mystery-encounters/encounters/weird-dream-encounter.ts
+++ b/src/data/mystery-encounters/encounters/weird-dream-encounter.ts
@@ -39,7 +39,7 @@ import { PlayerGender } from "#enums/player-gender";
import { TrainerType } from "#enums/trainer-type";
import PokemonData from "#app/system/pokemon-data";
import { Nature } from "#enums/nature";
-import type HeldModifierConfig from "#app/interfaces/held-modifier-config";
+import type HeldModifierConfig from "#app/@types/held-modifier-config";
import { trainerConfigs } from "#app/data/trainers/trainer-config";
import { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
import { PartyMemberStrength } from "#enums/party-member-strength";
diff --git a/src/data/mystery-encounters/utils/encounter-phase-utils.ts b/src/data/mystery-encounters/utils/encounter-phase-utils.ts
index c9eaa2e6968..5736835d98a 100644
--- a/src/data/mystery-encounters/utils/encounter-phase-utils.ts
+++ b/src/data/mystery-encounters/utils/encounter-phase-utils.ts
@@ -50,7 +50,7 @@ import type PokemonSpecies from "#app/data/pokemon-species";
import type { IEggOptions } from "#app/data/egg";
import { Egg } from "#app/data/egg";
import type { CustomPokemonData } from "#app/data/custom-pokemon-data";
-import type HeldModifierConfig from "#app/interfaces/held-modifier-config";
+import type HeldModifierConfig from "#app/@types/held-modifier-config";
import { MovePhase } from "#app/phases/move-phase";
import { EggLapsePhase } from "#app/phases/egg-lapse-phase";
import { TrainerVictoryPhase } from "#app/phases/trainer-victory-phase";
diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts
index df7a8c118d5..e946b526960 100644
--- a/src/data/pokemon-species.ts
+++ b/src/data/pokemon-species.ts
@@ -1,4 +1,4 @@
-import type { Localizable } from "#app/interfaces/locales";
+import type { Localizable } from "#app/@types/locales";
import { AbilityId } from "#enums/ability-id";
import { PartyMemberStrength } from "#enums/party-member-strength";
import { SpeciesId } from "#enums/species-id";
diff --git a/src/data/trainers/evil-admin-trainer-pools.ts b/src/data/trainers/evil-admin-trainer-pools.ts
index 7c0336e784e..74ee3e8cb3d 100644
--- a/src/data/trainers/evil-admin-trainer-pools.ts
+++ b/src/data/trainers/evil-admin-trainer-pools.ts
@@ -1,4 +1,4 @@
-import type { TrainerTierPools } from "#app/data/trainers/typedefs";
+import type { TrainerTierPools } from "#app/@types/trainer-funcs";
import { TrainerPoolTier } from "#enums/trainer-pool-tier";
import { SpeciesId } from "#enums/species-id";
diff --git a/src/data/trainers/trainer-config.ts b/src/data/trainers/trainer-config.ts
index 6408bf94eac..8e704b0b301 100644
--- a/src/data/trainers/trainer-config.ts
+++ b/src/data/trainers/trainer-config.ts
@@ -48,7 +48,7 @@ import type {
TrainerTierPools,
TrainerConfigs,
PartyMemberFuncs,
-} from "./typedefs";
+} from "../../@types/trainer-funcs";
/** Minimum BST for Pokemon generated onto the Elite Four's teams */
const ELITE_FOUR_MINIMUM_BST = 460;
diff --git a/src/debug.js b/src/debug.js
deleted file mode 100644
index 6ddf6046c7a..00000000000
--- a/src/debug.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export function getData() {
- const dataStr = localStorage.getItem("data");
- if (!dataStr) {
- return null;
- }
- return JSON.parse(atob(dataStr), (k, v) =>
- k.endsWith("Attr") && !["natureAttr", "abilityAttr", "passiveAttr"].includes(k) ? BigInt(v) : v,
- );
-}
-
-export function getSession() {
- const sessionStr = localStorage.getItem("sessionData");
- if (!sessionStr) {
- return null;
- }
- return JSON.parse(atob(sessionStr));
-}
diff --git a/src/global-vars/starter-colors.ts b/src/global-vars/starter-colors.ts
index 6abe028be99..6b019bd5c34 100644
--- a/src/global-vars/starter-colors.ts
+++ b/src/global-vars/starter-colors.ts
@@ -1,4 +1,3 @@
-export const starterColors: StarterColors = {};
-interface StarterColors {
+export const starterColors: {
[key: string]: [string, string];
-}
+} = {};
diff --git a/src/starter-colors.ts b/src/starter-colors.ts
deleted file mode 100644
index 6abe028be99..00000000000
--- a/src/starter-colors.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export const starterColors: StarterColors = {};
-interface StarterColors {
- [key: string]: [string, string];
-}
diff --git a/src/system/game-data.ts b/src/system/game-data.ts
index ab907d2f768..d9b8d73d3c3 100644
--- a/src/system/game-data.ts
+++ b/src/system/game-data.ts
@@ -62,6 +62,7 @@ import { pokerogueApi } from "#app/plugins/api/pokerogue-api";
import { ArenaTrapTag } from "#app/data/arena-tag";
import { pokemonFormChanges } from "#app/data/pokemon-forms";
import type { PokemonType } from "#enums/pokemon-type";
+import type { DexData, DexEntry } from "../@types/dex-data";
export const defaultStarterSpecies: SpeciesId[] = [
SpeciesId.BULBASAUR,
@@ -131,6 +132,7 @@ export function decrypt(data: string, bypassLogin: boolean): string {
)(data);
}
+// TODO: Move all these exported interfaces to @types
export interface SystemSaveData {
trainerId: number;
secretId: number;
@@ -191,20 +193,6 @@ export interface VoucherCounts {
[type: string]: number;
}
-export interface DexData {
- [key: number]: DexEntry;
-}
-
-export interface DexEntry {
- seenAttr: bigint;
- caughtAttr: bigint;
- natureAttr: number;
- seenCount: number;
- caughtCount: number;
- hatchedCount: number;
- ivs: number[];
-}
-
export type StarterMoveset = [MoveId] | [MoveId, MoveId] | [MoveId, MoveId, MoveId] | [MoveId, MoveId, MoveId, MoveId];
export interface StarterFormMoveData {
diff --git a/src/system/session-history.ts b/src/system/session-history.ts
deleted file mode 100644
index 8eb81cb6efe..00000000000
--- a/src/system/session-history.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import type { GameModes } from "../game-mode";
-import type PokemonData from "./pokemon-data";
-import type PersistentModifierData from "./modifier-data";
-
-export enum SessionHistoryResult {
- ACTIVE,
- WIN,
- LOSS,
-}
-
-export interface SessionHistory {
- seed: string;
- playTime: number;
- result: SessionHistoryResult;
- gameMode: GameModes;
- party: PokemonData[];
- modifiers: PersistentModifierData[];
- money: number;
- waveIndex: number;
- gameVersion: string;
- timestamp: number;
-}
diff --git a/src/ui/pokedex-page-ui-handler.ts b/src/ui/pokedex-page-ui-handler.ts
index 00e166f075d..5875e3394a2 100644
--- a/src/ui/pokedex-page-ui-handler.ts
+++ b/src/ui/pokedex-page-ui-handler.ts
@@ -20,7 +20,8 @@ import { allSpecies, getPokemonSpecies, getPokemonSpeciesForm, normalForm } from
import { getStarterValueFriendshipCap, speciesStarterCosts } from "#app/data/balance/starters";
import { starterPassiveAbilities } from "#app/data/balance/passives";
import { PokemonType } from "#enums/pokemon-type";
-import type { DexEntry, StarterAttributes } from "#app/system/game-data";
+import type { StarterAttributes } from "#app/system/game-data";
+import type { DexEntry } from "#app/@types/dex-data";
import { AbilityAttr, DexAttr } from "#app/system/game-data";
import type { OptionSelectItem } from "#app/ui/abstact-option-select-ui-handler";
import MessageUiHandler from "#app/ui/message-ui-handler";
diff --git a/src/ui/pokedex-ui-handler.ts b/src/ui/pokedex-ui-handler.ts
index 8b3633d7422..96451041306 100644
--- a/src/ui/pokedex-ui-handler.ts
+++ b/src/ui/pokedex-ui-handler.ts
@@ -11,7 +11,8 @@ import { allSpecies, getPokemonSpeciesForm, getPokerusStarters, normalForm } fro
import { getStarterValueFriendshipCap, speciesStarterCosts, POKERUS_STARTER_COUNT } from "#app/data/balance/starters";
import { catchableSpecies } from "#app/data/balance/biomes";
import { PokemonType } from "#enums/pokemon-type";
-import type { DexAttrProps, DexEntry, StarterAttributes, StarterPreferences } from "#app/system/game-data";
+import type { DexAttrProps, StarterAttributes, StarterPreferences } from "#app/system/game-data";
+import type { DexEntry } from "#app/@types/dex-data";
import { AbilityAttr, DexAttr, loadStarterPreferences } from "#app/system/game-data";
import MessageUiHandler from "#app/ui/message-ui-handler";
import PokemonIconAnimHandler, { PokemonIconAnimMode } from "#app/ui/pokemon-icon-anim-handler";
diff --git a/src/ui/pokemon-info-container.ts b/src/ui/pokemon-info-container.ts
index d8012a58875..3dbe3b7af7d 100644
--- a/src/ui/pokemon-info-container.ts
+++ b/src/ui/pokemon-info-container.ts
@@ -6,7 +6,8 @@ import { getNatureName } from "../data/nature";
import { PokemonType } from "#enums/pokemon-type";
import type Pokemon from "../field/pokemon";
import i18next from "i18next";
-import type { DexEntry, StarterDataEntry } from "../system/game-data";
+import type { StarterDataEntry } from "../system/game-data";
+import type { DexEntry } from "#app/@types/dex-data";
import { DexAttr } from "../system/game-data";
import { fixedInt, getShinyDescriptor } from "#app/utils/common";
import ConfirmUiHandler from "./confirm-ui-handler";
diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts
index 3bea0b08698..b7a7e0f3e6e 100644
--- a/src/ui/starter-select-ui-handler.ts
+++ b/src/ui/starter-select-ui-handler.ts
@@ -23,13 +23,8 @@ import { allSpecies, getPokemonSpeciesForm, getPokerusStarters } from "#app/data
import { getStarterValueFriendshipCap, speciesStarterCosts, POKERUS_STARTER_COUNT } from "#app/data/balance/starters";
import { PokemonType } from "#enums/pokemon-type";
import { GameModes } from "#app/game-mode";
-import type {
- DexAttrProps,
- DexEntry,
- StarterMoveset,
- StarterAttributes,
- StarterPreferences,
-} from "#app/system/game-data";
+import type { DexAttrProps, StarterMoveset, StarterAttributes, StarterPreferences } from "#app/system/game-data";
+import type { DexEntry } from "#app/@types/dex-data";
import { AbilityAttr, DexAttr, loadStarterPreferences, saveStarterPreferences } from "#app/system/game-data";
import { Tutorial, handleTutorial } from "#app/tutorial";
import type { OptionSelectItem } from "#app/ui/abstact-option-select-ui-handler";
From d3bc33cd4ea8a315ce32623a526530c1af928a48 Mon Sep 17 00:00:00 2001
From: NightKev <34855794+DayKev@users.noreply.github.com>
Date: Sat, 7 Jun 2025 17:37:09 -0700
Subject: [PATCH 02/16] [Misc] Remove `debug.js` reference from `index.html`
---
index.html | 1 -
1 file changed, 1 deletion(-)
diff --git a/index.html b/index.html
index 111464b5e5c..d503617c13c 100644
--- a/index.html
+++ b/index.html
@@ -145,6 +145,5 @@
-