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