Commit graph

46095 commits

Author SHA1 Message Date
Grath
9799378922 [FDN] Implement Dionus, Elvish Archdruid
Plus added to spoiler. Card previewed on https://magic.wizards.com/en/news/announcements/foundations-jumpstart-booster-themes
2024-10-28 12:29:59 -04:00
xenohedron
5b0eba7068
refactor: end step triggered abilities (#13047)
* simplify BeginningOfEndStepTriggeredAbility

* more simplifications

* move to common class

* find and replace to common class

* simplify again

* align parameter order

* package reorg

* simplify BeginningOfCombatTriggeredAbility constructors

* simplify BeginningOfFirstMainTriggeredAbility constructors

* text fixes

* update docs
2024-10-28 01:49:11 -04:00
xenohedron
587a68a837
refactor: simplify BeginningOfUpkeepTriggeredAbility (#13046)
* remove superfluous zone.battlefield

* remove redundant TargetController.YOU

* remove unneeded param

* simpler constructor with default optional false

* move to inheritance structure

remove setTargetPointer

* adjust

* align trigger phrase text

* add comments, fix param

* fix params and text

* fix params to fix text

* simplify

* package reorg
2024-10-28 00:15:59 -04:00
xenohedron
eee0fee79e
refactor: common logic for "at..." triggered abilities (#13045)
* add new common framework for at step triggered abilities

* move postcombat main and second main triggers to it

* update draw step triggers

* refactor BeginningOfCombatTriggeredAbility

* refactor BeginningOfFirstMainTriggeredAbility

* move Pronoun to constants package

* cleanup some cards to use simpler constructors

* package reorganization
2024-10-27 21:03:40 -04:00
Grath
c9cc398b48 [FDN] Implement Niv-Mizzet, Visionary. 2024-10-27 16:00:11 -04:00
xenohedron
aa7a610db2
refactor: clean up triggered abilities from graveyard (#13044)
* some improvements to counter removing triggers

* fix Zone.GRAVEYARD text/conditions for beginning of upkeep triggers

* remaining refactors

* add condition text

* text corrections

* remove remaining generateZoneString

* remove superfluous hardcoded rules text param
2024-10-27 15:23:54 -04:00
theelk801
90623b6a0e [J25] add set 2024-10-27 12:35:28 -04:00
Oleg Agafonov
c0e027f4f4 Verrak, Warped Sengir - improved combo support with phyrexian style effects like K'rrik, Son of Yawgmoth (closes #10119) 2024-10-27 14:57:53 +04:00
xenohedron
8a8773971d
refactor: add new simpler technique for intervening if conditions on triggered abilities (#13037)
too many usages to fix all at once, plus condition text needs updating, but this will give a cleaner option for new implementations
2024-10-27 00:19:57 -04:00
xenohedron
fb71ce8c85
refactor: SourcePermanentPowerValue to enum (#13040)
* refactor: standard enum style for SourcePermanentToughnessValue

* refactor SourcePermanentPowerCount to enum SourcePermanentPowerValue

add comments on usage of NOT_NEGATIVE vs ALLOW_NEGATIVE
2024-10-27 00:19:38 -04:00
xenohedron
5070f8bef7
Fix auto-choose targets for activated abilities and spells (#13036)
* rework Armory Automaton

* remove redundant "setRequired(false)" from effects that separate into piles

* replace setRequired(false) with minTargets 0

* remove setRequired(false) where minTargets already 0

* remove setRequired(false) where preceded by chooseUse

* Revert "Player auto-choose respects required targets (#10557)"

This reverts commit fb8424556e.
2024-10-26 20:23:50 -04:00
xenohedron
737e67963d
refactor: common logic for getting controller of target object (#13038) 2024-10-26 20:23:34 -04:00
xenohedron
6cc2306784 fix Erestor of the Council
(wasn't drawing a card)
2024-10-26 20:14:50 -04:00
xenohedron
83fdee7ec9 remove unused class
closes #12512
2024-10-26 20:11:10 -04:00
xenohedron
2969ba58be
refactors: common class for "return all xxx from your graveyard to the battlefield" (#13034)
* refactor: new ReturnFromYourGraveyardToBattlefieldAllEffect

* refactor: new ShuffleYourGraveyardIntoLibraryEffect

also new PutIntoGraveFromLibrarySourceTriggeredAbility
2024-10-26 16:20:31 -04:00
xenohedron
001f9e866f
refactor: PlayFromGraveyardControllerEffect (#13032)
* refactor PlayFromGraveyardControllerEffect for broader usage

* AbandonedSarcophagus to common class

* refactor Player::canPlayCardsFromGraveyard to AsThough common class

* a few more refactors
2024-10-26 16:20:16 -04:00
theelk801
0d63750a81 [FDN] Implement Crypt Feaster 2024-10-26 14:49:43 -04:00
theelk801
c8d5761078 [FDN] Implement Arcane Epiphany 2024-10-26 14:46:01 -04:00
theelk801
ad8c02dedd [FDN] Implement Mossborn Hydra 2024-10-26 14:41:16 -04:00
theelk801
9465e2da20 [FDN] Implement Refute 2024-10-26 14:38:18 -04:00
theelk801
c7050a2a3b [FDN] Implement Searslicer Goblin 2024-10-26 14:37:26 -04:00
theelk801
0d5ff830d9 [DFT] Implement Daretti, Rocketeer Engineer 2024-10-26 14:34:35 -04:00
theelk801
d16c94904c [DFT] Implement Brightglass Gearhulk 2024-10-26 14:27:57 -04:00
theelk801
9433734051 [DFT] Implement Earthrumbler 2024-10-26 14:25:26 -04:00
theelk801
bcb0d5babc [DFT] add set 2024-10-26 14:21:45 -04:00
theelk801
ad3bc1ebc5 [FDN] update spoiler and reprints 2024-10-26 14:17:25 -04:00
Oleg Agafonov
e35911ad85 tests: fixed random fails 2024-10-26 12:19:47 +04:00
Oleg Agafonov
a9bdf2eb18 test framework: improved aiXXX commands support:
- added more options for priority control (play single priority, play multiple priorities until stack resolved);
- added more options for step control (play single step, play multiple steps);
- improved compatibility with AI and real time commands (now check commands can be called inside AI controlled steps);
- added tests for assign non-blocked damage;
2024-10-26 11:55:19 +04:00
Oleg Agafonov
a06935da81 merge fix 2024-10-26 09:00:12 +04:00
Oleg Agafonov
c265e640bb Keen-Eyed Curator - fixed not working boost effect (#13022) 2024-10-24 22:18:29 +04:00
Jeff Wadsworth
14e14f5ba8 Fixed #13022 2024-10-24 11:56:05 -05:00
Oleg Agafonov
1ec277631f GUI, game: added card popup support in choose target amount dialogs (example: damage distribution, related to #9827) 2024-10-24 16:30:17 +04:00
Oleg Agafonov
0fbd9bb60f Master of the Wild Hunt - reworked to use single damage dialog instead multiple calls, added card hints (related to #9827); 2024-10-24 15:32:48 +04:00
Oleg Agafonov
2d9ac4e732 refactor: removed outdated Player::assignDamage by multi amount dialog, fixed getMultiAmount to work with min values, added additional checks 2024-10-24 15:31:04 +04:00
Oleg Agafonov
86fc0028c1 refactor: use standard code style 2024-10-24 14:01:56 +04:00
Oleg Agafonov
b51fdae550 refactor: fixed potential game freeze in some infinite cycles, disconnects and top library's card usage (related to #11285); 2024-10-24 13:19:05 +04:00
Oleg Agafonov
cfad27ffae code clean 2024-10-24 09:12:41 +04:00
tiera3
6047f592cf
implement [DA1] More of that Strange Oil (#13019) 2024-10-24 00:20:48 -04:00
tiera3
63b832b6d6
correction to DMU collation (#13017)
Corrected ratio of common:uncommon oldframe cards
2024-10-24 00:20:27 -04:00
Grath
f7f2d58081
[SLD] Implement Captain America, First Avenger (#13023)
* [SLD] Implement Captain America, First Avenger

I made assumptions that WotC is going to fix the rules by adding "choose the equipment you're unattaching with Throw..." to rule 601.2b so that this card actually functions since you have to choose a TargetAnyTargetAmount in steps 601.2c/601.2d long before you actually pay the unattach cost in 601.2h.

* Remove Target workaround, add proper 601.2b handling for choosing cost targets early using inheritance to avoid having a horrific brittle list of 'these costs must be paid early'.
2024-10-24 00:19:39 -04:00
theelk801
6d84cee967 [SLD] add newest non-reprints 2024-10-21 17:17:05 -04:00
theelk801
b35fb9c203 [SLD] Implement Iron Man, Titan of Innovation 2024-10-21 17:13:35 -04:00
theelk801
640347e590 [SLD] Implement Wolverine, Best There Is 2024-10-21 17:05:38 -04:00
theelk801
14e1f477d2 [MKC] fix Hot Pursuit watcher 2024-10-21 11:22:18 -04:00
ssk97
f2ff4828b3
Alternative solution to problem of unplayable cards from target adjustment (#12842)
* Alternative solution to problem of unplayable cards from target adjustment

* Review fixes
2024-10-19 19:13:39 -07:00
xenohedron
d293200198 more text fixes 2024-10-19 00:46:44 -04:00
xenohedron
250869931b text fixes 2024-10-19 00:25:12 -04:00
xenohedron
2d44a029eb remove outdated comments 2024-10-18 23:08:22 -04:00
Grath
57deccae61
Fix HideawayPlayEffect to allow you to attempt to play everything (#13009)
* Fix HideawayPlayEffect to allow you to attempt to play everything, in cases of multiple Hideaway triggers.

* Allow users to choose order of cards to be potentially played.

* Update HideawayPlay and Arcane Bombardment to not ask if you want to play the cards you chose.

Update tests, add tests for
- Select the order in which to play cards
- Attempt to play two lands with only one land drop available, only the first land enters play
- Play two lands with extra land drops available.

* Fix no-parameter constructor.
2024-10-18 23:05:06 -04:00
paasar
06f630b00a
implement [DSK] Irreverent Gremlin (#13003)
* Add Irreverent Gremlin (DSK)

* Fix formatting

* Add Menace ability comment

* Fix Irreverent Gremlin's card draw trigger

* fix optional setting

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2024-10-18 23:04:46 -04:00