-Foolproofed the ability checks in ABILITYEFFECT_ON_WEATHER and ABILITYEFFECT_ON_TERRAIN
-Made BattleScript_OverworldWeatherStarts and BattleScript_OverworldTerrain call the battle scripts that handle weather form changes, weather abilities, terrain seeds and terrain abilities.
-Consequentially, I removed the activation for weather and terrain abilities that I added to TryDoEventsBeforeFirstTurn, and the activation of Protosynthesis in ABILITYEFFECT_ON_SWITCHIN.
-Added a weatherAbilityDone to prevent abilities that lack self-checks like Protosynthesis from getting stuck in a loop.
-Removed now pointless ABILITYEFFECT_WEATHER_FORM. I think Duke/Sneed69 added it to fix Castform's form change, but it no longer serves a purpose.
Mimicry is now a proud member of ABILITYEFFECT_ON_TERRAIN.
Misc. changes:
-Ditched the dependency on and usage of gBattlerAttacker for the effects inside ABILITYEFFECT_ON_WEATHER and ABILITYEFFECT_ON_TERRAIN.
-Made Cmd_switchineffects activate ABILITYEFFECT_ON_TERRAIN to take into account overworld weather-induced field terrains.
-Updated the text strings printed by the battle scripts inside the aforementioned AbilityBattleEffects caseIDs.
-Removed constant label of unused VARIOUS_TRY_TO_APPLY_MIMICRY which I forgot about.
-Updated ChangeTypeBasedOnTerrain, partly as a result of the aforementioned changes but also for optimization purposes.
-There was never a reason to establish an empty scope, or to use GET_MOVE_TYPE and the variables that complemented it.
-Removed case ABILITY_QUARK_DRIVE from AbilityBattleEffects' case ABILITYEFFECT_ON_SWITCHIN.
- Fix 'mon with Flying in type3 but not type1 or type2 is set to
uninitialized roostTypes.
- Remove unread third roostTypes element.
- Option for Gen IV pure-Flying behavior.
Anger Shell:
-Made it print a string from the gStatDownStringIds table while lowering Def and Sp. Def
-Made it use the shiny new modifybattlerstatstage macro.
-Made it activate multiple times per battle, as it should.
Well-Baked Body:
-Turned it into an absorbing ability.
Wind Rider:
-Turned it into an absorbing ability.
-For its Tailwind interaction, I made it activate only when Tailwind kicks in successfully, instead of whenever it's active at the end of a turn.
Guard Dog:
-Updated its check inside BattleScript_EffectHitEscape.
-Moved it from Cmd_forcerandomswitch to BattleScript_EffectRoar.
Wind Power:
-Split off its move end effect from Electromorphosis'.
Electromorphosis:
-Split off its move end effect from Wind Power's.
Hadron Engine:
-Merged its Switch In effect with Electric Surge's.
Protosynthesis:
-Fixed its stat boost.
Quark Drive:
-Fixed its stat boost.
Cud Chew:
-Updated its ENDTURN effect's berry check.
Supreme Overlord:
-Tweaked the looping i variable's data type, the order of the variables and the checks inside ApplySupremeOverlordModifier.
Earth Eater:
-Turned it into an absorbing ability.
Misc changes:
-Added a variable to set the amount of stat stages raised inside AbilityMoveEffects' case ABILITYEFFECT_ABSORBING.
-Added a preproc config to update the text string that they print.
-Limited the scope of atkHighestStat and defHighestStat in CalcMoveBasePowerAfterModifiers to Protosynthesis's and Quark Drive's effects.
- Dragon Tail and Circle Throw strike twice and then switch the target
- Z moves are unaffected by Parental Bond
- Renamed parentalBondOn to parentalBondState
- Added constants for possible values of parentalBondState
- Fixed broken stat change animations and removed unused MOVE_EFFECT_SKY_DROP