A browser based Pokémon fangame heavily inspired by the roguelite genre.
Go to file
Lylian BALL 15e535a1a0
[Ability] Implement Illusion (#3273)
* implement illusion ability with unit test and localizations

* try removing whitespace change on unnecessary files

* nit corrections

* nit update src/field/pokemon.ts

Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>

* nit update src/phases.ts

Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>

* illusion test correction

* unexpected error correction

* refactor property pokemon.illusion to pokemon.battleData.illusion

* nit

* nit

* update unit test up-to-date

* add docs

* merge up to date

* bugfix

* bugfix

* merge up to date

* refactor field illusion out of battleData

* fix nit

* fix nit

* Zoroark change illusion after lastPokemon update

* Zoroark change illusion after lastPokemon update

* refactor bug fix

* bugfix

* bug fix on tests

* Update src/field/pokemon.ts

Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>

* use GetFailedText

* remove useless import

* add condition 'no illusion' into transform move

* wild Zoroark creates an illusion according to the current biome

* wild Zoroark creates an illusion according to the current biome

* delete console.log()

* add doc

* Update src/field/pokemon.ts

Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>

* fix tests

* update locales submodule

* update Illusion interface

* bug fix

* bug fix

* bugfix

* rename some params for future implementations

* Zoroark keep illusion between battles

* Zoroark keep illusion between battles

* delete draft

* merge up-to-date

* bugfix

* merge

* merge

* implement canApplyPresummon method

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update test/abilities/illusion.test.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* nit

* review corrections

* nit

* type hints affected by enemy illusion

* type hints affected by enemy illusionin fight-ui-handler

* nit

* rename some parameters back in useIllusion

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* refactor battleData.illusion as summonData.illusion and delete oncePerBattleClause

* add comments

* illusion will break before evolution

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* bug fix

* g

* get submodule back

* get submodule back

* bug fix to save illusion status

* add pokemon.getPokeball()

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/data/ability.ts

Co-authored-by: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

* Update src/field/pokemon.ts

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com>
Co-authored-by: Amani H. <109637146+xsn34kzx@users.noreply.github.com>
Co-authored-by: innerthunder <168692175+innerthunder@users.noreply.github.com>
Co-authored-by: flx-sta <50131232+flx-sta@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>
2025-04-12 21:22:04 -04:00
.github [GitHub] Add path filters to avoid unnecessarily re-running tests (#5497) 2025-04-04 22:13:21 +00:00
docs [Refactor] Replace all instances of `integer` with `number` (#5250) 2025-02-04 17:56:13 -07:00
public [Refactor] Refactor variant sprite code part 1 (#5592) 2025-04-09 10:43:05 -05:00
scripts [Refactor] Refactor variant sprite code part 1 (#5592) 2025-04-09 10:43:05 -05:00
src [Ability] Implement Illusion (#3273) 2025-04-12 21:22:04 -04:00
test [Ability] Implement Illusion (#3273) 2025-04-12 21:22:04 -04:00
.dependency-cruiser.cjs [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -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 [Misc] Add a script to help verify correctness of variant sprite masterlist (#5325) 2025-03-06 00:39:02 -05:00
.gitmodules [Refactor] External locales (#4529) 2024-10-01 23:41:09 +01:00
.nvmrc [Misc] Add .nvmrc for a smoother repo install (#5270) 2025-02-08 08:19:36 -07:00
CREDITS.md [Misc] Add Wlowscha and SirzBenjie to credits (#5498) 2025-03-08 22:31:36 -05:00
LICENSE Update license to AGPL 3 2024-03-25 19:22:58 -04:00
README.md [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
biome.jsonc [Biome] Add and apply `lint/style/noNamespaceImport` (#5650) 2025-04-12 01:31:56 -04:00
create-test-boilerplate.js [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07: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 [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
favicon.ico Replace favicon with no BG version 2024-03-25 12:45:45 -04:00
global.d.ts [Refactor] Pokerogue API client (#4583) 2024-11-04 15:57:21 -05:00
index.css [UI/UX] Autofill login text color changed to gray (#5523) 2025-03-25 18:06:28 -07:00
index.html [Bug][UI/UX] Restore V button in battle (#5459) 2025-03-01 21:11:05 +00:00
lefthook.yml [Misc] Remove pre-push lefthook (#5572) 2025-03-28 14:49:54 -07:00
package-lock.json [Refactor] Re-implement save migration system (#5634) 2025-04-07 22:53:35 +00:00
package.json [Refactor] Re-implement save migration system (#5634) 2025-04-07 22:53:35 +00:00
tsconfig.json [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07: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

README.md

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.