Commit Graph

68 Commits

Author SHA1 Message Date
The Immortal
76b6030043 Fix Relic Song 2016-08-04 03:41:15 +04:00
Marty-D
41e6945417 Add Electric/Misty Terrain messages 2016-07-20 14:05:25 -04:00
Ivo Julca
f095ac4fea Implement Curse targetting glitch 2016-06-20 11:57:23 -05:00
Ivo Julca
50fcd02b6d Tighten move validation
The target location is checked on chooseMove(), rather than
after the decision has entered the queue.
2016-06-19 07:53:58 -05:00
Ivo Julca
67da1a1221 Test: Use the new common#createBattle method
- This cuts down tons of code that define player names, avatars,
and deal with Team Preview.
2016-06-17 05:45:22 -05:00
Ivo Julca
f2aff1b6ae Refactor tests to use the new assert/battle APIs 2016-06-15 08:56:29 -05:00
Ivo Julca
2ab2937b3c Implement assert extensions to enhance the test suite 2016-06-15 08:54:18 -05:00
Kevin Lau
715de49408 Refactor Anger Point to the Hit event handler
This fixes its interaction with Clear Smog because Hit handlers for
moves always activate before all other global event handlers.

Removed the Hit event from the list of events stopped by Mold Breaker
variants as there are no abilities that would be negated by it that
use that handler.
2016-03-23 20:23:42 -07: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
Kevin Lau
ab64569717 Fix Focus Punch bugs
By setting a handler to listen for the Hit event, Pokemon will now lose
focus properly when attacked by multiple Pokemon or by Nature Power.
2016-01-27 16:15:50 -08:00
Guangcong Luo
99a6e73df0 Mostly fix Curse targeting
Curse now correctly updates what target it asks for when the user
changes type.

The only remaining targeting issue is when the user changes to
Ghost-type mid-turn in Doubles.
2016-01-12 15:16:23 -08:00
Guangcong Luo
331608da49 Fix Natural Cure message
In-game, you can see your opponent's pokemon represented as balls, with
statused pokemon being dark balls. Because of this, light balls are
clearly not statused, which allows you to know when a pokemon has
Natural Cure.

The only exception is in Doubles/Triples, where multiple pokemon that
are statused but could have Natural Cure switch out at the same time,
but not all of them have Natural Cure: it's not possible to know which
pokemon had Natural Cure.

This exception is now handled correctly.

Fixes #1452
2016-01-12 02:28:43 -08:00
Konrad Borowski
81f602b8d8 Always use trailing comma for multiline objects 2016-01-01 00:20:07 +01:00
Marty-D
235e470553 Merge pull request #2339 from ascriptmaster/trapping
Trapping refactor
2015-12-28 12:10:52 -05:00
Kevin Lau
7c491ad06b Add test suites for trapping moves and abilities 2015-12-21 14:56:21 -08:00
The Immortal
d47c968ee6 Fix Magic Room interaction with Primals 2015-12-21 21:22:23 +04:00
Kevin Lau
64c8650713 Add tests for Trick Room and the TR Glitch 2015-12-09 15:52:21 -08:00
Ivo Julca
33386f79aa Test: increase time limit for redirection tests 2015-11-09 00:15:48 -05:00
Ivo Julca
04c64c143e Cleanup: remove several unused variables 2015-11-07 17:34:21 -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
b794d2ee09 Fix Travis CI build 2015-11-01 16:36:05 -05:00
Ivo Julca
e510d036fd Add tests for Curse targetting
Refs Zarel/Pokemon-Showdown-Client#354
2015-11-01 15:43:35 -05:00
Kevin Lau
9a7585c58e Add tests for Ice Ball/Rollout 2015-07-26 19:58:38 -07:00
Guangcong Luo
0eb6f4b244 Merge pull request #2006 from ascriptmaster/move-fixes-2
Fix PP deduction interactions with Pressure
2015-07-17 13:40:19 -05:00
Kevin Lau
4da92ae00c Upgrade Follow Me test to check for self-targetting moves 2015-07-17 01:48:01 -07:00
Kevin Lau
e5beaba7bf Upgrade Sky Drop test to check for Follow Me 2015-07-16 04:24:07 -07:00
Guangcong Luo
9d79f72418 Merge pull request #1999 from ascriptmaster/move-fixes
Fix Quash interaction with self-switching moves
2015-07-02 07:34:06 +00:00
Kevin Lau
020c08d5d9 Add tests for Color Change, Relic Song, Thief 2015-06-27 00:40:16 -07:00
Ivo Julca
fc89d5f372 Test suite is now deterministic 2015-06-26 21:55:43 -05:00
Kevin Lau
dafbefe973 Fix Sky Drop test pointing at wrong generation
It should be Doubles Custom Game, not [Gen 5] Doubles Custom Game.
2015-06-26 19:07:47 -07:00
Kevin Lau
5403862e43 Fix random failure in Sky Drop test
In Doubles, if a decision is not specified, it tends to choose the first
move but the intended target can be wrong.
2015-06-26 18:59:43 -07:00
Kevin Lau
523ffe454b Add Sky Drop tests and pending Sky Drop glitch tests (for Gen 5) 2015-06-23 11:49:53 -07:00
Kevin Lau
d2eda4a375 Add Quash tests 2015-06-23 00:52:41 -07:00
Kevin Lau
d7b77a76a4 Mocha: Normalize oldgen descriptions for tests
Listing the generation number imitates the style used in PS! format names,
and is clearer on which generation it is than listing games from that gen
(so GSC -> Gen 2, etc)
2015-06-19 00:25:03 -07:00
Kevin Lau
85ee0961c1 Further upgrade status move tests
Steel-types are immune to the poison status in Gen 3+, so wrap it into the
"fail when the opposing Pokemon is immune to the status it sets" and set
up the poison-inflicting status test to check Generation 2.

