Commit graph

21 commits

Author SHA1 Message Date
xenohedron
d9287adea3 minor simplification to ConditionalTargetAdjuster
protect internal Targets list
2024-07-23 02:16:26 -04:00
ssk97
e8808c3ae3
Remove duplicate code for X costs (#12551)
* Replace "([a-zA-Z]+).getManaCostsToPay().getX()" with CardUtil.getSourceCostsTag(game, $1, "X", 0)
Fix Disrupting Shoal

* Change final card .getX() calls

* Condense all ManacostVariableValue enum values into "instance"

* Further removal of getX, Display X symbol for non-mana X cards

* Fix test

* Fully remove ManaCosts.getX

* Replace all different X dynamic values with GetXValue

* Remove individual cards checking getAmount for X values (leaving cost reduction that does not use X)

* Add null check for game object inside getSourceCostsTagsMap

* fix build errors

* fix Vicious Betrayal

* text fix
2024-07-23 01:57:47 -04:00
ssk97
a6e66d6209
Conditional target adjuster (#12585)
* Add ReplacingTargetAdjuster

* Use new target adjuster

* Change name to ConditionalTargetAdjuster, don't use blueprint

* Take a Targets list

* Add keepOldTargets option

* Add missed DamagedPlayerControlsTargetAdjuster to Sigil of Sleep

* Cards using updated ConditionalTargetAdjuster

* BLB gift cards currently implemented

* fix wrong default for keepOldTargets

* Fix Urborg Repossession missing 1st target tag
2024-07-23 00:14:28 -04:00
ssk97
74804a468e
Additional fixes for target adjusters, part of #12528 (#12550)
* Add support for non-permanent targets to EachOpponentPermanentTargetsAdjuster, add ownership check
* Rename EachOpponentPermanentTargetsAdjuster to ForEachOpponentTargetsAdjuster
2024-07-02 11:57:56 +04:00
ssk97
7cb669603f
[WHO] Time Reaper, Add target adjuster for "that player controls/owns" damage trigger targets (#12528)
* Implement Time Reaper, start rework

* Create DamagedPlayerControlsTargetAdjuster, convert Aberrant to use it

* Always add targets for EachOpponentPermanentTargetsAdjuster

* Improve target name, finish Time Reaper

* Convert some cards

* Improve documentation, more cards

* More cards, fix cards that needed to use owner instead of controller

* Fix unfinished AlelaCunningConqueror changes

* more cards

* All remaining cards

* Fix target type

* Remove outdated attempt at TargetController.SOURCE_EFFECT_TARGET_POINTER

* Finish removal of SOURCE_EFFECT_TARGET_POINTER

* Change targetAdjuster blueprint target to be set inside setTargetAdjuster, add error checking

* Always add Target Adjuster after Target

* Add comment

* Fix TolarianContemptTest to skip opponent with no valid targets

* Forgot to git add the new abstract GenericTargetAdjuster

* Test now possible after merge, fix missed ChangeOfPlans adjuster order

* Text and optional-ness fixes

* Always set target pointer
2024-07-02 08:46:14 +04:00
ssk97
b335947afd
Fix TargetsCountAdjuster to always add target even if the max is 0. (#12478) 2024-06-16 06:39:33 +04:00
xenohedron
fdd244786b refactor: improve method name (related to 86fa9278) 2024-06-13 00:43:51 -04: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
Oleg Agafonov
34dac7877d fixed empty targets in EachOpponentPermanentTargetsAdjuster (related to #11886) 2024-04-11 22:46:26 +04:00
ssk97
124d60e2b7
refactor: improved EachOpponentPermanentTargetsAdjuster and few card fixes (#12102)
* Wreck and Rebuild: Return a land, not a creature
* Sinister Concierge should still gain suspend with 0 targets
* Fixed Tolarian Contempt
2024-04-10 06:59:21 +04:00
ssk97
d886b3e450
[WHO] Implement 4 cards, create generic EachOpponentPermanentTargetsAdjuster (#11886)
* Implement Bigger on the Inside
* implement Reverse the Polarity
* Implement Sontaran General
* Implement Everything Comes to Dust
2024-03-29 01:32:38 +04:00
Evan Kranzler
cff38b74b9 [NEO] fixed implementation of March additional costs (#8524) 2022-02-12 14:27:35 -05:00
Evan Kranzler
a61d5543fa replaced all instances of converted mana cost with mana value 2021-04-17 17:02:27 -04:00
Daniel Bomar
bb0a995541
Tibalt, Cosmic Impostor - fixed that emblem can't cast not owned cards (#7598)
* Fixed ability.canChooseTarget not using correct playerId

* Fixed Necrotic Plague

* Revert "Fixed Necrotic Plague"

This reverts commit 7659039670.

* Set target controller on Necrotic Plague and add check in canChooseTarget

* Add test for Tibalt + Ephemerate interaction

* Tests improved

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-02-22 23:06:43 +04:00
Evan Kranzler
b833fc7f77 replaced various single-use adjusters 2018-09-17 14:13:52 -04:00
Evan Kranzler
42417b6711 replaced verse counter adjustment 2018-09-17 13:40:27 -04:00
Evan Kranzler
0d3c068f50 replaced x targets adjustment 2018-09-17 13:26:48 -04:00
Evan Kranzler
7305fbac3a replaced X cmc targeting adjustment 2018-09-17 13:21:05 -04:00
Evan Kranzler
9b94b618cd begin modifying target adjustment implementations 2018-09-17 10:47:39 -04:00
Evan Kranzler
8bcf95d996 added methods for setting target adjuster 2018-09-17 10:45:22 -04:00
Evan Kranzler
3265b70e2f create target adjuster interface 2018-09-17 08:49:46 -04:00