This is quite complex.
In gen 2, the egg moves pass through father and species through mother.
Therefore, we must check that:
1. Two egg moves come from the same father or are learned in another way.
2. If two egg moves come from the same father, check if the father can learn those two as well.
Also, we must keep track of the state of egg and machine moves in the learnset in order to properly reject them when the problem is found.
Related commits: 17e8515486 and 33cc1e09eb
As gen 1, Stadium has its own stat modifying mechanics.
It's basically an extension of gen 1's, only it changes the approach and runs a recalculation on all changes only for the proper Pokémon.
In order to emulate Gen 1 perfectly and to let the metagame adapt to the correct mechanics, stat calculation has been refactored.
Burn and Paralyse drop are applied whenever a Pokémon switches in with the status.
Also whenever a Pokémon gets a stat boost, if the Pokémon whose turn is not has the status.
Stat boosts recalculate that stat, minus burn and para drops (that's why Agility ignores para drop and Rest keeps drops).
Additionally, Reflect and Light Screen are only calculated in damage calculation.
Part of this code has been added to battle-engine.js with a gen === 1 conditional to avoid a ton of code repetition that would have been necessary otherwise.
Keep in mind that .modifiedStats for a BattlePokemon and the modifyStat function must only be available for gen 1 games.
All this code was done before the main battle-engine was reworked to have exceptions for past gens.
Furthermore, due to how inheritance works, it was messing up team preview in Stadium formats.
All what was dealt with this code is now dealt with in battle-engine.js and all future gen 2 exceptions should be there.
Slow Down now also reduces damage done by 15%.
Add a new full defensive moveset for Tanks.
Change Evasion for new move, Sacred Shield, for support.
Add an extra moveset for support.
Update information.
- High crit moves start at stage 2 (stage 0 being normal moves)
- Focus Energy adds 1 stage
- Lucky Punch and Stick set the stage at 2 and skip the other effects
- Sky Attack is not a high crit move
- Also fix Razor Wind's accuracy
- Fissure can hit Dig and Whirlwind can hit Fly
- Use BasePower instead of ModifyDamage for doubled power moves
- Also correct current-gen Fly to modify damage instead of base power
- add the new /seasonaldata alias to the beginning message
- change all single quotes surrounding the move animations into double
qoutes (just because it was like that in the Mar+Apr Seasonal)
- remove unnecessary line at the end of the seasonal's moves.js
Nerf slightly spread moves.
Make all Pokémon more resilient to damage.
Add EVs to make each Pokémon flavour unique to its character.
Randomise damage slightly more.
Eliminate all immunities.
The intention for this event is to remove the move disabling code away
from ModifyPokemon and to an event that can be run a fewer number of
times. Since the disabledMoves index is used to gray-out moves that cannot
be used, and not for any other purpose, there is no need for the related
code to be run at the ModifyPokemon timing, instead working better as a
once per turn event.
- add an alias for /seasonaldata
- add a check in /seasonaldata if there is no target
- change quotes in formats.js and add the same alias
- fix some missed instances of followe
More information: http://www.smogon.com/forums/threads/3491902/page-12#post-6202283
Seasonal finally uses a mod. This is for several reasons:
1. The formats were getting too extensive in formats.js, making it difficult to work with that file.
2. This allows to meet expectations of users who want better and more varying seasonals each month.
3. This allows for extra modification, making Seasonals more and more different and exciting.
4. This allows to test the limits of PS mod system.
This change allows users to input less than perfect attack on their sets.
If they don't input any EVs or IVs, the game will max all of them.
Otherwise, it will check for the attack EVs and IVs set on the teambuilder to then calculate the proper stats, 30 atk being the minimum to max out the other stats.
A minimum of 1 DV is necessary to keep max HP.
This is just a temporary fix, once the gen 1 teambuilder is done we should just check for the proper limitations on acquiring Stat Exp.
Level of the Pokémon will be taken into account soon to calculate the min Atk Stat Exp as well.