Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Challenge] Add Nuzlocke-related challenges #4311

Open
wants to merge 25 commits into
base: beta
Choose a base branch
from

Conversation

DayKev
Copy link
Collaborator

@DayKev DayKev commented Sep 18, 2024

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
no.auto.heal.challenge.mp4
Caught Pokémon not going to party with "Limited Catch" challenge active
pokemon.doesn.t.go.to.party.mp4

How to test the changes?

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

Checklist

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

@DayKev DayKev added Enhancement New feature or request Challenges Challenge mode/s related labels Sep 18, 2024
@DayKev DayKev marked this pull request as ready for review September 19, 2024 13:38
@DayKev DayKev requested review from a team as code owners September 19, 2024 13:38
@DayKev
Copy link
Collaborator Author

DayKev commented Sep 19, 2024

I see it picks 3 random people to request for review now lmao.

Anyway, more or less ready (still need to figure out some tests). Could use some opinions on the challenge names/descriptions, I didn't spend long on them.

Copy link
Collaborator

@frutescens frutescens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you edit challengeParser() in run-info-ui-handler to process these new challenges?

@Adri1
Copy link
Contributor

Adri1 commented Sep 20, 2024

Question: "Hardcore" mode also prevent the Pokémon to be heald every 10 waves, or it only applies to reviving items?

@DayKev
Copy link
Collaborator Author

DayKev commented Sep 21, 2024

Question: "Hardcore" mode also prevent the Pokémon to be heald every 10 waves, or it only applies to reviving items?

It only prevents reviving, non-fainted Pokémon will still be healed if only Hardcore is active.

Co-authored-by: Leo Kim <47556641+KimJeongSun@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Challenges Challenge mode/s related Enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants