Commit graph

12580 commits

Author SHA1 Message Date
Jmlundeen
66fd5c1b6a
[DFT] Implement many cards with custom effects (#13407)
* [DFT] Implement Loot, the Pathfinder

add option to hide reminder text for exhaust ability

* [DFT] Implement Guidelight Optimizer

* [DFT] Implement Radiant Lotus

* [DFT] Implement Oildeep Gearhulk

* fix Oildeep Gearhulk target

* fix OilDeep Gearhulk duplicate hand reveal

* [DFT] Implement Momentum Breaker

* [DFT] Implement Sita Varma, Masked Racer

* [DFT] Implement SkySeers Chariot

* [DFT] Implement Skyserpent Seeker

* [DFT] Implement Tune Up

* fix Skyseer's Chariot modifying spell cost

* use exhaust constructor boolean for reminderText

* Update cards for review

change radiant lotus outcome to prevent AI from trying to use it

change oildeep card choice to discard

replace Composite cost and move discard effect if sacrifice was unsuccessful

replace Composite costs and add target to Loot's third ability

* Missed braces for mana cost

Update GuidelightOptimizer text
2025-03-16 04:21:58 +04:00
Jmlundeen
7c55d444b0
[DFT] Implement Push the Limit (#13408) 2025-03-16 04:17:44 +04:00
xenohedron
7b03af3de3 fix #13433 (DoIfCostPaid regression), add test 2025-03-15 17:45:28 -04:00
xenohedron
bf8c8c4e99 fix #13425 (ninjutsu ability), add test 2025-03-15 17:36:46 -04:00
Grath
a9bffe4d25
Fix missing ProcessAction between the last mana being paid and the spell being cast. (#13396)
This is necessary so that, among other things, the Rain of Riches watcher can see that the last mana of a spell was a Treasure before the spell is cast - at which point it needs to already have Cascade.
2025-03-14 20:45:15 -04:00
Jmlundeen
9aaad5193f
[DFT] Implement Elvish Refueler (#13392) 2025-03-14 07:24:26 +04:00
Balázs Kristóf
cd8cb6afe5
[ACR] Implement Overpowering Attack (#13398)
* [ACR] Implement Overpowering Attack

* Replaced UntapAllThatAttackedEffect with filtered UntapAllEffect

* Add MyTurnCondition to Overpowering Attack
2025-03-13 17:51:59 -07:00
4825764518
8267d7d770
[DRC] Implement Priest of the Crossing (#13394)
* Implement Priest of the Crossing

* Add common dynamic value for "creatures that died under your control this turn"
2025-03-12 22:01:25 -07:00
Oleg Agafonov
b55ad3cdc0
Merge pull request #13373 from Jmlundeen/implement-ketramose
[DFT] Implement Ketramose, the New Dawn
2025-03-11 14:02:43 +03:00
jmlundeen
121ab378e7 Change CardsInExileCondition constructor and toString
change CardsInExileCondition to accept generic DynamicValue
create a toString override to generate rule text
2025-03-08 12:52:39 -06:00
Jmlundeen
f22755d44d
[DFT] Implement Riverchurn Monument (#13405)
* fix MillCardsTargetEffect to work with multiple targets
2025-03-08 21:38:26 +04:00
Jmlundeen
f9aa8c1527
[DFT] Implement Wickerfolk Indomitable (#13404) 2025-03-08 19:49:29 +04:00
Grath
419030b681 [NCC] Partially fix Rain of Riches and add tests.
Two tests are failing and ignored because this is only a partial fix, as we will still need to process actions between the last mana being paid and the spell being cast.
2025-02-26 23:12:07 -05:00
ssk97
705ce2320d
[DFT] Canyon Vaulter, Cloudspire Skycycle, Dune Drifter (#13382)
* Support Mounts and Your Main restriction in CrewsVehicleSourceTriggeredAbility

* Genericize Reckless Velocitaur

* Implement [DFT] Canyon Vaulter, Cloudspire Skycycle, and Dune Drifter
2025-02-26 00:14:48 -08:00
Jmlundeen
158212bbeb
refactor: create common DynamicValue for instant and sorcery spells cast in a turn (#13374) 2025-02-23 00:57:26 +04:00
jmlundeen
b9fa82f602 Replace unnecessary custom hint class with ValueHint 2025-02-22 14:13:08 -06: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
jmlundeen
cbb3012b05 [DFT] Implement Ketramose, the New Dawn and implement exile condition and dynamic value 2025-02-21 21:19:34 -06:00
Steven Knipe
e22a3ec19f Use CardUtil function instead of reimplementing lower-casing 2025-02-20 21:54:34 -08:00
Steven Knipe
17e0c82a07 Remove BroodofCockroaches text test (in Verify), uncapitalize CreateDelayedTriggeredAbilityEffect ability rule text 2025-02-20 18:27:17 -08:00
theelk801
f5d4c957fc [DFT] small update to max speed mechanic to match comp rules 2025-02-18 09:51:09 -05:00
4825764518
ecbab0da9b
[PIP] Implement Strong, the Brutish Thespian (#13359) 2025-02-18 06:20:04 +04:00
4825764518
91a648c50d
[ACR] Implement Viewpoint Synchronization (#13358) 2025-02-18 04:57:55 +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
tiera3
e57098b9fe
[ME2] Implement Goblin Ski Patrol (#13285) 2025-02-13 20:49:12 +04:00
Oleg Agafonov
ba0e5a1aed Delve abilities - removed unnecessary windows with exiled cards (except few cards that can use it); 2025-02-11 22:21:07 +04:00
Oleg Agafonov
19269b22b0 refactor: improved ETB rules generations, fixed some cards/abilities (related to #12791) 2025-02-09 17:25:48 +04:00
Oleg Agafonov
0d0661cc92 refactor: added code example for rules auto-replacement in creature's ETB (related to #12791) 2025-02-09 13:51:22 +04:00
padfoothelix
1774c2ec36
Sinister Concierge - improved text, card logic and game logs (#13312) 2025-02-09 03:43:43 +04:00
theelk801
bc120a34c7 [DFT] various text fixes 2025-02-08 16:42:10 -05:00
Oleg Agafonov
06f24515cc refactor: added param to hide activate text in ActivateAsSorceryActivatedAbility (related to #13316); 2025-02-08 23:35:50 +04:00
Oleg Agafonov
c54fcde72a GUI, game: added source info in choose mode dialogs 2025-02-08 02:04:37 +04:00
Oleg Agafonov
e408836a19 game: added defenders info in declared attackers log 2025-02-08 01:57:00 +04:00
PurpleCrowbar
aa5c2279e7
Decayed ability - improved rules text (#13296) 2025-02-07 21:52:48 +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
9f2cfc9e09 tests: added runtime check for OrTriggeredAbility (related to #12826, 13309) 2025-02-07 14:34:45 +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
d018566324 Dredge - fixed game error in some use cases 2025-02-06 22:23:27 +04:00
Oleg Agafonov
f17cbbe72b AI: improved performance and fixed crashes on use cases with too much target options like "deals 5 damage divided as you choose" (related to #11285):
* added DebugUtil.AI_ENABLE_DEBUG_MODE for better IDE's debugging AI code;
 * it's a target amount optimizations;
 * it's use a grouping of possible targets due same static and dynamic stats (name, abilities, rules, damage, etc);
 * instead of going through all possible combinations, AI uses only meaningful targets from particular groups;
2025-02-06 17:40:22 +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
PurpleCrowbar
b3397a84b4 Add INR token images 2025-02-04 22:56:43 +00:00
theelk801
194ff4b073 [DFT] Implement Thunderhead Gunner 2025-02-04 13:51:06 -05:00
theelk801
d098ca5346 [DFT] Implement Redshift, Rocketeer Chief 2025-02-04 10:50:42 -05:00
Oleg Agafonov
b29a969fdb [DFT] fixed miss emblem 2025-02-04 13:48:55 +04:00