I'm calling it a refactor because I'm pretty sure it doesn't actually
change anything. But right now gems require a new code guarantee:
basePowerCallback shouldn't return false under normal circumstances.
(Some of them still do return false, but only under error conditions)
Move results are now passed all the way up to the useMove script.
It's now possible to tell from within useMove whether or not the move
succeeded.
This fixes a bug where successful Memento and Healing Wish were
considered to have failed and so didn't cause the user to faint.
Currently, if a burned Pokemon explodes in doubles, all targets except
the first will take full damage, because it's fainted (and no longer
burned) by the time those damage calculations are done.
The correct solution is to do all damage calculations before dealing
any damage, which I will do someday. Today is not that day.
Today, we move fainting the Explosion user to after damage is dealt.
Which, aside from making the faint order wrong, doesn't really have
any other consequences, and is better than the current buggy
damage calculation.
Specifically, the TryFieldHit event no longer exists.
Instead, Magic Bounce has separate event handlers for TryHit and
TryHitSide.
This also fixes it so Magic Coat/Bounce happen before ability
absoption (like Water Absorb).
Gems now boost all hits of a spread move.
This introduces a new event BasePowerMultiplier, so that gems actually
activate at the right time now.
The name is similar to basePowerModifier but they do the same thing
anyway. We should probably figure something out for their naming,
though.
Technically, they were before, but rather than having sections by
mod or gametype, I've split them into the following sections:
- Singles
- Doubles
- Other Metagames
- Past Generations
(Technically OM of the Month is its own section, to make it stand
out)
Anyway, format list sections should be fairly standardized from
now on.
- Add Hustle counter
- Prevent a few move combinations
- Prevent Simple without a boosting move
- Prevent Swift Swim/Chlorophyll without Rain Dance/Sunny Day
- Set Combee's ability to always be Honey Gather
- Set Deoxys-D and Deoxys-S to level 74
• Non-Ghost-Type Pokemon that have been Ghost Cursed can now use Curse
on themselves.
• Curse now lets Ghost-type Pokemon select a target in Double Battles.
- Healing Wish and Lunar Dance fail correctly when the user is the last
Pokemon.
- Final Gambit and Memento don't faint the user when used against a
Protecting target.
- Moves that are 'evaded' can no longer be critical hits.
- Gems are no longer used up if a move is 'evaded'.
- The issue with Struggle being 'evaded' while the Wonder Guard user has
a Substitute is fixed.