Commit graph

2373 commits

Author SHA1 Message Date
theelk801
5e27be4dfa [SPE] Implement Sensational Spider-Man 2025-04-17 20:52:49 -04:00
theelk801
5876040be7 fix harmonize implementation (fixes #13531) 2025-04-14 10:19:08 -04:00
theelk801
92e37a05aa [TDC] Implement Rampart Architect 2025-04-11 18:34:48 -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
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
padfoothelix
eac265f4f7
[WHO] Implement Fugitive of the Judoon (#13467) 2025-04-05 14:10:45 -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
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
d9ea84d747 [TDM] Implement Temur Monument 2025-03-23 20:23:01 -04:00
jmlundeen
5d61b8fb11 [DRC] Pia Nalaar, Chief Mechanic 2025-03-22 00:59:19 -05:00
jmlundeen
b519e8d8e9 Update tokens database
fixed some incorrect entries
added Aetherdrift tokens
2025-03-20 17:03:34 -05:00
theelk801
9319c56b2b [TDM] Implement Dusyut Earthcarver 2025-03-20 10:57:12 -04:00
Balázs Kristóf
8e6c16de55
[TDM] Implement Mobilize keyword ability and Dragonback Lancer and Voice of Victory (#13461)
* [TDM] Implement Mobilize keyword ability

* [TDM] Implement Dragonback Lancer

* [TDM] Implement Voice of Victory

* Add Mobilize to keywords.txt

---------

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2025-03-18 21:59:20 -04:00
xenohedron
fa88a3217d fix #13451 (Nether Traitor), add test 2025-03-16 00:46:11 -04:00
theelk801
9c29ff9ca4 [TDC] Implement Teval, the Balanced Scale 2025-02-22 12:42:24 -05:00
Oleg Agafonov
90034fe9b0 refactor: removed outdated and unused debug code (combat and continuous effects) 2025-02-22 15:32:30 +04:00
Oleg Agafonov
869cf83fd6 refactor: code clean in turn 2025-02-22 15:29:25 +04:00
Oleg Agafonov
b82c6010c2 refactor: simplified turn logs, removed useless poison info from it 2025-02-22 07:57:53 +04:00
4825764518
ecbab0da9b
[PIP] Implement Strong, the Brutish Thespian (#13359) 2025-02-18 06:20:04 +04:00
padfoothelix
0281b35c58
[WHO] Implement The Girl in the Fireplace (#13356) 2025-02-17 16:24:05 +04:00
Oleg Agafonov
df0a2760b6 refactor: fixed wrong usage of getModes (related to #13338) 2025-02-17 01:16:04 +04:00
theelk801
bc120a34c7 [DFT] various text fixes 2025-02-08 16:42:10 -05:00
Oleg Agafonov
e408836a19 game: added defenders info in declared attackers log 2025-02-08 01:57:00 +04:00
Grath
145bda842b
[DSK] Implement Hauntwoods Shrieker, added support to reveal face down permanents (#13277)
* [DSK] Implement Hauntwoods Shrieker.
* Change RevealedView and PlayerImpl.revealCards to reveal face-down permanents.
* Fix #13273 using the new RevealCards capability.
2025-02-07 19:18:31 +04:00
Oleg Agafonov
4a3429b792 Shadow Kin - fixed game error on usage with MDF cards (related to #13308) 2025-02-07 08:12:43 +04:00
Oleg Agafonov
25e4930bd5 Number of card types in graveyards - added card hint for cards like Tarmogoyf 2025-02-07 07:37:27 +04:00
Oleg Agafonov
bf0b957948 [DFT] added image support for designations, added Speed image (visible on triggered abilities) 2025-02-07 00:45:06 +04:00
Oleg Agafonov
b4fa6ace66 AI: reworked blockers selections:
* now computer will use simplified 1 vs 1 combat damage simulations to choose better blockers (due better game score after combat);
* it's not a full combat simulation, but support many things like non-stack abilities, damage replacement effects and SBA -- much better than older PT compare (related to #13290);
* now AI correctly use a blockers with deathtouth, indestructible, first/double strike and other abilities;
* chump blocks also supported (chump logic implemented before in 92b7ed8efc, related to #4485);
2025-02-06 07:03:16 +04:00
Oleg Agafonov
3405b51aaf tests: improved load tests (improved progress bar, added effects stats) 2025-02-04 11:41:42 +04:00
Oleg Agafonov
7035736a6c AI: improved game stability on blocking (related to #13290) 2025-02-04 10:21:13 +04:00
Oleg Agafonov
92b7ed8efc AI: reworked blockers selections:
* fixed game freezes for no-possible block configurations like Menace (#13290);
* fixed computer cheating to ignore block requirements like Menace (now AI will choose all required blockers instead 1);
* improved computer logic for blockers selection (try to sacrifice a creature instead game loose, simple use cases only);
* added freeze protection for bad or unsupported attacker-block configuration;
* refactor: deleted outdated AI code;
2025-02-04 01:14:59 +04:00
theelk801
c0ccbe2a2b [DFT] Implement Chandra, Spark Hunter 2025-02-03 14:19:17 -05:00
Oleg Agafonov
58fbfdd529 refactor: improved usage of getOpponents to ignore leaved players in one short effects 2025-02-03 17:46:57 +04:00
Evan Kranzler
ef213b1bef
Implementing "Start your engines!" mechanic (#13259)
* add initial speed handling

* finish speed implementation

* remove skip list

* add initial test

* add some more tests

* change speed initialization to state-based action

* add opponent speed check

* add control change test

* add check for speed 5
2025-02-01 13:49:47 -05:00
Oleg Agafonov
d75792312e tests: added runtime check for wrong usage of inform messages inside layer effects (disabled by default, related to #13259, #11285) 2025-02-01 12:53:09 +04:00
theelk801
86c4b85973 [DFT] Implement Draconautics Engineer 2025-01-26 20:05:47 -05:00
Grath
9172a9eba8 [DRC] Implement On Wings of Gold. 2025-01-24 14:23:10 -05:00
theelk801
334655014d [DFT] Implement Country Roads 2025-01-24 12:38:08 -05:00
theelk801
4b5bf3e1de [DFT] Implement Cloudspire Captain 2025-01-24 12:25:50 -05:00
PurpleCrowbar
e399e233d7 [DSC] Implement Rendmaw, Creaking Nest 2025-01-18 01:30:37 +00:00
PurpleCrowbar
1e9c171441 [BLC] Implement Fisher's Talent 2025-01-17 18:58:00 +00:00
Oleg Agafonov
0505f5159e Turn under control reworked:
- game: added support when a human is take control over a computer player (related to #12878);
 - game: fixed game freezes while controlling player leaves/disconnect on active priority/choose of another player;
2025-01-10 20:20:11 +04:00
Oleg Agafonov
5626c5f932 cheats: added default commands to take and remove control over another player (related to #12878) 2025-01-07 19:47:25 +04:00
Oleg Agafonov
c076f4925f Turn under control reworked:
- game: added support for human games (cards like Emrakul, the Promised End, #12878);
 - game: added support of 720.1. to reset control in the turn beginning instead cleanup step (related to #12115);
 - game: added game logs for priorities in cleanup step;
 - game: fixed game freezes and wrong skip settings usages (related to #12878);
 - gui: added playable and choose-able marks for controlling player's cards and permanents, including switched hands;
 - gui: added controlling player name in all choice dialogs;
 - info: control of computer players is it not yet supported;
2025-01-07 12:38:01 +04:00
jackd149
fd4b82696b
[DSK] Implement Kaito, Bane of Nightmares (#13187) 2025-01-02 20:03:51 -05:00
Cameron Merkel
48117b9620
[DSC] Implement Phenomenon Investigators (#13184) 2025-01-02 20:03:35 -05:00