Commit graph

2887 commits

Author SHA1 Message Date
LevelX2
2ce90b1e0a * Fixed that the dies trigger of Ashen Rider also triggers if Ashen Rider is copied by other creatures (e.g. Volrath the Shapestealer) (fixes #7107). 2020-12-23 18:02:00 +01:00
Oleg Agafonov
10cf9c4a4e * Genesis Ultimatum - fixed rollback error on usage with modal double faces cards (#7275); 2020-12-23 09:15:04 +04:00
Oleg Agafonov
796c8fb22e Tests: added Inferno Titan AI tests, related to #6330; 2020-12-23 02:51:52 +04:00
Oleg Agafonov
255c292104 * Deals damage divided as you choose - fixed that some cards can't choose planeswalkers (example: Arc Lightning, see #7276);
Refactor: simplified FilterCreaturePlayerOrPlaneswalker to use single permanent filter;
2020-12-23 02:31:41 +04:00
Oleg Agafonov
347a3b1e1a * Jeweled Lotus - fixed that mana can't be used to cast commanders without normal mana (#7272); 2020-12-22 23:22:41 +04:00
LevelX2
29184316f2 * Cumulative Upkeep - Fixed that a permanent with CU was wrongly sacrificed if the control of the permanent has changed since CU begin of upkeep trigger was put on the stack. Added tests for CU. 2020-12-21 14:36:22 +01:00
Oleg Agafonov
cc5fce4256 Prepare new release 2020-12-19 23:59:44 +04:00
Oleg Agafonov
a1ed8e01b3 [CMR] fixed Eligeth, Crossroads Augur - wrong event type for replacement effect (#7234); 2020-12-19 18:45:49 +04:00
Oleg Agafonov
a50f3c5416 Tests: added Hans Eriksson's play tests, related to #7234; 2020-12-19 18:35:02 +04:00
Oleg Agafonov
9f67765e2d [CMR] fixed Armix, Filigree Thrasher - not working card, missing target (#7234); 2020-12-19 18:18:47 +04:00
Oleg Agafonov
1b830032ac * Militant Angel - fixed rollback error on usage (#7239); 2020-12-19 04:48:55 +04:00
Oleg Agafonov
3cccad2138 Test framework: added dynamic code support in unit tests (command: runCode - use it same way as real time checks); 2020-12-19 04:46:19 +04:00
Oleg Agafonov
384ff2e7ac * Gain cost modification abilities - fixed that commanders can't be played without full mana (example: gained Affinity by Mycosynth Golem, gained Convoke by Chief Engineer, see #7249 #7171, #6698); 2020-12-18 18:33:44 +04:00
Oleg Agafonov
53c5abea14 Added additional test for #7251;
Added last error info in too many errors game message;
2020-12-18 16:46:05 +04:00
Oleg Agafonov
c13d07b73d [CMR] fixed Rakshasa Debaser - class cast exception in filter on usage; 2020-12-18 15:54:59 +04:00
LevelX2
d39575c24e * Fixed bug in DamagedBatchEvent (fixes #7241). Fixed some spelling in test classes. 2020-12-17 17:39:17 +01:00
Oleg Agafonov
3f44d9eef3 * Exile card and return it from exile - fixed rollback error on commander creature exile (#7250);
[CMR] fixed PromiseOfTomorrow - not working ability;
2020-12-17 10:07:15 +04:00
Oleg Agafonov
926f5f0621 * Copy spell for each other permanents that it could target - fixed that AI can freeze the game, fixed wrong highlighting; 2020-12-17 06:37:41 +04:00
Oleg Agafonov
f8206df3ba [CMR] fixed Sphinx of the Second Sun - wrong extra phase and server freeze on usage; 2020-12-16 04:17:03 +04:00
Oleg Agafonov
ac7910159e Tests: added game stats table after load testing finished; 2020-12-16 01:32:24 +04:00
Oleg Agafonov
0c2c33e940 * Kicker abilities - fixed that some cards don't see kicked status of multikicker spells (example: Hallar, the Firefletcher, #4895); 2020-12-15 21:23:09 +04:00
Oleg Agafonov
4d362d7edc * Copy spells - improved combo support with other abilities like Kicker or Entwine (#7192):
* Now ZCC of copied spells syncs with source card or coping spell (allows to keep ability settings that depends on ZCC);
  * Fixed bug that allows to lost kicked status in copied spells after counter the original spell or moves the original card (see #7192);
  * Test framework: improved support of targeting copy or non copy spells on stack;
2020-12-15 20:06:53 +04:00
Oleg Agafonov
936be75a66 Tests: added test for Krark, the Thumbless (#7198) 2020-12-14 22:40:12 +04:00
Oleg Agafonov
c1dfbbda63 Test framework: added support for flip coin tests (command: setFlipCoinResult); 2020-12-14 03:00:38 +04:00
Oleg Agafonov
fde24f349f * Modal Double Faces cards - fixed that it can be returned to battlefield as second side instead the main side only (#7212); 2020-12-14 00:57:30 +04:00
Oleg Agafonov
35f5a8257b Refactor: replaced sourceId by source and introduced source param in some methods (part 2); 2020-12-13 02:01:49 +04:00
Oleg Agafonov
db239a1055 Refactor: replaced sourceId by source and introduced source param in some methods; 2020-12-12 20:23:19 +04:00
Oleg Agafonov
c548b3fd1d [CMR] fixed Hellkite Courser - missing command zone support in target (#7198); 2020-11-28 23:14:24 +04:00
Oleg Agafonov
2b78388eab [CMR] fixed Akroma's Will - missing copy of new condition in modes (#7210);
Improved compatibility of new modes condition with choose dialogs and test framework;
2020-11-28 19:49:16 +04:00
Oleg Agafonov
64821a50d3 [CMR] fixed Akroma, Vision of Ixidor - missing target in effect (#7209); 2020-11-28 14:22:38 +04:00
Oleg Agafonov
c2a636e2b2 [CMR] implemented Opposition Agent and other changes:
* You may play cards and you may spend mana of any color - refactored cards to use same code;
* Library search event allows to change searching controller (gives full game control for another player);
* Library searched event allows to remove founded cards from result;
* Improved library searching effects with Panglacial Wurm's effects;
* Little changes to test framework;
2020-11-24 23:49:19 +04:00
LevelX2
13fa98ec44 * Added missing check for damage prevention by protection for planeswalkers (fixes #7194). 2020-11-24 17:33:03 +01:00
LevelX2
137070d523 * Chorus of the Conclave - Fixed a problem with game copy logic (related to rollback and AI) (fixed #7195). 2020-11-24 16:07:53 +01:00
Oleg Agafonov
c1e7a08c68 * Modal Double Faces cards - fixed that a second side can't be played from non hand zones in some cases (#7200);
Play lands from graveyard effect - reworked as AsThoughEffect;
2020-11-23 02:30:54 +04:00
Oleg Agafonov
24e2728fca * Double lands - fixed duplicated choices in choose dialog (#7197); 2020-11-21 12:44:23 +04:00
Oleg Agafonov
aeb2d31d47 [CMR] fixed Gilanra, Caller of Wirewood - duplicated triggers on unused mana (#7191); 2020-11-20 12:53:13 +04:00
Oleg Agafonov
39a556f233 * Long-Term Plans and Volrath's Dungeon - fixed that it shows card name in game logs to other players (#7179); 2020-11-18 12:44:58 +04:00
Oleg Agafonov
656653f38b Modal Double Faces cards fixes:
* Fixed that mdf card can duplicate triggers (example: Skyclave Cleric, see #7187);
 * Fixed that mdf card can raise triggers from another side (example: Kazandu Mammoth, see #7180);
2020-11-18 02:04:32 +04:00
Evan Kranzler
01a0d23a55 removed method for preventing library search triggers 2020-11-13 09:40:18 -05:00
Francesco Burato
6e3750d50a [app-wiring-refactor]: Apply review comments:
- Add reference to original library in `FluentBuilder`.
- Change `I<Name>` notation to `<Name>Impl` notation.
- Move error config to test resources
- Add comment with config instruction
- Add config to the documentation
2020-11-12 20:12:50 +00:00
Francesco Burato
d0c2135e17 [app-wiring-refactor]: Remove static initialisation
- Remove all enum static managers
- Introduce interfaces for the managers
- Define new application wiring class (`ManagerFactory`)
- Externalise the configuration
2020-11-12 20:12:48 +00:00
Oleg Agafonov
ea46afbe62 Prepare new release 2020-11-10 13:11:45 +04:00
Oleg Agafonov
5578437dde * GUI: increased ignore list max size from 100 to 500; 2020-11-09 00:42:43 +04:00
Oleg Agafonov
cff67085b7 [ZNR] Fixed MDF cards with put to battlefield effects (#7174) 2020-11-07 21:24:59 +04:00
Oleg Agafonov
02e19f0a3f [ZNR] Improved modal double faces cards implementation and more tests (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
e4c8ba046a [ZNR] Improved modal double faces cards implementation and more tests (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
19cd742f40 Tests: fixed BlazingTorchTest 2020-11-01 10:03:09 +01:00
Oleg Agafonov
a73c9bddae [ZNR] Added all modal double faces cards (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
70514124a6 * Disrupting Shoal - fixed that it counter spells by CMC from any payed split card's parts instead combined CMC only; 2020-11-01 10:03:09 +01:00
Oleg Agafonov
8ac78b4b9e Added modal double faces cards implementation (MDF cards, #7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
bbed5a16b8 Test framework: added library realtime check command; 2020-11-01 10:03:09 +01:00
Evan Kranzler
8617bc128e
Fixing issues with Changelings and general problems with creature types (ready to merge) (#7098)
* updated Changelings to use setIsAllCreatureTypes

* updated Dr Julius Jumblemorph and Mistform Ultimus to not use changeling

* added test for Mistform Ultimus

* updated effects which give all creature types to controlled creatures

* updated effects which give all creature types to targeted creatures

* Update LoseAllCreatureTypesTargetEffect.java

* updated effects which give all creature types to attached creatures

* Update EgoErasure.java

* added another test for changelings

* updated two tokens I left out before

* updated hasSubtype

* updated shareCreatureTypes

* fixed an incorrect test

* cleaned up some cards which check for shared creature types

* added new changeling test

* fixed issue with shareCreatureTypes

* fixed a text issue

* added new tests for subtype effects

* various individual card fixes and cleanups

* fixed and updated various effects

* many more fixes

* a few more fixes

* added test for One with the Stars

* added changeling verify test

* updated effects which add additional subtypes

* more miscellaneous fixes

* added additional test

* some fixes for card type checks

* updated methods for adding types to make it easier to avoid duplicates and illegal additions

* small test update

* fixed a recursive loop issue

* fixed another error

* fixed it for real this time

* streamlined type removal process

* streamlined subtype set generation
2020-10-30 22:32:59 -04:00
Evan Kranzler
a66428b2b6 updated implementation of equipment which use themself in a gained ability 2020-10-22 21:37:03 -04:00
Evan Kranzler
9f7a873e5b added test for Omnath, Locus of Rage and protection effects (closes #7133) 2020-10-14 20:36:50 -04:00
Evan Kranzler
e65d769e47 fixed Chainer, Nightmare Adept not triggering off of creatures owned by other players 2020-10-12 21:08:37 -04:00
Evan Kranzler
92445ace3d added more tests for Pelt Collector 2020-09-29 20:41:47 -04:00
Evan Kranzler
3f4698434b fixed random mystery booster test failures 2020-09-29 19:35:32 -04:00
Evan Kranzler
827ffb5fb2 changed how effects are applied for triggered abilities, added test (fixes #7083) 2020-09-29 18:55:51 -04:00
Evan Kranzler
27a4f27727 reworked Chainer, Nightmare Adept and added test 2020-09-29 18:03:56 -04:00
Evan Kranzler
4162c3e5cb [ZNC] fixed Whispersteel Dagger, added test (#7085) 2020-09-28 19:22:30 -04:00
Evan Kranzler
7647a3d8f0
Support for copying permanent spells (WIP, do not merge) (#7084)
* added initial support for permanent tokens

* [ZNR] Implemented Lithoform Engine

* [ZNR] Implemented Verazol, the Split Current

* permanent spell tokens no longer count as created

* small change to token generation

* added test, currently incomplete

* found a potential solution for kicker issue, possibly too much of a hack

* fixed a test failure

* reversed hack changes

* skipped failing tests

* added more tests
2020-09-27 10:54:44 -04:00
Evan Kranzler
ee94eb3553 [ZNR] small update to Ashaya test 2020-09-24 22:07:18 -04:00
Evan Kranzler
5cad7d9bff [ZNR] added test for Ashaya, Soul of the Wild (needs more cases) 2020-09-24 21:59:36 -04:00
Evan Kranzler
66235dc6e0 [ZNR] added a test for Moraug, Fury of Akoum 2020-09-23 21:18:15 -04:00
Evan Kranzler
a022d79b65 fixed Pelt Collector implementation, expanded test 2020-09-22 17:23:42 -04:00
LevelX2
2fec825523 * Some standardisation of dies trigger handling (fixes #7063 Midnight Reaper triggers when dies face down). 2020-09-18 16:15:21 +02:00
LevelX2
e1ab14e0f5
Merge pull request #7071 from Dilnu/Haruspex
Create a test to verify Grim Haruspex's ability.
2020-09-18 13:19:33 +02:00
LevelX2
1125d9cca1 Added a test. Some mionor changes. 2020-09-17 10:02:08 +02:00
LevelX2
4050631807 Fixed that some AlternativeCostSourceAbilities had no sourceId set. 2020-09-17 10:00:46 +02:00
Oleg Agafonov
6e0c7e868c Additional and alternative costs improved:
* Now player must choose additional costs before ability's modes;
* Fixed broken kicker ability from ZNR (see comments from d4ca287f0f);
* Improved compatibility of additional cost with cost modification effects (fixed that optional multi-costs doesn't affected by cost modification);
* Improved compatibility of additional cost with alternative cost (some cards ignores additional cost on alternative usage, e.g. on play free);
2020-09-13 09:57:17 +04:00
Oleg Agafonov
586538a66c Test framework: added fast command to add cost modification effect in test game (addCustomEffect_SpellCostModification) 2020-09-13 09:57:17 +04:00
Evan Kranzler
439303882c updated cost adjustment for Mobilized District, added test 2020-09-10 17:08:01 -04:00
Evan Kranzler
4daaaddbb0 updated cost adjustment for Pteramander, added test 2020-09-10 17:07:29 -04:00
Evan Kranzler
649ff35359 [ZNR] small additional fix to party count test 2020-09-10 12:44:48 -04:00
Evan Kranzler
100c130cec [ZNR] fixed party count including opposing creatures, updated test (fixes #7061) 2020-09-10 12:40:01 -04:00
Oleg Agafonov
5831ba81fc
Merge pull request #7030 from BrunoChevalier/master
Additional fixes for pvs-studio report, see #7021 
* Rename BasicSaheekiSublimeArtificerTest.java to BasicSaheeliSublimeArtificerTest.java
* S3Uploader.java: Remove redundant null check
* Effects.java: remove redundant check. When in the else part, the lastRule already is guaranteed to not end on a dot
* TableController.java: change warning message when match == null to avoid nullpointer exception
* Reverted already fixed line from, see #7021
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2020-09-08 23:04:30 +02:00
LevelX2
d0ccafd2a8 Added test for Pako Arcane Retriever. 2020-09-08 15:29:58 +02:00
LevelX2
8e465acb11 Primordial Mist - Fixed selection of face down targets (fixes #7045). 2020-09-08 13:14:15 +02:00
Evan Kranzler
91067e89cb rewrote party count test to allow for more easily adding additional cases 2020-09-05 16:50:51 -04:00
Evan Kranzler
cc0bb84dad
[ZNR] Implemented party mechanic (#7036)
* added incomplete party count implementation

* updated party count implementation

* added party count test

* fixed tests, updated test framework

* added an additional test

* fixed some errors in party count computation, should be good now

* fixed a small error with test generation

* fixed an NPE issue
2020-09-03 19:22:05 -04:00
Evan Kranzler
0d12f566e5 fixed an NPE issue 2020-09-03 18:39:05 -04:00
Evan Kranzler
003fd098b0 fixed a small error with test generation 2020-09-03 18:36:27 -04:00
Evan Kranzler
86446f4977 added an additional test 2020-09-03 18:25:39 -04:00
Oleg Agafonov
535e49b89f Test framework: added aliases support for activated abilities (related to #7036); 2020-09-04 02:18:40 +04:00
Evan Kranzler
f0df4267a3 fixed tests, updated test framework 2020-09-03 18:12:43 -04:00
Evan Kranzler
fa40ffe837 added party count test 2020-09-03 16:34:25 -04:00
LevelX2
1f869fab4d * Added Test for Plague Engineer. 2020-09-02 15:05:39 +02:00
LevelX2
61315ec741 * Improved some FixedTarget initializations. 2020-08-31 10:54:59 +02:00
Bruno Chevalier
1dccb62d10 Rename BasicSaheekiSublimeArtificerTest.java to BasicSaheeliSublimeArtificerTest.java 2020-08-31 10:51:24 +02:00
LevelX2
323b4f8880 * Fixed wrong Kard name in MTGO Legacy Cube July 2019 (Kozilek, Butcher of Truth), added a test. 2020-08-30 12:07:23 +02:00
Oleg Agafonov
87d8383eb8 * Undercity Reaches - fixed rollback error on plane's draw trigger 2020-08-29 20:40:02 +04:00
Oleg Agafonov
30fe344e23 Test framework: added planes support in tests (command: addPlane) 2020-08-29 20:38:57 +04:00
Oleg Agafonov
ede06098e0 Fixed typos in tests and additional refactor 2020-08-29 19:04:26 +04:00
LevelX2
f819340297 * Added Entwine Test. 2020-08-28 17:17:02 +02:00
LevelX2
83ac7f7bc2 * Nim Deathmantle - Fixed that creature was not returned to battlefield (fixes #7018). 2020-08-28 13:46:21 +02:00
LevelX2
cd5c1c282c * Angel of Jubilation - Fixed possible Null Pointer Exception in Player.canPayLifeCost method (fixed #7019). 2020-08-28 09:26:38 +02:00
Oleg Agafonov
a0c16dc4e1 Added charset check and hint in startup logs (related to #7020) 2020-08-28 08:34:01 +04:00
Oleg Agafonov
b610d0a31a Added default charset information in startup logs 2020-08-28 07:33:42 +04:00
LevelX2
11de701ee8 Merge origin/master 2020-08-26 17:03:02 +02:00
LevelX2
863829085e * Added a test. 2020-08-26 17:02:23 +02:00