Commit graph

41782 commits

Author SHA1 Message Date
xenohedron
820c5ffe17 Fix #10604 (Blot Out) 2023-07-09 23:32:40 -04:00
xenohedron
6c9079012c
Cleanup: source deals damage to {this}; mill cards (#10603)
* New common class for "Whenever a source deals damage to {this}, " which resolves #9340 
* Merge `PutLibraryIntoGraveTargetEffect` with functionally identical `MillCardsTargetEffect`
* Text fix on `RevealDragonFromHandCost` noticed in #10593
* Text fix following up on #10594
2023-07-09 22:05:28 -04:00
Bobby McCann
73104f6705
[LTR] Implement Radagast the Brown; also resolves #9419 (#10568)
* Fix #9419 bug with EntersBattlefieldThisOrAnotherTriggeredAbility
* Add test for Radagast as well as Risen Reef and Caldaia Guardian
* Minor associated cleanup for EntersBattlefieldAllTriggeredAbility
* New PermanentEnteringBattlefieldManaValue
2023-07-09 22:04:45 -04:00
Susucre
39904d0ca3
[LTR] Implement Boromir, Warden of the Tower (#10594)
* [LTR] Implement Boromir, Warden of the Tower

* group trigger from Boromir and Lavinia

* fix trigger text
2023-07-09 16:42:29 -04:00
Susucre
f8b1ada369
Fix RevealTargetFromHandCost when no target in hand (#10593)
* [CSP] Fix the RevealTargetFromHandCost not allowing payment when no valid card to reveal

* cleanup text of cost

* fix martyr of bones text

* fix test using a Martyr of Sands
2023-07-09 16:42:16 -04:00
Susucre
87ed833291
[LTC] Implement Sail into the West (#10588) 2023-07-09 16:42:02 -04:00
xenohedron
d1d6890c2a fix Change the Equation 2023-07-09 16:41:31 -04:00
xenohedron
b86014a29c
Text fixes [CSP] (#10599)
* fix text: ExileFromHandCost

* fix text: CumulativeUpkeepAbility

* text fixes: individual CSP cards

* text fix followups
2023-07-09 02:14:42 -04:00
Susucre
79d97d2012
[LTR] Implement Phial of Galadriel (#10589) 2023-07-09 02:14:28 -04:00
Susucre
24cba3cb68
[LTR] Implement Sauron's Ransom (#10587) 2023-07-09 02:14:13 -04:00
Oleg Agafonov
03f8d72031 merge fix 2023-07-09 03:43:19 +04:00
Oleg Agafonov
0520d0b262 game: fixed miss clear code for permanent's additional info, fixed random sorting; 2023-07-09 02:35:26 +04:00
Oleg Agafonov
4ae5ca8421 docs: card hints usage improved 2023-07-09 02:21:56 +04:00
Susucre
a7d49e1f45
[LTR] Implement Faramir, Prince of Ithilien (#10595) 2023-07-08 13:09:10 -04:00
Susucre
5006ecc820
fix Perilous Research (#10592) 2023-07-08 13:08:57 -04:00
Susucre
2b2d3b979e
add unit tests for Shelob, Child of Ungoliant (#10586) 2023-07-08 13:08:41 -04:00
xenohedron
0fa971514a
code style: eliminate unnecessary static imports (#10585)
* SacrificeTargetCost(StaticFilters)

* remove import static mage.constants.Outcome

* remove import static mage.constants.Duration

* remove other import static

* a few more sacrifice filters

* simpler constructors

* remove import static mage.filter

* remove a few more import static
2023-07-08 13:08:28 -04:00
xenohedron
f6fdcb9d59 more filter cleanup 2023-07-08 00:18:11 -04:00
xenohedron
45b54e8cc4 code style: private static final 2023-07-07 23:34:16 -04:00
xenohedron
ef3be3987b minor adjustment to Phyrexian Altar 2023-07-07 23:33:25 -04:00
Susucre
eaa0de0877
fix Druid of the Emerald Grove (#10583)
10-19 locked the game in a choose action with no choice.
20 was broken due to a wrong boolean logic.
2023-07-07 23:10:52 -04:00
Susucre
4a3070e6db
[ONE] Fix Elesh Norn, Mother of Machines preventing triggers from non-permanents. (#10582) 2023-07-07 23:10:34 -04:00
xenohedron
86acc55243 fix Bloodfeather Phoenix 2023-07-07 23:10:11 -04:00
xenohedron
08c32682ac fix Nahiri's Resolve 2023-07-07 22:48:40 -04:00
xenohedron
03c45500b7 more static filter cleanup 2023-07-07 22:45:07 -04:00
xenohedron
7e2f16120f fix Undercity Upheaval 2023-07-07 22:30:45 -04:00
xenohedron
3a20385d1d fix Feast of the Victorious Dead 2023-07-07 22:27:49 -04:00
ssk97
a3ee34d796
Enable ignored tests that work (#10579)
* Enable ignored tests that work

* Remove Ignore import, fix tests without @Test attribute
2023-07-07 01:26:41 -04:00
ssk97
e1edec542c
Lazotep Convert fix (#10578)
* Fix Lazotep Convert card (add color, need to actually apply the applier)

* Don't copy Transformed status, add test
2023-07-07 01:26:27 -04:00
xenohedron
063429b70a
New StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL (#10577) 2023-07-07 01:26:11 -04:00
xenohedron
e50f8b05c1
[LTR] [LTC] Text fixes (#10569) 2023-07-06 00:24:12 -04:00
xenohedron
1ccaf06366
Refactor flicker effects to single common class (#10564)
* New common class for flicker target effects

* Update cards to ExileThenReturnTargetEffect

* process game state before returning exiled card
2023-07-05 19:23:08 -04:00
rullinoiz
55f877c71e
Implement Relic of Sauron (#10567) 2023-07-05 19:22:39 -04:00
Bobby McCann
c8564efbb7
[LTR] Implement Witch-king of Angmar (#10563)
* Add card

* Add TapSourceEffect

* De-duplicate watcher logic

* Abstract and fix(?) logic

* Fix sacrifice targets

* Controller instead of Owner

* Add tests, fix, and refactor

* Throw if controller not supported

* Fix test (not supposed to start tapped)
2023-07-05 19:22:21 -04:00
Susucre
008662be5e
[LTR] Implement Shelob, Child of Ungoliant (#10558)
* [LTR] Implement Shelob, Child of Ungoliant

This is almost working.

I could not figure out why, but tokens made with the trigger still have subtypes, even though it has only artifact as its type.

* fix subtype of the token copy not being cleaned.

fixed Myrkul, Lord of Bones that had the same issue.
removed game argument from CreateTokenCopyTargetEffect's PermanentModifier. It was only used by Myrkul, and with no effect.
2023-07-05 19:21:52 -04:00
Oleg Agafonov
476fd27f65 fixed miss chosen targets clear in cost implementations (#10566) 2023-07-05 23:11:24 +04:00
PurpleCrowbar
9cd6c6f269 Fix Wilhelt, the Rotcleaver triggering off of its own death 2023-07-05 20:04:53 +01:00
Oleg Agafonov
f26b1470fa game: fixed miss state triggers check in multi-steps abilities/effects (#10564) 2023-07-05 09:52:38 +04:00
Kyle W. Cartmell
b66189d3da
GUI: resized avatar scroll pane so all avatars are visible (#10300) 2023-07-05 08:31:04 +04:00
xenohedron
71a6ee232b minor cleanup 2023-07-05 00:14:36 -04:00
xenohedron
22ce9489a8 cleanup Fleeting Spirit 2023-07-04 22:37:32 -04:00
Susucre
b8eb58edbe
[LTR] Implement Shadow of the Enemy (#10556)
There is room to refactor some of the cards that allow casting from an exile zone (for instance Gonti, Lord of Luxury, Dead Man's Chest or Thief of Sanity), but that felt complex enough I did not want to risk it.
Each one bring some additional complexity to the effect.

Tested that Dryad Arbor can not be cast from the exiled zone, did not attempt morphed Zoetic Cavern.
2023-07-04 20:39:20 -04:00
xenohedron
4d6644d095
Cleanup: ExileUntilSourceLeavesEffect (#10527)
* Refactor OnLeaveReturnExiledAbility
to accommodate hand zone as well as battlefield
* Cleanup Brain Maggot and Kitesail Freebooter
* Refactor to include delayed trigger with main effect
* minor cleanup
* merge fix
* further adjustments
* Cleanup Valki, God of Lies
* fix test choices
2023-07-04 20:38:59 -04:00
xenohedron
d629776b54 don't card fetch on PRs since it fails 2023-07-04 18:15:10 -04:00
xenohedron
6f7bcca734 Fix Mishra's Domination 2023-07-04 18:07:56 -04:00
xenohedron
a287582026 fix Vanish Into Eternity 2023-07-04 17:52:42 -04:00
xenohedron
b8f8e86b8d new StaticFilters.FILTER_SPELL_AN_ARTIFACT 2023-07-04 17:40:24 -04:00
xenohedron
bfd22322eb "Flag" instead of "Country" in tooltip 2023-07-04 17:26:11 -04:00
Susucre
652358a481
Fix #10561 Misery's Shadow (and 3 other cards) replacement effects (#10562)
Did not test the final code for Stone of Erech, when a filter was added to the ReplacementEffect :(

Added an unit test, just to be safer this time around.
2023-07-04 11:47:22 -04:00
Alexander Novotny
47456bf9c4
Fixed issue with UntapTargetCost (#10559)
* Fixed issue with UntapTargetCost

The target was allowed to actually target, so things like Halo Fountain wouldn't work on creatures with shroud.

UntapTargetCost also keeps track of the permanents which were untapped, in case those are needed.

Changed Benthic Explorers to use new UntapTargetCost

* Fixed potential bug with Benthic Explorers
2023-07-03 23:42:19 -04:00