- Use the recently added `battleOnly` template property to handle formes not directly allowed in-battle.
- Implement utility method `checkBattleForme` to unify handling of Mega and Primal formes.
Reject Sucker Punch if it is the only STAB move on a Pokemon with moves
that boost Special attacks.
Fix issues with setupType not being set properly with setup moves
appearing in mixed sets.
- Prevent Quick Attack as the only STAB on -ate
- Make Adaptability Pokemon get more than one STAB
- Allow Guts with RestTalk
- Make sure Milotic has Marvel Scale with RestTalk
Assault Vest disallows it.
Choice Band and Specs lock into it without giving a proper boost.
We give Life Orb to those so they can get a general damage boost.
- Don’t count Pursuit as STAB
- Prevent phazing moves with setup (unless with RestTalk)
- Prevent Fire Fang with Fire Blast
- Prevent Zen Headbutt with Psychic
- Prevent Substitute with Rest
- Remove Counter exception so Pokemon with it get their sets checked
- Make sure certain Pokemon always get a recovery move (currently:
Alomomola, Chansey, Blissey)
Add new sets for Cherrim-Sunshine specifically.
Reject Mach Punch as the only STAB move if the Pokemon does not have
Technician. Affects almost every Fighting Pokemon except Breloom.
Reject Bullet Punch as the only STAB move if the Pokemon does not have
Technician. Affects Metagross and Mega Lucario.
Don't count Charge Beam as singular STAB, and add checks for redundancy
with Thunderbolt based on the number of remaining Special moves. Affects
Emolga and Magnezone.
Reject Sheer Force with Fake Out in Doubles. Affects Hariyama.
Reject Flash Cannon with Iron Head in Doubles to match the rule in
Singles. Affects Aegislash.
Add Freeze-Dry as an option to Mega Glalie sets. Removed Crunch from its
Singles set and Taunt from both sets. Reject Ice Shard with Freeze-Dry so
it doesn't get too many Ice-type moves.
- Add Protect and Sleep Talk to Registeel
- Allow Shadow Sneak as the only STAB on mono-Ghosts
- Prevent Night Shade/Seismic Toss with STAB
- Reject Thunder Wave with Toxic instead of the reverse
- Remove Wake Up Slap because it's no longer Technician boosted.
- Change Technician to reject if a Pokemon has Skill Link and all their
Technician-boosted moves are Skill Link moves.
- Added Aqua Tail.
Miscellaneous changes:
- Placed Sheer Force within the counterAbilities section.
- Sorted the coutnerAbilities in the Random Doubles Battle code.
Reject Solar Power if there are no Special moves (affects Charizard).
If Rampardos does not have Head Smash, make sure it gets Sheer Force.
Don't set the setup type to Physical if there are no Physical moves and at
least two Special moves (or vice versa for Special setup)
- Do not count Eruption and Water Spout as STAB so Pokemon get an
additional STAB move with them
- Remove Water Spout from Octillery as it’s too slow to make use of it,
and add Scald + Gunk Shot
If both Physical and Special setup moves are present, and there are an
equal number of Physical and Special moves, choose setup based on the
first setup move in the moveset instead of randomizing it.
such as Lucario. Instead of always setting `setupType` to `Special` for
those cases, it now sets it to the one with the most attacks (or random
if it’s equal).
Also, added another check to fix the issue of too many Dark type
attacks on a Pokemon.
- Fixed Stealth Rock (and Defog/Spin, which isn’t as big of a problem)
being on multiple Pokemon
- Reject Snow Cloak without Snow Warning on the team
- Reject Swift Swim without Drizzle/Rain Dance on the team
- Give Mega Venuasaur Chlorophyll as a starting ability (because
Overgrow is useless)
- Give RestTalk Pokemon Leftovers (so they don’t get Focus Sash if they
are the lead)
This fixes a problem introduced by 77b6b666 causing certain Pokemon
with mega stones (and base forme of Audino) to have level 90 in
randbats.
This commit intentionally doesn't introduce any new levels for mons who
have their tier in parenthesis. Looking over the list of mons who don't
have hardcoded levels, most of them are barely improvement over their
base forme, which is the issue in a standard tiers with its limit of
one mega. However, because teams don't have to use a mega in randbats
(because of how its generator works), getting just a slightly version
of a Pokemon is not a big deal as it's still an improvement, even if
minor.
Mold Breaker is rated high but Basculin always prefer Adaptability. Add
Safeguard as an alternative to Destiny Bond for Wobbuffet (but prevent
both on the same set), and Sitrus Berry as an alternative to Leftovers.
Prevent Counter, Metal Burst and Mirror Coat from being rejected. They
only apply to Bastiodon, Chansey and Wobbuffet, who don’t care about
STAB.
Life Orb is selected unless the Speed Boost user has Substitute (in
which case Leftovers is selected later on). Also moved the Speed Boost
check above the Choice checks so that they don’t have to check for
Speed Boost.
The full description is in the comments of the Endless Battle
Clause entry in rulesets.js.
This update fixes a lot of the issues with yesterday's version.
Also included: A minor refactor of deductPP, which did not need
a success variable.
Rainbow Road is a Mario Kart and color themed seasonal.
Every few turns, a player can get an item that changes the course of the
battle, such as a Mushroom to increase speed.
Pokemon also get color moves that are super-effective on certain other
colors.
- Reject Sunny Day if the Pokemon lacks an ability that benefits, and
lacks SolarBeam
- Add Dark Pulse to Pyroar to fix the issue raised in #2063
- Reordered the Status cases to weather/status/recovery/other instead
of just alphabetical
Implement new function getMoveTargets to list all move targets given a
user and a move. Refactor Battle system to remove redundancies with
checking move targets. Run the RedirectTarget in this function instead of
later after TryMove, since technically single-target moves changing
targets should occur before the move is attempted.
Refactor the DeductPP event to be a singleEvent that targets the Pokemon's
ability instead of a global event. Run this event on the move's targets as
calculated by BattlePokemon#getMoveTargets.
Add a new event ModifyAccuracy that affects all moves other than OHKO
moves and switched many event handlers that originally used the Accuracy
event to ModifyAccuracy instead.
- On failure, they will no longer trigger the `AfterMoveSecondarySelf` event. It was a common pattern to check for success on its handlers, so this removes some duplication.
- All failed moves will now run any set `MoveFail` single events.
- Life Orb will now harm the holder if a successful attack did 0 damage (e.g. False Swipe on a 1 HP target).
Added BattlePokemon#isGrounded to check for the grounded-ness of a
Pokemon. Also BattlePokemon#isSemiInvulnerable for whether a Pokemon is
in the first turn of a two-turn move that makes them semi-invulnerable.
Fixed Terrain bugs involving Pokemon in a semi-invulnerable state.
Changed OHKO move check to use BattlePokemon#isSemiInvulnerable, fixing a
graphical bug that would display an immunity message when a Pokemon
attempted an OHKO move on a higher-leveled Pokemon that was being held by
the effect of Sky Drop.
Fixed Misty Terrain bug that was causing Rest and the effect of Yawn to
put Pokemon to sleep.
Fixed Misty Terrain bug that was causing Yawn to fail.
Fixed Electric Terrain bug that was causing Yawn to succeed.
Instead of having a hardcode in scripts.js that people needed to
reference, it seemed more intuitive to take advantage of the Damage
event instead, and have Rock Head negate damage within the event.
Fixed a bug in Gen-NEXT Rock Head exhibiting the same behavior that
was causing the original Rock Head + Mummy glitch.
- Removed Trick/Gyro Ball checks as no Pokemon uses that combination.
- Reject Life Orb on Pokemon with 55 or less base Speed.
- Add a check for slow and strong Regenerator Pokemon to receive Assault
Vest, at slightly higher priority than Sitrus Berry.
- Reject teams significatively weak to a single attack type.
- Improve rejection of multiple megas.
- Reject weather-based abilities without their associated weather.
In place of Challenge Cup 1v1. Challenge Cup 1v1 under the new Challenge
Cup rules (f73ea6a0ea) isn't a good
format. It's supposed to have some competitive element in that you can
make predictions on what an opponent might have to beat your "best"
choice and as a result you can counter-pick. But with the new Challenge
Cup, that goes out the window.
This adds a slightly updated version of the old CC generator.
- CC now follows Hackmons mechanics to differentiate it from Random
further (in other words, CC is now Hackmons CC)
- Took this opportunity to finally rename CC 1v1
- Commented out Gen 1 CC
- Sheer Force may not be user's Ability by the time `AfterMoveSecondary`
effects are checked
- Sheer Force boosted moves called by other moves now ignore
`AfterMoveSecondary` effects properly
This was implemented exactly the wrong way and showed fail messages
in a lot of situations they shouldn't show up, such as when
Close Combat's Def/SpD drops didn't happen.
This reverts commit 1edc40f936.
- Promoted Acedia and Audiosurfer.
- Fixed one of Diatom's ranks.
- Moved shaymin's and MattL's moves to the correct areas, as well as
Acedia's and Audiosurfer's.
STAB Hidden Power without the Pokemon's other STAB can be bad. Since
there's no real way to check if the Pokemon has the other STAB with the
current system, it's better to remove that check.
Reject Hidden Power with Special setup and 2 Special moves if:
- It is not STAB
- It is not part of a Ghost/Fighting combination
- It is not part of an Electric/Ice combination
- It is not being used by Lilligant, which needs it for coverage
This will help reduce repetition, and also will allow for the move
tracking to easily update after the final moveset modification
(for example, allowing Choice Band/Scarf Mega Rayquaza if its last
Status move was overwritten by Dragon Ascent).
Ninetales and Politoed are kept because weather is banned in UU (and
below) so they are PU as a result. However, weather is in Random Battle
so they are lowered to RU level. The same applies to Wobbuffet and
Shadow Tag.
While move.affectedByImmunities was always a Boolean value to denote if
the move was affected by immunities, move.ignoreImmunity can be a Boolean
value if it ignores or is affected by all type immunities, but also can
act as an object such that !!move.ignoreImmunity[type] means it ignores
immunities of that type.
Reject Hydro Pump with Waterfall (affects Samurott and Kingdra).
Reduce the number of moves available to Porygon2 so it has a higher chance
of getting Recover.
Added `%QuoteCS`'s Pokémon, move, and entering/dying phrases (I
talked with him on PS! for info on what he wanted).
Fixed casing on `%Birkal`, `%DTC`, and `%raseri`.
Moved `@rekeri`'s and `@Timbuktu`'s moves to the correct places.
The Doubles EV generator means it's more beneficial to give Huntail all
Physical moves (252 Atk Ice Fang outdamages 0 SpA Ice Beam, for example)
Remove Icy Wind/HP-Ice redundancy check because Keldeo no longer has
Hidden Power Ice on its random battle sets.
fixed casing on astara, bean, barton, and haunter
fixed `@Timbuktu`'s rank and added custom messages
added MattL and shaymin to voices since they 'retired/resigned'
Single Battle: Replace Rock Climb with Return if Tauros does not have
Sheer Force (1/3 chance of getting Intimidate)
Double Battle: Remove Rock Climb for Return and add Stone Edge, since
Tauros always has Intimidate in Random Double Battles
TryPrimaryHit, originally created for Substitute, is currently
being used for Substitute, gems, and auras. Neither of these
should affect all, foeSide, and allySide moves, so the event no
longer fires in these cases.
Included: Bonus: unit test for Substitute not blocking Stealth Rock
Disregard puny OM of the Month thing. That's for losers anyway.
From now on, the strongest and best OM is going to be added as the OM of the Decaed.
It will only be changed when a strongest OM appears and beats it off.
Right now, with no contender really, that OM is Final Destination. Any other OMs just pale in comparison.
If Ambipom doesn't have any Technician moves, give it Pickup instead of
Skill Link because Skill Link is useless on it and it might as well have
a slight chance of recovering an item if its item is Knocked Off.
With the EV generation policy in place for Doubles, it is detrimental
for Pokemon to run mixed sets, so some physical moves were removed
from Charizard and Dewgong.
Added Double-Edge to standard Pidgeot to give it extra damage output.
Reject Unburden on super-fast Pokemon (Accelgor) in Doubles like it is in
Singles.
Reject Wood Hammer with Giga Drain (Abomasnow)
In Generation 4, Simple did not double stat boosts as they changed.
Instead, it treated each stat boost as if it had twice the effect.
Reimplemented the deprecated ModifyBoost event, but with slightly
different functionality as before; it now modifies the live boosts so that
they work properly with Simple.
- Remove Sucker Punch from Hitmonlee as it gets Unburden majority of the
time (100% actually, according to usage stats) and already has Knock Off
- Remove old check specific to Breloom
- Fix Breloom getting Poison Heal when it wants Technician
- Sorted checks
- Removed old and unused checks
- Added new checks and updated several current ones
Moves:
- Moved some cases to be in the appropriate section
Abilities:
- Fixed a Pokemon's third ability never being used if it has the same
rating as `ability1` (example: Iron Fist has 0% usage on Conkeldurr
because it is rated the same as Guts)
Items:
- Reordered the checks / changed priority of items
- Update Eevee General's moves
- Add Shame That
- Slightly nerf Dell by removing the accuracy boost, which means he
actually has some risk with Jump Kick
Fix a typo in bloobblob's faint sentence.
chaos's move should not be bounceable.
Update Goddess Briyella's move: change name and animation.
Update Beowulf's moveset, make Spiky Shield mandatory.
Update Legitimate Username's moveset.
Update Queez, he's now a moderator.
This Seasonal is a joined effort of the whole staff team.
It contains over 100 custom sets and moves, allowing users to play the whole month and still find new things.
For format editing purposes, let it be noted that the Seasonal starts on line 348 and ends on line 3211 on formats.js as of this commit.
While I'm making the final commit to the master repository, let it be noted that this huge code is a joined effort of some members of the staff.
Special thanks to people who have worked on this code, without whose contributions this Seasonal couldn't have been finished for this month:
@ascriptmaster @cadaeic @Slayer95 @TheImmortal @xfix
More information for this special format can be found here:
http://www.smogon.com/forums/threads/3491902/page-6#post-6093168
- Removed it from Pokemon that are too weak to use it.
- Reject Feint with Fake Out (for Persian).
- Update move checking to not count single hit moves with 30 base power as
damaging moves.