Commit graph

49211 commits

Author SHA1 Message Date
Oleg Agafonov
16df60894a images: added H2R set to download, added new SLD/Mechtitan token images (related to #13808); 2025-08-10 13:09:44 +04:00
Oleg Agafonov
192d8f36dd images: fixed cards download of some promo cards like SLD (★ and † in url problem, related to #13808); 2025-08-10 13:03:53 +04:00
xenohedron
6dd4f33db2 fix Rikku, Resourceful Guardian 2025-08-09 19:35:07 -04:00
xenohedron
6f398ca2fc rework triggered ability class for putting counters on permanents
fix #13870 (Kate Stewart; All Will Be One)
2025-08-09 19:25:39 -04:00
Oleg Agafonov
8994c8e7aa merge fix 2025-08-10 03:07:30 +04:00
Jmlundeen
574d7f91a5
fix Yasharn, Implacable Earth and Angel of Jubilation (#13753)
* Fix Angel of Jubilation and Yasharn, Implacable Earth

* canPaySacrificeCost filter was not checking if the source ability was a spell or activated ability

* Create common CantPayLifeOrSacrificeEffect

* add some docs for CantPayLifeOrSacrificeEffect

* change player pay life restrictions and remove player sacrifice cost filter

* pay life cost restriction is now an enum set so multiple effects apply together

* sacrifice cost filter was removed and replaced with PAY_SACRIFICE_COST event

* convert CantPayLifeEffect to CantPayLifeOrSacrificeAbility

* Changed to combine life restriction and sacrifice cost restriction

* update bargain ability cost adjustors using canPay

* fix Thran Portal

* Effect was incorrectly adjusting the cost of mana abilities on itself.

* Fixed ability adding type to itself during ETB

* Add additional tests

* update PayLifeCostRestrictions to be mutually exclusive
2025-08-09 18:53:43 -04:00
Oleg Agafonov
2833460e59 AI: improved performance on too many possible targets (fix game freezes and server crashes - see #9539, #9438, #9518, related to #11285, #5023); 2025-08-10 02:16:18 +04:00
Oleg Agafonov
384ce67cc3 refactor: improved search in stack 2025-08-10 02:07:15 +04:00
Steven Knipe
26adccdfd5 Fix Shuriken giving control to wrong player 2025-08-08 18:57:27 -07:00
Correl Roush
925a820f09
Fix Nahiri, Forged in Fury trigger (#13893)
Fixes the trigger firing for all attacking creatures, not just equipped
ones.

Restores the equipped predicate removed in commit db193bd4 (#13707) and
adds tests to prevent future regressions.
2025-08-07 00:38:32 -04:00
xenohedron
25f4a5c6e7 fix #13894 (filter in Tromell, Seymour's Butler) 2025-08-07 00:37:36 -04:00
Oleg Agafonov
f5004746e0
Merge pull request #13892 from magefree/rework-targeting-and-possible-targets
Reworked targeting, possible targets and AI

Test framework improves:
- now game logs will show stack ability on push and on resolve (before any choices);
- now game logs will show used choices made by cast/activate, setChoice, setMode and addTarget commands (not work for AI tests, part of #13832);
- improved choice logic for modes and yes/not dialogs (now it's use a more strictly checks, use TestPlayer.MODE_SKIP to stop mode selection);
- improved error logs and testable dialogs menu in cheat mode;

Reworked AI, targeting and targets logic:
- refactor: simplified target implementation from a dozen canTarget, canChoose and possibleTargets methods to canTarget/possibleTargets only (part of #13638, #13766);
- refactor: fixed wrong target implementations in many cards (example: TargetCardInHand for opponent's hand, close #6210);
- AI: now human, AI and test players -- all use possibleTargets logic in most use cases instead filters or custom validation;
- AI: improved AI sims support for multiple targets abilities;
- AI: improved AI stability, freezes and targets errors in some use cases;

Additional fixes:
- close #13840
- close #13865
- close #13857
- close #13650
2025-08-05 01:44:20 +04:00
Oleg Agafonov
ea7e966c22 Remove time counter - fixed that it can't be selected for permanents with protection (example: Rift Elemental, close #13857); 2025-08-05 01:24:26 +04:00
Oleg Agafonov
c7a485b728 reworked AI, targeting and targets logic:
- refactor: simplified target implementation from a dozen canTarget, canChoose and possibleTargets methods to canTarget/possibleTargets only (part of #13638, #13766);
- refactor: fixed wrong target implementations in many cards (example: TargetCardInHand for opponent's hand, close #6210);
- AI: now human, AI and test players -- all use possibleTargets logic in most use cases instead filters or custom validation;
- AI: improved AI sims support for multiple targets abilities;
- AI: improved AI stability, freezes and targets errors in some use cases;
2025-08-04 23:56:23 +04:00
Oleg Agafonov
e866707912 test framework improves:
- now game logs will show stack ability on push and on resolve (before any choices);
- now game logs will show used choices made by cast/activate, setChoice, setMode and addTarget commands (not work for AI tests, part of #13832);
- improved choice logic for modes and yes/not dialogs (now it's use a more strictly checks, use TestPlayer.MODE_SKIP to stop mode selection);
- improved error logs and testable dialogs menu in cheat mode;
2025-08-04 23:53:16 +04:00
theelk801
a7a6ffd6f3 [ULG] fix Defense of the Heart triggering improperly 2025-08-03 19:53:28 -04:00
theelk801
32e2af685f [EOE] fix Surge Conductor triggering off of tokens and not off of nontokens 2025-08-02 09:11:27 -04:00
theelk801
4f374f8f4c fix verify failure 2025-07-31 09:08:03 -04:00
theelk801
2188fd48fb [SPM] Implement Kraven's Last Hunt 2025-07-31 08:50:20 -04:00
theelk801
2657ebf92c [SPM] update spoiler and reprints 2025-07-31 08:40:30 -04:00
theelk801
3d1400905b rework DrawNthCardTriggeredAbility, add test (closes #13885) 2025-07-30 10:52:43 -04:00
theelk801
6b2317839b [MID] [VOW] refactor some TDFCs 2025-07-29 13:42:52 -04:00
theelk801
18a852047f [RIX] refactor some TDFCs 2025-07-29 10:17:25 -04:00
theelk801
b70362416b [XLN] refactor some TDFCs 2025-07-29 09:54:50 -04:00
theelk801
f024e3b092 [EMN] refactor some TDFCs 2025-07-29 09:25:43 -04:00
theelk801
668e2bfe22 [SOI] refactor some TDFCs 2025-07-29 09:03:34 -04:00
theelk801
94b71e4c67 update duel commander ban list 2025-07-28 14:35:11 -04:00
theelk801
d29daa2f85 [ORI] refactor some TDFCs 2025-07-28 14:00:19 -04:00
theelk801
69b82f4068 [ISD] [DKA] refactor some TDFCs 2025-07-28 13:50:09 -04:00
theelk801
2ef506ea7f [SLD] add latest drops 2025-07-28 12:26:03 -04:00
Evan Kranzler
1700180455
Implement Mayhem mechanic (#13877) 2025-07-27 07:12:11 -04:00
xenohedron
e8cd6dbdad
Fix bugs associated with Foretell ability (#13879)
* add foretell tests

* rework foretell events and watcher

* refactor: not static inner classes

* refactor: move becomes foretold code from Ethereal Valkyrie to ForetellAbility

* add watcher for edge cases

* fix Ethereal Valkyrie to not leak face down card name in log

* fix some access modifiers

* refactor: make copy-pasted code common
2025-07-27 00:26:30 -04:00
ReSech
4a74353b0c
add EOE/Emblem Tezzeret token image (#13873) 2025-07-27 00:25:56 -04:00
theelk801
379a3b504d [SPM] Implement Marvel's Spider-Man 2025-07-26 08:43:20 -04:00
ssk97
100fff9c6a
improve and enable checkMissTargeted verify test (#13647)
* Add per-ability verify test

* Add check that the word target appears equally in both reference and card text
2025-07-25 23:44:28 -07:00
theelk801
106aa22fff fix error 2025-07-25 23:25:49 -04:00
theelk801
c8a38d88ea fix mistake in refactor 2025-07-25 23:13:07 -04:00
theelk801
be2acd79e4 [SPM] Implement Green Goblin, Revenant 2025-07-25 23:07:10 -04:00
theelk801
1bbf173058 [SPM] Implement Anti-Venom, Horrifying Healer 2025-07-25 23:04:17 -04:00
theelk801
69ca4f99e7 [SPM] Implement Iron Spider, Stark Upgrade 2025-07-25 22:55:46 -04:00
theelk801
186db5839e [SPM] Implement Spectacular Spider-Man 2025-07-25 22:50:39 -04:00
theelk801
bab86ef1d1 [SPM] Implement Web Warriors 2025-07-25 22:45:26 -04:00
theelk801
c7f1057267 [SPM] update spoiler 2025-07-25 22:42:29 -04:00
theelk801
8f4e8645fa refactor FilterBasicLandCard 2025-07-25 12:22:53 -04:00
theelk801
68f2d7468c remove FilterBySubtypeCard 2025-07-25 12:22:53 -04:00
Susucre
008aa810d9 add missing watcher to [EOE] Ragost, Deft Gastronaut and Bloodsoaked Reveler 2025-07-25 18:16:05 +02:00
theelk801
22b096cd04 fix verify failure 2025-07-24 16:56:50 -04:00
theelk801
41114c667b [SPM] Implement Spider-Man 2099 2025-07-24 16:24:44 -04:00
theelk801
788041c5b5 [SPE] Implement The Mary Janes 2025-07-24 14:15:31 -04:00
theelk801
8cd3256c65 [SPE] Implement Venom, Eddie Brock 2025-07-24 14:12:16 -04:00