Commit graph

4250 commits

Author SHA1 Message Date
Susucre
f30ec10846 implement [MH3] Drowner of Truth // Drowned Jungle 2024-05-23 18:19:29 +02:00
Susucre
79165f269c implement [MH3] Sorin of House Markov // Sorin, Ravenous Neonate 2024-05-22 22:18:52 +02:00
Susucre
8002cdf88f implement [MH3] Tamiyo Inquisitive Student // Tamiyo, Seasoned Scholar 2024-05-22 21:43:07 +02:00
Susucre
bab302f653 implement [MH3] Six 2024-05-22 20:24:33 +02:00
Susucre
bf99f2a846 implement [MH3] Brainsurge 2024-05-22 20:12:40 +02:00
Susucre
754b382e78
implement [MH3] Nethergoyf, refactor targets usages by game param (#12267) 2024-05-21 13:34:38 +02:00
xenohedron
88b6f4036f text fixes 2024-05-21 01:12:57 -04:00
xenohedron
398744dfbe add comments to CountersSourceCount for null param usage 2024-05-21 00:57:32 -04:00
Cameron Merkel
0f858fe3c3
[PIP] Implement Sentinel Sarah Lyons; The Prydwen, Steel Flagship; add common watcher + condition (#12250)
* [PIP] Implement Sentinel Sarah Lyons

* Create common watcher and condition for artifacts entering

* [PIP] Implement The Prydwen, Steel Flagship

* Use common classes in Akal Pakal, First Among Equals; string correction

* Add warning about watcher to ArtifactEnteredUnderYourControlCondition

* Add tests

* Move test file

* Test with opponent casting artifact during your turn

* Use checkPT(), don't call execute() multiple times

* Check final assertion at upkeep instead of untap step
2024-05-21 00:33:11 -04:00
Susucre
6cc3c5384a fix UntilYourNextTurnDelayedTriggeredAbility
was wrongly limited to triggering once.
2024-05-17 12:22:19 +02:00
Oleg Agafonov
6e4e52373b refactor: use same naming as original classes (related #12233) 2024-05-17 09:26:38 +04:00
xenohedron
6fd6417d0b rework and fix Stand or Fall 2024-05-16 16:23:13 -04:00
xenohedron
5e9b01bfbe refactor: align class name 2024-05-16 16:23:13 -04:00
xenohedron
3aeb5165b7 refactor: remove redundant class 2024-05-16 16:23:12 -04:00
xenohedron
b4dbc75ac5 fix damage prevention to multiple targets 2024-05-16 14:02:35 -04:00
Susucre
3abce2f5c8
support until your next turn delayed triggers (#12233) 2024-05-16 13:37:53 +02:00
theelk801
43769e68f8 [MH3] Implement Breaker of Creation 2024-05-13 12:26:36 -04:00
Oleg Agafonov
d28b9e6d05 tests: added additional tests for Dryad Militant card and Madness abilities, added docs; 2024-05-12 12:33:48 +04:00
xenohedron
a97dec3e97 fix SourceTargetsPermanentCondition 2024-05-06 00:15:42 -04:00
xenohedron
dc13384c52
new LifeCompareCondition, with tests (#12221) 2024-05-04 23:25:07 -04:00
karapuzz14
bb783a318e
Added [YDMU] Alchemy: Dominaria set. Implemented Vinesoul Spider, Slimefoot, Thallid Transplant. (#12157) 2024-05-04 17:34:25 -04:00
Susucre
d8959f1588
fix [OTJ] Fortune, Loyal Steed — DelayedAbility's zcc was wrong when started from another trigger (#12154) 2024-05-04 19:26:11 +02:00
xenohedron
fa728eafb1
refactor: Cleanup CopyTargetStackObjectEffect (#12220)
* simplify constructors

* rename class

* adjust to accommodate any stack object

* adjust all usages to main common class
2024-05-04 00:47:16 -04:00
Cameron Merkel
b1b83dc5b8
[MKM] Implement Coveted Falcon (#12057)
* [MKM] Implement Coveted Falcon

* Rework to use OneShotEffect with new approach

* Use static ZCC to be safe

* Add tests

* Remove check in GainControlTargetEffect
2024-05-04 00:46:58 -04:00
Susucre
2522f712e9
refactor: cleanup TargetCardInExile (#12218) 2024-05-03 22:15:13 -04:00
jimga150
82069ef2e8
[MAT] Implement Deification, fix access to counter removal damage checkers (#12215)
* Make ChoosePlaneswalkerTypeEffect

* Make REMOVE_COUNTER and REMOVE_COUNTERS events so they can be replaced/modified

* Deification initial attempt, need to filter for damage

* add optional damage flag to removeCounters

* wrap logs in sim check

* check that planeswalker is chosen subtype

* cast to RemoveCountersEvent and reduce indents

* use counterRemovedDueToDamage

* add tests

* make other counterRemovedDueToDamage headers public

* remove logs

* remove isSimulation check from informPlayers

* remove logger

* make chosen planeswalker type predicate

* move event modification to replaceEvent
2024-05-03 22:15:00 -04:00
Susucre
85cad4ff1e
cleanup AbilityType for easier check that an ability is an activated ability (#12153)
* cleanup AbilityType

* further cleanup

* cleanup instanceof

* tweak formatting

* rework Rex

* fix mistake in PlayerImpl

* cleanup 'instanceof' for 'ActivatedManaAbilityImpl'
2024-05-03 22:13:34 -04:00
Susucre
534d1be175 add PayVariableEnergyCost, fixing [PIP] HELIOS One & [MH3] Chtonian Nightmare
fix #12217
2024-05-03 16:44:19 +02:00
ssk97
32bf3eb9bf
Genericize Target Adjusters (#12107)
* Create generic X MV adjuster

* Update XTargetsAdjuster

* Create DynamicValueTargetsAdjuster to replace VerseCounterAdjuster

* Convert XTargetsAdjuster to use DynamicValueTargetsAdjuster

* Genericize MV target adjuster

* Converting custom classes for A and B cards, fix Back in Town to only target creature cards

* Add Power and Toughness target adjusters, C cards

* Set up and use Monstrosity X DynamicValue

* Move Scry amount dynamic value to common, add D and E cards

* Convert F to I cards

* Cards K-M

* N, O cards

* Cards O-R

* S cards (check Scrap Welder)

* Cards T - Z

* Rename target adjusters

* Add filter messages, don't add 0 count targets

* Clear blueprint targets (just in case), fix target names, Temporal Firestorm is not target

* Requested renames

* Aether Burst is "up to"

* Review fixes

* Add new cards, add source to dynamic value calculation
2024-05-03 01:12:52 -04:00
Susucre
172a2e53b3 implement [PIP] Duchess, Wayward Tavernkeep 2024-05-02 17:41:30 +02:00
Susucre
6f5eb8788d implement [PIP] HELIOS One 2024-05-02 16:32:41 +02:00
Susucre
f24b3d988d clean MILLED_EVENT to not store Card directly. 2024-05-02 10:18:36 +02:00
xenohedron
f482eef06a text fixes 2024-05-02 01:24:22 -04:00
Susucre
74adbf222c refactor together experience counter DynamicValue 2024-05-01 21:54:19 +02:00
Susucre
7c3bbed8f3 make batchs for milling cards (per player, all)
Rework and test the couple of existing cards triggering on mill.
2024-05-01 20:55:50 +02:00
Susucre
a60f01a99f implement [PIP] Thrill-Kill Disciple 2024-05-01 18:34:30 +02:00
Susucre
ec34bb53d0 implement [PIP] Young Deathclaws 2024-05-01 15:40:41 +02:00
Susucre
9d3b86eb2e change text generation in new GainControlAllControlledTargetEffect 2024-05-01 13:10:53 +02:00
Susucre
00556c4cf6 implement [MH3] Emrakul, the World Anew 2024-04-30 11:34:52 +02:00
Susucre
8a07ff30b9 consolidate "Sacrifice all [filter] you control" 2024-04-30 10:59:42 +02:00
Susucre
1b9335c788 consolidate "gain control of all [filter] [target player] controls" 2024-04-30 10:59:38 +02:00
Susucre
d645facdc0
rework PhantomReplacementEffect used by 7 Phantom cards (#12189) 2024-04-27 17:34:59 +02:00
Susucre
36d6547bf8
Modal double-faced cards - fixed game error on usage with some replacement effects (example: Diluvian Primordial, closes #12176) (#12184) 2024-04-25 23:40:57 +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
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