Commit graph

2402 commits

Author SHA1 Message Date
John Gray
b05981020c add unit test for hapatra vizier of poisons + fix issue #5886 2019-07-20 13:21:14 -04:00
Mike Simons
8d08f005af Fix various hints and warnings on many set & block classes (via IntelliJ IDEA linting):
- replacing hard coded strings of set codes with reference to 'mage.sets.<set>.getInstance().getCode()' allows for set class names to no longer show as unreferenced & adds for more consistence between other block units
- various protected variables were able to be changed to private to clean up additional warnings
- some JavaDoc comments were generating warnings due to missing documentation
- removed some unused imports and unused variables
- there were multiple conditional logic checks for 'rarity != Rarity.LAND' within an if block where the outer condition was 'if rarity == Rarity.COMMON' rendering the inner condition always true and thus redundant
- a few ExpansionSet.buildDate parameters wer using octal values (eg. '03' instead of '3') which triggered some warnings
- added a booster generation test for WarOfTheSparks to make sure every booster contains a planeswalker
- added a booster generation test for ModernHorizons to make sure every booster contains a snow land
- booster generation test for Battlbond set referenced the Coldsnap set class instead of Battlebond
2019-07-18 23:28:48 -04:00
Oleg Agafonov
9db80a0cf3 * Commander abilities - added support of cards with alternative spells like overload; 2019-07-14 01:06:07 +04:00
Oleg Agafonov
d6d67b78db * Added London mulligan as default mulligan type for all games (except Canadian Highlander); 2019-07-13 18:46:41 +04:00
Oleg Agafonov
8c40a1d1a7 * Commander abilities - fixed that it increases commander tax after cast/play from non-command zone (as example: after Remand effect); 2019-07-13 10:47:02 +04:00
Oleg Agafonov
2197d8ee4a * Praetor's Grasp - fixed that it freeze the game after cast; 2019-07-12 21:49:00 +04:00
Oleg Agafonov
9a08ccda95 Extra tests for AI; 2019-07-12 19:57:23 +04:00
Oleg Agafonov
5cf95d3ed1 Test framework: fixed that add counters command adds wrong amount of counters; 2019-07-12 19:41:06 +04:00
Oleg Agafonov
02b1e86f20 Extra tests for AI; 2019-07-12 19:09:26 +04:00
Oleg Agafonov
ae7623e118 AI: fixed that AI never use alpha strike to kill opponent (doesn't use "all in" attack, #4486); 2019-07-12 18:36:32 +04:00
Oleg Agafonov
be281ff402 Test framework: added AI support for attack/block phases, added attack/block skip commands; 2019-07-12 13:54:24 +04:00
John Gray
1d0da973ac added boneclad necromancer unit tests + fix for issue #5875 2019-07-07 22:48:51 -04:00
Oleg Agafonov
0d6be669de
Merge pull request #5881 from jgray1206/vizier_fix
add vizier of the menagerie unit tests + fix for issue #5816
2019-07-07 03:34:24 +02:00
John Gray
f564c522a3 added chandras embercat unit tests + fix for issue #5880 2019-07-06 11:30:26 -04:00
John Gray
3a7419d870 add vizier of the menagerie unit tests + fix for issue #5816 2019-07-05 12:06:42 -04:00
Oleg Agafonov
6e5ba7a446 * Affinity abilities - added support of other cost modification effects like combo with commander tax (#5856);
* Affinity abilities - added artifact/land count hints to card;
2019-07-04 14:02:25 +04:00
Oleg Agafonov
699329f522 * Woodland Champion - fixed that it doesn't trigger on tokens put (#5871); 2019-07-01 12:00:10 +04:00
Oleg Agafonov
716b929877 Prepare new release 2019-06-30 18:33:29 +04:00
Oleg Agafonov
f6123037ec * UI: added playable/activatable cards highlight in all zone and windows (mana abilities, commander, graveyard, revealed, etc); 2019-06-28 03:30:57 +04:00
Oleg Agafonov
34ff038053 AI: improved target amount abilities:
* added support to search targets from multiple opponents instead one;
 * added support of TargetCreaturePermanentAmount and all new target types;
 * added new priorities (kills most valuable first);
 * added bad and good conditions (choose most valuable in good case and most weakest in bad case, e.g. damage yourself);
 * fixed that AI targets opponent for good ability instead yourself;
2019-06-26 21:46:11 +04:00
Oleg Agafonov
7e08b3c3d5 Test framework: added support to create custom instant/sorcery; 2019-06-26 21:40:17 +04:00
Evan Kranzler
20d1aa4b91 fixed Embodiment of Agonies tests 2019-06-24 19:28:52 -04:00
Evan Kranzler
2f72726a7f fixed implementation of Embodiment of Agonies, added a test 2019-06-24 19:20:03 -04:00
Oleg Agafonov
d0638e71af Fixed symbols and images download from wizards; 2019-06-23 18:56:25 +04:00
Oleg Agafonov
63a9a505e1 Fixed that alternative spell always selected to cast if available; 2019-06-23 17:20:04 +04:00
Oleg Agafonov
d25ae47104 Alternative spell abilities: added support of modes and other extra things in commander, awaken, jump-start, spectacle, retrace and surge abilities; 2019-06-21 17:11:44 +04:00
Oleg Agafonov
437861ec20 Improved and fixed X mana cost and pays, mana pool:
* Pay X abilities - fixed that it spends all available mana pool instead only needed;
 * Pay X abilities - added support of interactions with other X effects like Rosheen Meanderer's mana usage for "pay X to prevent";
 * Rosheen Meanderer - fixed that it can't use mana for "you may pay X" like Flameblast Dragon's effect (#5206);
 * Devs: added support to use VariableManaCost to pay X in code (without generic's workaround, use ManaUtil.createManaCost to generate cost to pay);
2019-06-20 21:18:01 +04:00
Oleg Agafonov
cc54a92daa * Kicker - added support of X and mana cost interactions like Rosheen Meanderer + Verdeloth the Ancient combo (#3538);
* Rosheen Meanderer - fixed that mana can be payed for mana cost with X instead any cost with X (#3538);
2019-06-18 11:28:41 +04:00
Oleg Agafonov
fe28c9c7d9 * Flashback ability -- added support of additional cost like flashback with kicker combo (#5389); 2019-06-17 15:03:37 +04:00
Oleg Agafonov
dc7ccc6c4e * Buyback ability - fixed that it doesn't work after rollbacks (#5835, #5836); 2019-06-16 22:08:32 +04:00
Oleg Agafonov
75e5ad3d7b * Commander: fixed that spells with dynamic/X targets doesn't work from command zone (#5852); 2019-06-14 21:50:36 +04:00
Derek Monturo
03f572e946 moved footlightfiendtest outside of merfolktrickstertest 2019-06-13 17:45:12 -04:00
Oleg Agafonov
55bc61000a Prepare new release 2019-06-06 23:03:38 +04:00
Oleg Agafonov
0e2cfb7def Fixed tests with multiple X values 2019-06-06 21:07:51 +04:00
Oleg Agafonov
b64a75aa4b Typo fix 2019-06-06 16:55:17 +04:00
Oleg Agafonov
12fc854777 [MH1] added Unbound Flourishing 2019-06-06 16:52:06 +04:00
Derek Monturo
5e6e6211e6 minor adjustments 2019-06-03 19:27:34 -04:00
Derek Monturo
cf807e5bdf Unit Tests for Merfolk Trickster interactions for issue #5825 2019-06-03 19:23:37 -04:00
Oleg Agafonov
958228e009 [MH1] added Silumgar Scavenger 2019-06-03 16:35:56 +04:00
Oleg Agafonov
02f4e39418 [MH1] added Face of Divinity 2019-06-03 14:06:12 +04:00
Oleg Agafonov
9a9b304fd5 * UI: improved hand request dialog (users can ask your hand once per game, reset it by re-activate button); 2019-05-28 13:46:29 +04:00
Oleg Agafonov
913ee65f36 Cards compatibility with oathbreaker format; 2019-05-27 17:21:17 +04:00
Oleg Agafonov
97c8622311 Commander: improved lands compatibility with cost modification and restriction effects; 2019-05-23 14:57:26 +04:00
Oleg Agafonov
42ed14df52 * Commander: added support of lands as commander (#5795); 2019-05-23 12:40:45 +04:00
Oleg Agafonov
4d95d72c66 Test framework: added support of commander cards (just add card to command zone by addCard); 2019-05-17 21:42:35 +04:00
Oleg Agafonov
ffbd5d373b * Planeswalker abilities - fixed that plus cost's counters is not affected by replacement effects (#5802, example combo: Planeswalker + Pir, Imaginative Rascal + Doubling Season); 2019-05-17 16:10:34 +04:00
Derek Monturo
45c7d453b5 adjusted unit test phases 2019-05-15 20:59:55 -04:00
Derek Monturo
79a99a0866 Detection Tower and Witchbane Orb interaction bug confirmed for #5796 2019-05-14 08:12:31 -04:00
Oleg Agafonov
051c3c4ac0 UI: added test card render modes dialog (available from debug menu); 2019-05-06 20:15:39 +04:00
Oleg Agafonov
b9b8415c99 Extra tests to catch card creation errors; 2019-05-06 17:03:56 +04:00
Derek Monturo
e333aa2d45 UTs added for Challenger Troll block restrictions. closes #5730 2019-05-05 12:34:15 -04:00
Derek Monturo
dccea47889 UT for Kiora Behemoth untap ability 2019-05-05 05:39:27 -04:00
Oleg Agafonov
735d2a16a2 * Feather, the Redeemed - fixed that it returns to hand re-casted/blinked cards; 2019-05-02 23:15:43 +04:00
Oleg Agafonov
648026ac0b Test framework: fixed not working choices for replacement effects; 2019-05-02 23:14:56 +04:00
Oleg Agafonov
a3fee30ed6 * Martyrs of Korlis - fixed that redirect damage effect doesn't work; 2019-05-01 21:02:12 +04:00
Oleg Agafonov
0aeab75552 Added ConditionalCostModificationEffect to support cost modification effects with conditions (#5738) 2019-05-01 19:53:54 +04:00
Oleg Agafonov
e6823e4423 Test framework: added realtime check for damage (checkDamage, #4936) 2019-05-01 19:52:05 +04:00
Oleg Agafonov
367a1fd189 Added ConditionalPreventionEffect to support prevention effects with conditions (#5738) 2019-05-01 12:49:19 +04:00
Oleg Agafonov
3beac51ebf Tests: added more tests with continuous effects and game leaving by players 2019-04-28 21:33:05 +04:00
Oleg Agafonov
9ef2e0bda7 * No more continuous effects stay on battlefield after player leave the game;
Test framework: added real time check for player in game or not;
2019-04-28 19:32:25 +04:00
Oleg Agafonov
73ad2fa969 Typo :-) 2019-04-28 12:06:52 +04:00
Oleg Agafonov
534037e095 * Until end of your turn - fixed that effects discarded too early in multiplayer games (#5759, #5676);
Tests: added dozen tests for end of turn effects and related cards.
2019-04-28 11:27:08 +04:00
Oleg Agafonov
dc04092fce Test framework: many improvements and fixes:
* added support to use custom cards with any abilities/effects (addCustomCardWithAbility);
 * added support of multiplayer games with all range (CardTestMultiPlayerBaseWithRangeAll);
 * added realtime checks for permanent counters (checkPermanentCounters);
 * added wrong attack commands check in strict mode;
 * fixed that added by addCard command cards don't init continues effects;
 * fixed that block commands don't removed from actions queue;
2019-04-28 11:10:28 +04:00
Oleg Agafonov
0bb735b482 Tests: added todo test for AI's playerMustBeAttackedIfAble (#4496) 2019-04-28 09:25:00 +04:00
Oleg Agafonov
b9be369bd3 * Paupers' Cage - fixed that counts controllers cards in hand instead opponents; 2019-04-24 22:14:59 +04:00
Oleg Agafonov
e51b054249 * Oath of Kaya - fixed that it doesn't triggers on attacks; 2019-04-24 21:41:24 +04:00
Oleg Agafonov
ef3689a225 Test "fix" 2019-04-23 23:51:02 +04:00
Oleg Agafonov
bbf1c1343a Prepare release 1.4.35 2019-04-23 23:32:54 +04:00
Oleg Agafonov
c6d32bd33d [WAR] added tokens images 2019-04-23 23:32:09 +04:00
Oleg Agafonov
e49be97879 * Look at card abilities -- improved dialog (now it's shown that card have extra abilities to call on "no" button); 2019-04-23 17:09:26 +04:00
Oleg Agafonov
a2daa72678 Merge fix 2019-04-23 12:33:10 +04:00
Oleg Agafonov
0c0ead33a7 Merge fix 2019-04-23 12:22:33 +04:00
Oleg Agafonov
33af8939af * Copy effects - fixed that it copy current P/T values (e.g. after effects applied) instead printed/selected values; 2019-04-23 12:03:16 +04:00
Oleg Agafonov
db2a3b7ac4 [WAR] added Spark Double 2019-04-22 19:43:53 +04:00
Oleg Agafonov
4c899a25bd Test framework: added real time card type check (#4936); 2019-04-22 19:42:25 +04:00
Evan Kranzler
254972be77 Implemented Ashiok, Dream Render 2019-04-15 14:10:06 -04:00
Oleg Agafonov
f81142459d * UI: fixed wrong server reconnect on multiple apps runs (#5495); 2019-04-12 12:15:48 +04:00
Oleg Agafonov
de4befb9c2 * Sideboarding: fixed that it possible to auto-submit 40 cards deck instead 60 in constructed formats (#5579);
Sideboarding: fixed that cheated deck with sideboard can be used instead lose the game;
2019-04-01 07:34:46 +04:00
Oleg Agafonov
65bb9b2161 Prepare new release 1.4.34 2019-03-29 18:31:00 +04:00
Oleg Agafonov
3330680e81
Merge pull request #5644 from hitch17/additional-mulligan-support-5600
Additional mulligan support #5600
2019-03-22 22:48:18 +01:00
Oleg Agafonov
270ec615af Sync old changes 2019-03-22 21:51:26 +04:00
John Hitchings
1ca876c2ed Fixed LondonMulligan to give mulligan choice after discarding to bottom, which fixes the interaction with Serum Powder. 2019-03-20 23:23:28 -07:00
John Hitchings
d77ad0ce1f Add mulligan tests. 2019-03-19 23:31:22 -07:00
John Hitchings
4a232b148c Add mulligan options to NewTableDialog, passing mulligan information to games. 2019-03-19 06:08:12 -07:00
Oleg Agafonov
23271d9b9b * Thousand-Year Storm - fixed that it don't counts spells on the same stack as storm (#5620); 2019-03-14 05:45:13 +04:00
Oleg Agafonov
e7984c6dd4 Test framework: added waitStackResolved command to wait stack resolved before execute next command on the same step (devs can cast and check any number of commands without switch to next step). 2019-03-14 05:42:29 +04:00
Oleg Agafonov
43ba6685eb Test framework: added setStrictChooseMode setting for tests to disable AI selects in choose/target dialogs; 2019-03-14 05:36:57 +04:00
Oleg Agafonov
886f3d39f8 Test framework: added attached info in show command; 2019-03-10 02:09:19 +04:00
Oleg Agafonov
fa75ac2727 Typo fix 2019-03-07 12:14:27 +04:00
Oleg Agafonov
e68b79336a Typo fix 2019-03-06 14:06:47 +04:00
Ingmar Goudt
9a1edf7689 fix compile loadphasemanager 2019-03-04 12:07:17 +01:00
Ingmar Goudt
553d263526 add missing diamond operators 2019-03-04 11:57:53 +01:00
Ingmar Goudt
4a14940414 use Static filter rather than new filter, add test for this filter 2019-03-01 00:08:15 +01:00
Oleg Agafonov
4504ad5e6f * Fixed infinite AI choose if there are not enough different targets, e.g. Biomantic Mastery (#5023); 2019-02-22 03:29:01 +04:00
Ingmar Goudt
056226d83c Sonar fixes 19022019 2019-02-19 21:51:45 +01:00
Oleg Agafonov
8cf681dff2 Updated libraries to latest versions and code compatibility fixes; 2019-02-17 16:12:57 +04:00
Jeff
6bded2404e - Fixed #5586. 2019-02-11 15:00:36 -06:00
Ingmar Goudt
c8a4e7a46b update JSoup, added test for Polluted Bonds, remove explicit parent groupId from poms 2019-02-11 15:03:18 +01:00
Ingmar Goudt
ff6dd3626f Client: use Rarity enum rather than a String 2019-02-11 14:14:36 +01:00
Oleg Agafonov
e285b2770d * Curse cards - fixed that it triggers on planeswalker attack only (#5566); 2019-02-09 15:40:23 +04:00
Evan Kranzler
9d96efb936 fixed Gisela preventing damage from unpreventable damage sources (fixes #5554) 2019-01-27 19:43:14 -05:00
Oleg Agafonov
2ad90e44b0 Typo 2019-01-27 23:23:58 +04:00
Oleg Agafonov
c4877902c6 Tests: fixed tests with wrong stop command; 2019-01-27 23:18:18 +04:00
Oleg Agafonov
42e8ca2843 Tests: added checks on wrong/missing stop commands; 2019-01-27 23:16:52 +04:00
Oleg Agafonov
a38e149a55 Tests: improved tests for Banefire with Gisela 2019-01-27 22:21:00 +04:00
Evan Kranzler
0b674f18b8 temporary test skip while I fix things 2019-01-27 11:41:58 -05:00
Evan Kranzler
23f74c77ce updated Gisela, Blade of Goldnight test to check Banefire interaction 2019-01-27 11:00:13 -05:00
Evan Kranzler
1c483c6f2a small fix 2019-01-25 10:41:11 -05:00
Evan Kranzler
34e3bb42db fixed Rhythm of the Wild not giving Riot to creatures that weren't cast 2019-01-25 10:32:29 -05:00
Oleg Agafonov
d25bca748d Fixed Arrays.asList code 2019-01-23 19:15:03 +04:00
Ingmar Goudt
7c2f55eda0 couple of sonar fixes 2019-01-17 12:03:22 +01:00
Oleg Agafonov
975cff93e3 Merge remote-tracking branch 'origin/master' 2019-01-16 21:04:00 +04:00
Oleg Agafonov
14f66029f8 Missing v33 commit 2019-01-16 20:59:45 +04:00
Evan Kranzler
63fb5964d4
Merge pull request #5527 from magefree/coinFlips
Fixing coin flip implementation (WIP - Do Not Merge)
2019-01-16 11:44:01 -05:00
Ingmar Goudt
a5f46b8816 Urborg Syphon Mage makes opponents lose life, rather than damaging them 2019-01-16 13:33:44 +01:00
Evan Kranzler
535fe221e3 rewrote how coins are flipped 2019-01-15 15:56:40 -05:00
Evan Kranzler
f5fffcf417 initial refactor 2019-01-15 11:51:49 -05:00
Oleg Agafonov
f566f3af71 Fixed riot tests 2019-01-14 05:53:34 +04:00
Ingmar Goudt
4e4d46437c update riot test 2019-01-14 00:18:21 +01:00
Evan Kranzler
8629977f14 refactored many other predicates to singleton enums 2019-01-12 16:30:49 -05:00
Evan Kranzler
58de14fbba temporarily ignore broken tests (it works when tested manually) 2019-01-12 15:32:19 -05:00
LevelX2
c2472c0f9b * Rhythm of the Wild - Fixed that the riot trigger did not work (fixes #5514). 2019-01-12 16:35:28 +01:00
Oleg Agafonov
8f0351896c
Merge pull request #5502 from ZeldaZach/address_mage_stuff
Address Json Tests
2019-01-11 07:24:56 +04:00
Oleg Agafonov
11f93cf762
Merge pull request #5501 from hitch17/add-cockatrice-deck-format-5493
UI: add cockatrice deck format support for import (*.cod)
2019-01-11 07:17:48 +04:00
Zach Halpern
1712b05c33 Merge branch 'master' into address_mage_stuff 2019-01-10 21:35:12 -05:00
Zach Halpern
8a5f2288f9 Address crash points of JSON tests 2019-01-10 21:27:38 -05:00
Jeff
7f1267563b - Fixed #5500. If you note any interactions that I missed testing, do tell. 2019-01-10 17:10:25 -06:00
John Hitchings
58e629dca6 Refactored DeckImporter and obsoleted DeckImporterUtil. Added/refactored a PlainTestDeckImporter as a base class for text formatted importers to extend. 2019-01-10 08:27:05 -08:00
Oleg Agafonov
942ecc5328 Fixed errors on empty targets in some effects;
Added export code example for mtgjson4 project;
2019-01-09 10:54:59 +04:00
LevelX2
e938f91e3e * Myth Unbound - Fixed the two working abilities(fixe #5347). 2019-01-07 16:39:49 +01:00
Oleg Agafonov
0293b91c25 Tests: added random results image generators (random, shuffle, dice, planar dice); 2019-01-05 13:12:59 +04:00
Oleg Agafonov
0670c401e0 * Fixed Brood Of Cockroaches text 2019-01-05 01:42:43 +04:00
Oleg Agafonov
207e95e001 Fixed card texts: instant or sorcery spell; 2019-01-05 00:46:53 +04:00
Evan Kranzler
0ad967a5b3 small update to previous commit 2019-01-04 12:31:10 -05:00
Oleg Agafonov
2ebad63595 Added seeds support to random util:
* all xmage code uses shared util to generate random values;
 * tests can uses seeds to repeat "random" results like deck builds or AI plays;
2018-12-30 03:52:30 +04:00
Oleg Agafonov
0a2f312da7 Added build time to version info, cleanup manifest files; 2018-12-15 18:29:10 +04:00
Oleg Agafonov
1d450730c0 Merge origin/master 2018-12-07 01:21:32 +04:00
Oleg Agafonov
02b7e2cf10 Refactor: extract card names compare logic (is empty name, is same name)
Fixed last broken tests
2018-12-07 00:26:50 +04:00
Oleg Agafonov
96187ad3c0 Tests: fixed TidehollowScullerTest; 2018-12-03 06:16:34 +04:00
Oleg Agafonov
b172f3c44a Test framework: added basic aliases support (see full info at #5451):
* generates aliases by addCard command (for one or multiple cards);
 * added support of `castSpell` command;
 * added show command to print aliases list with connected objects and zones;
 * added check command to control alias's object exists;
2018-12-03 06:15:54 +04:00
Oleg Agafonov
86ac1fcb1a Tests: fixed OmnathLocusOfRageTest; 2018-12-02 03:09:27 +04:00
Oleg Agafonov
c1804f810c Tests: fixed BrainMaggotTest; 2018-12-01 09:08:35 +04:00
Oleg Agafonov
c1e4fce448 Tests: fixed SpellskiteTest and enabled missing tests; 2018-12-01 08:21:54 +04:00
Oleg Agafonov
d65dab9a95 Test framework: added choices support for multiple targets with multiple damage spells (targetName^X=3); 2018-12-01 08:20:46 +04:00
Oleg Agafonov
dca5b645aa Test framework:
* added choices support for discard spells;
 * fixes TargetCard choices (one choice record per target);
2018-12-01 04:19:05 +04:00
Oleg Agafonov
4484527d04 Test framework: add new real time check command to assert hand cards count; 2018-11-30 20:26:07 +04:00
Oleg Agafonov
bb18814c84 * Fixed wrong re-targeting on copy complex cards (fixed adjustTargets for copies)
* Oath Of Lieges - Fixed that copy of opponent's card don't work;
* Oath Of Lieges - Fixed that it can shuffle lib without search;
2018-11-29 19:39:13 +04:00
Oleg Agafonov
59bda7f1d5 Refactor: added copyFrom info for all objects (original card used for copy, copy of copy and etc); 2018-11-29 19:29:39 +04:00
Oleg Agafonov
28ac95cb10 Test framework: added new real time commands to prints info and checks:
* show player's library, hand, battlefield, graveyard (use showXXX);
 * show exile zone, available abilities to activate (use showXXX);
 * checks targets, choices and commands in queue (use assert).
2018-11-29 19:11:20 +04:00
Oleg Agafonov
b907d8a75c Tests: fixed MorphTest; 2018-11-28 04:04:49 +04:00