Commit graph

2931 commits

Author SHA1 Message Date
Evan Kranzler
bc99de1a48 [KHM] fixed Frostpyre Arcanist being used incorrectly by AI (#7488) 2021-02-04 10:50:10 -05:00
Oleg Agafonov
f38639e1db Token's zone change counter (ZCC) improves:
* Now token's zcc uses same logic as card's zcc: enters to battlefield with +1 zcc instead +0 zcc
* It can improve support of copied spells that store zcc related data (bug example: lost kicked status for copied spell/token);
* Kicker abilities - improved support with copied creature spells (example: Verazol, the Split Current, #7431, #7433);
* Refactor: simplified kicker code;
2021-02-04 19:15:54 +04:00
Oleg Agafonov
4b9de96a6b Test framework: added support to put mdf cards on battlefield by cheats or unit tests; 2021-02-03 14:23:50 +04:00
Oleg Agafonov
c03279d835 * Repeated Reverberation - fixed rollback error on creatures cast (#7474); 2021-02-03 10:27:23 +04:00
Evan Kranzler
a70e50419b fixed a random test failure 2021-02-02 17:10:17 -05:00
Oleg Agafonov
31d134843a * Modal double faces cards - fixed that color identity doesn't contains second side colors; 2021-02-02 20:22:12 +04:00
Oleg Agafonov
2393485320 * Mana increase effects - fixed that some infinite mana combos gives 0 mana on too much permanents/effects (example: Nyxbloom Ancient); 2021-02-02 19:26:49 +04:00
Oleg Agafonov
4aeb94b41c Tests: added test for Spreading Plague from #6984 2021-02-02 07:33:31 +04:00
Oleg Agafonov
50e5809a79 New commander types support:
* [KHM] fixed legendary status of mdf cards (closes #7370, #7404, #7465, #7481);
* Game: added support of split cards as commander (signature spell);
* Game: added support of adventure cards as commander;
* Game: added support of modal double faces cards as commander;
2021-02-02 06:40:49 +04:00
Evan Kranzler
14f7c02b1f [KHM] fixed Codespell Cleric not triggering correctly 2021-01-31 21:26:27 -05:00
Evan Kranzler
df38d7213e [KHC] text fixes 2021-01-31 15:01:02 -05:00
smartinsempere
68613672b1
Fire discard cards event when discarding as a cost (#7436)
Fire discard cards event when discarding as a cost, fixes #7368
2021-01-31 23:03:30 +04:00
Oleg Agafonov
2d96d36ec8 AsThough effects improves and fixes:
* AsThough: added documentation about code usage and restrictions;
* AsThough: added additional checks for correct usage;
* AsThough: simplified some code;
* PlayFromNotOwnHandZoneTargetEffect - added permanents support as targets;
* Release to the Wind - fixed that it can't cast exiled cards (#7415, #7416);
* Test framework: fixed that checkExileCount checking card's owner;
* GUI: fixed typo in Trample card icons;
2021-01-31 22:32:23 +04:00
Evan Kranzler
3a4b0159a9
Add a limit to how many tokens are made (#7469)
* added a simple token limit

* updated implementation of token limit

* added token limit test
2021-01-31 12:55:30 -05:00
Evan Kranzler
bcdaebf3ee fixed some more text 2021-01-30 11:08:35 -05:00
Oleg Agafonov
a1da5ef437 * GUI: new reworked GUI and card render engine, card icons and dozens of other fixes (see full list in related PR); 2021-01-30 16:38:55 +04:00
Oleg Agafonov
df98cc3e62 [KHM] foretell improves (related to bc25c3d60a):
* reverted code format of AsThoughEffectType;
 * fixed disabled test;
 * added test for Dream Devourer;
 * simplified some code;
2021-01-30 11:21:51 +04:00
jeffwadsworth
bc25c3d60a - [KHM] Added Cosmos Charger and Dream Devourer. Refactored ForetellAbility to work with Dream Devourer. Text fixes are required in some cases. Ignored a test for foretell. 2021-01-29 20:35:35 -06:00
Oleg Agafonov
91bac931b7 [KHM] fixed Vorinclex, Monstrous Raider - can't double counters on planeswalkers (#7463); 2021-01-29 17:41:49 +04:00
Oleg Agafonov
6f2ce47885 Tests: added verify test for wrong mdash usage and fixed related cards (#7457), added tests for (#7460); 2021-01-29 11:35:13 +04:00
Oleg Agafonov
e3db50f111 * Double faces and adventure cards: improved support with some "exile and cast" effects like Hostage Taker (#7446); 2021-01-27 10:13:10 +04:00
Evan Kranzler
a535cb5adc
Refactoring methods which add counters to track which player adds the counters (ready for review) (#7448)
* added parameter for player adding counters to players

* added parameter for player adding counters to cards/permanents

* updated methods to use new parameter

* fixed a few initial errors

* refactored instances of cards that add counters by a player other than the controller

* fixed some instances of incorrect arguments

* refactored abilities that trigger off of a particular player adding counters

* a few more cards that were missed

* [KHM] Implemented Vorinclex, Monstrous Raider

* added test for Vorinclex, Monstrous Raider

* fixed a test failure
2021-01-26 19:06:13 -05:00
Evan Kranzler
13ce938fd0 [KHM] added test for Giant Ox 2021-01-26 15:51:35 -05:00
Evan Kranzler
dacf30f4b9
Refactoring subtypes to make Maskwood Nexus work (ready for review) (#7432)
* removed and renamed SubTypeList

* updated subtype test

* refactored Changeling to be an ability that actually does something

* moved isAllCreatureTypes into SubTypes class

* renamed copyTo method to copyFrom

* added removeAllCreatureTypes where usable

* replaced some subtype methods

* replaced some more subtype methods

* replaced subtype mass add/remove methods

* updated more subtype methods

* fixed some errors

* made common shared creature type predicate

* refactored another card involving subtypes

* Added usage of object attribute in subTypes's write operations;

* Refactor: use same param styles in subtype methods

* Refactor: simplified usage of copy appliers;

* Refactor: fixed code usage in CopyApplier

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-01-26 08:52:35 -05:00
Jeff
dbf0789238 - Fixed test 2021-01-25 19:13:46 -06:00
Evan Kranzler
83c103f17f [KHM] Implemented Karfell Harbinger 2021-01-24 15:44:03 -05:00
Oleg Agafonov
c3b391b42f Fixed verify tests config 2021-01-23 09:45:25 +04:00
Evan Kranzler
e5344b7a96
Refactoring snow mana to allow tracking how much is spent (Ready for Review) (#7406)
* refactored mana methods to WUBRG order

* more WUBRG refactoring

* added new mana tracking object

* fixed code error

* fixed missing mana count

* fixed null pointer exception in tests

* fixed issue with equality

* more equality fixes

* some cosmetic changes to ManaTest

* added copy method to setToMana

* fixed some initialization issues

* fixed serialization issue

* [KHM] Implemented Search for Glory

* updated mana handling to track snow

* added tests for snow mana tracking

* updated implementation of setter methods

* updated paramater to use copy methods

* fixed snow mana test to ensure proper mana tapping

* replaced instances of getPayment with getUsedManaToPay

* updated tracking of snow mana

* reverted snow mana tracking removal

* finished reverting change
2021-01-21 18:13:51 -05:00
Oleg Agafonov
286cc63342 Test framework: improves 2021-01-19 08:30:01 +04:00
Oleg Agafonov
639c68cd76 Additional tests and fix for God-Eternal Kefnet (#7397); 2021-01-18 04:23:46 +04:00
Evan Kranzler
5d7fc394fd [KHM] Implemented Rune of Flight 2021-01-14 17:14:07 -05:00
LevelX2
9fc0e2f25a * Added some trace output for continous effects and triggered abilities. Changed duration of AffinityEffect to WhileOnStack to prevent wrong handling for removement of the effect. 2021-01-13 09:14:29 +01:00
Oleg Agafonov
6dcbcbe962 Tyvar Kell and gain ability fixes:
* GainAbilityTargetEffect - reworked to support static/dynamic targets, added support of spells (card + related permanent);
* SpellCastControllerTriggeredAbility - now it can setup the target to a card instead a spell;
* Added checks/errors on wrong ability adding code (example: if you add permanent's ability by game state instead permanent's method);
* Tyvar Kell Emblem now use a standard code;
* Test framework: added additional logs for some errors;
2021-01-12 04:41:35 +04:00
LevelX2
c67ce93ec4 * Fixed some problems with color changes of cards and spells - e.g. Painter's Servant (fixes #7325 fixes #6487). 2021-01-08 11:03:39 +01:00
Evan Kranzler
06b0e4f247 fixed a test failure 2021-01-07 19:40:45 -05:00
LevelX2
8098dd690c * Fixed that effects with custom duration are not automatically removed from the game if source permanents leaves the game (fixes #6997). 2020-12-28 18:36:05 +01:00
Oleg Agafonov
aa7226a1af * Archive Trap - fixed that it doesn't apply alternative cost after searched library (#7274); 2020-12-28 07:10:15 +04:00
Oleg Agafonov
767644f1c8 GUI: fixed that user can target/click on second side of mdf card instead the main side (related to #7297); 2020-12-27 01:39:18 +04:00
Ingmar Goudt
34e9c2fdfb Merge branch 'master' of https://github.com/magefree/mage 2020-12-26 15:26:17 +01:00
Oleg Agafonov
81e0cc6403
Merge pull request #7158 from fburato/app-wiring-refactor
Application wiring refactor and externalise configuration path for server
2020-12-26 07:42:46 +01:00
Oleg Agafonov
a307e5934f Improved some source related filters in effects:
* Fixed that some cards ignore range of influence or source related filters;
* Improved ChosenSubtypePredicate to work with gain abilities;
2020-12-25 19:06:36 +04:00
Oleg Agafonov
6f34d514f9 * Archelos, Lagoon Mystic - fixed broken ETB effect (#7283); 2020-12-24 20:24:42 +04:00
Oleg Agafonov
64e948e4b3 * AI: improved game performance by x10 for cards with target amount;
AI: added targeting name and amount info to simulation logs;
AI: removed duplicated target variations from target amount simulations;
2020-12-24 15:02:28 +04:00
Ingmar Goudt
f0dea44773 small Negan fix 2020-12-23 21:38:42 +01:00
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