Commit graph

13110 commits

Author SHA1 Message Date
theelk801
fe7b9e3e98 [SPM] Implement Mysterio, Master of Illusion 2025-08-29 22:30:13 -04:00
ReSech
37fb493de1
images: improved full art images in some sets (#13935)
* AKR FULL_ART

* DFT FULL_ART

* FIN FULL_ART

* P08 FULL_ART

* PANA FULL_ART

* PF19 FULL_ART

* PF20 FULL_ART

* PL22 FULL_ART

* PRM FULL_ART

* USG RETRO

* Add UGL_FULL_ART_BASIC to isRetroFrame

* SPM FULL_ART
2025-08-30 06:24:52 +04:00
ReSech
f142d07440
deck: added many old and new promo sets and miss cards (#13903)
* deck: added Bitter Triumph, Fable of the Mirror-Breaker, and Slickshot Show-off to Store Championships set

* added Monstrous Rage and Trinket Mage to Wizards Play Network 2025 set

* add Year of the Snake 2025 expansion set

* add Year of the Dragon 2024 expansion set

* deck: add Dragon and Snake tokens for PL24 and PL25

* add Year of the Dragon 2024 and Year of the Snake 2025 expansion sets

* add Reflection of Kiki-Jiki to Store Championships set

* hasBasicLands true for Year of the Dragon 2024 and Year of the Snake 2025

* Update URLs and Land rarity

* add MagicFest 2024 expansion set

* add Love Your LGS 2024 expansion set

* add MKM Standard Showdown expansion set

* Set Full Art Lands to Full Art

* Add new expansion sets: MagicFest 2024, MKM Standard Showdown, and Love Your LGS 2024

* Fix Error

* Add new expansion sets: MagicFest 2023 and 30th Anniversary History Promos

* Add new expansion sets: Love Your LGS 2022 and Regional Championship Qualifiers 2022

* Add Love Your LGS 2020 set

* Add new cards to PURL

* Update MagicFest 2025 set: add new cards and reorder existing entries

* Add Magiccon Cards
2025-08-30 04:18:54 +04:00
jmlundeen
d13a0e6e6b create token copy checks for copyfrom
* Esoteric Duplicator test demonstrates fix. Sculpting steel token was not coming back as an Esoteric Duplicator
2025-08-29 15:54:31 -05:00
jmlundeen
3c6a18f24e [SPM] Implement Gwenom, Remorseless 2025-08-29 14:56:01 -05:00
jmlundeen
7129c02d86 add subtypes for infinity stone
- Infinity
- Stone
2025-08-28 21:33:16 -05:00
Jmlundeen
47f2eb4c94
update cards and effects that missed canPaySacrificeCost (#13916)
* update SacrificeAttachmentCost to work with canPaySacrificeCost

* update SacrificeXTargetCost to use canPaySacrificeCost

* update SacrificeXManaValueCost to use canPaySacrificeCost and getMaxValue

* update Phyrexian Dreadnought to use canPaySacrificeCost

* enable testNahiriSacrificePrevented test
2025-08-27 21:38:02 -05:00
Steven Knipe
60be7070d6 Mass rename getSourceObjectZoneChangeCounter to getStackMomentSourceZCC, un-deprecate and change comment 2025-08-26 01:15:04 -07:00
Steven Knipe
924585cb86 Fix OrTriggeredAbility interaction with AtStepTriggeredAbility, remove unneeded RazorPendulum withTargetPointerSet 2025-08-25 22:02:52 -07:00
Grath
65dae3e97b Remove depending on other land-type changing effects 2025-08-23 11:36:05 -04:00
Grath
f5b6c31152 Attempt to fix test by marking dependencies on other land-type changing effects. 2025-08-23 00:24:35 -04:00
Grath
370ce47303 Cover non-universal type change effects that also say 'land'. 2025-08-22 22:53:48 -04:00
Grath
c7f92a093b Refactor to use DependencyType.BecomesNonbasicLand to track effects which add land type. 2025-08-22 22:38:22 -04:00
theelk801
6008dc279e [TLA] Implement Aang's Journey 2025-08-15 16:52:49 -04:00
Evan Kranzler
b64f1dce45
[TLA] Implement Razor Rings, rework excess damage (#13910)
* [TLA] Implement Razor Rings

* add overflow protection
2025-08-15 16:37:55 -04:00
theelk801
5d5ce4e0ab [TLE] Implement Lost in the Spirit World 2025-08-15 10:47:44 -04:00
theelk801
d7e5dee77e [TLE] Implement Momo, Rambunctious Rascal 2025-08-15 09:11:36 -04:00
theelk801
8474f739e2 [TLE] Implement Fire Nation Archers 2025-08-15 08:53:12 -04:00
theelk801
c2893d89a2 [TLA] Implement Rabaroo Troop 2025-08-15 08:25:29 -04:00
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