=begin

#===============================================================================
# To do
#===============================================================================

Other notes:
- Emergency Exit/Wimp Out should NOT trigger if the bearer gained that ability
  part-way through the move's usage (i.e. via Wandering Spirit swapping
  abilities).
- The messages for a held item boosting stats are slightly different to what
  they currently are:
    "The Weakness Policy sharply raised {1}'s Attack!"
    "The Weakness Policy sharply raised {1}'s Sp. Atk!"
    "The Weakness Policy was used up..."

- Ask whether a captured Pokémon, or an added Pokémon, should be put in storage
  or added to the party if the party is full. Also provide the option to look at
  its Pokédex entry. Have a way to force adding it to the party for plot
  purposes (battle rule?).

#===============================================================================
# Low priority or ignorable
#===============================================================================

Marks, which are symbols randomly given to wild Pokémon which append a title to
its name when sent out in battle. A Pokémon can only have 0 or 1 marks. The
title can be toggled. Ribbons also provide a title, and can similarly be
toggled. (Probably don't bother implementing.)

Bicycle that can work on water.

New evolution methods:
- Milcery: spinning while holding an item. (Doesn't suit our control scheme.
           We're not adding a way to easily spin on the spot just for this, cf.
           not having to turn your computer upside-down to evolve Inkay.)

I think there are some alternate forms which don't have a hidden ability while
their base forms do. I don't think the compiler supports this, and instead
treats Abilities and HiddenAbilities separately. Can work around this by setting
HiddenAbilities to be the same as Abilities. I'm not too happy with this.

Look at Sweet Scent's out of battle effect, namely whether it should try to
cause a horde battle (and what does that mean in Essentials? Maybe 1v3).

Maybe have multiple sets of Pickup items for multiple Gens. Probably not. Gens
7+ seem to have different item probability calculations - investigate.

Add a newer type of berry tree mechanics? Have a separate setting that prevents
deterioration?

Some abilities have changed effects:
- If another Pokémon faints before a Pokémon with Analytic makes its move,
  Analytic calculates whether it would have moved before or after the fainted
  Pokémon. In Gen 8, speed- and priority-modifying effects aren't considered,
  but in earlier Gens they are. Ignoring as this would be far too complicated to
  care about.

If a Battle Facility battle ends because of Rocky Helmet damage, the side that
the Rocky Helmet holder is on should lose (Gen 7+) or win (Gen 6-). In other
words, a decision should be reached as soon as main attack damage is dealt and
before additional effects (in Gen 7+).

#===============================================================================
# Implemented
#===============================================================================

Pokémon sent to storage aren't healed - see Settings::HEAL_STORED_POKEMON.

Super shininess. Only difference is an alternate shiny common animation with
square sparkles; a mon is super shiny if the calculated number that is compared
to Settings::SHINY_POKEMON_CHANCE is exactly 0 - see Settings::SUPER_SHINY.

Can now give a Rare Candy to a max level Pokémon, which will trigger its
evolution (presumably the item isn't consumed if it can't at least try to evolve
it) - see Settings::RARE_CANDY_USABLE_AT_MAX_LEVEL.

In Gen 8+, a taught TR should be added to the Pokémon's first_moves array. This
is done regardless of Generation, and doesn't need to be limited to Gen 8+.

New evolution methods:
- Kubfu (triggered by an event; Kubfu's form can be set beforehand by the event,
  so don't worry about the multiple forms it can evolve into)
- Galarian Farfetch'd (performing 3 critical hits in a single battle)
- Galarian Yamask: going to a particular spot after a battle in which it lost
                   49+ HP in a single battle from direct attacks and hasn't
                   fainted since then; healing with Potions doesn't affect this.

Added AI for new moves/items/abilities.

Can use Fly from within the Town Map if possible.

Town Map added to the pause menu.

Ability Effect Changes
- Intimidate now triggers Rattled. Rattled needs a new ability handler just for
  triggering this way.

Move Effect Changes
- Teleport switches the user out. If the user is a wild Pokémon, ends the battle
  instead.
- Look at the moves Nature Power turns into. (Unchanged since Gen 7)
- Curse's Ghost effect now targets a random foe (don't know if it can be non-
  adjacent); the target cannot be chosen by the player (it appears to target the
  user).
- Multiple Quashed Pokémon now move in order from fastest to slowest, rather
  than the order in which they were Quashed.
- Ensure that Choice items cause different moves to fail (without subtracting
  PP) if they were forced to be used by Instruct/Dancer.
- Rapid Spin now raises the user's Speed by 1 stage (100% additional effect
  chance).
- Howl's target changed to UserAndAllies, and is now a sound move. It is now
  blocked by Soundproof (I don't know if it should be checking the allies for
  pbImmunityByAbility, but leaning towards yes; will Volt Absorb block an
  Electrified Howl?). Needs a new function code, since it now affects targets
  rather than the user.
