Bug Reports v2.0 (READ OP BEFORE POSTING!!)

Status
Not open for further replies.

Merritt

"the other dude"
is a Community Contributor
What does that mean?
PS defaults to making a move like Revelation Dance take Bird-type as typeless instead of Bird-type, which makes the resulting Revelation Dance typeless. Since Bird-type doesn't exist in a generation with Revelation Dance and vice versa there's no way to prove that this is not how it would work on cart.

Protean normally changes the Pokemon's type to the type of the used move, but does not activate if the used move is typeless (such as Struggle or in this case "Bird-Type" Revelation Dance).

The only reason that this would have any cause to be implemented purely for kicks would be if you could show that on cart Bird-type moves receive a STAB boost, and unless I'm very mistaken there's not any glitch moves in Gen I that are Bird-type to allow this to be tested.

Since Bird-type offensively behaves identically to typeless (neutral on everything) I don't think a change is really necessary - we'd be making up the interaction either way.
 

Merritt

"the other dude"
is a Community Contributor
also, reflect has the opponent do the tiniest amount less of damage to you

0 Atk Machamp Dynamic Punch vs. 0 HP / 0 Def Genesect through Reflect: 71-84 (25 - 29.6%) -- guaranteed 4HKO

0 Atk Machamp Dynamic Punch vs. +2 0 HP / 0 Def Genesect: 72-85 (25.4 - 30%) -- guaranteed 4HKO
This is correct.




This is a semi accurate, readable version of the damage formula. To make things simple, let's set level to 100, power to 100, and both attack and defense to 100, along with saying the move is STAB for a 1.5x multiplier and ignoring the damage variance because while it does have an effect, it's not necessary to make the point as long as we're looking at max damage only.

When doing it like this, we end up with {[(42)*100*(1)]/50}=84+2=86*1.5=129.

When doubling defense, we end up with {[(42)*100*(1/2)]/50}=42+2=44*1.5=66.

When adding to the modifier a *0.5 (for reflect), we end up with {[(42)*100*(1)]/50}=84+2=86*1.5*0.5=64.5 floors to 64.

In short, that +2 in the formula makes the Modifier slightly stronger than any changes to Attack, Defense, Power, or Level.
 
Last edited:

DaWoblefet

Demonstrably so
is a Pokemon Researcher
This is correct.




This is the damage formula. To make things simple, let's set level to 100, power to 100, and both attack and defense to 100, along with saying the move is STAB for a 1.5x multiplier and ignoring the damage variance - just going with the max roll.

When doing it like this, we end up with {[(42)*100*(1)]/50}=84+2=86*1.5=129.

When doubling defense, we end up with {[(42)*100*(1/2)]/50}=42+2=44*1.5=66.

When adding to the modifier a *0.5 (for reflect), we end up with {[(42)*100*(1)]/50}=84+2=86*1.5*0.5=64.5 floors to 64.

In short, that +2 in the formula makes the Modifier slightly stronger than any changes to Attack, Defense, Power, or Level.
That is absolutely not the damage formula (this is). However, the reasoning is still correct - Reflect is applied in damage calculation at a separate step than with boosts and drops. The damage calculator is accurate here.
 

Merritt

"the other dude"
is a Community Contributor
That is absolutely not the damage formula (this is). However, the reasoning is still correct - Reflect is applied in damage calculation at a separate step than with boosts and drops. The damage calculator is accurate here.
Article said:
Once the main parameters are set, the general steps of the calculation are as follows:

BaseDamage = ((((2 × Level) ÷ 5 + 2) * BasePower * [Sp]Atk) ÷ [Sp]Def) ÷ 50 + 2

  1. Apply the multi-target modifier
  2. Apply the weather modifier
  3. In case of a critical hit, double the value
  4. Alter with a random factor
  5. Apply STAB modifier
  6. Alter with type effectiveness
  7. Alter with user's burn
  8. Make sure damage is at least 1
  9. Apply the final modifier
Apologies for missing out on the damage being at least 1 step and for badly phrasing that we can forget about the random factor, but please take the time to read an article before instantly saying that somebody's wrong - not putting the actual code from the game does not make it not the damage formula.

Sorry, this was rude. Yes, the modifier bits is definitely poorly written since it doesn't elaborate on the flooring/rounding sections, I just like using it because it's easier that writing out round/truncate for every step. I misunderstood what you were objecting to.

The article is good reading though for anybody who's interested in the details of how exactly the damage formula works.
 
Last edited:

DaWoblefet

