mirror of
https://github.com/correl/mage.git
synced 2024-11-21 19:18:40 +00:00
refactor: removed direct counter names usage in some places
This commit is contained in:
parent
70fa98f492
commit
8f4cc84266
51 changed files with 72 additions and 67 deletions
|
@ -31,7 +31,7 @@ public final class ArcboundJavelineer extends CardImpl {
|
|||
|
||||
// {T}, Remove X +1/+1 counters from Arcbound Javelineer: It deals X damage to target attacking or blocking creature.
|
||||
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(GetXValue.instance, "It"), new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1));
|
||||
ability.addTarget(new TargetAttackingOrBlockingCreature());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ public final class ArceeSharpshooter extends CardImpl {
|
|||
.setText("it deals that much damage to target creature"),
|
||||
new GenericManaCost(1)
|
||||
);
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1.createInstance(), 1));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1, 1));
|
||||
ability.addEffect(new TransformSourceEffect().setText("convert {this}"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -152,7 +152,7 @@ class AsForetoldAddAltCostEffect extends ContinuousEffectImpl {
|
|||
+ sourcePermanent.getTurnsOnBattlefield());
|
||||
// If we haven't used it yet this turn, give the option of using the zero alternative cost
|
||||
if (wasItUsed == null) {
|
||||
int timeCounters = sourcePermanent.getCounters(game).getCount("time");
|
||||
int timeCounters = sourcePermanent.getCounters(game).getCount(CounterType.TIME);
|
||||
AsForetoldAlternativeCost alternateCostAbility = new AsForetoldAlternativeCost(timeCounters);
|
||||
alternateCostAbility.setSourceId(source.getSourceId());
|
||||
controller.getAlternativeSourceCosts().add(alternateCostAbility);
|
||||
|
|
|
@ -11,6 +11,7 @@ import mage.constants.Outcome;
|
|||
import mage.constants.RollDieType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.DieRolledEvent;
|
||||
import mage.game.events.GameEvent;
|
||||
|
@ -105,9 +106,9 @@ class AsLuckWouldHaveItEffect extends OneShotEffect {
|
|||
if (controller != null && permanent != null) {
|
||||
if (getValue("rolled") != null) {
|
||||
int amount = (Integer) getValue("rolled");
|
||||
permanent.addCounters(new Counter("luck", amount), source.getControllerId(), source, game);
|
||||
permanent.addCounters(new Counter(CounterType.LUCK.getName(), amount), source.getControllerId(), source, game);
|
||||
|
||||
if (permanent.getCounters(game).getCount("luck") >= 100) {
|
||||
if (permanent.getCounters(game).getCount(CounterType.LUCK) >= 100) {
|
||||
Player player = game.getPlayer(permanent.getControllerId());
|
||||
if (player != null) {
|
||||
player.won(game);
|
||||
|
|
|
@ -74,7 +74,7 @@ class AstralCornucopiaManaEffect extends ManaEffect {
|
|||
return netMana;
|
||||
}
|
||||
|
||||
int counters = sourcePermanent.getCounters(game).getCount(CounterType.CHARGE.getName());
|
||||
int counters = sourcePermanent.getCounters(game).getCount(CounterType.CHARGE);
|
||||
if (counters > 0) {
|
||||
netMana.add(Mana.WhiteMana(counters));
|
||||
netMana.add(Mana.BlueMana(counters));
|
||||
|
@ -95,7 +95,7 @@ class AstralCornucopiaManaEffect extends ManaEffect {
|
|||
if (sourcePermanent == null || controller == null) {
|
||||
return null;
|
||||
}
|
||||
int counters = sourcePermanent.getCounters(game).getCount(CounterType.CHARGE.getName());
|
||||
int counters = sourcePermanent.getCounters(game).getCount(CounterType.CHARGE);
|
||||
if (counters == 0) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public final class AuntieBlyteBadInfluence extends CardImpl {
|
|||
new DamageTargetEffect(GetXValue.instance, "it"), new ManaCostsImpl<>("{1}{R}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ public final class BlackManaBattery extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {B}, then add {B} for each charge counter removed this way",
|
||||
true, new IntPlusDynamicValue(1, new CountersSourceCount(CounterType.CHARGE)));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE,
|
||||
"Remove any number of charge counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class BlademaneBaku extends CardImpl {
|
|||
Effect effect = new BoostSourceEffect(xValue, StaticValue.get(0), Duration.EndOfTurn);
|
||||
effect.setText("for each counter removed, {this} gets +2/+0 until end of turn");
|
||||
Ability ability = new SimpleActivatedAbility(effect, new GenericManaCost(1));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class BlueManaBattery extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {U}, then add {U} for each charge counter removed this way",
|
||||
true, new IntPlusDynamicValue(1, new CountersSourceCount(CounterType.CHARGE)));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE,
|
||||
"Remove any number of charge counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class BottomlessVault extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {B} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ public final class BrainInAJar extends CardImpl {
|
|||
// {3}, {T}, Remove X charge counters from Brain in a Jar: Scry X.
|
||||
ability = new SimpleActivatedAbility(new BrainInAJarScryEffect(), new GenericManaCost(3));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class CalciformPools extends CardImpl {
|
|||
new AddManaInAnyCombinationEffect(RemovedCountersForCostValue.instance,
|
||||
new CountersSourceCount(CounterType.STORAGE), ColoredManaSymbol.W, ColoredManaSymbol.U),
|
||||
new GenericManaCost(1));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ public final class CrucibleOfTheSpiritDragon extends CardImpl {
|
|||
new CrucibleOfTheSpiritDragonManaBuilder(),
|
||||
false
|
||||
);
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class CruelSadist extends CardImpl {
|
|||
new DamageTargetEffect(RemovedCountersForCostValue.instance, "it"), new ManaCostsImpl<>("{2}{B}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class DreadshipReef extends CardImpl {
|
|||
new AddManaInAnyCombinationEffect(RemovedCountersForCostValue.instance,
|
||||
new CountersSourceCount(CounterType.STORAGE), ColoredManaSymbol.U, ColoredManaSymbol.B),
|
||||
new GenericManaCost(1));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class DwarvenHold extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {R} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class FountainOfCho extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {W} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class FungalReaches extends CardImpl {
|
|||
new AddManaInAnyCombinationEffect(RemovedCountersForCostValue.instance,
|
||||
new CountersSourceCount(CounterType.STORAGE), ColoredManaSymbol.R, ColoredManaSymbol.G),
|
||||
new GenericManaCost(1));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class GeistflameReservoir extends CardImpl {
|
|||
.setText("it deals that much damage to any target"), new ManaCostsImpl<>("{1}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(
|
||||
CounterType.CHARGE.createInstance(), "Remove any number of charge counters from {this}"
|
||||
CounterType.CHARGE, "Remove any number of charge counters from {this}"
|
||||
));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class GreenManaBattery extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {G}, then add {G} for each charge counter removed this way",
|
||||
true, new IntPlusDynamicValue(1, new CountersSourceCount(CounterType.CHARGE)));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE,
|
||||
"Remove any number of charge counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ public final class Haruspex extends CardImpl {
|
|||
Mana.AnyMana(1), RemovedCountersForCostValue.instance, new TapSourceCost(),
|
||||
"Add X mana of any one color", true, xValue
|
||||
);
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1));
|
||||
this.addAbility(ability.withFlavorWord("Devouring Monster"));
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.ComparisonType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -95,7 +96,7 @@ class HibernationsEndEffect extends OneShotEffect {
|
|||
Player player = game.getPlayer(source.getControllerId());
|
||||
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
|
||||
if (sourcePermanent != null && player != null) {
|
||||
int newConvertedCost = sourcePermanent.getCounters(game).getCount("age");
|
||||
int newConvertedCost = sourcePermanent.getCounters(game).getCount(CounterType.AGE);
|
||||
FilterCard filter = new FilterCard("creature card with mana value " + newConvertedCost);
|
||||
filter.add(new ManaValuePredicate(ComparisonType.EQUAL_TO, newConvertedCost));
|
||||
filter.add(CardType.CREATURE.getPredicate());
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class HollowTrees extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {G} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class IcatianStore extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {W} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ public final class InfusedArrows extends CardImpl {
|
|||
this.addAbility(new SunburstAbility(this));
|
||||
// {tap}, Remove X charge counters from Infused Arrows: Target creature gets -X/-X until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(new BoostTargetEffect(xValue, xValue, Duration.EndOfTurn), new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class KyrenToy extends CardImpl {
|
|||
|
||||
// {T}, Remove X charge counters from Kyren Toy: Add X mana of {C}, and then add {C}.
|
||||
ability = new SimpleManaAbility(Zone.BATTLEFIELD, new KyrenToyManaEffect(), new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance(1)));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class MageRingNetwork extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {C} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import mage.cards.Card;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
|
@ -72,8 +73,8 @@ class RemoveCounterMaintenanceHangarEffect extends OneShotEffect {
|
|||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (controller != null) {
|
||||
for (Card card : controller.getGraveyard().getCards(game)) {
|
||||
if (card.getCounters(game).getCount("repair") > 0) {
|
||||
card.removeCounters("repair", 1, source, game);
|
||||
if (card.getCounters(game).getCount(CounterType.REPAIR) > 0) {
|
||||
card.removeCounters(CounterType.REPAIR.getName(), 1, source, game);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class MercadianBazaar extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {R} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class MercadianLift extends CardImpl {
|
|||
|
||||
// {tap}, Remove X winch counters from Mercadian Lift: You may put a creature card with converted mana cost X from your hand onto the battlefield.
|
||||
Ability ability2 = new SimpleActivatedAbility(new MercadianLiftEffect(), new TapSourceCost());
|
||||
ability2.addCost(new RemoveVariableCountersSourceCost(CounterType.WINCH.createInstance(1)));
|
||||
ability2.addCost(new RemoveVariableCountersSourceCost(CounterType.WINCH));
|
||||
this.addAbility(ability2);
|
||||
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class MoltenSlagheap extends CardImpl {
|
|||
new AddManaInAnyCombinationEffect(RemovedCountersForCostValue.instance,
|
||||
new CountersSourceCount(CounterType.STORAGE), ColoredManaSymbol.B, ColoredManaSymbol.R),
|
||||
new GenericManaCost(1));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class NightDealings extends CardImpl {
|
|||
|
||||
// {2}{B}{B}, Remove X theft counters from Night Dealings: Search your library for a nonland card with converted mana cost X, reveal it, and put it into your hand. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(new NightDealingsSearchEffect(), new ManaCostsImpl<>("{2}{B}{B}"));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.THEFT.createInstance(1)));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.THEFT));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class PetalmaneBaku extends CardImpl {
|
|||
new GenericManaCost(1),
|
||||
"Add X mana of any one color",
|
||||
true, new CountersSourceCount(CounterType.KI));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ public final class PhylacteryLich extends CardImpl {
|
|||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
for (Permanent perm : game.getBattlefield().getAllActivePermanents(controllerId)) {
|
||||
if (perm.getCounters(game).getCount("phylactery") > 0) {
|
||||
if (perm.getCounters(game).getCount(CounterType.PHYLACTERY) > 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ class PrimalAmuletEffect extends OneShotEffect {
|
|||
permanent.addCounters(CounterType.CHARGE.createInstance(), source.getControllerId(), source, game);
|
||||
int counters = permanent.getCounters(game).getCount(CounterType.CHARGE);
|
||||
if (counters > 3 && player.chooseUse(Outcome.Benefit, "Transform this?", source, game)) {
|
||||
permanent.removeCounters("charge", counters, source, game);
|
||||
permanent.removeCounters(CounterType.CHARGE.getName(), counters, source, game);
|
||||
new TransformSourceEffect().apply(game, source);
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class QuillmaneBaku extends CardImpl {
|
|||
// {1}, {T}, Remove X ki counters from Quillmane Baku: Return target creature with mana value X or less to its owner's hand.
|
||||
Ability ability = new SimpleActivatedAbility(new ReturnToHandTargetEffect(), new GenericManaCost(1));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI));
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
ability.setTargetAdjuster(QuillmaneBakuAdjuster.instance);
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -56,7 +56,7 @@ public final class RasputinTheOneiromancer extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add that much {C}",
|
||||
true, new CountersSourceCount(CounterType.DREAM));
|
||||
ability2.addCost(new RemoveVariableCountersSourceCost(CounterType.DREAM.createInstance(), 1,
|
||||
ability2.addCost(new RemoveVariableCountersSourceCost(CounterType.DREAM, 1,
|
||||
"Remove one or more dream counters from {this}"));
|
||||
this.addAbility(ability2);
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class RedManaBattery extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {R}, then add {R} for each charge counter removed this way",
|
||||
true, new IntPlusDynamicValue(1, new CountersSourceCount(CounterType.CHARGE)));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE,
|
||||
"Remove any number of charge counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class RushwoodGrove extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {G} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class SaltcrustedSteppe extends CardImpl {
|
|||
new AddManaInAnyCombinationEffect(RemovedCountersForCostValue.instance,
|
||||
new CountersSourceCount(CounterType.STORAGE), ColoredManaSymbol.G, ColoredManaSymbol.W),
|
||||
new GenericManaCost(1));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class SandSilos extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {U} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class SaprazzanCove extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {U} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ public final class SimicManipulator extends CardImpl {
|
|||
// {T}, Remove one or more +1/+1 counters from Simic Manipulator: Gain control of target creature with power less than or equal to the number of +1/+1 counters removed this way.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainControlTargetEffect(Duration.Custom, true), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1.createInstance(), 1, "Remove one or more +1/+1 counters from {this}"));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.P1P1, 1, "Remove one or more +1/+1 counters from {this}"));
|
||||
ability.setTargetAdjuster(SimicManipulatorAdjuster.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ public final class SkullmaneBaku extends CardImpl {
|
|||
// {1}, {T}, Remove X ki counters from Skullmane Baku: Target creature gets -X/-X until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(new BoostTargetEffect(xValue, xValue, Duration.EndOfTurn), new GenericManaCost(1));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class SubterraneanHangar extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {B} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE,
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ class TreasureMapEffect extends OneShotEffect {
|
|||
permanent.addCounters(CounterType.LANDMARK.createInstance(), source.getControllerId(), source, game);
|
||||
int counters = permanent.getCounters(game).getCount(CounterType.LANDMARK);
|
||||
if (counters > 2) {
|
||||
permanent.removeCounters("landmark", counters, source, game);
|
||||
permanent.removeCounters(CounterType.LANDMARK.getName(), counters, source, game);
|
||||
new TransformSourceEffect().apply(game, source);
|
||||
new CreateTokenEffect(new TreasureToken(), 3).apply(game, source);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class WaxmaneBaku extends CardImpl {
|
|||
|
||||
// {1}, Remove X ki counters from Waxmane Baku: Tap X target creatures.
|
||||
Ability ability = new SimpleActivatedAbility(new TapTargetEffect("tap X target creatures"), new GenericManaCost(1));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI.createInstance()));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.KI));
|
||||
ability.setTargetAdjuster(WaxmaneBakuAdjuster.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class WhiteManaBattery extends CardImpl {
|
|||
new TapSourceCost(),
|
||||
"Add {W}, then add {W} for each charge counter removed this way",
|
||||
true, new IntPlusDynamicValue(1, new CountersSourceCount(CounterType.CHARGE)));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE.createInstance(),
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.CHARGE,
|
||||
"Remove any number of charge counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.mage.test.cards.copy;
|
|||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
@ -70,7 +71,7 @@ public class VesuvaTest extends CardTestPlayerBase {
|
|||
|
||||
Permanent darkDepth = getPermanent("Dark Depths", playerA);
|
||||
if (darkDepth != null) {
|
||||
Assert.assertEquals(10, darkDepth.getCounters(currentGame).getCount("ice"));
|
||||
Assert.assertEquals(10, darkDepth.getCounters(currentGame).getCount(CounterType.ICE));
|
||||
}
|
||||
assertTappedCount("Dark Depths", true, 1);
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ public class PayVariableLoyaltyCost extends VariableCostImpl {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int maxValue = permanent.getCounters(game).getCount(CounterType.LOYALTY.getName());
|
||||
int maxValue = permanent.getCounters(game).getCount(CounterType.LOYALTY);
|
||||
|
||||
// apply cost modification
|
||||
if (source instanceof LoyaltyAbility) {
|
||||
|
|
|
@ -5,6 +5,7 @@ import mage.abilities.costs.Cost;
|
|||
import mage.abilities.costs.VariableCostImpl;
|
||||
import mage.abilities.costs.VariableCostType;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
|
@ -14,26 +15,26 @@ import mage.game.permanent.Permanent;
|
|||
public class RemoveVariableCountersSourceCost extends VariableCostImpl {
|
||||
|
||||
protected int minimalCountersToPay = 0;
|
||||
private final String counterName;
|
||||
private final CounterType counterType;
|
||||
|
||||
public RemoveVariableCountersSourceCost(Counter counter) {
|
||||
this(counter, 0);
|
||||
public RemoveVariableCountersSourceCost(CounterType counterType) {
|
||||
this(counterType, 0);
|
||||
}
|
||||
|
||||
public RemoveVariableCountersSourceCost(Counter counter, String text) {
|
||||
this(counter, 0, text);
|
||||
public RemoveVariableCountersSourceCost(CounterType counterType, String text) {
|
||||
this(counterType, 0, text);
|
||||
}
|
||||
|
||||
public RemoveVariableCountersSourceCost(Counter counter, int minimalCountersToPay) {
|
||||
this(counter, minimalCountersToPay, "");
|
||||
public RemoveVariableCountersSourceCost(CounterType counterType, int minimalCountersToPay) {
|
||||
this(counterType, minimalCountersToPay, "");
|
||||
}
|
||||
|
||||
public RemoveVariableCountersSourceCost(Counter counter, int minimalCountersToPay, String text) {
|
||||
super(VariableCostType.NORMAL, counter.getName() + " counters to remove");
|
||||
public RemoveVariableCountersSourceCost(CounterType counterType, int minimalCountersToPay, String text) {
|
||||
super(VariableCostType.NORMAL, counterType.getName() + " counters to remove");
|
||||
this.minimalCountersToPay = minimalCountersToPay;
|
||||
this.counterName = counter.getName();
|
||||
this.counterType = counterType;
|
||||
if (text == null || text.isEmpty()) {
|
||||
this.text = "Remove X " + counterName + " counters from {this}";
|
||||
this.text = "Remove X " + counterType.getName() + " counters from {this}";
|
||||
} else {
|
||||
this.text = text;
|
||||
}
|
||||
|
@ -42,7 +43,7 @@ public class RemoveVariableCountersSourceCost extends VariableCostImpl {
|
|||
public RemoveVariableCountersSourceCost(final RemoveVariableCountersSourceCost cost) {
|
||||
super(cost);
|
||||
this.minimalCountersToPay = cost.minimalCountersToPay;
|
||||
this.counterName = cost.counterName;
|
||||
this.counterType = cost.counterType;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -52,7 +53,7 @@ public class RemoveVariableCountersSourceCost extends VariableCostImpl {
|
|||
|
||||
@Override
|
||||
public Cost getFixedCostsFromAnnouncedValue(int xValue) {
|
||||
return new RemoveCountersSourceCost(new Counter(counterName, xValue));
|
||||
return new RemoveCountersSourceCost(new Counter(this.counterType.getName(), xValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -63,6 +64,6 @@ public class RemoveVariableCountersSourceCost extends VariableCostImpl {
|
|||
@Override
|
||||
public int getMaxValue(Ability source, Game game) {
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
return permanent != null ? permanent.getCounters(game).getCount(counterName) : 0;
|
||||
return permanent != null ? permanent.getCounters(game).getCount(this.counterType) : 0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue