pokerogue icon indicating copy to clipboard operation
pokerogue copied to clipboard

[Challenge] Add Nuzlocke-related challenges

Open DayKev opened this issue 5 months ago • 3 comments

What are the changes the user will see?

Adds 4 new challenges:

  • "No Free Heal": Disables the automatic healing that occurs after every 10th wave, replacing it with a normal shop phase
  • "Hardcore": Fainted Pokémon can't be revived
  • "No Starter Legends": Removes all legendary, sub-legendary and mythical Pokémon from the starter select
  • "Limited Catch": Only the first Pokémon of every biome can be added to your current party (ie: from waves 1, 11, 21, ...)
    • Takes into account if the X1 wave was a ME, allowing you to catch the Pokémon on wave X2 instead

Why am I making these changes?

Nuzlocke mode is a popular request/on the roadmap.

What are the changes from a developer perspective?

6 new ChallengeTypes were added:

  • NO_HEAL_PHASE Checks if the heal phase after every 10th wave should be activated. See src/phases/party-heal-phase.ts

  • SHOP_ITEM_BLACKLIST Filters the shop for specific items. See src/modifier/modifier-type.ts and src/ui/modifier-select-ui-handler.ts

  • RANDOM_ITEM_BLACKLIST Filters the random item selection for specific items. See src/modifier/modifier-type.ts

  • ADD_POKEMON_TO_PARTY Checks if the current caught Pokémon can be added to the party. See src/phases/attempt-capture-phase.ts

  • MOVE_BLACKLIST Checks if move the user wants to use is illegal for this challenge. See src/phases/command-phase.ts

  • PREVENT_REVIVE Checks if Pokémon can be revived. See src/phases/party-heal-phase.ts

Screenshots/Videos

Starter filter with "No Legends" challenge active

image

Shop with "Hardcore" challenge active

image

Lack of auto-heal with "No Free Heal" challenge active

https://github.com/user-attachments/assets/116755c0-a586-46cf-88a6-196cbbc9096e

Caught Pokémon not going to party with "Limited Catch" challenge active

https://github.com/user-attachments/assets/a5ae255a-dc6c-436f-9d7a-ed8a0b9ee06e

How to test the changes?

Start a new challenge run with one or more of the challenges active.

Checklist

  • [x] I'm using beta as my base branch
  • [ ] There is no overlap with another PR?
    • Updated version of #2421
  • [x] The PR is self-contained and cannot be split into smaller PRs?
    • The individual challenges are related to a common overarching challenge
  • [x] Have I provided a clear explanation of the changes?
  • [ ] Have I considered writing automated tests for the issue?
  • [x] If I have text, did I make it translatable and add a key in the English locale file(s)?
  • [x] Have I tested the changes (manually)?
    • [x] Are all unit tests still passing? (npm run test)
  • ~[ ] Are the changes visual?~
    • [x] Have I provided screenshots/videos of the changes?

DayKev avatar Sep 18 '24 10:09 DayKev