Added a new variable hasAbility that keeps track of all available
abilities on a Pokemon, reducing the verbosity of ability checks
within the move rejection stage of the algorithm.
Also, change the Solarbeam check to look for Drought directly.
- Previously, a Pokemon unable to execute Pursuit against a slower
target would attempt to execute Pursuit again should its target switch
out with U-turn, Volt Switch, or Parting Shot, which would run two sleep
checks, freeze checks, etc.
- Accept Baton Pass with Wish, speed setup, Pokemon with Speed Boost.
- Removed Baton Pass from Glaceon in favor if Wish and Protect.
- Removed Agility from Emolga since it doesn't need it; added Encore.
- Try to improve Spiritomb by giving it Calm Mind as an option
- Prevent Shadow Sneak with RestTalk
- Prevent Storm Throw with Circle Throw in some cases
- Reject Rest if the Pokemon does not have Sleep Talk but has it in its
move pool (Pokemon with RestTalk are designed to use both and not just
Rest)
- Combine setup checks and allow a single attack with setup only if the
Pokemon has RestTalk
Just like the recent change to make Protean count all moves as STAB, do
the same with -ate abilities and Normal moves.
Manually include Nature Power as a damaging move since it becomes Tri
Attack. Its placement lets it automatically increment the -ate counter as
well.
- Do not count Fake Out as STAB because it can only be used once per
switch-in
- Protean means the Pokemon always has STAB and shouldn't get any move
removed in post-processing
- Prevent too many Dark-type moves
It currently gets Leftovers if it has Stealth Rock, and has a chance of
getting Expert Belt as well, but it should never get any other item. It
is a special case because there isn't a glass cannon as extreme as this.
It is not acceptable as the only STAB move because it is a 40 base power
Normal-type attack... No Normal-type Technician gets it either, unlike
other priority moves.
It's used on defensive Pokemon that shouldn't get Life Orb, Choice or
Expert Belt. Also removed checks that where added because of the old
Weakness Policy selection.
The previous one doesn't apply to Dragonite or Lugia. This prevents
Focus Sash Lugia if it is your first Pokemon.
Also moved the low priority Black Sludge selection above Leftovers for
the case of Poison/Flying Pokemon.
- Reject Trick/Switcheroo with Acrobatics so that the Pokemon can properly
receive Flying Gem
- Reject Rapid Spin with setup
- Do not reject Knock Off with setup
Mostly Gen 1-2 Pokemon were changed.
Added Moonblast where the usage stats were indicating that it was as
commonly used than Dazzling Gleam in Doubles. Reject Moonblast with
Dazzling Gleam.
Reject Return with Double Hit (for Ambipom).
Reject Power Split with Guard Split (for Shuckle).
Reject Acid Spray with Sludge Bomb (for Tentacruel).
Pokemon with Focus Energy have Scope Lens.
Aeroblast is now considered STAB.
- Reject Body Slam instead of Glare (so Dunsparce has a higher chance of
getting Glare + Headbutt rather than Body Slam + Headbutt)
- Reject Substitute with Taunt
- Update moves that are unacceptable as the only attacking move
- STAB is required for almost every mono-attacking case, exception is
that Fairy is allowed for Psychic types and Ice is allowed for certain
Normal types
- Always give Sylveon Hyper Voice
The current variables in place to check for STAB do not work as intended.
If a Pokemon has two STAB moves of the same type, and one of them is set
as a move that shouldn't be counted as STAB, the Pokemon will be counted
as not having STAB. Since nothing in the code checks for Pokemon having
STAB of a specific type, it is refactored to be a boolean instead.
In order to avoid a situation where a move like Infestation sets the STAB
variable to true when it doesn't count as a damaging move, these kinds of
moves no longer increment counters for abilities that boost damage, like
Adaptability.