Commit Graph

1026 Commits

Author SHA1 Message Date
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