Commit graph

12566 commits

Author SHA1 Message Date
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
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
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
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
c082edd663 [DFT] Implement Adrenaline Jockey 2025-02-03 14:56:46 -05:00
theelk801
c0ccbe2a2b [DFT] Implement Chandra, Spark Hunter 2025-02-03 14:19:17 -05:00
theelk801
cf6ba1895a [DFT] Implement Cryptcaller Chariot 2025-02-03 11:35:07 -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
theelk801
b56f071414 [DFT] Implement Perilous Snare 2025-02-02 19:02:50 -05:00
theelk801
175ca742b0 [DFT] Implement Lightwheel Enhancements 2025-02-02 10:00:44 -05:00
Cameron Merkel
ec5e982d7e
Choose card name - added support to choose names from adventure spells (example: Anointed Peacekeeper) (#13286) 2025-02-02 17:02:26 +04:00
theelk801
3776a39683 [DFT] Implement Spikeshell Harrier 2025-02-01 19:21:46 -05: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
fc159728c7 version bump 2025-02-01 20:16:27 +04: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