Commit graph

12652 commits

Author SHA1 Message Date
jmlundeen
4d38f6b942 Fix Riptide Gearhulk not bouncing all targets
Reported on Discord, PutIntoLibraryNFromTopTargetEffect was only processing the first target. The effect now supports multiple targets.
2025-04-12 14:59:25 -05:00
jmlundeen
6335cee30c [TDC] Implement Kotis, Sibsig Champion
* Give ability to add another cost to CastFromGraveyardOnceEachTurnAbility
2025-04-12 10:35:41 -05:00
androosss
482745928e
implement [TDM] All-Out Assault (#13512)
- new main phase condition
- Added when you attack delayed triggered ability
2025-04-11 22:39:21 -04:00
theelk801
92e37a05aa [TDC] Implement Rampart Architect 2025-04-11 18:34:48 -04:00
theelk801
1ace958057 [TDC] Implement Broodcaller Scourge 2025-04-11 12:19:45 -04:00
Oleg Agafonov
b819545744 bump version 2025-04-11 17:50:12 +04:00
Jmlundeen
1b06813997
Reworked Suspend ability: (#13527)
* Updated Delay and Gandalf Of The Secret Fire to get the main card since they target spells

* Suspend now properly lets you play either side of mdfc and spell parts from adventure/omen cards utilizing CardUtil.castSpellWithAttributesForFree method

* Removed extra code in SuspendPlayCardEffect since the referenced bug for Epochrasite does not seem to appear. Removed related gainedTemporary variable also.

* Added tests for Omen and Suspend With Taigam, Master Opportunists as well as an Epochrasite test for recasting after suspend.
2025-04-11 15:22:13 +04:00
theelk801
9285b7e78a [TDM] Implement Perennation 2025-04-10 18:26:13 -04:00
theelk801
5ae4d7c0bc [TDM] Implement Severance Priest 2025-04-10 15:52:11 -04:00
Evan Kranzler
4d8028adb9
[TDM] Implement harmonize mechanic (#13475)
* add initial ability

* remove skip list

* update harmonize ability

* add reminder text

* remove skip list

* add harmonize test

* update tests

* create base class for flashback-like abilities
2025-04-10 13:39:21 -04:00
theelk801
f3ffca26fa [TDC] Implement Redoubled Stormsinger 2025-04-10 08:47:59 -04:00
theelk801
3b959c25b9 fix verify failure 2025-04-10 08:23:18 -04:00
theelk801
2363fd6390 [TDC] Implement Arbor Adherent 2025-04-10 07:44:23 -04:00
Oleg Agafonov
dcdf0ca4a5 Choose a player at random - fixed that it wrongly choose same player (example: Scrambleverse, close #12679, close #13526);
Inniaz, the Gale Force - fixed that it wrongly choose left/right player (close #13526);
2025-04-10 12:42:42 +04:00
Jmlundeen
e552a54e6f
[TDM] Focus the Mind and Sage of the Skies (#13524)
* [TDM] Implement Focus the Mind
* [TDM] Implement Sage of the Skies
* Extracted cast another spell this turn condition from Rally the Monastery
* Add condition to Rally the Monastery and Slick Sequence
2025-04-09 13:16:48 -05:00
theelk801
4c8337e0e5 [TDM] Implement Rot-Curse Rakshasa 2025-04-09 13:52:07 -04:00
Evan Kranzler
56a05a7843
Rework implementation of anchor words (#13518)
* refactor anchor word implementation

* fix error

* [TDM] Implement Windcrag Siege
2025-04-09 13:24:57 -04:00
theelk801
3c6e055f41 [TDC] Implement Become the Avalanche 2025-04-09 08:36:38 -04:00
theelk801
d567582cf0 [TDC] Implement Aligned Heart 2025-04-09 08:12:34 -04:00
theelk801
04f9ab75ba [TDM] Implement Krumar Initiate 2025-04-08 17:47:02 -04:00
Oleg Agafonov
d674c592ea refactor: improved Aladdin's Lamp 2025-04-08 23:11:43 +04:00
Oleg Agafonov
36cec8961e refactor: better naming in CardsInControllerHandCount 2025-04-08 22:42:31 +04:00
Oleg Agafonov
bae3089abb Reworked cost adjuster logic for better support of X and cost modification effects:
Improves:
* refactor: split CostAdjuster logic in multiple parts - prepare X, prepare cost, increase cost, reduce cost;
* refactor: improved VariableManaCost to support min/max values, playable and AI calculations, test framework;
* refactor: improved EarlyTargetCost to support mana costs too (related to #13023);
* refactor: migrated some cards with CostAdjuster and X to EarlyTargetCost (Knollspine Invocation, etc - related to #13023);
* refactor: added shared code for "As an additional cost to cast this spell, discard X creature cards";
* refactor: added shared code for "X is the converted mana cost of the exiled card";
* tests: added dozens tests with cost adjusters;

Bug fixes:
* game: fixed that some cards with CostAdjuster ignore min/max limits for X (allow to choose any X, example: Scorched Earth, Open The Way);
* game: fixed that some cards ask to announce already defined X values (example: Bargaining Table);
* game: fixed that some cards with CostAdjuster do not support combo with other cost modification effects;
* game, gui: fixed missing game logs about predefined X values;
* game, gui: fixed wrong X icon for predefined X values;

Test framework:
* test framework: added X min/max check for wrong values;
* test framework: added X min/max info in miss X value announce;
* test framework: added check to find duplicated effect bugs (see assertNoDuplicatedEffects);

Cards:
* Open The Way - fixed that it allow to choose any X without limits (close #12810);
* Unbound Flourishing - improved combo support for activated abilities with predefined X mana costs like Bargaining Table;
2025-04-08 22:39:10 +04:00
jmlundeen
63781e9ca1 Missed some references to instanceof AdventureCard
replaced with CardWithSpellOption
2025-04-08 09:49:08 -05:00
theelk801
2e6e3cd4e7 [TDM] Implement Mardu Siegebreaker 2025-04-08 09:16:50 -04:00
theelk801
235e5200d0 [TDM] Implement Warden of the Grove 2025-04-08 08:54:27 -04:00
Jmlundeen
0df5f17603
[TDM] Implement omen mechanic (#13501)
* Abstract AdventureCard to SingleFaceSplitCard

* Fix AdventureCardSpellImpl

* Finish converting adventure card and adventure spell

* Update Brightcap Badger

change finalize call to adventure card

* Update Darksteel Monolith

being cast from hand condition referencing AdventureCardSpell

* Update Tlincalli Hunter

exiled creature condition referencing AdventureCardSpell

* Update Twice Upon a Time

finalizeAdventure called from Adventure card

* Finish abstracting Adventure

missed some more references to adventure cards

* Implement Omen cards

* Implement Dirgur Island Dragon

* Missed some adventureSpellName references

* OmenCardSpell had wrong comma symbol

* Add tests for Omen Cards

* Rename two part card components

change from SingleFaceSplitCard to CardWithSpellOption

* Update comments and variable name
2025-04-08 08:54:18 -04:00
Balázs Kristóf
6f524b69c0
[FIN] Implement Stiltzkin, Moogle Merchant (#13443) 2025-04-05 14:13:23 -04:00
padfoothelix
eac265f4f7
[WHO] Implement Fugitive of the Judoon (#13467) 2025-04-05 14:10:45 -04:00
androosss
97b5341688
- Implemented Highspire Bell-Ringer (#13495)
- Commonized second spell condition
2025-04-05 13:44:16 -04:00
jmlundeen
8e1805c874 Fix Ward batch event bug
Fixes #13498

getTargetingStackObject wasn't processing all stackObjects in a batch event

added tests for some related cards that also use the method
- Agrus Kos, Eternal Soldier
- Pawpatch Recruit
- Ward Ability
2025-04-05 07:47:24 -05:00
androosss
b6421e4b6c
images: added new tokens from promo and other sets, fixed miss images (#13492)
* add missing tokens images
* fix broken card images
* remove tokens without image
* remove copy tokens references (embalm, eternalize)
2025-04-02 15:13:25 +04:00
androosss
730bd8e63d
refactor: improved tokens structure (#13487)
- removed duplicate tokens
- fixed names of some tokens
- corrected tokens used in tokens database
2025-04-01 13:58:05 +04:00
ssk97
969ffa1c98
FDN New Combat Rules (#13279)
* Remove all combat ordering code

* Use MultiAmount division for damage

* Remove damage selection division skipping in tests

* Fix Banding, Multi-block, add tests

* Fix test

* Fix random iteration order, fix new tests

* Add more info to choose dialog, make MultiAmountType class instead of enum

* Don't prompt for trample damage assignment if none possible

* Mark "Assign default damage" on tests, minor other test improvements
2025-03-30 14:42:05 -07:00
theelk801
abcabefbd9 [TDM] Implement Molten Exhale 2025-03-30 17:05:20 -04:00
PurpleCrowbar
fa909b2b40 Add TDM token images for implemented tokens 2025-03-29 01:52:53 +00:00
PurpleCrowbar
2286dd2bbd Fix Great Arashin City 2025-03-29 01:32:37 +00:00
PurpleCrowbar
fcbf22380e [TDM] Implement Teeming Dragonstorm 2025-03-29 01:16:21 +00:00
Evan Kranzler
ff3174877a
Remove gold from ObjectColor (#13470)
* remove gold

* rework Sword of Dungeons and Dragons, add comments about color

* rework Call to Arms, most common color condition
2025-03-28 10:12:01 -04:00
theelk801
51b7f93466 [TDM] Implement Dragonbroods' Relic 2025-03-27 18:54:17 -04:00
theelk801
753c11f7a6 [TDM] Implement Avenger of the Fallen 2025-03-27 10:20:45 -04:00
theelk801
4440c7cdcb [TDM] Implement Piercing Exhale 2025-03-26 16:28:39 -04:00
theelk801
06201a768a [TDM] Implement Kheru Goldkeeper 2025-03-26 13:07:45 -04:00
PurpleCrowbar
ffd995c099 Add all TDC tokens on Scryfall so far 2025-03-25 00:02:22 +00:00
theelk801
3cdc5c578d [TDM] Implement Call of the Spirit Dragons 2025-03-24 15:25:37 -04:00
theelk801
bb07247282 [TDM] Implement Channeled Dragonfire and add skip list for harmonize 2025-03-24 11:10:39 -04:00
theelk801
8e767c4942 [TDM] Implement Cori-Steel Cutter 2025-03-24 10:19:56 -04:00
theelk801
d9ea84d747 [TDM] Implement Temur Monument 2025-03-23 20:23:01 -04:00
Evan Kranzler
9e0bd2d407
[TDM] Implement Abzan Devotee (#13464)
* [TDM] Implement Abzan Devotee

* small update to constructors
2025-03-23 09:00:46 -04:00
jmlundeen
0e0e34a116 [DRC] Add tokens 2025-03-22 00:59:19 -05:00