Demonstrably so
is a Pokemon Researcher
Apologies for missing out on the damage being at least 1 step and for badly phrasing that we can forget about the random factor, but please take the time to read an article before instantly saying that somebody's wrong - not putting the actual code from the game does not make it not the damage formula.
I have read the article, many times in fact. Modifiers can't just be multiplied together in any random order (as the one you posted assumed). For example, the game rounds after the spread move modifier, but truncates after the random modifier. These steps have to be taken in a precise order, because if they aren't, rounding errors will amplify and the final damage can be off from what the game would actually have it be. For example, a spread move with STAB isn't 1.125x the base damage, but rather pokeRound(pokeRound(base damage*0.75)*1.5). Another thing to mention is that the game rounds down on 0.5 an awful lot (hence the term "pokeRound") and must be accounted for. When considering a question about damage calculation, knowing this is important.

Again, your answer is correct; it's just that the justification is wrong. No worries :P.
 
Sorry, forgot to introduce myself ^^".
I basically spend my time (an awful lot of time) working on the Pokémon Showdown damage calculator, and I was passing by and saw this issue, I guess I finally found something to do.
 
A lot of things in RBY rules weren't intended (like getting fully paralyzed out of Fly or Dig), but they were codified with the release of the games that exist, so that's what those rule sets do.
 
I went and tested it ingame. Instruct activated, curse came up, text "but it failed"

Same as sim. Not a bug. If you really need to see the battle video to believe me, I can upload it.
No need to record a video, I just....I found strange when i saw. I believe you, lol. But anyway, thank you so much by its disposition and offer.
 
My opponent used Splintered Stormshards and after he has sent his Lycanroc again and I put my cursor over it I saw that instead seeing " Splintered Stormshards (0/1) " I was seeing " Stone Edge (7/8) " . I believe that in some cases this might offer the opponent an advantage by seeing what moves the Z-move originates from, so I decided to post it. https://play.pokemonshowdown.com/battle-gen7ou-685289519 .
EDIT: Corrected "Stone Edge (7/8)" , typed " (0/7) " by mistake.
 

Merritt

"the other dude"
is a Community Contributor
My opponent used Splintered Stormshards and after he has sent his Lycanroc again and I put my cursor over it I saw that instead seeing " Splintered Stormshards (0/1) " I was seeing " Stone Edge (7/8) " . I believe that in some cases this might offer the opponent an advantage by seeing what moves the Z-move originates from, so I decided to post it. https://play.pokemonshowdown.com/battle-gen7ou-685289519 .
EDIT: Corrected "Stone Edge (7/8)" , typed " (0/7) " by mistake.
Unlike normal Z moves, exclusive Z moves like Splintered Stormshards have one move of origin (in this case Stone Edge) so this is information that is fine to share.
 
Generic Z-moves like Continental Crush do not identify a source move, but Splintered Stormshards can only ever originate from Stone Edge (and likewise for the other signature Zs), so there's no reason not to keep track of the base move in that case.
 
On mobile, hitting the new "First Turn" button (inconveniently placed exactly where the "Skip Turn" button used to be) and then hitting the "Skip to End" button to return to the battle makes it appear that your opponent has disconnected, but in fact you are just sitting there with no way to interact with the game and you eventually time out and lose.
 
Last edited:

Counting Sheep

formerly Volcanoheadproduction(yt)
I came across this pretty minor bug whilst teambuilding. Essentially its saying the stat points are different when its the same base stat with same investment.
As far as I can tell, it seems to have shifted or something, as theres still a jump point, just one Ev later. I re-created the bug by importing this set:
Tangrowth @ Assault Vest
Ability: Regenerator
EVs: 252 HP / 20 Def / 236 SpD
Relaxed Nature
- Giga Drain
- Knock Off
- Sludge Bomb
- Hidden Power [Ice]

And then tested to see if this stat change carried over to matches, which it didnt luckily.
 
I came across this pretty minor bug whilst teambuilding. Essentially its saying the stat points are different when its the same base stat with same investment.
As far as I can tell, it seems to have shifted or something, as theres still a jump point, just one Ev later. I re-created the bug by importing this set:
Tangrowth @ Assault Vest
Ability: Regenerator
EVs: 252 HP / 20 Def / 236 SpD
Relaxed Nature
- Giga Drain
- Knock Off
- Sludge Bomb
- Hidden Power [Ice]

And then tested to see if this stat change carried over to matches, which it didnt luckily.
Not a bug. Its cause the EV's are set to 30 in your next picture due to HP ice (perhaps to support older gens?).
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 1, Guests: 2)