Commit graph

7909 commits

Author SHA1 Message Date
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
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
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
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
6670ceb2ae [DFT] Implement Rangers' Aetherhive 2025-01-31 14:04:19 -05:00
theelk801
293ddd7016 [DFT] rework max speed ability 2025-01-31 13:56:08 -05:00
theelk801
436a0fd2ed [DFT] Implement Gastal Thrillroller 2025-01-31 10:27:46 -05:00
theelk801
660bc0d6b4 [DFT] Implement Howler's Heavy 2025-01-31 10:27:46 -05:00
theelk801
3f3dfa83f1 [DFT] Implement Deathless Pilot 2025-01-31 10:27:46 -05:00
Oleg Agafonov
9d8f87b139 deck: added boosters for Commander Masters (CMM) (related to #13160): 2025-01-31 17:32:41 +04:00
Grath
4dbce1132c Fix typo in method name. 2025-01-30 13:33:06 -05:00
Oleg Agafonov
36309206a2 Create copy effects - fixed that it can't copy second side of the modal double-faced card (close #11307, close #13269); 2025-01-29 00:51:34 +04:00
Oleg Agafonov
13adabd169 deck: added boosters for some sets and other (related to #13160):
* added boosters to Innistrad: Double Feature (DBL);
* added boosters to 30th Anniversary Edition (30A);
* added Chaos Orb reprint to 30A;
* fixed wrong card art styles in ZNE;
2025-01-28 01:18:58 +04:00
Oleg Agafonov
c61a206b56 deck: added booster and reprints from Fallout (PIP), disabled booster from Summer Magic (related to #13160) 2025-01-27 10:46:19 +04:00
theelk801
86c4b85973 [DFT] Implement Draconautics Engineer 2025-01-26 20:05:47 -05:00
Oleg Agafonov
d9cb196e2c refactor: added helper methods for default booster settings (see enableDraftBooster, enablePlayOrArenaBooster) 2025-01-27 00:15:44 +04:00
Oleg Agafonov
49b0568143 refactor: added shared code to hide mutate cards 2025-01-25 20:16:27 +04:00
Oleg Agafonov
de54bd0e1a refactor: improved card graphic settings in set files 2025-01-25 20:16:26 +04:00
Oleg Agafonov
de19bd56cb refactor: fixed copy constructor in some dynamic values 2025-01-25 01:11:35 +04:00
Grath
7bfb0d2dec [DRC] Implement Prophet of the Scarab
Also adds a DynamicValue that finds the largest of multiple DynamicValues.
2025-01-24 15:47:17 -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
theelk801
59c1a32697 [DFT] Implement Streaking Oilgorger 2025-01-23 23:07:34 -05:00
theelk801
5738f582ca [DFT] Implement Prowcatcher Specialist 2025-01-23 11:51:53 -05:00
Oleg Agafonov
e6ae7e9114 refactor: fixed wrong copy code of some fields 2025-01-22 19:35:43 +04:00
Oleg Agafonov
3f79ffa21a refactor: improved cards hints support for combined triggers like OrTriggeredAbility 2025-01-22 19:06:05 +04:00
Marco Romano
0bcf5f9e03
[DSK] Implement Unable to Scream (#13234)
* Introduced LoseAllAbilitiesAttachedEffect

* Added unit tests for Unable to Scream
2025-01-19 16:09:57 -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