Commit graph

21946 commits

Author SHA1 Message Date
Evan Kranzler
6d99f28bef [STX] Implemented Pop Quiz 2021-03-25 19:55:55 -04:00
Evan Kranzler
4e4bc6de7a [STX] Implemented Silverquill Apprentice 2021-03-25 19:44:23 -04:00
Evan Kranzler
d1b3d8b778 [STX] Implemented Archmage Emeritus 2021-03-25 19:41:42 -04:00
Evan Kranzler
73888133eb [STX] implemented Eager First-Year 2021-03-25 19:40:35 -04:00
Evan Kranzler
677eba3b26 [C21] added set and spoiler 2021-03-25 19:23:28 -04:00
Evan Kranzler
31c1337445 [MOR] fixed Shared Animosity not correctly counting other creatures (fixes #7692) 2021-03-25 08:34:40 -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
b74ff4a2f8 [ZNR] fixed Kaza, Roil Chaser not correctly counting spells 2021-03-24 18:05:38 -04:00
Evan Kranzler
7484b520e5 [KHM] fixed Invasion of the Giants not correctly counting spells for its third chapter (fixes #7664) 2021-03-24 18:04:28 -04:00
Evan Kranzler
2775d6e74a fixed another test failure 2021-03-23 21:01:26 -04:00
Evan Kranzler
897e41bc94 refactored adjustTargets that were missed previously 2021-03-23 20:43:05 -04:00
Evan Kranzler
bfd1a76bda finished refactoring cost adjuster methods 2021-03-23 20:23:58 -04:00
Evan Kranzler
238509552c fixed a test failure 2021-03-23 19:57:09 -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
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
e615b31221 [SLD] added a card 2021-03-21 11:53:23 -04:00
Evan Kranzler
9c8c10dc3d [HA4] added Historic Anthology 4 2021-03-21 11:49:36 -04:00
Evan Kranzler
71487aa37c [ELD] fixed Workshop Elders targeting incorrectly 2021-03-21 11:35:41 -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
f9571398b5 [ELD] added possible fix for Once Upon a Time intermittently failing (#6954) 2021-03-15 09:51:49 -04:00
Evan Kranzler
8400127de1 fixed Twincast targeting any spell (fixes #7674) 2021-03-15 09:35:33 -04:00
Evan Kranzler
5e2738aab9 [IKO] fixed issue with Zirda, the Dawnwaker static ability not working when reanimated 2021-03-14 18:49:32 -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
1abeec9595 [M11] fixed Hoarding Dragon not returning card to hand (fixes #7670) 2021-03-14 14:39:28 -04:00
Evan Kranzler
c03571d743 fixed a test failure 2021-03-14 12:28:10 -04:00
Evan Kranzler
163c3277ea [DTK] reimplemented Hedonist's Trove 2021-03-14 12:09:33 -04:00
Evan Kranzler
13ac8f2c01 [IKO] added test for Zirda, the Dawnwaker 2021-03-14 11:40:08 -04:00
Evan Kranzler
45094a82d5 [TSR] fixed Pallid Mycoderm text 2021-03-12 15:16:11 -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
b51915f6e8 [SLD] fixed Rick, Steadfast Leader only counting Human creatures 2021-03-09 20:29:49 -05:00
Evan Kranzler
1dfde6d622 [TSR] various text fixes 2021-03-09 20:01:32 -05:00
Evan Kranzler
2c168856c5 [2XM] added booster collation including foils 2021-03-08 10:18:55 -05:00
Evan Kranzler
a1ab427654 [SLD] fixed Rick, Steadfast Leader boosting non-Human creatures 2021-03-07 18:31:23 -05:00
Oleg Agafonov
53a2021a12 * Caller of the Hunt - fixed rollback error on usage, added AI support for the card; 2021-03-07 23:41:52 +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
00c7b3753c * Bronzehide Lion - fixed rollback error on usage (fixes #7564); 2021-03-07 18:36:02 +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
bde6222ea6 * The First Sliver - fixed too long rules text; 2021-03-07 03:12:20 +04:00
Oleg Agafonov
ccc85c1acb [TSR] added tokens 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
8704b9cb9b [VIS] fixed Vision Charm effect duration (fixes #7652) 2021-03-06 07:56:42 -05:00
Evan Kranzler
6894ad96bc [TSR] various text fixes 2021-03-05 19:10:29 -05:00
Evan Kranzler
bb2e0922ab [TSR] fixed a test failure 2021-03-05 18:34:28 -05:00
Evan Kranzler
425c1eda26 [TSR] added set 2021-03-05 18:17:01 -05:00
Evan Kranzler
b55e3d52c6 [AKH] fixed Throne of the God-Pharaoh text (fixes #7647) 2021-03-05 17:26:40 -05:00
Evan Kranzler
622d13484f fixed some outdated token text 2021-03-05 10:54:15 -05:00
Oleg Agafonov
654c0be1ac Additional fixes for 4a3679285e (#7645) 2021-03-04 23:49:00 +04:00
Evan Kranzler
b1da4d4d79 [MOR] fixed Knowledge Exploitation not working (fixes #7646) 2021-03-04 14:20:33 -05:00
Evan Kranzler
87c272bf06 [KHM] fixed Battle for Bretagard allowing controller to copy tokens they don't control (fixes #7642) 2021-03-03 22:14:42 -05:00
Evan Kranzler
afcdc0f23a simplified and consolidated werewolf triggered abilities 2021-03-03 22:13:16 -05:00
Evan Kranzler
378d596e3c [ULG] reimplemented Damping Engine, fixed text 2021-03-03 20:49:39 -05:00
Evan Kranzler
29be124725 refactored card.moveToExile for M-N
reworked Mindreaver
2021-03-03 10:04:15 -05:00
Evan Kranzler
4c3de17006 refactored card.moveToExile for I-J
reworked Inverter of Truth and Luminate Primordial
2021-03-03 09:22:29 -05:00
Evan Kranzler
b9d5e34f8b [USG] fixed text and implementation of Wizard Mentor 2021-03-02 14:59:09 -05:00
Evan Kranzler
c552234e9c refactored card.moveToExile usage for G-H
heavily reworked Haunting Echoes and Hypnox
2021-03-01 18:03:00 -05:00
Evan Kranzler
852aa562d2 [LRW] fixed Vigor applying to opponent's creatures 2021-02-28 21:03:46 -05:00
Evan Kranzler
9567b19b01 refactored card.moveToExile usages E-F 2021-02-28 17:09:37 -05:00
Evan Kranzler
4a09654743 refactored card.moveToExile usages A through D
heavily reworked Dark Impostor and Dimensional Breach
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
Evan Kranzler
2daf1945e7 [RTR] reworked Nivmagus Elemental and added test 2021-02-27 15:35:04 -05:00
Daniel Bomar
cd4b93a71a
[KHM] Fixed Battle Mammoth triggering too many times 2021-02-27 12:39:04 -06:00
Daniel Bomar
58fda68117
[KHM] Fixed Draugr Necromancer being able to play lands from MDFCs 2021-02-27 11:34:24 -06: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
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
d4311916a4 [ATQ] fixed implementation of Goblin Artisans (fixes #7629) 2021-02-27 09:04:26 -05:00
Evan Kranzler
50071b59a0 refactored zone changes, letters I through L
fixed some issues with Immortal Coil, simplified Increasing Ambition, reworked Induced Amnesia and Legion's Initiative, corrected Khalni Gem targeting on trigger
2021-02-26 20:46:34 -05:00
Daniel Bomar
73f594583f
[KHM] Fixed Draugr Necromancer being unable to cast Adventures 2021-02-26 16:10:46 -06:00
Daniel Bomar
87b3511ee2
[M20] Fixed Leyline of Combustion triggering too many times 2021-02-26 13:31:15 -06:00
Daniel Bomar
27c0f75302
Fixed Archfiend's Vessel not moving to exile (fixes #7622) 2021-02-25 16:39:20 -06: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
jeffwadsworth
27b85bca88 - S cards: A player now moves the card/permanent to a zone. 2021-02-24 15:25:08 -06:00
Evan Kranzler
16306eb428 refactored zone changes, letters G and H
reworked Gift of the Gargantuan to allow cleaner choice
2021-02-24 15:57:57 -05:00
Evan Kranzler
756ca46718 refactored zone changes, letters E and F
simplified Enduring Renewal and Firemind's Foresight, fixed Faith's Reward and Fell Shepherd counting cards which had left and re-entered graveyards
2021-02-24 15:41:20 -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
Jeff
47dc1d8d61 - T, V, U cards: A player now moves the card/permanent to a zone. 2021-02-24 11:07:36 -06:00
Evan Kranzler
ae3ff96e11 refactored some zone change handling 2021-02-24 09:24:11 -05:00
jeffwadsworth
1ac7112b5d - W cards: A player now moves the card/permanent to a zone. 2021-02-23 19:45:47 -06:00
Evan Kranzler
f5f7638216 [KHM] updated Draugr Necromancer, added test (#7620) 2021-02-23 19:11:21 -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
Evan Kranzler
5e43c79f11 [KHM] fixed King Harald's Revenge requiring all creatures to block rather than just one 2021-02-22 18:09:52 -05: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
b94af941df Fixed test 2021-02-22 22:01:13 +04:00
Oleg Agafonov
4050577d6b Tests: added tests for Moritte of the Frost (related to #7546); 2021-02-22 21:55:17 +04:00