Commit graph

11832 commits

Author SHA1 Message Date
Susucre
ff4bd9b430 fix Obeka, Splitter of Seconds' extra phase calling beginning of turn method 2024-04-25 12:16:37 +02:00
xenohedron
9566e23d0b
Rework Mystery Booster and adjust some set classifications (#12138)
Mystery Booster rework:
* added images download support from scryfall (closes #11806);
* added virtual sets support (remix);
* fixed Commander set name (closes #12110);
2024-04-23 09:28:40 +04:00
jimga150
40143c648f
[REX] Implement Ian Malcolm, Chaotician (#12117)
* Start on Ian Malcolm, Chaotician, missing key effects

* fox ANY clause in DrawNthCardTriggeredAbility

* Get exile effect working

* Start using Evelyn, the Covetous code

* align exile effect

* align player clause

* align card type clause

* align counter check clause

* align mana clause

* add ownership clause

* remove redundant comments

* fix redundant mana clause description

* fix counter clause in mana cost effect

* fix active clause in mana effect

* use MageObjectReference to associate exiled cards with an Ian Malcolm instance

* optimize imports

* Start tests, failing currently

* fix test and add blink test

* fix signature of constructor

* fix order of super() call in checkTrigger

* clarify hash maps in watcher

* use correct AsThoughEffect

* document header of checkExile

* generalize modal and double faced cards for LKI fetch

* remove land played event for watcher

* Use custom MageIdentifier to filter usedMap
2024-04-22 23:58:05 -04:00
jimga150
28a1442899
Krark's Thumb - fixed that it can generates too many flip triggers (#12152)
---------

Co-authored-by: Susucre <34709007+Susucre@users.noreply.github.com>
2024-04-22 11:22:42 +04:00
Susucre
c0c05579ba fix client NPE if Radiation trigger in trigger order panel
The frameStyle was unexpectedly null when displaying the trigger in the view to choose trigger panels.
It was good on the stack so I missed that in initial implementation.

Bug showed up once there was another trigger on Beginning of Main Phase, for instance Coalition Relic.
The lack of frameStyle lead to a rendering NPE.
2024-04-21 18:52:46 +02:00
Susucre
dee0637496
fix and test Zirda's Companion legality (#12142) 2024-04-20 11:14:29 +02:00
Susucre
9a21f24f2c [PIP] Implement Glowing One & Ingesting Radroach 2024-04-18 19:28:15 +02:00
xenohedron
fc3551fc0a text improvements 2024-04-17 20:54:05 -04:00
jimga150
b0d7daa85e
[REX] Implement Grim Giganotosaurus (#12103)
* Implement Grim Giganotosaurus

* Refactor MonstrosityAbility to take cost adjuster

* Update Nemesis of Mortals' monstrous ability and add test for cost reduction
2024-04-17 20:24:37 -04:00
Susucre
9d7bf27d38
[PIP] Implement Rad Counters mechanic (#12087) 2024-04-17 20:04:17 +02:00
Susucre
11373fd75d fix Xanathar, Guild Kingpin (#12133)
fix #12133
2024-04-17 19:59:31 +02:00
Oleg Agafonov
88eb35ebc7 code clean 2024-04-16 23:37:22 +04:00
Oleg Agafonov
e8e2f23284 server: improved server stability (#11285) and reworked triggers/playable logic (#8426):
* game: now all playable calculations done in game simulation, outside real game (no more freeze and ruined games by wrong Nyxbloom Ancient and other cards with wrong replacement dialog);
* game: fixed multiple problems with triggers (wrong order, duplicated calls or "too many mana" bugs, see #8426, #12087);
* tests: added data integrity checks for game's triggers (3 enabled and 3 disabled due current game engine logic);
2024-04-16 23:10:18 +04:00
Susucre
017286ed94
fix ContinuousEffect that access affectedObjectsSet before it is initialized (#12080) 2024-04-13 16:50:06 +02:00
Susucre
607d55f16b
[OTC] Implement 2 cards, refactor some exile effects ("Gonti-like") (#12118)
[OTC] Implement Gonti, Canny Acquisitor
[OTC] Implement Dream Thief's Bandana
2024-04-13 12:21:05 +02:00
Susucre
c77634c843
separate 'you may play'|'you may cast' AsThoughtEffect approuvers
Also, reworked Gonti, Lord of Luxury and checks it now works properly with Zoetic Cavern.
2024-04-13 12:10:53 +02:00
xenohedron
31295eb645 followup fix to #12058 2024-04-12 23:24:56 -04:00
xenohedron
8853e7d875
refactor: clean up static filters for sacrifice targets (#12120)
* simplify sacrifice target filters, part 1

* minor cleanup

* adjust SacrificeXTargetCost

* adjust Arctic Merfolk

* more cleanup

* remove unused

* adjust filters not used for sacrifice

* fix Hew the Entwood

* fix Nahiri's Lithoforming

* remove unused

* remove another

* cleanup more

* fix MegatronDestructiveForce

* remove next

* next batch of replacements

* remove next

* rename filter to match text

* finish removing

* use existing static filter
2024-04-12 22:24:10 -04:00
xenohedron
5c9d1cd205 fix #12058 (check phased in for "control a commander") 2024-04-12 20:59:36 -04:00
xenohedron
1198192a13 more text adjustments 2024-04-12 20:45:53 -04:00
xenohedron
f3fccfbd8a refactor: use setter method and private field 2024-04-12 20:11:04 -04:00
xenohedron
577a3708fc adjust some text, cleanup some variable access 2024-04-12 20:08:26 -04:00
Alexander Novotny
8271686cb4
[PIP] Implement Shaun, Father of Synths (#12109)
* Added method to set triggered abilities to optional

* TokenCopy effect now copies permanentModifier

* Implemented Shaun, Father of Synths

* remove TODO

* Made `setOptional` chainable
2024-04-12 19:41:58 -04:00
jimga150
96939b31eb
Implement [REX] Owen Grady, Raptor Trainer (#12094) 2024-04-12 19:41:27 -04:00
Susucre
72a2e32d1c
fix 514.3a, give player priority on cleanup when something happened (#12115) 2024-04-12 15:31:53 +02:00
Oleg Agafonov
f1791a3c70 Merge fix 2024-04-11 23:02:25 +04:00
Oleg Agafonov
34dac7877d fixed empty targets in EachOpponentPermanentTargetsAdjuster (related to #11886) 2024-04-11 22:46:26 +04:00
Oleg Agafonov
367defd995 tests: added tests for non-stack delayed trigger and details docs about problem 2024-04-11 22:46:25 +04:00
Susucre
e741a453bf [PIP] Implement Nuclear Fallout 2024-04-11 19:16:36 +02:00
Susucre
8a29dcc735 fix Obeka, Splitter of Seconds (#12085)
Now adding BeginningPhases with all but Upkeep skipped.
Previously upkeep steps were added during combat phase, which was incorrect.

fix #12085
2024-04-11 13:24:56 +02:00
xenohedron
8bf75ed000 text fixes 2024-04-11 00:34:19 -04:00
jimga150
51b1ab4cb6
Implement [REX] Compy Swarm (#12101) 2024-04-10 23:43:37 -04:00
jimga150
40b1dcc526
Fix DestroyPlaneswalkerWhenDamagedTriggeredAbility (#12093) 2024-04-10 23:42:44 -04:00
Susucre
113630c1ab fix Deep Gnome Terramancer triggering out of extra lands played 2024-04-10 20:52:18 +02:00
Oleg Agafonov
c3862e7196 server: improved server stability after some memory overflow errors (card not found errors, related to #11285); 2024-04-10 22:35:48 +04:00
Oleg Agafonov
7817a5cac6 deck improves:
* gui: removed public deck hash info;
* gui: improved xmage dck-file - now it correctly load a card's amount (related to files from third party services);
* server: fixed wrong cheating warning on deck construction (closes #11877);
* refactor: removed outdated hash code and calculations;
* other: added docs, added multiple deck hash tests;
2024-04-10 22:18:07 +04:00
Oleg Agafonov
889c1125e8 refactor: improved deck import, added docs and miss tests for dek-files; 2024-04-10 21:55:43 +04:00
ssk97
124d60e2b7
refactor: improved EachOpponentPermanentTargetsAdjuster and few card fixes (#12102)
* Wreck and Rebuild: Return a land, not a creature
* Sinister Concierge should still gain suspend with 0 targets
* Fixed Tolarian Contempt
2024-04-10 06:59:21 +04:00
Susucre
db5dc89776 [OTC] Implement Smoldering Stagecoach 2024-04-09 20:57:22 +02:00
Matthew Wilson
6fffc2aeb0
Merge pull request #11723 from DominionSpy/case-of-the-pilfered-proof
[MKM] Implement Case of the Pilfered Proof
2024-04-09 14:48:27 +03:00
Susucre
e62d1c2124 [OTC] Implement Thunderclap Drake 2024-04-09 13:08:10 +02:00
Susucre
a69583dbfc
images: added support of meld cards, fixed #11778 (#12083) 2024-04-08 23:57:13 +04:00
theelk801
8b7169c2a9 [PIP] Implement Megaton's Fate 2024-04-08 12:11:59 -04:00
Matthew Wilson
e79bab6520
Merge branch 'magefree:master' into case-of-the-pilfered-proof 2024-04-08 07:02:35 +03:00
theelk801
9a3fc4e0cc [OTC] Implement Graywater's Fixer 2024-04-07 18:18:39 -04:00
Matthew Wilson
9cf6119c7e
Merge branch 'magefree:master' into case-of-the-pilfered-proof 2024-04-07 14:31:44 +03:00
Susucre
9da91b51ea [OTC] Implement Savvy Trader 2024-04-06 18:52:08 +02:00
Susucre
b233fcf4d8 Consolidate, cleanup & test a few MayCastTargetCardEffect cards 2024-04-06 17:37:32 +02:00
Susucre
68dfcf4eac Fix some more inexact rule texts 2024-04-06 17:16:33 +02:00
Susucre
a86b629abe [OTC] Implement Smirking Spelljacker 2024-04-06 16:26:16 +02:00