Commit graph

3644 commits

Author SHA1 Message Date
xenohedron
33fe4730ae
Fix first strike damage logic (#12297)
* add tests for first strike rules

* fix first strike damage logic per 702.7c

* add more test cases

* update logic to not check actual damage dealt

* add another test case

* adjust naming and docs
2024-05-26 20:01:01 -04:00
xenohedron
71a3c05e96 add test cases for #12298 2024-05-26 19:56:50 -04:00
Susucre
faa868aa16 implement [MH3] Detective's Phoenix 2024-05-26 16:17:14 +02:00
Susucre
a3b7bb785d implement [MH3] Ripples of Undeath 2024-05-26 12:07:43 +02:00
Oleg Agafonov
6b86b1053f Modal double-faced cards - improved support with copy effects (fixed that copied token has abilities from both sides, closes #10146, closes #8476); 2024-05-26 13:01:36 +04:00
Susucre
d0971145f2 implement [MH3] Ulamog, the Defiler 2024-05-25 16:58:44 +02:00
Susucre
0e64a326c6 implement [MH3] Kami of Jealous Thirst 2024-05-25 15:40:35 +02:00
Susucre
44ad71f2e0 implement [MH3] Argent Dais 2024-05-25 14:17:06 +02:00
Oleg Agafonov
4e9b42a6df tests: added PoC test for Energy Refractor problem (related to #11285) 2024-05-25 00:02:15 +04:00
Susucre
bcff245a31
rework more Prevention Effects involving counters. Implement [PIP] Bloatfly Swarm (#12205) 2024-05-23 19:48:44 +02:00
Susucre
e3e34dae33 implement [MH3] Strix Serenade ; refactor similar effects with Pongify effect
Slight refactor for Serenade, Swan Song and An Offer You Can't Refuse to
use the shared class (formely for Permanents only) for Pongify kind of effects.
2024-05-23 19:47:06 +02:00
Susucre
4b016f0568 implement [MH3] Suppression Ray // Orderly Plaza 2024-05-23 18:19:29 +02:00
Susucre
f30ec10846 implement [MH3] Drowner of Truth // Drowned Jungle 2024-05-23 18:19:29 +02:00
Susucre
c9b5d5ad98 implement [MH3] Marionette Apprentice 2024-05-23 13:07:05 +02:00
Susucre
a1bbb49a38 implement [MH3] Grist, Voracious Larva // Grist, the Plague Swarm 2024-05-23 00:17:01 +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
725101c026 implement [MH3] Eladamri, Korvecdal 2024-05-22 20:22:29 +02:00
Susucre
754b382e78
implement [MH3] Nethergoyf, refactor targets usages by game param (#12267) 2024-05-21 13:34:38 +02: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
jimga150
f8a159839e
[WHO] Implement Weeping Angel (#12236) 2024-05-20 23:51:48 -04:00
Susucre
4f1f28154d make random failure a little less likely for image tests
15 was failing a little too often in my opinion
2024-05-20 19:13:53 +02:00
Susucre
6cc3c5384a fix UntilYourNextTurnDelayedTriggeredAbility
was wrongly limited to triggering once.
2024-05-17 12:22:19 +02: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
Oleg Agafonov
dd8fd1a4b0 Merge fix 2024-05-12 14:39:46 +04:00
Oleg Agafonov
ebe04dc3a6 tests: added tests for Chandra Ablaze card and some AI logic; 2024-05-12 14:37:10 +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
Oleg Agafonov
8c0ed8a749 tests: additional test for Double Season and test framework 2024-05-11 14:27:59 +04:00
Oleg Agafonov
085ed5a7a7 tests: improved tests for Double Season (new tests and docs); 2024-05-11 11:39:02 +04:00
Oleg Agafonov
36d54bc7a9 cheats: improved card commands to support names like ED-E, Lonesome Eyebot (related to #12238) 2024-05-09 11:43:37 +04:00
jimga150
551d5d8633
Gain abilities - improved combo support with Evoke, Dash and Prowl (example: Hunting Velociraptor, fixed #11714) (#12237) 2024-05-09 09:26:42 +04:00
Oleg Agafonov
88279afcd5 merge fix 2024-05-08 06:38:52 +04:00
Oleg Agafonov
e3ae00f696 tests: added reproducible tests for short lki and move to battlefield problems (related to #12195) 2024-05-08 06:19:14 +04:00
Susucre
5c457410db add event more sacrifice tests 2024-05-07 16:50:13 +02:00
Susucre
4d076058bc add even more sacrifice tests
Still no replication of the bug.
2024-05-07 15:27:16 +02:00
Susucre
02f19d9896 add one more test on sacrifice + dies trigger.
Bug still not reproduced.
2024-05-07 13:53:07 +02:00
Susucre
907ac5c3e1 add Tests for Dies triggers on Sacrifice.
Run each one 10k times without fail, no reproducing the bug.
2024-05-07 12:28:41 +02:00
xenohedron
a97dec3e97 fix SourceTargetsPermanentCondition 2024-05-06 00:15:42 -04:00
Oleg Agafonov
d1cca988c4 refactor, ai: removed outdated and unused code (suggest actions for AI simulations); 2024-05-05 20:47:54 +04:00
jimga150
07915394c7
[REX] Implement Indominus Rex, Alpha (#12119)
* Implement Indominus Rex, Alpha

* Add draw ability

* Add test

* Add draw verification

* fix errant comment

* null check

* switch to EntersBattlefieldAbility

* Fix test, dont have to pick triggers now

* use AsEntersBattlefieldAbility

* move tests and rename

* use appliedEffects in addCounter call

* change AI hint

* use game in getAbilities call

* make ability text static, remove counter check

* add comments on ability cards and add test case with subset of checked abilities

* Update order of operations--discard, then add counters

* add more tests (Nullhide Ferox, Madness)

* check cards after move to graveyard

* test for graveyard movement

* check for hexproof base class and add test

* refactor Indominus to make ability counters for each ability it comes across that is an instance of one of the checked abilites (counting HexproofBaseAbility)

* remove commented code
2024-05-04 23:25:35 -04:00
xenohedron
dc13384c52
new LifeCompareCondition, with tests (#12221) 2024-05-04 23:25:07 -04:00
Susucre
b9511afa50 implement [MH3] Phelia, Exuberant Shepherd 2024-05-04 19:27:24 +02: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
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
62cc49ffa3 amend TODO comment, end of it was not saved 2024-05-03 17:26:24 +02:00