Open Marty-D opened 8 years ago
@Marty-D Sorry for the answer delay, I wanted to fix the 2 turn moves issue but it seems solved ? (Still not sure cause the bug is still on live)
Two-turn moves should ignore redirection on the charging turn fixed in 06567f8.
@acz13 I don't know offhand.
@GraillLord The two-turn move issue you're talking about and the one you just quoted are different bugs. The one you quoted was indeed fixed, as you can see by its absence from the checklist.
@Marty-D Hi, I've been working a lot recently and had little time for solving bugs, but concerning http://replay.pokemonshowdown.com/anythinggoes-285817545 I solved it just by replacing if (lacksTarget) { with if (lacksTarget && move.flags['charge']) { in data/scripts.js at line 261
edit: Two-turn moves should not fail with no target fixed in #3523.
Confusion damage should not be affected by opposing Unaware fixed in https://github.com/Zarel/Pokemon-Showdown/pull/3530. Gen IV - Implement accurate damage formula fixed in https://github.com/Zarel/Pokemon-Showdown/pull/3583. Gen IV - Damage-reducing Berries should not activate on theoretical damage fixed in https://github.com/Zarel/Pokemon-Showdown/pull/3626. Gen III - Implement accurate damage formula fixed in https://github.com/Zarel/Pokemon-Showdown/pull/3655.
Source (some of these may have already been filed or fixed).
Adding on to the list:
Thiefing a Weakness Policy triggers and consumes the Weakness Policy
I think this was fixed by PR #3867.
I think this was fixed by PR #3867.
https://github.com/Zarel/Pokemon-Showdown/commit/1f6e1e8d457f5cc37612be78b711e22470fea45b @urkerab
A Choice-locked Pokemon using a Pledge move in a Pledge combo attack should be locked into the Pledge move the following turn (source).
Marty edit: Fixed in https://github.com/Zarel/Pokemon-Showdown/commit/c28347edda25991145efbd43695f74fc0a61c9b9.
I have left a post regarding to the Hidden Power issue here: https://github.com/Zarel/Pokemon-Showdown/issues/4026
Clarification: This issue is meant for mechanics bugs that have been confirmed by a staff member - generally either Marty, DaWoblefet, or some other collaborator who has witnessed a battle video and the corresponding PS mechanic and can confirm that they differ.
Some Encore-related bugs (source):
Marty edit: removed "Encore should fail on a Z-move. Right now, Encoring a Z-status move locks the target into the base attack of that Z-move." since I added it to the first post a few days ago.
Sucker Punch is already implemented in this way.
Sucker Punch still leaks the information about the target in the console, so this isn't entirely resolved for Sucker Punch either.
not Nuzzle
But should Nuzzle advance the RNG?
A Pokemon Transformed into a Mega Evolution should not be able to use Z-Moves fixed in https://github.com/Zarel/Pokemon-Showdown/commit/934fc5b40d7b2c8764df5c2edeaad6428f3c1da5. After additional research, Transforming into a Primal Reversion displayed the same behaviour.
Gen II - Accuracy checks should be capped at 255 before BrightPowder fixed in https://github.com/Zarel/Pokemon-Showdown/pull/3926.
Encore should fail against Z-Powered Status moves fixed in https://github.com/Zarel/Pokemon-Showdown/pull/4298.
There was a bug reports post about a couple of interactions with Ally Switch that have been known for a while now but seems to have been overlooked. These replays show it hasn't been fixed yet.
Important bug with Assurance in Doubles; it is doubling in base power in situations where a target was KOed and the Assurance was redirected into the opponent from the original Assurance target. I'm assuming that Assurance is checking the slot it targeted to see if it had taken damage yet, not the slot it actually is attacking. See bug reports post.
Gen IV - Baton Pass, Healing Wish, Lunar Dance, and U-turn fixed in https://github.com/Zarel/Pokemon-Showdown/pull/4519.
The interaction of contact Z-moves and Protect behave incorrectly. The behavior was originally described here, but appears to have been overlooked as it was currently mentioned again to me. As a summary:
You can see the behavior in the linked post's video, but I also tested and have Battle Videos myself if needed.
Marty edit: To clarify, the above is only true of Z-Powered moves. For hackmons purposes, the moves themselves used without Z-Power are completely unaffected by protection moves; they don't even reduce damage dealt. Fixed in https://github.com/Zarel/Pokemon-Showdown/commit/538ac5ca5559fbf788becf2472562f29f5022f09
Gen IV - Accuracy should be checked before Ability immunities fixed in https://github.com/Zarel/Pokemon-Showdown/commit/bbeb041e701ed0f9ea6d3375a798d9166e9faac1.
Sorry to come knocking where I maybe shouldn't, but since King's Rock still needs proper implementation in gen2, and I've recently discovered some King's Rock-related bugs, I might as well make sure they're known of.
Both of these bugs are related to the messy working of Beat Up.
First of all, even when no mon has been able to hit due to having a status effect or being fainted, the king's rock may activate: This doesn't happen when the move is protected against, or fails for whatever other reason.
And the other bug happens when only one 'mon is present in the user's party, and prevents the King's Rock effect from being triggered, overriding the behaviour above. This can only be seen in-game through the fact the substitute won't be raised either, as both "effects" are skipped: (Not raising the substitute is only a graphical bug, the game will still treat it as if it's present, and raise it again if a different move is used)
I've documented both bugs in pokecrystal (but it's yet to be merged at the time of writing), here and here, if you're interested in how it looks in the code.
A round of small bugs:
More serious bug:
Gen II - Belly Drum mechanics fixed in https://github.com/Zarel/Pokemon-Showdown/commit/70ff3103ba24c3802c9d63a3cb6966cba5aaa7b2.
Gen II - Tri Attack should be able to thaw the target fixed in https://github.com/Zarel/Pokemon-Showdown/commit/6c8b738e7dce81657bbc792496f6a52143444cf0.
Went through the bug reports thread and found some more mechanics to be fixed. You can see all of these tested here :
More small bugs! This round of tests can be found here.
The "details" link for "Implement King's Rock properly" doesn't work anymore. Was it having any important info related to #3343 ?
@asingh04 I've edited in the archive version of the page. It's basically what is detailed in that issue but as a complete list of moves.
Another round of reporting bugs!
The following 4 bugs are from my bug reports post here.
[x] Shadow Tag messages in doubles occasionally result in an information leak to the player; moreover, if Shadow Tag is confirmed to trap a Pokemon on the left, that information reveal should be present for the trapping message on the right. See the post for a more in-depth explanation.
If a game ends with Clangorous Soulblaze as the last move used, the boosts should not be applied. This is generalizable, see my next reply.
[x] When Psycho Shift fails to pass a status to a target as a result of Misty Terrain, etc. it should display the appropriate Terrain message rather than "but it failed!" Fixed in https://github.com/Zarel/Pokemon-Showdown/pull/4697
[ ] Encore should work successfully on Shell Trap, in a similar way to the Focus Punch behavior. EDIT: see here for clarification.
Fixed the Shadow Tag leak in c3e752c87f9c8e17b079c645302002fe97f01dd6. As for the information reveal enhancement, it's not quite trivial so long as we still support Triples. However, it can probably be special-cased for Doubles in the client when the error message is received?
Stomping Tantrum is sometimes doubling in BP when its previous move landed into a Protect.
This is because of the Truant fix, but it's really just exposing the real bug here. It means that currently a turn of Dancer/Instruct forcing a successful move, then your actual move decision goes into a Protect, next turn Stomping Tantrum will be doubled. That sounds like wrong behaviour. @MacChaeger?
I know why that is. It’s that moveThisTurnResult
saves its current value right before useMoveInner
is called, and the return value of useMoveInner
is only stored if moveThisTurnResult
is the same as it was before the call. That’s specifically to check if a Protect move forced the value to change manually from undefined
to true
, but if the value was already true either from Mega Evolution or from using another move successfully, then the value would be overwritten by the value of false
returned by useMoveInner
to indicate that the move didn’t execute. This is easily fixed by simply re-initializing moveThisTurnResult
to be undefined
instead of saving the current value, or more properly fixed by actually getting useMoveInner
to return something other than false
when the move hit at least one Protect-like (and to make moves that call other moves from their onHit
event handlers via useMove
to return the value that that function returns, as such moves also rely on that comparison to the old value and are thus also currently affected by this bug, but in the opposite way). Anyone may feel free to do one of these fixes themselves as I won’t be back to my laptop for at least two hours.
Sent from my iPhone
On May 19, 2018, at 3:51 PM, Marty-D notifications@github.com wrote:
Stomping Tantrum is sometimes doubling in BP when its previous move landed into a Protect.
This is because of the Truant fix, but it's really just exposing the real bug here. It means that currently a turn of Dancer/Instruct forcing a successful move, then your actual move decision goes into a Protect, next turn Stomping Tantrum will be doubled. That sounds like wrong behaviour. @MacChaeger?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
Some clarifications / more bugs!
Gen III - Berry usage timing fixed in https://github.com/Zarel/Pokemon-Showdown/commit/ac71237de177b3b97ade6750eb923b59fa0f6cb7.
More small bugs! The first two can be verified from this Twitch VOD (will change to YouTube later).
Even more small bugs (first can be verified in this video, second-fourth from video):
- Mid-battle forme changes (e.g. Aegislash, Mimikyu) should update weight in the same way typing / modification to an actual stat is updated. That is, if you Soak an Aegislash and it changes formes, it returns to Steel / Ghost type; in the same way, if an Aegislash uses Autotomize and changes formes, its weight is reset to base Aegislash weight.
Should we remove the Autotomize volatile tag then when they change formes? That should remove the weight modification done.
King's Rock should be able to flinch after breaking a sub in Gen 2 - see #4916 (comment)
Also, I believe the double battle faint mechanics issue in Gen III has been fixed (line 2975 in battle.js).
Confusion resulted in a critical hit when the pokemon hit itself (gen 4). Confirmed as a bug by @Marty-D, don't have time to do this myself rn so feel free to pick it up.
Edit: Fixed
These all are from this bug reports post.
EDIT: Adding another very minor bug:
Is anybody currently working on 'Berry interaction with Unnerve switching to Unnerve'?
Speaking of berries...
Good job closing an active issue, github.
I wonder if we just make a new issue just to clear out historical cruft from this one.
in the meantime nobody say "this fixes #2367" or github will close it D:
Research needed
- Hacked genders in past gens (see #2327)
Continuing discussion from #2327 - it is possible to hack the genders of Pokemon in gens 4 - 7 independently of the PID (Editable value is stored at 0x40 in Gen 4 and 5 pkm structure, and 0x1d in Gen 6 and 7 - this value is initially calculated from the PID but can be changed, enabling the forcing of particular gender (or lack thereof) to a Pokemon, even if that Gender is unavailable on it).
Editing the gender independently of the PID is NOT possible in Gen 3 however, which essentially means that Pokemon cannot have Illegal genders (e.g. no Genderless or Male Blissey in Gen 3).
Bugs are now listed in the 'Mechanic Bugs' project
https://github.com/Zarel/Pokemon-Showdown/projects/3
You can comment in psim.us/dev or on this bug with any questions or to signal your intent to work on a specific bug listed on the project.