Commit graph

13041 commits

Author SHA1 Message Date
theelk801
076dcf1cf9 [TLA] Implement Rebellious Captives 2025-08-15 07:51:55 -04:00
theelk801
2f85f46e32 [TLE] Implement Aang, Airbending Master 2025-08-14 22:47:53 -04:00
theelk801
038c8f05ef [TLA] Implement Badgermole 2025-08-14 14:34:10 -04:00
jmlundeen
b8504d56f2 fix CantBeCounteredSourceEffect info message saying spell can't be countered by itself 2025-08-14 11:44:19 -05:00
theelk801
43ac278946 [TLA] Implement Fated Firepower 2025-08-13 12:00:37 -04:00
Steven Knipe
84a7e9f5b8 Simplify Transform triggers, fix Wildsong Howler 2025-08-12 23:35:52 -07:00
theelk801
9828e56590 [TLA] waterbend is a cost, not an ability 2025-08-12 20:54:38 -04:00
theelk801
7a241a6f1e [TLA] Implement Toph, the First Metalbender 2025-08-12 20:39:22 -04:00
theelk801
3e451ac710 [TLA] Implement Aang's Iceberg 2025-08-12 18:13:49 -04:00
theelk801
2f88c051bf rename EarthbendEffect class 2025-08-12 18:03:35 -04:00
theelk801
5841d63c60 [TLA] Implement Appa, Steadfast Guardian 2025-08-12 18:03:15 -04:00
theelk801
e93d95d7a0 [TLA] Implement Fire Nation Attacks 2025-08-12 17:50:23 -04:00
theelk801
b552c850f4 [TLA] Implement Earthbending Lessons 2025-08-12 17:34:32 -04:00
Oleg Agafonov
b06682797c deck: fixed that clipboard import can choose wrong promo card (close #7666) 2025-08-10 23:59:19 +04:00
Oleg Agafonov
2e6f26e589 deck: better moxfield support for clipboard import (related to #13838) 2025-08-10 22:31:01 +04:00
Oleg Agafonov
f9fd049ece deck: improved deck import from clipboard (added support of moxfield and archidekt decks format, related to #13838) 2025-08-10 22:11:58 +04:00
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
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
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
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
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
668e2bfe22 [SOI] refactor some TDFCs 2025-07-29 09:03:34 -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
theelk801
379a3b504d [SPM] Implement Marvel's Spider-Man 2025-07-26 08:43:20 -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
theelk801
41114c667b [SPM] Implement Spider-Man 2099 2025-07-24 16:24:44 -04:00
theelk801
3682805a80 [SPM] Implement Spider-Islanders 2025-07-24 13:50:12 -04:00
theelk801
c28a678080 [SPM] Implement Unstable Experiment 2025-07-24 13:30:26 -04:00
theelk801
a4d90bae0f [SPM] Implement Spider-Man, Web Slinger 2025-07-24 10:47:46 -04:00
theelk801
a5e9796010 [SPM] Implement Angry Rabble 2025-07-24 10:38:12 -04:00
theelk801
91e5a4b994 [SPM] Implement Tombstone, Career Criminal 2025-07-24 09:59:01 -04:00
theelk801
288901be1d [SPM] Implement Scorpion, Seething Striker 2025-07-24 09:54:55 -04:00
theelk801
1a0f3b68fc [SPM] Implement Selfless Police Captain 2025-07-24 09:38:06 -04:00
theelk801
cfb062a47d [SPM] Implement Origin of Spider-Man 2025-07-23 16:40:48 -04:00
theelk801
76e1b60c32 add otherwise effect to LookLibraryAndPickControllerEffect 2025-07-23 10:55:32 -04:00
Evan Kranzler
cdf23ac18a
rework warp implementation (#13874) 2025-07-22 16:32:41 -04:00
theelk801
33596d55b3 [EOE] fix Pain for All targeting 2025-07-21 15:38:22 -04:00
theelk801
9667d7573c small update to StationLevelAbility 2025-07-21 11:04:04 -04:00
Susucre
35e0ca2561 refactor "counter [spell] unless its controller pays [...]. If they do, [effect]"
closes #13861
2025-07-19 17:42:04 +02:00
theelk801
bd07c24bee [EOE] some text fixes 2025-07-19 08:31:24 -04:00
ssk97
1a6c2eede4
Effect withTargetDescription, other fixes for discrepencies with "target" text with reference (#13867)
* Add withTargetDescription support to all Effects

* use withTargetDescription for effects incorrectly with "target" in text

* CommanderStormAbility add support for non-target rules text

* Heliods Emissary use OrTriggeredAbility

* support all effects withTargetDescription, rename overwriteTargetDescription to targetDescription

* copy target description from old pointer when using setTargetPointer

* Text cleanup/simplifications

* Remove outdated warning
2025-07-19 00:11:26 -07:00
ReSech
2128d8aaa0
EOE and EOC Tokens (#13866) 2025-07-19 03:05:37 +02:00
Evan Kranzler
df70ab7c8a
[Ready for review] Implementing Warp mechanic (#13847)
* add initial warp mechanic implementation

* a few small changes

* add hand restriction

* add void support

* add test

* [EOE] Implement Timeline Culler

* add void test

* [EOE] Implement Close Encounter

* [EOE] Implement Tannuk, Steadfast Second

* a few requested changes

* add comment

* [EOE] Implement Full Bore

* small rewrite

* merge fix

* remove reminder text

* small code rewrite
2025-07-18 21:01:50 -04:00