Commit graph

9496 commits

Author SHA1 Message Date
Max Behling
d3e57b7fb9
Implemented Thrasta, Tempest's Roar (#7835)
* Implemented ThrastaTempestsRoar
2021-05-24 11:42:11 +04:00
Evan Kranzler
19c5750b01 [MH2] Implemented Dakkon, Shadow Slayer 2021-05-22 08:47:36 -04:00
Evan Kranzler
af3bd24f03 [MH2] Implemented Grief 2021-05-21 07:52:08 -04:00
Evan Kranzler
a60aba3458 some user dialog changes 2021-05-20 20:36:37 -04:00
Evan Kranzler
a85bf3af79 [STX] fixed Journey to the Oracle not returning to hand (fixes #7827) 2021-05-18 18:42:18 -04:00
Ingmar Goudt
895430b554 remove the SimpleTriggeredAbility class and rewrite old cards using it 2021-05-13 21:48:58 +02:00
Evan Kranzler
d1f51cae2f [ZNR] fixed Ashaya, Soul of the Wild and Volrath's Shapeshifter interaction (fixes #7812) 2021-05-12 09:41:06 -04:00
Evan Kranzler
a673ebffc5 refactored TappedPredicate to use single enum for both conditions 2021-05-11 09:33:45 -04:00
Evan Kranzler
35e7f649d4 [AFR] Implemented Prosperous Innkeeper 2021-05-07 08:13:17 -04:00
Evan Kranzler
071f03c491 [AFR] Implemented Vorpal Sword 2021-05-07 08:10:29 -04:00
Evan Kranzler
6bb474a6d0 [LGN] fixed Berserk Murlodont not functioning correctly (fixes #7801) 2021-05-05 09:59:43 -04:00
Evan Kranzler
f33b333e13 [STX] fixed Dragon's Approach (fixes #7796) 2021-05-02 22:49:07 -04:00
Evan Kranzler
ed759d7a63 fixed several cards which use an invalid UUID to find a player 2021-04-30 08:39:54 -04:00
Evan Kranzler
77d792bbaf fixed a test failure 2021-04-30 08:32:26 -04:00
Evan Kranzler
8f9afcb617 text fixes 2021-04-30 07:58:19 -04:00
Evan Kranzler
9604a9c3ea refactored and encapsulated card name choosing effects 2021-04-29 19:43:44 -04:00
Evan Kranzler
0297a00156 all text and no fix makes elk a dull boy 2021-04-29 19:43:44 -04:00
Evan Kranzler
731e948841 [C21] various text fixes 2021-04-28 21:00:36 -04:00
Ingmar Goudt
96d026e4af remove explicit null checks, match(..) checks on null itself by instanceof calls 2021-04-28 20:53:50 +02:00
Ingmar Goudt
b4d806211c use staticfilter for 'a spell' 2021-04-28 20:53:49 +02:00
Evan Kranzler
dfc290a206 fixed a change left out from previous commit failure 2021-04-28 13:26:55 -04:00
Evan Kranzler
bf2e90feae [C21] Implemented Yedora, Grave Gardener 2021-04-28 09:21:39 -04:00
Evan Kranzler
7778e867f8 fixed effects counting opponents no longer in the game 2021-04-28 08:18:07 -04:00
Evan Kranzler
0c3b294527 [C21] Implemented Combat Calligrapher 2021-04-27 20:06:49 -04:00
Evan Kranzler
1fad23b9fb [C21] Implemented Fractal Harness 2021-04-27 20:06:49 -04:00
Evan Kranzler
92007f0132 updated copy implementation to work with stack objects 2021-04-26 18:55:48 -04:00
Ingmar Goudt
30086a5f60 rewrite some dies events cards 2021-04-26 09:39:06 +02:00
Evan Kranzler
d6c3ef33f0 [STX] added booster collation 2021-04-25 22:19:00 -04:00
Evan Kranzler
c3983dac63 [ONS] fixed Thrashing Mudspawn null pointer exception (fixes #7775) 2021-04-25 14:58:58 -04:00
Evan Kranzler
b0fdb4ef5a text fixes 2021-04-25 14:26:22 -04:00
Ingmar Goudt
f74dfcb8b6 rewrite loop to stream 2021-04-25 12:32:44 +02:00
Evan Kranzler
01b797f494 reworked alara heralds 2021-04-23 09:42:06 -04:00
Evan Kranzler
cd4f11e909 more text fixes 2021-04-22 19:31:06 -04:00
Evan Kranzler
a8096fc0a7 text fix for fetch lands 2021-04-22 17:34:22 -04:00
Evan Kranzler
97b8871122 text fix for ReturnFromGraveyardToBattlefieldTargetEffect 2021-04-22 09:50:22 -04:00
Evan Kranzler
f7340a946e text fixes 2021-04-22 08:41:54 -04:00
Evan Kranzler
4e248e75e9 fixed another test failure 2021-04-21 09:47:50 -04:00
Evan Kranzler
28524ce2ed more text fixes 2021-04-21 07:27:26 -04:00
Evan Kranzler
f96f5bf548 small text update 2021-04-20 19:40:52 -04:00
Evan Kranzler
42132bb852 [C21] Implemented Guardian Archon 2021-04-20 19:39:45 -04:00
Evan Kranzler
ad5d1e498f [C21] Implemented Elementalist's Palette 2021-04-20 08:47:41 -04:00
Evan Kranzler
de3388348e [C21] Implemented Battlemage's Braces 2021-04-19 18:07:23 -04:00
Evan Kranzler
ccd1c38004 more text fixes 2021-04-18 22:03:53 -04:00
Evan Kranzler
05a7c83a77 if you're having text problems I feel bad for you son, I've got 99 problems and they're all text-related and I've only dealt with a small amount of them 2021-04-18 18:17:38 -04:00
Evan Kranzler
c2ae2f89f0 many find/replace "shuffle" fixes 2021-04-18 17:29:28 -04:00
Evan Kranzler
5540461397 some more text fixes 2021-04-18 16:03:44 -04:00
Evan Kranzler
cae1b271c2 [STX] some final text fixes 2021-04-18 15:09:18 -04:00
Evan Kranzler
9a40ea0335 [C21] Implemented Geometric Nexus 2021-04-18 14:51:54 -04:00
Evan Kranzler
40a374b407 un-reverted change, fixed test failure 2021-04-18 08:12:32 -04:00
Evan Kranzler
402733d6e7 revert change to fix test, will investigate later 2021-04-17 22:12:14 -04:00
Evan Kranzler
efb2a7f3de [STX] more text fixes 2021-04-17 21:56:26 -04:00
Evan Kranzler
213564f8cd changed ExileSpellEffect from being singleton 2021-04-17 18:47:45 -04:00
Evan Kranzler
b5e3ad2814 fixed Ward ability text (fixes #7715) 2021-04-17 18:36:11 -04:00
Evan Kranzler
326c17fe4d [STX] various text fixes 2021-04-17 18:22:43 -04:00
Evan Kranzler
a61d5543fa replaced all instances of converted mana cost with mana value 2021-04-17 17:02:27 -04:00
Evan Kranzler
cb0df438dd [STA] text fixes 2021-04-17 16:34:21 -04:00
Evan Kranzler
cbc949c08e removed deprecated method for adding delayed triggered abilities 2021-04-17 12:13:37 -04:00
Evan Kranzler
4304ba8cce [STX] Implemented Uvilda, Dean of Perfect / Nassari, Dean of Expression 2021-04-17 09:07:09 -04:00
Daniel Bomar
600cac6fc7
[READY FOR REVIEW] Implement a "multi-amount" dialog (#7528)
* Implemented chooseTargetAmount and new GUI dialog (distribute damage, distribute mana)
* Added tests and AI support;
* Test framework: added aliases support in TargetAmount dialogs;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-04-17 14:28:01 +04:00
htrajan
042aa61ad4
[STX] Implement Efreet Flamepainter (#7747)
* [STX] Implement Efreet Flamepainter

* Add null check

* Target needs to be chosen before ability resolution
2021-04-16 22:16:02 -04:00
Evan Kranzler
b8b8deaec2 [STX] Implemented Shadrix Silverquill 2021-04-16 20:43:14 -04:00
Evan Kranzler
f9467d5142 [STX] Implemented Strict Proctor 2021-04-16 18:48:40 -04:00
Evan Kranzler
c408776ad7 [STX] Implemented Mavinda, Students' Advocate 2021-04-15 09:21:01 -04:00
Evan Kranzler
802dacea29 [C21] Implemented Scholarship Sponsor 2021-04-14 18:33:28 -04:00
Evan Kranzler
a3bbc0b470 [STX] Implemented Strixhaven Stadium 2021-04-13 09:47:21 -04:00
Evan Kranzler
ae22f99b54 [STX] Implemented Rowan, Scholar of Sparks / Will, Scholar of Frost 2021-04-13 09:12:10 -04:00
Evan Kranzler
dc42107962 [STX] Implemented Mila, Crafty Companion / Lukka, Wayward Bonder 2021-04-12 22:07:19 -04:00
Evan Kranzler
7d3dfe5b15 [C21] Implemented Ruxa, Patient Professor 2021-04-12 17:16:29 -04:00
Evan Kranzler
e51ebbec93 [C21] Implemented Felisa, Fang of Silverquill 2021-04-12 09:47:27 -04:00
Evan Kranzler
c8e21a8c6a [C21] Implemented Triplicate Titan 2021-04-12 09:32:44 -04:00
Evan Kranzler
f4dd6ba1e7 added new EachTargetPointer object 2021-04-12 09:08:50 -04:00
Evan Kranzler
dab3dfdc5a [STX] Implemented Extus, Oriq Overlord / Awaken the Blood Avatar 2021-04-11 10:52:16 -04:00
Evan Kranzler
f97b6bf538 [STX] Implemented Wandering Archaic / Explore the Vastlands 2021-04-11 10:28:39 -04:00
Evan Kranzler
ed7a91cd60 [ODY] fixed Aven Windreader effect #7733 2021-04-11 09:32:01 -04:00
Evan Kranzler
79b7d49e83 [STX] Implemented Show of Confidence 2021-04-10 21:55:32 -04:00
Evan Kranzler
f37628c5cb [STX] Implemented Plumb the Forbidden 2021-04-10 21:30:26 -04:00
htrajan
af0f705b5e
[STX] Implement Conspiracy Theorist (#7728)
* [STX] Implement Conspiracy Theorist
2021-04-11 04:52:18 +04:00
Evan Kranzler
167d2579ac [C21] Implemented Trudge Garden 2021-04-10 10:19:59 -04:00
htrajan
10cd439955
[STX] add more cards (#7720)
* implement AcademicProbation
* implement AugmenterPugilist // EchoingEquation
* Implement BalefulMastery
* implement BasicConjuration
* implement ClosingStatement
* Test framework: added custom effect to return card from any zone to hand;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-04-09 17:56:34 +04:00
Evan Kranzler
c83db2cad3 [STX] Implemented Dragon's Approach 2021-04-09 08:20:59 -04:00
Evan Kranzler
6ff3ca5c1e [STX] Implemented Dramatic Finale 2021-04-08 18:56:18 -04:00
Evan Kranzler
cf3b3cbb76 [C21] Implemented Archaeomancer's Map 2021-04-08 17:21:41 -04:00
Evan Kranzler
689efae076 [C21] Implemented Paradox Zone 2021-04-08 09:03:28 -04:00
Evan Kranzler
77d22b9960 [C21] Implemented Deekah, Fractal Theorist 2021-04-08 08:22:25 -04:00
Evan Kranzler
bea736aa54 [STX] Implemented Retriever Phoenix 2021-04-07 19:24:41 -04:00
Evan Kranzler
8950d35ec7 [STX] Implemented Test of Talents 2021-04-07 09:18:36 -04:00
Evan Kranzler
2f50958e53 [STX] Implemented Reject 2021-04-07 08:53:03 -04:00
Evan Kranzler
37a4ae27f1 [STX] Implemented Explosive Welcome 2021-04-07 08:33:53 -04:00
Evan Kranzler
5ee335f011 [STX] Implemented Willowdusk, Essence Seer 2021-04-06 18:41:01 -04:00
Evan Kranzler
bcb9e410dd [C21] Implemented Adrix and Nev, Twincasters 2021-04-06 18:23:08 -04:00
Evan Kranzler
1d4fc1369a [STX] Implemented Silverquill Silencer 2021-04-06 09:25:48 -04:00
Evan Kranzler
bffe1b2ce6 [STX] Implemented Pillardrop Warden 2021-04-05 20:43:52 -04:00
Evan Kranzler
cf2771e9fa [STX] Implemented Hall of Oracles 2021-04-05 20:37:06 -04:00
Evan Kranzler
3914aa656a [STX] Implemented Brackish Trudge 2021-04-05 19:13:27 -04:00
Evan Kranzler
f2f04be08b [STX] Implemented Spell Satchel 2021-04-05 19:04:52 -04:00
Evan Kranzler
33b7fa3eda [C21] Implemented Excavation Technique 2021-04-05 18:11:24 -04:00
Evan Kranzler
4a184a94b3 [STX] Implemented Tend the Pests 2021-04-04 23:34:21 -04:00
Evan Kranzler
734bd6f118 fixed Blatant Thievery test failure 2021-04-04 13:19:15 -04:00
Evan Kranzler
8699b847d8 [STX] Implemented Promising Duskmage 2021-04-04 12:45:00 -04:00
Evan Kranzler
2184a18c04 [STX] Implemented Flame Spill 2021-04-04 10:40:13 -04:00
Evan Kranzler
1461a875ff [STX] Implemented Leyline Invocation 2021-04-04 10:19:32 -04:00
Evan Kranzler
ceabb02270 [STX] Implemented Divide by Zero 2021-04-03 21:50:06 -04:00
Evan Kranzler
548ac048d7 [STX] Implemented Sedgemoor Witch 2021-04-03 07:32:12 -04:00
htrajan
0a3a4bc189
Stx add cards (#7709)
* WIP

* Implement Confront the Past

* Don't modify test

* Implement Plargg // Augusta

* Implement Shaile // Embrose

* Fix FDoC

* Fix CtP

* fix ordering

* remove extra plains

* FDoC PR fixes

* Augusta PR fixes

* Shaile PR fixes

* don't capitalize "learn"
2021-04-02 18:07:30 -04:00
Oleg Agafonov
05b1366c39 Fixed missing override, restored and additional comments 2021-04-02 11:43:42 +04:00
Oleg Agafonov
fbb08ab1a8 Devs: added todo with mana calculation freezes (Cascading Cataracts) 2021-04-02 11:32:35 +04:00
Evan Kranzler
dbbb696abf added some hints 2021-04-01 20:43:10 -04:00
Evan Kranzler
01bde741d4 [STX] Implemented Inkling Summoning 2021-04-01 09:21:47 -04:00
Evan Kranzler
b6ca0ca222 [STX] Implemented Manifestation Sage 2021-04-01 07:49:10 -04:00
Evan Kranzler
85684c6bf1 [STX] Implemented Kelpie Guide 2021-03-31 09:09:00 -04:00
Evan Kranzler
8e3f4d89c9 revert changes to dynamic value calculations (will investigate more thoroughly later) 2021-03-31 08:55:49 -04:00
Evan Kranzler
3d078dce93 [STX] Implemented Tanazir Quandrix 2021-03-31 08:15:38 -04:00
Evan Kranzler
2567e56db8 [STX] Implemented Thunderous Orator 2021-03-30 20:34:32 -04:00
Evan Kranzler
f831eac6fc [STX] Implemented Magma Opus 2021-03-30 19:34:16 -04:00
Evan Kranzler
63c7c52d92 [STX] Implemented Stonebound Mentor 2021-03-30 08:08:53 -04:00
Evan Kranzler
b8c83b4b51 [STX] Implemented Illustrious Historian 2021-03-30 07:44:14 -04:00
Evan Kranzler
97af948932 simplified and condensed various effects which discard variable amounts of cards 2021-03-29 21:35:27 -04:00
Evan Kranzler
a55ed17beb [STX] Implemented Torrent Sculptor / Flamethrower Sonata 2021-03-27 11:33:08 -04:00
Evan Kranzler
730ac37930 [STX] Implemented Prismari Apprentice 2021-03-27 08:06:26 -04:00
Evan Kranzler
7dc8133eec [STX] Implemented Waterfall Aerialist 2021-03-26 07:01:14 -04:00
Evan Kranzler
aa271876d0 [STX] Implemented Dragonsguard Elite 2021-03-25 20:43:30 -04:00
Evan Kranzler
69e38a84ce [STX] Implemented Pest Summoning 2021-03-25 20:12:43 -04:00
Evan Kranzler
6d99f28bef [STX] Implemented Pop Quiz 2021-03-25 19:55:55 -04:00
Evan Kranzler
73888133eb [STX] implemented Eager First-Year 2021-03-25 19:40:35 -04:00
Evan Kranzler
83993500e0 [EMN] fixed Imprisoned in the Moon not correctly removing subtypes 2021-03-25 08:25:00 -04:00
Evan Kranzler
3feb2017d3 removed unnecessary overrides of adjustTargets and adjustCosts 2021-03-23 20:43:16 -04:00
Evan Kranzler
043aae6dff updated phrasing on player choice messages 2021-03-23 19:46:47 -04:00
Evan Kranzler
d54e1c6eac [DTK] updated implementation of spells which reveal dragon cards as a cost 2021-03-23 19:44:45 -04:00
Evan Kranzler
707de23436 cleaned up some methods for effects and abilities 2021-03-22 21:47:08 -04:00
Evan Kranzler
2a42bec1f2 simplified various cards to use isInstantOrSorcery method 2021-03-22 20:01:20 -04:00
Evan Kranzler
df866f858e [STX] Implemented Professor Onyx 2021-03-22 19:25:55 -04:00
Evan Kranzler
aa527ea8b2 [STX] Implemented Kasmina, Enigma Sage 2021-03-22 19:23:02 -04:00
Evan Kranzler
9f9cb3327f [IKO] fixed Kaheera, the Orphanguard not correctly counting changelings 2021-03-22 08:53:40 -04:00
Evan Kranzler
583475dfd2 [ORI] fixed Chief of the Foundry text (fixes #7681) 2021-03-21 11:34:26 -04:00
Oleg Agafonov
8a06be7e28 Merge fix 2021-03-20 18:40:22 +04:00
Evan Kranzler
1cbbcddcc6
Improving implementation of cards which use voting (WIP) (#7566)
* created interface for handling voting

* created class for two choice votes, refactored a card to use it

* refactored all cards which use two choice votes

* updated VoteHandler to an abstract class to encapsulate more of its functions

* refactored cards which vote for more than two things

* [CNS] Implemented Brago's Representative

* [CN2] Implemented Ballot Broker

* [CN2] Implemented Illusion of Choice

* [CNS] Implemented Grudge Keeper

* added vote outcomes

* updated implementation of Illusion of Choice to work correctly in multiples

* added test for voting

* updated implementation of extra votes

* simplified vote message handling

* Improved names, additional comments

* Votes: fixed not working getMostVoted

* Votes: added final vote results to game logs;

* Votes: added additional info for the vote choices;

* Votes: added vote step info in choose dialogs, added AI support example for Tyrant's Choice;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-03-20 18:32:54 +04:00
Evan Kranzler
d4792e3665 reworked/simplified/consolidated effects which exchange life totals, added test (fixes #7668) 2021-03-14 15:56:48 -04:00
Evan Kranzler
e0336d4d65 [ROE] fixed Tuktuk, the Explorer token creature type (fixes #7673) 2021-03-13 08:40:30 -05:00
Evan Kranzler
19ec3e399e fixed text on wish effects 2021-03-12 15:05:37 -05:00
Evan Kranzler
9c56a98dc9
Refactor implementation of spell copies for cards like Twinning Staff as well as refactor handling of target changing (WIP) (#7662)
* refactored createCopyOnStack to be void

* added new interface for modifying copied spellsspells

* update implementation of Fork to use new applier

* reworked epic effect

* add applier to spell copy code

* updated implementation of Beamsplitter Mage

* updated cards which copy for each possible target

* added support for additional copies having targets changed

* fixed/ignored failing tests

* updated target changing to prevent unnecessary choosing

* added test for Twinning Staff

* updated implementation of spell copy applier

* added new method for choosing order of copies on stack

* fixed test failures

* [TSR] various text fixes

* fixed a test failure

* [SLD] fixed Rick, Steadfast Leader only counting Human creatures

* updated test framework to handle skips without affecting starting player choice

* fixed another test failure

* updated copy messaging for consistency

* added copy messaging to stack abilities
2021-03-12 12:47:49 -05:00
Evan Kranzler
1dfde6d622 [TSR] various text fixes 2021-03-09 20:01:32 -05:00
Oleg Agafonov
0ab8d0d16f Fixed NPE 2021-03-07 23:45:50 +04:00
Oleg Agafonov
2906f86324 Test framework: simplified AI logic and tests, added usage comments. Devs recommendations:
* in card's code use player.isComputer instead player.isHuman (it help to split Human/AI logic and test both by unit tests);
* usage example: AI hint to skip or auto-calculate choices instead call of real choose dialogs;
* unit tests for Human logic: call normal commands;
* unit tests for AI logic: call aiXXX commands;
2021-03-07 23:38:10 +04:00
Oleg Agafonov
6e661e6d97 * Halvar, God of Battle - fixed rollback error on attached permanent die; 2021-03-07 18:28:19 +04:00
Oleg Agafonov
0e916b6e29 Dev: added additional info to some classes for easy debug; 2021-03-07 17:16:54 +04:00
Oleg Agafonov
ccc85c1acb [TSR] added tokens 2021-03-07 03:08:17 +04:00
Oleg Agafonov
7e72ba95bc Fixed typos 2021-03-07 03:08:17 +04:00
Evan Kranzler
f54145ad42 [LRW] reworked abilities which trigger off of clashing 2021-03-06 14:49:55 -05:00
Evan Kranzler
02f04e541c a few small text fixes 2021-03-06 14:35:01 -05:00
Oleg Agafonov
b36f915d74 * Copy spell - improved support, now all copied spells are independent (bug example: Seasons Past fizzled after copy resolve, see #7634, 10f8022043); 2021-03-06 19:32:17 +04:00
Evan Kranzler
6894ad96bc [TSR] various text fixes 2021-03-05 19:10:29 -05:00
Evan Kranzler
425c1eda26 [TSR] added set 2021-03-05 18:17:01 -05:00
Oleg Agafonov
712cf4576d * Gain abilities - fixed that objects can get only one instance of triggered ability instead multiple (example: 2+ cascades from copies of Imoti, Celebrant of Bounty, f52753ad61); 2021-03-05 16:22:46 +04:00
Oleg Agafonov
4e79c83784 Test framework: fixed missing range info for added cards (some ETB effects were broken on "put to battlefield" command usage); 2021-03-05 15:12:47 +04:00
Oleg Agafonov
654c0be1ac Additional fixes for 4a3679285e (#7645) 2021-03-04 23:49:00 +04:00
Daniel Bomar
4a3679285e
Fixed Crucible of Worlds allowing lands to be played from opponent's graveyard (fixes #7645) 2021-03-04 12:55:49 -06:00
Evan Kranzler
afcdc0f23a simplified and consolidated werewolf triggered abilities 2021-03-03 22:13:16 -05:00
Evan Kranzler
3b5147f6ee updated some methods to support collections of card subclasses 2021-03-02 09:41:39 -05:00
Daniel Bomar
10f8022043
ReturnToLibrarySpellEffect - Do not apply to spell copies (fixes #7634) 2021-03-01 16:40:40 -06:00
Evan Kranzler
f52753ad61 [CMR] fixed multiple copies of Imoti, Celebrant of Bounty only giving cascade once 2021-03-01 08:45:42 -05:00
Evan Kranzler
9567b19b01 refactored card.moveToExile usages E-F 2021-02-28 17:09:37 -05:00
Evan Kranzler
129a477f56 reworked some abilities which use card.moveToExile 2021-02-28 17:06:13 -05:00
Oleg Agafonov
098796f86e * Commander: fixed that non hand abilities are castable from command zone (example: Escape, Jumpstart, see #7632); 2021-03-01 01:14:00 +04:00
Daniel Bomar
f739eedc46
Fixed Escape being castable from command zone (fixes #7632) 2021-02-28 14:20:44 -06:00
Evan Kranzler
6091c7eae3 fixed trample and deathtouch not working when deathtouch is gained by an outside source (fixes #7633) 2021-02-28 09:34:09 -05:00
Evan Kranzler
2daf1945e7 [RTR] reworked Nivmagus Elemental and added test 2021-02-27 15:35:04 -05:00
Oleg Agafonov
c4750ff6c9 prepare new release 2021-02-27 22:27:11 +04:00
Oleg Agafonov
dda69cd009 * AI: improved support of "as though mana" abilities (now computer can choose correct mana ability to pay, example: Draugr Necromancer);
* Dev: added card's LKI support of multi part cards (mdf/split/adventure);
* Dev: improved support of adding/removing counters from mdf cards;
* Draugr Necromancer - fixed support of mdf/split/adventure cards (#7620);
2021-02-27 20:14:12 +04:00
Evan Kranzler
adc945748b a few more card refactors for card.moveToZone 2021-02-27 10:13:24 -05:00
Evan Kranzler
bb04962144 finished the last few refactors for card.moveToZone 2021-02-27 09:57:45 -05:00
Evan Kranzler
ffd5f68220 refactored zone changes, letters M through P
most cards are minor refactors except for Puppet Master which was heavily reworked
2021-02-27 09:24:31 -05:00
Evan Kranzler
1f6332d658 fixed incomplete code 2021-02-25 10:50:29 -05:00
Evan Kranzler
35be23537f simplified and consolidated effects which check cards put into graveyards from the battlefield 2021-02-25 10:45:26 -05:00
Evan Kranzler
5f23ccf24c fixed a test failure 2021-02-24 16:32:30 -05:00
Evan Kranzler
746d5eef3b refactored more zone changes, letters C and D (#7572)
Decaying Soil has been heavily reworked
2021-02-24 14:37:22 -05:00
Evan Kranzler
bac2585d83 [KHM] fixed Draugr Necromancer not allowing snow mana to be used for exiled cards 2021-02-23 13:47:23 -05:00
Evan Kranzler
5736b00f0f combined "enchanted player's upkeep" triggers into one class 2021-02-23 09:44:26 -05:00
Evan Kranzler
2ffa719278 fixed issue with Kruphix, God of Horizons and Horizon Stone causing endless replacement effect loop 2021-02-23 08:41:54 -05:00
Oleg Agafonov
51c9121f5e Fixed test 2021-02-23 03:27:37 +04:00
Evan Kranzler
5390963d38
Fix handling of damage to permanents (WIP) (#7592)
* initial refactor of damage events

* cleaned up some instances of classes that need to be removed

* removed old damage event classes

* removed outdated imports

* temporarily refactor Everlasting Torment (this will need to be changed more)

* updated damage handling to use new changes

* some reworking of lethal/excess damage plus a test

* updated damage marking to handle planeswalkers

* updated implementation of Phyrexian Unlife

* updated implementation of Everlasting Torment

* added some more excess damage tests

* small change to wither check
2021-02-22 17:11:24 -05:00
Oleg Agafonov
39f6b69391
Merge pull request #7584 from weirddan455/cascade
Implemented updated Cascade ruling 702.84a
2021-02-22 23:03:56 +01:00
Oleg Agafonov
91f4d78992 Changes related to Cascade ability (#7583):
* Cascade: added correct spell ability choose for forced cast of mdf and adventure cards (can contains one or both sides);
* Cascade: added tests from latest oracle changes;
* AI: improved spell ability choose for forced cast (example: cast target card without mana cost);
* GUI: improved spell ability choose for forced cast (now you can see only castable spells to choose);
* Other: fixed wrong PlayFromNotOwnHandZone in some cards, fixed NPE;
2021-02-23 02:00:38 +04:00
Evan Kranzler
bd3777997e
updated various cards to improve how they handle exiling with info (#7615) 2021-02-22 15:26:58 -05:00
Daniel Bomar
bb0a995541
Tibalt, Cosmic Impostor - fixed that emblem can't cast not owned cards (#7598)
* Fixed ability.canChooseTarget not using correct playerId

* Fixed Necrotic Plague

* Revert "Fixed Necrotic Plague"

This reverts commit 7659039670293ce1ea428dad042511d9d75f9da6.

* Set target controller on Necrotic Plague and add check in canChooseTarget

* Add test for Tibalt + Ephemerate interaction

* Tests improved

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-02-22 23:06:43 +04:00
Oleg Agafonov
2accab79c5 * Spark Double - fixed duplicated counters on copying of another Spark Double (#7553); 2021-02-22 21:22:31 +04:00
Oleg Agafonov
f6c0f4c712 * Geode Golem - fixed duplicated commander tax on damage trigger (#7593); 2021-02-22 16:11:13 +04:00
Oleg Agafonov
650acf9e1e Test framework: fixed support of chooseAbilityForCast for commanders, added destroy target custom effect (#7593); 2021-02-22 16:05:48 +04:00
Oleg Agafonov
a377999f57 * Desertion - fixed rollback error on fizzled counter spell (#7613); 2021-02-22 08:51:07 +04:00
Oleg Agafonov
eb4f6d99dd Fixed missing watcher error; 2021-02-22 08:08:19 +04:00
Oleg Agafonov
65ad97ced5 * King Narfi's Betrayal - fixed rollback error on no targets for exile; 2021-02-22 07:58:31 +04:00
Oleg Agafonov
b6cb5cef9c Refactor: removed default comment headers 2021-02-21 08:15:16 +04:00
Oleg Agafonov
2dfde7f41a Refactor: correct predicate packages 2021-02-21 08:00:21 +04:00
Oleg Agafonov
d343511d73 * Elsha of the Infinite - fixed that it gives flash ability to cards in the hand instead library's top card (closes #7605); 2021-02-21 07:43:29 +04:00
Oleg Agafonov
48e9cc3e07 PlayTheTopCard improves: added correct usage check, fixed outdated rule texts, Bolas's Citadel simplified (related to #7605); 2021-02-21 05:48:09 +04:00
Daniel Bomar
bfe91ad32b
Fixed Foretold cards with cost reduced to 0 being uncastable (fixes #7607) 2021-02-20 11:42:49 -06:00
Daniel Bomar
238ab4fcc8
Fixed clones not triggering death ability of Old-Growth Troll (fixes #7601) 2021-02-19 15:49:25 -06:00
Evan Kranzler
a8bda04daf [GTC] updated implementation of Bane Alley Broker 2021-02-19 14:47:47 -05:00
Evan Kranzler
09d3cee8fc [STX] Implemented Lorehold Command 2021-02-19 09:38:59 -05:00
Evan Kranzler
223c576359 [STX] Implemented Quandrix Command 2021-02-19 09:08:14 -05:00
Daniel Bomar
20968c299c
Tibalt, Cosmic Impostor - Fixed misspelled card name 2021-02-18 22:27:26 -06:00
jeffwadsworth
0e0ace14b5 - Fixed #7596 2021-02-18 21:40:49 -06:00
Evan Kranzler
8dde735851 fixed an issue with modular keyword and LKI 2021-02-18 13:35:49 -05:00
Evan Kranzler
9426da5ad3 [LRW] added test for Aquitect's Will (partially fails) (#7597) 2021-02-18 09:16:30 -05:00
Evan Kranzler
bb696b4210 fixed implementation of cards which trigger on unblocked attackers 2021-02-15 19:04:17 -05:00
Daniel Bomar
0c65a6fb7e
Implemented updated Cascade ruling 702.84a 2021-02-15 14:11:16 -06:00
Evan Kranzler
a6255402e3 updated language for various user choices 2021-02-15 10:19:43 -05:00
Oleg Agafonov
eb64a7bb73 GUI: fixed broken add lands and random deck dialogs in deck editor (#7562); 2021-02-13 20:26:06 +04:00
Oleg Agafonov
e94fd1b456 Prepare new release 2021-02-13 19:35:26 +04:00
Evan Kranzler
073ec1cdb9 changed collation to strings to allow non-int collector numbers 2021-02-13 09:03:52 -05:00
Evan Kranzler
8a16eda062
Implement new way to generate boosters using box mapping info (WIP) (#7529)
* [THB] added initial common/uncommon collation mechanism

* [THB] added rare/mythic and lands to pack generation

* fixed some card names

* broke out collation into its own separate classes

* built collation into ExpansionSet

* added note about collation information

* [KHM] added collation info

* updated collation to use collector number rather than name

* added shuffle to set constructor

* added some notes on collation methods
2021-02-12 17:35:28 -05:00
Oleg Agafonov
10e557b873 * Performance: memory usage optimization for deck editor (part 2 of removed bloated usage of ManaCosts -> ManaColor objects, see #7515); 2021-02-12 22:12:18 +04:00
Oleg Agafonov
275e996c08 * Performance: memory usage optimization for deck editor (removed bloated usage of ManaCosts -> ManaColor objects, see #7515); 2021-02-12 22:00:16 +04:00
jeffwadsworth
78bae348e8 - Fixed #7544, #7536, #6798 2021-02-11 09:36:45 -06:00
Evan Kranzler
5b02430837 updated ZNR and KHM boosters to use new mythic rare likelihood 2021-02-08 18:44:47 -05:00
Daniel Bomar
0d0d14856a
Fixed flicker effects not working with MDFCs (fixes #7516) 2021-02-08 10:33:38 -06:00
Daniel Bomar
10306787e2
[KHM] Foretell - Remove un-used import 2021-02-08 09:12:57 -06:00
Daniel Bomar
ec01caece1
[KHM] Foretell - Do not show card name in game log (fixes #7522) 2021-02-08 09:09:11 -06:00
Oleg Agafonov
b2b88bf2e8 Improved card icons (fix ambiguous interpretation of vigilance, first and double strikes, #7471); 2021-02-07 23:11:35 +04:00
Oleg Agafonov
cf216c6802 Prepare new release 2021-02-07 22:24:40 +04:00
Oleg Agafonov
0496ea9509 Server: fixed correct game finish on no players in game (rare race conditional); 2021-02-07 04:42:12 +04:00
Oleg Agafonov
0eac8eb530
Merge pull request #7511 from spjspj/master
Final line of jumpstart should be blank
2021-02-07 01:14:17 +01:00
spjspj
6056a6adb4 Final line of jumpstart should be blank or final pack won't be added in to pool. Add a sample (the original jumpstart.txt) file for users to more easily modify if necessary. 2021-02-07 11:05:16 +11:00
Oleg Agafonov
03952ae0d6 [KHC] added tokens and download support; 2021-02-06 20:54:32 +04:00
Oleg Agafonov
f7bc745f10 [KHM] added tokens and download support; 2021-02-06 20:30:19 +04:00
Evan Kranzler
5f80dba107 fixed landwalk abilities counting all lands and not just defending player's (fixes #7427) 2021-02-06 10:40:55 -05:00
Oleg Agafonov
9b8df48183 Improved commander support for mdf/split/adventure cards (additional fixes for ac98a3a31a) 2021-02-06 17:07:10 +04:00
Oleg Agafonov
9416c6140a [KHM] fixed Reidane, God of the Worthy - rollback error on some events check without sourceId; 2021-02-06 13:04:20 +04:00
Oleg Agafonov
ac98a3a31a * Commander: fixed duplicated triggers after play (example: Esika, God of the Tree, see #7501, #7503, #7505); 2021-02-06 10:51:41 +04:00
jeffwadsworth
aa13b06af9 - refactored Ethereal Valkyrie to work with Split/MDFC/Adventure cards as per weirddan455 commit. 2021-02-05 16:37:44 -06:00
Evan Kranzler
ece9108695 [KHM] fixed Orvar, the All-Form triggered ability not working correctly 2021-02-05 11:33:42 -05:00
Daniel Bomar
25f929d70e
[CMR] Imoti, Celebrant of Bounty - Give Cascade to X spells (fixes #7409) 2021-02-05 10:27:55 -06:00
spjspj
7d267061d9
Merge pull request #7499 from spjspj/master
Adding in Jumpstart Elimination Custom Tournament option.  Creator of the table will be able to upload a Jumpstart Pack text file that uses the same format as here: https://github.com/magefree/mage/blob/master/Mage/src/main/resources/jumpstart/jumpstart.txt
2021-02-06 00:57:25 +11:00
spjspj
b64806606c Adding in Jumpstart Custom (requested fixes) 2021-02-06 00:19:36 +11:00
Oleg Agafonov
dc0a29007c Commanders improves:
* [KHM] fixed that some effects can't find mdf commanders on battlefield (example: Fierce Guardianship, #7504);
* Oathbreaker: fixed that some cards that refer to commander can affects signature spells too;
2021-02-05 17:19:30 +04:00
Daniel Bomar
cd9c57fead
[KHM] Dream Devourer - Fixed being unable to cast foretold MDFCs, split cards, and adventure cards (#7498)
* [KHM] Dream Devourer - Fixed being unable to cast foretold MDFCs, split cards, and adventure cards

* [KHM] Dream Devourer - Fixed mana costs and added check for MDFC lands

* [KHM] ForetellAbility - Add text when selecting which half of split card to cast

* Updated test for Dream Devourer
2021-02-04 16:27:51 -06:00
Oleg Agafonov
0de71e0348 * Flashback ability - fixed that split cards shows duplicated abilities in choose dialog (#7500); 2021-02-04 21:55:56 +04:00
Evan Kranzler
bc99de1a48 [KHM] fixed Frostpyre Arcanist being used incorrectly by AI (#7488) 2021-02-04 10:50:10 -05:00
Evan Kranzler
3727e2ea42 small optimization to DoIfCostPaid text generation 2021-02-04 10:18:39 -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
spjspj
1e428105d5 Adding in Jumpstart Custom 2021-02-04 23:55:59 +11:00
Daniel Bomar
978f20a199
[KHM] Tibalt, Cosmic Impostor - Fixed MDFCs not being playable from exile (fixes #7494) 2021-02-03 18:29:23 -06:00
Daniel Bomar
7da65b38b2
Fixed GoadAttachedAbility in a 2 player game (fixes #7466) 2021-02-03 16:00:21 -06:00
jeffwadsworth
1c2f8f4caa - little refactor of Ethereal Valkyrie 2021-02-03 15:21:18 -06:00
Oleg Agafonov
c381ea7716 [KHM] improved Cosima, God of the Voyage - "to the voyage" exile window, user friendly choose dialog, visible counters in exile, AI support (#7248); 2021-02-03 14:59:52 +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
cc03cbbb67 GUI: fixed not working clicks in commander zone for mdf cards (#7489, #7485); 2021-02-03 08:24:00 +04:00
Evan Kranzler
bb1a085962 more text fixes 2021-02-02 16:30:12 -05:00
Evan Kranzler
fbab9f069e some assorted text fixes 2021-02-02 12:41:05 -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
10ac8ab86f Fixed toLowerCase usage 2021-02-02 19:38:54 +04:00