Commit Graph

1137 Commits

Author SHA1 Message Date
The Immortal
15bea251f3 Update Challenge/Hackmons Cup scripts 2016-11-19 14:11:14 +04:00
Ivo Julca
4a7b859128 Remove old megaevo decisions from queue on priority Pursuit 2016-11-19 02:54:53 -05:00
Guangcong Luo
b2393799c2 Suppress crash in mega evolution 2016-11-19 02:27:11 -05:00
Ivo Julca
78ab0bdf31 Implement Spectral Thief 2016-11-18 18:26:16 -05:00
Ivo Julca
c1b8aa52d2 Fix Z-Move single-use restriction 2016-11-18 18:26:16 -05:00
Ivo Julca
f2b5d74159 Store total damage across move hits as move.totalDamage 2016-11-18 13:55:57 -05:00
Guangcong Luo
6bd05bed2c Fix specialized Z moves
Specialized Z moves like Catastropika etc weren't working correctly.

Also, the generic Z moves weren't changing category correctly.
2016-11-18 03:53:03 -05:00
Guangcong Luo
224cf25e46 Fix bugs in Z-moves 2016-11-18 01:46:56 -06:00
Guangcong Luo
8f7d189838 Implement Z-moves 2016-11-18 02:44:29 -05:00
Ivo Julca
c8308ccd89 Sheer Cold no longer affects Ice-type Pokémon 2016-11-18 01:53:24 -05:00
panpawn
516bc8c5c6 Fix build errors (#2899)
Usage of `var` is deprecated
2016-11-18 00:42:39 -05:00
Ivo Julca
511a45eb95 Implement immunity of Dark-types to Prankster
The immunity also applies to any moves, even non-Status, called by
other Prankster-boosted moves.
2016-11-18 00:35:52 -05:00
Guangcong Luo
ae0abfb574 Gen 7 Challenge Cup 2016-11-17 23:41:11 -05:00
Guangcong Luo
acfeb39e7e Stub Z-move implementation
This is only the |request| half.
2016-11-17 23:41:11 -05:00
Ivo Julca
a1405e9c43 Gen 7: Turn order is decided by the ability and stats of the mega forme 2016-11-17 21:00:48 -05:00
The Immortal
e19aa8b77b Add gen 7 beta formats 2016-11-18 03:37:55 +04:00
Marty-D
83acbc578d Add preliminary Gen 7 changes 2016-11-17 11:06:12 -06:00
The Immortal
e65eed19a1 Random Battle: Minor improvements 2016-11-17 20:15:33 +04:00
The Immortal
564c28f158 Random Battle: Improve special setup sets
This fixes Pokemon having two of the same type moves, for example
Fire-types with Fire Blast and Lava Plume or Psychic-types with Psychic
and Psyshock, because the Hidden Power was rejected.
2016-11-06 20:19:56 +04:00
The Immortal
21cd59d2f8 Random Battle: Improvements 2016-11-01 10:13:44 +04:00
The Immortal
bc49845604 Random Battle updates
- Improve Aerodactyl’s moves
- Make sure Dedenne has STAB other than Nuzzle
2016-10-30 01:58:47 +04:00
Guangcong Luo
7d8d47c97c Refactor BattleEngine
Battle is now an ES6 class... mostly... it's complicated.

Battle's inheritance system has always been a mess. I tried to redo it
in a sensible way but it caused nondeterministic test failures. Not
even kidding; different things would fail each time I ran tests, even
without code changes. I'll investigate closer later, but this refactor
makes it use ES6 classes with only a small amount of hacking, which is
good enough. It is, at the very least, simpler than the previous mess.

BattleEngine.Battle.construct has been renamed BattleEngine.construct.
2016-10-22 23:11:26 -05:00
The Immortal
736598eaf3 Random Battle: Improvements
- Update moves for Cosplay Pikachu
- Prevent Protect with dual screens
- Lower Castform’s rate
2016-10-19 22:30:04 +04:00
The Immortal
f11cf66b03 Random Battle updates 2016-10-16 18:11:43 +04:00
urkerab
efdc8e33a0 Run powder immunities in the correct order (#2842) 2016-10-14 23:11:59 -04:00
The Immortal
95ab7f66f4 Random Battle updates
Fixes #2796
2016-10-10 23:55:51 +04:00
Marty-D
aac63d3e26 Fix various issues with Bide
Corrects all of the following
Gen 2: lasts 2-3 turns
Gen 3: can't hit Ghosts
Gen 4: can hit Ghosts, stops immediately when the user falls asleep or
becomes frozen
Gens 2-6: Stops immediately when the user is prevented from moving
2016-10-06 21:33:30 -04:00
The Immortal
b078676c35 Remove the Seasonal format 2016-10-05 23:07:35 +04:00
The Immortal
741a07f324 Random Battle: Update items 2016-10-01 02:05:27 +04:00
Marty-D
bc652d4f62 Fix Struggle recoil timing
Fixes #2780
Also fixes a damage rounding issue.
2016-09-24 20:39:45 -04:00
The Immortal
ff09fc86dc Random Battle: Give Reuniclus Magic Guard
Regenerator is generally a good ability, but Reuniclus always prefers
Magic Guard.
2016-09-17 17:45:50 +04:00
The Immortal
c32b324ee4 Random Battle: Give weather abusers Life Orb 2016-09-12 21:50:56 +04:00
The Immortal
63a457ff50 Random Battle updates
- Give Togetic Super Luck
- Prevent Physical and Special setup on the same set
2016-09-11 05:03:27 +04:00
The Immortal
3c10010305 Allow Togetic in Randoms 2016-09-07 04:12:43 +04:00
The Immortal
61a6975424 Remove randomDoublesTeam
It’s almost identical to randomTeam.
2016-09-07 04:11:41 +04:00
Taylor Everding
1a1f64fe95 Remove .js extension from requires (#2725) 2016-08-30 00:04:40 -05:00
The Immortal
2a63a84544 Random Battle improvements 2016-08-23 22:16:14 +04:00
urkerab
d5b985adc5 Make Illusion wear off properly after Ability-ending effects (#2638) 2016-08-11 18:47:58 -04:00
The Immortal
5704e1b059 Random Battle: Buff Slurpuff 2016-08-06 01:36:41 +04:00
Ivo Julca
62a5397083 Lint: Use latest version and features of ESLint 2016-08-03 01:24:36 -05:00
Marty-D
cd974caf3d Add Poison Touch activation 2016-07-29 11:39:38 -04:00
urkerab
2855e26d07 Slice template types before sorting (#2648) 2016-07-27 00:38:17 +04:00
The Immortal
62c8d78b8e Random Battle updates
Closes #2603
2016-07-13 00:53:27 +04:00
asgdf
92dd3cb57d Replace confusing variable name (#2619)
A variable named "pokemonLeft" should probably not be increasing. Since
it's effectively referring to the current size of the team, might as well
use Array.length.
2016-07-11 18:29:50 -05:00
asgdf
c695a33a97 Make 5 mon monotype randbats teams way less likely (#2611)
Due to the "each type combination only once" restriction, Normal-type
teams had a ~0.1% chance of having only 5 members, as most of its type
combinations are only used by a single mon which could easily be skipped
due to tier restrictions or bad luck.
The types were also not sorted before filtering, so it was entirely
possible to have Fighting/Psychic and Psychic/Fighting on the same team.
So, this sorts before filtering, but raises the limit to 2 of each
combination per team, which hasn't yielded any 5 mon teams across 10000
generated teams.
2016-07-09 20:38:20 +04:00
The Immortal
e17527180e Random Battle: Prevent Draco Meteor with Outrage 2016-07-08 22:12:58 +04:00
Marty-D
a99bd01cf3 Refactor boosting
- Boosts now show the correct boosting message (i.e. using Swords Dance
at +5 Attack will show the +1 message instead of +2).
- Boosts now show the appropriate maxed out message when a stat cannot
be raised/lowered further, instead of simply failing or failing
silently, unless the boost is an additional effect.
2016-07-06 11:28:06 -04:00
Juanma Serrano
e1d8459dc4 Seasonal: Fix typos 2016-07-03 12:34:09 +02:00
Juanma Serrano
b647742cdf Seasonal: Use learnset if no random moves set found 2016-07-03 11:00:22 +02:00
Kevin Lau
2df9f27b9f Implement July Seasonal: Fireworks Frenzy (#2602)
Sky Battle with Fire-type "hail" in the form of fireworks sparks.
2016-07-03 01:44:49 -07:00
Guangcong Luo
21a742a591 Add hint clarifying no-PP message
We've gotten way too many "bug reports" about it.
2016-06-26 22:41:05 -07:00
The Immortal
2e42e97e4f Random Battle: Improve Water-type Pokemon 2016-06-26 05:31:48 +04:00
Ivo Julca
2215696664 Fix syntax error from de04698 2016-06-18 21:20:25 -05:00
The Immortal
de04698b7f 80d27e1: Use find instead of filter
And remove unneeded parentheses from df66184.
2016-06-19 01:13:11 +04:00
The Immortal
80d27e1276 Random Battle improvements 2016-06-19 00:33:53 +04:00
Kevin Lau
e3ef19dadd Seasonal: Pass custom move sets into randomSet when generating teams (#2591)
This fixes issues like getting Choice items on Pokemon with setup moves.
2016-06-17 17:44:21 +02:00
urkerab
2b95a4eb10 Fix ability activation for Oblivious, Overcoat and Own Tempo (#2589) 2016-06-17 11:40:44 -04:00
Ivo Julca
9b73eae8b7 Imprison should not hide targetable disabled moves 2016-06-17 10:00:48 -05:00
urkerab
69012290e3 Remove unnecessary format parameter to randomTeam (#2590) 2016-06-17 12:25:37 +04:00
Kevin Lau
df66184dad Random Battle: Reject Hidden Power with Rest (#2585)
Affects Roserade, since if it has Rest it prefers Natural Cure over
Technician as an ability and thus Hidden Power will be too weak.
2016-06-16 05:02:08 +04:00
Juanma Serrano
ded5df548c Seasonal: Remove CAP and add Pelipper ability 2016-06-05 19:13:57 +02:00
Juanma Serrano
d6fb82af55 Add June Seasonal, June Jubilee: Revenge 2016-06-05 18:43:59 +02:00
urkerab
be0f9d3be2 Show ability activation when it causes an immunity (#2555)
- Also improve `trySetStatus` and `moveHit` implementations
2016-05-22 18:44:54 -04:00
The Immortal
c1af24faff Random Battle: Improve NFE Pokemon 2016-05-23 02:27:55 +04:00
The Immortal
e44d406cbb Scripts: Use Array#includes 2016-05-23 02:07:35 +04:00
Ivo Julca
89f7cb1951 Fix up Battle Factory after a876232d 2016-05-17 05:37:30 -05:00
The Immortal
a876232d33 Update random team generators
- Remove `randomMonotypeTeam` and use `randomTeam` for Monotype Random
Battle. This prevents having to maintain two functions, in addition to
removing duplicate code.
- Improve Monotype teams by preventing more than one of the same type
combination.
- Remove no longer needed Pichu-Spiky-eared check from
`randomDoublesTeam`.
2016-05-17 00:30:40 +04:00
The Immortal
92515e9b8b Random Battle: Adjust Meowstic rate 2016-05-05 22:12:42 +04:00
urkerab
68af97f71d Always use Object.values(template.abilities) (#2543) 2016-05-02 12:18:40 -07:00
Juanma Serrano
0b229ba7d5 Random Doubles Battle: Remove Slaking
While Slaking has a gimmick use with skill swap, gastro acid, simple ray, etc., in this random format it makes a battle basically a 5v6 battle, where you can Protect on its loafing around turns or make it switch, lowering offensive pressure and receiving more damage.
2016-05-01 21:26:35 +02:00
The Immortal
046b8df3d4 Add AfterMega event
This is a useful event that prevents the need for mods in several OMs.
2016-05-01 20:37:23 +04:00
The Immortal
45b4d937c3 Random Battle: Remove SolarBeam if Sunny Day is rejected 2016-04-27 14:51:02 +04:00
Kevin Lau
108c77e00d Random Battle: Various sun-related fixes (#2536)
* Random Battle: Don't reject Swords Dance with no-sun Growth

This will allow Growth to be rejected first. Affects Victreebel.

* Implement fastPop function

fastPop is a generalization of sampleNoReplace. While sampleNoReplace
removes a random element from the array without regard to order, fastPop
allows for a specific element to be removed. This speeds up the removal of
items from the move pool in random battles in situations where it is
needed.

* Random Battle: Remove Weather Ball from pool if Sunny Day is rejected
2016-04-27 03:03:44 +04:00
Ivo Julca
22779102cc Lint: Add miscellaneous extra rules
Among the newly added rules, there are quite a few intended to enforce
compliance of CONTRIBUTING.md-blessed idioms, as well as ensure
safe usage of classes and constant bindings.

We are also now enforcing usage of early return in commands.js,
which has 100% compliance as of fd2c45c.
2016-04-25 21:52:21 -05:00
Kevin Lau
99e1cc04f0 Random Battle: Explosion should not be the only STAB
Affects Glalie-Mega.
2016-04-22 00:33:16 +03:00
mizdra
f262d02c42 Fix recoil in Gen 3-4 (#2461)
* Fix the 1/3 recoil moves in Gen 3-4
* Fix rounding recoil in Gen 3-4
2016-04-18 16:26:54 -04:00
cadaeic
9a4a6f707b Implement Triple Kick multiple accuracy checks (#2495)
* Implement Triple Kick multiple accuracy checks

* Implement Triple Kick multiple accuracy checks
2016-04-10 14:29:23 -07:00
The Immortal
514ac92d7f Random Battle: Improve Dunsparce 2016-04-11 00:57:57 +04:00
Juanma Serrano
067dd4db14 Remove OM of the Decade 2016-04-02 13:39:39 +02:00
Bär Halberkamp
0a3a65ee9e Fix shitmons 2016-04-01 14:19:50 +02:00
Juanma Serrano
7b48c14579 OMotD: Fix typo 2016-04-01 13:59:34 +02:00
Juanma Serrano
9349b8e7f5 Implement new OMs of the Decade 2016-04-01 13:55:14 +02:00
The Immortal
a8776fdb45 Random Battle: Prevent Psychic and Psyshock together 2016-03-19 07:07:22 +04:00
Ivo Julca
0281176fd1 Remove usage of Array|Object methods implemented by Sugar.js
Adds a dependency to shim Object.values until it's natively available.
2016-03-09 16:55:34 -05:00
Ivo Julca
23573646de Fix information leak in random formats 2016-03-04 19:46:25 -05:00
Quite Quiet
20877368a3 Pass list of hit targets with [spread] 2016-03-03 22:57:11 +01:00
Quite Quiet
7a14a8f547 Notify client when a move is a spread move 2016-03-02 10:42:09 +01:00
Juanma Serrano
b88cf8fb7c Seasonal update
Improve Grappling Hook and add a move for Summer
2016-03-02 09:55:13 +01:00
Juanma Serrano
c92f87993f Implement March Seasonal, Dimension Doom 2016-02-29 14:44:51 +01:00
The Immortal
5047fda6fc Random Battle improvements 2016-02-28 00:35:15 +04:00
The Immortal
9e16f45902 Random Battle updates
- Improve Flying types by making sure they have a second STAB if they
need it
- Revert bf0af09d7c and instead hardcode
the moveset modification for Aggron; Autotomize does have a benefit
with Heavy Slam
2016-02-27 03:24:51 +04:00
The Immortal
2b02f1ee2e Random Battle: Prevent Trick with setup 2016-02-17 18:06:37 +04:00
The Immortal
00ea930a93 CC: Fix Smeargle having CAP moves 2016-02-16 18:20:35 +04:00
The Immortal
ab7eb70c44 Random Battle: Add minimum SpD for Assault Vest
Fixes #2424
2016-02-16 16:42:00 +04:00
Guangcong Luo
76dd4a586f Remove unused isSetup variable 2016-02-16 01:08:55 -05:00
Guangcong Luo
b665660608 Refactor for more ES6 features
Now that nodejs/node#3072 is mostly fixed, we can finally start using
Node 4+ features.

This refactor:

- uses arrow functions where appropriate

  Note that arrow functions still aren't used in Mocha, where `this`
  is sometimes meaningful.

  This also removes the need for .bind() nearly everywhere, as well
  as the `self = this` trick.

- refactors Validator and Connection into ES6 classes

- no longer uses Array#forEach for iterating arrays

  We strongly prefer for (let i = 0; i < arr.length; i++) because of
  performance reasons. Most forEaches have been replaced with for..of,
  though, which is 5x slower than the long-form loop but 2x faster
  than forEach, which is good enough outside of most inner loops.

  The only exception is tournaments, which is due for a more invasive
  refactor soon anyway.
2016-02-10 17:40:21 -06:00
The Immortal
477d11c906 Random Battle: Improve Lucario 2016-02-08 01:30:32 +04:00
Guangcong Luo
8a8838552d Improve crashlogger
Crashlogger now supports passing in a dictionary of additional
information to report, so we no longer need to resort to making fake
errors.

The hadException parameter has now been removed entirely. I don't know
of a use case for it to be false.
2016-02-04 03:04:05 -06:00
Marty-D
4c8ab041ce Fix Protean interaction with Toxic 2016-01-20 21:05:49 -05:00
Guangcong Luo
85ddb7dddb Fix Pressure PP deduction
It was deducting PP for called moves and second turns of two-turn moves.
2016-01-19 20:01:09 -05:00
Guangcong Luo
f3d10c0122 Merge pull request #2368 from urkerab/sample-no-replace
Simplify sampleNoReplace function
2016-01-13 20:11:45 -08:00
urkerab
4a5b7f6c88 Simplify sampleNoReplace function 2016-01-14 01:06:16 +00:00
Kevin Lau
3de25827cb Random Battle: Reject Tinted Lens without variable-damage attacks 2016-01-11 21:37:24 -08:00
The Immortal
8e868eba9d CC: Fix Rotom formes and Pumpkaboo-Super 2016-01-11 19:10:50 +04:00
The Immortal
7b2c60c536 Random Battle: Prevent Trick with Sucker Punch
Affects Zoroark.
2016-01-11 09:17:44 +04:00
Kevin Lau
17bbc24027 Seasonal: Reduce number of Pokemon 4x weak to Ice 2016-01-05 20:28:53 -08:00
Kevin Lau
f8e881a416 Implement January Seasonal, Polar Opposites
Mono-Ice, Inverse Battles.
2016-01-04 14:17:51 -08:00
Guangcong Luo
78db0952e8 Fix bug with formes in random battles 2016-01-04 12:37:36 -05:00
Konrad Borowski
81f602b8d8 Always use trailing comma for multiline objects 2016-01-01 00:20:07 +01:00
The Immortal
6eabca8b25 Random Battle improvements 2015-12-31 21:10:09 +04:00
Guangcong Luo
1f750fead0 Remove forme name from default nickname 2015-12-30 22:11:46 -05:00
The Immortal
4a48d8c398 Random Battle: Fix Rest/Sleep Talk sets 2015-12-30 19:52:34 +04:00
The Immortal
c85d1c038b Random Battle: Improve Snorlax and Swellow 2015-12-29 22:40:57 +04:00
Marty-D
17009c4a7b Challenge Cup: Fix item generation 2015-12-29 11:52:28 -05:00
The Immortal
1b2dfac818 Random Battle changes
- Fix the teamDetails changes from f26a418
- More RestTalk improvements
- Don’t count Sand in type combo limit
2015-12-25 13:38:20 +04:00
The Immortal
f26a418ea3 Random Battle updates 2015-12-25 04:05:43 +04:00
The Immortal
a8951205ec Random Battle: Prevent Sleep Talk without Rest
More strictly than previously.
2015-12-22 21:39:25 +04:00
Kevin Lau
8d25d46f43 Random Battle: Favor Poison Jab over Sludge Wave on Seviper
Because of how moves are generated when a Pokemon has a setup move in its
move list, Seviper has a high chance of getting bad sets if Poison Jab is
rejected and Coil is added to its moves.
2015-12-21 01:15:34 -08:00
The Immortal
ce41ed8435 Random Battle updates 2015-12-18 03:09:47 +04:00
The Immortal
2de41c569f Random Battle updates 2015-12-15 21:35:52 +04:00
The Immortal
583fc9b483 Random Battle: Fix AG check
The original check didn’t do anything because Megas are selected in
randomSet and not in randomTeam.
2015-12-15 01:23:31 +04:00
Marty-D
2e83e276ef Fix minimum recoil damage properly
- Recoil damage is always minimum 1
- Gen 5 is the only exception: if the move dealt 0 damage, no recoil
occurs
2015-12-13 23:17:49 -05:00
The Immortal
cbbb792310 Random Battle updates
- Add a counter for draining moves; give Pokemon Life Orb with
Substitute if they have a draining move
- Do not Reject U-turn on Mega Beedrill
- Prevent Focus Sash on lead Pokemon that have a recovery move
- Increase the level of non-setup Slurpuff
- Remove AG Pokemon from Random Battle
2015-12-13 01:34:37 +04:00
The Immortal
bcf0fed850 Ban Shadow Tag from OU
And remove the unneeded bans in UU and Tier Shift, as well as update
Random Battle levels.
2015-12-12 05:53:13 +04:00
Kevin Lau
e322393d9e Revert "Random Battle: Fix dual STAB for Psychic-type Pokemon" 2015-12-10 13:08:25 -08:00
The Immortal
affe8c9be6 Merge pull request #2314 from ascriptmaster/randoms
Random Battle: Fix dual STAB for Psychic-type Pokemon
2015-12-11 00:40:44 +04:00
Kevin Lau
6b92afafdf Random Battle: Fix dual STAB for Psychic-type Pokemon 2015-12-10 12:10:05 -08:00
The Immortal
48f9f97375 Random Battle improvements
- Reject Sucker Punch if you have more than one Dark attack and Dark
isn’t one of your types
- Improve Adaptability check (fixes #2312)
2015-12-11 00:05:57 +04:00
The Immortal
e48ac8338b Random Battle updates
- Improve Ice types
- Remove check for moves in the pool (affects Darkrai requiring Dark
Void)
2015-12-09 22:50:39 +04:00
The Immortal
850789247d Random Battle: Improve Electric types
Electric types should always have an Electric attack.
2015-12-07 18:55:50 +04:00
The Immortal
8da6d39a9f Random Battle: Fix several checks
And prevent Night Shade with two other attacks.
2015-12-07 04:12:24 +04:00
The Immortal
a6d06116ff Random Battle: Keep track of the available moves
Previously, it only did so if the set had a setup move. This fixes a
bug introduced in the last commit, as well as checks that used these
counters.
2015-12-07 03:31:51 +04:00
The Immortal
4cfed633b4 Random Battle updates
- Do not reject attacking moves if they are none in the pool; no STAB
is better than a messed up set
- Set HP to activate Sitrus Berry after two subs
- Fixes #2306
2015-12-07 03:15:02 +04:00
The Immortal
2624c9fe51 Random Battle: Some setup improvements
- Reject Growth without Sunny Day
- Don’t count speed setup as a setup move if the Pokemon has a setup
move (fixes Landorus-T)
2015-12-06 20:32:24 +04:00
The Immortal
6fdb6a21eb Random Battle: Limit EVs to 85 2015-12-05 19:06:17 +04:00
The Immortal
6729fa0c80 Random Battle: Fix Mega Gardevoir 2015-12-05 01:07:49 +04:00
The Immortal
25344c2e24 December tier changes
- Megas tiered separately
- Remove custom Random Battle levels for Megas without stones
2015-12-05 00:20:22 +04:00
The Immortal
34fd61e1f3 Random Battle updates
- Fix Mega Lucario with only Bullet Punch as STAB
- Make sure dual typed Dark Pokemon have a reliable STAB
- Make sure dual typed Psychic Pokemon have a second STAB
- Only reject moves if there are moves in the pool to replace it
2015-12-04 15:32:33 +04:00
The Immortal
33e7e3c9fa Random Battle: Prevent Choice Band Dragon Tail 2015-12-04 02:17:11 +04:00
The Immortal
ddf2e27a4b Random Battle: Improve Healing Wish sets 2015-12-02 19:17:14 +04:00
The Immortal
758da01ccc Random Battle: Few improvements
- Fire types always get a Fire move
- Smeargle gets Focus Sash
2015-12-02 01:07:48 +04:00
The Immortal
29bfbd89f2 Update OMotM
Still have to code the second OMotM, but put the first one up, and
removed old seasonal.
2015-12-01 16:50:23 +04:00
The Immortal
cf89ca7bf6 Random Battle updates
-  Add Earth Power to Arceus-Dragon as it only has two Special moves
(which results in bad sets because of Calm Mind)
- Increment the correct type counter for Judgment
- Make sure Dragon types have a Dragon move, in certain circumstances
- Fix the “Pokemon should have benefiting moves” check to reject the
right moves (such as rejecting the 2nd setup move, and moves of the
incorrect setup type, first)
2015-12-01 03:50:47 +04:00
The Immortal
0b2cb6bda2 Random Battle: Few updates
- Reject Focus Punch, Sucker Punch, and Hidden Power when moves are
processed, not after (if they are the only attacking move)
- Simplify the checks for too many Dark moves by using the new type
counter; this should fix remaining Spiritomb issues as well
2015-11-28 14:13:08 +04:00
The Immortal
50365d9e2a Random Battle: Reset IVs if Hidden Power was removed
This was mistakenly removed in the previous commit.
2015-11-28 04:30:31 +04:00
The Immortal
d1877237ea Random Battle: Improve Genesect formes
Genesect formes tend to get bad sets because of the obligatory Techno
Blast. Removed Physical setup from them to fix this.

In addition, removed moveset modifications as they are no longer needed.
2015-11-28 03:54:49 +04:00
The Immortal
b19e7fd45b Random Battle: Improve Ground types and Rain Dancers
- Water Pokemon that have Rain Dance should have a Water attack as well
- Ground Pokemon that setup should always have a Ground attack
2015-11-28 00:08:34 +04:00
The Immortal
6eb94903dd Random Battle: Improve Kecleon
Make it so Protean users have at least one non-priority move.
2015-11-27 20:53:58 +04:00
Guangcong Luo
32a9c20ddd Give miss animations to spread moves in singles 2015-11-26 04:17:06 -05:00
The Immortal
7956c0135a Random Battle: Few improvements
- Add Vacuum Wave to Infernape
- Replace Thunder Punch with Stone Edge on Hawlucha
- Don’t count Vacuum Wave as STAB
- Prevent Vacuum Wave with Close Combat or Mach Punch
- Make sure Darkrai has Dark Void
- Make sure Yveltal has a Dark move
2015-11-26 13:00:57 +04:00
The Immortal
4068c7689a Random Battle: Team details additions
- Prevent multiple Toxic Spikes setters
- Reject Sand Veil if the team doesn’t have a sand setter
2015-11-26 02:56:03 +04:00
The Immortal
ccba1a64b9 Random Battle: Improve Liepard
This prevents it from getting Sucker Punch if it has Copy Cat.
2015-11-24 16:52:34 +04:00
The Immortal
ebef173e3d Random Battle: Fix RestTalk check 2015-11-24 15:31:04 +04:00
The Immortal
c8fea66fb2 Random Battle updates
- Check the move pool of a Pokemon when deciding to accept
Physical/Special setup
- Don’t count `NoStab` moves as STAB for Protean users
- Prevent Dark Pulse with Hyperspace Fury
- Fix Aura Sphere/Shadow Claw rejection to check setup
- Prevent too many Ice moves on Refrigerate Pokemon
- Reject Acid Spray with any Special moves
- Do not reject Bullet Punch with Adaptability
- Improved the rejection of moves that don’t satisfy setup requirements
- Make sure Gale Wings has a Flying move
- Remove unneeded combo checks (the consensus is that STAB is better
than Ghost/Fighting or Electric/Ice coverage)
- Give AG (Mega Rayquaza) the same chances of appearing as Uber
2015-11-24 06:55:10 +04:00
Kevin Lau
e6f0fb9760 Random Battle: Fix issues with deprecated 'ate' counter 2015-11-23 16:45:02 -08:00
Kevin Lau
6bcee1926d Random Battle: Update Gligar, Mega Charizard, Pyroar, and more
Gligar always gets Immunity.

Reject Solar Power on Mega Charizard (both formes)

Update move selection to ensure Fire Pokemon with Drought/Sunny Day get a
Fire move.
2015-11-23 16:22:34 -08:00
Kevin Lau
d8deac0e58 Random Battle Refactor: Track damaging moves of each type
Adds counters for each type in queryMoves. Many updates to ability checks
were also needed.

Also, update Random Double Battles to use teamDetails like Singles.
2015-11-23 16:22:32 -08:00
Marty-D
0d37b7946d Seasonal: Fix custom movesets
Merge conflicts were being resolved in the wrong direction, giving all Pokemon their normal Random Battle movepools.
2015-11-22 21:46:14 -05:00
Ivo Julca
52f1d43d3d Battle Factory: do not read Pokémon flags
They have been unused for a while.
2015-11-17 21:47:24 -05:00
Kevin Lau
53032b2851 Random Battle: Don't count weak moves for Life Orb item checks
By checking the damagingMoves index length instead of the number of
Physical and Special moves, it not only ensures no Life Orb for Pokemon
with Rapid Spin, but also Nuzzle (such as Pachirisu) and any other
potential cases that have been missed.
2015-11-17 11:56:51 -08:00
The Immortal
3af21a71f2 Random Battle: Prevent multiple Fire/Poison moves 2015-11-13 23:32:10 +04:00
The Immortal
5812136ddf Random Battle updates
- Add Knock Off to Watchog
- Prevent Ice Shard as the only STAB
- Prevent Superpower with RestTalk
- Only allow Endeavor on leads

(Fixes #2261)
2015-11-12 23:26:04 +04:00
Ivo Julca
4410843e5a Unhardcode alternate forme handling in random team generators
- 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.
2015-11-11 20:28:13 -05:00
The Immortal
a52d655e07 Random Battle: Prevent U-turn as the only STAB 2015-11-12 02:09:46 +04:00
The Immortal
65dfd4ee27 Random Battle: Improve Heliolisk
Fixes #2259.

And removed an unnecessary check for Forecast as the Castforms have their own sets now.
2015-11-11 23:47:35 +04:00
Guangcong Luo
ded9f1cd5d Fix duplicate cases in random set generators 2015-11-07 23:12:19 -06:00
Ivo Julca
04c64c143e Cleanup: remove several unused variables 2015-11-07 17:34:21 -05:00
Ivo Julca
2c2a3bdf58 Fix misplaced cases in random sets generators 2015-11-07 16:50:51 -05:00
Ivo Julca
0479d2b729 Clean up handling of variable bindings in switch statements 2015-11-06 21:58:36 -05:00
Juanma Serrano
c4ac8d6e2f Use strict mode and let and const instead of var
This commit also fixes some duplicated variable declarations.
2015-11-06 21:56:52 -05:00
Ivo Julca
ef4963e030 Battle Factory: PU is now playable 2015-11-06 01:00:43 -05:00
The Immortal
7b625b7380 Random Battle: Update levels for megas without stones 2015-11-05 03:18:43 +04:00
Juanma Serrano
41167748b6 Seasonal: Keep naming convention for team generator
Seasonal team generators all should be randomSeasonalNameTeam.
2015-11-04 01:18:23 +01:00
Ivo Julca
6742c1e2a6 Fix Seasonal corrupting randbats moves 2015-11-02 07:53:47 -05:00
Juanma Serrano
22d6f81294 Merge pull request #2201 from ascriptmaster/seasonal
Implement November Seasonal, Super Squad Showdown
2015-11-02 08:16:13 +01:00
The Immortal
11fd83d7f8 Random Battle: Move and Item updates
- Prevent Hidden Power as the only STAB on dual-typed Pokemon
- Prevent U-turn and Volt Switch with Baton Pass
- Prevent Life Orb on Forretress
2015-11-02 01:31:47 +04:00
Kevin Lau
a38aa59eaa Implement November/December Seasonal, Super Squad Showdown 2015-10-29 17:15:43 -07:00
Kevin Lau
fc0237649c Random Battle: Update Swellow
Remove Endeavor.

Force Guts on Pokemon with the ability and have Protect.
2015-10-28 15:29:45 -07:00
The Immortal
872c4995a6 Merge pull request #2237 from ascriptmaster/randoms
Random Battle: Ability and STAB Changes
2015-10-26 22:59:22 +04:00
Kevin Lau
ea1a2dee8c Random Battle: Setup and STAB Fixes
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.
2015-10-26 10:41:05 -07:00
The Immortal
5620f59553 Random Battle: Prevent Roar with setup 2015-10-25 16:37:20 +04:00
The Immortal
29b7b3b38e Random Battle: Update Tentacruel and Genesect 2015-10-23 13:39:23 +04:00
The Immortal
071f06dbfb Random Battle: Prevent Sleep Talk without Rest
And prevent an Orb on Guts RestTalk Throh.
2015-10-21 02:44:53 +04:00
The Immortal
f52d50be27 Random Battle: Ability and move updates
- 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
2015-10-21 00:32:35 +04:00
Juanma Serrano
2b0d9cd5b7 Seasonal: Remove items that clash with Trick-o-treat
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.
2015-10-15 10:12:13 +02:00
The Immortal
5ecdfd8dc9 Random Battle: Update Swellow and Contrary
- Add Protect to Swellow and prevent Endeavor with Quick Attack
- Make sure Pokemon with Contrary always have a move that benefits
(except Shuckle)
2015-10-14 19:54:13 +04:00
The Immortal
b6bb84323c Random Battle: Modify what's acceptable as two attacks
- BoltBeam is now only acceptable on Special Attacking Normal-type
Pokemon
- Night Shade / Seismic Toss with another non-STAB move is acceptable
2015-10-14 03:45:06 +04:00
The Immortal
d38b8d8bd8 Random Battle improvements
- 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)
2015-10-13 02:14:13 +04:00
Kevin Lau
2cabcc0c69 Update NFE Random Battle sets being used in Seasonals
Also, allow Pumpkaboo/Gourgeist formes in Seasonals and add a nickname for
Espurr.
2015-10-12 13:59:38 -07:00
Kevin Lau
06b5987bfb Seasonals: Pokemon now have five moves
Magikarps now gain Aqua Ring, which has been modified to heal 1/8 of
maximum HP.

Also fixed some minor typos.
2015-10-09 16:22:46 -07:00
Juanma Serrano
d18e90fd93 Implement October Seasonal, Spoopy Party
This is going to be the Seasonal Ladder for the remainder of October.
Super Squad Showdown will be finished and implemented for November.
2015-10-09 13:12:36 +02:00
The Immortal
d2bb5bf545 Random Battle: Don't count Clear Smog as STAB 2015-10-08 16:47:49 +04:00
Kevin Lau
1fa49099ce Random Battle Move and Ability Updates
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.
2015-10-05 17:07:47 -07:00
Marty-D
e8a6747e02 Fix multi-hit moves returning false damage when hitting subs 2015-10-03 15:00:29 -04:00
The Immortal
e2ef6ec36a Random Battle: Modify levels and Ability ratings
- Set Pokemon whose Ability is banned from UU at UU level
- Change weather Ability ratings, primarily to make sure Politoed
always gets Drizzle
2015-10-02 20:29:19 +04:00
The Immortal
25491fdcdf Add new OMs of the Month 2015-10-01 22:21:03 +04:00
The Immortal
849a48de9d Random Battle updates
- 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
2015-10-01 00:33:01 +04:00
Kevin Lau
6e486f9411 Random Battle: Update Cinccino
- 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.
2015-09-29 15:07:15 -07:00
The Immortal
4a8a776b83 Merge pull request #2174 from ascriptmaster/randoms
Random Battle: Ability and Move Updates
2015-09-28 21:41:13 +04:00
Kevin Lau
1a528be0c3 Random Battle: Ability and Move Updates
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)
2015-09-28 10:30:33 -07:00