pagefaultgames / pokerogue

A browser based Pokémon fangame heavily inspired by the roguelite genre.
https://pokerogue.net
GNU Affero General Public License v3.0
4.37k stars 1.75k forks source link

Mystery Encounters beta bugs/breakfix 2 #4300

Open flx-sta opened 2 days ago

flx-sta commented 2 days ago

Please add any bugs, session saves, screenshots, logs, etc. here in comments so they can be tracked under this issue

This is a follow up issue for #4240

VaylenObscuras commented 2 days ago

ME with the choice of 3 trainer battles. Went for "mightiest" and was surprised to see that my delphox retained its Quiver Dance boosts. I was under impression that boosts should be reset when an encounter happens.

PigeonBar commented 2 days ago

(Originally from https://github.com/pagefaultgames/pokerogue/issues/4240#issuecomment-2354448815)

Sometimes, if you save and quit a session which had encountered ME's, and then start a new run, the game can incorrectly apply and save mysteryEncounterSaveData.encounteredEvents from the old session to the new session. This can cause the game to refuse to spawn ME's due to the "do not spawn an ME within 3 waves of the last one" check.

I was able to continue reproducing this bug after applying the changes from https://github.com/pagefaultgames/rogueserver/pull/52. In fact, this bug is probably more common now, and it appears to no longer fix itself after a reload if you have saved the new session.

20240917 Encountered Events

PigeonBar commented 2 days ago

In Department Store Sale, there is a weird edge case that happens when you have a party of Pokemon that cannot learn any TMs, then you choose to go to the TM counter:

https://github.com/user-attachments/assets/edf51bce-6a6d-4068-8dbd-cfce99e7a9bb

PigeonBar commented 2 days ago

The game allows you to open the menu while scrolling the ending dialogue text (Edit: To clarify, after the shop) after an ME (this is easier to trigger at lower game speeds), which then allows you to use the egg gacha exploit to save any meta-progression that the ME awards. Here is an example of saving an extra epic egg from A Trainer's Test:

https://github.com/user-attachments/assets/3022aa9d-44a3-4929-a175-eb6c33579aac

PigeonBar commented 2 days ago

If the Mysterious Chest's unlucky option KO's your only healthy Pokemon, and you click "Yes" to retry the battle, it now crashes the game:

https://github.com/user-attachments/assets/8f583055-c329-4089-91a1-d3717e0bc130

Snailman11 commented 2 days ago

Health Ui Element Disappears After "Weird Dream" ME

(beta) the “mysterious women” mystery event removes Pokémon health bars https://discord.com/channels/1125469663833370665/1285854633247637514

PigeonBar commented 1 day ago

If the Mysterious Chest's unlucky option KO's your only healthy Pokemon, and you click "Yes" to retry the battle, it now crashes the game:

20240917.Mysterious.Chest.Crash.mp4

Update: I think the crash was unrelated to Mysterious Chest, and the game just crashes whenever you click "Yes" to retrying a battle:

https://github.com/user-attachments/assets/157b307f-4125-4521-8b62-de9ec46ee5d5

PigeonBar commented 1 day ago

The Shady Vitamin Dealer lets you apply cheap vitamins to a Pokemon with exactly half HP, which causes the Pokemon to faint from the vitamins:

https://github.com/user-attachments/assets/2249e52f-0a7e-487c-94ea-6a4781bd9073

A zip folder containing my testing save file (GitHub doesn't support directly uploading .prsv files in comments):

20240918 Half HP Vitamins.zip

PigeonBar commented 1 day ago

(In Safari Zone, all RNG rolls for bait, catch attempts, and wild Pokemon flee attempts advance the same shared RNG state and can influence each other across all 3 wild encounters. We may want to revisit this after we are done dealing with higher-priority issues.)

PigeonBar commented 1 day ago

I think Fight or Flight's randomly boosted stat now has a different off-by-one error that prevents the wild Pokemon's speed from getting boosted. It should be randSeedInt(5, 1).

20240918 Stat Boost RNG

PigeonBar commented 1 day ago

(For Safari Zone and GTS) If shininess only gets rerolled when the Pokemon isn't shiny, then we may need to watch out for situations where a wild Pokemon being shiny can cause one fewer RNG call to occur, which can further influence RNG outcomes.

20240918 Reroll Shiny RNG

PigeonBar commented 1 day ago

[Fight or Flight, and possibly others] I think the attempted fix for wild Pokemon's levels changing upon reload is now causing the wild Pokemon to become completely different upon reload, since the attempted fix calls RNG to determine the Pokemon's level after a reload:

https://github.com/user-attachments/assets/ddb266c5-c6cb-4d26-8d2d-627c5b1357db

PigeonBar commented 1 day ago

Phione can spawn in the Safari Zone:

20240918 Phione Safari Zone

My testing save file:

20240918 Phione Safari Zone.zip

PigeonBar commented 1 day ago

(According to https://bulbapedia.bulbagarden.net/wiki/Catch_rate#Great_Marsh_and_Johto_Safari_Zone, the Safari Zone catch rate formula is designed for 4 shake checks, but PokeRogue only does 3 shake checks. We may want to revisit this after dealing with higher-priority issues first.)

Snailman11 commented 21 hours ago

"Department Store Sale" Can appear in the Swamp, which is not a 'Civilization' Biome

[BETA] Department Store Sale Mystery Encounter Triggers in Swamp

https://discord.com/channels/1125469663833370665/1286329606349000780

PigeonBar commented 13 hours ago

Fiery Fallout can attempt to burn a Pokemon that is already burned, which makes it appear to not burn any new Pokemon. Is this intended?

https://github.com/user-attachments/assets/5415b1a3-f8c7-45e4-87a2-dd304a1abcce

PigeonBar commented 13 hours ago

If you splice two Pokemon each holding a Shuckle Juice, you can get a Pokemon holding multiple Shuckle Juices. Is this intended?

20240919 Splice Shuckle Juice

PigeonBar commented 13 hours ago

Shuckle Juice doesn't seem to get applied correctly after a reload. In this recording, notice how Lapras loses its Shuckle Juice item in the top-left corner, and also notice how its max HP increases from 3760 to 3920.

https://github.com/user-attachments/assets/ffb0cc8c-6524-44fc-a66f-5813d45774f2

flx-sta commented 13 hours ago

The delibirdy encounter varies depending on the language (English is the only one that is punished).

Thismodifier.type.name.includes("Berry") is at fault: https://github.com/pagefaultgames/pokerogue/blob/7490699bef72672874ca009addf363b27ebad8a3/src/data/mystery-encounters/encounters/delibirdy-encounter.ts#L197-L200

Instead it should be:

          const modifier: BerryModifier | HealingBoosterModifier = encounter.misc.chosenModifier;

          // Give the player a Candy Jar if they gave a Berry, and a Healing Charm for Reviver Seed
          if (modifier instanceof BerryModifier) {
pom-eranian commented 11 hours ago

mystery event assets need a naming convention

flx-sta commented 9 hours ago

Reddit: kmnjkhmulolfml I found a small glitch where spin winning the master ball tier item (multi lens) from the whack-o-matic, every pokemon in my party got replaced with the pokemon I used to play the minigame with. In my case, all my party members were replaced with a level 15 chi-yu. The slight benefit of this glitch is that it also duplicated the multi lens I had one, now giving me 3 copies, one for each party member turned into chi-yu.

https://www.reddit.com/r/pokerogue/comments/1fkasry/comment/lnukgvr/

Blitz425 commented 9 hours ago

image image

Wonder Trade states I was getting a Mega Kangaskhan, luckily it wasn't actually a mega but that is very bad haha

PigeonBar commented 8 hours ago

The Pokemon Salesman sometimes doesn't display shiny variants properly (this is supposed to be a Tier 2 shiny Magikarp):

https://github.com/user-attachments/assets/fff8cc95-9696-402a-9457-14ec5a19e837

PigeonBar commented 7 hours ago

[An Offer You Can't Refuse] In challenge modes, this ME is allowed to spawn when you have only 1 challenge-eligible Pokemon (confirmed using an extra console.log(), this ME has ID 14), and it can offer to buy your only challenge-eligible Pokemon, which would lead to a game over.

https://github.com/user-attachments/assets/b14d68cd-59ab-41fc-99a6-d94ed7e0dfc0

flx-sta commented 6 hours ago

The berries-abount tests fail sometimes because there is only 1 Pokemon in the party and it might hit max-stack of a berry. Thus the expected amount of berries falls lower than the original defined.


An easy solution for now would be to just increase the party-size in the test

https://github.com/pagefaultgames/pokerogue/pull/4339


A long-term solution might be to re-roll a berry that can't be replaced. This has to take into account a max-loop as the whole party could be capped with a berry and we don't want it to be stuck in an endless loop.

image
star-krieg commented 5 hours ago

Retrying Uncommon Breed ME causes a crash

image