PurpleCrowbar
764bc096cd
Refactor self-suspend cards ( #11317 )
2023-10-18 20:54:49 +01:00
Susucre
4143a97998
[WHO] Implement Start the TARDIS ( #11311 )
...
Create a new effect PlaneswalkEffect, moving existing code from the planechase roll of chaos dice.
2023-10-17 12:00:28 +02:00
Susucre
dd1852352a
[WHO] Implement Regenerations Restored ( #11312 )
2023-10-16 20:38:34 +02:00
xenohedron
7f2924b764
text fixes
2023-10-15 00:56:25 -04:00
theelk801
eb489e3ed4
[WHO] Implement Judoon Enforcers
2023-10-14 19:05:02 -04:00
Oleg Agafonov
06138ab3d3
AI: refactor PassAbility usage, added additional runtime checks
2023-10-14 15:57:19 +04:00
PurpleCrowbar
7bc5105c1f
Implement Time Travel mechanic ( #11299 )
...
Implement [WHO] Wibbly-wobbly, Timey-wimey
2023-10-13 23:28:29 -04:00
xenohedron
2013895530
lots of text fixes
2023-10-13 23:27:44 -04:00
xenohedron
0081279d15
improve DontUntapInControllersUntapStepAllEffect
2023-10-13 23:27:44 -04:00
xenohedron
578b6821b5
remove unnecessary null check
2023-10-12 19:00:21 -04:00
xenohedron
87756a5cfa
text fixes
2023-10-09 23:52:57 -04:00
ssk97
5e095afdb0
Implement Prototype ability ( #11249 )
...
Prototype is a SpellAbilityType, for which alternate costs are permitted. It has a continuous effect that applies on the battlefield as well as a method to modify the spell on the stack. Permanents have an isPrototyped flag that copy effects can check explicitly (same brittle method as transformed permanents use; reworking copy effects to streamline them is a separate scope).
Many test cases have been added to confirm functionality (thanks to Zerris for additional test suggestions).
---------
Co-authored-by: Susucre <34709007+Susucre@users.noreply.github.com>
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-10-09 21:06:19 -04:00
xenohedron
1a6bbfa873
add test for Role token not created if target has protection ( #11281 )
2023-10-08 17:53:33 -04:00
xenohedron
5ba47db226
text adjustment: untap all lands
2023-10-08 01:36:28 -04:00
xenohedron
6e18dbd2e4
new ExileReturnBattlefieldNextEndStepTargetEffect ( #11251 )
...
* adjust ExileThenReturnTargetEffect
* initial rework ExileReturnBattlefieldNextEndStepTargetEffect
(test coverage provided by CloudshiftTest)
* refactor some more cards
* refactor more straightforward cards
* add params and more refactoring
* text fixes
* maintain order in set
* fix Lae'zel's Acrobatics and add test
2023-10-05 22:04:12 -04:00
xenohedron
c8e2282a79
some more text improvements ( #11258 )
...
* text on Eldrazi Spawn token
* refactor: return Ability instead of void
* cleanup assigning null to staticText
* cleanup Mimic cycle and GainAbilitySourceEffect
adjust Groundling Pouncer
* remove hardcoded rule param from SpellCastControllerTriggeredAbility
* fix #11257
2023-10-05 22:04:02 -04:00
xenohedron
cd6c5aa7ac
improve usability of Rebound ability ( #11261 )
...
* remove boilerplate template comments
* fix Rebound, now need to choose only once
* fix text: Harmless Assault
2023-10-05 22:03:23 -04:00
xenohedron
708ec9b8e9
text fixes and filter corrections: GainAbilityControlledEffect
2023-10-03 23:05:52 -04:00
xenohedron
9456650693
Merge pull request #11178 from ssk97/MorphRework_v2
...
Morph rework and check spell characteristics
2023-10-02 23:01:40 -04:00
Susucre
7c454fb24c
Rework AsThough handling to allow choosing/affecting a specific alternate cast ( #11114 )
...
* Rework AsThoughEffect
* some cleanup of MageIdentifer
* refactor ActivationStatus
* fix bolas's citadel
* fix a couple of the Alternative Cost being applied too broadly.
* fix Risen Executioneer
* allow cancellation of AsThough choice.
* fix One with the Multiverse
* cleanup cards needing their own MageIdentifier
* last couple of fixes
* apply reviews for cleaner code.
* some more cleanup
2023-10-02 18:42:54 -04:00
xenohedron
ba135abc78
refactor: common classes for LeaveBattlefieldExile ( #11248 )
2023-10-02 18:42:25 -04:00
Oleg Agafonov
9d1ad256a5
Standard Bearer - fixed that cards with TargetsHaveToTargetPermanentIfAbleEffect can brake multi-modes cards (can be related to #9769 )
2023-10-02 14:12:56 +04:00
Steven Knipe
26af2602e4
Merge branch 'master' of https://github.com/magefree/mage.git into MorphRework_v2
...
# Conflicts:
# Mage.Sets/src/mage/cards/b/Banefire.java
2023-10-01 22:59:27 -07:00
Steven Knipe
639aba4592
CastAsThoughItHadFlashAllEffect applies function variant throws error instead of returning false
2023-10-01 22:50:22 -07:00
Steven Knipe
47fc192a36
"ERROR," -> "Wrong code usage:" in IllegalArgumentException
2023-10-01 22:41:24 -07:00
Steven Knipe
731b391306
return guard Style change
2023-10-01 22:25:37 -07:00
xenohedron
d9ca387fad
another batch of text gen improvements ( #11247 )
...
* describe targets: UntapTargetEffect
* describe targets: SetBasePowerToughnessTargetEffect
* cleanup text
* describe targets: RegenerateTargetEffect
* describe targets: PhaseOutTargetEffect
* adjust text
* remove superfluous param
* describe targets: TapAllTargetPlayerControlsEffect
* describe targets: TurnFaceUpTargetEffect
* describe targets: TransformTargetEffect
* describe targets: RemoveFromCombatTargetEffect
* describe targets: DetainTargetEffect
* cleanup DiscardHandTargetEffect
* describe targets: DrawCardTargetEffect
* describe targets: GainLifeTargetEffect
* describe targets: LoseLifeTargetEffect
* describe targets: ExchangeLifeTargetEffect
* describe targets: DamageTargetControllerEffect
2023-10-01 22:51:02 -04:00
xenohedron
4273d3b5ba
refactor: remove unnecessary "lockedIn" parameter ( #11244 )
...
* remove lockedIn from logic: BoostControlledEffect
* remove lockedIn field: BoostControlledEffect
* remove constructor parameter: BoostControlledEffect
* simplify BoostEnchantedEffect
* apply fix to BoostSourceEffect
* remove unused param
* refactor SetBasePowerToughnessAllEffect
* additional cleanup
2023-10-01 22:50:44 -04:00
xenohedron
bfbdf6b103
reimplement "don't cause abilities to trigger" effects ( #11242 )
2023-10-01 22:50:14 -04:00
xenohedron
78b5b8bdef
simplify LKI check using common method
2023-09-30 16:19:18 -04:00
Steven Knipe
967b4a7fb3
Characteristics check for spell cast filters
2023-09-26 21:05:55 -07:00
xenohedron
e66c9900f7
fix #11210 and similar (LKI in TapEnchantedEffect)
2023-09-26 22:46:01 -04:00
xenohedron
1a13dcd091
Merge pull request #11185 from xenohedron/becomestarget
...
Rework "whenever ... becomes the target of ..., " abilities
2023-09-24 22:09:14 -04:00
Oleg Agafonov
b80f440e15
game: fixed some NPE errors
2023-09-23 07:41:18 +04:00
xenohedron
cd5ee1c31d
text fixes
2023-09-22 23:38:16 -04:00
Oleg Agafonov
a9152e886f
refactor: improved ContinuousRuleModifying effects:
...
* removed unused apply methods;
* added miss overrides of checksEventType (related to wrong event usage, see 5f2edde20c ).
2023-09-22 21:32:55 +04:00
xenohedron
fa8e93a29d
rework CombatDamageByToughnessAllEffect ( #11180 )
...
new CombatDamageByToughnessControlledEffect
add tests
fix #11179
2023-09-19 01:41:55 -04:00
xenohedron
0ad678ff56
enable multiple added subtypes in CreateTokenCopyTargetEffect ( #11181 )
...
fix #11176
2023-09-19 01:41:40 -04:00
Steven Knipe
f379319162
CastAsThoughItHadFlashAllEffect support characteristics
2023-09-18 06:06:52 -07:00
Steven Knipe
de8c7ea235
Update cast spell name check to use characteristics
2023-09-18 05:48:36 -07:00
Steven Knipe
e7927cb50f
make Morph cost reduction a separate class (and fix to work with new system)
2023-09-18 03:33:20 -07:00
Oleg Agafonov
4e77ccb381
refactor: removed unused data from special action, improved code (related to #11137 )
2023-09-17 14:37:49 +04:00
Susucre
58fdbc9345
[CMB1] Implement Frogkin Kidnapper ( #11137 )
2023-09-15 17:55:24 -04:00
Vivian Greenslade
8c1a4d1fa6
[WOC] Implement Misleading Signpost ( #11084 )
...
* [WOC] Implement Misleading Signpost
* moved effect to common file
* added unit test
* added battle to test
* updated effect name, fixed list of defenders
* fix test text
* added text for effect
* fixed target
* made changes as per PR comments
* added unit test for 508.7c
2023-09-09 15:32:04 -04:00
Susucre
8b79053deb
[WOC] Implement Court of Garenbrig ( #10970 )
...
* add DoubleCounterOnEachPermanentEffect
* Clean text generation of ConditionalOneShotEffect to prevent "if if"
* [WOC] Implement Court of Garenbrig
* better rule generation
* fix target, add tests
2023-09-09 15:31:49 -04:00
Susucre
249e7bf31b
[WOC] Implement Court of Embereth ( #10971 )
...
* Clean text generation of ConditionalOneShotEffect to prevent "if if"
* [WOC] Implement Court of Embereth
2023-09-08 23:57:36 -04:00
xenohedron
144b261fc2
another batch of text fixes
2023-09-07 02:22:16 -04:00
xenohedron
34b671bc83
cleanup add color/subtype attached effects
2023-09-07 02:22:16 -04:00
xenohedron
72be1856f7
describe targets: look at hand; can't be blocked
2023-09-07 02:22:16 -04:00
Oleg Agafonov
4b3a19b4d5
refactor: improved target usage, replaced setNotTarget by withNotTarget
2023-09-07 05:35:54 +04:00