Spin off Thunder Wave to its own test, and also create a test for Glare to
check its Generation 3 behavior as well.
2015-06-18 17:05:49 -07:00
Kevin Lau
ba35604c58 Add Sticky Hold and Knock Off tests 2015-06-17 15:39:32 -07:00
Kevin Lau
ba1f5df45c Release and improve pending Iron Ball/Thousand Arrows tests
Some tests had incorrect program flow that was resulting in incorrect
expected behaviors.

Improved the wording on some test descriptions.

Gave some of the Pokemon Shell Armor to negate test failures due to
critical hit messages appearing before the type effectiveness messages.
2015-06-16 00:11:08 -07:00
Kevin Lau
34a0947eab Add Ingrain tests 2015-06-15 23:12:59 -07:00
Ivo Julca
21aebd070e Add pending tests for Iron Ball and Thousand Arrows 2015-06-15 04:48:15 -05:00
Kevin Lau
b8af0856f4 Add tests for type-immunity negating moves and items 2015-06-11 13:48:28 -07:00
Kevin Lau
d36ffabdd8 Add Belch Mocha tests 2015-06-03 20:04:17 -07:00
Kevin Lau
903295d642 Fix rare test failures from crits
Max damage critical hits would result in OHKOs.
2015-05-31 03:54:37 -07:00
Guangcong Luo
066b1d6828 Merge pull request #1865 from ascriptmaster/move-fixes
Battle refactor: No longer reset ignore in Battle#update
2015-05-27 01:11:34 +00:00
Guangcong Luo
b7aa629703 Merge pull request #1889 from ascriptmaster/move-fixes-2
Battle refactor: New function isGrounded(), bug fixes
2015-05-26 07:09:19 +00:00
Kevin Lau
c919f1504e Add and fix up Sheer Force, Rock Head, and Substitute tests
"Sheer Force should eliminate Life Orb recoil in a move with secondary
effects" would always pass even with wrong implementation because the
Sheer Force Pokemon being used was not holding a Life Orb.

Added tests related to Mummy to Sheer Force and Rock Head.
2015-05-21 13:52:01 -07:00
Kevin Lau
9851ef9838 Add tests for Klutz, Magic Room, Embargo 2015-05-18 02:44:42 -07:00
Kevin Lau
1f10dc1185 Add terrain tests, Arena Trap tests, Inverse Battle tests 2015-05-17 19:43:15 -07:00
Kevin Lau
a5bc0632b1 Upgrade Imprison Tests
Imprison should actively prevent the Pokemon from using imprisoned moves.
2015-05-14 14:18:07 -07:00
Kevin Lau
dd80e38322 Upgrade tests
- Improve the wording on tests for status moves to be more clear
- Add a test for Stealth Rocks
2015-05-10 15:40:52 -07:00
Guangcong Luo
383af9eea1 Merge pull request #1858 from ascriptmaster/move-fixes-2
Fix Rage Powder's interaction with Safety Goggles
2015-05-05 05:39:29 +00:00