Commit Graph

966 Commits

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