- Healing Wish's effect and Lunar Dance's effect are no longer used up if a
  Pokémon that switches to the targeted position can't make use of it. Each
  position can only have one of each effect applied at once.

Item Effect Changes
- Escape Rope's code now supports both consumable and non-consumable versions,
  depending on its definition in items.txt.
- If Leppa Berry is forced to be consumed, it will first try to work on a move
  with 0 PP left (preferring the earliest such move in the list of moves), and
  failing that, the earliest move in the list of moves which has any PP missing
  (no matter how much).
- Ability Capsule/Ability Patch should fail if used on Zygarde.
- Iron Ball shouldn't modify the effectiveness of Ground moves against a Flying
  holder if the holder is grounded by another effect that isn't Iron Ball.
  Opted to ignore this effect, and to modify the holder's effectiveness no matter
  what.

Other changes:
- Multi-Attack's power changed to 120.
- Rapid Spin's power changed to 50.
- Vice Grip renamed to Vise Grip.
- King's Rock/Razor Fang should probably stop using a flag to determine if a
  move is boosted by it, and instead check def flinchingMove?.
- Moveset changes.
- Some (12) existing species changed egg groups:
      Ralts, Kirlia, Gardevoir, and Gallade: Amorphous to Humanlike/Amorphous
      Trapinch, Vibrava, and Flygon: Bug to Bug/Dragon
      Hawlucha: Human-Like to Flying/Humanlike
      Bergmite and Avalugg: Monster to Monster/Mineral
      Noibat and Noivern: Flying to Flying/Dragon
- Aegislash's stats changed.
- Koffing/Weezing gained new abilities.
- Some items change names (Stick -> Leek, Bicycle -> Bike in Gen 6+, etc.). Only
  Stick changed.
- Changes to evolutions due to removal of moss rock/ice rock/magnetic field.
- Form differences.
- Maybe the DNA Splicers/N-Solarizer/N-Lunarizer/Reins of Unity should actually
  be two items each (one that combines, one that splits) and they alternate upon
  use. No reasonable game would have multiple sets of Pokémon to fuse at once,
  so allowing just one of each fusion at a time is probably fine.
- Zygarde Cube now changes a Zygarde's form/ability.
- If Neutralizing Gas switches in and negates Unnerve, should it cause an
  immediate triggering of held berries? Yes.
- Imposter should only trigger upon being sent in, and not by any re-triggering
  of switch-in abilities.

What happens to the PP of Iron Head when turned into/from Behemoth Blade/Bash
for Zacian/Zamazenta? It gets decreased to the total PP if it is higher than the
total PP of the new move, but cannot increase. This is already what happens.

In Gen 7+, Shaymin/Hoopa revert their form when withdrawn from storage rather
than when deposited. It still also reverts under other conditions. Shaymin
reverts its form when deposited in the Day Care (all Gens).

The game records, for each species, how many have been caught or defeated
(counts both wild and trainer battles), and the shiny chance increases for that
species because of this. This value is also shown in the Pokédex entry screen.

Some moves have changed properties/effects:
- Parting Shot is able to make the user switch out if its effect is redirected
  by Mirror Armor. Throat Spray is triggered and applies before the switch.
  (The Throat Spray part is done by default). All this already works this way.

Remote access to storage boxes via the party screen if you have the Pokémon Box
Link item (and it's allowed to be used - in Gyms and some other places it's
forbidden).

Make example event that combines the Gen 8 fossils.

The happiness evolution threshold value has lowered from 220 to 160. This is
because, in Gen 8, you have to use Pokémon Camp or berries to raise a Pokémon's
happiness above 179, which in turn is because affection effects have been added
(chance of resisting a KO, chance of shaking off a status problem, etc.) that
apply above 179 happiness. Pokémon Camp will not be added. Affection effects and
the 179 soft cap/160 evolution threshold may be added (the latter two should be
treated as related rather than separate settings).

If two Pokémon of the same species are in the Day Care, and one knows an egg
move(s) the other doesn't, and the other has an empty move slot(s), the other
will learn the egg move(s) from the one after a time. Egg moves are checked in
the order they're known by the one Pokémon. No egg moves are learned if the
other Pokémon doesn't have an empty move slot. Volt Tackle cannot be learned
this way. Gender is irrelevant. This is a feature of a Pokémon Nursery, which
is like the Day Care but is only for breeding and the deposited Pokémon don't
gain Exp (the fee is $500 per Pokémon up-front). The time it takes to do this
is apparently the same as egg generation (e.g. a chance every 255 steps), but
the parents don't need to be able to breed in order to learn egg moves.

=end
