Commit graph

41261 commits

Author SHA1 Message Date
Oleg Agafonov
4c59551cf0 number of triggers event - fixed game error with state based triggers (NPE in cards like Veyran, Voice of Duality); 2023-06-30 07:15:21 +04:00
Oleg Agafonov
6529ead72f refactor: simplified extra turn code, fixed NPE error on usage (Alchemist's Gambit) 2023-06-30 06:39:01 +04:00
Tiago Gil
ad461498b0
[LTR] Implement Gandalf, White Rider (#10538)
* [LTR] Implement Gandalf, White Rider

* Took ideas from the God Eternals, Arwen Undomiel and Enigma Sphinx.

* Tested it with multiple interactions, including murdering a stolen Gandalf with Agent of Treachery.

* Forgot to add myself as author

* Implemented requested fixes

* Changed it to use `DiesSourceTriggeredAbility()`
* Changed to `getValue("permanentLeftBattlefield")`
* Stolen interactions are properly working now

* ZCC comparison

* Based on the God Eternals, hope its up to spec
2023-06-29 22:37:21 -04:00
rullinoiz
6caa46f9d5
[LTC] Implement Moria Scavenger, Saruman The White Hand, Wake The Dragon (#10537)
* Implement Moria Scavenger, Saruman The White Hand, Wake The Dragon

* Remove Ward Hint

* Create Dragon Token Class

* StaticFilters.FILTER_SPELL_A_NON_CREATURE

* Rename TokenTriggeredAbility
2023-06-29 22:04:46 -04:00
Tiago Gil
9d8919a009
[LTR] Implement Strider, Ranger of the North (#10536)
* [LTR] Implement Strider, Ranger of the North

* Took ideas from a few cards with similiar effects.
* Creature power check based on Ent's Fury
* Did a few playtests to ensure effects work and tested with additional creatures with landfall in the battlefield

* Forgot to add myself as author

* Update StriderRangerOfTheNorth.java

* Removed unnecessary public access
* Removed redundant `return true;`
* Added a temporary fix to the power check

* Fixed condition

* Fixed it by giving the temporary buff outside of the custom effect
* Tried to implement a condition like Dormant Grove uses but had no success, `First Strike` was still not being applied.
* Also tested the card Ent's Fury, it works because it checks the creature power before giving it any counters

* Fixed static text
2023-06-29 22:04:25 -04:00
rullinoiz
b1a61a6ae8
[LTC] Implement Mirkwood Elk (#10533) 2023-06-29 22:03:45 -04:00
Susucre
a7444948be
[LTR] Breaking of the Fellowship (#10507)
Almost identical to the card Mutiny.
2023-06-29 22:03:15 -04:00
Susucre
06cce0ce22
[LTR] Implement Mordor Trebuchet (#10496)
Along with its unique token Ballistic Boulder.
2023-06-29 22:02:55 -04:00
PurpleCrowbar
6e2b35e6a3 Fix shroud denying ninjutsu 2023-06-30 01:39:58 +01:00
xenohedron
79d7bd978b fix #10535 (Tanazir Quandrix) 2023-06-29 09:23:50 -04:00
Susucre
c92ad45e56
[LTR] Implement Stone of Erech (#10497)
* [LTR] Implement Stone of Erech

Grouped together two other recent cards for that exact same replacement effect.

* refactor some more

This does extend the ReplacementEffect "If ... would die, exile it instead", using a `PermanentFilter`. [[Void Maw]] and [[Lorcan, Warlock Collector]] have thus be refactored to use that instead of a custom replacement effect.

Added a static filter `StaticFilters.FILTER_ANOTHER_CREATURE` for Void Maw that is filtering "another creature".
Found and refactored cards that were declaring that exact filter locally
* [[Flame-Kin War Scout]]
* [[Herd Gnarr]]
* [[Mogg Bombers]]
* [[Timid Drake]]

* fix void maw

* reverse changes on VoidMaw

Void Maw was a linked ability, so not exactly the same replacement effect that was refactored.
2023-06-29 09:17:34 -04:00
Susucre
311bf2e22e
fix #10530 (Unsettled Mariner + Field of Ruin) (#10531)
* fix Unsettled Mariner + Field of Ruin

There was something weird with zcc on TargetOfOpponentsSpellOrAbilityTriggeredAbility
setting the target to the stack object for its triggered effect.

I do not entirely comprehend how FixedTarget works, in particular regarding zcc of stack objects.
However all configurations of the trigger seem to work with the uninitialized FixedTarget constructor,
instead of the one initialized with a game's zcc.

* slight refactor of TargetOfOpponentsSpellOrAbilityTriggeredAbility
2023-06-29 09:16:46 -04:00
Correl Roush
1f261d722c
Implement [MAT] Nahiri, Forged In Fury (#10534) 2023-06-28 22:24:26 -04:00
rockydirtbag
6249f08def
Implemented [LTR] Gandalf the White (#10528) 2023-06-27 23:44:23 -04:00
Tiago Gil
90df06b928
[LTR] Implement Ent's Fury (#10532) 2023-06-28 01:23:28 +01:00
ssk97
918a8931e6
Implement [40K] Squad ability (#10509)
* First try at Squad Mechanic

* Fully functional now, removed cards from unfinished list in 40k

* Improved implementation, removing the generic conditional
and replacing it with a separated ETB trigger and effect.

* Add tests from Susucre (using Strionic Resonator for now, two others currently failing)

* Update comments on tests

Closes #9774 

------
Co-authored by: Susucre <34709007+susucre@users.noreply.github.com>
2023-06-26 20:47:26 -04:00
xenohedron
9cd42bc4a5 Fix #10517 (Herald's Horn) 2023-06-25 23:30:06 -04:00
xenohedron
231ab77bcd
New common class CopyTargetStackAbilityEffect (#10525)
- Fix superfluous null check in Lithoform Engine
- Remove hardcoding of controlled abilities in TargetTriggeredAbility (used only in Strionic Resonator)
- EnchantmentSourcePredicate analogous to ArtifactSourcePredicate
2023-06-25 22:20:41 -04:00
xenohedron
8d55419003 Fix Gore Vassal 2023-06-25 21:45:12 -04:00
xenohedron
0c9361a057 partial fix for The Filigree Sylex 2023-06-25 16:09:49 -04:00
xenohedron
5722ae27f6 fix text: Silverskin Armor 2023-06-25 15:15:41 -04:00
xenohedron
98e40b2a8b some text fixes: Scars block 2023-06-25 15:15:41 -04:00
gravitybone
ecb73ba746
Fix: EarthquakeDragon uses now the correct hint (#10523) 2023-06-25 00:03:43 -04:00
xenohedron
f623e45d4b add strict choose mode to other recent tests 2023-06-24 01:36:56 -04:00
xenohedron
ec4c2e2170
Cleanup: GainAbilityControlledSpellsEffect (#10446)
* Hide reminder text on Zhulodok

* Use logic from GainAbilitySpellsEffect, fix so that CastFromZonePredicate works

* Text adjustments

* Show cascade ability in hand for Abaddon the Despoiler

* Remove redundant class

* Simplify Cast Through Time

* Don't add additional instances of redundant abilities

* Remove redundant check

* Add option to ignore mana validation when checking playable objects

* Fix null errors

* Fix GainAbilityControlledSpellsEffect to apply ability to playable cards rather than owned cards

* Add unit test

* Revert bad workaround code

This reverts commit 17f5be6a79.
This reverts commit 7ebd2f1815.
This reverts commit 00969d1fe7.

* Remove ownership check on exiled cards

* Another test (currently failing)

* ignore test

* fix test: strict choose mode
2023-06-24 01:15:58 -04:00
Mateo Florido
90d35e0543
[CLB] Implement Master Chef (#9527)
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-06-23 23:43:15 -04:00
Alexander
2db08c6b7d
fix Tadeas, Juniper Ascendant (#10490)
* added Tests for Tadeas
* Fix and cleanup Tadeas Juniper Ascendant
* Fix same power test to attack with creature with same power
* Test: added test for tadeas elusive not applying for creatures without reach
* Fix: creatures without reach can be blocked by higher power blockers
* Fix: use TargetPointer instead of MageObjectReference
---------
Co-authored-by: gravitybone <gravitybone@protonmail.com>
2023-06-23 22:47:55 -04:00
Susucre
eea44bb13e
[LTR] Implement Bill the Pony (#10506) 2023-06-23 20:14:48 -04:00
Susucre
b79da551f1
[LTR] Implement Friendly Rivalry (#10505) 2023-06-23 20:14:31 -04:00
Susucre
a3a2f89237
[LTR] Implement Shadowfax, Lord of Horses (#10503) 2023-06-23 20:14:09 -04:00
who?!
3896c28572
[LTR] Implement Dawn of a New Age (#10492) 2023-06-23 20:13:50 -04:00
xenohedron
1d5ee8b3f4 Fix #10518 (Firkragg, Cunning Instigator) 2023-06-23 20:13:02 -04:00
xenohedron
7e15ca92c5 simplify implementation and remove redundant class 2023-06-23 20:11:37 -04:00
xenohedron
23a6185f70 Remove unused effect class 2023-06-23 20:11:04 -04:00
xenohedron
380fea6720 fix some return from exile zone 2023-06-23 01:19:17 -04:00
Susucre
e11d07457e
[MOM] fix Quintorius, Loremaster (#10502)
Fix #10480
2023-06-22 22:24:43 -04:00
Susucre
3a0324557a
[MOM] fix Tribute to the World Tree (#10501)
Fix #10413. Fix #10499.
2023-06-22 22:18:11 -04:00
PurpleCrowbar
63be7589ae Add MUL token images 2023-06-23 02:06:56 +01:00
Susucre
c725e4000e
Fix #10510 [ICE] Musician - lower taxes 2023-06-22 20:07:28 -04:00
Susucre
cd25bd943d
[LTR] Implement Sméagol, Helpful Guide (#10514) 2023-06-22 20:06:35 -04:00
Susucre
0255761d67
[LTR] Implement The Grey Havens (#10493) 2023-06-22 20:06:10 -04:00
Susucre
6459d64eab
[LTR] Implement Delighted Halfling (#10491) 2023-06-22 20:05:35 -04:00
Susucre
a75ec34a45
[LTR] Implement Orcish Bowmasters (#10450)
Refactored [[Xyris, the Writhing Storm]] since the trigger is partly the same.
2023-06-22 20:05:08 -04:00
Susucre
09e0cba992
[LTR] Fix Smaug Token producing food tokens instead of treasures (#10513) 2023-06-22 13:20:45 -04:00
Bradley Singer
2db1de2629
[LTC] Windswift Slice (#10508) 2023-06-22 01:15:27 -04:00
Susucre
440bf6bf43
[LTR] Implement Entish Restoration (#10504) 2023-06-22 01:14:42 -04:00
Susucre
ad324c169d
[LTR] fix Arwen, Mortal Queen (#10500)
The activated ability was missing the {1} mana cost.
2023-06-22 00:59:14 -04:00
Susucre
0e866ee405
[LTR] Implement Slip On the Ring (#10495) 2023-06-22 00:58:57 -04:00
Susucre
3838fedaac
[LTR] Implement Meneldor, Swift Savior (#10494) 2023-06-22 00:58:42 -04:00
PurpleCrowbar
f85dd656f2 Fix hint text for Tom Bombadil 2023-06-22 00:03:11 +01:00