Go to file
Bertie690 5efdb0dc0b
[Refactor] Fix issues with "last move selected" vs "used" (#5810)
* 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>
2025-06-15 10:52:44 -07:00
.github [Dev] Enable dependency cruiser workflow (#5966) 2025-06-15 00:51:21 -07:00
docs [Docs] Added changes to markdown files + comment fixes (#5682) 2025-05-02 00:24:37 +00:00
public [UI/UX] [Localization] Type icons corrections (#5952) 2025-06-11 04:44:30 +00:00
scripts [Misc] Remove extra newline in test-boilerplate.ts (#5965) 2025-06-09 18:28:39 -07:00
src [Refactor] Fix issues with "last move selected" vs "used" (#5810) 2025-06-15 10:52:44 -07:00
test [Refactor] Fix issues with "last move selected" vs "used" (#5810) 2025-06-15 10:52:44 -07:00
.dependency-cruiser.cjs [Dev] Enable dependency cruiser workflow (#5966) 2025-06-15 00:51:21 -07:00
.editorconfig [Misc] add .editorconfig (#5246) 2025-02-03 18:55:44 +01:00
.env Beta Merge 27/07 (#3141) 2024-07-28 00:47:00 +01:00
.env.beta [Misc] Disable some leftover debug code (#4546) 2024-10-02 13:13:16 -04:00
.env.development [Misc] Disable some leftover debug code (#4546) 2024-10-02 13:13:16 -04:00
.env.production Beta Merge 27/07 (#3141) 2024-07-28 00:47:00 +01:00
.env.test Beta Merge 27/07 (#3141) 2024-07-28 00:47:00 +01:00
.gitattributes [Misc] Add * -crlf to .gitattributes (#5539) 2025-03-18 21:52:49 -04:00
.gitignore [Docs] Added changes to markdown files + comment fixes (#5682) 2025-05-02 00:24:37 +00:00
.gitmodules [Refactor] External locales (#4529) 2024-10-01 23:41:09 +01:00
.nvmrc [Dev][GitHub] Update to node 22 (#5586) 2025-04-14 12:37:26 -05:00
biome.jsonc [Refactor] Fix issues with "last move selected" vs "used" (#5810) 2025-06-15 10:52:44 -07:00
CREDITS.md [Misc] Add Wlowscha and SirzBenjie to credits (#5498) 2025-03-08 22:31:36 -05:00
dependency-graph.js [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
eslint.config.js [Code] Added and enforced no-fallthrough + added eslint type checking (#5705) 2025-04-29 23:21:28 +00:00
favicon.ico Replace favicon with no BG version 2024-03-25 12:45:45 -04:00
global.d.ts [Misc] Run biome on all files; update some rules to be errors now 2025-06-14 00:59:34 -07:00
index.css [UI/UX] Autofill login text color changed to gray (#5523) 2025-03-25 18:06:28 -07:00
index.html [Misc] Remove debug.js reference from index.html 2025-06-07 17:37:09 -07:00
lefthook.yml [Dev] Add lefthook script to update submodules post-checkout (#5941) 2025-06-06 23:27:58 +00:00
LICENSE Update license to AGPL 3 2024-03-25 19:22:58 -04:00
package-lock.json Fix Version Number 1.9.4 -> 1.9.5 2025-06-02 20:00:23 -04:00
package.json [Dev] Enable dependency cruiser workflow (#5966) 2025-06-15 00:51:21 -07:00
README.md [Dev][GitHub] Update to node 22 (#5586) 2025-04-14 12:37:26 -05:00
tsconfig.json [Code] Added and enforced no-fallthrough + added eslint type checking (#5705) 2025-04-29 23:21:28 +00:00
update_exp_sprites.ps1 Fix crash with certain animated variant sprites 2024-04-26 02:00:58 -04:00
vite.config.ts [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
vitest.config.ts [Test] [Refactor] [GitHub] Enable no isolate for vitest (#5566) 2025-03-28 17:30:38 -04:00
vitest.workspace.ts [Test] Move test folder out of src (#5398) 2025-02-22 22:52:07 -06:00

PokéRogue

PokéRogue is a browser based Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, fighting trainers, bosses, and more!

Contributing

🛠️ Development

If you have the motivation and experience with Typescript/Javascript (or are willing to learn) please feel free to fork the repository and make pull requests with contributions. If you don't know what to work on but want to help, reference the below To-Do section or the #feature-vote channel in the discord.

💻 Environment Setup

Prerequisites

Running Locally

  1. Clone the repo and in the root directory run npm install
    • if you run into any errors, reach out in the #dev-corner channel in discord
  2. Run npm run start:dev to locally run the project in localhost:8000

Linting

We're using Biome as our common linter and formatter. It will run automatically during the pre-commit hook but if you would like to manually run it, use the npm run biome script. To view the complete rules, check out the biome.jsonc file.

📚 Documentation

You can find the auto-generated documentation here. For information on enemy AI, check out the enemy-ai.md file. For detailed guidelines on documenting your code, refer to the comments.md file.

FAQ

How do I test a new _______?

  • In the src/overrides.ts file there are overrides for most values you'll need to change for testing

How do I retrieve the translations?

  • The translations were moved to the dedicated translation repository and are now applied as a submodule in this project.
  • The command to retrieve the translations is git submodule update --init --recursive. If you still struggle to get it working, please reach out to #dev-corner channel in Discord.

🪧 To Do

Check out Github Issues to see how can you help us!

📝 Credits

If this project contains assets you have produced and you do not see your name, please reach out, either here on GitHub or via Discord.

Thank you to all the wonderful people that have contributed to the PokéRogue project! You can find the credits here.