Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
4ca1339
Create `NewTrainerConfig` and builder
innerthunder Nov 14, 2025
1120ea7
Add `CompoundTrainerConfig` + rival configs
innerthunder Nov 17, 2025
e3649c4
Reorganize `TrainerSlot` parameter for party functions
innerthunder Nov 17, 2025
bcf90e2
Rework party pokemon configs + add utils
innerthunder Nov 19, 2025
fde61b7
Update Pokemon count validation
innerthunder Nov 21, 2025
01d2ed2
Add options interfaces for Pokemon constructors
innerthunder Nov 22, 2025
08a2267
`TrainerPartyPokemonConfig` now extends enemy options
innerthunder Nov 23, 2025
6af3ec5
Add `bossSegments` option
innerthunder Nov 23, 2025
e93e276
Update `strength` and `allowLegendaries` properties (+ docs)
innerthunder Nov 24, 2025
ee4bce1
`TrainerData` groundwork
innerthunder Nov 24, 2025
413b5d5
Finish species generation + docs
innerthunder Nov 28, 2025
233d02f
Update references to `pokemonPreEvolutions`
innerthunder Nov 28, 2025
ef05f9b
Fix `TrainerData` name conflict + some reorganization
innerthunder Nov 30, 2025
88db072
Allow `TrainerTypes` for BGM builder methods
innerthunder Dec 1, 2025
95cfd99
Re-add static party generation
innerthunder Dec 2, 2025
ea7e118
Add `condition` and `variableStrength` party config properties
innerthunder Dec 3, 2025
fe359f8
Add Gym Leader builder methods and configs
innerthunder Dec 5, 2025
b33ca04
Apply simple review suggestions
innerthunder Dec 5, 2025
3f3ba49
Expand `PokemonOptions` + rewrite Pokemon constructors
innerthunder Dec 5, 2025
4e75c3a
fix move helper docs
innerthunder Dec 9, 2025
d370e4d
Update configurable options
innerthunder Dec 11, 2025
3acf4ba
`TrainerSprite` groundwork + add `CompoundTrainerData`
innerthunder Dec 12, 2025
f9a78c2
Rename `TrainerData` methods
innerthunder Dec 14, 2025
0c965fa
Add unit tests
innerthunder Dec 15, 2025
ab83ba3
slight rival test optimization
innerthunder Dec 15, 2025
bc8d564
Add Gym Leader generation tests
innerthunder Dec 17, 2025
bd0e195
Add `toBeOfSpecies` matcher
innerthunder Dec 17, 2025
6d99149
Fix strength template entry
innerthunder Dec 17, 2025
14a44c8
Merge branch 'beta' into refactor/trainer-generation
innerthunder Dec 17, 2025
9a3e2a4
Create `TrainerDataSet` + reorganize compound data structures
innerthunder Dec 27, 2025
fa30266
`TrainerSpriteSet` now uses `TrainerDataSet` as a source
innerthunder Dec 27, 2025
e8a41b9
Add more `TrainerSpriteSet` helpers
innerthunder Dec 28, 2025
9abc549
Add mockups for `TrainerSaveData` rewrite
innerthunder Dec 30, 2025
209826f
Add config-to-`TrainerDataSet` methods
innerthunder Dec 30, 2025
e985c53
Refactor trainer dialogue data structures
innerthunder Jan 13, 2026
f9be735
Merge branch 'beta' into refactor/trainer-generation
innerthunder Jan 13, 2026
4a9b0aa
Apply string utils to dialogue function
innerthunder Jan 13, 2026
e709e38
Integrate new Trainer data structures
innerthunder May 28, 2026
0039e59
Generic configs + improve doubles support
innerthunder Jun 4, 2026
c1db25d
Evil Team grunt/admin configs
innerthunder Jun 7, 2026
f49b7de
Evil Team leader configs
innerthunder Jun 10, 2026
e0b7f4e
Elite Four trainer configs
innerthunder Jun 10, 2026
4901ef9
docs for Elite Four helper
innerthunder Jun 10, 2026
f41760f
Champion trainer configs
innerthunder Jun 10, 2026
ebec6fd
Remove deprecated configs (WIP)
innerthunder Jun 10, 2026
234c01b
ME config fixes
innerthunder Jun 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/@types/session-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import type { ArenaData } from "#system/arena-data";
import type { ChallengeData } from "#system/challenge-data";
import type { ModifierData } from "#system/modifier-data";
import type { PokemonData } from "#system/pokemon-data";
import type { TrainerData } from "#system/trainer-data";
import type { TrainerSaveDataSet } from "#system/trainer-save-data";

/**
* Save data for a run, as defined server-side
Expand All @@ -27,7 +27,7 @@ export interface SessionSaveData {
waveIndex: number;
battleType: BattleType;
/** Only defined when the current wave is a trainer battle */
trainer: TrainerData | null;
enemyTrainers?: TrainerSaveDataSet;
gameVersion: string;
timestamp: number;
challenges: ChallengeData[];
Expand Down
3 changes: 3 additions & 0 deletions src/@types/utility-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ export type Mutable<T> = {
/** Requires an array to contain at least one item. */
export type NonEmptyArray<T> = [T, ...T[]];

/** A value that can be coerced into an array. */
export type CoercibleArray<T> = T | T[];

/**
* Type helper to obtain the keys associated with a given value inside an object. \
* Acts similar to {@linkcode Pick}, except checking the object's values instead of its keys.
Expand Down
396 changes: 201 additions & 195 deletions src/battle-scene.ts

Large diffs are not rendered by default.

Loading