* Move type definitions away from game-data.ts
* Update src/@types/data-types.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Renamed file to save-data.ts
* Fixed broken import
* Moved some ui files
* Run biome, fix broken import
* Fixed one more broken input
* add language selection
* Move language option up
* Move language list to seperate file
* fix circular dependency
* Move language selection to own icon
* run biome
* add icon
* add icon to legacy ui
* Added more biome rules
* Fixes
* Added a few more rules
* Added global phaser to biome
* Fix tpyo
* Updated biome to 2.1.4; improved docs on linting/localization; added vcs support
Also added `.build` to gitignore cuz reasons
* Fixed tpyo
* dd
* Applied linter fixes
* Partially fixed some private property issues
* Upgraded to Biome 2.2.0; added `operatorLinebreak` and a few new rules
* Moved operator linebreaks before lines
* Applied kev's suggestions
* Update biome.jsonc
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* added like all the rules and then some
* modify biome.jsonc
* apply biome formatting
* Reverted changes to balance folder
* fixed stuff
* Fixed biome stripping trailing globstars from everything
* made `noInvertedElse` an error rule
* Add & apply fixes for `useExplicitLengthCheck`, `useAtIndex` and `noNonNullAssertedOptionalChain`
* Bumped biome to 2.2.3
* Fixed a few syntax errors
* Removed trailing globstars since biome actually fixed their shit
* Final clean up
* foobarbaz
* Fixed remaining issues
* Fixed a few errors in SSUI
* fixed rounding issue
* Fixed test to not round funky
* Fixed biome false positive for vitest hooks
* Apply biome:all
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Store session id in session data to prevent somehow deleting wrong slot
* Only log session / system if beta or local; fix promise
* Fix serialization/deserialization when logging session/system data
* Force loadSaveSlot to set the logged in user's last session
* No longer add slotId to session data
* Introduced `getSpeciesData` function
* Saving and loading starter preferences as intended without conflicts
* Hiding shiny star and hidden ability icon, showing correct nature
* Forcing first tera type always
* Fixed bug which prevented tera from displaying the saved preference; tera resets in fresh start
* Ensuring that label text updates correctly
* Removed large commented code, plus lock on hardy nature.
* Excluded specific forms from fresh start, fixed bug with default nature
* Removed Rockruff from restricted forms
* Moves update correctly when switched around
* Making tera type persist in preferences
* Saving starter preferences after every change
* Tera type not resetting randomly
* Removed some log messages
* Incorporated suggestions from review
* Only allowing unlocked neutral natures, or default to hardy if no natures are unlocked
* Capping ivs at 15 instead of setting them at 15
* Apply suggestions from code review
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Hiding various things
* Ran biome
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Grabbed matchers from other branch
* Cleaned up entry hazard arena tags; merged tests into 1 file
* Marked test as TODO because IDK how to make it pass
* Re-added test file + ran biome
* Sort imports in `vitest.d.ts`
* Fix Stealth Rocks test
* Renamed arena traps to entry hazards fr fr
* fixed matcher to have default value
* Fixed errors
* Update arena-tag.ts
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
* Add tracking for nuzlocke completion
* Add ribbon to legacy ui folder
* Add tracking for friendship ribbon
* fix overlapping flag set
* Replace mass getters with a single method
* Add tracking for each generational ribbon
* Add ribbons for each challenge
* Apply Kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Enforced a few usages of `toCamelCase`
* Removed `map(x => x)`
* Removed more maps and sufff
* Update test/mystery-encounter/encounters/weird-dream-encounter.test.ts
* Update game-data.ts types to work
* Implement Name Run Feat
Modified load session ui component, adding a submenu when selecting a 3
slot. This menu has 4 options:
Load Game -> Behaves as before, allowing the player to continue
progress from the last saved state in the slot.
Rename Run -> Overlays a rename form, allowing the player to type a
name for the run, checking for string validity, with the option to
cancel or confirm (Rename).
Delete Run -> Prompts user confirmation to delete save data, removing
the current save slot from the users save data.
Cancel -> Hides menu overlay.
Modified game data to implement a function to accept and store
runNameText to the users data.
Modified run info ui component, to display the chosen name when
viewing run information.
Example: When loading the game, the user can choose the Load Game
menu option, then select a save slot, prompting the menu, then choose
"Rename Run" and type the name "Monotype Water Run" then confirm,
thus being able to better organize their save files.
Signed-off-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Co-authored-by: Inês Simões <ines.p.simoes@tecnico.ulisboa.pt>
* Implement Rename Input Design and Tests for Name Run Feat
Created a test to verify Name Run Feature behaviour in the
backend (rename_run.test.ts), checking possible errors and
expected behaviours.
Created a UiHandler RenameRunFormUiHandler
(rename-run-ui-handler.ts), creating a frontend input
overlay for the Name Run Feature.
Signed-off-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Co-authored-by: Inês Simões <ines.p.simoes@tecnico.ulisboa.pt>
* Fixed formating and best practices issues:
Rewrote renameSession to be more inline with other
API call funtions, removed debugging comments and
whitespaces.
Signed-off-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Co-authored-by: Inês Simões <ines.p.simoes@tecnico.ulisboa.pt>
* Minor Sanitization for aesthetics
Deleting the input when closing the overlay for
aesthetics purpose
Signed-off-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Co-authored-by: Inês Simões <ines.p.simoes@tecnico.ulisboa.pt>
* Fixed minor rebase alterations.
Signed-off-by: Matheus Alves matheus.r.noya.alves@tecnico.ulisboa.pt
Co-authored-by: Inês Simões ines.p.simoes@tecnico.ulisboa.pt
* Implemented Default Name Logic
Altered logic in save-slot-select-ui-handler.ts to
support default naming of runs based on the run
game mode with decideFallback function.
In game-data.ts, to prevent inconsistent naming,
added check for unfilled input, ignoring empty
rename requests.
Signed-off-by: Matheus Alves matheus.r.noya.alves@tecnico.ulisboa.pt
Co-authored-by: Inês Simões ines.p.simoes@tecnico.ulisboa.pt
* Replace fallback name logic: use first active challenge instead
of game mode
Previously used game mode as the fallback name, updated to use the
first active challenge instead (e.g. Monogen or Mono Type), which
better reflects the run's theme.
Signed-off-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Co-authored-by: Inês Simões <ines.p.simoes@tecnico.ulisboa.pt>
* Rebasing and conflict resolution
Signed-off-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Co-authored-by: Inês Simões <ines.p.simoes@tecnico.ulisboa.pt>
* Lint fix
Signed-off-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Co-authored-by: Inês Simões <ines.p.simoes@tecnico.ulisboa.pt>
* Minor compile fix
* Dependency resolved
* Format name respected
* Add all active challenges to default challenge session name if possible
If more than 3 challenges are active, only the first 3 are added
to the name (to prevent the text going off-screen)
and then "..." is appended to the end to indicate
there were more challenges active than the ones listed
* Allow deleting malformed sessions
---------
Signed-off-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Signed-off-by: Matheus Alves matheus.r.noya.alves@tecnico.ulisboa.pt
Co-authored-by: Matheus Alves <matheus.r.noya.alves@tecnico.ulisboa.pt>
Co-authored-by: Wlowscha <54003515+Wlowscha@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* fix comment typos
* fix typos in variable/parameter/class names
* fix typos in object names
* fix typos in `console.log()` and i18n key use
* fix typo in filename `abstact-option-select-ui-handler.ts`
* fix casing of `@privateremarks` to `@privateRemarks`
* fix use of `cancelControllerChoice`
* Added string utility package to replace util functions
* Changed string manipulation functions fully over to `change-case`
* Fixed missing comma in package.json
trailing commas when :(
* fixed lockfile
* Hopefully re-added all the string utils
* fixed package json
* Fixed remaining cases of regex + code dupliation
* Fixed more bugs and errors
* Moved around functions and hopefully fixed the regex issues
* Minor renaming
* Fixed incorrect casing on setting strings
pascal snake case 💀
* ran biome
* Standardize filenames to kebab-case
Co-authored-by: pymilkmaiden <cassiopeiamahler56@gmail.com>
* Move script outside of public folder
* Move update_exp_sprites to scripts
* Add ls-lint to lint file and directory names
* Update lefthook.yml to skip merge / rebase on all pre-commit commands
---------
Co-authored-by: pymilkmaiden <cassiopeiamahler56@gmail.com>
* Updated enum utils to refuse non-enum values;
added strong typing on return values
* Moved Enum functions to own file; added type helpers for enums
* Cleaned up some code
* Fixed up tests
* Fix training-session-encounter.ts
* Split up Pokemon data types to own files
* Moved `AttackMoveResult` and `TurnMove` to own files
* Moved `customPokemonData` into types folder + fixed comments
* Moved files around + fixed stuff
* Moved `DamageResult` into new file
* Fixed imports
* ran biome
* Fix merge issue
* Cleanup evolution phase
* Update evolution phase and types
* Refactor form change phase
* Simplify game-speed.ts and update evo phase
* Move delay in formChangePhase to first element
* Fix mock video object return methods
* Fix tween chain mock
* Add todo comment to mock phaser's tween manager
* Remove jarring flash when evolution begins
* Fix missing method chaining in evo phase
* Apply biome formatting
* Run `npm audit fix`
* Update Biome to 2.0.0
* Migrate `biome.jsonc` to 2.0
* Apply Biome and fix some suppression comments
* Fix some suppression comments and update config
* More config updates
Added at "error": `noUnusedLabels`, `noThisInStatic`
Changed `useDefaultParameterLast` from "off" to "warn"
Changed `noDocumentCookie` (from recommended) from "warn" to "off"
Changed `noExcessiveCognitiveComplexity` from "warn" to "info"
* Add a bunch of rules
* Apply Biome safe fixes
* Apply Biome unsafe fixes
* Remove irrelevant `useSelfClosingElements` rule
* Upgrade already followed rules to "error"
* Remove unnecessary type cast
* Disable fixer for `useDefaultParameterLast`
* Disable `useJsonImportAttribute` rule and revert changes
* Fix `mockImage.ts`
* ...there's a `@ts-nocheck` in this file
* Use whole-file lint suppression comment in `version_converter.ts`
* Add a couple comments to `biome.jsonc`
* Remove ESLint packages and GitHub workflow
* Refactor evo conditions and descriptions
* Fix test
* Fix Shedinja
* Simplify Gimmighoul evolution
* Primeape and Stantler evolve by using their move 10 times
* Basculin white stripe evolves by taking 294 recoil damage
* Primeape and Stantler use modifiers for tracking
* Basculin uses modifier too
* Remove evo count from pokemon data
* No more evo counter data, Gallade/Froslass
* Fix allmoves import
* Clamperl
* Struggle shouldn't count for Basc recoil
* Change to nicer type
* Apply Benjie's suggestions
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
* Address formatting
* Undo new evolution changes
* Remove unused imports
* Fix speciesid
* Fixed up descriptions a little
* Change a key name
* Fix Gimmighoul
* Apply Biome
* Apply Biome unsafe fixes
* Review suggestions
- Convert `EvoCondKey` enum to `const` object
- Use early returns in `SpeciesEvolutionCondition#description`
and `SpeciesFormEvolution#description`
- Replace `!!x.find` with `x.some`
and `y.indexOf() > -1` with `y.includes()`
- Implement `coerceArray`
- Fix Shelmet evolution condition
checking for Shelmet and not Karrablast
- Remove unnecessary type casting in `battle-scene.ts`
* Remove leftover enforce func loop
* Fix circular imports issue
- `getPokemonSpecies` moved to `src/utils/pokemon-utils.ts`
- `allSpecies` moved to `src/data/data-lists.ts`
---------
Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Added `MoveUseType` and refactored MEP
* Fixed Wimp out tests & ME code
finally i think all the booleans are gone
i hope
* Added version migration for last resort and co.
buh gumbug
* Fixed various bugs and added tests for previous bugfixes
* Reverted a couple doc changes
* WIP
* Update pokemon-species.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Update pokemon-phase.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Fixed remaining tests (I think)
* Reverted rollout test changes
* Fixed command phase bug causing metronome test timeout
* Revert early_bird.test.ts
* Fix biome.jsonc
* Made `MoveUseType` start at 1
As per @DayKev's request
* Fixed a thing
* Fixed bolt beak condition to be marginally less jank
* Applied some review suggestions
* Reverted move phase operations
* Added helper functions complete with markdown tables
* Fixed things
* Update battler-tags.ts
* Fixed random issues
* Fixed code
* Fixed comment
* Fixed import issues
* Fix disable.test.ts conflicts
* Update instruct.test.ts
* Update `biome.jsonc`
* Renamed `MoveUseType` to `MoveUseMode`; applied review comments
* Fixed space
* Fixed phasemanager bugs
* Fixed instruct test to not bork
* Fixed gorilla tactics bug
* Battler Tags doc fixes
* Fixed formatting and suttff
* Minor comment updates and remove unused imports in `move.ts`
* Re-add `public`, remove unnecessary default value in `battler-tags.ts`
* Restore `{}` in `turn-start-phase.ts`
Fixes `lint/correctness/noSwitchDeclarations`
* Remove extra space in TSDoc in `move-phase.ts`
* Use `game.field` instead of `game.scene` in `instruct.test.ts`
Also `game.toEndOfTurn()` instead of
`game.phaseInterceptor.to("BerryPhase")`
* Use `game.field` instead of `game.scene` in `metronome.test.ts`
* Use `toEndOfTurn()` instead of `to("BerryPhase")` in `powder.test.ts`
* Convert `MoveUseMode` enum to `const` object
* Update move-phase.ts
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add `enumValueToKey` utility function
* Apply Biome
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Add abilityAttr.is methods
* [WIP] move modifier stuff around
* Untangle circular deps from modifiers
* Move unlockables to own file
* Untangle all circular deps outside of MEs
* Move constants in MEs to their own files
* Re-add missing import to battle.ts
* Add necessary overload for getTag
* Add missing type import in weather.ts
* Init modifier types and pools in loading-scene
* Remove stray commented code
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Move game-mode to its own file
Reduces circular imports to 325
* Move battler-index to own file
Reduces circular deps to 314
* Move trainer-variant to own file
Reduces circ deps to 313
* Move enums in pokemon to their own file
* Move arena-tag-type to its own file
* Move pokemon-moves to its own file
* Move command to own file
* Move learnMoveType to own file
* Move form change item to own file
* Move battlerTagLapseType to own file
* Move anim enums to own shared file
* Move enums out of challenges
* Move species form change triggers to own file
Reduces circ imports to 291
* Update test importing pokemon move
* Replace move attribute imports with string names
* Untangle circular deps from game data
* Fix missing string call in switch summon phase
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
* Ensure ChargeMove's is method calls super
* Use InstanceType for proper narrowing
* Apply kev's suggestions from code review
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
---------
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>